我为学校项目制作了一个简单的光线追踪器,计算着色器应该用于对三角形或其他一些图元进行着色。为此,我想直接在计算着色器中写入后缓冲表面,然后立即呈现结果。我确定这在 DX11 中是可能的,尽管我似乎无法让它在 DX12 中工作。
我无法收集有关此的太多信息,但我发现这个 gamedev 线程讨论了我试图弄清楚的完全相同的问题,他们似乎得出了我的解决方法的结论:写入中间纹理然后采样在管道中。我不能完全接受这在 dx12 中是不可能实现的。为什么要删除该功能?是不是排队系统消除了一些开销,使得它没有必要拥有这个功能?
有没有什么方法可以实现光线追踪器,而无需写入单独的纹理,然后在管道中采样或将其复制到后台缓冲区?实现性能的最佳选择是什么?