1
我试图使用计算着色器实现fluid dynamics。在文章中,有一系列关于纹理的通过,因为这是在计算着色器之前编写的。计算着色器,缓冲区或纹理
对纹理或缓冲区执行每次传递会更快吗?无论如何,最终的通行证必须应用于纹理。
我试图使用计算着色器实现fluid dynamics。在文章中,有一系列关于纹理的通过,因为这是在计算着色器之前编写的。计算着色器,缓冲区或纹理
对纹理或缓冲区执行每次传递会更快吗?无论如何,最终的通行证必须应用于纹理。
我会建议使用资源适合模拟的任何维度。如果是一维模拟,则使用RWBuffer,如果是2D模拟,则使用RWTexture2D,如果是3D模拟,则使用RWTexture3D。
似乎有算法中的阶段,你链接使用双线性过滤。如果限制自己使用缓冲区,则必须发出4或8次内存提取(取决于2D或3D),然后使用更多说明来计算加权平均值。尽可能利用硬件的能力为您做到这一点。
另一件需要注意的事情是纹理中的数据并不像您所期望的那样逐行排列(线性),而是以这样一种方式布置,即相邻纹理元素在内存中尽可能接近彼此;根据您阅读的文档,这可以称为平铺或调整。出于这个原因,除非你的模拟是一维的,否则你可能会获得更好的读取/写入资源的缓存一致性,这些资源的布局与模拟的尺寸最接近。