computer graphics & visualization procedural terrain generation hager simon proseminar...

36
computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign Proseminar Gamedesign

Upload: meike-heizer

Post on 05-Apr-2015

112 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon

Proseminar GamedesignProseminar Gamedesign

Page 2: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

GliederungGliederung• EinführungEinführung• Erstellen des TerrainsErstellen des Terrains

– 1/f noise1/f noise– Voronoi DiagrammeVoronoi Diagramme– KombinationKombination

• ErosionErosion– Hydraulic erosionHydraulic erosion– Thermal erosionThermal erosion– KombinationKombination

• AbschlussAbschluss

Page 3: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung• Motivation:Motivation:

– Automatisiertes Erstellen von Landschaften für ein Automatisiertes Erstellen von Landschaften für ein StrategiespielStrategiespiel

• Zu beachten:Zu beachten:– PerformanzPerformanz– AussehenAussehen– SpielbarkeitSpielbarkeit

• Unüberwindbare GrenzenUnüberwindbare Grenzen• Großteil der Karte erreichbarGroßteil der Karte erreichbar• Genug “Bauplatz“Genug “Bauplatz“

Page 4: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung

Page 5: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung

• Leicht Graphisch darzustellenLeicht Graphisch darzustellen• Leicht zu manipulierenLeicht zu manipulieren• Einfach zu ImplementierenEinfach zu Implementieren

• Repräsentation des Terrains durch HeightmapRepräsentation des Terrains durch Heightmap

Page 6: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung• Definition von Aussehen und Spielbarkeit durch Zahlen:Definition von Aussehen und Spielbarkeit durch Zahlen:• Erosion soll liefern:Erosion soll liefern:• Große ebene FlächenGroße ebene Flächen

– Mittelwert der Steigung der Map möglichst kleinMittelwert der Steigung der Map möglichst klein• Steile HängeSteile Hänge

– Standardabweichung der Steigung möglichst großStandardabweichung der Steigung möglichst groß

Page 7: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung• Festlegen einer 2ten Heightmap s, in der die Steigung Festlegen einer 2ten Heightmap s, in der die Steigung

jedes Punktes gespeichert wird: jedes Punktes gespeichert wird:

Page 8: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung• Berechnung des Arithmetischen Mittels:Berechnung des Arithmetischen Mittels:

• Berechnung der Standardabweichung:Berechnung der Standardabweichung:

• Erosion:Erosion:

Page 9: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung• Spielbarkeits-Faktor durch 2 Werte:Spielbarkeits-Faktor durch 2 Werte:• Erreichbarkeit (durch Einheiten)Erreichbarkeit (durch Einheiten)• BauplatzBauplatz

• Festlegen einer „Erreichbarkeitsmap“ A mitFestlegen einer „Erreichbarkeitsmap“ A mit– A = 1 wenn s < TA = 1 wenn s < T– A = 0 wenn s ≥ TA = 0 wenn s ≥ T

Page 10: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung

• Entfernen aller Bereiche die eine n x n große Einheit nicht Entfernen aller Bereiche die eine n x n große Einheit nicht betreten kannbetreten kann

• Den größten zusammenhängenden Teil auswählenDen größten zusammenhängenden Teil auswählen

Page 11: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

EinführungEinführung• Erreichbarkeits Faktor u = Verhältnis der Summe aller 1en Erreichbarkeits Faktor u = Verhältnis der Summe aller 1en

zur Gesamtmapzur Gesamtmap

• Prinzipiell analog für Gebäude, mit kleinerem T und Prinzipiell analog für Gebäude, mit kleinerem T und größerem n die „building score“ β errechnengrößerem n die „building score“ β errechnen

• Gesamtgüte der Karte ist damit dann:Gesamtgüte der Karte ist damit dann:ω = ε x β x u ω = ε x β x u

Page 12: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Spectral synthesisSpectral synthesis• Generieren mehrerer Ebenen durch:Generieren mehrerer Ebenen durch:• Bestimmten Punkten in festem Abstand wird Zufallswert Bestimmten Punkten in festem Abstand wird Zufallswert

