我使用DirectX創建了一個boxmesh,並且我想要獲得網格中的頂點位置,但我發現24個頂點是錯誤的!Directx網格頂點問題
還是有什麼方法可以使用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();
的vectorPos是這樣的:
Pos[24]({-1, -1, -1},{-1, 0, 0},{-1, -1, 1},{-1, 0, 0},{-1, 1, 1},{-1, 0, 0},{-1, 1, -1},{-1, 0, 0},{-1, 1, -1},{0, 1, 0},{-1, 1, 1},{0, 1, 0},{1, 1, 1},{0, 1, 0},{1, 1, -1},{0, 1, 0},{1, 1, -1},{1, 0, 0},{1, 1, 1},{1, 0, 0},{1, -1, 1},{1, 0, 0},{1, -1, -1},{1, 0, 0}) std::vector<D3DXVECTOR3,std::allocator<D3DXVECTOR3> >
你可以看到一些位置是錯誤的(1,0,0)....
你用什麼格式來定義你的頂點?我試圖做一些非常相似的事情,但我不知道D3DXCreateBox如何定義vértices的格式。 – nairdaen 2015-02-09 00:00:39