2010-01-26 5 views
4

Existe-t-il des outils et/ou de la documentation fournissant un mappage de DirectX vers OpenGL? Si vous deviez faire une conversion, comment l'aborderiez-vous et que feriez-vous?Outils/ressources pour convertir le code DirectX en OpenGL

Je sais que ATI Technologies fournit HLSL2GLSL, mais je crois comprendre que c'est uniquement pour les langages shader et non pour une couverture complète des API.

Répondre

5

Les concepts sont très similaires, mais les API sont très différentes entre DirectX et OpenGL. La conversion automatique ne va pas être très simple ...

Personnellement, si j'avais un projet et essayait de convertir d'une solution à l'autre, j'essayerais de convertir en une bibliothèque de rendu qui supporte les deux, comme comme Ogre, Irrlicht, ou un moteur commercial. De cette façon, vous pouvez prendre en charge DX et OpenGL dans une base de code.

+1

+1 pour mentionner irrlicht –

+0

L'application source utilise en réalité Allegro, qui utilise DirectX sous Windows et je ne suis pas sûr de ce que je suis mais apparemment d'OpenGL sur d'autres plateformes. J'ai salué les sources d'Allegro pour "opengl" et n'ai obtenu aucun succès, c'est pourquoi je dis cela. Allegro peut utiliser OpenGL dans la prochaine version pour les non-Windows, mais je ne pense pas que ce soit le cas pour le moment. Si c'était le cas, je serais prêt. – Buggieboy

+1

Si vous utilisez Allegro, vous pouvez ajouter AllegroGL pour le support OpenGL: http://wiki.allegro.cc/index.php?title=AllegroGL Si vous passez à la dernière version (4.9+), il prend en charge OpenGL sur la boîte. –

1

Il y a longtemps, il y avait des wrappers OpenGL-à-DirectX propriétaires, utilisés dans les jeux, qui étaient aussi simples que le simple sous-ensemble de commandes OpenGL DLL exposant. D'autre part, truquer DirectX (Direct3D) avec OpenGL pourrait être beaucoup plus difficile, car vous devez prendre en charge l'ensemble de la chose COM. Donc je suppose que vous devrez répliquer les interfaces requises et seulement ensuite écrire le wrapper réel.

+0

Je m'interroge aussi sur WINE. A-t-il besoin de convertir les appels DirectX vers OpenGL pour fonctionner sur un Mac? Si c'est le cas, je pense que je pourrais apprendre quelque chose en examinant comment cela fonctionne. – Buggieboy

+0

Je pense que oui, WINE convertit DirectX en OpenGL, sinon je ne peux pas imaginer comment les jeux pourraient fonctionner en dessous. –