L'éclairage dynamique sur mobile suscite beaucoup de questions et peu de réponses concrètes. Voici comment nous avons réussi à le faire fonctionner dans Mega Blast :
1 -Tout ce qui reçoit ou projette des ombres doit utiliser le modèle d'ombrage matériel** Default Lit***
2 - Dans World Settings, sous Rendering, assurez-vous que Allow Static Lighting = TRUE. C'est la partie essentielle : Pour obtenir des ombres non noires, certains éclairages doivent être intégrés pour générer des informations d'éclairage indirect.
3 - Configurez un volume d'importance Lightmass qui englobe l'ensemble de votre scène de jeu visible.
4 - Vous devriez avoir deux lumières dans votre scène :
Skylight réglé sur** STATIC**
Lumière directionnelle réglée sur MOVEABLE
5 - La lumière directionnelle doit avoir les paramètres suivants :
Ombres portées = VRAI
Ombres dynamiques projetées = VRAI
Modifiez les paramètres des cartes d'ombres en cascade pour optimiser les performances (par exemple, l'utilisation d'une cascade est plus efficace, mais Mobile prend en charge jusqu'à deux cascades).
6 - Le skylight doit avoir des ombres portées = FALSE
7 - Vous pouvez utiliser une carte cubique pour votre puits de lumière afin d'éclairer la scène en utilisant SLS Specified Cube Map comme Source Type pour le puits de lumière (nous faisons cela parce que nous n'avons pas besoin d'une carte de ciel dans Mega Blast, puisque le ciel n'est pas directement visible).
8 - Assurez-vous d'avoir des éléments dans votre scène qui peuvent projeter des ombres statiques et qui peuvent avoir des lightmaps - ceux-ci peuvent être définis comme non visibles à l'exécution si vous ne voulez pas que ces éléments soient visibles dans le jeu. Nous mettons en place un plan de sol de grande taille qui génère un bel éclairage par rebond à partir du "sol". Nous le cachons ensuite au moment de l'exécution, puisque le "vrai" sol est construit à partir d'objets placés dynamiquement avec des ombres en temps réel.
9 - Construire l'éclairage - cette opération permet de cuire l'éclairage et de générer des informations d'éclairage indirect qui seront utilisées pour éclaircir vos ombres.
10 - Test sur l'appareil
Les ombres devraient maintenant apparaître correctement pour les objets qui utilisent le modèle d'ombrage Default Lit.** BONUS:** Cette méthode permettra également à vos sphères de capture par réflexion de fonctionner correctement - **les captures par réflexion nécessitent actuellement que Allow Static Lighting = TRUE **
Commandes utiles de la console qui peuvent également être définies dans les profils de périphériques par défaut pour l'optimisation :
r.Shadow.MaxResolution - définit la résolution des cartes d'ombres
r.ShadowQuality - définit le nombre de cascades utilisées (votre lumière directionnelle peut être réglée pour utiliser 2 par exemple, mais chaque appareil peut être réglé pour utiliser le même nombre, moins, ou aucun).
r.Shadow.RadiusThreshold - définit le ratio de taille d'écran à partir duquel les ombres n'apparaissent pas. Si vous voyez des ombres apparaître à certaines distances, vous pouvez modifier ce paramètre pour vous assurer que les ombres sont rendues correctement dans la distance (0,02 semble bien fonctionner pour nous).
*Le modèle d'ombrage Defaul Lit est très coûteux sur les appareils non métalliques et doit donc être utilisé avec parcimonie. Pour les appareils non métalliques, nous utilisons des matériaux non éclairés sans ombres portées. Voir cet article pour savoir comment afficher des actifs spécifiques par appareil 74.
N'hésitez pas à me faire savoir si cela fonctionne bien pour vous ou s'il y a des lacunes dans ces informations que vous rencontrez pour votre projet. Je mettrai à jour les informations si des corrections sont nécessaires.
Quelques captures d'écran de l'éclairage dynamique dans Mega Blast :
Source: https://forums.unrealengine.com/t/tip-how-to-enable-dynamic-shadows-correct-reflection-maps-on-mobile/30528