Quelle est la différence entre OpenGL et Direct3D? Sont-ils vraiment différentes implémentations pour accomplir les mêmes choses (comme CLR [.NET] de Java et Mirosoft)?OpenGL et Direct3D
Répondre
Ce sont des API graphiques très différentes. Mais il est juste de dire qu'ils accomplissent la plupart du temps la même chose. DirectX est probablement l'API de choix si vous développez un jeu sous Windows (ou un jeu pour XBOX), et OpenGL est le choix si vous voulez un support multiplateforme. Mac OS utilise GL, tout comme l'iPhone, par exemple, et de nombreux jeux Windows supportent également OpenGL. Parce qu'OpenGL a été développé depuis longtemps et «par le comité», il comporte beaucoup de bagages - l'API a quelques options plus anciennes qui ne sont pas vraiment pertinentes aujourd'hui. C'est l'une des raisons pour OpenGL ES; il coupe toutes les ordures et fait pour une plate-forme de cible plus facile.
DirectX d'autre part est contrôlé par Microsoft, et en tant que tel, il a un aspect plus «moderne» (il est basé sur des composants COM, donc très orienté objet). MS met souvent à jour l'API pour correspondre au nouveau matériel.
Parfois, vous n'avez pas le luxe de choix (iphone par exemple ne peut pas exécuter DX). Mais souvent, cela se résume à des préférences/expériences personnelles. Si vous êtes un programmeur graphique de longue date, vous avez tendance à vous familiariser avec les deux ...
Merci pour l'explication détaillée. cela me donne une image très claire des deux. –
Google est votre ami dans ce cas ... il y a un bon article de Wikipedia contrastring les deux bibliothèques:
Comparison of OpenGL and Direct3D
Si ma mémoire est bonne, OpenGL a été la mise en œuvre ouverte avant Direct3D est sorti. Direct3D était alors basé sur OpenGL ... mais a rapidement divergé et est devenu sa propre bibliothèque distincte.
MISE À JOUR
On dirait que ma mémoire est tiré ...
Direct3D a été développé independtly d'OpenGL.
Direct3D n'était pas basé sur OGL (bien qu'ils aient tous les deux utilisé le même modèle de base pour le rendu). L'histoire de D3D avant 5.0 est définitivement bizarre (http: // fr .wikipedia.org/wiki/Direct3D # Histoire). – Michael
Bon point sur Google. –
Heh - J'ai travaillé sur Direct3D avant qu'il ne devienne Direct3D ;-) Certainement pas basé sur OpenGL ... –
Direct3D et OpenGL sont des API différentes utilisées pour accomplir la même chose. Les principales différences entre D3D et GL sont que D3D est orienté objet et que GL ne l'est pas. D3D9 et GLES2 ont essentiellement les mêmes caractéristiques. En fait, si vous envisagez d'utiliser OpenGL et n'avez pas besoin de fonctionnalités GL3 ou GL4, vous devriez baser tout votre code sur l'API GLES2 (toutes les fonctionnalités de GLES2 sont dans GL2, mais pas l'inverse).
Si possible, vous devriez toujours utiliser D3D sur GL sur Windows, comme le multithreading et le support du pilote est floconneux. Prenez les netbooks par exemple, ils supportent le HLSL de D3D chez ShaderModel 2 mais ne supportent pas l'équivalent pour GLSL, ils ne supportent qu'un pipeline fixe pour GL.
DirectX est plus que de simples graphiques 3D ne voulez-vous pas dire Direct3D vs OpenGL? –
Votre droite, je l'ai réparé. http://en.wikipedia.org/wiki/DirectX –