我是全新的圖形和DX,遇到一個問題,周圍沒有人知道圖形了。對不起,如果這個問題太天真了。如何知道哪個三角形對像素的顏色有貢獻?
我使用DirectX 11來渲染網格,並且我想爲每個像素獲取一個緩衝區。這個緩衝區應該存儲爲這個像素貢獻顏色的所有三角形的鏈表(或其他結構)。
我應該操作哪種着色器或DX的哪一部分?或者簡單地說,我可以在哪裏獲得像素着色器中的三角形信息?
我是全新的圖形和DX,遇到一個問題,周圍沒有人知道圖形了。對不起,如果這個問題太天真了。如何知道哪個三角形對像素的顏色有貢獻?
我使用DirectX 11來渲染網格,並且我想爲每個像素獲取一個緩衝區。這個緩衝區應該存儲爲這個像素貢獻顏色的所有三角形的鏈表(或其他結構)。
我應該操作哪種着色器或DX的哪一部分?或者簡單地說,我可以在哪裏獲得像素着色器中的三角形信息?
您可以在像素着色器中寫入三角形ID,但使用硬件z緩衝區,每個像素只能捕捉一個三角形。
使用多重採樣紋理,您可以捕捉更多的三角形。這在實際情況下應該足夠了。
如果您的三角形非常小,並且其中許多三角形在一個像素內是可見的,那麼您應該考慮使用自己的隱藏表面移除算法A-Buffer。
如果你需要它只是爲,您可以使用圖形調試器的任何調試的目的:GPUPerfStudio
如果你需要在運行時(順便說一句,爲什麼=?))
VertexID
,PrimitiveID
和SV_VertexID
精確計算原始,甚至頂點,在像素顏色作出了貢獻。這是棘手的,但可能的。
簡單的答案是:爲您的頂點屬性添加ID(三角形中的每個頂點應具有相同的值 - 「多邊形ID」,以便它們在插值期間不會更改),並將它們通過頂點着色器傳遞給像素着色器,你可以使用它,如果你需要。 – acrilige
這是出於調試目的還是您在運行時需要的東西? –