Star Citizen Ile Avalon Pilot Logbook
Carnet de Vol d'un Citoyen de l'Espace

Un peu de Lumière sur les Ombres

Pause-Café

Dans un récent post du Spectrum, Kasian s'interroge sur le comportement des ombres par rapport à l'environnement.

En deux mots, il faut savoir que pour des raisons de performance, dans un jeu vidéo une partie des éclairages et des ombrages sont simulés à même les textures.

Dans le cas d'un jeu comme Star Citizen où l'environnement est dynamique, cela peut s'avérer plus difficile, voir perturbant, de constater que les ombrages ne suivent pas forcément l'éclairage ambiant, ou du moins semble avoir un temps de retard.

C'est justement l'objet de la question de Kasian, et Chris Campbell, Lead Lighting Artist, lui répond.

Kasian s'interroge sur les Ombres

En réalisant des vidéos en accéléré, je me suis rendu compte que les ombres des grands objets projetés par eux-mêmes ne sont mises à jour que toutes les quelques secondes ou sont pré-rendues dans la même matière.

Par exemple, les ombres sur grimHEX et ses astéroïdes ne semblent se mettre à jour que toutes les 30-40 secondes. Il en va de même pour les stations spatiales situées au-dessus des principales zones d'atterrissage ou du port spatial de l'Area18.

Ces limites actuelles sont-elles celles qui seront abordées plus tard ou s'agit-il d'une décision fixe pour un objectif plus vaste ?

Si ces éléments sont appelés à changer, avez-vous un calendrier de mise à jour ?

Ce n'est pas vraiment un problème, mais ce qui a été vu...

-- Kasian

réponse de Chris Campbell

Permettez-moi d'aborder quelques points soulevés ici.

Concernant votre commentaire sur les ombres lointaines autour de GrimHEX et d'autres lieux.

Les ombres, et plus particulièrement les ombres de soleil, sont l'un des éléments les plus coûteux du moteur de rendu. Plus il y a d'objets qui projettent des ombres, et plus les détails de ces objets peuvent commencer à avoir un impact massif sur les performances. C'est pourquoi vous pouvez remarquer dans de nombreux jeux qu'il y a soit très peu de sources de lumière projetant des ombres, soit vous voyez des optimisations similaires sur les ombres du soleil à une distance où la seule mise à jour ou "décalage" périodique se fait toutes les quelques secondes. Bien que nous essayions d'obtenir le plus grand nombre d'ombres avec la meilleure qualité possible, nous devons encore utiliser certaines optimisations pour maintenir le coût global à un niveau bas.

