Término especular correcto del modelo Cook-Torrance / Torrance-Sparrow

13

Durante un tiempo he estado investigando sobre el tema de la representación basada en la física. Un modelo de reflexión que se menciona una y otra vez es el modelo Cook-Torrance / Torrance-Sparrow. Parece que en cada mención o explicación de este modelo se usa una forma diferente del término especular. Las versiones que he encontrado son:

  1. Fresolπ(norteV)(norteL)
  2. Fresol4 4(norteV)(norteL)
  3. Fresol(norteV)(norteL)

¿Cuál es correcto y cuándo? En Representación basada en la física: de la teoría a la implementación por Matt Pharr y Greg Humphreys, el segundo se deriva de manera concluyente, pero en su artículo original, Cook y Torrance usan el primero sin ninguna explicación detallada.

Thordal
fuente

Respuestas:

11

Confiaría en Pharr y Humphreys en esto. La ecuación 2 también está de acuerdo con las notas del curso SIGGRAPH Physically Based Rendering , así como con la ecuación 20 en el documento de Walter et al que introdujo la distribución GGX.

Leí en alguna parte que hay un error en el documento original de Cook-Torrance que los llevó a perder el factor 4 en el denominador, que se corrigió en documentos posteriores. Sin embargo, no pude encontrar una referencia a esto con una búsqueda rápida (si alguien conoce una, no dude en anotarla en los comentarios).

En cuanto al factor de π, puede aparecer o no, según las convenciones. A veces se factoriza en la función de distribución normal D. Por ejemplo, si observa la sección 5.2 del documento de Walter et all GGX donde dan las ecuaciones para varias funciones D, puede ver que todas tienen un π en el denominador. Tenga en cuenta que esto implica que el BRDF lambertiano también debería tener un π en el denominador.

En los gráficos en tiempo real, a menudo se omite el π, en cuyo caso podemos interpretarlo como factorizado en los colores claros . De cualquier manera está bien, siempre y cuando sea coherente acerca de poner el π o dejarlo fuera de todos los BRDF que usa.

Nathan Reed
fuente
1

Un artículo más reciente (2005 al menos;)), tiene una notación más concisa al comparar múltiples BRDF, incluido el BRDF Cook-Torrance . Su fórmula no incluye la división por 4.

Addy Ngan, Frédo Durand, Wojciech Matusik: Análisis Experimental de Modelos BRDF, Actas del Simposio Eurographics sobre Rendering 2005.

Página del proyecto , suplementaria (¡Eche un vistazo a la suplementaria!)

Sin embargo, tenga en cuenta que el BRDF Cook-Torrance no es igual y, por lo tanto, no es sinónimo del BRDF Torrance-Sparrow . Este último incluye su división por 4. Se puede encontrar una visión general de referencia interesante en:

Rosana Montes, Carlos Ureña: una descripción general de los modelos BRDF, Informe técnico, 2012.

La misma fórmula Cook-Torrance BRDF también está presente en:

Philip Dutré, Kavita Bala, Philippe Bekaert: Advanced Global Illumination, 2nd Edition, 2006.

Editar : Observé algunas implementaciones (isotrópicas) de F , G (o V, dependiendo de si factoriza el escorzo en el denominador en G ) y D :

  • D : Beckmann, Ward-Duer, Blinn-Phong, Trowbridge-Reitz, alias GGX, alias GTR2, Berry, alias GTR1;
  • G | V : Implícito, Ward, Neumann, Ashikhmin-Premoze, Kelemann, Cook-Torrance, Smith GGX, Smith Schlick-GGX, Smith Beckmann, Smith Schlick-Beckmann;
  • F : Schlick, Cook-Torrance.

Todos parecen ser utilizados (en la literatura, en la industria de la animación y en la industria del juego) en el formato correspondiente a su segunda opción. Todos los factores D en mi enumeración contienen un explícito1πα2 con αaspereza2(Ver ecuaciones ).

Edición 2: una presentación reciente que deriva y explica la división por4 4 en lugar de π:

Earl Hammon: PBR Diffuse Lighting para GGX + Smith Microsurfaces , GDC 2017.

Para acortar una larga historia, la opción 2 es el único término especular correcto (de las tres opciones proporcionadas).

Matías
fuente
Blinn-Phong no utiliza αrotusolhnortemiss2. tiene un parámetro arbitrario de "rugosidad". También elα en Beckmann no es lo mismo que el αen GGX. En Beckmannα[0 0,) y en GGX α[0 0,1](aunque ambos describen la pendiente RMS).
Tara
1
@Tare Para Blinn-Phong necesitas usar una versión derivada que derive alfa del exponente especular. Ver graphicrants.blogspot.be/2013/08/specular-brdf-reference.html
Matthias
1
De acuerdo, no mencionaste eso en tu publicación, así que supuse que estabas usando el formulario original.
Tara
0

Personalmente, he usado la ecuación 2. La ecuación 3 me parece incorrecta, el factor Pi es normalizar la respuesta de la luz y conservar la energía. Esencialmente, no desea que se refleje más luz de la superficie de la que recibe.

La ecuación 2 es una mejora de la ecuación 1 y es más correcta hasta donde yo sé. Para obtener más información sobre la ecuación 2, consulte Modelos de microfacetas para la refracción a través de superficies rugosas de Walter et al.

Fred Garnier
fuente