介绍
在您使用计算机图形学的过程中,您可能听说过两种主要的编程接口:OpenGL 和DirectX。这些相互竞争并推动各自的发展。 API 之战确实很有趣。我们来看看这两位大佬是谁,他们的实力到底是什么。
什么是OpenGL?
OpenGL是一种专业的图形编程接口,定义了跨编程语言和跨平台的编程接口规范。这是一个功能强大且易于调用的底层图形库,用于3D图像(或2D图像)。 OpenGL 是一种独立于硬件的软件接口,可跨不同平台移植,例如Windows 95、Windows NT、Unix、Linux、MacOS 和OS/2。因此,支持OpenGL的软件可移植性强,用途广泛。由于OpenGL是底层图形库,不提供几何实体图元,不能直接用来描述场景。然而,一些转换程序允许您轻松地将3D 图形设计软件(例如AutoCAD [2])中生成的DXF 和3DS 模型文件转换为OpenGL 顶点数组。市场研究公司JonPeddie Research预测OpenGL3.1将安装在超过1亿个图形硬件上。 AMD、Nvidia 和S3 图形显卡驱动程序均支持OpenGL 3.0。
什么是OpenGL-ES?
OpenGL(OpenGL for Embedded Systems)是OpenGL 三维图形API 的子集。专为移动电话、PDA 和游戏机等嵌入式设备而设计。 Opengles 是一个免费、跨平台、功能丰富的图形应用程序编程接口API,适用于2D 和3D 应用程序。我们专注于设计各种嵌入式系统,例如控制台、移动电话、手持设备、消费电子产品和汽车。它由一个定义明确的桌面OpenGL 子集组成,在软件和图形加速之间创建灵活且强大的低级接口。这是目前手机游戏所使用的基本图形支持。
什么是DirectX
1995年到1996年,微软推出了支持Windows 95上运行的游戏的新计划,旨在将市场扩展到任天堂和世嘉控制的游戏。然而,微软并不想使用NT 中已有的OpenGL 技术。微软收购了RenderMophics, Ltd.并收购了3DAPI 领域的Reality Labs。重组后,微软发布了新的3dapi,direct3d.microsoft,它实现了direct3d并冻结了OpenGL。发起API 战争。这就是DirectX 的历史。 Direct Extensions (DX) 是Microsoft 创建的多媒体编程接口。它是用C 语言编写的并且满足COM 要求。它广泛用于Microsoft Windows、Microsoft Xbox、Microsoft Xbox 360 和Microsoft Xbox One 的视频游戏开发,并且仅在这些平台上受支持。 DirectX为3D图形和声音提供动力,并为设计人员提供了通用的硬件驱动程序标准,因此游戏开发人员不必为每个品牌的硬件编写不同的驱动程序,同时在保证用户安装和硬件设置的同时也简化了设置。从字面意义上来说,直接的x表示直接的含义,后面的x表示多种含义。从这个角度来看,可以看到DirectX直接服务于很多软件。 DirectX 不仅仅是一个图形API。由Microsoft 开发的广泛使用的API。根据其属性的不同,可以分为四个部分:显示部分、音频部分、输入部分和网络部分。 DirectX 现在是一个应用程序平台。目前,DirectX在游戏开发领域占有很大的市场份额。
OpenGL 和DirectX 工作
两者都是用于渲染二维或三维图形的图形应用程序编程接口。这些接口可以说是将更高级别的应用程序连接到较低级别的GPU。应用程序将渲染命令发送到这些接口,接口将渲染命令发送到显卡驱动程序。这些显卡驱动程序实际上知道如何与GPU 进行通信。它们负责将OpenGL 或DirectX 函数调用转换为GPU 可以理解的语言,并且还负责纹理等内容。数据被转换为GPU支持的格式。
OpenGL 和DirectX 之间的区别
1 从技术角度
OpenGL 更易于移植,但DirectX 只能在Windows 操作系统上使用。它是基于Windows操作系统平台的应用程序接口。 OpenGL只是一个图形库。专业的3D程序界面。 OpenGL 专为输出而设计,因此它只提供渲染功能。核心API 没有窗口系统、音频、打印或其他输入设备的概念。这种设计允许代码完全独立于操作系统而呈现,从而实现跨平台开发。 DirectX 是Microsoft 开发的一种广泛使用的API。我们提供一系列多媒体接口解决方案,尤其是3D 图形领域。从硬件通信的角度来看,DirectX是一个程序,可以让您轻松确定计算机的硬件功能并相应地设置程序参数。该程序允许多媒体软件程序在具有DirectX兼容硬件和驱动程序的基于Windows的计算机上运行,从而允许多媒体程序紧急使用高性能硬件。 OpenGL是一个独立于硬件的软件接口,可以在任何平台上运行。它在设置程序参数以适合您的硬件方面不如DirectX。目前,硬件开发商正在加大对IT的支持。
2 关于申请
OpenGL仍然是专业高端图形领域不可替代的中流砥柱。 OpenGL广泛应用于CAD、内容创建、能源、娱乐、游戏开发和虚拟现实等行业。 DirectX 适用于广泛的实用3D 图形计算,包括多媒体、娱乐和实时3D 动画。 Windows占据了基于该平台的游戏开发的大部分市场。
参考
https://www.insideria.cn/article/30567 《Unity Shader 入门精要》
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/548883.html