楼主总结:本章主要介绍一些OpenGL的历史,以及一些工具库,并讲解了OpenGL第一个三角形程序的诞生,为之后的学习做个铺垫。
1.OpenGL定义:图形硬件的一种软件接口,是一种通用接口,而不是软件,各个厂商可以自己根据此标准实现OpenGL。
2.OpenGL演变:最初是一家厂家SGI控制,后来因为公司战略发展,将其交由ARB管理,但是后来由于SGI破产,最后OpenGL交给Khronos小组管理,现在依旧是他们管理,并且管理着OpenGL ES,现在OpenGL已经被演变为一个规范。
3.OpenGL扩展机制:由于激烈的竞争环境,以及多变的市场,OpenGL api不可能不变化,所以后来出现了一个扩展库,并且提供了标准头文件glext.h包含所有这些扩展。你可以通过OpenGL提供的查询函数查询当前硬件设备支持的扩展,参见以下代码。可以通过前缀知道是哪家提供商提供的技术支持。
GLint nMumExtensions;
glGetIntegerv(GL_NUM_EXTENSIONS, &nMumExtensions);
4.OpenGL的未来:目前Khronos小组发展壮大,并且已经达到不到一年更新一个版本的速度。虽然有Direct3D的竞争,但是这仿佛是一个餐厅和一个商场的竞争,根本不会影响到OpenGL的长远发展,OpenGL所占的市场份额比Direct3D要大的多。5.OpenGL兼容性问题:目前OpenGL完全向前兼容,不过OpenGL3.2之后,出现了核心框架和完整框架,核心框架摒弃了一些“不鼓励使用”功能。
6.OpenGL工具类库:
6.1 GLUT是OpenGL辅助库,封装了与平台相关的一些功能,加入了弹出式菜单,键盘,操纵杆控制等。
6.2 GLEW是一个OpenGL扩展库,如果当前系统不支持最新的OpenGL,可以使用该扩展库完善此问题。