2010-01-26 92 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

相關問題