我正在尝试阅读为 DirectX 应用程序创建的 3D 模型,这些模型的定义方式如下:
- 在文件头中,给出了网格的灵活顶点格式(FVF)(实际上,我测试的网格中有 D3DFVF_{XYZ,DIFFUSE,NORMAL,TEX1,TEX2} 的任意组合)
- 然后,
n
顶点以线性模式给出,场根据 FVF 呈现。
但是,我不知道这些字段的顺序。逻辑是它在 DirectX 文档中的某个地方定义,但我找不到它。例如,这两种结构中哪一种是正确的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
)来回答这个问题。指向文档正确页面的指针也可以,因为我找不到它:)。