點陣化順序檢視
點陣化排序檢視 (ROV) 允許圖元著色器程式碼以宣告標記 UAV 系結,以改變 UAV 圖形管線結果順序的一般需求。 這可讓順序獨立透明度 (OIT) 演算法運作,這在檢視中有多個透明物件彼此對齊時,可提供更好的轉譯結果。
概觀
標準圖形管線可能無法正確組合多個包含透明度的紋理。 如網狀柵欄、水氣、火氣、植物和彩色玻璃等物件會使用透明度來取得所需的效果。 當包含透明度的多個紋理彼此對齊時,就會發生問題, (在包含) 的玻璃建築物前面的柵欄前面,例如) 。 點陣化排序檢視 (ROV) 讓基礎 OIT 演算法能夠使用硬體的功能來嘗試正確解析透明度順序。 透明度是由圖元著色器處理。
點陣化排序檢視 (ROV) 允許圖元著色器程式碼以宣告標記 UAV 系結,以改變 UAV 圖形管線結果順序的一般需求。
ROV 保證任何一對重迭圖元著色器調用的 UAV 存取順序。 在此情況下,「重迭」表示叫用是由相同的繪製呼叫所產生,並在圖元頻率執行模式中共用相同的圖元座標,以及取樣頻率模式中的相同圖元和樣本座標。
執行重迭 ROV 存取圖元著色器調用的順序,與提交幾何的順序相同。 這表示,對於重迭的圖元著色器調用,圖元著色器調用所執行的 ROV 寫入必須可供後續調用讀取,且不得影響先前調用的讀取。 圖元著色器調用所執行的 ROV 讀取必須反映先前調用的寫入,且不得反映後續調用的寫入。 這對於 UAV 很重要,因為它們會從輸出不變異保證中明確省略,通常是由圖形管線結果的固定順序所設定。
實作詳細資料
點陣化排序檢視 (ROV) 會以下列新的高階著色器語言宣告 (HLSL) 物件,而且僅適用于圖元著色器:
RasterizerOrderedBuffer
RasterizerOrderedByteAddressBuffer
RasterizerOrderedStructuredBuffer
RasterizerOrderedTexture1D
RasterizerOrderedTexture1DArray
RasterizerOrderedTexture2D
RasterizerOrderedTexture2DArray
RasterizerOrderedTexture3D
使用這些物件的方式與其他 UAV 物件相同, (例如 RWBuffer
etc.) 。
API summary
ROV 是僅限 HLSL 建構,可將不同的行為語意套用至 UAV。 所有與 UAV 相關的 API 也與 ROV 相關。 請注意,下列方法、結構和協助程式類別會參考點陣化程式:
- D3D11_RASTERIZER_DESC2 :保留點陣化描述的結構,並指出用來建立點陣化描述的CD3D12_RASTERIZER_DESC2協助程式類別。
-
D3D11_FEATURE_DATA_D3D11_OPTIONS2 :保留布林值
ROVsSupported
的結構,表示支援。 - ID3D11Device::CheckFeatureSupport :存取支援功能的方法。
相關主題