Visão geral da luz de proximidade – MRTK3
Um ProximityLight
é um paradigma do Sistema Fluent Design que imita uma "luz do ponto inverso gradiente" pairando a superfície de um objeto. Ela geralmente é usada para interações próximas. O aplicativo pode controlar as propriedades de uma Luz de Proximidade por meio do componente ProximityLight
.
Para que um material seja influenciado por um ProximityLight
, os sombreadores de Ferramentas de Gráficos/Padrão ou Ferramentas de Gráficos/Tela Padrão devem ser usados e a propriedade Luz de Proximidade deve ser habilitada. As Ferramentas de Gráficos/Não Tela/Frontplate e Ferramentas de Gráficos/Tela/Frontplate também são influenciadas por ProximityLight
s, mas de uma forma ligeiramente diferente.
Observação
Por padrão, aé dois ProximityLight
s têm suporte.
Uso avançado
Por padrão, apenas duas ProximityLight
s podem iluminar um material por vez. Se o projeto exigir mais de dois ProximityLight
s para influenciar um material, o código de exemplo abaixo demonstrará como fazer isso nos sombreadores de Ferramentas de Gráficos/Padrão ou Ferramentas de Gráficos/Tela Padrão.
Observação
A presença de muitas ProximityLight
iluminando um material aumenta as instruções do sombreador de pixel e afeta o desempenho. Crie o perfil dessas alterações no projeto.
Como aumentar o número de s disponíveis de dois para quatro.ProximityLight
// 1) Within GraphicsToolsStandardInput.hlsl change:
#define PROXIMITY_LIGHT_COUNT 2
// to:
#define PROXIMITY_LIGHT_COUNT 4
// 2) Within 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.