OpenGL是近几年发展起来的一个性能卓越的三维图形标准,它是在SGI等多家 世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通 用共享的开放式三维图形标准。目前,包括Microsoft、SGI、IBM、DEC、SUN、 HP等大公司都采用了OpenGL做为三维图形标准,许多软件厂商也纷纷以OpenGL 为基础开发出自己的产品,其中比较著名的产品包括动画制作软件Soft Image 和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软 件ProEngineer、GIS软ARC/INFO等等。值得一提的是,随着Microsoft公司在 Windows NT和最新的Windows 95中提供了OpenGL标准及OpenGL三维图形加速卡 (如北京黎明电子技术公司的AGC-3D系列三维图形加速卡)的推出,OpenGL将 在微机中有广泛地应用,同时也为广大用户提供了在微机上使用以前只能在高 性能图形工作站上运行的各种软件的机会。 OpenGL实际上是一个开放的三维图形软件包,它独立于窗口系统和操作系统, 以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以 与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算 法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:
1) 建模 OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提 供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面 (如Bezier、Nurbs等曲线或曲面)绘制函数。
2) 变换 OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、 旋转、变比镜像四种变换,投影变换有平行投影(又称正射投影)和透 视投影两种变换。其变换方法与机器人运动学中的坐标变换方法完全一 致,有利于减少算法的运行时间,提高三维图形的显示速度。
3) 颜色模式设置 OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。
4) 光照和材质设置 OpenGL光有辐射光(Emitted Light)、环境光 (Ambient Light)、漫反射光(Diffuse Light)和镜面光(Specular Light)。 材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光 的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。
5) 纹理映射(Texture Mapping) 利用OpenGL纹理映射功能可以十分逼真 地表达物体表面细节。
6) 位图显示和图象增强 图象功能除了基本的拷贝和像素读写外,还提供 融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。 以上三条可是被仿真物更具真实感,增强图形显示的效果。
7) 双缓存(Double Buffering)动画 双缓存即前台缓存和后台缓存,简而言 之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。 此外,利用OpenGL还能实现深度暗示(Depth Cue)、运动模糊(Motion Blur)等 特殊效果。从而实现了消隐算法。