Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® Visual Basic® の場合、(CONST_D3DTEXTURESTAGESTATETYPE 列挙からの) D3DTSS_TEXCOORDINDEX テクスチャ ステージ ステートを使用して、テクスチャ座標の生成方法を制御する。
通常、このステートは、頂点フォーマットで符号化された特定のテクスチャ座標セットを使用するようシステムに知らせる。このステートに割り当てる値の中に、D3DTSS_TCI_CAMERASPACENORMAL、D3DTSS_TCI_CAMERASPACEPOSITION、または D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR フラグを含めた場合、システムで実行される処理は大きく異なってくる。これらのフラグのいずれかでも存在しているとき、テクスチャ ステージは頂点フォーマットのテクスチャ座標を無視し、システムが生成する座標を優先する。各フラグの意味は、次のとおりである。
これらのフラグは互いに排他的である。これらのフラグのいずれかを使用する場合は、テクスチャ ラッピング モードを決定するためにシステムで使用するインデックス値を指定できる。
次のコードは、Visual Basic でのこれらのフラグの使用方法を示している。
' ' このコードでは、変数 D3DDevice は、Direct3DDevice8 オブジェクトへの ' 有効な参照であると仮定している。 ' ' このテクスチャ ステージの入力テクスチャ座標として ' 頂点位置座標 (カメラ空間) を使用し、 ' D3DRENDERSTATE_WRAP1 レンダリング ステートのラップ モード セットを使用する。 ' Call D3DDevice.SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, _ D3DTSS_TCI_CAMERASPACEPOSITION Or 1 )
注 自動生成されたテクスチャ座標は、テクスチャ座標トランスフォームの入力値として非常に便利であり、またキューブ環境マップの 3 要素ベクトルを計算する必要がないという点でも便利である。