Terme spéculaire correct du modèle Cook-Torrance / Torrance-Sparrow


13

Depuis un certain temps, je fais des recherches sur le thème du rendu physique. Un modèle de réflexion qui est mentionné à plusieurs reprises est le modèle Cook-Torrance / Torrance-Sparrow. Il semble que dans chaque mention ou explication de ce modèle, une forme différente du terme spéculaire soit utilisée. Les versions que j'ai trouvées sont:

  1. FDGπ(NV)(NL)
  2. FDG4(NV)(NL)
  3. FDG(NV)(NL)

Laquelle est correcte et quand? Dans Physically Based Rendering: From Theory to Implementation de Matt Pharr et Greg Humphreys, le second est dérivé de manière concluante, mais dans leur article original, Cook et Torrance utilisent le premier sans aucune explication détaillée.

Réponses:


11

Je ferais confiance à Pharr et Humphreys à ce sujet. L'équation 2 est également en accord avec les notes de cours SIGGRAPH Physically Based Rendering , ainsi qu'avec l'équation 20 du document de Walter et al qui a introduit la distribution GGX.

J'ai lu quelque part qu'il y a une erreur dans le document original de Cook-Torrance qui les a amenés à manquer le facteur 4 dans le dénominateur, qui a été corrigé dans les articles suivants. Je n'ai pas pu trouver de référence à cela avec une recherche rapide (si quelqu'un en connaît un, n'hésitez pas à le noter dans les commentaires).

Quant au facteur π, il peut apparaître ou non, selon les conventions. Parfois, il est pris en compte dans la fonction de distribution normale D.Par exemple, si vous regardez dans la section 5.2 de Walter et all GGX paper où ils donnent les équations de plusieurs fonctions D, vous pouvez voir qu'elles ont toutes un π dans le dénominateur. Notez que cela implique que le BRDF lambertien devrait également avoir un π dans le dénominateur.

Dans les graphiques en temps réel, le π est souvent omis, auquel cas nous pouvons l'interpréter comme ayant été pris en compte dans les couleurs claires . Dans les deux cas, c'est bien, tant que vous êtes cohérent quant à la mise du π ou à son retrait de tous les BRDF que vous utilisez.


1

Un article plus récent (2005 au moins;)), a une notation plus concise tout en comparant plusieurs BRDF, y compris le BRDF Cook-Torrance . Leur formule n'inclut pas la division par 4.

Addy Ngan, Frédo Durand, Wojciech Matusik: Experimental Analysis of BRDF Models, Actes du Symposium Eurographics on Rendering 2005.

Page de projet , supplémentaire (Jetez un œil au supplément!)

Notez, cependant, que le BRDF Cook-Torrance n'est pas égal et n'est donc pas synonyme du BRDF Torrance-Sparrow . Ce dernier comprend votre division par 4. Un aperçu de référence intéressant peut être trouvé dans:

Rosana Montes, Carlos Ureña: An Overview of BRDF Models, Technical Report, 2012.

La même formule Cook-Torrance BRDF est également présente dans:

Philip Dutré, Kavita Bala, Philippe Bekaert: Advanced Global Illumination, 2e édition, 2006.

Edit : j'ai regardé certaines implémentations (isotropes) de F , G (ou V selon si vous factorisez le raccourcissement du dénominateur en G ) et D :

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

Ils semblent tous être utilisés (dans la littérature, dans l'industrie de l'animation et dans l'industrie du jeu) dans le format correspondant à votre deuxième option. Tous les facteurs D dans mon énumération contiennent une explicite1πα2 avec αrugosité2(Voir les équations ).

Edit 2: Une présentation récente dérivant et expliquant la division par4 au lieu de π:

Earl Hammon: éclairage diffus PBR pour les microsurfaces GGX + Smith , GDC 2017.

Pour raccourcir une longue histoire, l' option 2 est le seul terme spéculaire correct (parmi les trois options fournies).


Blinn-Phong n'utilise pas αroughness2. il a un paramètre de "rugosité" arbitraire. Égalementα à Beckmann n'est pas la même chose que la αdans GGX. À Beckmann,α[0,) et dans GGX α[0,1](bien que les deux décrivent la pente RMS).
Tare

1
@Tare Pour Blinn-Phong, vous devez utiliser une version dérivée qui dérive alpha de l'exposant spéculaire. Voir graphicrants.blogspot.be/2013/08/specular-brdf-reference.html
Matthias

1
D'accord, vous ne l'avez pas mentionné dans votre message, j'ai donc supposé que vous utilisiez le formulaire d'origine.
Tare du

0

Personnellement, j'ai utilisé l'équation 2. L'équation 3 me semble incorrecte, le facteur Pi est de normaliser la réponse lumineuse et de conserver l'énergie. Essentiellement, vous ne voulez pas que plus de lumière soit réfléchie par la surface que ce qu'elle reçoit.

L'équation 2 est une amélioration de l'équation 1 et est plus correcte pour autant que je sache. Pour plus d'informations sur l'équation 2, voir Modèles à micro - facettes pour la réfraction à travers des surfaces rugueuses par Walter et al

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.