open GL 、
DirectX
、open CV、 open Inventor 、cocos2dx、unity3d、3dmax辨析
一、open GL 、DirectX
open GL
是一个非常底层的框架,相当于“面向过程的语言”,其他的东西就是基于他的。
OpenGL是一个相对底层的框架。解决的是如何使用图形设备进行图形计算的问题。
大体会有一系列函数框架作为API供开发者使用。而本身会有一套规范接口来供硬件和底层开发商实现驱动。
DirectX是与
open GL对等的概念,都是属于
3DAPI,但directX是window平台下的。
Windows平台游戏基本都是DirectX。
DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。
目前,我们可接触到的图形API可分为OpenGL和DirectX两大体系:
前者是一项开放性的标准,主攻专业图形应用和3D游戏,由"OpenGL架构委员会"掌控,其成员包括业内各大厂商,目前主要推动标准发展的实际领导者是3Dlabs。
DirectX则是微软制定的API标准,除了图形API功能外,它还包含音频API等功能,只不过其图形部分升级最快、也最为人所知。DirectX针对的主要是娱乐应用
二、open CV
open CV是一个
提供图像处理和视频处理的基础算法库,还涉及一些机器学习的算法。比如你想实现视频的降噪、运动物体的跟踪、目标(比如人脸)的识别这些都是CV的领域。
我所见过的更多地是处理普通2d图片。
可以说,open GL与open CV没什么关系。
三、open Inventor
open Inventor是基于open GL的一个3d图形库,相当于是“面向对象的语言”。
coin3d库就是基于
open Inventor的一个包装。
四、
cocos2dx、unity3d
cocos2dx、unity3d都是3d引擎库,与open inventor是同等级的,只不过
cocos2dx、unity3d专注于游戏领域。
跨平台的游戏引擎。
cocos2dx、unity3d与open GL 的关系是:他们都
会用到OpenGL来绘制它要绘制的2D、3D图形。这两者的关系,好比汽车与它的引擎,汽车一定需要引擎,但是引擎可不知道它被用在哪个汽车上。
五、3dMax
3D游戏中往往需要三维模型(我还真没见过没有模型的3D游戏),而Unity3D不能自己创建模型,所以使用unity3D制作游戏时需要外来的模型素材。
而这些3D的模型素材往往就是通过3DsMax或Maya这些三维建模软件制作的。