Como criar um sombreador que reproduza esse efeito de iluminação no terreno?


8

Veja a luz caindo da colunata em pedras de pavimentação reflexivas

Observe como a reflexão é mais forte onde o ângulo entre sol, solo e visão é mais agudo

Observe a maneira como a principal fonte de luz em cada imagem se reflete no chão, em função da distância entre a fonte de luz e o visualizador (?).

Este é um mapa especular (esbarrado)? O efeito é visto em todo o World of Warcraft; Lembro-me especificamente disso na neve em Dun Morogh e nas margens do lago Darrowmere. É necessário olhar diretamente para o sol. O efeito também é comum na superfície da água no RL e no CG. Especificamente, quero criar o efeito em que o reflexo é mais intenso na superfície do solo, mais próximo da fonte de luz, e cai quando se aproxima do espectador.


2
phong em uma superfície mapeada de solavanco
catraca aberração

Respostas:


14

Eu imagino que se eu fosse construir um sombreador há certos fenômenos com os quais começarei.

Primeiro, a luz do sol é direcional, o que significa que não tem posição nem atenuação.

Segundo, o componente difuso é simplesmente calculado usando um produto de ponto entre a direção do sol e as normais da superfície, adicionando mapeamento normal pode adicionar detalhes.

A parte complicada é modelar o componente especular direcional do sol. Então, para obter um efeito semelhante, eu o dividiria em problemas menores:

  • O primeiro são os microfacetes da superfície, que podem ser simulados usando qualquer variação do mapeamento de relevo ou normal; isso pode ser aplicado tanto ao componente difuso quanto ao componente especular.
  • A segunda parte é a distribuição desigual da iluminação especular. Isso pode ser feito usando algum tipo de mapa especular.
  • Agora, a parte mais complicada é o mapa especular direcional, que pode ser alcançado usando o modelo de iluminação anisotrópica de Ward , que fornece dois parâmetros para controlar a anisotropia da reflexão especular, nomeadamente Ax, Ayna equação de Wards a seguir.

Equação de Ward

Onde:

  • O termo especular é zero se ponto ( N , L ) <0 ou ponto ( N , R ) <0.
  • O vetor R é o reflexo do espelho do vetor de luz da superfície.
  • L é a direção do ponto da superfície para a luz.
  • H é a direção do meio ângulo.
  • N é a superfície normal.
  • X e Y são dois vetores ortogonais no plano normal que especificam as direções anisotrópicas; os vetores tangentes e bitangentes podem ser usados ​​como X,Yvetores, especialmente que o espaço tangente é tão comum em gráficos de computador que pode ser calculado em qualquer mecanismo (geralmente calculado com base em cordas de textura).

insira a descrição da imagem aqui

Observe na imagem como a iluminação especular é direcional, ao contrário da luz especular comum de Phong. Aqui está um artigo sobre o modelo de Ward e como obter efeitos diferentes. EDIT Mais informações sobre a adequação do BRDF em termos de redução da intensidade da luz mais próxima do visualizador, podem ser encontradas aqui .

Ward Anisotropic Specular

Finalmente, outros dois pontos (opcionais) que eu acho que poderiam adicionar à imagem final,

  • Primeiro, tenho certeza de que o uso de oclusão ambiental ajudará a obter resultados mais confiáveis.
  • A segunda é que a implementação de algum tipo de reflexão de Fresnel poderia adicionar um bom efeito à imagem, especialmente em cenas de água e gelo.

11
+1 Boa resposta concept3d, e sinto muito que você tenha se esforçado para escrevê-lo - @JoshPetrie modificou o título da minha pergunta de "O QUE É este shader)" para "COMO (eu o construo) " Portanto, seus esforços podem ser um pouco inúteis, no entanto, parece ter feito coisas boas para seu representante, e é um bom recurso.
Engineer

@NickWiggill nenhum problema, ele permanecerá aqui como um bom recurso :)
concept3d

@JoshPetrie, mesmo que a edição tenha invalidado minha resposta, a pergunta em sua forma atual é um pouco mais razoável.
usar o seguinte

11
Eu vou aceitar o seu em seu lugar. O motivo é que você mencionou o BRDF e esse é exatamente o tipo de conceito que eu tinha em mente, e, depois de ler tudo, posso ver que é exatamente isso que eu preciso. Editei sua resposta com mais detalhes no BRDF.
Engenheiro de

11
@NickWiggill Obrigado por adicionar mais detalhes. Mais informações nunca são ruins :)
concept3d

3

A reflexão em si é apenas a reflexão especular que você obtém como saída das funções do seu modelo de iluminação específico.

Existem muitos modelos diferentes de iluminação com níveis variados de complexidade que produzirão uma forma de reflexão semelhante a essa, mas uma aparência semelhante a essa já pode ser alcançada com um modelo simples de iluminação blinn-phong de ossos desencapados , que é (agora) provavelmente o mais modelo básico de iluminação usado por motores gráficos e, provavelmente, também usado por World of Warcraft.

Não será fisicamente correto e completamente igual às suas imagens, mas será muito parecido . O exemplo de Concept3D do modelo Ward é mais fisicamente correto e funciona para tipos de superfície mais complexos (ou seja, materiais onde as saliências microscópicas em suas superfícies não são uniformemente distribuídas, mas têm distribuições de probabilidade diferentes), mas não conheço exemplos concretos de renderizadores em tempo real que o utilizam, devido a baixos ganhos em termos de qualidade / desempenho.

Na prática, esses tipos de reflexões nas superfícies são complementadas por texturas adicionais especulares / brilhantes e normais, que modificam o brilho / aspereza de uma superfície e a direção das normais da superfície, respectivamente, que são entradas para as equações de iluminação de modelos de iluminação típicos. Isso é feito porque, no mundo real, as propriedades físicas da superfície com mais freqüência (exceto talvez algo como plástico ou espelho) não permanecem as mesmas em toda a superfície, mas podem variar muito de pixel para pixel.


Certo, obrigado Travis. Você prevê algum problema com o uso de blinn + phong junto com algum tipo de textura de máscara para renderizar pixels somente quando necessário no terreno, criando assim a granulação subjacente à reflexão especular?
Engenheiro de

Se esses pixels não estiverem acesos após serem descartados devido à textura da máscara, provavelmente parecerá errado / estranho. A maneira usual é de fato uma combinação de um mapa de relevo e um mapa especular para a superfície que altera algumas das entradas da equação da iluminação.
TravisG

0

Mapeamento de relevo especular (mapeamento normal) ou paralaxe.


7
Reunir isso com evidências ou referências tornaria uma resposta muito melhor.
MichaelHouse
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.