SlideShare una empresa de Scribd logo
1 de 19
Physically Based Rendering
Anleitung:
https://uni-koeln.sciebo.de/s/T7umfZ7lm8Nkg26
Programme und Dateien
https://uni-koeln.sciebo.de/s/nmalRDBGL37KLPn
Computergrafik: Lokale Beleuchtung
 Blinn - Phong
Ambient + Diffuse + Spekulär
Phong Blinn
02
21.10.2021
Blinn - Phong vs PBR
03
21.10.2021
Blinn - Phong PBR
 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
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
 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
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
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
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
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
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
Testen / Ausprobieren
11
21.10.2021
Bedienung:
Translation mit den Tasten <w>, <a>, <s> und <d>
Rotation mit der Maus
Beenden mit <ESC>
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);
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
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
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
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
 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
 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

Más contenido relacionado

Destacado

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Destacado (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

WSPBR.pptx

  • 2. Computergrafik: Lokale Beleuchtung  Blinn - Phong Ambient + Diffuse + Spekulär Phong Blinn 02 21.10.2021
  • 3. Blinn - Phong vs PBR 03 21.10.2021 Blinn - Phong PBR
  • 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. 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.  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. 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. 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. 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. 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. 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. Testen / Ausprobieren 11 21.10.2021 Bedienung: Translation mit den Tasten <w>, <a>, <s> und <d> Rotation mit der Maus Beenden mit <ESC>
  • 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. 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. 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. 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. 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.  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.  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

Notas del editor

  1. 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
  2. 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.