1
我試圖使用計算着色器實現fluid dynamics。在文章中,有一系列關於紋理的通過,因爲這是在計算着色器之前編寫的。計算着色器,緩衝區或紋理
對紋理或緩衝區執行每次傳遞會更快嗎?無論如何,最終的通行證必須應用於紋理。
我試圖使用計算着色器實現fluid dynamics。在文章中,有一系列關於紋理的通過,因爲這是在計算着色器之前編寫的。計算着色器,緩衝區或紋理
對紋理或緩衝區執行每次傳遞會更快嗎?無論如何,最終的通行證必須應用於紋理。
我會建議使用資源適合模擬的任何維度。如果是一維模擬,則使用RWBuffer,如果是2D模擬,則使用RWTexture2D,如果是3D模擬,則使用RWTexture3D。
似乎有算法中的階段,你鏈接使用雙線性過濾。如果限制自己使用緩衝區,則必須發出4或8次內存提取(取決於2D或3D),然後使用更多說明來計算加權平均值。儘可能利用硬件的能力爲您做到這一點。
另一件需要注意的事情是紋理中的數據並不像您所期望的那樣逐行排列(線性),而是以這樣一種方式佈置,即相鄰紋理元素在內存中儘可能接近彼此;根據您閱讀的文檔,這可以稱爲平鋪或調整。出於這個原因,除非你的模擬是一維的,否則你可能會獲得更好的讀取/寫入資源的緩存一致性,這些資源的佈局與模擬的尺寸最接近。