texcrd - ps

從來源紋理座標反覆運算器複製紋理座標資料,作為目的地暫存器中的色彩資料。

Syntax

texcrd dst, src

 

where

  • dst 是目的地暫存器。
  • src 是來源暫存器。

備註

圖元著色器版本 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texcrd x

 

本指令會將座標資料解譯為 RGBA) (色彩資料。

此指令不會取樣任何紋理。 只有在此紋理階段上設定的紋理座標是相關的。

使用 texcrd 時,請記住下列關於如何將資料從來源暫存器複製到目的地暫存器的詳細資料。 來源紋理座標暫存器 (t#) 保存範圍 [-D3DCAPS9] 中的資料。MaxTextureRepeat、D3DCAPS9。MaxTextureRepeat],而目的地暫存器 (r#) 只能在 (可能較小的) 範圍 [-D3DCAPS9] 中保存資料。PixelShader1xMaxValue,D3DCAPS9。PixelShader1xMaxValue]。 請注意,針對圖元著色器 1_4、D3DCAPS9 版。PixelShader1xMaxValue 至少必須是八個。 在限制目的地暫存器範圍外之來源資料的過程中,texcrd 指令可能會在不同的硬體上有不同的行為。 市場第一個圖元著色器第 1_4 版硬體會針對超出範圍的值執行特殊限制。 這個固定線的設計目的是要產生可放入目的地暫存器的數位,但也為了保留超出範圍資料的紋理定址行為, (如果資料後續用於紋理取樣,請參閱 D3DTEXTUREADDRESS) 。 不過,來自不同製造商的新硬體可能不會展示此行為,而且可能只是分割資料以符合目的地暫存器範圍。 因此,使用圖元著色器 1_4 版texcrd 時,最安全的動作是只提供紋理座標資料到已經位於 [-8,8] 範圍內的圖元著色器中,讓您不依賴硬體固定的方式。

不同于texcoord_,texcrd 不會限制介於 0 到 1 之間的值。

使用 texcrd 的規則:

  1. 相同的 .xyz 或 .xyw 修飾詞必須套用至個別 t (n) 暫存器在 texcrd 或 texld 指令內的每個讀取。
  2. texcrd 的第四個通道結果在所有情況下都是未設定/未定義。
  3. 第三個通道針對xyw_dw案例未設定/未定義。

範例

將所有有效的來源修飾詞/選取器和目的地寫入遮罩組合納入考慮,texcrd 的完整允許語法集如下所示。 請注意,.rgba 和 .xyzw 標記法可以交替使用。

將紋理座標反覆運算器暫存器暫存器的前三個通道,t (n) 複製到 r (m) 。 r (m) 的第四個通道未初始化。

texcrd  r(m).rgb, t(n).xyz  

// Produces the same result as the previous instruction
texcrd  r(m).rgb, t(n)

將 t (n) 的第一個、第二和第四個元件放入 r (m) 的前三個通道。 r (m) 的第四個通道未初始化。

texcrd  r(m).rgb, t(n).xyw

以下是使用 _dw 修飾詞的投影分割範例。

本範例會將 x/w 和 y/w 從 t (n) 複製到 r (m) 的前兩個通道。 r (m) 的第三和第四個通道未初始化。 先前寫入 r (m) 的第三個通道的任何資料都會遺失。 r (m) 第四個通道中的資料會因為階段標記而遺失。 針對 1_4 版,會忽略D3DTTFF_PROJECTED旗標。

texcrd  r(m).rg,  t(n)_dw.xyw

圖元著色器指示