ps_2_0及更新版本修飾詞
指令修飾詞會影響指令的結果,再將其寫入目的地暫存器。
本節包含圖元著色器 2_0 版和更新版本所實作之指令修飾詞的參考資訊。
Name | 語法 | 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
相關主題