经过本节,咱们来简要了解一下openGL。html
(1)OpenGL概述:编程
openGL(Open Graphics Library)是个专业的图形程序接口,定义了一个跨编程语言、跨平台的编程接口规格。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层三维图形处理库,也是该领域的工业标准。windows
计算机三维图形是指将用数据描述的三维空间经过计算转换成二维图像并显示或打印出来的技术。网络
(2)OpenGL的图形库函数编程语言
OpenGL不是一种编程语言,而是图形硬件的软件接口,一种API(应用程序编程接口)。OpenGL的图形库函数封装在动态连接库OpenGL32.DLL中,开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。函数
OpenGL函数命令方式十分有规律,每一个库函数均有前缀gl、glu、aux,分别表示该函数属于OpenGL核心库、实用库或辅助库: 工具
1) OpenGL核心库函数:100+个,以gl做为前缀;用来创建各类各样的几何模型、进行坐标变换、产生光照效果、进行纹理映射、产生雾化效果等全部的二维和三维图形操做。性能
2) OpenGL实用库函数:43个,以glu做为前缀;实用函数库是比核心库更高一层的函数库;spa
3) OpenGL辅助库函数:31个,以aux做为前缀;如下介绍以GLUT库为例。操作系统
因为OpenGL是一个图形标准,是独立于任何窗口系统或操做系统的,在OpenGL中没有提供窗口管理和消息事件响应的函数,也没有鼠标和键盘读取事件的功能,因此在编程辅助库提供了一些基本的窗口管理函数、事件处理函数和简单的事件函数。这类函数以”aux”做为前缀。值得一提的是,目前AUX编程辅助库已经很大程度上被GLUT库取代了。
4) Windows专用库函数(WGL):6个,以wgl做为前缀;
5) Win32API函数(WGL):5个,无前缀。
6) GLUT表明OpenGL应用工具包(OpenGL Utility Toolkit),是一个与窗口系统无关的工具包。它做为AUX库的功能更强的替代品,用于隐藏不一样窗口系统API的复杂性。GLUT的子程序的前缀使用”glut”。
(3)OpenGL与DirectX的区别:
不管是OpenGL仍是DirectX,它们自身通常并不实现处理多媒体相关的操做(譬如显卡、声卡、手柄输入、多媒体流的网络传输等等)的能力。它们是一个标准,要求硬件来知足,提供一个函数名,硬件来实现函数内容。经过它咱们能够很是简单而快速地调用硬件提供的各种服务。
1)DirectX的简介:
DirectX是一种应用程序接口API,它可以让以Windows为平台的游戏或多媒体程序得到更高的执行效率,增强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者没必要为每一品牌的硬件来写不一样的驱动程序,也下降用户安装及设置硬件的复杂度。
2)OpenGL与DirectX的区别:
1.OpenGL 只是图形函数库;DirectX 包含图形,声音, 输入,网络等模块。
2.单就图形而论,DirectX 的图形库性能不如OpenGL。并且OpenGL稳定,可跨平台使用,但OpenGL多须要显卡支持。
3.DirectX仅能用于Windows系列平台,包括Windows Mobile/CE系列以及XBOX/XBOX360。
3)建议:
作windows平台上的游戏,固然是DX,想跨平台,想作科学计算程序,想作CAD,想作分布计算,想作工业级应用,最好用OpenGL。
(4)参考文档:
1)为何你应该使用OpenGL而不是DirectX:http://www.cnblogs.com/Baesky/archive/2011/04/08/2009128.html
2)OpenGL与DirectX的区别:http://blog.163.com/xtdx888888@126/blog/static/2955727520083661133565/
3)OpenGL与DirectX:http://blog.sina.com.cn/s/blog_4cc16fc50100bx6m.html