- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenGL图形编程4网格化曲线曲面与实体造型(陈永强),opengl曲面,opengl贝塞尔曲面,opengl绘制曲面,opengl网格,solidworks曲面实体化,proe曲面实体化,犀牛网格转曲面,proe曲面切除实体,犀牛网格建立曲面
4.网格化曲线曲面与实体造型 4.1网格化 4.2曲线曲面 4.3实体 4.1网格化 OpenGL只能直接显示简单的凸多边形。简单凸多边形就是多边形的边只在顶点处相交,没有重复的顶点,并且任何顶点都只有两条边相遇。 如果需要显示凹多边形、中间有洞的多边形或者具有相交边的多边形,就必须分解为简单的凸多边形,即网格化。 4.1网格化 复杂多边形网格化步骤: 创建一个网格化对象 注册在网格化期间执行操作的回调函数 指定网格化属性 指定一个或多个封闭多边形组成的轮廓,以创建并渲染分割后的多边形 删除网格化对象 4.1网格化 创建网格化对象 GLUtesselator* gluNewTess(void); 函数创建一个网格化对象,并返回一个指向该对象的指针,如果创建失败则返回NULL指针。 4.1网格化 网格化回调函数 void glTessCallback(GLUtesselator* tessobj,GLenum type,void (* fn)() ); 函数将回调函数fn与网格化对象tessobj关联起来,类型由参数type指定。 4.1网格化 网格化属性 void gluTessProperty(GLUtesselator *tessobj,GLenum property,GLdouble value ); 函数设置网格化对象tessobj的property属性,其值设为value。 最重要最复杂的是环绕规则,决定了多边形的“内部”和“外部”。 4.1网格化 定义多边形 void glTessBeginPolygon(GLUtesselator *tessobj,void *user_data ); void glTessEndPolygon(GLUtesselator *tessobj ); 此对函数将多边形同网格对象tessobj关联起来,参数user_data指向用户定义的数据。可以定义一条或多条轮廓线。 void glTessBeginContour(GLUtesselator *tessobj); void glTessEndContour(GLUtesselator *tessobj ); 此对函数指定一条封闭的轮廓线,默认将轮廓线中最后一个顶点和第一顶点相连。 void gluTessVertex(GLUtesselator *tessobj,GLdouble coords[3],void *vertex_data); 函数指定轮廓线的一个顶点。 4.1网格化 删去网格化对象 void gluDeleteTess(GLUtesselator *tessobj ); 删去网格化对象tessobj,并释放其占用的内存。 4.1网格化 例子 红皮书tess.c 4.2.1Bezier曲线曲面 例子 教材【程序8-2】 红皮书bezcurve.c bezsurf.c bezmesh.c texturesurf.c 4.2.2B样条曲线曲面 5.创建NURBS曲线曲面 曲线 void gluNurbsCurve(GLUnurbsObj *nobj, GLint uknot_count, GLfloat *ukont, GLint u_stride, GLfloat *ctlarray, GLint uorder, GLenum type); 4.2.2B样条曲线曲面 5.创建NURBS曲线曲面 曲面: void gluNurbsSurface (GLUnurbsObj *nobj, GLint uknot_count, GLfloat *ukont, GLint vknot_count, GLfloat *vkont, GLint u_stride, GLint v_stride, GLfloat *ctlarray, GLint uorder, GLint vorder, GLenum type); 4.2.2B样条曲线曲面 例子 教材【程序8-4】 红皮书surface.c 4.3实体 3.GLU二次几何体 通过网格化并用多边形逼近来模拟二维和三维几何体。 4.3实体 3.GLU二次几何体 渲染二次几何体步骤: 1)创建一个二次几何体对象 GLUquadricObj* gluNewQuadric() 2)指定二次对象的渲染属性 绘制模式/法线/法线方向/纹理坐标 3)注册一个错误处理回调函数 gluQuadricCallback() 4)根据二次对象类型调用相应的渲染函数 材质/光照 5)删除二次对象 gluDeleteQuadric() 4.3实体 3.GLU二次几何体 二次对象属性
您可能关注的文档
- Origin图形绘制及曲线拟合.ppt
- catia曲线和曲面.ppt
- 6.29裸眼井测井资料现场验收标准和实例分析2005.ppt
- B样条曲线与曲面.ppt
- 超声波成像测井ppt.ppt
- 测井技术教程3---交会图技术-1.ppt
- 中原油田常用测井方法介绍1章.ppt
- 第10章脉冲中子测井.ppt
- 中原油田常用测井方法介绍2章2.ppt
- 一,聚合物的基本概念重复单元和链节结构单元和单体单元平均聚合度.ppt
- 13.完形填空必备思维背记-备战2023年中考英语考前必背(通用版).docx
- 必威体育精装版离婚协议书通用的范文5篇.docx
- 中国发电机行业市场全景监测及投资前景展望报告.docx
- 2025年中国废轮胎炼油设备行业市场调研及投资战略研究报告.docx
- 绿化工程施工合同模板6篇.docx
- 2025年中国生物材料生产设备制造行业市场全景监测及投资前景展望报告.docx
- 2025年中国暖通泵行业市场全景监测及投资策略研究报告.docx
- 2025年中国隔离变压器市场全面调研及行业投资潜力预测报告.docx
- 融资租赁合同范本通用版8篇.docx
- 中国物联网设备行业市场全景分析及投资前景展望报告.docx
文档评论(0)