-
Notifications
You must be signed in to change notification settings - Fork 0
/
vortrag.pin
174 lines (124 loc) · 3.85 KB
/
vortrag.pin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#!/usr/bin/env pinpoint
# Standarteinstellungen
[center]
[font=Ubuntu Bold 100px]
[shading-opacity=0.35]
[transition=fade]
[white][text-color=white]
[fill]
[text-align=center]
[duration=50.0]
--- [bg-1.jpg][top][command=./demo-0.sh][transition=text-slide-up]
Sphere-Tracing/Ray-Marching in C++
<small><sup>C++ User-Treffen in Aachen, 17. Mai 2018</sup></small>
<small><sup>Mirco Müller, [email protected]</sup></small>
--- [bg-2.jpg]
Was Euch erwartet
--- [bg-3.jpg][font=Ubuntu Normal 65px][text-align=left]
① Motivation
② Geschichte
③ Grundlagen in 2D
④ Schritt nach 3D
⑤ Kernalgorithmus & Objektdefinitionen
⑥ Beleuchtungsmodelle
⑦ Licht & Schatten
⑧ Reflexionen & Boolsche Operationen
⑨ Landschaften
⑩ Zusammenfassung, Aussicht auf Teil 2 & Fragen
--- [bg-4.jpg]
Motivation
# * Vorteile bzw. Abgrenzung zu Polygongrafik
# * Analogie: Raymarching : Polygongrafik -> Vektorgrafik : Rastergrafik
--- [bg-5.jpg]
Geschichte
# * Einführung von Sphere Tracing durch John C. Hart 1996 Paper
--- [bg-6.jpg]
Grundlagen in 2D
--- [diagram-2-raymarching-2d.png]
# * Signed Distance Functions
# * Teilmenge impliziter Funktionen
# * 2D-only C++-Beispiel raymarcher-nongl
--- [bg-6.jpg][command=./demo-1.sh]
Demo
--- [bg-7.jpg]
Schritt nach 3D
--- [diagram-3-view-ray-creation.png]
--- [bg-8.jpg]
Raymarching-Algorithmus
--- [diagram-4-raymarching-in-3d.png]
--- [bg-9.jpg]
Beispiele für Objekte
--- [diagram-11-objects.png]
--- [bg-9.jpg][command=./demo-2.sh]
Demo
--- [bg-10.jpg]
Beleuchtungsmodelle
--- [diagram-5-lambert-shading.png]
# * Johann Heinrich Lambert, schweizer Mathematiker , 1726 - 1777
# * ok, aber nicht wirklich komplett in physikalischer Realität verankert
--- [diagram-6-blinn-phong-shading.png]
# * Bùi Tường Phong, Jim Blinn, ca. 1975-1977
# * state-of-the-art ist aber PBR
# * PBR zu komplex -> eigener Vortrag
# * trotzdem zumindest demonstrieren
--- [bg-11.jpg]
Mehr Schatten als Licht
--- [diagram-7-shadows.png]
--- [bg-12.jpg]
Spieglein, Spieglein an der Wand
--- [diagram-8-reflection.png]
--- [bg-12.jpg][command=./demo-3.sh]
Demo
--- [bg-13.jpg]
Boolsche Operationen
--- [diagram-9-booleans.png]
--- [bg-13.jpg][command=./demo-4.sh]
Demo
--- [bg-14.jpg]
Von der Ebene zur Landschaft
--- [diagram-10-terrain.png]
--- [bg-14.jpg][command=./demo-5.sh]
Demo
--- [bg-15.jpg]
Zusammenfassung
--- [bg-16.jpg][font=Ubuntu Normal 65px][text-align=left]
• Geschichte - 1996 von John C. Hart eingeführt
• Grundlagen in 2D - Signed Distance Functions
• Schritt nach 3D - matrizenlose 3D-Projektion
• Raymarching-Algorithmus
• Beleuchtungsmodelle - Lambert, Blinn-Phong, PBR
• wie man an Schatten kommt
• Reflexionen und Boolsche Operationen
• Erzeugung von Landschaften
• jede Menge Demos
--- [bg-17.jpg]
Aussicht auf Teil 2
# * mehr über Operatoren
# * Krümmung/Faltung/Wiederholung vom Raum
# * volumetrische Effekte: z.B. Wolken
# * Kontaktschatten/Ambient Occlusion
# * Tiefenunschärfe/Depth-of-field
# * Überstrahlung/Bloom
# * AA-Strategien
# * Bau von sehr komplexeren Objekten
# * bessere Materialien (Holz, Leder, Marmor, Blech, Plastik...)
# * spezielle Wünsche?
--- [bg-18.jpg]
Gibt's Fragen?
--- [bg-19.jpg]
Besten Dank für
Eure Aufmerksamkeit!
--- [bg-1.jpg][font=Ubuntu Normal 65px][text-align=left]
① Vortrag, PDF, Sourcen
https://github.com/MacSlow/raymarching-vortrag
② Leseempfehlung: John C. Hart Paper von 1996
"a geometric method for the antialiased ray tracing of implicit surfaces"
③ Leseempfehlung: iq's Homepage
http://www.iquilezles.org
④ NVScene 2015 Vortrag von cupe
https://www.youtube.com/watch?v=s8nFqwOho-s
⑤ Leseempfehlung: Keinert et. al. Paper von 2014
"Enhanced Sphere Tracing"
http://erleuchtet.org/~cupe/permanent/enhanced_sphere_tracing.pdf
⑥ Leseempfehlung: Pharr, Jakob, Humphreys - Buch von 2016
"Physically Based Rendering - From Theory to Implementation"