cocos2dx程序员要不要学习OpenGL

cocos2dx程序员要不要学习OpenGL,第1张

不学也可以。

但如果你想自己写的着色器程序的话需要学习,官方例子里就有。

因为引擎本身给出的glProgram一般情况下是够用了,但如果有特殊的需求,是要自己写的。

在这个DirecTX称霸庶民世界的宇宙中,还有一种迷失的比较严重的图形加速技术的存在……那就是OpenGL

OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。

OpenGL是个与.硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。

在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。1995年OpenGL的1.1版本面市,该版本比1.0的性能有许多提高,并加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。OpenGL 1.5又新增了“OpenGL Shading Language”,该语言是“OpenGL 2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。

OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成(如图一)。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。

目前,随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商的用户的认知程度并不高,未来的OpenGL发展前景迷茫。

用过DOS系统吧?DOS系统没有GUI(图形用户界面),因此没有图标,鼠标指针等图形交互元素,要想通知 *** 作系统打开某个程序只能手动输入口令。而windows *** 作系统则不同,因为windows有GUI,因此也就有了图形化的用户界面,这样只需双击图标即可通知 *** 作系统,让 *** 作系统运行该程序。

因此GUI得作用是让普通用户以图形的方式和 *** 作系统进行交互。(GUI是 *** 作系统的一部分)

而OpenGL和普通用户没有直接关系,也不是 *** 作系统的一部分,它是为了让专业的图形程序员更方便的 *** 纵显卡以便绘制各种图形(如游戏中的图形),而将一些底层的代码封装成函数,这样程序员只需调用这些函数,而不必从头编写底层代码,这些函数的集合统称为OpenGL。

因此OpenGL的作用是让程序员在编程的过程中和显卡之间交流更方便。

总而言之,GUI是给普通大众用的,为了让他们更方便的使用 *** 作系统,OpenGL是给专业的图形程序员用的,为了让他们更方便控制显卡。

这两者八竿子打不着,你怎么会把他们联系起来呢?


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11430508.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存