¿Por qué el medio vector no se usa en cálculos difusos de BRDF Fresnel?

8

Actualmente estoy trabajando con la Presentación de iluminación difusa PBR de Earl Hammon Jr para microsuperficies GGX + Smith (ahora mencionado como [PBR, p.XYZ]) y he leído (entre otros) el Sombreado físico de Brent Burley en Disney (ahora mencionado como [DIS , p. XYZ] para obtener un buen componente BRDF difuso Estoy atascado en combinar los dos con el término Fresnel.

Breve introducción para vectores y ángulos a medida que los uso:

  • ωi es el vector de luz
  • ωo es el vector de vista
  • ωn es la macro geometría normal

  • θi es el ángulo entre yωiωn

  • θo es el ángulo entre yωoωn
  • θh es el ángulo entre yωnωh
  • αhi es el ángulo entre yωiωh
  • αho es el ángulo entre y (esta distinción es para aclarar)ωoωh
  • αh es cualquiera de los ángulos , , ya que son igualesαhiαho

ahora dado que es el término BRDF del componente especular sin el factor fresnel y consecuencia el término del componente difuso sin el material fresnel, el factor fresnel se escribe como . [PBR, p.105] menciona que la luz difusa se transmite dos veces, una adentro y otra afuera. Por lo tanto, el componente de Fresnel tiene que multiplicarse dos veces. [PBR, p. 106] continúa diciendo que las leyes de Fresnel son symmetrix, lo que significa que entrar y salir es independiente de la dirección (es decir, no importa que una vez que entremos al material desde el aire y una vez que salgamos al aire). Ahora supongo que (para es Fresnel para entrar y es para Fresnel que deja el material) para usarrsrdF(angle)F1F2

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

F1 y son la misma función, y y son el mismo ángulo, por lo tantoF2αhiαho

(1F(αh))2

Esto llevaría a un brdf :f

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

Pero tanto [PBR, p.113] como [DIS, p.14] usan

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

al igual que el documento original para usar este tipo de cálculo por Shirely et al. 1997. Simplemente no entiendo esto, ¿por qué cambian de los ángulos de microfaceta a los ángulos macro? Los ángulos de microfaceta conducen a una conversación energética.

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

debería 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)

y así cumplir con los requisitos de BRDF. El ángulo de microfaceta se usa para el término especular, por lo tanto, es lo más sensato interpolar entre componente especular y difuso (ignorando el hecho de dos transmisiones para este argumento). En cambio, [PBR, p.113] y [DIS, p. 14] pon el en un cálculo de rugosidad y deja eso bastante inexplicable.θh

Además de mi confusión sobre esto, en las diapositivas explicativas [PBR, p.187] se usa el producto punto (y por lo tanto el ) y más adelante [PBR, p. 191] también el producto punto ( ).ωhωoαhoωhωiαhi

Tara
fuente

Respuestas:

5

Finalmente descubrí una falla en mi argumentación para usar el medio vector para la parte difusa.

tl; versión dr:

αhi y no son iguales, esta suposición solo funciona para la parte especular. Por lo tanto, no se da la conservación de energía.αho

Más correcto: por definición , pero no está permitido usarlos en la ecuación, debe usar las normales de microfaceta en lugar de los medios vectores. Sin embargo, la microfaceta normal y el medio vector no son generalmente iguales.αhi=αho

Versión larga:

El BRDF difuso (como el especular) es una integración sobre todas las normales de microfaceta posibles. El formulario BRDF generalizado es:

(1)

f=ΩρmDGcos(αhi)cos(αho)cos(θi)cos(θo)

donde es el comportamiento de la luz cuando alcanza una microfaceta, es la función de distribución normal, es la función de geometría y el resto es normalización [PBR, p.16-25] [HEI, p.61f.]ρmDG

Ahora para el BRDF especular, el comportamiento es la reflexión perfecta. Esto significa que solo las microfacetas donde la microfaceta normal es igual al medio vector entre la luz ( ) y la dirección de vista ( ) reflejan la luz desde la dirección de la luz hacia la dirección de la vista. Matemáticamente, esto se traduce en una función Delta de Dirac . La cantidad de luz reflejada se determina por Fresnel . Al tener en cuenta los cambios en el dominio de integración [PBR, p.31-41], esto lleva a que ( sea ​​la reacción específica especular de las microfacetas para la parte especular):ωmωhωiωoδ(ωh)Fρm,s

(2)

ρm,s=δ(ωh)F4αhiαho

Conecte esto en (1) e integre sobre cualquier , pero la función dirac delta lo hace ignorar cualquier cosa donde . Esto es lo bueno de esas funciones dirac delta, el "cancelar" la integral. Por lo tanto, vienes al conocido BRDF [PBR, p.43]ωmωmωh

(3)

fs=FDG4cos(θi)cos(θo)

y aquí puede asumir con seguridad . La parte de Fresnel hace que este sea un lado de una interpolación lineal (ya que esta es la relación de luz que se refleja de forma especular).αhi=αho

Sin embargo, en el otro lado, todavía tienes una integral y no puedes "cancelarla" con nada. Sea el ángulo entre el microfacet normal y el directorio de luz, theta_mo entre el microfacet normal y el directorio de vista (en oposición a y , que se definen específicamente para la mitad ángulo!). Eso significa 2 cosas importantes:θmiαhiαho

(4)

θmiαhi=αh=αhoθmoωmωh

y (ya que la reacción difusa de la luz al llegar a las microfacetas) depende de Fresnel, solo puede usar partes no reflejadas, pero no puede suponer que CADA microfacet difusley normal refleja toda la luz que no se reflejó especularmente (es decir, ).ρm,d(1F(αh))

