Finalmente descobri uma falha na minha argumentação para usar o meio vetor para a parte difusa.
tl; dr versão:
αhi e não são iguais, essa suposição funciona apenas para a parte especular. Portanto, a conservação de energia não é fornecida.αho
Mais correto: por definição , mas você não tem permissão para usá-los na equação, você precisa usar os microfacet normais em vez dos meios vetores. O microfacete normal e o meio vetor não são geralmente iguais.αhi=αho
versão longa:
O BRDF difuso (como o especular) é uma integração entre todos os possíveis normais de microfacet. O formulário BRDF generalizado é:
(1)
f=∫Ωρm∗D∗G∗cos(αhi)∗cos(αho)cos(θi)∗cos(θo)
onde é o comportamento da luz quando atinge um microfacete, é a função de distribuição normal, é a função de geometria e o resto é normalização [PBR, p.16-25] [IES, p.61f.]ρmDG
Agora, para o BRDF especular, o comportamento é um reflexo perfeito. Isso significa que apenas os microfacetes em que o microfacet normal é igual ao meio vetor entre a luz ( ) e a visão ( ) reflete a luz da direção da luz para a direção da visão. Matematicamente, isso se traduz em uma função Dirac Delta . A quantidade de luz reflectida é determinada por Fresnel . Com a contabilização das alterações no domínio de integração [PBR, p.31-41], isso leva a ( ser a reação especular específica de microfacetes para a parte especular):ωmωhωiωoδ(ωh)Fρm,s
2)
ρm,s=δ(ωh)∗F4∗αhi∗αho
Conecte isso em (1) e você integra sobre qualquer , mas a função dirac delta faz com que você ignore qualquer coisa em que . Essa é a coisa agradável sobre essas funções dirac delta, o "cancelamento" da integral. Portanto, você chega ao conhecido e conhecido BRDF [PBR, p.43]ωmωm≠ωh
(3)
fs=F∗D∗G4∗cos(θi)∗cos(θo)
e aqui você pode supor com segurança . A parte de Fresnel faz desse lado uma interpolação linear (visto que essa é a razão da luz refletida especularmente).αhi=αho
Por outro lado, você ainda tem uma integral e não pode "cancelá-la" com nada. Seja o ângulo entre o microfacet normal e o dir de luz, theta_mo entre o microfacet normal e o dir de visualização (em oposição a e , que são definidos especificamente para a metade ângulo!). Isso significa duas coisas importantes:θmiαhiαho
4)
θmi≠αhi=αh=αho≠θmo∀ωm≠ωh
e (como a reação difusa da luz ao atingir microfacetes) depende de Fresnel, ele só pode usar partes não refletidas, mas você não pode simplesmente assumir que TODOS os difusores normais de microfacet refletem toda a luz que não foi especularmente refletida (ie ).ρm,d(1−F(αh))
Portanto, o problema agora é que você tem um lado dessa interpolação linear, sendo o BRDF especular analiticamente solucionável sem uma integral. Por outro lado, você tem o fator de interpolação dentro da integral e, portanto, você o usaria para qualquer microfacet normal. Isso não economiza mais energia, se você modelar com um termo lambertiano.ρm,d
Se você conseguir extrair a parte da integral, só então poderá usar o meio vetor para BRDFs especulares e difusos, caso contrário, precisará lidar com isso de maneira diferente.1−F
Se você ainda deseja usar o meio vetor para a "Interpolação de Fresnel", precisará normalizar.
f=F(αh)∗rs+(1−F(αh))∗rd∗k
Com sendo escolhido, de modo quek
rd∗k=1
Observe que ainda inclui uma integral sobre todos os possíveis normais de microfacet.rd
Usando eθiθo
Acho que devo adicionar uma frase sobre os ângulos realmente usados, porque a pergunta que originalmente fiz não foi apenas "por que não ", mas também "por que e ". Assim, para o povo se perguntando se isso está correto: Não. É apenas uma aproximação.αhθiθo
Em vez disso, podemos modificar o termo fosco para ser uma aproximação simples que captura o importante comportamento angular qualitativo [...].
[SHI, p.46]
Discussão sobre por que isso é tão difícil de entender
Agora [DIS, p.14] e [PBR, p.100.184] citaram [SHI] e [ASH] sobre isso, onde [ASH] usa [SHI], então tudo se resume ao modelo deste último. E como [DIS] e [PBR] são publicações não científicas (embora muito bem pensadas), não posso culpá-las muito, mas realmente, uma maneira melhor de citar artigos ou de uma explicação extra poderia ter ajudado e economizado eu cerca de duas semanas pensando, lendo e quase começando um artigo sobre por que todo mundo está (supostamente) errado.
Além disso, nenhum deles realmente explica suas aproximações difusas, [PBR, p.193] apenas menciona tentar diferentes funções até ver uma que ele gostava.
Além disso, [SHI, p.46] realmente citou [SCH, p.10f.] Quem usou a interpolação linear entre e . No entanto, [SHI, p.46] citou-o incorretamente, eles disseram que ele usava e . Supondo isso, é claro que eles estão certos ao pensar que [SCH] não economiza energia, mas isso me levou a acreditar que e seriam. O erro deles pode ter sido deles usando , não posso dizer.F(αh)1−F(αh)F(θi)1−F(αh)F(αh)1−F(αh)F(θi)
Literatura
- [ASH] Um modelo BRDF phis anisotrópico, no Journal of Graphics Tools vol. 5, No. 2, Michael Ashikhmin e Peter Shirley, 2000
- [SCH] Um modelo inexpressivo de BRDF para renderização com base física, no Computer Graphics Forum vol. 13, n. 3, Christophe Schlick, 1994
- [SHI] Avaliação de praticantes de modelos de reflexão da luz, na Quinta Conferência do Pacífico sobre computação gráfica e aplicações, 1997. Procedimentos, Peter Shirley, Helen Hu, Brian Huits, Brian Smits e Eric Lafortune, 1997
- [DIS] Sombreamento físico na Disney, no curso SIGGRAPH 2012: Sombreamento físico na produção de filmes e jogos, Brent Burley, 2012
- [IES] Compreendendo a função de máscara-máscara em BRDFs baseados em microfacet, no Journal of Computer Graphics Techniques vol. 3, nº 2, Eric Heitz, 2014
- [PBR] Iluminação difusa de PBR para micro-superfícies GGX + Smith, na GDC2017, Earl Hammon Jr., 2017