mondrone
Messages postés246Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention11 mars 2012
-
9 août 2005 à 12:00
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 2008
-
10 août 2005 à 14:04
Salut à tous. En fait je ne demande ni bout de code, ni programme, ....
Je voudrais une fois pour toutes comprendre la différence entre le
moteur 3D et OpenGL (ou DirectX). Que fait l'un, que fait l'autre (si
ca se trouve vous allez me dire que l'un fait partie de l'autre). Juste
mettre ça au clair. Et aussi tant qu'à faire. Quand on dit Moteur 3D
optimisé pour FPS, pour RPG... ou alors ce jeux est optimisé GeForce,
ou ATI... Ca veut dire quoi exactement.
Choses qui vous semblent surement acquises depuis des lustres, mais pas pour moi !
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 10 août 2005 à 14:04
Salut,
OpenGL et DirectX ne sont pas des moteurs 3D mais des librairies qui te permettent d`exploiter la carte video pour faire un moteur 3D. C`est beaucoup plus rapide.
Elles contiennent aussi des fonctions de calculs dans l`espace, dans le plan, des objets mathematiques (vecteurs, matrices, quaternions), leurs operateurs, etc, bref presque tout ce dont tu as besoin pour faire de la 3D facile.
La carte 3D s`occupe de l`affichage.
Elle contient les textures, des surfaces, les vertex (sommets) des meshes (maillages), les indices pour les faces et des programmes executables (shaders).
En supposant que toutes les donnees soient chargees dans la carte video, pour afficher un objet, un moteur 3D doit de maniere plus ou moins implicite (selon la facon dont on utlise les librairies):
-dire quels sommets et quelles faces sont concernees
-quel programme doit etre applique aux sommets
-quel programme doit etre applique aux pixels
Ces programmes ont besoin de parametres:
-envoyer des constantes pour les programmes ci-dessus (matrice ou autres)
-envoyer les adresses des textures concernees
...et enfin, l`ordre d`afficher.
Bien sur c`est extremement simplifie mais l`idee est la.
Le moteur 3D calcule les matrices a envoyer aux shaders, enfin, bref, tout le reste.
Il doit limiter au maximum le nombre d`objet a afficher, donc doit etre en mesure de determiner ceux qui sont suseptibles d`etre vu par le joueur (differentes techniques FPS / RPG).
En gros, un gars qui te dit "j`ai fait un moteur 3D" meme s`il ajoute ensuite "avec DirectX" a tape enormement de ligne de code.
Si les shaders pour la carte video sont faits a la main, ils sont suceptibles de contenir des fonctions qui sont plus ou moins bien gerees par les differentes cartes video.
D`ou une ATI peut ne pas executer certaines fonctions qui ne posent pas de probleme a une GeForce. Il y a bien sur d`autres subtilites.
Regarde un code utilisant OpenGL ou DirectX, tu verras bien.
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 10 août 2005 à 00:24
Moi je dirais: on demande au moteur 3D d'afficher un monde virtuel,
moteur qui demande a opengl d'afficher des points, des lignes et de
plaquer des textures.
Le moteur 3D diffère en fonction du type de jeu que tu veux faire. Pour le reste, je sais pas bien. ++