首页 > 其他 > 详细

《高效学习OpenGL》 之 多边形分格化 gluNewTess(),gluTessCallback(),gluTessProperty(),gluTessBeginPolygon()

时间:2014-03-05 19:31:28      阅读:1143      评论:0      收藏:0      [点我收藏+]
   GLUtesselator* gluNewTess( void );
   //创建一个新的分割化对象,并返回一个指向他的指针,如果创建失败,返回NULL
   void gluTessCallback(GLUtesselator *tess, GLenum which, void(CALLBACK *fn)());
	//把回调函数fn与分格化对象tess相关联。回调函数的类型是由which决定的,which的原型见下图

bubuko.com,布布扣

   gluTessProperty(tobj, GLU_TESS_WINDING_RULE,
                   GLU_TESS_WINDING_POSITIVE);
   void gluTessProperty(GLUtesselator *tess, GLenum which, GLdouble value );
   //对于分格化对象tess,which的当前值被设置为value。
   //如果which是GLU_TESS_WINDING_RULE,他决定了多边形哪部分位于外部,哪部分位于内部,value可以是GLU_TESS_WINDING_ADD(默认)、GLU_TESS_WINDING_POSITIVE等

   void gluTessNormal(GLUtesselator *tess, GLdouble x, GLdouble y, GLdouble z);
   //对于分格化对象tess,此函数定义了一条法线向量,用于控制生成多边形的环绕方向。

   gluTessBeginPolygon(tobj, NULL);
   void gluTessBeginPolygon(GLUtesselator *tess,void *polygon_data);
   void gluTessEndPolygon(GLUtesselator *tess);
   //开始和结束对需要进行分格化的多边形的指定,并把分格化对象tess与它相关联。polygon_data指向一个用户定义的数据结构,传递给所有在GLU_YESS_*_DATA回调函数中注册的函数。

   gluTessBeginContour(GLUtesselator *tess);
   gluTessEndContour(GLUtesselator *tess);
   //开始和结束一条轮廓线的指定,这条轮廓线是一个多边形的一部分,闭合的轮廓线是通过零次或多次调用gluTessVertex()形成的,每条轮廓线的最后一个顶点会连接到第一个顶点

         gluTessVertex(tobj, star[4], star[4]);
		 void gluTessVertex(GLUtesselator *tess, GLdouble coords[3], void *data );
		 //在实际使用中,指定分格化对象的当前轮廓线的一个顶点。coords包含了三维顶点坐标,data是个指针,它发送到与GLU_TESS_VERTEX或GLU_TESS_VERTEX_DATA相关联的回调函数。

   gluDeleteTess(GLUtesselator *tess);
   //删除分格化对象



《高效学习OpenGL》 之 多边形分格化 gluNewTess(),gluTessCallback(),gluTessProperty(),gluTessBeginPolygon(),布布扣,bubuko.com

《高效学习OpenGL》 之 多边形分格化 gluNewTess(),gluTessCallback(),gluTessProperty(),gluTessBeginPolygon()

原文:http://blog.csdn.net/biggbang/article/details/20544945

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!