Nous répartissons actuellement les ombres du soleil en plusieurs cascades à des niveaux de résolution décroissants, plus loin de la caméra. C'est ce que nous avons fait :

  • Deux cascades entièrement dynamiques qui s'étendent de la caméra jusqu'à environ 5m et 20m. Ces cascades sont à très haute résolution et sont mises à jour à chaque image. Elles projettent les ombres de tous les objets statiques/dynamiques (sauf si elles sont spécifiquement désactivées par l'objet).

  • Deux cascades semi-dynamiques de 20m-100m et 100m-400m qui mettent également à jour chaque trame, mais seulement pour certains objets dynamiques (par exemple, les vaisseaux) et les actifs procéduraux de couverture du sol comme les arbres.

  • Une autre cascade semi-dynamique de 400m-2000m qui met à jour une trame sur deux, pour les actifs de couverture du sol.

  • Une carte d'ombre statique définie par l'artiste qui ne rend que la géométrie statique. Cette cascade est périodiquement mise à jour par des éléments tels que la position du soleil en mouvement. L'objectif de cette cascade est de pousser le plus possible la géométrie statique dans une cascade moins fréquemment mise à jour, afin de conserver une qualité d'ombre élevée à proximité du joueur pour les zones très détaillées comme les zones d'atterrissage.

Gardez à l'esprit que ce ne sont là que les valeurs que nous fixons actuellement et que nous rééquilibrons constamment au fur et à mesure que nous développons de nouveaux emplacements.

En outre, nous avons un certain contrôle artistique sur l'autorisation de rendre dynamiquement certains éléments spécifiques dans d'autres cascades, principalement utilisées pour les très grands bâtiments qui se trouvent en dehors de la limite de la carte des ombres statiques. Nous avons également des ombres à grande échelle projetées à partir de la carte des hauteurs de la planète, dont vous avez peut-être entendu parler dans les récentes mises à jour pour des choses comme les montagnes qui projettent des ombres lorsqu'elles sont dans l'espace.

Je ne peux pas beaucoup parler de la carte de la hauteur de la planète pour l'amélioration des ombres à grande échelle ou tout autre changement technologique car c'est plutôt la zone d'Ali Brown. Sur le plan artistique, nous essayons de résoudre le problème de la cascade d'ombres statiques dans la zone immédiate du joueur (par exemple, à environ 100 mètres ou dans un espace ouvert d'une zone d'atterrissage), et d'avoir une deuxième carte d'ombres statiques qui peut affecter les vues de la ville (par exemple, en regardant vers le port spatial depuis la zone d'habitation de Lorville).

Cependant, le comportement actuel que vous remarquez avec les ombres lointaines mises à jour périodiquement est pour l'instant une caractéristique nécessaire pour maintenir la qualité des ombres autour du joueur, et de grande portée pour l'énorme échelle de nos emplacements.

Merci pour la question !

-- ChrisC, Lead Lighting Artist

Chris Campbell répond à d'autres questions annexes

Bonjour ! Pouvez-vous expliquer pourquoi les anneaux d'astéroïdes ne laissent pas d'ombres sur la planète et vice-versa ?

Bien sûr !
J'ai juste eu à vérifier la configuration pour être sûr, mais il y a deux problèmes ici :

  1. Pour les disques d'astéroïdes, comme autour de Yela, cela est actuellement réalisé en utilisant une géométrie simple avec un shader transparent pour donner l'apparence de la densité du disque. Ce shader est actuellement incapable de projeter ou de recevoir des ombres et ces ombres transparentes douces/subtiles sont en général très délicates à obtenir en utilisant nos techniques standard existantes de cartographie des ombres. Il est certainement possible de l'améliorer avec un certain soutien technique, mais comme nous n'en avons qu'un ou deux exemples en jeu pour le moment, on doit se concentrer sur d'autres priorités beaucoup plus importantes.

  2. Pour les astéroïdes eux-mêmes, cela revient à mon commentaire précédent sur les cascades d'ombres et les objets dynamiques. Les astéroïdes eux-mêmes sont créés de manière dynamique et projettent des ombres si vous êtes suffisamment proche d'eux. Les astéroïdes les plus proches de la surface de Yela jusqu'à la ceinture se trouvent à environ 500 km, ce qui est beaucoup plus loin que nos plus grandes cascades d'ombres. Ce n'est certainement pas l'idéal et c'est quelque chose que nous allons probablement améliorer à l'avenir (projeter des ombres sur des navires alors qu'ils sont dans l'espace à des distances appropriées). Une chose à garder à l'esprit, en raison de la taille de Stanton par rapport à des objets comme les astéroïdes de Yela, les ombres projetées à une si grande distance seraient probablement si faibles qu'elles ne seraient pas vraiment perceptibles lorsqu'elles sont à la surface. Les astéroïdes beaucoup plus grands à côté de Delamar devraient cependant produire de meilleures ombres !

Pouvez-vous faire quelque chose, par exemple, pour les ombres qui se transforment en existence ?

Cela arrive souvent lorsque vous sortez de votre vaisseau sur une plateforme RnR et que vous vous rendez à l'ascenseur. L'immersion est brutalement cassée de voir la zone très éclairée près de l'entrée pour créer soudainement une ombre à chaque pas que vous faites lorsque vous en approchez. Peut-il y avoir des pas d'ombres à plus faible résolution lorsque vous êtes loin, qui passent ensuite à la haute résolution finale ? Les ombres qui sautent sont un problème que j'ai avec SC pour toujours car elles tuent l'illusion d'être dans cet univers.

Je ressens votre douleur sur ce coup-là ! C'est également un inconvénient malheureux de notre mise en œuvre actuelle d'une carte d'ombre statique unique pour les objets statiques.

Cela affecte particulièrement les stations spatiales car toute la géométrie est considérée comme un ensemble d'objets statiques et n'est donc pas reprise dans les cascades semi-dynamiques que j'ai mentionnées ci-dessus (celles qui atteignent ~2km). C'est là qu'intervient la région de la carte d'ombre statique et cela fonctionne ainsi :

L'éclairagiste définit un volume pour cette carte d'ombre statique où toute la géométrie à l'intérieur est rendue en une texture de carte d'ombre fixe. Pour une station spatiale, cependant, la région doit être suffisamment grande pour englober les limites de la station et, comme certaines conceptions de stations sont si longues et si peu précises, il en résulte une énorme quantité d'espace vide dans ce volume dédié à chaque polygone pour projeter une ombre. Il en résulte une ombre généralement correcte à grande distance, mais certaines ombres très douces/déchirées à courte distance, là où la cascade dynamique et les cascades statiques se croisent (à environ 40 m de la caméra).

Nous sommes très conscients de ce problème et espérons le résoudre à l'avenir (potentiellement comme mentionné ci-dessus en soutenant une région d'ombre statique secondaire)

Cela concerne la portée maximale des cônes lumineux, par exemple des phares de navires. Je ne sais pas si elle est liée ou non, mais peut-être pouvez-vous y répondre ou la transmettre à quelqu'un qui pourra l'étudier. J'ai constaté que les phares de nombreux navires sont tout simplement inutiles la nuit parce que le cône lumineux n'atteint pas la distance optimale où vous en auriez besoin. Une raison à cela ?

C'est malheureusement un sujet plus profond que je n'approfondirai pas trop pour le moment.

Soyez cependant assuré que beaucoup d'entre nous ne sont pas amoureux de l'implémentation actuelle des phares. Je l'ai ajouté il y a quelque temps comme une sorte de pansement temporaire pour améliorer la visibilité des joueurs lorsqu'ils naviguent sur les côtés sombres des planètes/lunes (comme avant cela, les phares atteignaient à peine 20-50m s'ils faisaient quoi que ce soit).

Ce n'est certainement pas notre mise en œuvre finale et nous avons eu plusieurs discussions internes sur la façon de la corriger.

Nous devons tenir compte d'un certain nombre de considérations pour y parvenir, telles que les ressources de développement sur le navire et les équipes d'éclairage, l'impact sur les performances de plusieurs joueurs qui projettent des lumières massives dans l'ombre (la lutte éternelle) dans des zones concentrées, l'équilibrage du vol par le biais d'instruments et/ou de visuels, la question de savoir si certains navires ou types de navires auraient une configuration unique de lumière extérieure/phares, et comment les équilibrer, etc.

Notes et Références

Dernière mise à jour : 06/06/2023