Le moteur 3D

Aujourd’hui, nous continuons notre présentation des moteurs de jeu en nous concentrant sur les moteurs graphiques. Ce sont plus particulièrement les moteurs 3D qui vont nous intéresser ici. Il n’ya pas d’autre objectif ici que la vulgarisation, il est donc probable que vos connaissances dépassent celles exposées ici.

Fonction du monteur 3D

Rendu moteur 3d unreal engine 4 Comme nous l’avons vu dans un précédent article sur les moteurs de jeu, le moteur graphique est un des composants logiciels de base des moteurs de jeu. Il en existe deux types, les moteurs 2D et 3D. Leur but est identique, calculer une image matricielle qui sera affichée sur un écran. Vous êtes peut-être en train de vous dire que c’est la même chose que le moteur de rendu d’une application 3D et vous aurez en partie raison. La grande différence se situe dans les contraintes qu’impose le jeu vidéo. Pour un film d’animation, le temps de calcule d’une image peut prendre plusieurs jours et cela malgré utilisation de render farm. Un tel temps de calcul est inimaginable pour un jeu, celui-ci affichant entre 30 et 60 images par seconde. De plus, un jeu vidéo utilise également de la puissance de calcul pour d’autres opérations relative au traitement d’éléments comme la physique ou l’intelligence artificielle. L’enjeu sera donc de calculer une image la plus précise possible, en un minimum de temps et en sauvegardant les ressources nécessaires aux besoins des autres éléments du moteur.

Calcul du rendu

Position des shaders dans le pipelineLe cinéma d’animation et l’imagerie utilisent la méthode dite du ray-tracing. Extrêmement précise, elle consiste à suivre les rayons lumineux de la scène et de leurs appliquer les règles de la physique et de l’optique. Malheureusement, le temps nécessaire à une telle opération est extrêmement long. Pour le jeu vidéo, on utilisera une autre méthode, celle de la rastérisation. Derrière ce nom barbare, ce cache ce qu’on appelle souvent le rendu polygone. Tous les objets sont alors transformés en un ensemble de triangles. Ceux-ci subissent des déformations à chaque nouvelle image. Pour générer le rendu, on ne calcule plus chaque point individuellement, mais uniquement ceux qui définissent nos triangles. Il ne reste plus qu’à créer la carte des pixels (Bitmap) et d’attribuer la couleur de chacun. Le temps de calcul est considérablement réduit grâce à cette technique.

L’art de l’optimisation

modélisation polygonaleLa qualité graphique d’un jeu a toujours été un élément crucial, ce qui explique que les moteurs graphiques soient en perpétuelle évolution. Une évolution qui est fortement liée à celle du matériel. Si les processeurs offrent toujours plus de puissance, les cartes graphiques offrent également de belles améliorations. Seulement pour pouvoir en tirer le meilleur parti, il faut optimiser la communication avec le matériel. C’est dans cette optique qu’ont été mises en place des bibliothèques spécifiques, programmées dans le plus bas niveau possible. Les plus répandus sont OpenGL et DirectX. Celles-ci permettent également aux constructeurs de cartes graphiques de proposer de nouvelles technologies de calcul afin d’accélérer celui-ci ou de le rendre plus précis. L’utilisation d’une CG permet en premier lieu d’offrir au moteur graphique un processeur de calcul dédié.

Toujours plus

Pixel SharderL’utilisation des bibliothèques et des spécificités des matériels offertes par les cartes graphiques actuelles permettent donc des graphismes toujours meilleurs. L’ajout de shaders permettra à une CG de prendre en charge la modification de certains calculs comme ceux de l’occlusion ou de certains effets lumineux, soulagent ainsi les organes de calcules classiques tout en offrant un résultat final bien plus détaillé s’approchant parfois du photoréalisme. Evidement le résultat dépend donc beaucoup de la machine qui fera tourner le titre, mais aussi de la manière dont les éléments graphiques ont été créés. L’optimisation des modèles 3D reste encore aujourd’hui quelque chose de très important, mais des techniques comme l’utilisation de LODs permettent d’adapter le modèle utilisé en fonction de la machine et de pouvoir proposer aux systèmes les plus puissants des objets 3D toujours plus détaillés.

En conclusion

Si nous n’avons fait que gratter la surface du sujet, j’espère tout de même que cela vous permettra de mieux cerner le rôle et le fonctionnement du moteur graphique. Si le sujet vous intéresse, n’hésitez pas à creuser. Sinon, j’espère avoir été assez explicite pour que vous compreniez leur rôle et vaguement leur fonctionnement.