""“"“"S§7n: ’c»het—isc= :he4HLanschaften

fl""""“‘“'--'-I-. .-—. ... .;; ... ... ... ..
Darstellung

- Landschaft als Héhenfunktion
= > keine iiberhéingenden Kanten

/ /A/ 

- Quantisiert nach kartesischem Gitt...
Nicht ganz ein Bild

- Ubliche Farbtiefe Von Bildem:  8 bit =  256 Werte
Nicht ganz ein Bild

- Ubliche Farbtiefe Von Bildem:  8 bit =  256 Werte

TV

- Verursacht immer Stufen entlang flacher Héi...
Prozedurale Landschaften

Landschaft aus wenigen Parametern synthetisieren: 

- Kein Speicheraufwand
- Beliebig riesige La...
Perlin Noise

Erfunden Von Ken Perlin
fiir Tron (1982)

Ieder Pixel unabhéingig
synthetisierbar
. ',> -1-
’ I‘-. 
‘-- dd-‘__‘_

Perlin Noise:  How To

, .. . 

° + +

Summe aus mehreren Oktaven
Perlin Noise:  Eine Oktave

- Gitter bestimmter Maschenweite fiber die Fléiche legen
- Zufallswerte an den Gitterpunkten be...
Perlin Noise:  3D

Anstatt die vier 2D Nachbars-Gitterpunkte zu betrachten, 
betrachten wir die acht 3D Nachbarn. 

Ohne V...
Perlin Noise:  Look 8: Feel
Alternative:  Voronoi Fields
Voronoi Fields:  How To

Eine Menge Zentroiden Zi 0
fiber die Flache Verstreuen dl

Fiir jeden Punkt die drei
Abstande duh...
Illustration ’.
Best of Both Worlds

Voronoi Felder und Perlin Noise lassen sich kombinieren

Z z

perlin 1 6 P

,  , ,  perhn 2
/  '

Z P...
Erosion:  Vorher
Erosion:  Nachher

‘
‘
I I’
I I
;  I K
I
“ I
,  .
I
I
I ,  91/

H
Erosion:  Vorher

 

/2 
/  vi’
/  . , -0
/  I C R
/  ‘ 4
/ 
9 A,  " ’
v ' 
/  L “'
Erosion:  Nachher

 

,  i I ’ 1’
 ' ‘ ’ 3', ‘-1"’: 
/  ’ D’? !  V ’
,  f H 3‘; -;; ‘ ~
,2‘ x C_
.  6 ‘V O ‘N .  T
/  , LT...
Erosion:  How To

Beschrieben in: 
Fast Hydraulic Erosion Simulation and Visualization on GPU
Von Xing Mei,  Philippe Deca...
Erosion:  Daten

Folgende Werte werden pro Pixel verwaltet: 

- Bodenhiihe

- Wasserspiegel

— Sedimentkonzentration

— Ab...
Sflil water sediment "OW
Ram / /
mwater
FI0«x/ —/—"'Z””Z

  

 ilnw :  1:’, 

  
 
  

f I

Er0Si0n-—/ --*/ 
 eniment'
_, /...
80“ water sediment HOW

Ram Wasserspiegel wird erhoht
mwater

FI0«x/ —/—"'Z””Z

    

 

L/ water" flow‘ :  1 : ' , 
_/  / ...
L/ I/lwater

     

Rain

flow‘

     
  
     

Ilfllllliilv

Tra nsport
d - Water Height

7L

b - Terrain Height

Evaporati
S0“ W818!‘ sediment HOW

   

1 .  I .  v
Abhéingig Von Flussgeschwindigkeit und
Bodenschiefe wird Material abgetragen
ode...
I water SBIIIIIIBIII HOW

. - 1 / 
SLd11‘I1L1‘1t , 

von hier

 

Transport Gelostes Material wird in Abhéingigkeit

 

Vo...
Sflil water sediment "OW

Rain
Flow

 floW velocilv

Erosion¥—-2 /  '
 edimenr
1%

Transport / '

Sflllilllfllll

mwater
Erosion:  Speicher

Wirkung der Erosion auf einen Punkt
héingt Von dessen Umgebung ab. 

= >
Punkte nicht léinger isoliert...
Rendering

 

Grosse Datenmenge:  unbedingt auf der GPU1agern!
Rendering:  Level of Detail (LOD)

Punkte konnen weggelassen werden,  falls: 

1.) sie weit genug entfernt sind
2.) sie ih...
LOD:  Roam (Real-Time Optimal
Adaptive Mapping),  1997

 

Dreiecke werden vor dem Beobachter gespalten, 
und hinter ihm w...
LOD:  CLOD (chunked LOD),  2002

Overview '_'. '.'. ‘.'. +E_'_': 
--------- --.5"; 
/' ‘: -T‘'_
_. ..x—» E . 
  Child node...
LOD:  CLOD (chunked LOD),  2002
EEEEEBEEH. 
H7ArflEEVJNHE: .:  ,3
Vertex Pushing vs.  Fill Rate

 

Anz.  Dreiecke

Anzahl gerasterter Dreiecke beeinflusst nur
den ersten Teil der Grafik-Pi...
Shading

Idealerweise unterschiedliche Materialien
und nur ein rendering pass. 

Materialien sollen ineinander hineinfliess...
Material
Rendering

 

 

M.  u. ;
A) = 
‘ * .  ‘xl ‘

N 
i
2 .  I ’ >2
‘ . 

-
. 
~.  ' A.  I ~

 

'  ’—, -  2- ~i '-, "“i. ¢‘3,‘...
Material Offset

Die Materialkoeffizienten Ki konnen durch
eine Feinstruktur in der Auflosung der Farbtextur
und normal map...
Material Offset:  Vorher
Material Offset:  Nachher
Licht

Das Terrain selbst liefert Normalen in niedriger Auflosung. 
Diese miissen in einer eigenen grossen normal map
aufb...
Schatten

Fiir Sonnenschatten kann mit sunrise maps und sunset maps
gearbeitet werden. 

Fur jeden Landschaftspunkt werden...
Schatten

Fiir Himmelsschatten (der Himmel ist eine Lichtquelle)
kann so etwas wie Screen Space Ambient Occlusion
aus der ...
u_'u_'u 11.1.71 viii-.1 1 ttagul
Wasser

Wasser gehort zu Landschaften dazu. 

Es Wird im folgenden Von einem ebenen Wasserspiegel
ausgegangen (nur geometr...
Wasser
Reflexion
Reflexion

     

Auge und Blickrichtung an der
Oberfléiche spiegeln.
Reflexion

   
  

Umgebung in Spiegelbuffer rendem. 

    
   

Fiir die Reflexion F arbe aus dem
Spiegelbuffer aus der ric...
Reflexion
Reflexion

   
  
   
  

Wichtig: 

  

Reflexion muss mit dem
Fresnel-Faktor skaliert werden. 

    

Schlick's approximat...
Grund und Wasser
Grund und Wasser

Landschaft ohne Wasser in Textur vorrendern. 
Abstand zum Auge in den Alpha-Kanal. 

Beim Rendern der Wa...
Grund und Wasser

 
  

Landschaft ohne Wasser in Textur vorrendern. 
Abstand zum Auge in den Alpha-Kanal. 

    
    
 
 ...
Wasser

Zum Schluss den Reflexionsterm zum
Wasser&Grund—Term addieren: 

Ffinal =  c*exp(-dw) * Grund
+ (1 - c°‘exp(-dw)) *...
The End
Hydraulische Erosion und Terraingeneration (GPGPU)
Upcoming SlideShare
Loading in …5
×

Hydraulische Erosion und Terraingeneration (GPGPU)

582 views

Published on

  • Be the first to comment

  • Be the first to like this

Hydraulische Erosion und Terraingeneration (GPGPU)

  1. 1. ""“"“"S§7n: ’c»het—isc= :he4HLanschaften fl""""“‘“'--'-I-. .-—. ... .;; ... ... ... ..
  2. 2. Darstellung - Landschaft als Héhenfunktion = > keine iiberhéingenden Kanten / /A/ - Quantisiert nach kartesischem Gitter = > ein Graustufenbild!
  3. 3. Nicht ganz ein Bild - Ubliche Farbtiefe Von Bildem: 8 bit = 256 Werte
  4. 4. Nicht ganz ein Bild - Ubliche Farbtiefe Von Bildem: 8 bit = 256 Werte TV - Verursacht immer Stufen entlang flacher Héinge - Bildbearbeitungsprogramme nicht brauchbar
  5. 5. Prozedurale Landschaften Landschaft aus wenigen Parametern synthetisieren: - Kein Speicheraufwand - Beliebig riesige Landschaften - Sogar ganze Sternensysteme
  6. 6. Perlin Noise Erfunden Von Ken Perlin fiir Tron (1982) Ieder Pixel unabhéingig synthetisierbar
  7. 7. . ',> -1- ’ I‘-. ‘-- dd-‘__‘_ Perlin Noise: How To , .. . ° + + Summe aus mehreren Oktaven
  8. 8. Perlin Noise: Eine Oktave - Gitter bestimmter Maschenweite fiber die Fléiche legen - Zufallswerte an den Gitterpunkten bestimmen (nicht speichern) - Zufallswerte interpolieren (moglichst nicht linear) / V/ : ef / /
  9. 9. Perlin Noise: 3D Anstatt die vier 2D Nachbars-Gitterpunkte zu betrachten, betrachten wir die acht 3D Nachbarn. Ohne Verzerrung auf beliebige 3D Objekte anwendbar
  10. 10. Perlin Noise: Look 8: Feel
  11. 11. Alternative: Voronoi Fields
  12. 12. Voronoi Fields: How To Eine Menge Zentroiden Zi 0 fiber die Flache Verstreuen dl Fiir jeden Punkt die drei Abstande duh; zum nachsten, 0 zweit- und drittnachsten d3 Zentroiden berechnen Z. Z. Die drei Abstande skaliert mit dre1 Koeffizienten Cm HP) = C1 d] + Czdz + C3d3 zusammenzahlen
  13. 13. Illustration ’.
  14. 14. Best of Both Worlds Voronoi Felder und Perlin Noise lassen sich kombinieren Z z perlin 1 6 P , , , perhn 2 / ' Z P + 8P F(P) = Cldl + Czdz + C3d3 + perlin 3
  15. 15. Erosion: Vorher
  16. 16. Erosion: Nachher ‘ ‘ I I’ I I ; I K I “ I , . I I I , 91/ H
  17. 17. Erosion: Vorher /2 / vi’ / . , -0 / I C R / ‘ 4 / 9 A, " ’ v ' / L “'
  18. 18. Erosion: Nachher , i I ’ 1’ ' ‘ ’ 3', ‘-1"’: / ’ D’? ! V ’ , f H 3‘; -;; ‘ ~ ,2‘ x C_ . 6 ‘V O ‘N . T / , LT 8 I / , I ‘I Q 'l', _.. .,. / / ' 4! / I 1-
  19. 19. Erosion: How To Beschrieben in: Fast Hydraulic Erosion Simulation and Visualization on GPU Von Xing Mei, Philippe Decaudin und B110-Gang Hu Realisiert durch ‘ping-ponging': Von Texturen in Texturen rendern
  20. 20. Erosion: Daten Folgende Werte werden pro Pixel verwaltet: - Bodenhiihe - Wasserspiegel — Sedimentkonzentration — Abfluss (X4, NWSE) — Plussgeschwindigkeit ( X2, x/ y) Vier Werte passen in eine Textur hinein (RGBA) = > mind. 3 Texturen In die Textur, aus der gelesen wird, kann nicht geschrieben werden = > einige Texturen miissen mehrfach existieren
  21. 21. Sflil water sediment "OW Ram / / mwater FI0«x/ —/—"'Z””Z ilnw : 1:’, f I Er0Si0n-—/ --*/ eniment' _, /J Trans ‘- _ ‘
  22. 22. 80“ water sediment HOW Ram Wasserspiegel wird erhoht mwater FI0«x/ —/—"'Z””Z L/ water" flow‘ : 1 : ' , _/ / ' Er0Si0r1—--*/ eniment' _, /J Trans ‘ - _
  23. 23. L/ I/lwater Rain flow‘ Ilfllllliilv Tra nsport d - Water Height 7L b - Terrain Height Evaporati
  24. 24. S0“ W818!‘ sediment HOW 1 . I . v Abhéingig Von Flussgeschwindigkeit und Bodenschiefe wird Material abgetragen oder deponiert Erosion Transport _ _. Kapazltat Deposition Evapom “.0” Sedimentgehalt Erosion
  25. 25. I water SBIIIIIIBIII HOW . - 1 / SLd11‘I1L1‘1t , von hier Transport Gelostes Material wird in Abhéingigkeit Von der Wassergeschwindigkeit transportiert Evaporation K .
  26. 26. Sflil water sediment "OW Rain Flow floW velocilv Erosion¥—-2 / ' edimenr 1% Transport / ' Sflllilllfllll mwater
  27. 27. Erosion: Speicher Wirkung der Erosion auf einen Punkt héingt Von dessen Umgebung ab. = > Punkte nicht léinger isoliert synthetisierbar = > Resultat der Erosion muss gespeichert werden
  28. 28. Rendering Grosse Datenmenge: unbedingt auf der GPU1agern!
  29. 29. Rendering: Level of Detail (LOD) Punkte konnen weggelassen werden, falls: 1.) sie weit genug entfernt sind 2.) sie ihren Nachbarn ahnlich sind
  30. 30. LOD: Roam (Real-Time Optimal Adaptive Mapping), 1997 Dreiecke werden vor dem Beobachter gespalten, und hinter ihm wieder verschmolzen. Arbeitet mit zwei Listen (CPU-orientiert) Verwaltungsalptraum!
  31. 31. LOD: CLOD (chunked LOD), 2002 Overview '_'. '.'. ‘.'. +E_'_': --------- --.5"; /' ‘: -T‘'_ _. ..x—» E . Child nodes Parent node Ks : 3 Landschaft wird in Blocke aufgeteilt, jeder Block wird Vereinfacht. Ieder Block wird selbst in Vier Unterblocke zerlegt. Bei Unterblocken werden weniger Punkte weggelassen. Unterblocke werden in Vier noch genauere Blocke gespalten, Zur Laufzeit wird jeder Bereich abhangig vom Abstand mit Blocken passender Genauigkeitsstufe gerendert.
  32. 32. LOD: CLOD (chunked LOD), 2002
  33. 33. EEEEEBEEH. H7ArflEEVJNHE: .: ,3
  34. 34. Vertex Pushing vs. Fill Rate Anz. Dreiecke Anzahl gerasterter Dreiecke beeinflusst nur den ersten Teil der Grafik-Pipeline. Der zweite Teil hangt Von der Anzahl gefiillter Pixel ab und nimmt 80-90% der Zeit ein. Sobald genug Vertizen eliminiert wurden, kann nicht mehr damit gewonnen werden.
  35. 35. Shading Idealerweise unterschiedliche Materialien und nur ein rendering pass. Materialien sollen ineinander hineinfliessen. M = }VFelsMFe1s + )LErdeMErde + X M Gras Gras Bis zu fiinf Materialienkoeffizienten Xi konnen in einer Textur festgehalten werden (r, g, b, a und Rest). F arbe und Normal Map Texturen (in viel hoherer Auflosung) werden dann anhand der Xi interpoliert.
  36. 36. Material
  37. 37. Rendering M. u. ; A) = ‘ * . ‘xl ‘ N i 2 . I ’ >2 ‘ . - . ~. ' A. I ~ ' ’—, - 2- ~i '-, "“i. ¢‘3,‘: ‘:C-. '>‘»‘. -,. . ~
  38. 38. Material Offset Die Materialkoeffizienten Ki konnen durch eine Feinstruktur in der Auflosung der Farbtextur und normal map modifiziert werden Dies sorgt fur ausgefranste Rander. Die Feinstruktur kann zB. im Alpha-Kanal der Farbtextur festgehalten werden.
  39. 39. Material Offset: Vorher
  40. 40. Material Offset: Nachher
  41. 41. Licht Das Terrain selbst liefert Normalen in niedriger Auflosung. Diese miissen in einer eigenen grossen normal map aufbewahrt werden (nicht im 3D-Modell! ) - damit keine Normale Verlorengeht, wenn ein Vertex eliminiert wird. Die Materialien besitzen eigene Normalen (aus eigenen normal maps). Vorgang (pro Pixel): Materialnormalen interpolieren mit den A, Resultierende Normale relativ zur Terrainnormalen drehen/ stauchen Normale Normalisieren (! ) Normale zum Beleuchten Verwenden
  42. 42. Schatten Fiir Sonnenschatten kann mit sunrise maps und sunset maps gearbeitet werden. Fur jeden Landschaftspunkt werden die Zeitpunkte des Sonnenaufgangs und des Sonnenuntergangs vorberechnet. Der Punkt erfahrt Sonnenlicht, falls der momentane Zeitwert zwischen den beiden Zeitpunkten liegt.
  43. 43. Schatten Fiir Himmelsschatten (der Himmel ist eine Lichtquelle) kann so etwas wie Screen Space Ambient Occlusion aus der height map berechnet werden. Umliegende Punkte werden stochastisch getestet, und es wird berechnet, ob und bis zu welcher Hohe sie den Himmel Verdecken (falls sie hoher sind).
  44. 44. u_'u_'u 11.1.71 viii-.1 1 ttagul
  45. 45. Wasser Wasser gehort zu Landschaften dazu. Es Wird im folgenden Von einem ebenen Wasserspiegel ausgegangen (nur geometrisch, die Spiegelung ist verzerrt). Priméir drei Lichtkomponenten: Spiegelung, Farbe und Grund. Spiegelung: Licht wird an der Oberfléiche ins Auge reflektiert. Farbe: Wasser weist iA. eine eigene Farbe auf (nicht Blau! ) Grund: Abhangig Von der Wassermenge zwischen dem Auge und dem Grund kann der Grund sichbar sein.
  46. 46. Wasser
  47. 47. Reflexion
  48. 48. Reflexion Auge und Blickrichtung an der Oberfléiche spiegeln.
  49. 49. Reflexion Umgebung in Spiegelbuffer rendem. Fiir die Reflexion F arbe aus dem Spiegelbuffer aus der richtigen Richtung (r) entnehmen.
  50. 50. Reflexion
  51. 51. Reflexion Wichtig: Reflexion muss mit dem Fresnel-Faktor skaliert werden. Schlick's approximation: F = £0 + (1 - f, ,)(1 — <e, n>)5
  52. 52. Grund und Wasser
  53. 53. Grund und Wasser Landschaft ohne Wasser in Textur vorrendern. Abstand zum Auge in den Alpha-Kanal. Beim Rendern der Wasseroberfléiche Abstandsdifferenz (dw) bestimmen.
  54. 54. Grund und Wasser Landschaft ohne Wasser in Textur vorrendern. Abstand zum Auge in den Alpha-Kanal. Beim Rendem der Wasseroberfléiche Abstandsdifferenz (dw) bestimmen. Grundfarbe aus dem Buffer entnehmen, allerdings die Position proportional zu dw etwas auslenken (Brechung). Grundfarbe mit steigendem dw gegen Wasserfarbe riicken: f= c*exp(-dw)*Grund + (1 - c*exp(-dw))*Wasser
  55. 55. Wasser Zum Schluss den Reflexionsterm zum Wasser&Grund—Term addieren: Ffinal = c*exp(-dw) * Grund + (1 - c°‘exp(-dw)) * Wasser + fresnel * Reflexion
  56. 56. The End

×