今日的电子产品非常重视视觉表现,这也让OpenGL(Open Graphics Library)被普遍支持使用。OpenGL是一个跨平台/跨编程语言应用程序编程接口(API),主要用于生成2D/3D图像,特别适合电子游戏的开发、虚拟现实、CAD等应用。
|
2D/3D的跨平台API:OpenGL BigPic:581x633 |
OpenGL目前支持的编程语言有Java、Fortran 90、Perl、Pike、Python、Ada和Visual Basic。平台支持方面,由于OpenGL的核心API没有窗口系统、音频、打印等输入设备的概念,亦没有和硬件有关的软件接口,所以能够进行跨平台开发,如Windows、Unix、Linix、MacOS等,许多显示设备厂商也提供了高效实现的支持(依赖图形加速硬件)。
从OpenGL 1.0 到OpenGL 4.3已经大约有二十年的时间。1992年由SGI公司发布1.0版本的OpenGL时,令当时大型的图形处理软件都可以在家庭计算机运行,而之后的版本更新都加入了不少新功能,重点更新如下:
- OpenGL 1.1:提高色彩指数、顶点位置、颜色、纹理坐标、法线、多边形边缘标识的传输速度。
- OpenGL 1.5:推出了OpenGL Shading Language(GLSL),并且加入隐蔽查询、顶点Buffer Object、非乘方纹理、Shadow功能等。
- OpenGL 2.0:改为由3Dlabs推出OpenGL新标准,并且增强shader的扩展特性。
- OpenGL 3.0:GLSL版本更新至1.3,加强图形硬件的支持和增加32bit浮点纹理和渲染缓存、顶点矩阵对象和全帧缓存对象功能等。
- OpenGL 4.2:应用于支持DirectX11的硬件,如Radeon HD 5000/6000系列显示适配器。
- OpenGL 4.3:在shader的运算上加强GPU的平行处理能力等等。
OpenGL的功能可以分为七大类:
- 建模:OpenGL内置不同的绘制函数,如基本类型如点、线和三维类型如球、锥、多面体。
- 变换:图形处理技巧的一种,包括基本变换(平移、旋转等)和投影变换(如平行投影、透视投影等)。
- 颜色模式:二种模式,分别是RGBA模式和颜色索引。
- 光和材质设置:光设置方面有环境光、漫反射光、镜面光和辐射光。材质方面是以光反射率设置的。
- 纹理映像:加强3D物体的细节度,从而看下去更加逼真。
- 图像显示:除了基本的图像读写外,可以于图像中加入融合、反走样、运动模糊、深度暗示和雾的特效。
- 双缓存动画:双重的缓存称为前台和后台,后台缓存计算场景和生成画面;前台缓存显示后台缓存完成后的输出画面。
(参考数据:Designspark)
白皮书下载:
OpenGL 4.3 Core Profile Specification
OpenGL 4.3 Compatibility Profile Specification