共用方式為


取樣器(Direct3D 9 asm-ps)

取樣器是圖元著色器的輸入虛擬緩存器,用來識別取樣階段。 有16個像素著色器取樣階段寄存器:s0 到 s15。 因此,最多可以在單一著色器傳遞中讀取 16 個紋理表面。 使用取樣器暫存器的指令為 texld 和 texldp。

取樣器必須先宣告,才能搭配 dcl_samplerType (sm2, sm3 - ps asm) 指示使用。

像素著色器版本 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
取樣器 x x x x x

 

取樣器是虛擬緩存器,因為您無法直接讀取或寫入它們。

取樣單位對應至紋理取樣階段,封裝由 SetSamplerState提供的特定取樣狀態。 每個取樣器都會唯一識別單一紋理表面,這會使用 SetTexture設定為相應的取樣器。 不過,相同的紋理表面可以在多個取樣器上設定。

在繪製過程中,紋理無法同時被設置為渲染目標和某個階段的紋理。

取樣器可能會顯示為紋理載入指令中唯一的自變數:texldl - ps

在ps_3_0中,如果使用取樣器,則必須使用 dcl_samplerType (sm2, sm3 - ps asm) 指令,在著色器程式開頭宣告它。

取樣維度高於紋理座標的紋理是非法的。 ** 取樣低於紋理座標維度的紋理時,將會忽略多出的紋理座標。

暫存器