テクスチャー座標レジスタ
この頂点シェーダー出力レジスタには、頂点ごとのテクスチャー座標が格納されます。
レジスタは、各レジスタの動作方法を規定するプロパティで構成されます。
プロパティ | 説明 |
---|---|
名前 | oT0 ~ oT7 |
数 | 8 ベクトル |
I/O 許可 | 書き込み専用 |
出力テクスチャー座標レジスタは、出力データ レジスタの配列です。レジスタ データは補間され、テクスチャー サンプリング ステージで、ピクセル シェーダーにデータを提供するためのテクスチャー座標として使われます。
テクスチャー座標レジスタに書き込むときは、対応するテクスチャー マップの次元と同じ数の浮動小数点値のみを渡すことをお勧めします。渡す値は修飾子を使って制御します。たとえば、2D テクスチャー マップには .xy を使用します。
プログラム可能な頂点シェーダーを使用するときは、固定機能頂点パイプライン フラグ D3DTEXTURETRANSFORMFLAGS (D3DTTFF_COUNT1、D3DTTFF_COUNT2、D3DTTFF_COUNT3、D3DTTFF_COUNT4) を 0 に設定する必要があります。
オブジェクトの頂点データによって、入力テクスチャー座標が指定されます。タイル化されたテクスチャーを使用しないオブジェクトのテクスチャー座標は、一般に [0,1] の範囲にあります。地面など、タイル化されたテクスチャーを使用するオブジェクトのテクスチャー座標は、通常 [-n,+n] の範囲にあります。n は任意の浮動小数点数です。
ラスター化のために、頂点データに対してテクスチャー座標の補間が行われます。ラスター化では、テクスチャー座標がオブジェクトの頂点間で補間され、テクスチャー ラッピングによって変更され、テクスチャー サイズに合わせてスケーリングされて (さらにテクスチャー アドレッシング モードも考慮されて)、整数インデックスが生成されます。そして、このインデックスを使ってテクスチャー ルックアップが行われます。テクスチャーをタイル化できる回数を指定するには、D3DCAPS9 の MaxTextureRepeat の値を使用します。
例
テクスチャー座標レジスタを宣言します。
dcl_texcoord v7
頂点ごとのテクスチャー座標を出力レジスタにコピーします。
mov oT0, v7
頂点シェーダーのバージョン | 1_1 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|
テクスチャー座標レジスタ | x | x | x | x | x | x |