共用方式為


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

像素著色器指示