Moteur graphique

Moteur graphique

Moteur 3D

Schéma d’un pipeline de rendu avec indication du lieu d'intervention des pixel et des vertex shaders (en rouge).

Un moteur 3D est la partie d'un moteur de jeux s'occupant de l'affichage d'objets en trois dimensions à l'écran. La plupart du temps, le moteur 3D est indissociable du reste du moteur de jeux, comme le moteur physique ou le moteur de son par exemple. Néanmoins certains moteurs 3D fonctionnent tout seuls, ils fournissent alors un ensemble de fonctions permettant à leur utilisateur de l'intégrer aux autres moteurs.

L'opération d'affichage est appelée le rendu.

Sommaire

Méthodes de rendu

Il existe plusieurs procédés de rendu 3D (procédés de calculs destinés à obtenir une image matricielle en deux dimensions). Les procédés les plus communs sont le ray tracing et la rastérisation.

La rastérisation est le procédé le plus utilisé pour les jeux vidéos. Le peu de temps nécessaire pour calculer une image selon ce procédé permet d'obtenir en continu des images à un rythme équivalent à celui du cinéma (environ 60 images par seconde)

Le ray tracing permet d'obtenir une image d'une qualité supérieure à celle de la rastérisation (voir photoréalisme). Les calculs complexes effectuées dans ce procédé nécessitent beaucoup de temps et de puissance de calcul et (en 2009) ne permettent pas d'obtenir une image dans un délai suffisamment court pour être utilisé dans un jeu vidéo. Le ray tracing est utilisé pour réaliser des images fixes et des films d'animation.

L'accélération matérielle consiste à utiliser dans la mesure du possible le processeur graphique - souvent inclus dans la carte graphique - pour effectuer les calculs. Le but est de gagner du temps en libérant le processeur central pour d'autres tâches telles que l'arbitrage du jeu, les calculs du moteur physique et du moteur de son, l'intelligence artificielle, etc. Afin de profiter de l'accélération matérielle, les moteurs 3D font souvent usage des possibilités de bas niveau des bibliothèques logicielles telles que DirectX ou OpenGL.

Avec le lancement de la technologie Larrabee, le développement du parallélisme, et plus généralement l'augmentation de la vitesse des processeurs graphiques, certaines personnes pensent que le ray tracing pourra dans le futur être utilisé pour faire du rendu temps réel.[1]

Ray-tracing

Article détaillé : Ray tracing.

Le procédé de lancer de rayon (anglais ray tracing) consiste à calculer le chemin parcouru par le rayon de lumière correspondant à chaque pixel de l'image. Le moteur 3D calcule le chemin en le parcourant en sens inverse en suivant les règles de la physique telle que la réflexion et la réfraction. Il effectue différents calculs d'optique géométrique.

Comme le calcul de couleur est répété une fois par pixel, cette technique peut tirer grandement parti du parallélisme.

Rastérisation

Article détaillé : Rastérisation.

La rastérisation ou rendu de polygones est un procédé où les objets sont représentés sous forme de surfaces polygonales (souvent des triangles) auquel la carte graphique fait subir différentes transformations géométriques afin de les projeter sur l'écran.

Une fois les coordonnées 2D des triangles connues, la carte transforme ceux-ci en un ensemble de pixels, puis calcule la couleur de chaque pixel individuellement.

Lorsque la rastérisation est effectuée par la carte graphique, l'utilisation de shaders permet de modifier les différentes étapes du rendu, dans le but d'ajouter des effets graphiques personnalisés.

Histoire

