Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® Direct3D® レンダリング メソッドで使用する頂点フォーマット記述に D3DFVF_XYZ フラグを含め、D3DFVF_NORMAL フラグを含めていない場合、その頂点は「未トランスフォーム ライティング済みの頂点」として識別される。フラグの依存および排他関係の詳細については、「柔軟な頂点フォーマット フラグ」を参照すること。
「未トランスフォーム ライティング済みの頂点」を使用すると、アプリケーションは Direct3D に頂点に対するライティング計算を実行しないように要求するが、Direct3D は以前に設定されたワールド行列、ビュー行列、および射影行列を使用して頂点をトランスフォームする。ライティング計算は実行されないので、頂点法線は必要ない。システムは、各頂点のディフューズ成分とスペキュラ成分をシェーディングに使用する。これらの色は任意に指定しても、独自のライティング公式を使用して計算してもよい。ディフューズ成分またはスペキュラ成分を含めない場合は、デフォルト カラーが使用される。ディフューズ色のデフォルト値は 0xFFFFFFFF で、スペキュラ色のデフォルト値は 0x0 である。
位置座標といくらかの色情報を含めるという点を除いては、その他の頂点タイプと同様、未ライティングの頂点フォーマットにテクスチャ座標セットを含めたり、無視することができる。
Microsoft Visual Basic® で記述されたアプリケーションでは、独自の頂点フォーマットを定義しても、ライティングのある頂点に D3DLVERTEX 型または D3DLVERTEX2 型を使用してもよい。これらの型にアプリケーションで必要なすべてのフィールドが含まれていない場合は、別の型を定義することができる。新しい構造体を宣言するときは、必ず頂点の成分が正しい順序になるようにする。次のサンプル コードは、ディフューズ頂点カラー、スペキュラ頂点カラー、および 3 つのテクスチャ座標セットを持つ、未トランスフォームでライティング済みの有効な頂点を宣言する。
' ' この頂点の頂点フォーマット記述は、 ' (D3DFVF_XYZ Or D3DFVF_DIFFUSE Or ' D3DFVF_SPECULAR Or D3DFVF_TEX3) ' になる。 ' Type LITVERTEX x As Single ' 位置座標 y As Single z As Single Diffuse As Long ' ディフューズ色 Specular As Long ' スペキュラ色 tu1 As Single ' テクスチャ座標 tv1 As Single tu2 As Single tv2 As Single tu3 As Single tv3 As Single End Type
この型での頂点記述は、柔軟な頂点フォーマット フラグ D3DFVF_XYZ、D3DFVF_DIFFUSE、D3DFVF_SPECULAR、および D3DFVF_TEX3 の組み合わせになる。
詳細については、「頂点フォーマットについて」を参照すること。