电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

OpenGL复习

88页
  • 卖家[上传人]:lil****ar
  • 文档编号:263006067
  • 上传时间:2022-03-08
  • 文档格式:DOCX
  • 文档大小:3.62MB
  • / 88 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、OpenGL 复习考试题型 选择 填空 判断 程序题(读和写) 主要考察内容利用 OpenGL 开发三维图形程序的基本过程和具体内容(见提纲各章) 对 OpenGL API 函数的掌握程度(要求见提纲末章)熟练利用 OpenGL API 编写基本、完整和正确三维图形程序的能力1. 绪论2. 二维编程基础3. 交互和动画4. 几何变换和三维编程基础5. 光照与材质6. 离散图元7. 纹理映射第一章 绪论重点内容计算机如何实现三维图形显示?1.图形与图像的关系图形:由场景的几何模型和景物的物理属性共同组成,更强调场景的几何表示 。图像:计算机内以位图形式存在的灰度信息2.2D 屏幕上如何产生和增强 3D 效果?产生 3D 效果:透视透视缩短或者视角增强 3D 效果:不可见面消除颜色和着色 光照和阴影 纹理贴图雾混合和透明抗锯齿(多重采样)什么是 OpenGL?OpenGL 的三种常见定义及其含义开放的图形程序库(Open Graphics Library)1. 图形软件工具包 OpenGL 由 SGI 的 IRIS GL 发展而来;2. “开放” 可移植性(跨平台、跨语言)图形应用程序编程

      2、接口(图形 API) 1 图形接口与实现分离;2. 由 OpenGL ARB 制定 OpenGL API 标准;3. 允许程序员开发包含交互式计算机图形操作的应用,而不必关注图形操作细节或任务系统细节(比如窗口处理和交互)图形硬件的软件接口1. OpenGL 非常接近于底层硬件,OpenGL 的应用程序运行效率高;2. 作为标准的图形软件接口,OpenGL 屏蔽了与不同图形硬件交互的复杂性,易于掌握和使用。OpenGL 的工作方式状态机想一想已学的哪些对象是 OpenGL 状态?顶点位置,颜色、矩阵,材质,纹理坐标、源因子和目标因子、光源的各种参数, 等等,这些都是状态此外,“是否启用了光照”、“是否启用了纹理”、“是否启用了混合”、“是否启用了深度测试”等等,这些也都是状态渲染流水线 几何流水线像素流水线OpenGL 的版本和扩展OpenGL 核心库(GL 库)、OpenGL 实用库(GLU 库)及 OpenGL 实用工具包(GLUT 库)的功能和区别(即 OpenGL 能做什么,不能做什么)OpenGL 核心库(GL 库):函数以“gl”为前缀;主要功能包括三维物体描述、平移、旋转

      3、、缩放、光照、纹理、材质、像素、位图、文字处理等;OpenGL 提供的所有功能都可以使用核心库函数来实现,并且对于不同的软件和硬件平台, 这些函数的使用完全相同。OpenGL 实用库(GLU 库):函数以“glu”为前缀;主要功能包括绘制二次曲面、NURBS 曲线曲面、复杂多边形以及纹理、矩阵管理等;实用库中的所有函数全都使用 OpenGL 核心库函数来编写的,因此在使用上和 OpenGL 核心库的使用是完全相同的。OpenGL 实用工具包 (GLUT 库):函数以“glut”为前缀主要功能包括窗口创建与管理、用户交互(鼠标、键盘等),并;GLUT 库独立于操作系统和窗口系统。OpenGL 核心库(GL 库) 三维物体描述和操作(平 像素、位图、文字处理移、旋转、缩放、光照、纹理、材质)OpenGL 实用库(GLU 库) 曲线曲面,复杂多边形OpenGL 实用工具包窗口(创建与管理)(GLUT 库)交互(鼠标、键盘等)纹理、矩阵管理提供一种基于事件驱动的窗口程序运行架构认识 OpenGL API编程规范常量和变量定义函数名约定常量:GL_COLOR_BUFFER_BIT, GL_POL

      4、YGON, 变量类型:GLint, GLshort, GLfloat, GLdouble, 想一想我们已学到的 OpenGL 主要函数分别属于哪个库?第二章 二维图形编程基于 GLUT 的 OpenGL 应用程序基本结构主函数框架结构(main())初始化 GLUT 配置和创建窗口注册窗口和用户输入事件处理函数显示(绘制、重绘)窗口大小变化输入: 键盘,鼠标, 初始化 OpenGL 状态机进入事件处理循环各事件处理函数的意义和使用方法(即 OpenGL 与各事件处理函数的关系)1. 初始化 GLUT 库,并且处理命令行启动变量; void glutInit (int* argcp, char* argv);忽略 GLUT 无法识别的启动参数;常见启动参数:-geometry WxH+X+Y、-iconic、 程序启动例子:simple.exe -geometry 500x500+100+100 simple.exe -iconic2. 配置和创建窗口设定窗口显示模式void glutInitDisplayMode (unsigned int mode);mode - GLUT_RGBA

      5、, GLUT_RGB, GLUT_INDEX,GLUT_SINGLE, GLUT_DOUBLE,GLUT_ACCUM, GLUT_ALPHA, GLUT_DEPTH, 指定窗口大小和位置void glutInitWindowSize (int width, int height); void glutInitWindowPosition ( int x, int y);x, y - 相对于屏幕左上角创建窗口int glutCreateWindow (char* name);返回值为窗口句柄;3. 注册窗口和用户输入事件处理函数事件驱动(Event-driven)程序:利用窗口接收输入并显示输出;程序等待直到有事件发生并调用预先定义的事件处理程序; 事件(Event):外部事件:键盘按键、鼠标按键、鼠标移动、游戏杆、 窗口事件:窗口显示、窗口大小调整、事件处理程序(回调函数)被 GLUT 调用,发生下列事件窗口显示(重绘)、窗口位置和大小改变;用户输入(键盘、鼠标); 动画(需要绘制多帧); 向 GLUT 注册回调函数: glutDisplayFunc( display ); glutR

      6、eshapeFunc( reshape );glutKeyboardFunc( keyboard ); glutMouseFunc ( mouse ); glutMotionFunc( motion ) glutIdleFunc( idle ); glutTimeFunc( time );4. 初始化 OpenGL 状态机为你的 OpenGL 例程定制所需要的各种状态; void init(void) /设置背景颜色glClearColor (0.0, 0.0, 0.0, 0.0);/设置填充颜色glColor3f(1.0, 1.0, 1.0);/设置光照方式/glEnable( GL_LIGHT0 );/glEnable( GL_LIGHTING );5. 进入事件处理循环接收事件,并依据事件类型调用注册的事件处理回调函数Display CallbackReshape Callback视口和投影变换视口变换glViewport(GLint x, GLint y, GLsizei width, GLsizei height)投影变换gluOrtho2d( GLdouble left,

      7、GLdouble right,GLdouble bottom, GLdouble top)Mouse Callback处理用户鼠标输入;glutMouseFunc( mouse );void mouse (int button, int state, int x, int y)switch (button) case GLUT_LEFT_BUTTON:if (state = GLUT_DOWN) /printf(left mouse clickn); break;default:break;Motion Callback处 理 用 户 鼠 标 拖 动 输 入 ; glutMotionFunc( motion ) glutPassiveMotionFunc( passive_motion ); void motion (int x, int y)Keyboard Callback处理用户键盘输入;glutKeyboardFunc( keyboard );void keyboard (unsigned char key, int x, int y)switch ( key ) case q

      8、 :case Q :exit ( EXIT_SUCCESS);break;case r : case R : rotate = GL_TRUE; break;Idle Callback负责完成动画生成或者需要持续更新的功能;glutIdleFunc( Idle ); void idle (void )/发出重绘指令,display()将再次调用/glutPostRedisplay();元的概念和分类几何图元点、直线段、多边形非几何图元位图、像素图几何图元及属性10 种不同类型几何图元都具有不同的顶点装配方式; 线的点划模式、多边形的绘制模式与拣选特性;几何图元的两种着色方式几何图元:几何图元都是由顶点(Vertex)集合来定义的图元属性决定了 OpenGL 显示图元的方式颜色属性、线宽、填充模式、材质属性、 glColor3f(1.0, 1.0, 1.0); glBegin(GL_POLYGON);glVertex2f(-0.5, -0.5);glVertex2f(-0.5, 0.5);glVertex2f(0.5, 0.5);glVertex2f(0.5, -0.5); glEnd();图元属性OpenGL 将图元属性作为 OpenGL 状态的一部分图元绘制方法图元绘制格式glBegin( primType );.glEnd(); primType图元类型(说明顶点如何构造成图元)例子:GLfloat red, greed, blue; /顶点颜色GLfloat P82;/二维顶点P0-P7 的位置glBegin( primType );for (int i = 0; i 8; +i ) glColor3f( red, green, blue ); glVertex2fv( Pi );glEnd();绘制点GL_POINTS属性:颜色、尺寸(大小)void glPointSize(GLfloat size)例 子 glPointSize(2.0); glBegin(GL_POINTS) glColor3

      《OpenGL复习》由会员lil****ar分享,可在线阅读,更多相关《OpenGL复习》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.