Luz de proximidade – MRTK2

Um ProximityLight é um paradigma do Sistema Fluent Design que imita uma "luz do ponto inverso gradiente" pairando a superfície de um objeto. Geralmente usado para interações próximas, o aplicativo pode controlar as propriedades de uma Luz de Proximidade por meio do ProximityLight componente .

Para que um material seja influenciado por um ProximityLightsombreador Realidade Misturada Toolkit/Standard deve ser usado e a propriedade Proximity Light deve ser habilitada.

Observação

Até dois ProximityLights têm suporte por padrão.

Exemplos

A maioria das cenas no MRTK utiliza um ProximityLight. O caso de uso mais comum pode ser encontrado no MRTK/SDK/Features/UX/Prefabs/Cursors/FingerCursor.prefab

Uso Avançado

Por padrão, apenas dois ProximityLights podem iluminar um material de cada vez. Se o projeto exigir mais de dois ProximityLights para influenciar um material , o código de exemplo abaixo demonstrará como fazer isso.

Observação

Ter muitos ProximityLights iluminando um material aumentará as instruções de sombreador de pixel e afetará o desempenho. Crie o perfil dessas alterações no projeto.

Como aumentar o número de disponíveis ProximityLights de dois para quatro.

// 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;

Observação

Se o Unity registrar um aviso semelhante ao exibido abaixo, você deverá reiniciar o Unity antes que as alterações entrem em vigor.

Property (_ProximityLightData) exceeds previous array size (24 vs 12). Cap to previous size.

Confira também