Em um BRDF com base física, qual vetor deve ser usado para calcular o coeficiente de Fresnel?

11

A bem conhecida aproximação de Schlick do coeficiente de Fresnel fornece a equação:

F=F0+(1F0)(1cos(θ))5

E é igual ao produto escalar do vetor normal da superfície e do vetor da vista.cos(θ)

Ainda não está claro para mim que, se devemos usar a superfície real normal, ou a metade vector H . Qual deve ser usado em um BRDF com base física e por quê?NH

Além disso, até onde eu entendo, o coeficiente de Fresnel fornece a probabilidade de um determinado raio ser refletido ou refratado. Portanto, tenho problemas para entender por que ainda podemos usar essa fórmula em um BRDF, que deveria aproximar a integral de todo o hemisfério.

Essa observação tenderia a me fazer pensar que é aqui que viria, mas não é óbvio para mim que o Fresnel de um normal representativo seja equivalente a integrar o Fresnel de todos os normais reais.H

Julien Guertault
fonte

Respostas:

8

No artigo de Schlick de 1994, "Um modelo barato para renderização com base fisicamente" , onde derivam a aproximação, a fórmula é:

Fλ(u)=fλ+(1fλ)(1u)5

Onde

Descrição dos vetores

Portanto, para responder à sua primeira pergunta, θ refere-se ao ângulo entre o vetor da vista e o meio vetor. Considere por um minuto que a superfície é um espelho perfeito. Assim:

Vreflect(V)
Neste caso:
NH

Para BRDFs microfacet-base, o D(hr) termo refere-se à percentagem de estatística normais microfacet que são orientadas para H . Aka, qual a porcentagem da luz que entra refletirá na direção de saída.

Quanto ao motivo pelo qual usamos Fresnel em um BRDF, isso tem a ver com o fato de que um BRDF por si só é apenas uma parte do BSDF completo. Um BRDF atenua a porção refletida da luz e um BTDF atenua o refratado. Utilizamos o Fresnel para calcular a quantidade de luz refletida versus refratada, para que possamos atenuá-la adequadamente com o BRDF e o BTDF.

BSDF=BRDF+BTDF
Lo(p,ωo)=Le(p,ωo) + ΩBSDFLi(p,ωi)|cosθi|dωi=Le(p,ωo) + ΩBRDFLi, reflected(p,ωi)|cosθi|dωi + ΩBTDFLi, refracted(p,ωi)|cosθi|dωi

DFHVV

RichieSams
fonte
Ah, eu tinha sentido muita falta de que isso já era um resultado no jornal. Isso certamente esclarece. :) Vou ter que relê-lo para ter uma idéia melhor de como ele se encaixa no BRDF.
Julien Guertault
7

HN

Você escreveu,

Tenho problemas para entender por que ainda podemos usar essa fórmula em um BRDF, que deveria aproximar a integral de todo o hemisfério.

Não é. O BRDF em si não se aproxima da integral em todo o hemisfério. A equação de renderização faz isso: você integra todas as direções de luz recebidas, mas cada vez que o BRDF dentro da integral é avaliado, é para uma escolha específica de direções de raios de entrada e saída.

LVH=normalize(L+V)

HLVLHVH

LV

R=reflect(V,N)RNVN

Nathan Reed
fonte