我是全新的图形和DX,遇到了问题,我身边也没有人知道图形。对不起,如果这个问题看起来太天真了。
我使用DirectX 11渲染网格,我想为每个像素获取一个缓冲区。此缓冲区应存储为此像素提供颜色的所有三角形的链接列表(或其他一些结构)。
我应该操作哪个着色器或DX的哪个部分?或者简单地说,我在哪里可以获得像素着色器中的三角形信息?
答案 0 :(得分:0)
您可以在像素着色器中编写三角形ID,但使用硬件z缓冲区,每个像素只能捕获一个三角形。
使用多重采样纹理,您可以捕获更多三角形。在实际情况下这应该足够了。
如果您的三角形非常小并且其中许多三角形在一个像素内可见,那么您应该考虑A-Buffer使用您自己的隐藏曲面去除算法。
答案 1 :(得分:0)
如果只是出于调试目的而需要,您可以使用任何图形调试器:
如果你在运行时需要它(BTW,为什么?=))
VertexID
,PrimitiveID
和SV_VertexID
来计算以像素颜色提供的精确基元甚至顶点。这很棘手,但可能。