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) 指令在著色器程式的開頭宣告。
取樣維度高於紋理座標中的紋理不合法。 取樣維度低於 紋理座標中的紋理將會忽略額外的紋理座標。
相關主題