C++ Directx网格顶点问题

C++ Directx网格顶点问题,c++,directx,C++,Directx,我使用DirectX创建一个boxmesh,我想得到网格中的顶点位置 但是我发现24个顶点是错误的 或者有没有办法使用24个顶点??? 这是我的密码 D3DXCreateBox(pd3dDevice,2,2,2,&g_model,NULL); DWORD size=g_model->GetNumVertices();g_model->GetVertexBuffer(&Points); Points->Lock(0,0,(void**)&v,0);

我使用DirectX创建一个boxmesh,我想得到网格中的顶点位置

但是我发现24个顶点是错误的

或者有没有办法使用24个顶点??? 这是我的密码

D3DXCreateBox(pd3dDevice,2,2,2,&g_model,NULL);

DWORD size=g_model->GetNumVertices();g_model->GetVertexBuffer(&Points);

Points->Lock(0,0,(void**)&v,0);   


for(int i=0;i<size;i++)
{
    D3DXVECTOR3 vertcle(v[i].x,v[i].y,v[i].z);
    Pos.push_back(vertcle);
};

Points->Unlock();
D3DXCreateBox(pd3dDevice,2,2,2和g_模型,空);
DWORD size=g_model->GetNumVertices();g_模型->GetVertexBuffer(&Points);
点->锁定(0,0,(无效**)和v,0);
对于(int i=0;iUnlock();
矢量位置如下所示:

[码>Pos[24]的“[码>位[24]的“[码.码.码.位[24]的[24]({-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,,,{-1,-1,-1,-1,-1,-1,1,0,0,0,0},,{-1,-1,0,0,0,1,1,1,1,1,1,1,0,0},,,{-1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,,,,,,,,,,,,{-1,1,1,1,1,1},{1,0,0},{1,-1,1},{1,0,0},{1,-1,-1},{1,0,0})std::vector
您可以注意到某些位置错误(-1,0,0)…

您的顶点缓冲区包含法线和位置——奇数向量就是法线

尝试:


for(int i=0;我感谢你!该死!没有书告诉我这样的事!你用什么格式定义你的虚拟现实?我正试图做一些非常类似的事情,但我不知道D3DXCreateBox如何定义虚拟现实的格式。
for(int i=0;i<size;i++)
{
    D3DXVECTOR3 vertcle(v[2*i].x,v[2*i].y,v[2*i].z);
    Pos.push_back(vertcle);
}