字段(位置,法线等)在D3D9顶点中的位置

Pie*_*don 5 directx direct3d

我正在尝试阅读为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;
};
Run Code Online (Sandbox Code Playgroud)

我希望对所有可能的字段(例如,XYZ before DIFFUSE before NORMAL before TEX1 before TEX2)提出这个问题的一般答案.指向文档右页的指针也没问题,因为我无法找到它:).

And*_*ith 1

给你

FVF (OP说这个页面的信息不正确。我不知道,没有检查FVF定位是否正确)

发电机