- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ch2-6-OpenGL图形软件包
2.6 OpenGL图形软件包 What Is OpenGL? Open Graphics Library SGI 公司开发 Graphics Rendering API [程序2-1] OpenGL 绘制矩形的简单例子 OpenGL Portable window system independent operating system independent Interactive 2D and 3D Not Object-Oriented 2.6.1 OpenGL 的主要功能 模型绘制 模型观察 颜色模式 光照应用 图像效果增强 位图和图像处理 纹理映射 实时动画 交互技术 2.6.2 OpenGL 的绘制流程 流水线 OpenGL 的两条流水线 OpenGL Geometric Architecture 2.6.3 OpenGL 的基本语法 相关库 命名规则 数据类型 1. 相关库 Related APIs GLU (OpenGL Utility Library) part of OpenGL NURBS, quadric shapes, etc. GLUT (OpenGL Utility Toolkit) portable windowing API not officially part of OpenGL AGL, GLX, WGL glue between OpenGL and windowing systems 2.6.4 一个完整的OpenGl程序 头文件包含 使用 GLUT 库进行窗口管理 利用OpenGL进行绘图 1. 头文件包含 #include GL/gl.h #include GL/glu.h #include GL/glut.h glut.h includes gl.h and glu.h 2. 使用 GLUT 库进行窗口管理 初始化(glutInit ) 创建窗口(glutCreateWindow) 设定窗口的显示模式(glutInitDisplayMode) 指定窗口的位置和大小(glutInitWindowPosition和 glutInitWindowSize ) 指定窗口的显示内容函数(glutDisplayFunc) 运行框架(glutMainLoop) Sample Program void main( int argc, char** argv ) { //设置参数 int mode = GLUT_RGB | GLUT_DOUBLE; glutInitDisplayMode( mode ); //打开窗口 glutCreateWindow( argv[0] ); // 初始化 OpenGL 状态 init( ); //注册回调函数 (callback functions) glutDisplayFunc( display ); glutReshapeFunc( resize ); glutKeyboardFunc( key ); //进入事件处理循环 glutMainLoop( ); } 3. 利用OpenGL进行绘图 glColor3f(1.0, 0.0, 0.0) 三个分量代表RGB 每个颜色分量的取值范围0-1 设置绘图色为红色 glClearColor(1.0, 1.0, 1.0, 1.0) 四个分量代表RGBA, A为透明度 设置背景色为白色 OpenGL 按照状态机的方式工作 State machine OpenGL 可以做两件事 draw something change the state of how OpenGL draws 所有的绘制属性被封装在 OpenGL 状态中 rendering styles shading lighting texture mapping 相关函数 设置状态 glPointSize( size ); glLineStipple( repeat, pattern ); glShadeModel( GL_ SMOOTH ); 打开或关闭某种属性 glEnable( GL_ LIGHTING ); glDisable( GL_TEXTURE_2D ); 绘制图形所需其他函数 刷新窗口的缓冲区( glClear) glClear(GL_COLOR_BUFFER_BIT) 设定投影参数 glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); 绘制矩形 glRectf(50.0f, 100.0f, 150.0f, 50.0f); 观察 Viewi
文档评论(0)