texld - ps_1_4
ソース レジスタの内容をテクスチャー座標として使用してカラー データ (RGBA) をサンプリングし、それをデスティネーション レジスタにロードします。サンプリングされるテクスチャーは、デスティネーション レジスタ番号に関連付けられたテクスチャーです。
texld dst, src |
---|
レジスタ
引数 | 説明 | レジスタ | |||
---|---|---|---|---|---|
vn | cn | tn | rn | ||
dst | デスティネーション レジスタ。 | x | |||
src | ソース レジスタ。 | x | |||
x | x |
ソース レジスタとして r(n) を使用する場合、直前のシェーダーのフェーズで最初の 3 要素 (XYZ) が初期化されている必要があります。
レジスタの詳細については、「ps_1_1__ps_1_2__ps_1_3__ps_1_4 レジスタ」を参照してください。
解説
この命令では、デスティネーション レジスタ番号に関連付けられているテクスチャー ステージのテクスチャーがサンプリングされます。テクスチャーはソース レジスタのテクスチャー座標データを使用してサンプリングされます。
texld と texcrd 命令の構文では、テクスチャー レジスタ修飾子を使用した射影除算がサポートされています。ピクセル シェーダー バージョン 1.4 の場合、D3DTTFF_PROJECTED テクスチャー トランスフォーム フラグが常に無視されます。
texld を使用する際の規則を次に示します。
- texcrd と texld 命令内における個々の t(n) レジスタの読み取りすべてに対して、同じ .xyz または .xyw 修飾子を適用する必要があります。t(n) レジスタの読み取りに .xyw が使用されている場合、同じ t(n) レジスタに対して .xyw_dw を使用した他の読み取りを組み合わせることができます。
- _dz ソース修飾子は、r(n) ソース レジスタを使用した texld でのみ (つまりフェーズ 2 でのみ) 有効です。
- _dz ソース修飾子は、シェーダーあたり 2 回以上は使用できません。
ピクセル シェーダーのバージョン | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
texld | x |
例
texld 命令を使用して、ソース テクスチャー座標データから使用される要素をある程度制御することができます。texld で使用できる構文すべてを次に示します。有効なソース レジスタ修飾子、セレクター、書き込みマスクの組み合わせもすべて示しています。
texld r(m), t(n).xyz
// Uses xyz from t(n) to sample 1D, 2D, or 3D texture
texld r(m), t(n)
// Same as previous
texld r(m), t(n).xyw
// Uses xyw (skipping z) from t(n) to sample 1D, 2D or 3D texture
texld r(m), t(n)_dw.xyw
// Samples 1D or 2D texture at x/w, y/w from t(n). The result
// is undefined for a cube-map lookup.
texld r(m), r(n).xyz
// Samples 1D, 2D, or 3D texture at xyz from r(m)
// This is possible in the second phase of the shader
texld r(m), r(n)
// Same as previous
texld r(m), r(n)_dz.xyz
// Samples 1D or 2D texture at x/z, y/z from r(m)
// Possible only in second phase
// The result is undefined for a cube-map lookup
texld r(n), r(n)_dz
// Same as previous