2.1 OpenGL的功能及其两种学习路线
- OpenGL是什么?
大约有150个函数组成,用户可以调用来完成各种绘图任务
调用图形硬件的程序接口,因为应用程序直接调用图形显卡驱动很困难,OpenGL相当于在其中加了一层辅助打交道
- OpenGL能做什么?
·变换(几何变化、投影、视口变换)
·光照与材质
·纹理映射
·图像功能
·特效
·建模
·.....
- OpenGL的学习
·OpenGL的学习不只是学习一堆离散的函数,而必须很好的理解图形流水线的整体流程及各个环节
·OpenGL是一个状态机
·整个绘制过程会按照固定的流程进行,如同一条流水线
·OpenGL函数只是用来设置这条流水线的一系列状态参数,而并不是用来真正执行绘制操作的
- OpenGL的两种学习路线
- .固定流水线模式——传统模式
·学习固定流水线,然后过渡到shader编程
·(红宝书)从第八版开始转成shader编程
·Nehe教程
- .Shader编程模式——现代模式
·直接学习shader编程模式
·蓝宝书
- .选择传统的理由
·现在依然有大量程序是固定流水线模式
·传统方式可以让我们更容易理解图形流水线
2.2 OpenGL相关的库
- 核心库
·包括115个函数,前缀“gl”
·例:glColor3f(),glTranslate3f()
·三个文件:gl.h,openGL32.lib,openGL32.dll
- OpenGL实用程序库
·包括43个函数,前缀glu
·gluPerspective()
·glu.h,glu.lib,glu.dll
- 辅助OpenGL编程的工具库
·如freeglut (free OpenGL Utility Toolkit)
·需要glut.h, freeglut.h, freeglut32.lib, freeglut32.dll
4.freeglut功能
·执行与窗口相关的功能
·鼠标、键盘交互功能
·右键菜单功能
·高层的建模命令(如glutSolidSphere( 1.0))
- 有时还有窗口连接的库
·“wgl”,”glx”......
·编外内容
跨平台性:OpenGL的核心库和实用库接口可以在任何OpenGL的实现平台上使用,如MS windows,Unix...