Confondu avec les implémentations PBR


13

Je découvre le monde merveilleux des mathématiques et je frappe un énorme mur avec PBR et le nommage, j'ai donc quelques questions: Pour autant que je sache, BRDF décrit comment un matériau réagit à la lumière (lumière directe entrante et réflexions). Mais dans "Cook-Torrance", je ne vois rien sur les reflets, je ne comprends pas comment je l'intègre donc je ne reçois qu'une lumière diffuse et des reflets.

J'ai lu beaucoup de choses sur différents "termes diffus" comme "Oren-Nayar", fait-il partie de Cook-Torrance comme un "D" différent dans le nominateur DFG? la remplace-t-elle sans calculs spéculaires?

J'ai lu beaucoup de choses sur "GGX" dans ma formation d'artiste de mélangeur. Je pensais que c'était quelque chose qui faisait un reflet flou mais il semble que j'avais tort et maintenant je trouve ce terme GGX dans beaucoup de situations différentes comme dans les micro-facettes normales distribution dans ce tutoriel

Donc, en bref, la question est: comment "Oren-Nayar" et "GGX" et "Cook-Torrance" sont liés les uns aux autres (s'ils le sont) et comment puis-je intégrer la "réflexion vec3" dans cet algorithme?

Comme je l'ai déjà dit, je suis un débutant en mathématiques, donc si votre réponse est "mathématique", veuillez écrire une version glsl / hlsl de vos équations, c'est beaucoup plus facile à comprendre pour moi, donc une équivalence m'aidera beaucoup

PS: Je comprends que ma question est floue mais elle est aussi floue que ma compréhension du sujet.


1
Quelque chose qui pourrait vous aider est que "spéculaire" signifie "comme un miroir". Ainsi, lorsque l'on parle de réflexions spéculaires et diffuses, spéculaire signifie miroir comme des réflexions, ce que les gens appellent normalement la réflexion. Diffuse, ce sont juste des «choses qui s'éclairent». Ils réfléchissent également la lumière, mais ils se reflètent dans de nombreuses directions différentes, donc le résultat n'est pas quelque chose dans lequel vous pouvez reconnaître une image. Il y a une échelle entre la réflexion spéculaire et diffuse dans des objets réels, et cela fait partie de ce que le paramètre de "rugosité" des contrôles PBR.
Alan Wolfe

Vous pouvez essayer de lire le document original de Cook-Torrance: inst.cs.berkeley.edu/~cs294-13/fa09/lectures/cookpaper.pdf - assurez-vous de vérifier les références répertoriées à la fin aussi, si possible (la plupart sont disponible en ligne). Cela prendra un certain temps, mais c'est un moyen sûr de comprendre "en profondeur" ce qui se passe.
essuyez le

Réponses:


12

DFG fait son apparition dans la famille des BRDF à base de micro-facettes. C'est simplement le produit de trois termes:

  • D: La distribution de microfacet.
  • F: le coefficient de Fresnel.
  • G: L'atténuation géométrique entre les microfacets.

Quand quelqu'un dit Cook-Torrance, cela signifie généralement un microfacet BRDF où la distribution (D) est Beckmann, ce qui est, je pense, le sujet du papier Cook-Torrance original.

GGX est vraiment juste une distribution différente (terme D). GTR en est un autre. Les noms sont souvent utilisés comme raccourci pour désigner un BRDF utilisant cette distribution.

Maintenant, tous ces éléments supposent une réflexion spéculaire (ou réfraction) sur les microfacets, d'où le terme de Fresnel. Si vous prenez une idée similaire mais utilisez des microfacets diffus (lambertiens), vous obtenez le BRDF Oren-Nayar. Je pense que l'on est basé sur une distribution gaussienne des microfacets mais je ne connais pas les détails.


ok, c'est un peu plus clair mais ça n'explique toujours pas ce que je fais avec ma "vec3 réflexionColour" que je reçois en relançant un rayon dans raytracing / marching ou en utilisant SSR / cubemap. C'est comme les équations qui ne prennent en compte qu'un point / projecteur mais aucune idée pour les lumières de zone ou les réflexions. Il semble également que le "spéculaire" soit uniquement lié au "point blanc" au lieu de la réflexion à cause de ce qui n'a pas de sens = /
nouveau le

@newin Dans un modèle PBR, spéculaire et réflexion sont des noms différents pour la même chose. C'est un point culminant spéculaire lorsque le rayon frappe une lumière, un reflet lorsqu'il frappe un autre objet (ou un environnement). Quant à votre couleur de réflexion, cela dépend de la façon dont le rayon est généré. Vous échantillonnez un éclairage direct? Lumières de zone? Intégration d'une carte BRDF et d'une carte d'environnement? Essayez de lire Progressive Path Tracing avec Explicit Light Sampling , il y a une longue réponse qui pourrait clarifier certaines choses sur le processus.
Olivier

Donc, si je comprends bien que "vec3 réflexionColour" doit être traité comme une lumière et si je veux faire un maillage émettant de la lumière, je dois simplement mettre une valeur> 1 dans l'albédo et c'est tout? (J'essaie d'intégrer PBR dans différents scénarios, le premier est un raymarcher où je veux des mailles émettant de la lumière, l'autre est un moteur de jeu qui utilise SSR et utilisera probablement des cubemaps)
nouveau dans

La lumière émise par @newin est juste ajoutée par-dessus tout le reste. Cela n'a rien à voir avec les BRDF. Si votre maille n'émet que de la lumière, vous n'avez même pas besoin d'en retracer d'autres. Un gros albédo amplifiera la lumière (physiquement mal), pas la créera.
Olivier
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.