著色器指定的樣板參考值 (Direct3D 11 圖形)
讓圖元著色器能夠輸出樣板參考值,而不是使用 API 指定的著色器,可對樣板作業進行非常細微的控制。
著色器指定的值會取代該調用的 API 指定的 樣板參考值 ,這表示變更會影響樣板測試,而樣板作業D3D11_STENCIL_OP_REPLACE (D3D11_STENCIL_OP) 的一個成員用來將參考值寫入樣板緩衝區。
在舊版的 D3D11 中,樣板參考值只能由 ID3D11DeviceCoNtext::OMSetDepthStencilState 方法指定。 這表示此值只能在每一繪製資料細微性上定義。 這個 D3D11.3 功能可讓開發人員讀取和使用樣板參考值 (SV_StencilRef
) ,這是圖元著色器的輸出,這表示它可以在每圖元或個別樣本的資料細微性上指定。
此功能在 D3D11.3 中是選擇性的。 若要測試其支援,請使用ID3D11Device::CheckFeatureSupport檢查 PSSpecifiedStencilRefSupported
D3D11_FEATURE_DATA_D3D11_OPTIONS2的布林值欄位
以下是在圖元著色器中使用 SV_StencilRef
的範例:
uint main2(float4 c : COORD) : SV_StencilRef
{
return uint(c.x);
}
相關主題