各类三维引擎综合概述(OpenGL、DirectX、WebGL、UE4、U3D、ACIS、ParaSolid)

关于OpenGL、DirectX、OpenCV

OpenCV

OpenCV是 Open Source Computer Vision Library 主要是提供图像处理和视频处理的基础算法库,还涉及一些机器学习的算法。比如你想实现视频的降噪、运动物体的跟踪、目标(比如人脸)的识别这些都是CV的领域。它是可以运行在Linux、Window、和Mac OS操作系统上,它是轻量级而且很高效的。

OpenGL

OpenGL是 Open Graphics Library 是个定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图象(二维的亦可),是一个功能强大,调用方便的底层图形库。

DirectX

DirectX 是 Direct eXtension 由微软开发,是许多种API的集合体,包含Direct3D,Direct2D,DirectCompute,XAudio,XIput等内容。DirectX主要是面向游戏而开发的一系列硬件资源调用的接口;它的接口范围比较OpenGL大

OpenGL与DirectX的区别

简单来说DirectX功能比OpenGL强大,OpenGL主要是一个图形绘制库;从图形绘制技术的角度来说,他们都是相对底层的技术;可以直接使用作为3D引擎使用,但是跟多时候,应用软件不会直接基于他们开发软件。而是基于专用的三维引擎而开发。比如基于UE4三维游戏引擎开发一款游戏;基于ACIS CAD三维引擎而开发一款CAD三维制图软件等。

此外OpenGL与DirectX平台支持不同,DirectX只能在Windows XBOX平台运行,而OpenGL是夸平台的。

常见的三维引擎

三维引擎按平台可分为客户端三维引擎,Web端三维引擎;按用途可分为游戏三维引擎、CAD/CAM/CAE三维引擎;

游戏引擎常见的有UE4、U3D;CAD工程用的三维引擎又分商用的还有开源的,商用的比较著名的有ACIS、ParaSolid;开源的有OCCT;这些三维引擎都是基于DirectX或OpenGL等底层之上构建的;他们才能真正意义上的三维引擎;而OpenGL与DirectX只能称得上是图形绘制接口

而Web端的三维引擎主要有Three.js、Babylon.js、Cesium.js等,这些B端的三维引擎几乎基于WebGL而开发的三维引擎,而webGL又是OpenGL ES的B端API封装集;这些B端引擎他们都有各自的应用场景,比如Three.js用于做效果展示、Babylon.js用于游戏开发,Cesium.js用于GIS开发;

最后为大家献上一张图,把上面介绍的关系说清楚

在这里插入图片描述