Que faut-il choisir OpenGL ou Direct 3D???
Merci d´avance
@+
Stone2
Les 2 . ..
(Question courte , réponse courte ! )
He he, tres bonne question : )
Test les 2 et prends celui qui te convient le mieux, ils ont tout les 2 leurs points faible et leurs points fort.
Pour ce qui est de la performance, il est inutile de poser la question. Que se soit avec OpenGL ou DirectX, un code mal fait produira de pietre performances.
Si tu souhaites des avis personnel, sache que les reponse ne seront pas forcement tres objectives... la mienne la premiere ^^
Kouic
- Les meilleures chose dans la vie sont gratuites -
L´éternelle question!...
Bon, moi, j´imagine que je dois t,aider a trancher, hein... ; D d´accord, faison un post ala Kelios(200 000 lignes, des remarques à tout bout de champ et un français bien écrit : D)
Pour moi, qui ne fait pas encore de 3D mais qui envisage d´en faire très bientot (a comprendre environ 2 mois ; P), mon choix est fait : OpenGL.
Pour sa rapidité d´écriture, son efficacité, sa stabilité, sa portabilité... et son OpenSource-ité
J´ai passé par DirectX et vu que toutes ses parties se ressemblent sur les points mentionnés, je peut donc en parler. Bon, alors, c´est beaucoup trop complexe pour rien, C´est pas stable(Microsoft Inside), c´est Windowsien, ca change tout le temps(pour enlever des bugs et en rajouter des nouveaux ; P) donc tu dois tout réapprendre sans cesse...
Bref, ça fait *****. Bon, d´accord, il est à peine plus puissant que OpenGL, mais peu importe, il est instable. A quoi ça sert d´avoir de la puissance si on peut pas l´utiliser?
Bon, alors comme toujours, une API a des conséquences mineures. Même si tu prend un Photoshop, mais que tu est nul en dessin, ça ne changera rien, tes résultats seront nuls. Ainsi, si tel jeu est bon, c´est du au programmeur qui a codé le moteur, à l´infographiste qui a dessiné les textures, au modeleur qui a créé les models, pas l´intermédiaire entre le machine et le moteur, que ce soit Direct3D ou OpenGL.
Mais commence à te poser les pour et les contre. Moi j´ai choisi, mais le choix dépend de la situation dans lequel tu as à développer.
Je crois que même un texte de 40 Go ne suffirait pas pour porter une conclusion. N´empêche que ça ne bat pas notre question nationale du forum, "Comment on crée un jeu SVP. Merci d´avance." ou "Avec quel logiciel on crée un C++? Est-il gratuit?"
Bon, alors sur ce bon courage pour te décider.
Kelios
------
"Le roi des posts à 200 000 lignes"
tien voila un comparatif que je vien de trouver...
certain seront pas d´accord avec tout, mais ca a l´air a peu pret objectif (mais ca de donnera pas le meilleur des 2, a toi de choisir : ) ) :
http://membres.lycos.fr/jcomgl/comparatif.php3
Chez moi :
)) OpenGL a l´avantage d´etre simple d´acces et t´epargne de pas mal de maths ou d´initialisation rebarbatives.
)) OpenGL est stable.
)) OpenGL est cross plateforme.
)) OpenGL a beaucoup de ressources sur le net (nehe, gametutorials etc...)
(( OpenGL n´a pas de systeme de fenetrages par defaut.
(( OpenGL ne sert qu´aux graphisme, et tu va devoir chercher ailleurs pour l´audio et le reste.
)) DirectX contient tout a l´interieur, il y a direct music, audio, transform etc...
)) DirectX contient beaucoup de fonctions préfaites, (bien optimisées sur Dx8 d´ailleurs), ca te permettera d´obtenir des bons resultats sans avoir a coder des loaders... par exemple.
)) DirectX est stable.
(( DirectX n´est pas cross plateforme
(( Si tu n´a jamais fait de programmation Win32, tu va trouver ca dur a assimiler au debut.
Bref, si tu veux faire de la programmation de jeux en 3D, je ne peux que te recommander d´apprendre les 2 en parallelle. Ca serait inferalement dur au debut, mais apres tu sera content parce que tu pourras faire de la vrai prog 3D, car tu aura pu voir ce qui etait partie de l´api et ce qui etait partie de la prog3d (c un peu + dur a faire avec une seule api je suppose)
ce sujet a déja ete largement débatut plusieur fois dans ce forum
fais une petit recherche
Data
bizare comme comparaison.
alors par contre Kelios: il est instable, donne moi des exemples parce ke je n´ait jamais vu une seule fois dans ma vie une erreur due a DirectX, LcData t´en a vu toi ? ca m´etonnerais, si un de tes jeux a merdé, c le jeu ki est mal programmé pas DirectX excuse moi et d´ailleur j´utilise DirectX assez intensément en programmation et l´argument "plus rapide d´ecriture" oulala attention.
peut etre au debut oui, mais apres vraiment non !
ya des milliers de fonctions absolument inexistantes en OpenGL comme rien que le chargement des texture il faut faire sa fonction de chargement des bitmaps nous meme arf arf arf.
et pire, imagine que tu veuilles utiliser un fichier avec chanel alpha, (png par exemple) et ben va ecrire un algo pour ouvrir du png.
DirectX c déja tout integré.
Alors la, Monsieur Lightness1024, vous m´etonnez!
Je pensais que vos connaissances etait plus etendu que cela sur OpenGL.
Au risque de me repeter, il n´est absloument pas util de reecrire les algo de chargement ou je ne sais quoi.
Apres 15 longues minutes de recherche sur internet, on peut trouver de quoi egaler (et parfois surpasser) les fonctions de DirectX. Surtout en se qui concerne le charement des textures (cf DevIL).
Mais bon, il est vrai que personne ici ne sais utiliser les moteurs de recherche sur internet : p
En bref, lorsqu´on a compris qu´il ne fallait pas reinventer la roue a chaque fois on fait autant de chose avec OpenGL qu´avec ´DirectModifToutLes2Mois´
Kouic, qui prefert les jeux multiplatforme.
Eh oui : pour rajouter la jambe Image a OpenGL, il faut utiliser DevIL ! ! Et pour rajouter la bouche OpenGL, il faut utiliser la librairie PortAudio ou autre (fmod : -), et pour utiliser entree/sorties il faut utiliser la librairie DirectInputGL,...
Resultat = OpenGL + DevIL + OpenSnd + DirectInput
ca fait 4 philosophies a connaitre au lieu d une seule avec DirectX. Oui gna gna gna, source, gratuit, multios, puissance, . .. et Non : ce manque de coherence entre ces differentes parties rendent son utilisation difficile, plus difficile qu un produit tout en un. Vous preferez koi ? Le "tout en un" ou le "un en tout" ? Bon, je laisse tomber ce jeu de mots vaseux : -) Personnellement, jaime pas les morceaux.
Puis pour casser OpenGL (que jaime bien).. ses extensions.. c est gentil, ca permet d utiliser les dernieres nouveautes en attendant DirectX2000. Bah oui, mais c proprietaire.. ca ne marche que sur cette carte ou a la rigueur que chez ce constructeur ! Je ne suis pas au courant de la chose, mais DirectX propose des fonctions universelles permettant de parametrer ce que lon desire... et une fois que ca marche, ca marche sur toutes les cartes pour un seul et meme code. d ou lenorme avantage des nouvelles versions de directx : Pas prendre en compte les extensions, mais les nouveaute. Certes ca change souvent... eh eh, il y a quelques temps encore j utilisais le VESA pour afficher qqchose a lecran et je programmais a la main ma sb ! et ce nest pas pret de finir.
OpenGL s est repose sur son architecture... certes bien foutu puisqu elle a reussi a prendre en charge un certain nombres d operations qui du cote de directx a necessite un changement de version. mais voila elle est deja vieille, et ne fais plus vraiment le poids certes face a directX mais surtout face aux lots d innovations technnologique que font preuves ATI, NVIDIA et MATROX.
J esperais beaucoup du projet Kronos (DirectX a la sauce openGL), une architecture unie, avec, on peut rever une implantation de OpenGL2... mais ca urge !
C est difficile de lutter contre les 500 programmeurs de Microsoft. Surtout qu ils commencent a bien programmer ! Je programme pas bcp avec DirectX, mais je suis daccord avec Lightness... C est stable, long certes, mais les possibilites sont pas les memes ! S il faut faire un choix entre les 2 pour un projet de developpement DirectX est fait clairement figure de favori.
J ai meme trouve sur le net des outils permettant de developper rapidement un driver OpenGL qui sappuie en realite sur DirectX ! Oui ! un driver opengl qui translate les Cmd OpenGL->DirectX ou presque !
Perso, je pencherais pour DirectX. Je reviserais mon jugemment : -) quand sortira OpenGL2... et/ou OpenML
Arnaud
---------------------------------------
A perdu contre Microsoft, mais rira bien qui rira le dernier. (Pourvu que ce soit moi ! )
-----------------------------------------------
J attend le jour ou quand microsoft aura terrasse tout ceux qui se mettrons au travers de son chemin et rendra payant ses kits de developpement : -), superviser nos faits et gestes (deja fait ; -) et a controler nos besoins et nos envies avec les images et jeux qu ils voudront bien nous fournir... Tiens ? La france est pas sage ? On va faire planter le system d arrosage du mais.. Eh hop ! une petite famine pour calmer les esprits ! Billou maitre du monde : il controle toute la chaine alimentaire (centre de production et de consommation)
Pourquoi avoir a faire un choix ? apprendre les 2 en parallele n´est ni une perte de temps, ni impossible... Au moins, on se pose pas de question du style "lequel il faut choisir" ; o). En tout cas, pour demmarer en prog3D, je pense sincerement qu´openGL est de loin le plus simple (surtout avec glut ou en utilisant sdl).
hep, moi je voulait juste faire un poid de l´autre coté de la balance, mais le début du message d´arnaud est ma réponse.
par contre la fin sa part un peu en couille.
et kan MS controllera l´arrosage francais billou sera surement déja mort fo pas exagérer.
: -) Rhaaa non pas le systeme d arrosage. C est juste les lances missiles nucleaires qui tourne sous NT : -) Nan g en sais rien, mais c pas impossible : -) [oui, le fin est du delire : -]
apprendre les 2 en paralleles : mouais, mais un pratique, tu nen utilises qu un seul a la fois...
En tout cas, pour demmarer en prog3D, je pense sincerement qu´openGL est de loin le plus simple = daccord. Surtout si tu commences avant DirectX. (koi directDraw est assez facile d utilisation et les doc bien expliques...)
Je reprend : -)
En tout cas, pour demmarer en prog3D, je pense sincerement qu´openGL est de loin le plus simple = je suis daccord.
Surtout si tu commences apres avoir commence DirectX. (koike directDraw est assez facile d utilisation et les doc bien expliques...).
Si tu te sens lame d un programmeur, et que tu vas coder toute ta vie, tu peux toucher DirectX. Si cest que pour quelques mois, OpenGL est un bon choix.