|
用D3DXCreateCylinder创建一个上下底半径不同的圆柱cylinder后,请问能否通过什么方式,添加一个三角形到圆柱面上? 我目前的思路是这样:克隆一个cylinder,再向克隆的cylinder对应的VB 和IB中添加三角形的相应顶点和索引。当我往克隆的cylinder对应的VB中添加三个顶点后,我发现VB中顶点数仍然和原cylinder对应VB中的顶点数相同,这是什么原因? 如何达到往圆柱cylinder上添加一个三角形的目的?代码如下:- [br]1 //(生成圆柱体Objects)[br]2 D3DXCreateCylinder( Device, 1.0f, 1.0f, 3.0f,4,2, &Objects, 0);[br]3 [br]4 //克隆一个圆柱体myMesh[br]5 ID3DXMesh* myMesh;[br]6 if(D3D_OK!=Objects->CloneMeshFVF(D3DXMESH_SYSTEMMEM,Objects->GetFVF()|myVertex::FVF,Device,&myMesh))[br]7 return false;[br]8 [br]9 IDirect3DVertexBuffer9 *vb;[br]10 [br]11 myMesh->GetVertexBuffer(&vb);[br]12 myVertex *vertex;[br]13 int count=myMesh->GetNumVertices();[br]14 [br]15 //往myMesh的缓冲区添加三个顶点[br]16 vb->Lock(0,0,(void**)&vertex,0);[br]17 for (int i=0;i<3;i++)[br]18 {[br]19 vertex[count+i]=myVertex(2+i,5,5,0,0,1,0,1);[br]20 }[br]21 vb->Unlock();
复制代码 |
|