Por que o meio vetor não é usado nos cálculos difusos de Fresnel de BRDF?


8

Atualmente, estou trabalhando com a iluminação difusa PBR da apresentação de Earl Hammon Jr para as micro-superfícies GGX + Smith (agora mencionada como [PBR, p.XYZ]) e lida (entre outras) com o sombreamento físico de Brent Burley na Disney (agora mencionado como [DIS , p. XYZ] para obter um bom componente difuso de BRDF.Eu estou preso em combinar os dois com o Termo de Fresnel.

Breve introdução para vetores e ângulos conforme eu os uso:

  • ωi é o vetor de luz
  • ωo é o vetor de exibição
  • ωn é a macro geometria normal

  • θi é o ângulo entre eωiωn

  • θo é o ângulo entre eωoωn
  • θh é o ângulo entre eωnωh
  • αhi é o ângulo entre eωiωh
  • αho é o ângulo entre e (essa distinção é para esclarecimento)ωoωh
  • αh é um dos ângulos , , pois são iguaisαhiαho

Agora, dado que é o termo BRDF do componente especular sem o fator fresnel e acordo com o termo do componente difuso sem o material fresnel, o fator fresnel é escrito como . [PBR, p.105] menciona que a luz difusa é transmitida duas vezes, uma dentro e outra fora. Assim, o componente Fresnel deve ser multiplicado duas vezes. [PBR, p. 106] continua dizendo que as leis de Fresnel são simétricas, o que significa que entrar e sair é independente da direção (isto é, não importa que uma vez que entremos no material pelo ar e uma vez que deixemos no ar). Agora eu assumiria (pois é Fresnel para entrar e é para Fresnel deixando o material) para usarrsrdF(angle)F1F2

(1F1(αhi))(1F2(αho))

F1 e são a mesma função e e são o mesmo ângulo, portantoF2αhiαho

(1F(αh))2

Isso levaria a um brdf :f

f=F(αh)rs+(1F(αh))2rd

Mas tanto [PBR, p.113] como [DIS, p.14] usam

f=F(αh)rs+(1F(θi))(1F(θo))rd

assim como o artigo original para usar esse tipo de cálculo por Shirely et al. 1997. Eu simplesmente não entendo isso, por que eles mudam dos ângulos de microfacete para os ângulos de macro? Os ângulos de microfacet levam à conversação energética

F[0,1] (1F)[0,1] (1F)2[0,1] e(1F(αh))>=(1F(αh))2)

deve ser recíproco

f(θi,θo)=F(αhi)rs+(1F(αhi))(1F(αho)rd=F(αh)rs+(1F(αh))2rd=F(αho)rs+(1F(αho))(1F(αhi))rd=f(θo,θi)

e, assim, atender aos requisitos do BRDF. O ângulo do microfacete é usado para o termo especular; portanto, é mais sensato interpolar entre o componente especular e o difuso (ignorando o fato de duas transmissões para esse argumento). Em vez disso, [PBR, p.113] e [DIS, p. 14] coloque o em um cálculo de rugosidade e deixe isso inexplicável.θh

Além da minha confusão sobre isso, nos slides de explicação [PBR, p.187], use o produto (e, portanto, o ângulo ) e, posteriormente, [PBR, p. 191] também o produto ( ).ωhωoαhoωhωiαhi

Respostas:


5

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=ΩρmDGcos(α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=FDG4cos(θ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(1F(α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.1F

Se você ainda deseja usar o meio vetor para a "Interpolação de Fresnel", precisará normalizar.

f=F(αh)rs+(1F(αh))rdk

Com sendo escolhido, de modo quek

rdk=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)1F(αh)F(θi)1F(αh)F(αh)1F(α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

1

Na verdade, estamos analisando esse artigo para o nosso próprio modelo GGX BRDF metálico e edge_tint, e descobrimos um problema crucial.

Hammon ainda está usando a aproximação de Fresnel Schlick para seu traçado de raios de campo de microfacetagem que, na realidade, só funciona para dielétricos (e condutores, mas com um hack).

Mas fomos todos ao Fresnel real (descartando a polarização) e fizemos o cálculo completo, permitindo definir quando não desejamos especular em uma superfície.F0=0

https://github.com/Crisspl/IrrlichtBAW/commit/914b50d7238fc4a30f23fc2a4ea570e467f4ab75#r34031272

O problema é que Schlick se desfaz para , portanto o difuso GGX seria muito escuro para esses materiais (porque ainda está assumindo baixa transmissividade em ângulos de visão).F0<0.02

Como um aparte, algo que me é que DIS e PBR usam que é uma aproximação de soma dividida (fresnel com faceta média normal) em vez do cálculo adequado que seria a média ponderada de fresnel com todas as facetas normais possíveis, ponderada, é claro, pela função de distribuição normal.(1F(θi))(1F(θo))

No PBR, o smoothcomponente pode permanecer como está (exceto que o Schlick precisaria ser substituído pelo Fresnel adequado), mas eu me pergunto o que roughe multiteria que ser com um .F0<0.02

Eu acho que roughprovavelmente mudaria muito pouco, mas o suficiente para fazer a diferença (já que com GGX NDF é uma constante) se . α=1F0=0

Espero que possamos enviar um email para E. Hammon e ver se a simulação pode ser executada novamente para o Fresnel completo e o intervalo estendido de IoR (F0), 1,0 (0,0) inclusive.

EDIT: Seb. Lagarde também tem a mesma preocupação que eu com o Fresnel usado http://openproblems.realtimerendering.com/s2017/02-PhysicallyBasedMaterialWhereAreWe.pdf

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.