OPENGL-第9章一般形状.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OPENGL-第9章一般形状

* 第9章 几何体的一般形状 本章学习: 二次曲面的简单几何形状 通用几何形状 各种图元绘制几何形状 绘制复杂多边形 * 已学过的物体建模方法 基本体素方法:球,正方体,茶壶,glut……,应用面窄 一般多边形方法: glBegin(图元类型); 顶点颜色 顶点法矢 顶点坐标 glEnd(); 自由曲面方法 Bezier曲面 NURBS曲面 * 其他物体的构建方法 glu32.lib:提供其他物体的显示功能。 基本思想是:镶嵌(tessellate),即用小三角形或者点铺满物体表面 主要是: 设定简单二次曲面参数 设定绘制锥体、柱体、盘状体、球体的几何参数 * 简单二次曲面的绘制 (1)建立二次曲面的对象 GLUquadricObj *obj; obj = glutNewQuadric(); (2)改变状态-定制绘制类型 gluQuadricDrawStyle(GLUquadricObj *obj, GLenum drawStyle); 绘制类型: GLU_FILL:填充 GLU_LINE:线框 GLU_SILHOUETTE:外轮廓 GLU_POINT:点 绘制对象 * 光照明暗处理 (3)说明光照 gluQuadricNormals(GLUquadricObj *obj, GLenum Normals);//控制光照明暗处理 绘制类型: GLU_NONE GLU_FLAT GLU_SMOOTH (4)gluQuadricOrientation(GLUquadricObj *obj, GLenum Orientation);//控制光照方向(向外或向内) 方向类型: GLU_OUTSIDE GLU_INSIDE 圆柱体(锥体)的绘制 void gluCylinder(*obj, rbase, rtop, h, slice, stack); 沿z轴绘制圆柱(圆锥)体,包含了 rbase, rtop, h:底半径、顶半径和高度 slice:沿径向分解个数 stack:沿轴向分解个数 第9章一般物体pencil * 盘状体绘制 可以带有内孔的盘 void gluDisk(*obj, ri, ro, slice, loops); ri, ro: 孔径(可为0)和盘径 slice:盘外圆的逼近边数 loops:同心圆的个数 第9章一般物体pencil * 绘制扇形区域 void gluPartialDisk(*obj, ri, ro, slice, loops, as, ae); ri, ro, slice, loops : 同前 as:起始角 ae: 从起始角到终止角之间的夹角 用途:工程上常用的饼状图 * 绘制球体 void gluSphere(*obj, r, slice, stack); r : 半径 slice:经线数目 stack: 纬线数目 用途:球类物体 * 复杂多边形 复杂多边形:凹多边形,带有内孔腔的多边形,将这类多边形画出,画法同凸多边形 凹多边形的创建,创建镶嵌对象 GLUtriangulatorObj *tess; /* Tesselator object */ tess = gluNewTess(); 创建的对象将使用这些信息渲染多边形,给出边界即可 回调函数: gluTessCallback(*tess, Which, fn); 例:gluTessCallback(tess, GLU_TESS_BEGIN, glBegin); 指定一个函数开始三角形绘制(包括三种三角形方法) GLU_TESS_BEGIN:三角形 GLU_TESS_BEGIN_DATA:其他三角形方法 GLU_TESS_BEGIN_COMBINE GLU_TESS_END GLU_TESS_VERTEX …… 与前个参数对应给出 * GLU_TESS_BEGIN——glBegin GLU_TESS_VERTEX——glVertex GLU_TESS_END——glEnd 第9章一般物体letter * F16显示分析 多边形:圆柱机身,圆锥机头 发动机:圆台、圆锥、盘 机翼、尾翼:多边形 第9章一般物体F16 * 绘制复杂多边形 gluTessBeginContour()和 gluTessEndContour() 画图过程(字母A): 定义外部轮廓路径(7个顶点,顶点有序) 定义内部轮廓路径 (3个顶点,顶点有序) A 第9章一般物体-letter * * * * * * * * * * 三种三角形方法:GL_TRIANGULES, GL_TRIANGULE_STRIPS, GL_TRIANGULE_FAN 实际上是简单图多边形类似,不在需要管理凹的情况。 * * 鼠标:控制飞行方向 键盘t:控制

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档