點陣化順序檢視

點陣化排序檢視 (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 相關。 請注意,下列方法、結構和協助程式類別會參考點陣化程式:

Direct3D 11.3 功能

著色器模型 5.1