Quão fisicamente baseada é a distinção difusa e especular?

34

A maneira clássica de sombrear superfícies em gráficos de computador em tempo real é uma combinação de um termo difuso (lambertiano) e um termo especular, provavelmente Phong ou Blinn-Phong.

Imagem da Wikipedia

Agora, com a tendência de renderização com base física e, portanto, modelos de materiais em motores como Frostbite , Unreal Engine ou Unity 3D, esses BRDFs mudaram. Por exemplo (um exemplo bastante universal), o Unreal Engine mais recente ainda usa difuso lambertiano, mas em combinação com o modelo de microfacet Cook-Torrance para reflexão especular (especificamente usando GGX / Trowbridge-Reitz e uma aproximação Slick modificada para o termo Fresnel ) Além disso, um valor de 'Metalicidade' está sendo usado para distinguir entre condutor e dielétrico.

Para dielétricos, difuso é colorido usando o albedo do material, enquanto especular é sempre incolor. Para metais, difuso não é usado e o termo especular é multiplicado pelo albedo do material.

Em relação aos materiais físicos do mundo real, existe uma separação estrita entre difusa e especular e, em caso afirmativo, de onde vem? Por que uma é colorida e a outra não? Por que os condutores se comportam de maneira diferente?

David Kuri
fonte

Respostas:

30

Para começar, sugiro ler a apresentação Siggraph de Naty Hoffman, que aborda a física da renderização. Dito isto, tentarei responder suas perguntas específicas, emprestando imagens de sua apresentação.

Observando uma única partícula de luz atingindo um ponto na superfície de um material, ela pode fazer duas coisas: refletir ou refratar. A luz refletida refletirá na superfície, semelhante a um espelho. A luz refratada salta dentro do material e pode sair do material a alguma distância de onde entrou. Finalmente, toda vez que a luz interage com as moléculas do material, perde alguma energia. Se perder bastante energia, consideramos que ela é totalmente absorvida.

Para citar Naty, "a luz é composta de ondas eletromagnéticas. Portanto, as propriedades ópticas de uma substância estão intimamente ligadas às suas propriedades elétricas". É por isso que agrupamos materiais como metais ou não metais.

Os não metais exibirão reflexão e refração. Não Metais

Os materiais metálicos têm apenas reflexão. Toda a luz refratada é absorvida. Metais

Seria proibitivamente caro tentar modelar a interação da partícula de luz com as moléculas do material. Em vez disso, fazemos algumas suposições e simplificações.

Simplificando a refração

Se o tamanho do pixel ou a área de sombreamento for grande em comparação com as distâncias de entrada e saída, podemos assumir que as distâncias são efetivamente zero. Por conveniência, dividimos as interações de luz em dois termos diferentes. Chamamos o termo reflexão de superfície de "especular" e o termo resultante de refração, absorção, espalhamento e re-refração que chamamos de "difuso". Dividindo em difuso e especular

No entanto, essa é uma suposição bastante grande. Para a maioria dos materiais opacos, essa suposição é válida e não difere muito da vida real. No entanto, para materiais com qualquer tipo de transparência, a suposição falha. Por exemplo, leite, pele, sabão etc.

A cor observada de um material é a luz que não é absorvida. Essa é uma combinação da luz refletida e de qualquer luz refratada que sai do material. Por exemplo, um material verde puro absorve toda a luz que não é verde; portanto, a única luz que chega aos nossos olhos é a luz verde.

Portanto, um artista modela a cor de um material, fornecendo-nos a função de atenuação do material, ou seja, como a luz será absorvida pelo material. Em nosso modelo difuso / especular simplificado, isso pode ser representado por duas cores, a cor difusa e a cor especular. Antes de materiais físicos serem usados, o artista escolhia arbitrariamente cada uma dessas cores. No entanto, deve parecer óbvio que essas duas cores devem estar relacionadas. É aqui que a cor albedo entra. Por exemplo, no UE4, eles calculam cores difusas e especulares da seguinte maneira:

DiffuseColor = AlbedoColor - AlbedoColor * Metallic;
SpecColor = lerp(0.08 * Specular.xxx, AlbedoColor, Metallic)

onde Metálico é 0 para não metais e 1 para metais. O parâmetro 'Specular' controla a especularidade de um objeto (mas geralmente é uma constante 0,5 para 99% dos materiais)

