OpenGL 3基本图形绘制.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1 OpenGL的数据类型 3.1 OpenGL的数据类型 所有的数据类型都以GL开头,表示是OpenGL。紧跟在后面的大多是它们相应的C数据类型。 一些开始有个u表示是无符号的数据类型,如:ubyte表示是无符号的字节。也给出了更多的描述名字的方法,如:size表示一个值的长度。GLsizei表示是一个GL变量,且参数的大小是一个整型。 Clamp是用于颜色的。这种数据类型以f和d结尾表示实型或双精度型数据类型。GLboolean变量用于标示True和False;GLenum用于枚举型变量; GLbitfield 用于包含二进制位的区域的变量。 3.2 函数命名的语法 OpenGL函数都遵循一个命名约定,即采用以下格式: 库前缀命令参数个数参数类型 函数glColor3f(1.0,0,0),gl表示这个函数来自库gl.h,color表示该函数用于颜色设定,3f表示这个函数采用了三个浮点数参数。 GLfloat color[ ]={1.0,0,0} ; glColor3fv(color); 3.2 函数命名的语法 函数格式示例:定义点函数 3.3 OpenGL是一种状态机 OpenGL的工作方式是一种状态机制,它可以进行各种状态或模式设置,这些状态或模式在重新改变它们之前一直有效。 状态变量可以通过glEnable()、glDisable()这两个函数来设置成有效或无效状态 。 另外可以用下列四个函数来获取某个状态变量的值:glGetBooleanv()、glGetDoublev()、glGetFloatv()和glGetIntegerv()。 3.4 OpenGL变换 视点变换(视图变换) 模型变换 投影变换 视口变换 裁剪变换 OpenGL的变换过程 OpenGL的坐标变换过程类似于用照相机拍摄照片的过程。使用照相机与坐标变换的步骤比较如下: 。 分为以下四步: 支起三角架,把照相机放在场景中(视图变换)。 将要拍的场景置于所要求的位置上(模型变换)。 选择照相机镜头或调节焦距(投影变换)。 确定照片的大小,可以放大照片的某一部分(视口变换)。 其中(1)、(2)顺序可看成照相馆中的照相过程;而在室外摄影时,由于先有景物,再选择照相机的位置与方向,因此照相顺序可看成(2)、(1)。 模型-视图变换 模型-视图变换过程就是一个将顶点坐标从世界坐标变换到视觉坐标的过程。这里很重要的是对两个坐标系的认识。 ?世界坐标系也称为全局坐标系。它是一个右手坐标系,可以认为该坐标系是固定不变的,在初始态下,其x轴为沿屏幕水平向右,y轴为沿屏幕垂直向上,z轴则为垂直屏幕面向外指向用户。 ?视觉坐标系(即观察坐标系)也称为局部坐标系。它是一个左手坐标系,该坐标系是可以活动的。在初始态下,其原点及x、y轴分别与世界坐标系的原点及x、y轴重合,而z轴则正好相反,即为垂直屏幕面向内。 默认:视点在原点,视线沿Z轴负方向。 坐标系 右手坐标系 缺省的观察坐标系 视点变换 View变换可以改变视点的位置和方向,要在Model变换之前调用。设置任意观察坐标点。 模型变换 平移变换 放缩变换 旋转变换 投影变换 就是要确定一个视景体,其作用有两个: 确定物体投影到屏幕的方式,即是透视投影还是正交投影。 确定从图象上裁剪掉哪些物体或物体的某些部分。 投影变换包括透视投影和正交投影(平行投影) 透视投影 其视景体是一个截头锥体,再这个体积内的物体投影到锥的顶点,有glFrustum命令定义这个截头锥体,这个取景体积可以是不对称的 void glFrustum(Gldouble left,Gldouble right,Gldouble bottom,Gldouble top, Gldouble near,Gldouble far); 透视投影的示意图 透视投影 正交投影 其视景体是一个各面均为矩形的六面体,用glOrtho命令创建正交平行的取景体积 void glOrtho(Gldouble left,Gldouble right,Gldouble bottom,Gldouble top, Gldouble near,Gldouble far); 正交投影的示意图 正交投影 对于二维图形向二维屏幕的投影,则应使用实用库中的如下函数: void gluOrtho2D(Gldouble left, Gldouble right, Gldouble bottom, Gldouble top); 前面提到过,用二维顶点命令绘制的二维物体的z坐标均为零,而gluOrtho2D()命令假定场景中的 z 坐标介于-1.0和 1.0 之

文档评论(0)

word.ppt文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档