gpt4 book ai didi

c++ - Directx网格顶点问题

转载 作者:行者123 更新时间:2023-11-30 04:33:52 24 4
gpt4 key购买 nike

我用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();

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)......

最佳答案

您的顶点缓冲区包含法线和位置——奇数 vector 是法线。

尝试:

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);
}

关于c++ - Directx网格顶点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6340730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com