C++ 为什么我的球体纹理会断裂?[Directx 9,c+;+;]
我使用D3DXCreateSphere()函数创建我的球体,我想得到顶点位置来计算纹理坐标,但它坏了!!!我需要帮助~ 这是我的结构顶点: 结构顶点{D3DXVECTOR3范数;float-tu;float-tv;} 这是我的代码:C++ 为什么我的球体纹理会断裂?[Directx 9,c+;+;],c++,directx-9,C++,Directx 9,我使用D3DXCreateSphere()函数创建我的球体,我想得到顶点位置来计算纹理坐标,但它坏了!!!我需要帮助~ 这是我的结构顶点: 结构顶点{D3DXVECTOR3范数;float-tu;float-tv;} 这是我的代码: LPD3DXMESH mesh; LPD3DXMESH texMesh; D3DXCreateSphere(pDev, 3, 20, 20, &mesh, NULL); mesh->CloneMeshFVF(D3DXMESH_SYSTEMMEM
LPD3DXMESH mesh;
LPD3DXMESH texMesh;
D3DXCreateSphere(pDev, 3, 20, 20, &mesh, NULL);
mesh->CloneMeshFVF(D3DXMESH_SYSTEMMEM, FVF_VERTEX, pDev, &texMesh);
mesh->Release();
_VERTEX *pVerts;
if (SUCCEEDED(texMesh->LockVertexBuffer(0, (void **)&pVerts))) {
int numVerts = texMesh->GetNumVertices();
for (int i = 0; i<numVerts; i++) {
pVerts->tu = asinf(pVerts->norm.x) / D3DX_PI + 0.5f;
pVerts->tv = asinf(pVerts->norm.y) / D3DX_PI + 0.5f;
pVerts++;
}
texMesh->UnlockVertexBuffer();
}
pDev->SetTexture(0, texture);
texMesh->DrawSubset(0);
LPD3DXMESH;
LPD3DXMESH-texMesh;
D3DXCreateSphere(pDev、3、20、20和网格,NULL);
网格->CloneMeshFVF(D3DXMESH_SYSTEMMEM、FVF_VERTEX、pDev和texMesh);
网格->释放();
_顶点*pVerts;
if(成功(texMesh->LockVertexBuffer(0,(void**)和pVerts))){
int numVerts=texMesh->GetNumVertices();
对于(int i=0;itu=asinf(pVerts->norm.x)/D3DX_PI+0.5f;
pVerts->tv=asinf(pVerts->norm.y)/D3DX_PI+0.5f;
pVerts++;
}
texMesh->UnlockVertexBuffer();
}
pDev->SetTexture(0,纹理);
texMesh->DrawSubset(0);
为什么要使用超过十年的Direct3D 9?D3DX已弃用且不再受支持。在任何情况下,您都可以查看包含球体的几何限制的源代码。为什么要使用超过十年的Direct3D 9?D3DX已弃用且不再受支持。在任何情况下,您都可以查看源代码包含球体的几何限制性的ce。