Dans le cadre de ma nouvelle tentative de moteur 3d, je me demandais quoi utiliser...
OpenGL ou Direct3D ?
je connais déjà pas mal OpenGL, mais je me demandais si ça valait le coup d´apprendre un peu Direct3D. A vrai dire, ça me rebute un peu à première vu, D3D à l´air d´être carrément plus chiant à utiliser qu´OpenGL... Alors voila, ceux qui se sont servi des deux d´une manière assez poussé, si vosu pouviez me donner votre avis.
mmm reflexion faite, ça me fait chier de télécharger les 200Mo de SDK... Ca, c´est abuser je trouve quand même.
Et niveau puissance, je pense pas que OpenGL se fasse larguer aussi vite que ça par D3D...
niveau performances ya une egalité.
(il est vrai ke dans les versions precedentes on pouvait dire k´opengl etait plus rapide)
niveau fonctionnalité ya un boulevard entre les deux. et c directX qui est en tete.
point de vue facilité d´utilisation bien sur DX c plus difficile mais c preske rien par rapport a tout le reste dans un jeu.
initialisations & gestion du rendu en tout ca doit prendre 500 lignes max tandis ke le jeu en lui meme si il a un certain niveau prendra 10000 lignes donc c pas la grosse partie alors si tu es rebuté déja par OpenGL il faudra que tu squatte un certains temps la SDK (comme moi) et apres tu pourra commencer un moteur 3D.
sachant ke ton moteur 3D tu peu le faire aussi en software et faire le plus interressant dans la 3D cad tout ce qui est a la base de la projection, elimination des faces cachées, Z-buffer, texturage kan t´en sera la ca sera deja tres bon le gros probleme est d´ariver a faire qqch d´optimisé.
Mmmmm, 500 lignes pour le rendu ? Ca fait pas beaucoup ça ![]()
Sinon non, je ne feris aps de moteur 3d en soft, c´est sur qu´au niveau intéret c´est vachement bien, mais bon, moi je veux quelque chose qui tourne quand même bien avec des effets un peu poussé (bump-map etc).
Sinon, je pense gérer pas mal de truc moi-même (faces cachées, gestion des matrices tout ça... et j´envois le résultat à l´API qui servira juste à renderiser)
bon en gros Opengl est meiux que dirctx je vais pas te faire totu un cour la dessu mais voila un simple tableau comparatif qui devrait te suffire
Fonction | OpenGl | DirectX |
---------------------------------------
Vertex blending | Non | Oui |
Multiple O.S. | Oui | Non |
Extension Mech. | Oui | Oui |
Two side lighting | Oui | Non |
Volume texture | Oui | Non |
Hardware Z-Buffer | Oui | Non |
Accumulation buffer| Oui | Non |
Full Antialiasing | Oui | Oui |
Motion Blur | Oui | Oui |
Depht of field | Oui | Oui |
Stereo rendering | Oui | Non |
Picking | Oui | Non |
...
bon je vais pas tout enumeré mais opengl est beaucoup plus puissant que directx. Il a plus de fonctionalité et un plus grand nombre d´ option sont son codé en Hard sur le nouvelle carte graphique.
Si tu veux voir les possibilité de opengl et directx va sur el site de nvidia dans la section develloppers et tu telecharge le sdk . Je t eprevien c est pas un ptit sdk celui dirextcx a cote c est de la rigolade.
Data
En fait, le gros problèmes d´OpenGL, c´est certaines extensions qui sont a priori bien pratiques, mais qui ne sont valables que sur les cartes nVIDIA, ce qui est un peu pénible.
Mais je pense finalement rester sur OpenGL pour le moment.
non les extension ne sont pas toujours disponible uniquement sur certaine carte graphique par exmeple les extension S3_TEXTURING
appartienne a S3 et son presente sur ati et nvidia il suffit juste de se renseigner a l avance sur les extension que tu veux utiliser de plsu les extension sont généralement utilisé dnas un but d optimisation et il doit etre possible de faire tourner le programme avec ou sans les extensions.
Data
pfouah kel tablo délirant.
excuse moi lcdata mais tu es serieusement en retard sur la version de directX.
je me suis jamais lance sur la progra 3d; mais y a pas aussi SDL comme API multiplateforme????
nananan, faut pas confondre directx et diectgraphics(vu que direct3d s´appel comme ca maintenant)
soyons clair, tu as directx et openGL qui sont des api 3d, ok?
direct3d et openGL ne s´occupent que de la 3d et rien d´autre!
mais direct3d est un composant de directx!
directx etant une bibliotheque multimedia te permettant d´avoir acces a la carte son, la carte 3d, peripheriques, reseaux...
direct3d est donc la partie de directx s´occupant de la 3d(come son nom le nain dique). de meme ,on a directsound qui s´occupe de tout ce qui est audio.
et c´est la que vient se positionner SDL! SDL c´est comme directx! tu as une partie pour l´audio, une partie pour la 2d(qui est une surcouche a directdraw sous windows), et nain si de suite!
et justement, pour la 3d SDL se nain terface avec OpenGL! ce qui lui permet d´etre portable!
sinon pour le combat DirectGraphics VS OpenGL, les deux api se valent! et apres c´est selon le gout de chacuns(et surtout des besoins du projet)!
lightness1024 le tableau est un comparatif de directx 8.0 et il y a pas eu bcp d *volution depuis !!! en plsu opengl 2.0 va bientot sortir ... alors tu devrais peut etre lire les docs qui Lcoresspondent ...
Data
Les extensons, c´est pas tellement un problème et en général elles sont simple à mettre en place.
Maintenant, je pense que chosir l"un ou l´autre en fonction de ses capacités, c´est pas la bone solution. Il faut surtout choisir en fonction de ce que l´on va utiliser. Inutile de chosir une API (et c´est valable pour les domaines, graphique ou sonore ou autres) parce qu´elle gère une fonction X alors que l´on ne va de toutes façons pas s´en servir.
ok merci bcp Le_Nain_Posteur; bon faudrait peut etre que je m´y mette moi a la 3D;(et dc sous oppengl si on veut le faire sous linux).
ce qui ma le plus choqué c le coup des textures volumétriques, alors ke DX le gere tres bien c pas compliké comme truc !
mais parlons plutot des autres fonction non citées ke DX8 gère et pas OpenGL ni aucune de ses extensions.
d´ailleur la DOC je la connai tres bien surement mieu ke toi lcdata vu ke toi tu privilégie OpenGL.
bien sur je n´ai jamais fait de moteur 3D avec OpenGL donc la DOC OpenGL je la connai pas.
je me permet tout de meme de penser ke DX est mieu puiskun pote a moi ki programme mieu ke moi a tenté de faire un doom like en OpenGL en voyant DirectX ma dit ke OpenGL etait tres legere comme lib a coté de ca et j´ai toute les raisons de le croire.
bon justifier le fait ke je connaisse tres bien la doc DX c simple je suis en plein dedans depuis environ un an (j´aimerait faire un doom like).
en tout cas je conseille a tout le monde de la d/ler la SDK de DX8 j´ai appris un max de trucs su la 3D avec et on peu dire ke vraiment tout sur tout est expliké dedans (sur la lib seulement bien sur pas tout sur la 3D)
voila @#
"je me permet tout de meme de penser ke DX est mieu puiskun pote a moi ki programme mieu ke moi a tenté de faire un doom like en OpenGL en voyant DirectX ma dit ke OpenGL etait tres legere comme lib a coté de ca et j´ai toute les raisons de le croire."
Hummm, dire qu´OpenGL est très léger à côté de Direct3D (et non pas DirectX, attention aux abus de langages), je trouve que c´est un peu abuser, ou c´est vraiment mal connaitre OpenGL.
D´ailleurs le moteur de Quake 3 utilise exclusivement OpenGL, alors bon, si on peut coder des Quake Like avec OpenGL.
bonne chance pour ton doom ; envoie le nous ;-)
parfait on a ka faire confiance a ce pro comme ca topic clos
!
a propos de mon doom like vous pouvez telechargez les debuts ici www.serhum.fr.st
bon bhein désolé si je me suis trompé dans le tableau mais alors il faudrais que gamedev corrige cette erreur dans leur livres alors.
Si non un seul argument pourais suffire a foutre directx a la poubelle : il est pas portable !!! et sous linux directx a la poubelle.
Data
dis plutot les outils de dev gratuits parce ke point de vue niveau les outils microsofts sont plus complets je pense.
parce ke les compilos sont livrés avec l´OS ils sont gratuits et tout est OpenSource il maitrisent donc TOUT.