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

Post on 05-Apr-2015

113 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

computer graphics &

visualization

Procedural Terrain GenerationHager Simon

Proseminar GamedesignProseminar Gamedesign

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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“

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

EinführungEinführung

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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ß

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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:

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

• Berechnung der Standardabweichung:Berechnung der Standardabweichung:

• Erosion:Erosion:

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

Spectral synthesisSpectral synthesis

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

Spectral synthesisSpectral synthesis

ε = 0.417ε = 0.417

• Relativ langsamRelativ langsam

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

Midpoint displacementMidpoint displacement

ε = 0.478ε = 0.478

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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:

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

Voronoi DiagrammeVoronoi Diagramme

c2 = 1c1 = -1

c3 = 1c1 = 1

c2 = -1

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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:

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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:

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

CombinationCombination

0.6650.7130.0020.001

εvβω

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

Hydraulic erosionHydraulic erosion

0.6650.7130.0020.001

εvβω

1.0070.8280.1570.140

εvβω

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

Thermal erosionThermal erosion

0.6650.7130.0020.001

εvβω

0.6260.9830.0020.001

εvβω

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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“

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

AnalyseAnalyse

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

AnalyseAnalyse

0.6650.7130.0020.001

εvβω

2.2040.9050.4340.877

εvβω

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

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

computer graphics &

visualization

Procedural Terrain GenerationHager Simon, hager@in.tum.de

AbschlussAbschluss

Fragen ?Fragen ?

top related