对于非游戏,OpenGL 仍然比 Direct3D 更好吗?

标签 opengl directx direct3d

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

8年前关闭。




Improve this question




标准模型是 OpenGL 适用于专业应用程序 (CAD),而 Direct3D 适用于游戏。

随着 openGL 3.0 的崩溃,openGl 仍然是技术 3D 应用程序 (cad/GIS) 的自然选择吗?
是否有 Direct3D 的场景图形库?

(当然 Direct3D 仅适用于 Windows。)

最佳答案

D3D 让您支付微软的“战略税”。即D3D服务于两个master。一是为您提供功能和性能。另一个是确保锁定到其他 MS 产品和 Windows 平台。这对你有一些后果:

  • D3D 应用程序只能在 Windows(包括 Xbox)上运行。也许你现在不认为这很重要。但是,如果以后您想在 Mac、Linux、PS3、 future 的游戏机等上运行,您可能会很高兴选择了独立于平台的选择。
  • MS 可以做出一些武断的决定。下一个版本的 D3D 是否只能在需要新硬件、价格昂贵且很多人不想升级的操作系统上运行?他们会做出一些你不同意的其他 future 决定吗?
  • 从历史上看,OpenGL 曾引领 D3D 快速展示新的硬件功能。这是因为标准中有一种机制供供应商添加他们自己的扩展,并且这些扩展最终会被合并到主要规范中。 D3D 是 MS 想要的任何东西,可以肯定的是供应商的意见,但 MS 获得否决权。您很可能会遇到类似 Vista 的情况,MS 决定不对旧的 DX 公开新的硬件功能,而只在 Vista 上提供新的 DX。这让游戏开发者非常头疼。

  • 那么,这就是“专业应用程序”(CAD、动画、科学可视化、GIS 等)偏爱 OGL 的原因——像这样的应用程序想要稳定多年,需要持续维护和改进,并希望在许多平台上运行。这与游戏形成对比,游戏经常只在一个平台上发布,但通常不会“维护”(可能不会有 2.0,三年后另一个操作系统的更新,不需要支持较旧的硬件等)。游戏需要最高性能,并且只需要在很短的时间窗口和固定数量的平台上运行。如果他们无论如何都需要以 Windows 为目标并且 D3D 更快一点,那么这可能是正确的选择,因为负面的 D3D 后果不会像 CAD 应用程序那样伤害他们。

    关于对于非游戏,OpenGL 仍然比 Direct3D 更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124851/

    相关文章:

    java - opengl : loading array types to uniform buffer objects

    c++ - 使用多个纹理将纹理分配给对象

    c++ - Directx9 : Reset Device after Ctrl+Alt+Del

    c++ - 检索要通过网络发送的 ID3D11Texture2D 数据

    C++我误解了输出参数吗

    textures - 如何提高 Direct3D 流纹理性能?

    c++ - OpenGL 和 OOP 编程

    c++ - DirectX CreateBuffer 内存泄漏

    c++ - 创建独立控件的好策略 Direct2D

    c++ - Qt OpenGL 错误 '_imp_gl...'