Compartir a través de


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.

Vea también