La révolution du Virtualized Rendering (rendu virtualisé)

Pourquoi les moteurs de jeu réécrivent-ils les règles du rendu ?

 

Préambule :
Ce post est né d’une discussion « geek » pendant la pause déjeuner ;  Benjamin Ray, le CTO de SKYREAL, a voulu aller plus loin : il a creusé le sujet, retracé son évolution, et il en a fait une présentation afin partager ses réflexions avec l’équipe.

Dans cet article, nous partageons quelques-unes des idées clés issues de cette présentation interne de Benjamin.
C’est une exploration des avancées spectaculaires de la technologie du jeu vidéo qui sont aujourd’hui essentielles pour faire progresser d’autres secteurs et sur lesquelles nous nous appuyons pour développer nos solutions logicielles.

Le rendu virtualisé, et plus précisément le rôle des moteurs de jeu, n’est pas un simple sujet technique pour nous. C’est une part profonde de notre culture : beaucoup d’entre nous sont des joueurs (certains à tendance hardcore*), et nos solutions s’appuient sur Unreal Engine, une plateforme que nous connaissons bien: à la fois comme joueurs passionnés ayant expérimenté sa puissance, et comme développeurs l’ayant poussée dans ses retranchements pour répondre aux usages métiers.

C’est un sujet que nous aimons, qui alimente nos débats, et qui façonne activement notre vision et notre feuille de route. Et très sincèrement, on adore ça 🙂

Ce post est le premier d’une série traitant du virtualized rendering et de l’impact des moteurs de jeu dans d’autres industries.
Notre ambition est de rendre ces concepts complexes compréhensibles et accessibles, sans pour autant les simplifier à outrance. Nous commencerons ici par un peu de contexte historique, avant d’aborder les aspects plus techniques.

(ndlr : Ray est le vrai nom de famille Benjamin ! ce qui tombe bien vous en conviendrez… rayllement bien, hu-hu-hu)

30 ans d’évolution du rendu : du Raster au Ray-Tracing

 

On est passé de 350 triangles sur une PlayStation 1 à des paysages urbains comptant des milliards de triangles dans UE5

Benjamin Ray

Il y a trente ans, les graphismes 3D en temps réel relevaient de la magie.
Aujourd’hui, ils sont magiques.

On voit désormais des reflets ray-tracés s’afficher sans effort sur une carte graphique à 500 €, des visites virtuelles faites par des petits promoteurs immobiliers dignes des plus grandes productions hollywoodiennes, et des environnements en réalité virtuelle capables de diffuser des téraoctets de données sans broncher.

Notre objectif est de retracer les principales avancées techniques qui ont rendu cela possible, depuis les premiers hardware rasterizers du milieu des années 1990 jusqu’aux pipelines centrés sur le pixel en 2025.
Nous voulons aussi montrer comment SKYREAL s’appuie sur la puissance de calcul actuelle pour développer des solutions réellement adaptées aux exigences de l’industrie.


Glossaire (à ignorer si vous êtes un aficionado du pixel)

  • Rasterisation : conversion de triangles 3D en pixels 2D.

  • Shader : petit programme exécuté sur le GPU pour transformer des sommets ou calculer la couleur des pixels.

  • API (Interface de Programmation Applicative) : contrat entre le moteur graphique et le pilote de la carte graphique (comme Direct3D, OpenGL ou Vulkan).

  • RT Cores : blocs hardware dédiés à l’accélération des tests d’intersection entre les rayons et la scène (ray tracing).

  • Virtualisation (textures, maillages, ombres) : gestion de ressources volumineuses comme des ensembles paginés, ne gardant en mémoire que les parties visibles.


1990‑1999 : le boom du raster hardware

