Lumière de proximité — MRTK2

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. Souvent utilisée pour les interactions de proximité, l’application peut contrôler les propriétés d’une lumière de proximité via le ProximityLight composant.

Pour qu’un matériau soit influencé par un ProximityLightMixed Reality Kit de ressources/nuanceur Standard doit être utilisé et la propriété Lumière de proximité doit être activée.

Notes

ProximityLights Deux sont pris en charge par défaut.

Exemples

La plupart des scènes dans MRTK utilisent un ProximityLight. Le cas d’usage le plus courant se trouve sur le MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

Utilisation avancée

Par défaut, seuls deux ProximityLights peuvent éclairer un matériau à la fois. Si votre projet en nécessite plus de deux ProximityLights pour influencer un matériau , l’exemple de code ci-dessous montre comment y parvenir.

Notes

Le fait d’éclairer ProximityLights un matériau augmente les instructions du nuanceur de pixels et aura un impact sur les performances. Profilez ces changements dans votre projet.

Comment augmenter le nombre de disponibles ProximityLights de deux à quatre.

// 1) Within MRTK/Core/StandardAssets/Shaders/MixedRealityStandard.shader change:

#define PROXIMITY_LIGHT_COUNT 2

// to:

#define PROXIMITY_LIGHT_COUNT 4

// 2) Within MRTK/Core/Utilities/StandardShader/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