gpt4 book ai didi

windows - 在 Windows 上,OpenGL 与 DirectX 有何不同?

转载 作者:可可西里 更新时间:2023-11-01 12:36:17 26 4
gpt4 key购买 nike

我没有任何图形编程方面的实践经验。我在阅读有关图形编程的文章时产生了这个疑问。

据我了解,由于 Windows 不提供像直接硬件访问那样的 DOS,因此创建了 DirectX。这意味着 DirectX 是实现直接(大概)硬件访问的唯一可靠方式。我错了吗?

如果我没记错的话,OpenGL 必须使用 DirectX 本身或在 DirectX 之上实现。

那么这是否意味着 Windows 上的 OpenGL 就是真正的 DirectX?

请注意,我的疑问仅限于标题所说的内容,我对为什么一个比另一个更好等不感兴趣。

最佳答案

From what I understand, because Windows didn't offer DOS like direct hardware access, Direct X was created.

您是对的,Windows 没有像直接硬件访问那样提供 DOS。事实上,没有带内存保护的操作系统。

是的,创建 DirectX 是为了提供 API 以加速访问某些类型的硬件。 DirectX 是用于加速硬件访问的 API,而不是(唯一)。

That means Direct X is the only sure way to achieve direct(ish) hardware access. Am I wrong?

错了,因为没有什么也没有人阻止你实现另一个加速硬件访问的轨道。负责引导对硬件的访问的软件片段称为驱动程序。驱动程序以特权模式运行,这意味着地址空间保护不适用于它们。也就是说,因为驱动程序必须能够与硬件通信。

驱动程序通过 API 与常规程序通信,即所谓的用户空间。 API 可能是标准化的,然后可能是严格指定的,或者它们可能是完全专有的。

DirectX 是一个指定的 API,该规范由 Microsoft 编写。

OpenGL 以类似的方式是一个 API,但它不是由单个实体指定,而是以某种形式在多个贡献者的协作下标准化。

专有 API 的一个例子是 3Dfx 的 Glide,它在很大程度上受到了 OpenGL 的启发。事实上,有一个名为“minigl”的兼容性包装器实现了半条命 1 引擎在 3Dfx/Glide 系统上工作所需的 OpenGL 子集。

GPU 供应商的驱动程序开发人员遵循 API 规范,为 DirectX、OpenGL 或某些专有接口(interface)编写驱动程序。这些 API 中的每一个都可以访问驱动程序,从而访问硬件。并且单个资源可能有多个 API。驱动程序可以并行实现 DirectX 3D、OpenGL 和其他任何东西,并将它们全部提供给用户空间。

所以不,如果附带 GPU 驱动程序,OpenGL 不是构建在 DirectX 之上的。 Windows Vista 及更高版本附带构建在 DirectX 之上的 OpenGL-1.4 仿真,但它不支持着色器、顶点缓冲对象和所有其他哨声和铃声。只要您安装了支持 OpenGL 的 GPU 驱动程序,这就会用实际的低级实现完全取代 OpenGL-1.4 仿真。

关于windows - 在 Windows 上,OpenGL 与 DirectX 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com