texbem - ps

偽のバンプ環境マップ変換を適用します。 これは、アドレス摂動データ (du,dv)、および 2D バンプ環境マトリックスを使用して、宛先レジスタのテクスチャ アドレス データを変更することによって実現されます。

構文

texbem dst,src

 

where

  • dst は宛先レジスタです。
  • src はソース レジスタです。

注釈

ピクセル シェーダーのバージョン 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texbem x x x

 

src レジスタの赤と緑の色データは、摂動データ (du,dv) として解釈されます。

この命令は、2D バンプ環境マッピング マトリックスを使用して、ソース レジスタ内の赤と緑のコンポーネントを変換します。 結果は、宛先レジスタ番号に対応するテクスチャ座標セットに追加され、現在のテクスチャ ステージのサンプリングに使用されます。

この操作では、du と dv は常に符号付き数量として解釈されます。 バージョン 1_0 および 1_1 の場合、入力引数で Source Register Signed Scaling 入力修飾子 (_bx2) は使用できません。

この命令は、入力テクスチャに符号付き書式データが含まれている場合に、定義された結果を生成します。 混合形式データは、最初の 2 つのチャネルに署名付きデータが含まれている場合にのみ機能します。 サーフェス形式の詳細については、「 D3DFORMAT」を参照してください。

これは、偽のピクセルごとの環境マッピングや拡散光 (バンプ マッピング) など、アドレスの摂動に基づくさまざまな手法に使用できます。

この命令を使用する場合、テクスチャ レジスタは次のシーケンスに従う必要があります。

// The texture assigned to stage t(n) contains the (du,dv) data
// The texture assigned to stage t(m) is sampled
tex     t(n)                    
texbem  t(m),  t(n)      where m > n

命令内で実行される計算を次に示します。

// 1. New values for texture addresses (u',v') are calculated
// 2. Sample the texture using (u',v')

u' = TextureCoordinates(stage m)u + D3DTSS_BUMPENVMAT00(stage m)*t(n)R + D3DTSS_BUMPENVMAT10(stage m)*t(n)G v' = TextureCoordinates(stage m)v + D3DTSS_BUMPENVMAT01(ステージ m)*t(n)R + D3DTSS_BUMPENVMAT11(ステージ m)*t(n)G t(m)RGBA = TextureSample(stage m)

(u',v') を座標として使用する

texbem - ps または texbeml - ps 命令によって読み取られたデータを登録します。これは、別の texbem - ps または texbeml - ps を除き、後で読み取ることはできません。

// This example demonstrates the validation error caused by t0 being reread:
ps_1_1
tex t0
texbem t1, t0
add r0, t1, t0

(Instruction Error) (Statement 4) Register data that has been read by 
texbem or texbeml instruction cannot be read by other instructions

テクスチャ マップが識別され、テクスチャ ステージが識別されたシェーダーの例を次に示します。

ps_1_1
tex t0              ; Define t0 to get a 2-tuple DuDv
texbem t1, t0       ; Compute (u',v')
                    ; Sample t1 using (u',v')
mov r0, t1          ; Output result

texbem では、次のテクスチャ ステージで次のテクスチャが必要です。

  • ステージ 0 には、(du,dv) 摂動データを含むバンプ マップが割り当てられます。
  • ステージ 1 では、カラー データを含むテクスチャ マップを使用します。
  • この命令では、サンプリングされるテクスチャ ステージにマトリックス データを設定します。
  • これは、摂動データとマトリックスが同じテクスチャ ステージを占める固定関数パイプラインの機能とは異なります。

ピクセル シェーダーの手順