Il faudrait que tu nous dise ce que tu as comme matériel et quels sont ces jeux :)
Parce que ça peut pas mal jouer (sans jeu de mot) sur les impressions à l'écran :)
__________________________
....... Curtis: RTS 3D .......
Personnelement, j'ai l'impression qu'il y a un bug soit dans directx, soit dans l'engin 3D.
Les deux jeux en questions avec des problème de rotation : Breed et Halo !
Pourtant Breed a un graphisme moins élaboré que Halo! et j'ai le même problème. Au début, les programme fonctionnent normalement, soudainement cela ce met à ramer mais seulement d'un coté !!!!
A mon avis, et n'étant pas utilisateur de MS Windows, OpenGL est la technologie à utiliser parce qu'elle est portable.
Direct3D est généralement (très légèrement) plus véloce qu'OpenGL sous Windows (Direct3D n'étant disponible que sous Windows).
La raison n'est pas liée à l'API elle-même mais aux constructeurs de carte graphiques qui, pour la plupart, soignent d'avantage le code de leurs drivers Direct3D (ça n'est pas le cas de nVidia) Pourquoi les constructeurs optimisent-ils leurs cartes graphiques pour Direct3D? Parce que le grand public utilise principalement Windows. (HS: parce que le grand public y est souvent contraint par les pratiques commerciales douteuses de Microsoft, les accords tout aussi douteux passés avec les constructeurs, et le non-respect des standards et de l'interopérabilité, et donc de la législation européenne...)
Mais OpenGL est portable donc potentiellement plus performant. Je m'explique: il est possible de s'affranchir du système d'exploitation Windows qui consomme à lui seul beaucoup de ressources système. On peut alors s'apercevoir que les versions Linux de Doom 3 ou UT2004 tournent sur des configurations minimales moins musclées que sous Windows. En effet Linux consomme bien moins de ressources qu'un Windows XP.
Il est aussi vrai qu'OpenGL ne connaît pas les problèmes d'instabilité de Direct3D (et n'est pas contraint de supporter les problèmes d'instabilité de Windows).
La portabilité, c'est la faculté des programmes OpenGL de tourner sur des plates-formes autres que celles supportées par Windows, comme le processeur Cell (celui la PS3), ou mieux supportés par un autre Système d'exploitation (les processeurs x86 64 bits supportés par Linux depuis leur sortie en mode 64bits)
L'exemple du moteur Unreal montre qu'un moteur 3D bien conçu peut utiliser au choix Direct3D ou OpenGL: Les appels à ces API se font uniquement dans les méthodes de base du moteur. Ces méthodes ne forment qu'une petite partie d'un moteur 3D.
Enfin, OpenGL a été développé dans la tradition des outils UNIX: OpenGL et DirectX ne sont pas tout à fait comparable car OpenGL est dédié aux fonctions d'affichage en 3D alors que DirectX mélange plusieurs fonctions.
En général, dans la tradition UNIX, on préfère utiliser conjointement plusieurs outils et bibliothèques dédiés chacun à une tâche bien définie pour créer un programme (deboguage, compilation, différentes bibliothèques, etc.)
Ainsi on a :
- OpenGL pour les tâches dédiées au rendu et à l'animation 3D,
- SDL pour la gestion des joystick, souris, clavier,
- OpenAL pour le son,
- GLUT pour la gestion des fenêtres, menus
etc.
Chaque bibliothèque a son cycle de développement propre et peut être optimisée indépendamment des autres composants.
A mon avis, et n'étant pas utilisateur de MS Windows, OpenGL est la technologie à utiliser parce qu'elle est portable.
Direct3D est généralement (très légèrement) plus véloce qu'OpenGL sous Windows (Direct3D n'étant disponible que sous Windows).
La raison n'est pas liée à l'API elle-même mais aux constructeurs de carte graphiques qui, pour la plupart, soignent d'avantage le code de leurs drivers Direct3D (ça n'est pas le cas de nVidia) Pourquoi les constructeurs optimisent-ils leurs cartes graphiques pour Direct3D? Parce que le grand public utilise principalement Windows. (HS: parce que le grand public y est souvent contraint par les pratiques commerciales douteuses de Microsoft, les accords tout aussi douteux passés avec les constructeurs, et le non-respect des standards et de l'interopérabilité, et donc de la législation européenne...)
Mais OpenGL est portable donc potentiellement plus performant. Je m'explique: il est possible de s'affranchir du système d'exploitation Windows qui consomme à lui seul beaucoup de ressources système. On peut alors s'apercevoir que les versions Linux de Doom 3 ou UT2004 tournent sur des configurations minimales moins musclées que sous Windows. En effet Linux consomme bien moins de ressources qu'un Windows XP.
Il est aussi vrai qu'OpenGL ne connaît pas les problèmes d'instabilité de Direct3D (et n'est pas contraint de supporter les problèmes d'instabilité de Windows).
La portabilité, c'est la faculté des programmes OpenGL de tourner sur des plates-formes autres que celles supportées par Windows, comme le processeur Cell (celui la PS3), ou mieux supportés par un autre Système d'exploitation (les processeurs x86 64 bits supportés par Linux depuis leur sortie en mode 64bits)
L'exemple du moteur Unreal montre qu'un moteur 3D bien conçu peut utiliser au choix Direct3D ou OpenGL: Les appels à ces API se font uniquement dans les méthodes de base du moteur. Ces méthodes ne forment qu'une petite partie d'un moteur 3D.
Enfin, OpenGL a été développé dans la tradition des outils UNIX: OpenGL et DirectX ne sont pas tout à fait comparable car OpenGL est dédié aux fonctions d'affichage en 3D alors que DirectX mélange plusieurs fonctions.
En général, dans la tradition UNIX, on préfère utiliser conjointement plusieurs outils et bibliothèques dédiés chacun à une tâche bien définie pour créer un programme (deboguage, compilation, différentes bibliothèques, etc.)
Ainsi on a :
- OpenGL pour les tâches dédiées au rendu et à l'animation 3D,
- SDL pour la gestion des joystick, souris, clavier,
- OpenAL pour le son,
- GLUT pour la gestion des fenêtres, menus
etc.
Chaque bibliothèque a son cycle de développement propre et peut être optimisée indépendamment des autres composants.
Je ne pense pas que SGI contribue encore à OpenGL, je dis peut-être des conneries mais OpenGL évolu par librairies annexes.
__________________________ Writing-Pad
Le choix se fait essentiellement en fonction de l'application à réaliser. En général on préfère quand même DirectX pour les applis 3D trés poussées, quand la plateforme cible est Windows. La raison principale est que DirectX est quand même plus véloce, avec des optimisations de l'api plus régulières, et surtout un suivi aux niveaux des drivers et des technologies "next-gen" trés réactif.
OpenGL est également un bon choix mais personnellement je n'aime pas cet API (mais c'est tout à fait personnel).
Enfin j'ai lu qu'il falait réecrire une application DirectX pour qu'elle soit portable... bon ce n'est pas tout à fait vrai dans la mesure ou les appels à DirectX vont représenté environ 10% du code, il est trés facile de prévoir une abstraction de l'API et ainsi porté trés rapidement une application DirectX vers OpenGL.
__________________________ Mon moteur 3D DirectX9 C#
je ^possède une carte graphique radeon 9200 LE family,; j'ai installé le jeu starwars Knight of the old republic, et je ne peux pas y jouer, car l'ordi m'indique un problème de configuration insuffisante du système : il manquerait le pilote "open gl non-windows" : je n'y comprends queudale, help, que faut-il faire????
__________________________
felixthecat
Il ne faut pas oublier que DirectX contient la gestion des shaders alors que OpenGL qui n'a pas évolué depuis longtemps n'a rien au sujet des shaders. de plus DirectX gère aussi bien les graphismes que l'audio... Il fodrai qu'une nouvelle version d' OpenGL apparaisse pour palier à ces nombreux retards.
__________________________
n'hesitez pas à visiter Mon site et surtout Mon Tutorial C