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