Sampler (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) 指令在著色器程式的開頭宣告。

取樣維度高於紋理座標中的紋理不合法。 取樣維度低於 紋理座標中的紋理將會忽略額外的紋理座標。

寄存 器