Alors que les années 1980 nous offraient des simulateurs de vol en lignes vectorielles, les années 1990 ont marqué un tournant décisif avec l’arrivée massive de la 3D texturée. Deux avancées majeures ont convergé :

  1. Les cartes graphiques à fonctions fixes (3dfx Voodoo, S3 ViRGE, SGI RealityEngine). Les fabricants de matériel graphique ont commencé à décharger le processeur de tâches clés comme le texture mapping ou le Z-buffering, en les confiant à des puces spécialisées capables de traiter un grand nombre de pixels en parallèle.
  2. Les premières API grand public. OpenGL 1.1 (1994) et Direct3D 3 (1996) ont permis de standardiser la communication entre les logiciels et les cartes graphiques.
    Les développeurs n’avaient plus besoin d’écrire un code différent pour chaque marque de matériel : une seule interface standard suffisait.

Résultat ? Des jeux comme Quake tournaient à 30 FPS sur un Pentium II, et Gran Turismo affichait jusqu’à 300 000 formes texturées (polygones) grâce au système de rendu personnalisé (rasterizer) de la PlayStation.
Les artistes devaient alors créer manuellement plusieurs versions simplifiées de chaque modèle 3D (Level of Detail ou LoD), et l’éclairage n’était pas calculé en temps réel : il était soit directement peint sur les modèles (vertex colours), soit pré-calculé et stocké sous forme d’images (lightmaps).

Mais deux concepts clés de cette époque sont toujours présents aujourd’hui :

  • les tests de profondeur (Z-buffer) pour déterminer quels objets sont visibles au premier plan,

  • et l’utilisation du triangle comme primitive de base pour construire toutes les scènes 3D.

2000‑2009 : l’ère des shaders programmables & le « moment Xbox »

En 2001, la carte graphique GeForce 3 de NVIDIA introduit les shaders : de petits programmes personnalisés (vertex et pixel shaders) permettant aux artistes de contrôler précisément le rendu des graphismes 3D.
D’abord écrits en langage bas niveau (assembleur), ils seront ensuite codés dans des langages spécialisés comme HLSL ou GLSL.
C’est un vrai tournant car, grâce aux shaders, les artistes peuvent :

  • Appliquer un éclairage beaucoup plus fin, au niveau du pixel (et non plus du sommet), éliminant l’aspect en « bandes » du Gouraud shading.

  • Combiner différentes informations de surface — textures, brillance (gloss), relief (height), couleur (albedo) — dans un matériau unique.

  • Simuler des effets complexes comme la profondeur (parallax mapping), les réflexions miroir (environment cubemaps) ou la réfraction en temps réel (effet de verre).

En parallèle, la toute première Xbox intègre une version de cette puce avec DirectX 8 : les développeurs consoles se retrouvent donc avec les mêmes outils que sur PC.
C’est un moment charnière.
La création d’interfaces plus conviviales (GUIs) s’accélère, on améliore les outils de création de shaders et s’amorce la transition vers une approche plus moderne : le PBR (Physically Based Rendering).

De son côté, ATI (aujourd’hui AMD) fait un pas décisif : au lieu de séparer le matériel selon le type de shader (vertex/pixel), ils conçoivent une architecture unifiée, capable d’exécuter les deux types selon les besoins du jeu.

Mais tout ce progrès a un coût : avec des scènes de plus en plus riches en matériaux et objets, le CPU peine à suivre la cadence des instructions de dessin (draw calls).
Le système passe trop de temps à valider les appels via l’API, et les performances en souffrent.

Une solution serait de donner plus de contrôle direct sur le matériel aux développeurs …

2010‑2015 : parallélisme, calculs généraux et montée en résolution

1. Le multicœur à grande échelle

Les consoles commencent à embarquer des processeurs 8 cœurs, et les PC adoptent l’hyper‑threading.
Avec plus de threads disponibles côté CPU, les moteurs de jeu comme Frostbite, id Tech 6 ou Unreal Engine 4 se mettent à préparer les tâches GPU (command buffers) en parallèle, ce qui accélère considérablement le rendu.

2. Compute Shaders and General-Purpose GPU (GPGPU)

