Vue d’ensemble de la lumière proche — MRTK3
Une ProximityLight
est un paradigme du Système Fluent Design qui imite une lumière ponctuelle de dégradé inverse pointant près de la surface d’un objet. Elle est souvent utilisée pour des interactions proches. L’application peut contrôler les propriétés d’une lumière de proximité via le composant ProximityLight
.
Pour qu’un matériau soit influencé par une ProximityLight
, des nuanceurs Graphics Tools/Standard ou Graphics Tools/Standard Canvas doivent être utilisés et la propriété Lumière de proximité activée. Les nuanceurs Graphics Tools/Non-Canvas/Frontplate et Graphics Tools/Canvas/Frontplate sont également influencés par les ProximityLight
s, mais de manière légèrement différente.
Notes
Jusqu’à deux ProximityLight
s sont prises en charge par défaut.
Utilisation avancée
Par défaut, seules deux ProximityLight
s peuvent éclairer un matériau à la fois. Si votre projet nécessite plus de deux ProximityLight
s pour influencer un matériau, l’exemple de code ci-dessous montre comment y parvenir sur les nuanceurs Graphics Tools/Standard ou Graphics Tools/Standard Canvas.
Notes
Le fait d’éclairer un matériau avec un grand nombre de ProximityLight
s augmente les instructions du nuanceur de pixels et affecte les performances. Profilez ces changements dans votre projet.
ProximityLight
Comment augmenter le nombre de s disponibles de deux à quatre.
// 1) Within GraphicsToolsStandardInput.hlsl change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within ProximityLight.cs change:
private const int proximityLightCount = 2;
// to:
private const int proximityLightCount = 4;
Notes
Si Unity journalise un avertissement similaire à celui ci-dessous, vous devez redémarrer Unity pour que vos modifications prennent effet.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.