opengl编程指南002状态管理和绘制几何物体.docVIP

opengl编程指南002状态管理和绘制几何物体.doc

  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编程指南002状态管理和绘制几何物体

第二章状态管理和绘制几何物体 绘图工具箱 清除窗口 在计算机中,保存图片的内存通常被计算机所绘制的前一幅图像所填满,因此在绘制新场景之前需要把它清除为某种背景颜色。至于应该使用那种背景颜色,则取决于应用程序本身。 我们还必须知道像素颜色是如何存储在称为位平面的图形硬件中的。存储的方式有两种:可以把像素颜色的红、绿、蓝和alpha值直接存储在位平面中;或者可以存储一个颜色索引值,用它来引用颜色查找表中的一个项目。RGBA颜色显示模式更常用一些。 例如,下面这两行代码把一个RGBA模式的窗口清除为黑色: glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT); 第一行代码把清除颜色设置为黑色,第二行代码把整个窗口清除为当前的清除颜色 GL_COLOR_BUFFER_BIT 清除颜色缓冲区 GL_DEPTH_BUFFER_BIT 清除深度缓冲区 GL_ACCUM_BUFFER_BIT 清除累积缓冲区 GL_STENCIL_BUFFER_BIT 清除模版缓冲区 制定颜色 一般而言,OpenGL程序员首先设置颜色或颜色方案,然后再绘制物体。 为了设置颜色,可以使用glColor3f()函数。它接受三个参数,它们都是范围在0.0到1.0之间的浮点数,分别表示颜色的红、绿和蓝的成分。 glColor3f(0.0,0.0,0.0)黑色 glColor3f(1.0,0.0,0.0)红色 glColor3f(0.0,1.0,0.0)绿色 glColor3f(1.0,1.0,0.0)黄色 glColor3f(0.0,0.0,1.0)蓝色 glColor3f(1.0,0.0,1.0)洋红色 glColor3f(0.0,1.0,1.0)青色 glColor3f(1.0,1.0,1.0)白色 强制完成绘图操作 glFlush()函数,完成强制绘图操作 坐标系统工具箱 无论是刚打开窗口的时候,还是在以后移动窗口或者改变窗口大小的时候,窗口系统都会发送一个事件来通知你。如果使用的是GLUT,它会自动产生通知,并且在glutReshapeFunc()中注册的那个函数将会被调用。必须注册一个回调函数,完成下列这些任务: ·重新建立一个矩形区域,把它作为新的渲染画布 ·定义一个用于绘制物体的坐标系统 void reshape(int w,int h) { glViewport(0,0,(GLsizei)w,(GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0,(GLdouble)w,0.0,(GLdouble)h); } 在系统内部,GLUT向这个函数传递两个参数:width和height,它们表示这个新的(或经过移动的,或改变大小的)窗口的宽度和高度(以像素为单位)。glViewport()函数调整用于绘图的像素矩形,使它占据整个新窗口。接下来的3行代码调整用于绘图的坐标系统,使左下角的坐标是(0,0),右上角的坐标是(w,h) 描述点、直线和多边形 点 点可以用一组称为顶点的浮点数来表示 直线 直线这个术语表示一段线段,而不是数学意义上在两边无限延伸的直线 多边形 多边形是由单闭合的线段循环包围的区域 矩形 OpenGL提供了填充矩形图元函数glRect*() 指定顶点 在OpenGL中,所有的几何物体最终都被描述成一组有序的顶点。可以使用glVertex*()函数来指定顶点。 OpenGL几何绘图图元 把一组顶点放在一对glBegin()和glEnd()之间,传递给glBegin()的参数决定了由这些顶点所构建的几何图元的类型 GL_POINTS 单个的点 GL_LINES 一对顶点被解释为一条直线段 GL_LINE_STRIP 一系列的连接直线段 GL_LINE_LOOP 和上面相同,但第一个顶点和最后一个顶点彼此相连 GL_TRIANGLES 三个顶点被解释为一个三角形 GL_TRIANGLE_STRIP 三角形的连接串 GL_TRIANGLE_FAN 连接成扇形的三角形系列 GL_QUADS 四个顶点被解释为一个四边形 GL_QUAD_STRIP 四边形的连接串 GL_POLYGON 一个简单的凸多边形的边界 使用glBegin()和glEnd()的限制 glVertex*() 设置顶点坐标 glColor*()设置RGBA颜色 glIndex*() 设置颜色索引 glSecondaryColor*() 设置纹理应用后的辅助颜色 glNormal*() 设置法线向量坐标 glMaterial*()设置材料属性 glFogCoord*()设置雾坐标 glTexCoord*(

文档评论(0)

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

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

1亿VIP精品文档

相关文档