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 ProximityLight
Mixed 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.