IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ Programmation 3D

FAQ Programmation 3DConsultez toutes les FAQ

Nombre d'auteurs : 7, nombre de questions : 67, dernière mise à jour : 14 juin 2021 

 
OuvrirSommaireGénéralités

Nous comptons sur vous pour enrichir cette FAQ et participer à sa maintenance. Si vous avez remarqué une erreur, une simple faute d'orthographe, si vous souhaitez nous faire part d'un manque, ou n'importe quoi d'autre : vous pouvez , ou poster à la suite de ce sujet consacré à la FAQ Programmation 3D.

Merci !

Créé le 22 janvier 2006  par Laurent Gomila

Cette FAQ a pour vocation de répondre aux questions les plus fréquemment posées concernant la programmation 3D.

Ce que vous y trouverez :

  • des notions et techniques de rendu 2D / 3D générales ;
  • des notions et techniques de physique (collisions, intersections, partitionnement).

Ce que vous n'y trouverez pas :

  • des informations concernant la modélisation 3D ou l'infographie ;
  • des questions spécifiques à une API 3D ;
  • des notions purement mathématiques.
Créé le 22 janvier 2006  par Laurent Gomila

Lien : Où trouver des informations plus spécifiques à mon API (DirectX, OpenGL…) ?
Lien : Où trouver des réponses à mes questions de maths ?

Le développement 3D est complexe et nécessite de bons outils pour être mené à bien.

Si vous souhaitez faire de la 3D pure, redévelopper vos propres algorithmes, toucher au bas niveau et être au plus près du hardware, alors il faudra vous diriger vers une API 3D, soit DirectX soit OpenGL (voir https://jeux.developpez.com/faq/3d/?page=generalites#GENERALITES_dx_vs_ogl et https://jeux.developpez.com/faq/3d/?page=generalites#GENERALITES_api_specifique. Ces API sont assez difficiles à appréhender pour un débutant, et ne gèrent que l'affichage. En outre, vous devrez redévelopper tous les algorithmes couramment mis en œuvre pour gérer ou optimiser le rendu.

Si au contraire votre but est de créer des applications 3D le plus rapidement possible, vous concentrer sur les autres aspects de votre jeu, ou tout simplement si vous préférez utiliser des outils éprouvés, efficaces et qui vous mâcheront beaucoup de travail, alors il existe de nombreux moteurs gratuits et open source. On peut distinguer deux types de moteurs en rapport avec le développement 3D : les moteurs 3D (gèrent l'affichage du monde 3D), et les moteurs physiques (gèrent les interactions entre objets, les collisions…). Voici les plus célèbres.

Moteurs 3D

  • OGRE (Object-oriented Graphics Rendering Engine) : multiAPI, multiplateforme et open source, ce moteur C++ est certainement le meilleur des moteurs 3D gratuits à l'heure actuelle. Il est utilisé dans de nombreux projets, et en constante évolution.

  • Irrlicht : multiAPI, multiplateforme, multilangage et également open source, Irrlicht est également très utilisé et très facile d'emploi.

Pour une liste beaucoup plus complète des autres moteurs 3D disponibles, voir https://jeux.developpez.com/faq/3d/?page=generalites#GENERALITES_moteurs_3d.

Moteurs physiques

  • ODE (Open Dynamic Engine) : moteur physique C / C++ open source, permettant de simuler des collisions, des véhicules, des créatures, et plus généralement tout type d'objet dans un environnement virtuel. À l'image du moteur 3D OGRE, ODE est certainement le meilleur moteur physique gratuit du moment.
Créé le 22 janvier 2006  par Laurent Gomila

Lien : Les meilleurs bibliothèques et moteurs pour le développement 2D / 3D / jeux

Il existe des centaines de moteurs 3D disponibles sur le Net, pour toutes sortes de langages, ayant toutes sortes de fonctionnalités et pour toutes sortes de licences.

Pour s'y retrouver, l'un des meilleurs sites est DevMaster - 3D engines database : il recense des centaines de moteurs, possède une fonction de recherche, permet de les consulter par catégorie, de voir les différents top 10…

Créé le 22 janvier 2006  par Laurent Gomila

Le programmation 3D, autant graphique que physique, est un domaine large et complexe, bien souvent difficile à appréhender par les débutants, mais constituant également une quête sans fin pour les experts.

Vous pouvez commencer par consulter la rubrique « 2D / 3D / Jeux » sur Developpez.com : https://jeux.developpez.com. Vous y trouverez tutoriels, bibliothèques, outils, freewares, ressources et critiques de livres.

Quelques sites ou communautés anglophones se sont développés sur le Net, fournissant de nombreuses ressources concernant le développement (articles, tutoriels, codes sources, forums…).
Voici les plus célèbres :

Voici également une suite de tutoriels concernant la réalisation d'un moteur 3D :
Conception d'un moteur 3D en C++

Créé le 22 janvier 2006  par Laurent Gomila

Cette FAQ étant générale, elle ne traite d'aucune API en particulier. Si vous recherchez des informations plus spécifiques, liées à l'API que vous utilisez, alors vous pouvez également consulter ces FAQ :

Mis à jour le 12 mai 2006  par Laurent Gomila

Les notions mathématiques se cachant derrière la programmation 3D sont nombreuses, et coder le moindre calcul mathématique pour qui ne maîtrise pas ces notions peut se révéler très difficile, voire impossible. Ces notions étant plutôt vastes, une FAQ dédiée est consacrée aux matrices et quaternions.

FAQ des Matrices et Quaternions

Créé le 22 janvier 2006  par Laurent Gomila

Malgré toutes leurs dissimilarités, DirectX et OpenGL ont des domaines d'application qui se recouvrent suffisamment pour qu'on puisse hésiter entre l'un et l'autre lors du choix d'une plateforme de développement.

En pratique dès lors que l'on programme sous Windows, les choix sont le plus souvent subjectifs, chacune des plateformes ayant ses avantages et inconvénients.

Quelques arguments sont tout de même à retenir :

  • OpenGL est multiplateforme, DirectX ne fonctionne lui que sous environnement Windows ;
  • il est par contre impossible de programmer en OpenGL pour XBoX. Mais la conversion des appels graphiques de OpenGL à Direct3D est probablement la partie la plus facile de la conversion d'un jeu PC sur console ;
  • DirectX propose de nombreuses bibliothèques multimédias alors qu'OpenGL se limite au rendu graphique ;
  • DirectX propose via ses composants COM une interface orientée objet, alors qu'OpenGL reste du pur C ;
  • historiquement et encore récemment le support d'OpenGL est laissé à l'appréciation des constructeurs de cartes graphiques, ce qui entraine une grande disparité dans le support de nouvelles features et de la stabilité générale de la plateforme OpenGL sous Windows. L'utilisation d'OpenGL est donc plutôt à conseiller aux développeurs qui peuvent s'assurer que leurs utilisateurs auront une implémentation d'OpenGL décente sur leur machine.
Créé le 22 janvier 2006  par Laurent Gomila, LeGreg

Lien : FAQ DirectX
Lien : FAQ OpenGL

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009-2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.