OpenGL学习笔记.pdf_第1页
OpenGL学习笔记.pdf_第2页
OpenGL学习笔记.pdf_第3页
OpenGL学习笔记.pdf_第4页
OpenGL学习笔记.pdf_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GL Open Graphics Library 1 状态管理状态管理 void glClearAccum GLfloat red GLfloat green GLfloat blue GLfloat alpha void glClearColor GLclampf red GLclampf green GLclampf blue GLclampf alpha void glClearDepth GLclampd depth void glClearIndex GLfloat c void glClearStencil GLint s 设置累积颜色 颜色缓冲区 深度缓冲区 颜色索引 模板索引值 void glClear GLbitfield mask 清除缓冲区 值 对应宏定义 意义 GL ACCUM BUFFER BIT 0 x00000200 累积缓冲区 GL COLOR BUFFER BIT 0 x00004000 颜色缓冲区 GL DEPTH BUFFER BIT 0 x00000100 深度缓冲区 GL STENCIL BUFFER BIT 0 x00000400 模板缓冲区 void glColor 3 4 b s i f d ub us ui v parameters 指定当前颜色值 parameters 可以仅指定三个参数 此时不设定 alpha 值 void glFlush void void glFinish void 强制以前发出的 OpenGL 命令开始执行 其中 glFinish 在以前的命令执行完成之前不会返回 void glRect s i f d v parameters 绘制 z 0 平面上 指定两点的 边平行于 xy 轴的矩形 void glVertex 2 3 4 s i f d v parameters 指定顶点 如果未指定 z 值 则 z 0 指定四个参数时第四个参数 w 此时坐标值要除以 w void glBegin GLenum mode void glEnd void 绘制开始和结束 值 对应宏定义 意义 GL POINTS 0 x0000 单个的点 GL LINES 0 x0001 v1v2 v3v4 v5v6 被解释成一条直线 如果点数为奇数 最后一点被忽略 GL LINE LOOP 0 x0002 同 GL LINE STRIP 最后加一条直线 vnv1 GL LINE STRIP 0 x0003 v1v2 v2v3 v3v4 被解释成一条直线 GL TRIANGLES 0 x0004 v1v2v3 v4v5v6 v7v8v9 被解释成一个三角形 GL TRIANGLE STRIP 0 x0005 v1v2v3 v3v2v4 注意顺序 保证所有三角形方向一致 v 3v4v5 被解释成一个三角形 GL TRIANGLE FAN 0 x0006 v1v2v3 v1v3v4 v1v4v5 以v1为扇形中心 被解释成一 个三角形 GL QUADS 0 x0007 v1v2v3v4 v5v6v7v8 v9v10v11v12 被解释成四边形 GL QUAD STRIP 0 x0008 v1v2v4v3 v3v4v6v5 v5v6v8v7 注意顺序 被解释成四 边形 GL POLYGON 0 x0009 凸多边形 n 3 glVertex glColor glSecondaryColor glIndex glNormal glFogCoord glTexCoord glMultiTexCoord glVertexAttrib glEvalCoord glEvalPoint glArrayElement glMaterial glEdgeFlag glCallList glCallLists can be used between glBegin and glEnd If any other GL command is executed between glBegin and glEnd the error flag is set and the command is ignored void glEnable GLenum cap void glDisable GLenum cap 启用或关闭一个功能 GLboolean glIsEnabled GLenum cap 查询一个功能是否启用 void glGet Boolean Integer Float Double Pointer v GLenum type params 查询 OpenGL 的状态 void glPointSize GLfloat size 点的宽度 以像素为单位 默认为 1 0 void glLineStipple GLint factor GLushort pattern void glLineWidth GLfloat width 直线的点画模式和宽度 void glPolygonMode GLenum face GLenum mode void glPolygonOffset GLfloat factor GLfloat units void glPolygonStipple const GLubyte mask 多边形两面的绘图模式 缩放值和偏移量 点画模式 void glFrontFace GLenum mode GL CCW 顶点顺序逆时针时为正面 默认值 GL CW 顺时针为正面 void glEdgeFlag v boolean flag 表示一个顶点是否应该被认为是多边形的边界的起点 可以为 GL TRUE 或 GL FALSE void glNormal3 b s i f d v parameters 设置当前法向量 void glShadeModel GLenum mode GL SMOOTH 默认 平滑着色 GL FLAT 单调着色 2 视图视图 void glMatrixMode GLenum mode GL MODELVIEW 模型视图矩阵 GL PROJECTION 投影矩阵 GL TEXTURE 纹理矩阵 void glLoadIdentity void 把单位矩阵加载到当前矩阵 void glPushMatrix void void glPopMatrix void 复制当前矩阵栈顶并压栈 或弹出栈顶 void glLoadMatrix f d const TYPE m void glMultMatrix f d const TYPE m void glLoadTransposeMatrix f d const TYPE m void glMultTransposeMatrix f d const TYPE m 加载或右乘 m 列优先 或 mT m 转置 行优先 到当前矩阵 void glGet Float Double v GLenum type params GL VIEWPORT GL MODELVIEW MATRIX GL PROJECTION MATRIX 获取当前变换参数 void glTranslate f d TYPE x TYPE y TYPE z 移动矩阵 void glRotate f d TYPE angle TYPE x TYPE z x y z 为旋转轴旋转 angle 度 角度 void glScale f d TYPE x TYPE y TYPE z 缩放矩阵 参数为各个轴的缩放量 void glFrustum GLdouble left GLdouble right GLdouble bottom GLdouble top GLdouble zNear GLdouble zFar 透视视图平截头体的近平面的左右底顶坐标 和近平面原平面坐标 void glOrtho GLdouble left GLdouble right GLdouble bottom GLdouble top GLdouble zNear GLdouble zFar 正交平行视图平截头体的近平面的左右底顶坐标 和近平面原平面坐标 void glViewport GLint x GLint y GLsizei width GLsizei height x y 指定视口左下角 width 和 height 指定宽和高 void glDepthRange GLclampd zNear GLclampd zFar 经过调整后可以存储在深度缓冲区中的最小值和最大值 默认是 0 0 和 1 0 参数要位于 0 1 范围 就像颜色值一样 void glClipPlane GLenum plane const GLdouble equation plane 是 GL CLIP PLANEi i 0 5 equation 的四个值定义一个 Ax By Cz D 0 的平面 这个平面是在 在视觉坐标下定义的 不受模型视图矩阵的影响 3 光照光照 void glLight i f v GLenum light GLenum pname TYPE param 创建光源 light 可以为 GL LIGHT0 GL LIGHT7 pname GL AMBIENT 光的环境强度 GL DIFFUSE 光的散射强度 GL SPECULAR 光的镜面强度 GL POSITION 光源的位置 x y z w w 0 0 是为方向性光源 否则是位置式光源 GL SPOT DIRECTION 聚光灯方向 x y z GL SPOT EXPONENT 聚光灯的聚光指数 GL SPOT CUTOFF 聚光灯锥形顶角一半 0 90 度 为 180 0 时该光源不是聚光灯 GL CONSTANT ATTENUATION GL LINEAR ATTENUATION GL QUADRATIC ATTENUATION 衰减因子 该衰减对环境 散射 镜面成分均由影响 void glLightModel i f v GLenum pname TYPE param GL LIGHT MODEL AMBIENT 全局环境光强度 默认 0 2 0 2 0 2 1 0 GL LIGHT MODEL LOCAL VIEWER 无限远观察点 GL FALSE 此时所有顶点到观察点方向固定 反之相反 影响镜面反射的计算 GL LIGHT MODEL TWO SIDE 单面 GL FALSE 还是双面 GL TRUE 光照 GL LIGHT MODEL COLOR CONTROL 镜面辅助颜色 void glMaterial i f v GLenum face GLenum pname TPYE param 材料属性 face 可为 GL FRONT GL BACK pname GL AMBIENT GL DIFFUSE GL SPECULAR GL AMBIENT AND DIFFUSE 材料的环境颜色 散射颜 色 镜面颜色 和光相对应 环境散射颜色 GL SHININESS 镜面指数 GL EMISSION 发光颜色 GL COLOR INDEXES 环境 散射 镜面颜色索引 void glColorMaterial GLenum face GLenum mode 指定当前材料的 face 面的 mode 默认为 GL LIGHT MODEL LOCAL VIEWER 属性定义为当前颜色 4 混合 雾混合 雾 void glBlendFunc GLenum sfactor GLenum dfactor 指定源和目标混合因子 void glFog i f v GLenum pname TPYE param 指定雾方程的形式和各个参数 以及雾颜色 void glPolygonOffset GLfloat factor GLfloat units 指定多边形偏移量方程中的参数 GLU OpenGL Utility Library void gluLookAt GLdouble eyex GLdouble eyey GLdouble eyez GLdouble centerx GLdouble centery GLdouble centerz GLdouble upx GLdouble upy GLdouble upz eyex eyey eyez 指定观察点 centerx centery centerz 指定视线上任一点 upx upy upz 指定向上 方向 void gluPerspective GLdouble fovy GLdouble aspect Ldouble zNear GLdouble zFar 定义透视视图平截头体 fovy 为 yz 平面上视野的角度 0 180 度 aspect 为纵横比 宽除以高 zNear 和 zFar 为近远平面距离 void gluOrtho2D GLdouble left Ldouble right GLdouble bottom GLdouble top 正交平行视图平截头体的近平面的左右底顶坐标 int gluProject GLdouble objx GLdouble objy GLdouble objz const GLdouble modelMatrix 16 const GLdouble projMatrix 16 const GLint viewport 4 GLdouble winx GLdouble winy GLdouble winz 模拟变换 把一个物体坐标变换到窗口坐标 返回 GL TRUE 和 GL FALSE int gluUnProject GLdouble winx GLdouble winy GLdouble winz const GLdouble modelMatrix 16 const GLdouble projMatrix 16 const GLint viewport 4 GLdouble objx GLdouble objy GLdouble objz 逆变换 窗口坐标变换到物体坐标 GLUT OpenGL Utility Toolkit void glutInit int pargc char argv GULT 初始化 处理命令行参数 应在调用其他 GULT 函数之前调用它 void glutInitWindowPosition int x int y 指定窗口位置 左上角在屏幕的坐标 void glutInitWindowSize int width int height 指定窗口大小 以像素为单位 void glutInitDisplayMode unsigned int displayMode 指定显示模式 注意 可以用位或形式同时指定多重模式 值 对应宏定义 意义 GLUT RGB 0 x0000 指定 RGB 颜色模式的窗口 GLUT RGBA 0 x0000 指定 RGBA 颜色模式的窗口 GLUT INDEX 0 x0001 指定颜色索引模式的窗口 GLUT SINGLE 0 x0000 指定单缓存窗口 GLUT DOUBLE 0 x0002 指定双缓存窗口 GLUT ACCUM 0 x0004 窗口使用累加缓存 GLUT ALPHA 0 x0008 窗口的颜色分量包含 alpha 值 GLUT DEPTH 0 x0010 窗口使用深度缓存 GLUT STENCIL 0 x0020 窗口使用模板缓存 GLUT MULTISAMPLE 0 x0080 指定支持多样本功能的窗口 GLUT STEREO 0 x0100 指定立体窗口 GLUT LUMINANCE 0 x0200 窗口使用亮度颜色模型 void glutInitDisplayString const char displayMode 通过一个字符串 这个字符串类似于命令行参数 初始化 void glutMainLoop void 进入 GLUT 事件处理循环 让所有的与 事件 有关的函数调用无限循环 int glutCreateWindow const char title 创建以参数字符串为标题的窗口 返回窗口标识 int glutCreateSubWindow int window int x int y int width int height 在父窗口 由 window 指定 中创建子窗口 void glutDestroyWindow int window 销毁窗口 void glutSetWindow int window int glutGetWindow void 设定或获取 当前窗口 的标识 void glutSetWindowTitle const char title void glutSetIconTitle const char title 设定窗口或图标的标题 void glutReshapeWindow int width int height void glutPositionWindow int x int y 设置窗口大小或在屏幕上位置 void glutShowWindow void void glutHideWindow void void glutIconifyWindow void 显示或隐藏或图标化 iconify 窗口 void glutPushWindow void void glutPopWindow void void glutFullScreen void 全屏 void glutPostRedisplay void 发送重绘窗口消息 void glutSwapBuffers void 交换缓冲区 void glutSetCursor int cursor 设置光标图形 void glutTimerFunc unsigned int msecs void func int value value 注册时间中断函数 void glutIdleFunc void callback void 注册空闲处理函数 void glutKeyboardFunc void callback unsigned char int int void glutSpecialFunc void callback int int int 注册键盘 或特殊按键 事件响应函数 void glutReshapeFunc void callback int int 注册窗口大小改变响应函数 void glutVisibilityFunc void callback int 注册窗口可见性变化响应函数 void glutDisplayFunc void callback void 注册重绘函数 void glutMouseFunc void callback int int int int 注册鼠标响应函数 void glutMotionFunc void callback int int 注册鼠标按下移动响应函数 void glutPassiveMotionFunc void callback int int void glutEntryFunc void callback int void glutKeyboardUpFunc void callback unsigned char int int void glutSpecialUpFunc void callback int int int void glutJoystickFunc void callback unsigned int int int int int pollInterval void glutMenuStateFunc void callback int void glutMenuStatusFunc void callback int int int void glutOverlayDisplayFunc void callback void void glutWindowStatusFunc void callback int void glutSpaceballMotionFunc void callback int int int void glutSpaceballRotateFunc void callback int int int void glutSpaceballButtonFunc void callback int int void glutButtonBoxFunc void callback int int void glutDialsFunc void callback int int void glutTabletMotionFunc void callback int int void glutTabletButtonFunc void callback int int int int 注册其他事件响应函数 注册其他事件响应函数 int glutGet GLenu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论