zugewiesenzugewiesen• Restliche Punkte werden InterpoliertRestliche Punkte werden Interpoliert• Mehrmals wiederholen, jeweils mit doppelter Auflösung Mehrmals wiederholen, jeweils mit doppelter Auflösung

und halber maximaler Höhe, bis gewünschte Auflösung und halber maximaler Höhe, bis gewünschte Auflösung der heightmap erreicht istder heightmap erreicht ist

• Übereinanderlegen aller EbenenÜbereinanderlegen aller Ebenen

Page 13: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Spectral synthesisSpectral synthesis

Page 14: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Spectral synthesisSpectral synthesis

ε = 0.417ε = 0.417

• Relativ langsamRelativ langsam

Page 15: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Midpoint displacementMidpoint displacement• Zufällige Werte für die vier EckpunkteZufällige Werte für die vier Eckpunkte• Mittelpunkt kriegt den Wert des Mittels der Eckpunkte + Mittelpunkt kriegt den Wert des Mittels der Eckpunkte +

zufälligen Offsetzufälligen Offset• Rekursiv ausführen bis jeder Punkt der Heightmap einen Rekursiv ausführen bis jeder Punkt der Heightmap einen

Wert enthältWert enthält• Offset bei jeder Rekursion verkleinernOffset bei jeder Rekursion verkleinern

Page 16: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Midpoint displacementMidpoint displacement

ε = 0.478ε = 0.478

Page 17: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

1/f noise1/f noise• Gleichmäßige, Homogene VerteilungGleichmäßige, Homogene Verteilung• UnrealistischUnrealistisch• Spielerisch nicht toll, da keine großen (längere) Spielerisch nicht toll, da keine großen (längere)

Steigungen zum Beschränken der Karte erzeugt werdenSteigungen zum Beschränken der Karte erzeugt werden

Page 18: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Voronoi DiagrammeVoronoi Diagramme• Zufällige “Feature points” setzenZufällige “Feature points” setzen• Die Senkrechte in der Mitte zwischen der Die Senkrechte in der Mitte zwischen der

Verbindungsgeraden zweier Punkte ergibt eine Grenze:Verbindungsgeraden zweier Punkte ergibt eine Grenze:

Page 19: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Voronoi DiagrammeVoronoi Diagramme• Berechnen der heightmap durch:Berechnen der heightmap durch:

h = ch = c11dd11 + c + c22dd22 + c + c33dd33 + ... + c + ... + cnnddnn

dd11 = Abstand zum nächsten feature point = Abstand zum nächsten feature pointdd22 = Abstand zum 2. nähsten feature point = Abstand zum 2. nähsten feature pointc = beliebige Konstantenc = beliebige Konstanten

Page 20: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Voronoi DiagrammeVoronoi Diagramme

c2 = 1c1 = -1

c3 = 1c1 = 1

c2 = -1

Page 21: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Voronoi DiagrammeVoronoi Diagramme• Mögliche Verbesserungen:Mögliche Verbesserungen:• Vergrößern der Abstände zwischen den Hügeln:Vergrößern der Abstände zwischen den Hügeln:

• Entfernen von Zufälligen Hügeln:Entfernen von Zufälligen Hügeln:

Page 22: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Voronoi DiagrammeVoronoi Diagramme• Fazit:Fazit:

Zufälligeres TerrainZufälligeres Terrain Steile HängeSteile Hänge

• Aber:Aber: Völlig unspielbarVöllig unspielbar Unrealistisches AussehenUnrealistisches Aussehen Niedriges Niedriges ε = 0.347ε = 0.347

Page 23: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

AnalyseAnalyse• 1/f noise ergibt schönes, aber langweiliges Terrain1/f noise ergibt schönes, aber langweiliges Terrain• Voronoi Diagramme zufälliger, aber unspielbarVoronoi Diagramme zufälliger, aber unspielbar• Lösung: Kombination der beiden:Lösung: Kombination der beiden:

Page 24: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

CombinationCombination

• Aber: gerade Kanten der Vornoi-Diagramme noch Aber: gerade Kanten der Vornoi-Diagramme noch vorhandenvorhanden

•ε = 0.460

