texcrd - ps
ソース テクスチャ座標反復子レジスタからテクスチャ座標データをコピー先レジスタのカラー データとしてコピーします。
構文
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 は、8 以上である必要があります。 texcrd 命令は、変換先レジスタの範囲外のソース データをクランプする過程で、ハードウェアによって動作が異なる可能性があります。 市場の最初のピクセル シェーダー バージョン 1_4 ハードウェアは、範囲外の値に対して特別なクランプを実行します。 このクランプは、宛先レジスタに収まる数値を生成するだけでなく、データをテクスチャ サンプリングに使用する場合は、範囲外のデータのテクスチャ アドレス指定動作を保持するように設計されています ( D3DTEXTUREADDRESS を参照)。 ただし、異なる製造元の新しいハードウェアでは、この動作が発生せず、宛先レジスタの範囲に合わせてデータを切り取るだけである可能性があります。 したがって、ピクセル シェーダー バージョン 1_4 texcrd を使用する場合の最も安全な動作は、ハードウェア クランプの方法に依存しないように、既に範囲内にあるピクセル シェーダーにのみテクスチャ座標データを提供することです。
texcoord_とは異なり、texcrd は 0 から 1 の間の値をクランプしません。
texcrd を使用するための規則:
- texcrd 命令または texld 命令内の個々の t(n) レジスタのすべての読み取りには、同じ .xyz または .xyw 修飾子を適用する必要があります。
- texcrd の 4 番目のチャネルの結果は、すべてのケースで未設定/未定義です。
- 3 つ目のチャネルは、xyw_dwケースでは未設定/未定義です。
例
有効なすべてのソース修飾子/セレクターと宛先書き込みマスクの組み合わせを考慮して、texcrd に対して許可される構文の完全なセットを次に示します。 .rgba と .xyzw 表記は同じ意味で使用できることに注意してください。
テクスチャ座標反復子レジスタ t(n) の最初の 3 つのチャネルを r(m) にコピーします。 r(m) の 4 番目のチャネルは初期化されていません。
texcrd r(m).rgb, t(n).xyz
// Produces the same result as the previous instruction
texcrd r(m).rgb, t(n)
t(n) の 1 番目、2 番目、および 4 番目のコンポーネントを r(m) の最初の 3 つのチャネルに配置します。 r(m) の 4 番目のチャネルは初期化されていません。
texcrd r(m).rgb, t(n).xyw
_dw修飾子を使用した射投影除算の例を次に示します。
次の使用例は、t(n) から r(m) の最初の 2 つのチャネルに x/w と y/w をコピーします。 r(m) の 3 番目と 4 番目のチャネルは初期化されていません。 r(m) の 3 番目のチャネルに以前に書き込まれたデータはすべて失われます。 r(m) の 4 番目のチャネルのデータは、位相マーカーにより失われます。 バージョン 1_4 では、D3DTTFF_PROJECTED フラグは無視されます。
texcrd r(m).rg, t(n)_dw.xyw
関連トピック