ps_2_0和更新版本修飾詞
指令修飾詞會影響指令的結果,再寫入目的地緩存器。
本節包含圖元著色器 2_0 版和更新版本所實作之指令修飾詞的參考資訊。
名字 | 語法 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
心 | _質心 | x | x | x | x | x |
Partial_Precision | _pp | x | x | x | x | x |
飽和 | _坐 | x | x | x | x | x |
質心
心距修飾詞是選擇性修飾詞,可在基本類型未涵蓋多重取樣圖元中心時,限制基本類型範圍內的屬性插補。 這可以在 距取樣中看到。
您可以將心形修飾詞套用至元件指令,如下所示:
dcl_texcoord0_centroid v0
您也可以將心形修飾詞套用至語意,如下所示:
float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
return tex2D( PointSampler, TexCoord );
}
此外,以色彩語意宣告的任何 輸入色彩緩存器 (v#) 都會自動套用距心。 從取樣距心屬性計算的漸層不保證準確。
部分有效位數
部分有效位數指令修飾詞 (_pp) 會指出部分有效位數可接受的區域,前提是基礎實作支援它。 實作一律可以忽略 修飾詞,並以完整精確度執行受影響的作業。
_pp修飾詞可以發生在兩個內容中:
- 在紋理座標宣告上,啟用以部分精確度形式將紋理座標傳遞至圖元著色器。 例如,這允許使用紋理座標將色彩數據轉接至圖元著色器,這可能比某些實作中的完整精確度更快。 如果沒有這個修飾詞,紋理座標必須以完整精確度傳遞。
- 在任何指令上,包括紋理載入指示。 這表示允許實作以部分有效位數執行指令,並儲存部分有效位數結果。 如果沒有明確的修飾詞,指令必須以完整精確度執行(不論輸入有效位數為何)。
例子:
dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3
飽和
飽和指令修飾詞 (_sat) 會在寫入目的地緩存器之前,將指令結果飽和(或夾板)到範圍 [0, 1]。
_sat指令修飾詞可以搭配frc - ps 、sincos - ps及任何 tex* 指令以外的任何指令使用。
對於ps_2_0、ps_2_x和ps_2_sw,_sat指令修飾詞不能與寫入任何輸出緩存器的指令搭配使用(輸出色彩緩存器 或 輸出深度緩存器)。 這項限制不適用於ps_3_0和更新版本。
例:
dp3_sat r0, v0, c1
相關主題