【问题标题】:Tools/Resources to Convert DirectX Code to OpenGL将 DirectX 代码转换为 OpenGL 的工具/资源
【发布时间】:2010-01-27 02:37:19
【问题描述】:

是否有任何工具和/或文档提供从 DirectX 到 OpenGL 的映射?如果您必须进行转换,您将如何处理它以及您会使用什么?

我知道 ATI Technologies 提供 HLSL2GLSL,但我的理解是这仅适用于着色器语言,而不是 API 的完整覆盖范围。

【问题讨论】:

    标签: opengl directx


    【解决方案1】:

    DirectX 和 OpenGL 的概念非常相似,但 API 非常不同。自动转换不会很简单...

    就个人而言,如果我有一个项目并试图从一种解决方案转换为另一种解决方案,我实际上会尝试转换为支持两者的渲染库,例如OgreIrrlicht,或商业引擎.这样,您可以在一个代码库中同时支持 DX 和 OpenGL。

    【讨论】:

    • 源应用程序实际上使用 Allegro,它在 Windows 上使用 DirectX,而在其他平台上我不确定是什么,但显然不是 OpenGL。我在 Allegro 资源中寻找“​​opengl”并没有得到任何点击,这就是我这么说的原因。 Allegro 可能会在下一个非 Windows 版本中使用 OpenGL,但我认为目前还没有。如果是这样,我就准备好了。
    • 如果您使用 Allegro,您可以添加 AllegroGL 以支持 OpenGL:wiki.allegro.cc/index.php?title=AllegroGL 如果您迁移到最新版本(4.9+),它支持开箱即用的 OpenGL。
    【解决方案2】:

    很久以前,在游戏中使用了专有的 OpenGL 到 DirectX 包装器,它们就像单个 DLL 公开(子)OpenGL 命令集一样简单。

    另一方面,使用 OpenGL 伪造 DirectX (Direct3D) 可能要困难得多,因为您必须支持整个 COM。所以我猜你必须复制所需的接口,然后才能编写实际的包装器。

    【讨论】:

    • 我也想知道 WINE。是否需要将 DirectX 调用转换为 OpenGL 才能在 Mac 上运行?如果是这样,我想我可以通过检查它是如何做到这一点来学习一些东西的。
    • 我认为是的,WINE 将 DirectX 转换为 OpenGL,否则我无法想象游戏如何在它下运行。
    猜你喜欢
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    相关资源
    最近更新 更多