Luz de proximidad : MRTK2
es ProximityLight
un paradigma Sistema Fluent Design que imita una "luz de punto inverso de degradado" que mantiene el puntero 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 se vea influenciado por un ProximityLight
sombreador Mixed Reality Toolkit/Standard debe usarse y la propiedad Luz de proximidad debe estar habilitada.
Nota:
De forma predeterminada, se admiten hasta dos ProximityLights
.
Ejemplos
La mayoría de las escenas dentro de MRTK usan 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
elementos que iluminan un material aumentará las instrucciones del sombreador de píxeles y afectará al rendimiento. Genere perfiles de estos cambios en el 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, debe reiniciar Unity antes de que los cambios surtan efecto.
Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.