2010-01-26 96 views
4

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

我知道ATI Technologies提供HLSL2GLSL,但我的理解是,这只是为了着色器语言而不是API的全面覆盖。

回答

5

这些概念非常相似,但DirectX和OpenGL之间的API差别很大。自动转换不会很简单...

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

+1

+1用于提及irrlicht – 2010-01-26 18:37:53

+0

源应用程序实际上使用Allegro,它在Windows上使用DirectX,而我不确定在其他平台上发生什么但显然不是OpenGL。我对Allegro的“opengl”资源进行了严格的处理,并且没有点击,这就是我说的原因。 Allegro可能在下一个版本中使用OpenGL,用于非Windows,但目前我认为它没有。如果是这样,我会被设置。 – Buggieboy 2010-01-26 18:43:12

+1

如果您使用的是Allegro,您可以添加AllegroGL以支持OpenGL:http://wiki.allegro.cc/index.php?title=AllegroGL如果您移动到最新版本(4.9+),它将支持OpenGL盒子。 – 2010-01-26 18:53:20

1

很久以前,在游戏中使用了专有的OpenGL-to-DirectX封装器,这些封装器就像单个DLL暴露(子)OpenGL命令集一样简单。另一方面,使用OpenGL伪造DirectX(Direct3D)可能会更困难,因为您必须支持整个COM事物。所以我想你将不得不复制所需的接口,然后才写出实际的包装。

+0

我也想知道葡萄酒。是否需要将DirectX调用转换为OpenGL才能在Mac上运行?如果是这样,我想我可能会通过检查它是如何做到的。 – Buggieboy 2010-01-26 18:45:28

+0

我认为是的,WINE可以将DirectX转换成OpenGL,否则我无法想象游戏如何在它下面工作。 – 2010-01-27 08:42:39

相关问题