opengl3基本图形绘制

opengl3基本图形绘制

ID:36302570

大小:421.00 KB

页数:53页

时间:2019-05-08

opengl3基本图形绘制_第1页
opengl3基本图形绘制_第2页
opengl3基本图形绘制_第3页
opengl3基本图形绘制_第4页
opengl3基本图形绘制_第5页
资源描述:

《opengl3基本图形绘制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第3章OpenGL基本图形绘制3.1OpenGL的数据类型OpenGL类型数据类型C语言类型GLbyte8位整数signedcharGLshort16位整数shortGLint,GLsizei32位整数longGLfloat,GLclampf32位浮点数floatGLdouble,GLclampd64位浮点数doubleGLubyte,GLboolean8位无符号整数unsignedcharGLushort16位无符号整数unsignedshortGLuint,GLenum,GLbitfield32位无符号整数unsignedlong3.1OpenGL的数据类型所有的数据类

2、型都以GL开头,表示是OpenGL。紧跟在后面的大多是它们相应的C数据类型。一些开始有个u表示是无符号的数据类型,如:ubyte表示是无符号的字节。也给出了更多的描述名字的方法,如:size表示一个值的长度。GLsizei表示是一个GL变量,且参数的大小是一个整型。Clamp是用于颜色的。这种数据类型以f和d结尾表示实型或双精度型数据类型。GLboolean变量用于标示True和False;GLenum用于枚举型变量;GLbitfield用于包含二进制位的区域的变量。3.2函数命名的语法OpenGL函数都遵循一个命名约定,即采用以下格式:<库前缀><命令><参数个数><参数类

3、型>函数glColor3f(1.0,0,0),gl表示这个函数来自库gl.h,color表示该函数用于颜色设定,3f表示这个函数采用了三个浮点数参数。GLfloatcolor[]={1.0,0,0};glColor3fv(color);函数格式示例:定义点函数3.2函数命名的语法glVertex3f(x,y,z)glVertex3fv(p)属于GL库函数的功能参数的类型参数个数参数为指针注意每部分的大小写3.3OpenGL是一种状态机OpenGL的工作方式是一种状态机制,它可以进行各种状态或模式设置,这些状态或模式在重新改变它们之前一直有效。状态变量可以通过glEnable(

4、)、glDisable()这两个函数来设置成有效或无效状态。另外可以用下列四个函数来获取某个状态变量的值:glGetBooleanv()、glGetDoublev()、glGetFloatv()和glGetIntegerv()。3.4OpenGL变换OpenGL就是实现将物体的各个顶点通过各种变换矩阵的作用映射到屏幕的过程。下图是顶点变换过程。注意:在模型视图变换过程中,顶点的法向量也自动地进行变换。3.4OpenGL变换视点变换(视图变换)模型变换投影变换视口变换裁剪变换OpenGL的变换过程OpenGL的坐标变换过程类似于用照相机拍摄照片的过程。使用照相机与坐标变换的步骤

5、比较如下:。分为以下四步:支起三角架,把照相机放在场景中(视图变换)。将要拍的场景置于所要求的位置上(模型变换)。选择照相机镜头或调节焦距(投影变换)。确定照片的大小,可以放大照片的某一部分(视口变换)。其中(1)、(2)顺序可看成照相馆中的照相过程;而在室外摄影时,由于先有景物,再选择照相机的位置与方向,因此照相顺序可看成(2)、(1)。模型-视图变换模型-视图变换过程就是一个将顶点坐标从世界坐标变换到视觉坐标的过程。这里很重要的是对两个坐标系的认识。世界坐标系也称为全局坐标系。它是一个右手坐标系,可以认为该坐标系是固定不变的,在初始态下,其x轴为沿屏幕水平向右,y轴为沿屏

6、幕垂直向上,z轴则为垂直屏幕面向外指向用户。视觉坐标系(即观察坐标系)也称为局部坐标系。它是一个左手坐标系,该坐标系是可以活动的。在初始态下,其原点及x、y轴分别与世界坐标系的原点及x、y轴重合,而z轴则正好相反,即为垂直屏幕面向内。默认:视点在原点,视线沿Z轴负方向。坐标系右手坐标系窗口xyzo缺省的观察坐标系视点变换View变换可以改变视点的位置和方向,要在Model变换之前调用。设置任意观察坐标点。voidgluLookAt(GLdoubleeyex,GLdoubleeyey,GLdoubleeyez,Gldoublecenterx,GLdoublecentery,GL

7、doublecenterz,Gldoubleupx,GLdoubleupy,GLdoubleupz);(eyex,eyey,eyez)为视点位置(centerx,centery,centerz)为观察参考点的位置(upx,upy,upz)为向上向量的方向模型变换平移变换放缩变换旋转变换viodglTranslate{fd}(TYPEdeltax,TYPEdeltay,TYPEdeltaz);voidglScale{fd}(TYPEsx,TYPEsy,TYPEsz);voidglRotate{fd}(TY

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。