• Kombination der beiden verschiedenen AlgorithmenKombination der beiden verschiedenen Algorithmen 1/3 Voronoi diagram1/3 Voronoi diagram 2/3 Midpoint displacement2/3 Midpoint displacement

Page 25: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

PerturbationPerturbation• Lösung: perturbation (Störungen)Lösung: perturbation (Störungen)• Verschieben von „Zellen“ mittels noise-FunktionenVerschieben von „Zellen“ mittels noise-Funktionen• Um maximal N/4 ZellenUm maximal N/4 Zellen

Page 26: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

CombinationCombination

0.6650.7130.0020.001

εvβω

Page 27: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

ErosionErosion• Simulation von natürlicher Erosion (Umwelteinflüsse)Simulation von natürlicher Erosion (Umwelteinflüsse)• VerschönerungVerschönerung• Spielbarkeit verbessern:Spielbarkeit verbessern:• Abhänge steiler machenAbhänge steiler machen• Ebenes Terrain stärker einebenenEbenes Terrain stärker einebenen

Page 28: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Hydraulic erosionHydraulic erosion• Hinzufügen von Wasser, durch eine 2te Heightmap (w)Hinzufügen von Wasser, durch eine 2te Heightmap (w)• „„Auflösen“ von Gestein: für jeden Punkt: h = h – wAuflösen“ von Gestein: für jeden Punkt: h = h – w• Wasser fließen lassen:Wasser fließen lassen:

• Wasser verdunsten lassen: h = h + wWasser verdunsten lassen: h = h + w• WiederholenWiederholen

Page 29: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Hydraulic erosionHydraulic erosion

0.6650.7130.0020.001

εvβω

1.0070.8280.1570.140

εvβω

Page 30: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Thermal erosionThermal erosion

1.1. Festlegen eines Grenzwertes TFestlegen eines Grenzwertes T2.2. Ist der Höhenunterschied d zwischen zwei Punkten < T Ist der Höhenunterschied d zwischen zwei Punkten < T

passiert nichts, ansonsten wird vom höheren Punkt passiert nichts, ansonsten wird vom höheren Punkt solange Gestein abgegeben bis d = Tsolange Gestein abgegeben bis d = T

• Simuliert Wegbrechen von Gestein von HängenSimuliert Wegbrechen von Gestein von Hängen

Page 31: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

Thermal erosionThermal erosion

0.6650.7130.0020.001

εvβω

0.6260.9830.0020.001

εvβω

Page 32: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

AnalyseAnalyse• Thermal erosion wäre schnell, produziert aber keine Thermal erosion wäre schnell, produziert aber keine

spielbaren Ergebnissespielbaren Ergebnisse• Hydraulic erosion ebnet Terrain schön flach ein und lässt Hydraulic erosion ebnet Terrain schön flach ein und lässt

die Abhänge steil, ist aber zu langsamdie Abhänge steil, ist aber zu langsam• Idee: Die Vorteile der hydraulic erosion in den thermal Idee: Die Vorteile der hydraulic erosion in den thermal

erosion Algorithmus einbauenerosion Algorithmus einbauen• Lösung: Einfaches Umdrehen des thermal erosion Lösung: Einfaches Umdrehen des thermal erosion

Algorithmus, statt „Einebnen wenn d > T“, jetzt: Algorithmus, statt „Einebnen wenn d > T“, jetzt: „Einebnen wenn d ≤ T“„Einebnen wenn d ≤ T“

Page 33: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

AnalyseAnalyse

Page 34: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

AnalyseAnalyse

0.6650.7130.0020.001

εvβω

2.2040.9050.4340.877

εvβω

Page 35: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

AbschlussAbschluss• Vollständig automatisches Generieren von Terrain Vollständig automatisches Generieren von Terrain

möglich, aber:möglich, aber:• Spielbarkeit nicht garantierbarSpielbarkeit nicht garantierbar• BalanceproblemeBalanceprobleme• Von Hand erstelle Landschaften schöner als zufällig Von Hand erstelle Landschaften schöner als zufällig

generiertegenerierte• Darum kaum Spiele mit generierten (Außen-)LevelsDarum kaum Spiele mit generierten (Außen-)Levels

Page 36: Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, [email protected]

AbschlussAbschluss

Fragen ?Fragen ?