【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 1690|回复: 2

能否添加新顶点到D3DXCreateCylinder创建网格的缓冲区

[复制链接]
发表于 2009-6-8 14:54:30 | 显示全部楼层 |阅读模式
 用D3DXCreateCylinder创建一个上下底半径不同的圆柱cylinder后,请问能否通过什么方式,添加一个三角形到圆柱面上?  我目前的思路是这样:克隆一个cylinder,再向克隆的cylinder对应的VB 和IB中添加三角形的相应顶点和索引。当我往克隆的cylinder对应的VB中添加三个顶点后,我发现VB中顶点数仍然和原cylinder对应VB中的顶点数相同,这是什么原因? 如何达到往圆柱cylinder上添加一个三角形的目的?代码如下:
  1. [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();
复制代码
发表于 2009-6-8 20:28:55 | 显示全部楼层

顶点缓冲区是不是溢出了?

发表于 2009-6-9 13:19:24 | 显示全部楼层
圆柱上添加一个三角形???很奇怪的想法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-2-6 13:16

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表