是否可以对要使用计算着色器渲染的几何数据应用过滤器,然后将结果用作顶点着色器中的输入缓冲区?这将节省我读回数据的麻烦(和时间)。
非常感谢任何帮助。
最佳答案
是的,绝对是的。首先,使用 BIND_VERTEX_BUFFER
、BIND_SHADER_RESOURCE
和 BIND_UNORDERED_ACCESS
使用标志以及关联的 UAV 和SRV。
第一步是将过滤器应用于输入源缓冲区,并在计算过程中写入目标缓冲区。
然后在绘制过程中,您只需将目标缓冲区绑定(bind)到 IA
阶段即可。如果您需要累积顶点上的计算,您可以做一些乒乓球运动(我假设过滤器指的是 functional map ,用于引用函数式编程术语)。
关于DirectX11 : Pass data from ComputeShader to VertexShader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4049787/