DirectX 与 OpenGL

DirectX 与 OpenGL

我们可以DirectX使用 wine 和OpenGLnatively 来运行。所以问题是:

  • OpenGL我们可以这样比较相当于DirectX(例如 11、12 等)的具体版本吗?

答案1

出色地。

“我们已经DirectX通过使用 wine 和OpenGL原生应用了解了 Ubuntu 的支持。”
这句话是所以在很多层面上都是错误的。你甚至不明白 DirectX

简单来说,DirectX 是一个库(主要是 *.dll)的集合,允许开发人员轻松访问 Windows 的低级图形、网络和音频系统(也许还有其他系统,但从未使用 dx 进行过太多开发)。

DirectX 基本上是一种允许使用便利层的东西,这样您就可以执行“加载和应用纹理”之类的操作,而不必从 jpg/png/whatever 中读取每个字节的颜色值并根据某些“几何逻辑”将它们绘制在屏幕上的 3 个或更多点之间,因为这将大大增加开发多媒体应用程序的难度。

这意味着 Ubuntu 根本不支持 DirectX。事实上,除了 Windows 之外,没有任何东西真正支持 DirectX(也许ReactOS尽管我从未测试过)。

但我可以<insert whatever game here>靠酒来维持生命!
是的。你可以,但这并不意味着Ubuntu支持你的游戏。这意味着葡萄酒做。

Wine 是 Windows 的“兼容层”。它基本上以递归方式转换和解析调用,以便最终其他库将执行与原始调用类似的操作。这自然需要对原始调用在原始系统(Windows)上会做什么有深入的了解,因此有些东西在 Wine 中开发得非常缓慢(例如 DX11 支持或所谓的 Pulse 驱动程序)。

因此,以上内容应该可以回答您的第三问题,但基本上是:
“是的,我们这样做,而且葡萄酒。”

从中你可以看出你的第一的这个问题有点无意义,因为 DX 想要关注的东西远比 OpenGL 多得多。

至于第二问题:
如果我们只考虑 DX 的图形部分,那么我发现 OpenGL 更详细一些(甚至可能有点复杂),但 ymmv。

答案2

Linux 上的图形几乎完全使用 X windows 系统实现。在 Linux 上支持 OpenGL 涉及使用 X Server 的 GLX 扩展。因此,这取决于您使用的 GPU。

它得到了以下机构的支持:

  1. AMD/ATI
  2. 英特尔
  3. 英伟达
  4. S3 显卡
  5. Nvidia HOWTO(旧)。

OpenGL 的最新版本是OpenGL 4.5。要检查您的兼容性或了解更多信息,您可以参考此链接 -

平台特性:Linux

如果您安装了 OpenGL,则可以通过在终端中输入此命令来获取有关您正在使用的版本的信息 -

glxinfo | grep "OpenGL version"

比较两个 API

我对 DirectX 了解不多,但我可以告诉你使用 OpenGL 的优点-

  1. 尽管微软在 DirectX 10 和 11(最新版本)上付出了很多努力,现在它们的速度与 OpenGL 一样快,并且支持几乎尽可能多的功能,但 OpenGL 的绘制调用速度比 DirectX 更快,此链接并且可以通过以下方式优先使用新的 GPU 功能供应商扩展
  2. 由于 OpenGL 是一个跨平台应用程序,因此它可以在 Mac、Linux 和 Windows 上高效运行。

相关内容