关于网格化tessellation的理解和问题

本文探讨了网格化(Tessellation)过程中的关键步骤和常见问题,包括环绕顶点的平面一致性、顶点数组的定义位置、数据传递方式以及不同环绕顶点数的处理。通过实例分析,解释了为何顶点数据必须在网格化对象的作用域内,并展示了如何调整顶点数据源以实现正确的网格化结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 首先网格化的步骤为(代码示意)

GLUtesselator *pTessLator;
pTessLator=gluNewTess(); //创建网格化对象
gluTessCallback(pTessLator,GLU_TESS_BEGIN,(void (__stdcall *)())glBegin);//设置回调函数
gluTessCallback(pTessLator,GLU_TESS_END,(void (__stdcall *)())glEnd);
gluTessCallback(pTessLator,GLU_VERTEX,(void (__stdcall *)())glVertex3dv);
gluTessCallback(pTessLator,GLU_TESS_ERROR,(void (__stdcall *)())TessError);
gluTessBeginPolygon(pTessLator,NULL);//开始一条曲线,后面逐一指定顶点,所以第二参数为空
gluTessBeginContour(pTessLator);
group=&(tess.groups[0]);
vector<VertexPoint>::iterator it;
GLdouble vertex[10][3];
int i=0;
for (it=group->vertexsArray.begin();it!=group->vertexsArray.end() ;it++)
{
VertexPoint vp=*it;
vertex[i][0]=vp.xyz[0];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值