(1/n)🚨Nouvel épisode d'#InsideStarCitizen🚨Cette semaine CIG nous présente le processus de production de l'environnement de #StarCitizen et SURTOUT les améliorations liées à l'activation de Gen12 pour la 3.18. Thread ⬇️⬇️⬇️
(2/n) On commence donc par le processus de production en prenant comme exemple les installations souterraines présentées lors de la #CitizenCon. Même si il s'agit de création artistique, ça demande de la rigueur et de la planification. Peu de place pour de l'improvisation.
(3/n) Lors de la phase de conception, il s'agit de traduire une idée et une atmosphère d'ensemble. Les vues d'artistes ont sont le résultat de cette phase. Elles servent ensuite comme base de travail pour les artistes qui devront s'en inspirer pour produire les modèles 3D.
(4/n) Avant de démarrer, il faut lister toutes pièces et les assets nécessaires et avoir une idée du temps qu'il faudra consacrer pour les produire. C'est pour cela qu'un prototype grossier est réalisé en 3D très rapidement.
(5/n) Cette liste est représentée dans un outil de planification sous forme de cartes. Chaque carte contient toutes les informations nécessaires à la production en 3D d'une partie d'un bâtiment. Un artiste sait alors ce qu'il doit réaliser de manière méthodique.
(6/n) Cela dit, il reste à déterminer le temps que passera un artiste sur chaque tache. Cette estimation est réalisée dans un grand tableau Excel et la somme de ces taches donne une idée (plus ou moins fiable) du temps nécessaire à la réalisation de l'ensemble.
(7/n) On passe à Gen12 le moteur de rendu de #StarCitizen. Il est piloté par le thread principal du jeu d'un coté et s'appuie sur une API graphique (DirectX11 jusqu'à présent, Vulkan dans un future proche) pour faire le rendu en temps réel des scènes 3D par la carte graphique.
(8/n) Le but de Gen12 est donc d'utiliser moins de temps CPU pour organiser le rendu libérant ainsi ce temps pour d'autres taches. De plus son 2nd objectif est de remplacer DirectX par Vulkan qui possède des fonctionnalités comme le Ray Tracing, le support de Linux, de la VR...
(9/n) Ce travail a pris des années mais les développeurs annoncent qu'ils sont très probablement en mesure d'activer entièrement Gen12 dans #StarCitizen pour la 3.18. On devrait donc voir de belles améliorations!
(10/n) La vidéo ci-dessous montre un rendu de scène couteux (en debug) avec le moteur de rendu actuel. Le nombre de draw calls indique à quel point l'API est sollicitée (environ 46000 appels/frame).
(11/n) En passant à Gen12, et ce pour la même scène, on passe à 32000 appels/frame ce qui constitue un gain considérable!
(12/n) Si on regarde ensuite le temps passé pour chaque frame on observe que le temps de calcul du thread de rendu est supérieur au temps de calcul du thread principal. Ceci est un goulot d'étranglement qui ralentit le jeu et sous utilise la carte graphique.
(13/n) Avec gen12, on observe que le temps utilisé par le thread de rendu est inférieur à celui du thread principal. La carte graphique est donc plus sollicitée ce qui permettra une augmentation du nombre de FPS (dans la limite de ce que la carte graphique peut produire)
(14/n) Pour faire simple, Gen12 permet au thread de rendu diminuer le nombre d'appels à l'API graphique et de s'exécuter plus rapidement que le thread principal de l'application ce qui permet d'augmenter le nombre de FPS.
(15/n) Dans un futur assez proche, DirectX sera ensuite remplacé par Vulkan. Ces travaux sont menés en parallèle de Gen12.
(16/n) Conclusion: Autant la planification de la production ne me hype pas, autant le développement de Gen12 m'impressionne énormément! C'est surement lié à mon taf de développeur C++ qui utilise modestement quelques API 3D de temps en temps 😏
(17/N) Source :
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.