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.

Proximity light UI example

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 ProximityLights, mais de manière légèrement différente.

Notes

Jusqu’à deux ProximityLights sont prises en charge par défaut.

Utilisation avancée

Par défaut, seules deux ProximityLights peuvent éclairer un matériau à la fois. Si votre projet nécessite plus de deux ProximityLights 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 ProximityLights augmente les instructions du nuanceur de pixels et affecte les performances. Profilez ces changements dans votre projet.

ProximityLightComment 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.

Voir aussi