Microsoft DirectX 8.0 (Visual Basic)

未トランスフォーム 未ライティングの頂点

レンダリング メソッドに渡す頂点記述に D3DFVF_XYZ または D3DFVF_XYZBn フラグのいくつか、および D3DFVF_NORMAL フラグがある場合は、「未トランスフォーム 未ライティングの頂点」タイプとして識別される。「未トランスフォーム 未ライティングの頂点」を使用すると、アプリケーションは Microsoft® Direct3D にその内部アルゴリズムを使用してすべてのトランスフォーム & ライティング処理を実行するよう効率的に要求できるD3DRS_LIGHTING レンダリング ステートを FALSE に設定して、レンダリングするプリミティブに対して Direct3D ライティング エンジンを無効にできる。

この頂点タイプは、アプリケーションで独自のトランスフォーム & ライティング エンジンを実装する必要がないので、ほとんどのアプリケーションで使用される。ただし、システムによって自動的に計算が実行されるため、各頂点に対していくらかの情報を指定しておく必要がある。

これらの条件以外では、その他の頂点の成分を柔軟に使用または無視できる。たとえば、ディフューズ色またはスペキュラ色を未トランスフォームの頂点に含めることができる。これは Microsoft DirectX® 6.0 以前ではできなかった。各頂点に個々の色を含めると、マテリアル カラーのみ使用したライティング計算を実行するよりも、繊細で柔軟なシェーディング エフェクトが得られる。ただしこの場合、D3DRS_COLORVERTEX レンダリング ステートを使用して個々の頂点単位のカラーを有効にする必要がある。また、未トランスフォーム 未ライティングの頂点には、最大 8 つまでテクスチャ座標セットを含めることができる。Microsoft Visual Basic® アプリケーションでは、頂点に D3DVERTEX 型または D3DVERTEX2 型を使用できる。

これらの型がアプリケーションの要件に合わないときは、独自に定義ができる。ただし、どの頂点の成分がアプリケーションで必要であるかに注意し、必ず正しく順序付けた構造体を宣言して、必要な順序で頂点の成分が表示されるようにしなければならない。次のサンプル コードは、位置座標、頂点法線、ディフューズ色、および 2 つのテクスチャ座標セットを含む有効な頂点フォーマット構造体を宣言する。

'
' この頂点の頂点フォーマット記述は、
' (D3DFVF_XYZ Or D3DFVF_NORMAL Or D3DFVF_DIFFUSE Or D3DFVF_TEX2) になる。
'
Type UNLITVERTEX
    x As Single      ' 位置座標
    y As Single
    z As Single
    nx As Single     ' 法線
    ny As Single
    nz As Single
    Diffuse As Long  ' ディフューズ色
    tu1 As Single    ' テクスチャ座標
    tv1 As Single
    tu2 As Single    ' テクスチャ座標
    tv2 As Single
End Type

この構造体の頂点記述は、柔軟な頂点フォーマット フラグ D3DFVF_XYZ、D3DFVF_NORMAL、D3DFVF_DIFFUSE、および D3DFVF_TEX2 の組み合わせになる。

詳細については、「頂点フォーマットについて」を参照すること。