MGG / Actualités jeux vidéo / Star Citizen /

Star Citizen - CitizenCon 2951 : Gen 12 et Vulkan

Star Citizen - CitizenCon 2951 : Gen 12 et Vulkan
0

Dans cette quatrième conférence de la Citizencon, les développeurs nous détaillent le travail effectué autour de l'architecture et du modèle de rendu graphique pour effectuer la transition vers la dernière génération d'API graphique: la Gen 12.

Star Citizen - CitizenCon 2951 : Gen 12 et Vulkan

Cette conférence a présenté les aspects techniques du travail des équipes de Star Citizen autour du passage à la Gen 12 et l'API Vulkan. Cette transition est nécessaire pour exploiter au mieux la technologie, et préserver des performances maximales malgré la complexification du jeu.

Introduction

Ali Brown présente les grandes lignes du travail de son équipe.

Méthode actuelle

A l'heure actuelle, les "meshes" (ensemble des polygones constituant les surfaces des objets à afficher) sont transmises au programme de rendu (le "renderer"), indifféremment de leur nature (transparente, opaque ou première ligne). Le programme doit ensuite les déchiffrer, les trier, et les interpréter avant de les afficher sur l'écran du joueur. Ce processus est gourmand en ressources et peu optimisé.

Gen 12

Avec la dernière génération, le moteur 3D communique en temps réel avec le renderer, ce qui soulage ce dernier, les meshes sont interprétés selon leur nature, puis transmises au code en arrière plan qui exécute plusieurs commandes simples avant l'affichage.

Gloablement, la Gen 12 doit permettre des avancées majeures comme l'exécution du code en multi-thread pour résoudre une grande partie des problèmes de goulot d'étranglement au niveau du CPU et du GPU. Avec ce changement, davantage d'informations seront transmises au joueur afin qu'il puisse identifier les problèmes de chute de performances.

Architecture

Christopher Bolte explique le renouvellement de l'architecture permettant l'usage de plusieurs cœurs graphiques. L'idée principale est que jusqu’à aujourd'hui, les différentes tâches étaient affectées à un unique thread, si l'un d'eux venait à terminer sa tâche avant l'autre, il créé un vide d'activité qui pourrait être comblé par d'autres tâches et donc optimiser le temps entre deux images. C'est ce que permet l'exécution multithread. Le thread principal prépare les éléments de code à exécuter, et peut les répartir entre lui-même ou le thread de rendu en fonction des ressources disponibles. De plus, leur implémentation permet à la phase d'exécution du code du driver d'interpréter les éléments transmis, ce qui optimise encore un peu plus le temps de calcul entre deux images.

Ce principe d'équilibrage des tâches entre les cœurs se nomme parallélisme. CIG a d'abord travaillé sur le parallélisme CPU avant de commencer le parallélisme GPU.

Vulkan

Vulkan est une API graphique, une interface qui interprète et traite des données côté développeur, indépendamment du driver du joueur, avant de les renvoyer au joueur. Vulkan participe à l'éradication des goulots d'étranglement au même titre que le changement d'architecture. Aujourd'hui, 98% des joueurs peuvent utiliser Vulkan.

Render Graph

Le render graph est un programme permettant de créer les images à une certaine fréquence avant leur traitement par la carte graphique, il se charge de valider toutes les informations de l'image avant affichage, et ce, en une seule instance, ce qui réduit le temps de travail. Son implémentation avec Vulkan permettra d'optimiser et soulager le travail du GPU.

Groupes de pixels

Le rate shading permet de rendre les pixels par groupe, plutôt qu'un par un pour les éléments les moins détaillés afin d'économiser de la ressource

Mémoire

Avec Vulkan, la mémoire vidéo peut être contrôlée en temps réel par les développeurs et par le joueur. Il pourra être limité et les fuites de mémoire seront plus souvent évitées. De nombreuses options seront disponibles pour les joueurs grâce à ce changement.

RoadMap

L'architecture est en place et la transition vers le nouveau système va pouvoir commencer dans cet ordre:

  • Gen 12 sous DirectX11
  • Gen 12 sous Vulkan
  • Optimisation multicore
0
LM D
CrimsonFreak  - Rédacteur

Joueur invétéré et créateur du dimanche.

L'actu

En Continu

13:00 Inside Star Citizen : 150
07:00 Inside Star Citizen : Tractor Factor
08:00 Star Citizen Live : Engineer Scrutineer
11:00 Inside Star Citizen : Mission to Module
07:00 Star Citizen : Ventes limitées Fortuna à venir !
07:00 Star Citizen : Q&A Scorpius Antares
09:30 Star Citizen : le patch 3.18 est déployé sur les serveurs Live
07:00 Star Citizen : le design du gameplay d'ingénieur est terminé !
17:00 Star Citizen Live : talkin' VFX
07:00 Star Citizen Monthly Report : rapport mensuel de février 2023

Articles

recommandés

Star Citizen - CitizenCon 2952 : ce qu'on peut en retenir
Star Citizen : Letter from the Chairman – mai 2022
L'équipage Millenium Star Citizen a besoin de vous !

Guides

à découvrir

Star Citizen : Achat et location de vaisseaux
Star Citizen : Guide des commandes
Quel pack choisir sur Star Citizen ?