次のように定義されている DirectX アプリケーション用に作成された 3D モデルを読み取ろうとしています。
- ファイル ヘッダーには、メッシュの Flexible Vertex Format (FVF) が示されています (実際、テストしたメッシュには D3DFVF_{XYZ,DIFFUSE,NORMAL,TEX1,TEX2} の任意の組み合わせがあります)。
- 次に、
n
頂点は線形パターンで与えられ、フィールドは FVF に従って表示されます。
ただし、これらのフィールドの順序はわかりません。ロジックは、DirectX ドキュメントのどこかに定義されているということですが、見つけることができませんでした。たとえば、これら 2 つの構造のうち、FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_NORMAL
(C 構文ですが、この問題はすべての言語に適用されます) で正しいのはどれですか?
// This one ?
struct vertex1
{
D3DVERTEX pos;
DWORD color;
D3DVERTEX normal;
};
// Or this one ?
struct vertex2
{
D3DVERTEX pos;
D3DVERTEX normal;
DWORD color;
};
この質問に対する一般的な回答と、考えられるすべてのフィールド (例: XYZ before DIFFUSE before NORMAL before TEX1 before TEX2
) を教えてください。私はそれを見つけることができなかったので、ドキュメントの正しいページへのポインターも問題ありません:)。