Direct3D 11 (2009) et OpenCL permettent d’exécuter du code généraliste sur le GPU, et plus seulement du graphisme.
Cela ouvre la voie à des effets plus avancés (particules réalistes, éclairage dynamique, ombres d’ambiance) gérés de façon plus efficace.
C’est aussi ce qui permet d’exécuter des traitements en arrière-plan (flou, analyse d’image, IA) en parallèle du rendu principal.

3. Upscaling & rendu en tuiles (poussés par le mobile)

Pour améliorer la qualité d’image sans surcharger le matériel, les consoles type PS4 Pro adoptent des techniques comme le checkerboard rendering ou les premiers anti-aliasing temporels (TAA) : des méthodes d’upscaling qui remplissent les pixels manquants pour simuler une résolution supérieure à moindre coût.

En parallèle, le développement des smartphones (avec des contraintes de mémoire et d’énergie fortes) popularise le rendu différé en tuiles (tile-based deferred rendering), qui traite l’image par petites zones pour limiter les échanges de données.
La montée en puissance du jeu mobile et des applis 3D pousse les fabricants à maximiser le parallélisme et à réduire les transferts, des logiques qui influenceront toute l’industrie.
Ce virage est aussi largement influencé par l’arrivée des téléviseurs 4K.

2015‑2020 : APIs bas niveau, Ray Tracing hardware et Upscaling basé sur l’IA

APIs bas niveau : DX12, Vulkan & Metal

En 2014, AMD a lancé Mantle, une API plus directe, conçue pour éliminer les goulets d’étranglement en matière de performances. Microsoft s’en est inspiré pour développer DirectX 12, tandis que Vulkan et Metal (chez Apple) ont suivi cette même approche. Ces APIs bas niveau offrent aux développeurs un contrôle beaucoup plus fin sur le GPU, réduisent le temps de traitement inutile et permettent d’afficher un bien plus grand nombre d’objets par image sans perte de fluidité.
Elles ont également permis une refonte du pipeline graphique qui ouvre la voie à de nombreuses optimisations.

Accélération matérielle du Ray Tracing et technologies d’upscaling basées sur l’IA

Depuis l’introduction des séries NVIDIA RTX 20 (2018) et AMD RDNA2 (2020), les cartes graphiques intègrent des unités de calcul optimisées pour le Ray Tracing, nommées RT Cores. Ces cœurs spécialisés accélèrent significativement le traitement du ray tracing (notamment les réflexions et les ombres) en optimisant les calculs d’intersection des rayons avec la géométrie de la scène. Cette avancée a permis l’implémentation d’effets lumineux plus réalistes en temps réel, par opposition aux techniques d’illumination pré-calculées ou simulées. Bien que le ray tracing reste une tâche gourmande en ressources, cette évolution matérielle a amoindri son coût en performance.

Parallèlement, l’émergence de technologies d’upscaling basées sur l’intelligence artificielle, et en particulier le DLSS de NVIDIA, a révolutionné le rendu (et d’un point de vue hardware, les Tensor Cores sont cruciaux pour l’efficacité du DLSS).
Ces solutions permettent aux jeux de calculer les images à une résolution inférieure (par exemple, 1440p) puis de les reconstruire de manière algorithmique pour atteindre une résolution supérieure (comme le 4K). Cette approche réduit de plus de 50% la charge de travail nécessaire au shading de chaque pixel, tout en préservant une qualité d’image élevée et en améliorant significativement les performances.

De 2020 à aujourd’hui: un nouveau paradigme

Nanite, Lumen et VSM sont le cœur du nouveau paradigme du « Tout-Virtualisé » d’Unreal Engine 5

