1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenGL语法与规定 OpenGL 函数都遵循一个命名约定,通过这个约定可以了解函数来源于哪个库,需要多少个参数以及参数的类型。 库前缀根命令可选的参数个数可选的参数类型 以函数glColor3f(…)为例 gl 表示这个函数来自库gl.h, color 是该函数的根段,表示该函数用于颜色设定, 3f 表示这个函数采用了三个浮点数参数。 glVertex2f,glVertex3i表示什么含义? 当函数名以v结尾时表示函数接收一个数组指针 例:glVertex3iv接收一个指向三个元素的GLint数组指针 OpenGL 状态机 OpenGL 是一种直接模式的API,每条命令根据当前的渲染状态都会产生某种立即效果。 渲染状态是各种标记,他们指出哪些特性是打开的,哪些是关闭的,以及应该如何应用他们。 在OpenGL 中,使用glEnable 函数和glDisable 函数来启用和禁用渲染特征。 OpenGL图元绘制 chap31 OpenGL图元绘制(点) glVertex 函数用于指定顶点 点大小的默认值是一个象素,可用函数修改个值: void glPointSize(GLfloat size); glBegin(GL_POINTS); glVertex3f(0.0f,0.0f,0.0f); glVertex3f(10.0f,10.0f,10.0f); glEnd(); OpenGL图元绘制(线段) 由函数glBegin 的参数指定绘制图元的类型, 图4-19 多边形的朝向 每个多边形都有两面:前面和后面 系统默认逆时针朝向为观察者的正面,可以指定顺时针为正面 glFrontFace(GL_CCW) 指定逆时针为正面(默认) glFrontFace(GL_CW) 指定顺时针为正面 多边形的填充方式 glPolygonMode( face , mode ) 控制每一面的填充方式 多边形的朝向与填充方式 按 红点、绿点、蓝点顺序定义点 按如下方式定义 多边形的朝向与填充方式 glPolygonMode(GL_FRONT,GL_FILL); //正面,填充 glPolygonMode(GL_BACK,GL_LINE); //背面,线框 几何变换 OpenGL没有二维变换的机制,所有二维变换都作为三维变换的特例处理 OpenGL保持一个modelview的矩阵,它是用来进行建模变换与观察变换的合成变换矩阵 将建模与观察矩阵设为系统当前的矩阵 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); 几何变换: 平移 缩放 旋转 平移 glTranslate (Tx,Ty,Tz) 缩放 glScaled (Sx,Sy,Sz) 旋转 glRotate (angle,x,y,z) 以上三个函数首先建立一个相应的矩阵M,然后用M右乘当前的矩阵C,得到CM 参chap62 几何变换:复合变换 注意变换次序 若先glTranslate后glRotate,则CMTMR, 其效果是先旋转后平移 变换之前保存矩阵副本 glPushMatrix() 使用矩阵栈中的矩阵 glPopMatrix() 参chap63 几何变换:复合变换 几何变换:任意变换 glLoadMatrix*将当前的矩阵设为任意的4×4矩阵。 参数:指向16个GLfloat或GLdouble类型元素的数组的指针,按照列优先的顺序组成矩阵(前四个元素组成第一列,随后四个元素组成第二列) glMultMatrix* 用任意4×4矩阵去右乘当前的矩阵 OpenGL的颜色 RGBA 模式: 用RGB定义颜色 void glColorxt (red, green, blue, alpha); x =3 时,参数为R、G、B ; x =4时还包括Alpha 值(0.0 -1.0) 颜色表模式:从颜色表中选取当前颜色 void glIndex{sifd}(TYPE c); void glIndex{sifd}v(TYPE *c); 参数值c 用于设置当前颜色索引值,即调色板号,若值大于颜色位面数时则取模。 参cindex GLUT 物体1:球体 实心球体 glutSolidSphere(radius, slices, stacks); 线框球体 glutWireSphere(radius, slices, stacks); GLdouble radius 球体的半径。 GLint slices 球体围绕z 轴(相对于经度线)分割的数目。 GLint stacks 球体沿着z 轴(相对于纬度线)分割的数目。 说明: 球体绘制中心在模型坐标原点、半径为r

文档评论(0)

sd44055 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档