-
Oui j'avais loupé ce troll, honte a moi :-)
oui cela a été dit, c'est un faut débat, OpenGL+SDL (par exemple) est portable mais trop peu objet, limitant parfois la conception (c'est ca qui m'enerve le plus).
inversement DX est pensé objet mais bon -> Win et modification du code a chaque mise a jour, et ca c'est tres lourd.
Au final chacun y trouve son plaisir et c'est le plus important.
J'ai éssayer les 2, je préfére le premier car mes projets qui ont commencer pour certain il y a 3/4 ans peuvent toujours profiter des mises a jours sans devoir le modifier.
-
J'ai aussi essayé les deux et pour mes besoins de développement 3D(lorsque j'ai eu a faire du 3D) j'étais sous Ubuntu donc DX c'était raté, c'est la que j'ai découvert OGL et j'ai tout de suite accroché.
après chacun ses gouts.
-
Bon les gars, avant d'aller plus loin, il est nécessaire de se poser quelques questions et de remettre en cause certaines pensées profondes ;)
Au final ? DirectX c'est quoi ?
Une API propriétaire permettant de gérer la 3D + les évenements, le fenêtrage et tout le bazzare, non portable, c'est tout.
Et OpenGL ?
Une API plus ou moins libre permettant de gérer la 3D mais nécessitant une librairie externe pour le fenêtrage et les évenements, mais qui est portable(enfin avec les extensions, faut faire gaffe :aie:).
La différence ?
- La portabilitée qui n'intéresse pas tout le monde, la preuve directX reste plus utilisé qu'OpenGL.
- La "liberté" qui elle non plus n'intéresse pas tout le monde.
L'opposition :
Opposer ces deux APIs revient à opposer deux mondes :
- Le monde de microsoft(que l'on peut étendre au privé de manière général)
- au monde libre, quoique dans un sens OpenGL n'appartient pas totalement au monde du libre, mais OpenGL est tout de même ancré dans le libre car les linuxiens utilise OpenGL faute de quoi il ne pourrait pas utiliser leur propre application sous leurs OS.
Ce opposition, ce combat, c'est comme la prolongation du combat :
Libre vs privé
dans le domaine 3D, où chaqun des 2 candidats propose son meilleur candidat ;).
Conclusion :
Pour avancer par la suite de manière "saine" disons, dans ce débat, il est nécessaire que tout le monde voit ce débat en deux parties :
- le débat des capacitées purement techniques et informatiques.
- le débat des opinions qui s'en dégagent.
Quitte à avoir un avis différent dans les deux solutions.
Dans la première on doit répondre en tant que personne ayant testé lkes deux et argumentant de manière technique, comme :
"Cet APIs posséde une fonction dont la valeur de retour est de type int ce qui facilité la récupération de sa valeur de retour"
Et dans la deuxième "partie" on peut argumenter sur tout e qui tourne autour de ces APIs(libre, privé, etc...), dans cette partie(et dans celle là UNIQUEMENT) on peut trouver des arguments tels que :
"Le fait que Cet API soit privé empêche les gens d'y contribuer et son développement d'avancer".
Pour en finir avec MON avis :
- l' "importabilitée" de DirectX m'empêche de l'utiliser pour mes applications professionels qui doivent être portables.
- la délimitation net des capacitées de DirectX produit dans un certain sens un gage de sécuritée mais lui fait perdre certaines possibilitée de développement annexes qui pourrait être intéressant.
- je trouve aussi DirectX trop "verbeux" pour une utilisation simple et rapide.
- OpenGL de part sa portabilitée et sa gratuitée représente pour moi le candidat de l'OpenSource ce qui est déjà une bonne raison de plus il est le seul des deux a pouvoir être utilisé avec mon OS préféré(bien que le libre vs le privé soit lié avec ce débat il reste différent :P).
Mon vote :
Donc mon vote au final est :
OpenGL + librairie externes pour les évenements
Mes justifications ont déjà étaient donné ;)
Voili voilou, c'est tout ce que j'avais à dire, je sais c'est long :P.
Sur ce je nous souhaite un bon débat ;)
-
ça me rappelle un article: ici...
Pour choisir il faut savoir quelles sont ses intentions: faire du portable ou "du joli".
Personnellement j'ai une carte graphique ATI. Je "profite" donc d'une très médiocre implémentation d'OGL. Mais comme j'ai besoin de faire du multi-plateforme je me suis lancé (il y a peu) dans OGL.
On peut facilement pallier à l'absence d'API pour la musique, traitement des évènements, GUI etc en choisissant des bibliothèques tierces très spécialisées comme FMOD,la SDL,wxWidgets etc qui sont toutes multi-plateformes...
Mon choix: SDL+OGL 8-)
-
Disons qu'OpenGL est plus abordable et plus facile à apprendre. Surtout vu la grande communauté autour.
J'utilisais OpenGL + l'API Win32 sur Windows ou Xorg sur Linux.
Prise de tête un peu pour Xorg à cause de la doc mais suffit de fouiller le web un peu...
Perso j'ai jamais vraiment adhéré à SDL...
J'ai aussi essayé DirectX <= 9.0 (j'ai pas Vista) aussi bien en C++ qu'en C#.
Mon impression fut que DirectX était plus facile à utiliser dans le sens où c'est beaucoup plus carré et rigoureux qu'OpenGL... Tu sais tout de suite où tu mets les pieds.
Mais l'apprentissage est plus long !
Par contre les gros points négatifs pour DirectX C++ jusqu'à la v9... Les anciens programmes ne compilaient jamais c'est assez énervant...
La version C# (Managed) te permet de respirer plus au niveau des mises à jour.
Concernant OpenGL sous Linux... Comme j'avais une carte nVidia ça faisait plaisir de voir que leurs biblio OpenGL différaient légerement de celles officielles :) Certains progs pour ma nVidia me fonctionnait même pas avec des ATI ! Bonheur !
Sinon c'est cool :lol:
Le meilleur moyen de se faire son propre avis sur DirectX ou OpenGL c'est de concevoir des petits programmes équivalent et de voir les performances, le nombre de lignes de code, la facilité, la compréhension du code, la philosophie de la bibliothèque, son évolutivité, sa portabilité, sa communauté, ses limites, sa documentation, etc.
Donc hésitez pas à essayer par vous-mêmes !
PS: ne vous attardez pas sur le combat à mon avis aussi bien futile qu'inutile entre le "libre" et le "privé". Ca n'a pas lieu d'être dans ce cas.
-
Notez que pour la musique, il existe openAL.
Perso, pour faire du openGL, je vous conseille de l'encapsuler dans des objets. Ca a l'enorme avantage de permettre de faire de l'objet, et de se fatiguer a gere l'API une bonne fois pour toute.
Si en plus vous etes motivé, pour pouvez du coup gerer independement openGL et directX .
La portabilité, ca n'a pas de prix, et une fois l'encapsulation faite, on retrouve certaines qualité de directX.