Entonces, el problema ahora es que tiene un lado de esa interpolación lineal que es el BRDF especular analíticamente solucionable sin una integral. Por otro lado, tiene el factor de interpolación dentro de la integral y, por lo tanto, lo usaría para cualquier microfaceta normal. Esto ya no energía, si modela con un término lambertiano.ρm,d

Si logra sacar la parte de la integral, entonces y solo entonces puede usar el medio vector para BRDF tanto especulares como difusos, de lo contrario, debe manejarlo de manera diferente.1F

Si aún desea utilizar el medio vector para la "Interpolación Fresnel", entonces necesita normalizar.

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

Con siendo elegido, de modo quek

rdk=1

Tenga en cuenta que todavía incluye una integral sobre todas las posibles normales de microfacet.rd

Usando yθiθo

Creo que debería agregar una oración sobre los ángulos realmente usados, porque la pregunta que planteé originalmente no era solo "por qué no " sino también "por qué y ". Entonces, para el pueblo que se pregunta si esto es correcto: No. Es solo una aproximación.αhθiθo

En cambio, podemos modificar el término mate para que sea una aproximación simple que capture el importante comportamiento angular cualitativo [...].

[SHI, p.46]

Discusión sobre por qué esto es tan difícil de entender

Ahora [DIS, p.14] y [PBR, p.100,184] citaron [SHI] y [ASH] en esto, donde [ASH] usa [SHI], por lo que se reduce al modelo de este último. Y dado que [DIS] y [PBR] son ​​publicaciones no científicas (aunque bastante bien pensadas), no puedo culparlas demasiado, pero en realidad, una mejor forma de citar documentos o una explicación adicional podría haber ayudado y ahorrado Aproximadamente 2 semanas pensando, leyendo y casi comenzando un artículo sobre por qué todos (supuestamente) están equivocados.

Además, ninguno de ellos explica realmente sus aproximaciones difusas, [PBR, p.193] solo menciona probar diferentes funciones hasta que vio una que le gustaba.

Además, [SHI, p.46] realmente citó a [SCH, p.10f.] Que utilizó la interpolación lineal entre y . Sin embargo, [SHI, p.46] lo citó incorrectamente, dijeron que usó y . Suponiendo esto, tienen razón al pensar que [SCH] no energía, pero esto me lleva a creer que y lo serían. Su error podría haber venido de ellos usando ellos mismos, no puedo decir.F(αh)1F(αh)F(θi)1F(αh)F(αh)1F(αh)F(θi)

Literatura

  • [ASH] Un modelo BRDF de fong anisotrópico, en Journal of Graphics Tools Vol. 5, N ° 2, Michael Ashikhmin y Peter Shirley, 2000
  • [SCH] Un modelo BRDF poco costoso para renderizado basado en la física, en Computer Graphics Forum vol. 13, N ° 3, Christophe Schlick, 1994
  • [SHI] A Practitioners 'Assessment of Light Reflection Models, en la Quinta Conferencia del Pacífico sobre gráficos y aplicaciones de computadora, 1997. Actas, Peter Shirley, Helen Hu, Brian Smits y Eric Lafortune, 1997
  • [DIS] Sombreado con base física en Disney, en el curso SIGGRAPH 2012: Sombreado con base física en la producción de películas y juegos, Brent Burley, 2012
  • [HEI] Comprender la función de enmascaramiento y sombreado en BRDF basados ​​en microfacet, en Journal of Computer Graphics Techniques vol. 3, N ° 2, Eric Heitz, 2014
  • [PBR] Iluminación difusa PBR para micro superficies de GGX + Smith, en GDC2017, Earl Hammon Jr., 2017
Tara
fuente
1

En realidad, estamos revisando ese documento para nuestro propio modelo GGX BRDF metallic & edge_tint, y hemos detectado un problema crucial.

Hammon todavía usa la aproximación de Fresnel Schlick para su trazado de rayos de campo de microfaceta que en realidad solo funciona para dieléctricos (y conductores pero con un truco).

Pero hicimos todo lo posible en Fresnel real (descartando la polarización) y hacemos el cálculo completo, lo que nos permite establecer cuando no deseamos especular en una superficie.F0=0

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

El problema es que Schlick se desmorona para , por lo que el GGX difuso sería demasiado oscuro para esos materiales (porque todavía supone una baja transmitividad en ángulos de mira).F0<0.02

Por otro lado, algo que me apesta es que DIS y PBR usan que es una aproximación de suma dividida (fresnel con faceta promedio normal) en lugar de Cálculo adecuado que sería el promedio ponderado de fresnel con todas las facetas normales posibles, ponderado por supuesto por la función de distribución normal.(1F(θi))(1F(θo))

En PBR, el smoothcomponente podría permanecer como está (excepto que el Schlick necesitaría ser reemplazado por Fresnel apropiado) pero me pregunto qué roughy qué multitendría que ser con un .F0<0.02

Supongo que eso roughprobablemente cambiaría muy poco, pero lo suficiente como para marcar la diferencia (ya que con GGX NDF es una constante) si . α=1F0=0

Espero que podamos enviarle un correo electrónico a E. Hammon y ver si la simulación se puede volver a ejecutar para Fresnel completo y el rango extendido de IoR (F0), 1.0 (0.0) inclusive.

EDITAR: Seb. Lagarde también tiene la misma preocupación que yo sobre el uso de Fresnel http://openproblems.realtimerendering.com/s2017/02-PhysicallyBasedMaterialWhereAreWe.pdf

Devsh
fuente