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 の組み合わせになる。

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