Future Is Bright: Deuxième Phase

#1

Nous sommes heureux de vous annoncer que la phase 2 de Future Is Bright, entre autre Technology.ShadowMap, est maintenant disponible sur ordinateurs (Windows et macOS qui utilisent DX11, Metal, Vulkan) pour tous les développeurs. Cela sera aussi disponible la semaine prochaine sur Windows 10 Store et Xbox. Un grand merci à l’équipe qui l’a permis! C’était long mais nous l’avons finalement fait. Merci à @zeuxcg, @Qiblox, @ConvexRumbler, @Homeomorph, @NeoBuilder101, @vrtblox vous êtes fantastiques!

image

Quoi de neuf?

Nous avons ajouté la Shadow Map qui supporte maintenant le moteur des lumières voxels. Maintenant chaque objet dans la scène supportera les ombres. Pour le moment, seulement le soleil et la lune peuvent transmettre de l’ombre; nous ne pouvons pas transmettre d’ombres depuis des objets locaux (pas encore) à cause de quelques limitations avec les voxels, mais nous ferons cela pour la Phase 3.

Comment je l’utilise?

Il y’a plusieurs nouvelles options:

Nouvelle technologie: ShadowMap

New lighting technology: ShadowMap
image1

Shadow Softness qui vous permettra de spécifié le flou des ombres

image3

Et vous pouvez maintenant contrôler si un objet diffuse une ombre avec la nouvelle propriété “CastShadow”. Cette propriété affecte aussi les ombres voxels.

image4

Comment ça marche?

Le shadow mapping est une façon commune de créer des ombres dans un jeu. Notre tâche est, pour chaque pixel de l’écran, de déterminer si ce pixel est visible ou non du point de vue de la lumière ; en d’autres termes, nous devons résoudre le problème de visibilité. Pour résoudre ce problème de visibilité, nous pouvons rendre la scène du point de vue de la lumière dans une texture hors écran (Shadow map). Pour chaque pixel de cette texture, nous allons stocker la distance de la lumière à l’ombre la plus proche.
Ensuite, pour chaque pixel de l’écran, nous pouvons comparer la distance actuelle à la source lumineuse avec la distance que nous avons enregistrée dans la Shadow map. Si la distance actuelle du pixel est supérieure à la distance stockée, ce pixel est dans l’ombre sinon le pixel est allumé.
Bien sûr, cette description est trop simplifiée, et il y a des tonnes de différents détails, astuces, et optimisations pour le rendre rapide. Mais j’espère que vous avez compris, pour les shadow maps nous devrions rendre la scène au moins deux fois ; la première fois pour générer la shadow map elle-même et la deuxième fois pour rendre une scène.
C’est pourquoi, du point de vue de la performance, il est crucial de rendre le moins d’objets possibles. Voici quelques conseils de performance :

  • Nous ne dessinerons jamais d’objets sur la Shadow map avec la propriété CastShadow désactivée; c’est un excellent moyen d’enregistrer certaines performances. Par exemple, si votre jeu a beaucoup de mailles d’herbe, vous voulez probablement désactiver l’ombre pour ceux-ci.
  • Nous allons essayer de ne pas rendre les objets statiques. Si votre objet ne se déplace pas, cela permettra d’économiser certaines performances.
  • Malheureusement, lorsque la direction du soleil change, nous devons invalider nos Shadow Maps en cache. Moins le soleil bouge souvent, mieux c’est pour la performance. Essayez de ne pas changer l’heure de la journée fréquemment ; vous voudrez peut-être envisager de déplacer le soleil dans de courtes rafales et l’attente entre ceux-ci, comme certains jeux (Skyrim) font.

La suite?

Nous avons déjà travaillé durement sur la phase 2 pour les plateformes mobiles iOS, et les appareils androids Vulkan. Nous sommes en train de travailler encore plus dur pour la phase 2.5 qui introduira un dispositif physique plus réaliste avec les matériaux et les images basées sur la lumière.

Nous espérons aussi implémenter plus d’optimisation pour les ordinateurs moins puissant, pour que les ombres puissent marcher de partout.

Pour le moment, nous ne planifions pas de supporter les shadow maps pour OpenGL ni Direct3D 9. Si vous utilisez OpenGL dans le studio intentionnellement, merci de changer pour Automatique ou Vulkan/Metal dépendamment de la plateforme.

Nous sommes vraiment heureux, et nous regarderons de plus près vos jeux qui utiliseront cette nouvelle technologie.

Bugs connus

Nous connaissons déjà quelques bugs qui seront bientôt réglés ; nous mettrons à jour ce poste quand les réglages seront publiés :

  • Les images sur un objet avec CastShadow=False vont quand même diffuser de l’ombre
  • Sur mobile, ShadowMap redevient Legacy au lieu de Voxel

Sujet original: https://devforum.roblox.com/t/future-is-bright-phase-2-released/278531

4 Likes
[Catégorie] Annonces