computer graphics & visualization procedural terrain generation hager simon proseminar...
TRANSCRIPT
computer graphics &
visualization
Procedural Terrain GenerationHager Simon
Proseminar GamedesignProseminar 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
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“
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
EinführungEinführung
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
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ß
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:
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:
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
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
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
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
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
Spectral synthesisSpectral synthesis
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
Spectral synthesisSpectral synthesis
ε = 0.417ε = 0.417
• Relativ langsamRelativ langsam
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
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
Midpoint displacementMidpoint displacement
ε = 0.478ε = 0.478
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
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:
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
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
Voronoi DiagrammeVoronoi Diagramme
c2 = 1c1 = -1
c3 = 1c1 = 1
c2 = -1
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:
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
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:
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
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
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
CombinationCombination
0.6650.7130.0020.001
εvβω
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
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
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
Hydraulic erosionHydraulic erosion
0.6650.7130.0020.001
εvβω
1.0070.8280.1570.140
εvβω
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
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
Thermal erosionThermal erosion
0.6650.7130.0020.001
εvβω
0.6260.9830.0020.001
εvβω
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“
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
AnalyseAnalyse
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
AnalyseAnalyse
0.6650.7130.0020.001
εvβω
2.2040.9050.4340.877
εvβω
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
computer graphics &
visualization
Procedural Terrain GenerationHager Simon, [email protected]
AbschlussAbschluss
Fragen ?Fragen ?