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.

Exemplo de interface do usuário de luz de proximidade

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 ProximityLights, mas de uma forma ligeiramente diferente.

Observação

Por padrão, aé dois ProximityLights têm suporte.

Uso avançado

Por padrão, apenas duas ProximityLights podem iluminar um material por vez. Se o projeto exigir mais de dois ProximityLights 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.

Confira também