Luz de proximidad: MRTK2
Los elementos ProximityLight
son paradigmas del Sistema Fluent Design que imitan a una "luz puntual invertida con degradado" que se mantiene cerca de la superficie de un objeto. A menudo se usa para interacciones cercanas, la aplicación puede controlar las propiedades de una luz de proximidad a través del ProximityLight
componente.
Para que un material sea influenciado por un ProximityLight
Mixed Reality Toolkit/Standard shader debe usarse y la propiedad Proximity Light debe estar habilitada.
Nota
De forma predeterminada, se admiten hasta dos ProximityLights
.
Ejemplos
La mayoría de las escenas de MRTK utilizan un ProximityLight
. El caso de uso más común se puede encontrar en MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab
Uso avanzado
De forma predeterminada, solo dos ProximityLights
pueden iluminar un material a la vez. Si el proyecto requiere más de dos ProximityLights
para influir en un material , el código de ejemplo siguiente muestra cómo lograrlo.
Nota
Tener muchos ProximityLights
iluminar un material aumentará las instrucciones del sombreador de píxeles y afectará al rendimiento. Describa estos cambios dentro del proyecto.
Cómo aumentar el número de disponibles ProximityLights
de dos a cuatro.
// 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;
Nota
Si Unity registra una advertencia similar a la siguiente, deberá reiniciarlo para que los cambios surtan efecto.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.