top of page

Pixotope et la production virtuelle Unreal - Partie 2 : les moteurs 3D temps réel

Ludo

Moteurs 3D temps réel


Seconde partie de nos cahiers techniques sur la production virtuelle et la 3D temps réel - autour cette fois-ci des moteurs 3D temps réel qui afficher du contenu 3D pour les murs LEDs en production virtuelle.

Un mur d'écran LED peut être alimenté par des images ou vidéos 2D, ou par une scène 3D calculée en temps réel (à 25, voire plus souvent 50 images par seconde) par une application (moteur 3D). En diffusion ou en événementiel, c'est principalement Epic Games qui s'est imposé avec son moteur Unreal Engine. Il existe d'autres moteurs temps réel comme Vizrt avec Viz Engine, ou Unity, un moteur provenant également de l'univers du jeu vidéo mobile.


Un peu d’histoire

La première version d’Unreal Engine est apparue à la fin des années 1990 pour l’industrie du jeu vidéo. Il était utilisé par des jeux comme Unreal Tournament et licencié à d’autres studios. En 2017, Epic lance Fortnite, un jeu de type battle royale où une centaine de joueurs peuvent s’affronter sur une même carte en réseau. Le succès mondial de ce jeu permet à Epic de développer Unreal Engine et d’explorer d’autres industries : l’architecture, l’automobile, le design, la visualisation et le Media & Entertainment (animation, diffusion, VFX). C’est dans ce contexte qu’Unreal Engine s’est imposé dans le M&E avec des licences gratuites à l’usage dans un premier temps (contrairement à celles commercialisées dans le jeu vidéo).



Calcul GPU vs CPU

Comme tout moteur 3D temps réel, Unreal Engine utilise les processeurs des cartes graphiques pour afficher une scène 3D. La scène est constituée d’objets ou de personnages, eux-mêmes composés de géométries (polygones, triangles, rectangles ou formes paramétriques). Ces scènes sont généralement crées en amont sur un ou plusieurs logiciels 3D (DCC) comme Blender, Maya, 3ds Max, Cinema 4D ou Houndini pour les FX. Sur ces objets sont appliqués des matériaux – un ensemble d’images et de paramètres qui réagissent différemment à l’éclairage de la scène. Ces matériaux (shaders) peuvent être entièrement paramétriques (textures 3D) – voir Substance 3D ou Epic Quixel. Dans la scène, on peut également ajouter des lumières et des caméras. Ces objets ou personnages peuvent être animés.



Dans un modèle traditionnel de calcul d’image 3D, on utilise un moteur de rendu pour calculer l’image de la scène en CPU/GPU. Il existe de nombreux moteurs 3D sur le marché : Mental Ray, Arnold, V-Ray, Redshift, RenderMan, chacun avec ses propres fonctionnalités.


En 3D temps réel, certains moteurs classiques peuvent utiliser le GPU (Graphic Processor Unit) pour accélérer les temps de calcul, mais ils ne sont pas adaptés pour un calcul d’image en temps réel à 50 images par seconde.


Pour un calcul temps réel, on fait appel à un moteur 3D qui va principalement utiliser le GPU pour calculer la scène en continu à 50 images par seconde. Le moteur 3D doit faire certaines concessions par rapport à un moteur de rendu classique CPU ou GPU accéléré : les images seront moins réalistes qu'en précalculé, avec des ombres, réflexions ou réfractions moins précises (moins de rebonds des rayons lumineux sur les réflexions par exemple).


GPU et optimisation des scènes

Le moteur 3D temps réel s'appuyant sur la carte graphique pour ses calculs, il est important d'avoir une carte adaptée. Plus la scène sera complexe (nombre de géométries, textures, effets…), plus il sera important d'avoir une carte puissante pour rester en temps réel (Nvidia RTX 4090, RTX 5080, RTX 5090, 6000 ADA, etc.). Une scène 3D temps réel nécessite de l'optimisation pour pouvoir être lue en temps réel (optimisation du nombre de polygones, de textures, de lumières, d'effets…).


Une carte graphique est généralement caractérisée par son nombre de processeurs (coeurs Cuda chez Nvidia) et sa mémoire.

bottom of page