RichieSams
fonte
11
Por que o raio incidente é dividido após reflexão / refração? Se a luz é uma partícula, isso significa que essa partícula se divide recursivamente? E se a luz é uma onda, isso significa que é dividido por frequência (mas, neste caso, por que é dividido após o segundo / terceiro / etc)?
Nikitablack 18/09/2015
5
A partícula não se divide. Em vez disso, as imagens mostram os possíveis caminhos a seguir.
RichieSams
2
Muitas partículas atingirão o (quase) mesmo ponto do (quase) mesmo ângulo. Para cada partícula que sai, existe (geralmente) uma partícula que entra . Isso significa que a média da saída do feixe de partículas de um determinado ângulo em um determinado ponto é dividida em várias (muitas) reflexões.
roquete aberração
11
Ótima resposta esclarecendo a maioria das minhas perguntas. Por que a parte especular dos não metais é incolor e não é afetada pelo albedo? Como e onde a polarização entra em ação?
David Kuri
11
"A cor observada de um material é a luz que não é absorvida." Nesse ponto, pode valer a pena referenciar o item Existem materiais comuns que não são bem representados pelo RGB? discussão, como materiais fluorescentes vêm à mente.
Simon F
23

Na verdade, eu estava pensando exatamente sobre isso há alguns dias. Não encontrando nenhum recurso na comunidade gráfica, na verdade, fui até o departamento de Física da minha universidade e perguntei .

Acontece que existem muitas mentiras em que as pessoas gráficas acreditam.


Primeiro, quando a luz atinge uma superfície, as equações de Fresnel se aplicam. As proporções de luz refletida / refratada dependem delas. Você provavelmente sabia disso.

Não existe uma "cor especular"

O que você talvez não saiba é que as equações de Fresnel variam com base no comprimento de onda, porque o índice de refração varia com base no comprimento de onda. A variação é relativamente pequena para dielétricos (dispersão, alguém?), Mas pode ser enorme para metais (presumo que isso tenha a ver com as diferentes estruturas elétricas desses materiais).

Portanto, o termo de reflexão de Fresnel varia de acordo com o comprimento de onda e, portanto, diferentes comprimentos de onda são refletidos preferencialmente . Visto sob iluminação de amplo espectro, é isso que leva à cor especular. Mas, em particular, não há absorção que ocorra magicamente na superfície (as outras cores são apenas refratadas).

Não existe "reflexão difusa"

Como Naty Hoffman diz na conversa vinculada na outra resposta, essa é realmente uma aproximação à dispersão subespacial dispersa.

Os metais transmitem luz

Naty Hoffman está errada (mais precisamente, simplificando). A luz não é absorvida imediatamente pelos metais. De fato, ele passará com facilidade através de materiais com vários nanômetros de espessura. (Por exemplo, para o ouro, são necessários 11,6633nm para atenuar a luz de 587,6nm (amarelo) pela metade.)

A absorção, como nos dielétricos, é devida à Lei Beer-Lambert. Para metais, o coeficiente de absorção é apenas muito maior (α = 4πκ / λ, onde κ é o componente imaginário do índice de refração (para metais ~ 0,5 e acima) e λ é dado em metros ).

Essa transmissão (ou mais precisamente o SSS que produz) é realmente responsável por uma parte significativa das cores dos metais (embora seja verdade que as aparências dos metais sejam dominadas por suas especulações).

imallett
fonte
3
Obrigado! Eu só conhecia as simplificações. Esses detalhes extras são incríveis
RichieSams
11
Esta é uma resposta fascinante. Você poderia esclarecer / vincular o acrônimo SSS, por favor?
Trichoplax
@trichoplax Thanks! SSS == espalhamento sub-superficial.
precisa saber é o seguinte
Obrigado :) Se você esclarecer na pergunta, ele sobreviverá à exclusão dos comentários (que não garantem uma vida útil prolongada). Editei um link e passe o texto que, esperançosamente, deixa intacta a apresentação pretendida.
Trichoplax
2
Enquanto eu aprecio o pedantismo desta resposta. A dispersão sub-superficial é considerada um efeito de escala em mm, enquanto é verdade que em faixas moleculares tudo passa a superfície em algum grau. Mas a restrição básica é que geralmente contamos efeitos de escala em mm e tentamos abstrair níveis mais baixos como modelos estatísticos. Portanto, o micrômetro é igual a imediatamente, pois a maioria dos pixels vê uma área muito maior que essa. Mesmo se aplica a cor que não existe significativamente em física da mesma forma que nossos olhos e cérebro precieve-lo
joojaa