在 Direct3D 11 中查看 Append/Consume 个缓冲区

Views over Append/Consume buffers in Direct3D 11

我正在使用 append/consume 缓冲区来减少路径追踪器中的着色工作(立即遮蔽空 space + 预通道中的发射器,附加剩余像素以进行完整处理),我听说在通过 AppendStructuredBuffer<T> 访问时应该使用无人机,在通过 ConsumeStructuredBuffer 访问时应该使用 SRV。我没有在 Microsoft 的任何文档中看到该声明,但它可以解释为什么我对 [Consume()] 的调用返回空数据 - 它准确吗?

我应该在问之前自己测试一下 - 在 SRV 寄存器 (tN) 中声明了 ConsumeStructuredBuffers 的着色器无法编译并发出错误消息说它们只能通过无人机绑定。

我的AppendStructuredBuffer通过无人机寄存器绑定工作正常,看来我只是在引用道听途说;无序访问视图应该用于两种 HLSL 类型。