Depuis 1996 les moteurs 3D grand public ont commencé à tirer profit des fonctionnalités des nouvelles puces graphiques capables de gérer une partie des calculs nécessaire à l’affichage 3D, tandis qu’Intel lançait ses premiers processeurs équipés du jeu d’instructions MMX destiné à améliorer les performance des PC en matière de multiplication de matrices. De nos jours, MMX et 3DNow! (l'équivalent de MMX chez AMD) ont été remplacés par SSE sur tous les processeurs modernes.

Certains moteurs graphiques, comme le CryEngine 2 utilisé dans Crysis[2], s'approchent aujourd'hui du photoréalisme.

Valeur ajoutée d'un moteur 3D

Si les APIs de bas niveau permettent de dessiner des objets à l'écran, celles-ci restent assez complexes. Pour un développeur de jeux il est ainsi préférable d'utiliser un moteur 3D qui lui permettra d'obtenir beaucoup plus facilement le rendu qu'il désire.

Pour cela le moteur fournit notamment des fonctions permettant de charger des fichiers dans différents formats, d'animer les modèles en fournissant uniquement le nom de l'animation et ainsi de suite, son but étant de simplifier au maximum le travail du concepteur du jeu.

Optimisation

Bien que les processeurs graphiques soient de nos jours très puissants, les jeux vidéos tentent en permanence de repousser leurs limites. L'optimisation est d'autant plus nécessaire sur PC où de nombreux joueurs potentiels ne possèdent pas de carte graphique dernier cri.

L'optimisation dépend beaucoup du type de jeu. Par exemple :

  • l'utilisation d'octrees (en extérieur) ou d'arbres BSP (en intérieur)
  • pour les jeux affichant de très nombreuses unités (exemple : la série Total War), l'utilisation de modèles 3D simplifiés pour les objets éloignés de la caméra

Utilisation d'effets

Si les techniques de rendu offrent de nombreuses possibilités, c'est le rôle du moteur 3D d'exploiter ces possibilités afin de créer des effets graphiques.

Cela inclue :

  • Skybox, technique d'affichage du ciel
  • Ombres portées
  • Billboards notamment pour les particules
  • Bump mapping
  • Reflets sur une surface ou dans un miroir

Voir l'article rastérisation pour des détails sur la mise en oeuvre de ces effets.

Quelques moteurs 3D

Notes et références

Voir aussi

Liens externes

  • Portail de l’informatique Portail de l’informatique
  • Portail du jeu vidéo Portail du jeu vidéo
Ce document provient de « Moteur 3D ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Moteur graphique de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Moteur Graphique — Moteur 3D Schéma d’un pipeline de rendu avec indication du lieu d intervention des pixel et des vertex shaders (en rouge). Un moteur 3D est la partie d un moteur de jeux s occupant de l affichage d objets en trois dimensions à l écran. La plupart …   Wikipédia en Français

  • Moteur a allumage commande — Moteur à allumage commandé Les moteurs à allumage commandé équipent les véhicules terrestres, et notamment les automobiles de prestige. Article principal : Moteur à explosion. Un moteur à allumage commandé, plus communément appelé moteur à… …   Wikipédia en Français

  • Moteur essence — Moteur à allumage commandé Les moteurs à allumage commandé équipent les véhicules terrestres, et notamment les automobiles de prestige. Article principal : Moteur à explosion. Un moteur à allumage commandé, plus communément appelé moteur à… …   Wikipédia en Français

  • Moteur À Allumage Commandé — Les moteurs à allumage commandé équipent les véhicules terrestres, et notamment les automobiles de prestige. Article principal : Moteur à explosion. Un moteur à allumage commandé, plus communément appelé moteur à essence en raison du type de …   Wikipédia en Français

  • Moteur De Rendu — Un moteur de rendu (rendering engine) est un composant logiciel permettant de créer des images à partir de données diverses. C est un terme générique utilisé dans plusieurs domaines du traitement de l information. Moteur de rendu de police de… …   Wikipédia en Français

  • Moteur d'affichage — Moteur de rendu Un moteur de rendu (rendering engine) est un composant logiciel permettant de créer des images à partir de données diverses. C est un terme générique utilisé dans plusieurs domaines du traitement de l information. Moteur de rendu… …   Wikipédia en Français

  • Moteur De Rendu 3D — Exemple d habillage d un modèle 3D: matériau transparent, ombres projetées, et image collé en surface Les moteurs de rendu 3D sont des logiciels ou des cartes graphiques spéciales (matériel) qui calculent une ou plusieurs images 3D en y… …   Wikipédia en Français

  • Moteur de rendu 3d — Exemple d habillage d un modèle 3D: matériau transparent, ombres projetées, et image collé en surface Les moteurs de rendu 3D sont des logiciels ou des cartes graphiques spéciales (matériel) qui calculent une ou plusieurs images 3D en y… …   Wikipédia en Français

  • Moteur De Rendu HTML — Un moteur de rendu HTML est un composant logiciel de base qui permet aux logiciels d afficher les éléments d une page web. Ils sont de ce fait le cœur des navigateurs web. Depuis le début d Internet, de nombreux moteurs de rendu ont été utilisés… …   Wikipédia en Français

  • Moteur de rendu de pages web — Moteur de rendu HTML Un moteur de rendu HTML est un composant logiciel de base qui permet aux logiciels d afficher les éléments d une page web. Ils sont de ce fait le cœur des navigateurs web. Depuis le début d Internet, de nombreux moteurs de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”