Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

WSPBR.pptx

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 19 Publicité

Plus De Contenu Connexe

Plus récents (20)

Publicité

WSPBR.pptx

  1. 1. Physically Based Rendering Anleitung: https://uni-koeln.sciebo.de/s/T7umfZ7lm8Nkg26 Programme und Dateien https://uni-koeln.sciebo.de/s/nmalRDBGL37KLPn
  2. 2. Computergrafik: Lokale Beleuchtung  Blinn - Phong Ambient + Diffuse + Spekulär Phong Blinn 02 21.10.2021
  3. 3. Blinn - Phong vs PBR 03 21.10.2021 Blinn - Phong PBR
  4. 4.  Lichtstrahl trifft auf eine Oberfläche: Aufspaltung in einen gebrochenen (refraction) und einen reflektierten Teil  Reflektierte Teil: Tritt nicht in die Oberfläche ein, wird direkt zurückgeworfen => spiegelndes Licht  Gebrochene Teil: Licht, welches in die Oberfläche eindringt und absorbiert wird => diffuses Licht.  Annahme: Alles gebrochene Licht wird in sehr kleinem Einflussbereich absorbiert oder gestreut Physikalisch basiertes Rendering 04 21.10.2021
  5. 5. Theorie der Mikrofacetten  mikroskopische Ebene: Fläche bestehen aus winzig kleine perfekt reflektierende Spiegeln => Mikrofacetten  Rauheit der Oberfläche  Ausrichtung der Spiegel  raue Oberflächen => breite Streuung der Lichtstrahlen  Glatte Oberfläche => Mehr Lichtstrahlen werden in die gleiche Richtung reflektiert => Schärfere Spiegelung raue Oberfläche glatte Oberfläche 05 21.10.2021
  6. 6.  fr 𝑝, 𝑙, 𝑣 :Anteil des Lichts, der aus Richtung l in Richtung v an bestimmten Oberflächenpunkt reflektiert wird Die bidirektionale Reflektanzverteilungsfunktion BRDF l v n BRDF = ideal diffuse + ideal spiegelnd + unvollkommen spiegelnd 06 21.10.2021
  7. 7. Cook Torrance BRDF: Spiegelnder Teil fcook−torrance = 𝐷𝐹𝐺 4(𝑣 ⋅ 𝑛)(𝑙 ⋅ 𝑛)  Basis: Mikrofacettentheorie  NDF D: approximiert Menge an Mikrofacetten, welche je nach Rauheit in Richtung des Halfway-Vektors ausgerichtet sind  Fresnel Gleichung F: Beschreibt Anteil der Flächenreflektion für verschiedene Winkel  Geomtriefunktion G: Beschreibt Selbstverschattung der Microfactetten  Verschiedene Versionen abhängig vom Ziel (Effizienz / Realismus) 07 21.10.2021
  8. 8. Normal Distribution Function (NDF): Trowbridge-Reitz GGX NDFGGXTR(n,h,α) = α2 𝜋( 𝑛 ⋅ ℎ 2 α2 − 1 + 1)2  h : Halfway-Vektor der Mikrofacette  α : Maß für Rauheit der Oberfläche  Geringe Rauheit (glatte Oberfläche) => hohe Konzentration an Mikrofacetten in Richtung h ausgerichtet  Hohe Rauheit => Mikrofacetten zufällig ausgerichet 08 21.10.2021
  9. 9. Fresnel Gleichung F 𝐹𝑆𝑐ℎ𝑙𝑖𝑐𝑘(ℎ, 𝑣, 𝐹0) = 𝐹0 + (1-F0)(1- (h ⋅ v))5  Beschreibt den Anteil des reflektierten Lichts zum gebrochenen Licht abhängig von der Blickrichtung zur Oberfläche  Reflektionsanteil und Energie- erhaltung liefern Anteil gebrochenen Lichts aus verbleibender Energie 𝐹0 : Basisreflektivität der Oberfläche 09 21.10.2021
  10. 10. Geometriefunktion G GSchlickGGX(n, v, k) = 𝑛 ⋅ v 𝑛 ⋅ v 1−k + 𝑘 𝑘 = 𝛼2 2 Approximiert statistisch den relativen Flächenanteil, deren Mikrofacetten einander überschatten oder Lichtstrahlen verdecken Einbeziehung von Blick- + Lichtrichtung: G(n, v, k) = G(n, v, k) ⋅ G(n, l, k) 10 21.10.2021
  11. 11. Testen / Ausprobieren 11 21.10.2021 Entwickeln eigener Code Fragmente mittels GLSL Sie benötigen einen Windows 10 PC und einen Texteditor mit Zeilenanzeige oder Visual Studio 1. Bitte laden Sie die Datei PBR.zip von folgendem Link: https://uni-koeln.sciebo.de/s/nmalRDBGL37KLPn 2. Bitte entpacken Sie die Datei PBR.zip 3. Bitte wechseln Sie in das Verzeichnis PBRWorkshop 4. Bitte starten Sie das Programm PBR.exe
  12. 12. Testen / Ausprobieren 11 21.10.2021 Bedienung: Translation mit den Tasten <w>, <a>, <s> und <d> Rotation mit der Maus Beenden mit <ESC>
  13. 13. Entwickeln mittels GLSL 11 21.10.2021  Vertex Shader , Fragment Shader  Java/C++ Syntax  Datentypen:  bool, int, float, double, …  vec2, vec3, vec4  mat2, mat3, mat4, mat2x3, mat3x4  in <varType> <varName> Hereinkommende Daten  out <varType> <varName> Zu schreibende Daten  Operatoren +,-, *, …  vec3 a = vec3(1.0, 0.0, 0.0), b = vec3(0.0, 1.0, 0.0), c;  c = a * b; ergibt c = vec3(a.x*b.x, a.y*b.y, a.z*b.z);
  14. 14. Implementierung 12 21.10.2021 Build-In Functions float sin(float radians) // Trigonometrische Funktion(en) vec4 cos(vec4 radians) // Kosinus komponentenweise float pow(float x, float y) // berechnet x^y float sqrt(float x) // Berechnet Wurzel aus x float length(vec4 x) // Betrag eines Vektors float dot(vec4 a, vec4 b) // Skalarprodukt aus a und b vec4 normalize(vec4 x) // Liefert normalisierten Vektor vec3 cross(vec3 a, vec3 b) // Kreuzprodukt a x b (nur für vec3) mat4 inverse(mat4 a) // Inverse Matrix, ab GLSL 1.50 / GL 3.2
  15. 15. float GeometrySchlickGGX (float NdotV, float roughness) { float r = (roughness + 1.0); float k = (r*r) / 8.0; // bitte den fehlenden Code einfügen return // bitte den fehlenden Code einfügen } GSchlickGGX(n, v, k) = 𝑛 ⋅ v 𝑛 ⋅ v 1−k + 𝑘 Implementierung mit GLSL 13 21.10.2021 Anleitung unter PBRWorkshopAnleitungBreakout.pdf Datei brdf.fs, Zeile 47 Datei pbr.fs, Zeile 38
  16. 16. Testen / Ausprobieren 11 21.10.2021 Mittels Shadertoy  https://www.shadertoy.com  iPhone: App Store laden und installieren  Innerhalb der ST-App nach PBR suchen Physically Based Shading (knarkowicz)  Im Shadertoy Menu  Umschalten zwischen Metall und Dielektrikum  Slider zum Verändern der Rauheit  Auswahl zwischen den Funktionen  Normal Distribution Funktion Dist  Fresnel Fres  Geometrie Geom
  17. 17. In Eigenregie:  VS- Projektmappe PBR.sln im Verzeichnis PBRBuild  Das Projekt 6.pbr.2.2.2_ibl_specular-textured ausprobieren  Äpfel und Kugeln durch eigene (animierte) Objekte ersetzen  Cubemap durch eigene HDR-Bilder ersetzen Ergebnis 17 21.10.2021
  18. 18.  PBR ermöglicht Steigerung des Realismus  Abstraktion: Mikrofacettenmodell  Streuung, Spiegelung  Überschattung, Verdeckung  Implementierung in Shader-Code  Verfügbar in zahlreichen Anwendungen  3D Visualisierung  Game Engines  Modellier- und Animationswerkzeuge Fazit 21.10.2021 01
  19. 19.  Matt Pharr and Greg Humphreys: “Physically Based Rendering from Theory to Implementation“ https://www.pbrt.org/  Akenine-Möller, Tomas, Eric Haines, and Naty Hoffman: „Real-Time Rendering“ http://realtimerendering.com/  https://learnopengl.com  https://www.shadertoy.com  SIGGRAPH & EUROGRAPHICS  Course Notes  Papers Literatur 18 21.10.2021

Notes de l'éditeur

  • Die Mikrofacetten Approximation beinhaltet eine Form der Energieerhaltung:
    Die Energie ausgehenden Lichts darf niemals die Energie des eingehenden Lichts übersteigen. Zu diesem Zweck wird klar zwischen diffusen und spiegelnden Licht unterschieden.
    Trifft ein Lichtstrahl auf eine Oberfläche, so wird dieser in einen gebrochenen (refraction) und einen reflektierten Teil aufgespalten. Der reflektierte Teil ist das Licht, welches direkt zurückgeworfen wird, nicht in die Oberfläche eintritt und welches wir als spiegelndes Licht kennen. Der gebrochene Teil ist das verbleibende Licht, welches in die Oberfläche eindringt und absorbiert wird – bekannt als diffuses Licht.

    Jedes Material besteht aus winzig kleinen Partikeln mit denen das Licht kollidiert und Energie verliert, die in Wärme umgewandelt wird. Lichtstrahlen, die wieder aus der Oberfläche auftauchen tragen zum diffusen Farbanteil der Fläche bei.

    In PBR wird die vereinfachende Annahme getroffen, dass alles gebrochenes Licht in einem sehr kleinem Einflussbereich absorbiert oder gestreut wird. Dabei werden Effekte, wie das Austreten von gestreuten Licht an anderer Stelle (Subsurface Scattering) ignoriert
  • Alle PBR Techniken basieren auf der Theorie der Mikrofacetten.
    Diese Theorie besagt, dass auf mikroskopischer Ebene jede Fläche durch winzig kleine perfekt reflektierende Spiegeln genannt Mikrofacetten besteht.
    Je nach Rauheit der Oberfläche unterscheidet sich die Ausrichtung diese Spiegel:
    Je rauer eine Oberfläche ist, desto chaotischer sind die Mikrofacetten auf der Oberfläche angeordnet.
    Auf rauen Oberflächen steigt damit für eingehende Lichtstrahlen die Wahrschein-lichkeit der Streuung in völlig unterschiedliche Richtungen, was sich in einer breiteren Streuung der spiegelnden Reflektion auswirkt.
    Im Gegensatz dazu ist auf einer glatten Oberfläche die Wahrscheinlichkeit größer, dass die Lichtstrahlen in die gleiche Richtung reflektiert werden, womit wir kleinere und schärfere Spiegelungen erhalten.

×