共用方式為


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 - pssincos - ps及任何 tex* 指令以外的任何指令使用。

對於ps_2_0、ps_2_x和ps_2_sw,_sat指令修飾詞不能與寫入任何輸出暫存器的指令搭配使用, (輸出色彩暫存器輸出深度暫存器) 。 這項限制不適用於ps_3_0和更新版本。

範例:

dp3_sat r0, v0, c1

圖元著色器指示