OpenGL与DirectX:应该在游戏开发中使用哪个? 您所在的位置:网站首页 支持openGL的游戏有那些 OpenGL与DirectX:应该在游戏开发中使用哪个?

OpenGL与DirectX:应该在游戏开发中使用哪个?

2024-05-17 16:08| 来源: 网络整理| 查看: 265

图形API,如OpenGL和DirectX,作为软件和用于玩游戏的图形硬件之间的桥梁。这些API提供了在屏幕上显示2D和3D图形的标准化方法。在过去的几十年里,它们已经成为游戏开发的基础。

像Unity这样的引擎在它们使用的图形API之间提供了一个选择,但你如何为你的游戏选择正确的选项呢?加入我们吧,我们将比较OpenGL和DirectX,让你了解哪种工具最适合你。

DirectX与OpenGL:主要功能概述

在它们的核心,DirectX和OpenGL共享相同的图形管道,而且它们已经有很多年了。两个API都使用称为顶点的点来构建复杂的图形基元。每个顶点都存储自己的坐标和其他重要信息。但每个库使用顶点的方式是不同的。

它们可能执行类似的功能,但如果你与它们一起工作,你会注意到OpenGL和DirectX之间的区别。

DirectX与OpenGL:API范围

在进一步讨论之前,有必要指出,虽然它们都是图形API,但OpenGL和DirectX有不同的范围。OpenGL是一个纯种的图形API,这意味着它不处理2D和3D图形以外的任何东西。另一方面,DirectX是一个图形、音频、网络和其他硬件API的集合,它们都在一起工作。

在某些情况下,OpenGL会使用DirectX来执行它自己无法完成的功能。本文的其余部分将忽略这两种API之间的差异,重点讨论每种工具的图形元素。

OpenGL与DirectX:平台

OpenGL是一个免费的API,由一家名为Khronos Group的非营利公司管理,而DirectX是由微软制造的。DirectX主要在Windows和Xbox上工作,其他平台,如Linux,慢慢得到支持。OpenGL是跨平台的,使得它可以在一系列操作系统和游戏机上进行游戏开发。

DirectX与OpenGL:硬件资源

DirectX将硬件管理留给开发者,使你能够根据需要有效地分配资源。OpenGL处理硬件管理,但这也有自己的好处,因为你不必担心自己管理资源。

DirectX与OpenGL:文档

在使用API时,获得详细的文档可以使游戏开发更容易。DirectX和OpenGL提供定期更新的文档和有用的开发者社区。这两个API每年都会有大规模的更新,以确保它们提供最好的功能。

使用OpenGL与DirectX进行游戏开发

开发人员在现代市场上使用OpenGL和DirectX制作了许多漂亮和优化的游戏。在选择2D/3D图形API时,有几件事你应该考虑。有些开发者会简单地依赖他们最熟悉的工具。

OpenGL或DirectX:平台

我们已经谈到了平台问题,但这是开发者的一个重要考虑因素。如果你想为Nintendo Switch、Playstation 4或Linux制作游戏,你将需要使用OpenGL或其他支持它们的API。DirectX是为Windows和Xbox制作的,与其他系统的兼容性有限。

OpenGL或DirectX:引擎兼容性

现在,大多数游戏开发者使用Unity和Unreal等引擎来创建他们的游戏。这两种引擎都支持OpenGL和DirectX,其他跨平台的游戏开发引擎也是如此。

OpenGL或DirectX:使用的方便性

有人会说,OpenGL比DirectX更容易操作。除了硬件资源,OpenGL只处理图形,这使得它在本质上更加简单。它在更多的平台上工作的事实也使它更容易发布有此要求的游戏。

图形API的易用性对游戏开发者来说并不像以前那样重要。有了像Unity这样的引擎在幕后与图形API对接,只需要点击一个按钮就可以调换你所使用的API。除非你从头开始创建一个游戏,否则你不太可能注意到每个API的易用性有什么不同。

OpenGL或DirectX:图形功能

除非你是一个边缘案例,否则你不太可能看到这些API之间的功能有很大的区别。它们都支持你的图形卡的能力,只有当GPU在未来发生巨大变化时,这一点才会改变。

OpenGL或DirectX:游戏性能

关于这些API的性能,开发者之间有很多争论。很难想象OpenGL或DirectX有明显的性能差异,尽管OpenGL更流畅、更高效的说法在网上很常见。

要想知道这些API中哪个性能最好,唯一的办法就是通过测试。由于Unity与这两种API的兼容性,我们可以创建一个项目,用这两种API测试一个样本游戏,以创建一个性能基准。

这些测试是用2D和3D图形进行的,以确保它们不同的管道不是一个相当大的因素。每个测试都运行了120秒的常规游戏,并对每秒的帧数进行了测量,以确定性能。所有测试都是在同一台电脑上进行的。

3D性能测试。Unity Carting Microgame

Unity Carting Microgame是一个免费的模板,它包含了你建立一个简单的赛车游戏所需要的一切。它带有教程,但我们对游戏本身更感兴趣。我们用OpenGL和DirectX构建了Carting Microgame,以比较其性能,结果如下。

最低的最高的平均水平DirectX331848365.05开放GL247819283.7

在我们的3D基准测试中,DirectX的表现超过了OpenGL,在整个过程中取得了令人印象深刻的帧率。OpenGL的结果仍然是可玩性较高。

2D性能测试。Unity Platformer微型游戏

与Carting Microgame一样,Unity Platformer Microgame也是免费的,并且包含了大量的学习工具。正如预期的那样,我们测试中的2D游戏比3D游戏表现更好,但你可以自己评估结果。

最低的最高的平均水平直接X599850767.367开放GL302604515.417

从上面的结果可以看出,DirectX在我们的测试中取得了更高的平均帧率。虽然差异可能看起来很大,但这两个结果都是非常可玩的。

OpenGL或DirectX 11:性能结论

虽然很多人说OpenGL比DirectX性能更好,但后者的API在我们的两项基准测试中都取得了更好的结果。这远远不是决定性的,许多因素在决定游戏的性能方面起着作用,特别是当它们变得更加复杂时。

DirectX或OpenGL:你应该在游戏开发中使用哪一种?

选择正确的图形API取决于几个因素。DirectX是使用最广泛的图形API。许多游戏开发者在将游戏移植到其他平台的OpenGL之前,先为Windows和Xbox创建他们的游戏。如果你专门在Windows和Xbox之外发布游戏,你可能会从一开始就使用OpenGL而受益。

性能也是一个需要考虑的因素,尽管我们的测试表明,在使用像Unity这样的引擎工具时,这一点是相当可以忽略不计的。从本质上讲,这两个图形API之间的差异只对那些寻找特定利基功能的人有影响。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有