Avec Unreal Engine 5, Epic Games n’a pas simplement optimisé le rendu ; ils ont proposé une nouvelle philosophie: virtualiser l’intégralité des ressources et du pipeline de contenu pour en maximiser les performances.
C’est un bouleversement de la gestion des assets en temps réel qui transforme en profondeur la chaîne de production.

  • Virtual Texture Streaming ne charge que les portions de textures effectivement échantillonnées à chaque frame.

  • Nanite Mesh Virtualization permet à l’engine de n’utiliser que les fragments utiles des modèles 3D, éliminant les transitions de LoD visibles.

  • Virtual Shadow Maps, basées sur le même principe, ne calculent que les parties d’ombres se trouvant dans le champ de vision.

Le tout s’intègre à Lumen, un système d’éclairage hybride combinant des techniques écran (screen-space) et du ray tracing réel pour des résultats visuellement cohérents et dynamiques.

Grâce à cette approche, des scènes contenant des milliards de polygones (comme celles créées avec Quixel Megascans) peuvent désormais tourner à 60 FPS sur une carte graphique milieu de gamme.
Le goulot d’étranglement n’est plus le nombre de triangles, mais le nombre de pixels affichés à l’écran.

Il s’agit bien d’un changement fondamental:
La complexité géométrique n’est plus une limite => Les performances dépendent désormais du nombre de pixels et pas du nombre d’assets dans une scène.

Pourquoi chaque époque a été importante (et le reste encore aujourd’hui)

Époque Avancée majeure Impact pour les artistes Impact pour les ingénieurs
90s Rasterisation fixe On peut enfin texturer tous les modèles Optimisation fine de l’ordre des triangles pour exploiter les petits caches
00s Shaders programmables Matériaux personnalisés et éclairage par pixel Outils pour artistes non-codeurs, explosion des permutations de shaders
10s APIs bas niveau + compute shaders Grande variété de matériaux, simulations de particules Orchestration du graph de rendu en multithread
20s RT cores + virtualisation Actifs et éclairages qualité cinéma, visibles directement dans l’éditeur Débit I/O, streaming asynchrone, débruitage

L’avenir du rendu : le règne du pixel

Quand les triangles, les textures et les ombres sont virtualisés, la performance dépend uniquement de la résolution d’écran, donc du pixel lui-même.
Concrètement, cela signifie :

  • La performance évolue directement avec le nombre de pixels affichés. Par exemple, du 1080p consomme environ 55 % des ressources nécessaires au 4K, sans pics de charge imprévus.

  • Les équipes peuvent créer des assets une seule fois, sans avoir à produire différents niveaux de détail (LoD), de lightmaps pré-calculées ou de versions simplifiées des objets.

  • Les véritables limites deviennent le stockage et la bande passante (comme le NVMe ou le streaming en 5G/edge).

Avec l’arrivée de DLSS 4, le suréchantillonnage assisté par IA permet d’atténuer les coûts de performance à haute résolution, tout en conservant des expériences visuelles ultra-détaillées, sans compromis.

À l’avenir, on peut s’attendre à voir émerger des techniques plus avancées comme les pipelines basés sur les mesh shaders, des outils plus intelligents pour gérer les niveaux de détail, et des méthodes génératives pilotées par l’IA pour créer des matériaux sans avoir à fabriquer les textures manuellement.

En résumé

Le rendu n’a pas progressé de manière linéaire ; son évolution a été une alternance entre davantage de flexibilité (shaders programmables) et une meilleure efficacité (accélération matérielle pour le ray tracing et API de bas niveau).
Dans les années 2020, nous assistons à la convergence de ces deux approches : des outils flexibles dotés d’un support matériel pour un ray tracing et une création de matériaux plus rapides, associés à des assets virtualisés. Cette synergie offre aux créateurs un flux de travail « ce que vous voyez est ce que vous obtenez » (WYSIWYG) presque parfait.
Pour les utilisateurs de SKYREAL, cela se traduit par « ce que vous importez est ce que vous voyez ».

Pour conclure, bienvenue dans l’ère « pixel-centrique », où le nombre de triangles n’est plus un obstacle et où l’imagination devient le nouveau goulot d’étranglement.

 

* Coucou  @Tyriaax @Alejandro @Elouan @Glendelay @m003t @JVax