Um material interativo reage em uma malha quando cruza ou está próximo de outra malha. Este efeito é obtido usando um campo de distância.
Veja abaixo três maneiras de criar um material reativo:
Usando a distância para criar uma máscara que muda a cor de uma malha,
Usando uma onda senoidal para causar ondulações na superfície da malha onde as duas malhas se cruzam e
Usando uma máscara de vetor para fazer com que a superfície da malha se desloque em direção a outra malha próxima e cubra a malha de interseção.
O nó DistancetoNearestSurface funciona apenas em plataformas que têm campos de distância habilitados. Portanto, o material pode não funcionar como esperado em PCs e dispositivos móveis de baixo desempenho, pois o cálculo do campo de distância geralmente é um gargalo de desempenho devido a campos de alta resolução ou uma tarefa quase impossível devido a degenerações em malhas de entrada.
Portanto, use ShadingPathSwitch para forçar os shaders em DistancetoNearestSurface a funcionar conforme configurado com plataformas móveis e PCs de baixo desempenho.
Primeiro, comece criando um material que muda de cor quando se intersecciona com outra malha:
Crie um novo material no Navegador de Conteúdo e clique duas vezes na miniatura do material para abrir o Editor de Material.
Crie os seguintes nós:
Nó DistancetoNearestSurface
Nó ShadingPathSwitch
Nó Divide
Nó Saturate
Nó OneMinus
Nó Time
Nó Sine
Nó Add
Nó VertexNormalWS
Nó Mask
3 nós Multiply
Arraste o nó DistancetoNearestSurface e conecte-o à entrada Padrão no nó ShadingPathSwitch.
Selecione o nó Divide e altere o valor da entrada ConstB para 50,0. Assim a distância entre os objetos para que os efeitos ocorram é determina.
Arraste o nó Divide e conecte-o à entrada Móvel no nó ShadingPathSwitch. O que garantirá que a máscara de sombreamento funcione corretamente em todas as plataformas.
Arraste o nó ShadingPathSwitch e conecte-o ao nó Saturate. Assim, a cor na malha é saturada.
Arraste o nó Saturate e conecte-o ao nó OneMinus. Assim, os shaders na malha são invertidos.
Arraste o nó OneMinus e conecte-o à entrada Cor-base no nó-raiz do material.
O que cria a base para a configuração do campo de distância com uma representação matemática da distância entre os objetos. Os shaders criam um efeito de máscara na malha. Experimente isso em uma malha fazendo-a se interseccionar com outra malha para ver como o material reage.
Observe como o material cria uma linha ao redor da forma do automóvel quanto mais ele se aproxima.
Efeito de ondulações
Agora, crie a segunda configuração do material reativo:
Arraste o nó Time e conecte-o à entrada B do nó Add.
Arraste o nó Add e conecte-o ao nó Sine.
Arraste o nó Sine e conecte-o à entrada B do primeiro nó Multiply.
Selecione e expanda o nó Sine e altere o valor do Período para 0,2.
Arraste o nó OneMinus e conecte-o à entrada A do primeiro nó Multiply.
Arraste o primeiro nó Multiply e conecte-o à entrada Cor-base no nó-raiz do material. Assim, o vínculo entre o nó OneMinus e o nó-raiz do material será desfeito.
Essa configuração aplica cor à malha que agora é reativa, usando a configuração anterior do campo de distância. O material interage com o ambiente e se cria uma malha em torno dele. Quando a malha se intersecciona com outra, o material causa ondulações ao longo da superfície.
Essa configuração é comumente usada para criar água.
Efeito de envelopamento
Agora, para criar a terceira configuração do material reativo:
Arraste o nó OneMinus e conecte-o à entrada Cor-base no nó-raiz do material. Assim, o vínculo entre o primeiro nó Multiplicar e o nó-raiz do material é desfeito.
Arraste o nó VertextNormalWS e conecte-o ao nó Mask.
Arraste o nó Mask e conecte-o à entrada A no segundo nó Multiply.
Selecione e expanda o segundo nó Multiply e altere o valor de entrada B para 50,0.
Arraste o segundo nó Multiply e conecte-o à entrada B do terceiro nó Multiply.
Arraste o nó OneMinus da primeira configuração e plugue-o na entrada A do terceiro nó Multiply.
Arraste o terceiro nó Multiply e conecte-o à entrada Deslocamento de Posição no Mundo no nó-raiz do material.
Esta deve ser a aparência da segunda configuração.
Observe como o material na janela de visualização se altera para parecer pontiagudo. Quando aplicado à malha, a forma da malha também se altera. À medida que a malha se aproxima do automóvel, o material faz com que ela envolva o veículo.