Heightmap: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Bewertung: -l)
K (Der Ausdruck ''<pascal>(.*?)</pascal>'' wurde ersetzt mit ''<source lang="pascal">$1</source>''.)
 
(5 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Konzept=
+
==Konzept==
Eine Heightmap ist ein 2-dimensionales Array, dass Informationen über eine Landschaft enthält.Dazu wird einfach an jedem Knoten der entsprechende Höhenwert gespeichert.Zum Beispiel eine zufällige Landschaft:
+
Eine Heightmap ist ein 2-dimensionales Array, das Informationen über eine Landschaft enthält. Dazu wird an jedem Knoten der entsprechende Höhenwert gespeichert. Zum Beispiel eine zufällige Landschaft:
<pascal>
+
<source lang="pascal">
 
var
 
var
 
   i,j: integer;
 
   i,j: integer;
 
   heightmap: array[0..width, 0..depth] of single;
 
   heightmap: array[0..width, 0..depth] of single;
 
begin
 
begin
   fo i := 0 to width do for j := 0 to depth do
+
   for i := 0 to width do  
    heightmap[i,j] := random;
+
    for j := 0 to depth do
 +
      heightmap[i,j] := PerlinNoise2D(i,j, octaves, persistence);
 
end;
 
end;
</pascal>
+
</source>
 
{{Hinweis|Es kann auch aus einem Graustufenbitmap geladen werden, z.B. je heller ein Punkt, desto höher die Landschaft an dieser Stelle}}
 
{{Hinweis|Es kann auch aus einem Graustufenbitmap geladen werden, z.B. je heller ein Punkt, desto höher die Landschaft an dieser Stelle}}
  
=Bewertung=
+
==Bewertung==
 
Der Vorteil von Heightmaps ist, dass sie sehr leicht zu implementieren sind. Ein Nachteil ist jedoch, dass immer nur ein Höhenwert pro Knoten gespeichert werden kann und man so keine Felsvorsprünge oder Höhlen realisieren kann.
 
Der Vorteil von Heightmaps ist, dass sie sehr leicht zu implementieren sind. Ein Nachteil ist jedoch, dass immer nur ein Höhenwert pro Knoten gespeichert werden kann und man so keine Felsvorsprünge oder Höhlen realisieren kann.
Eine interessante Möglichkeit ist, Heightmaps mit Algorithmen wie [[Perlin Noise]] zur Laufzeit zur erstellen. Desweiteren kann man [[LOD]] benutzen um das Rendern von Heightmaps zu beschleunigen.
+
Eine interessante Möglichkeit ist, um Speicher oder Plattenplatz zu sparen, Heightmaps mit Algorithmen wie [[Perlin Noise]] oder den [[Hügel_Algorithmen|Hügel Algorithmus]] zur Laufzeit zur erstellen. Desweiteren kann man [[LOD]] benutzen um das Rendern von Heightmaps zu beschleunigen.
  
=Ressourcen=
+
==Ressourcen==
[[Tutorial Terrain1]]
+
[[Tutorial Terrain1]], [[Tutorial Terrain2]], [[Tutorial Terrain3]]
[[Tutorial Terrain2]]
 
[[Tutorial Terrain3]]
 

Aktuelle Version vom 10. März 2009, 19:05 Uhr

Konzept

Eine Heightmap ist ein 2-dimensionales Array, das Informationen über eine Landschaft enthält. Dazu wird an jedem Knoten der entsprechende Höhenwert gespeichert. Zum Beispiel eine zufällige Landschaft:

var
  i,j: integer;
  heightmap: array[0..width, 0..depth] of single;
begin
  for i := 0 to width do 
    for j := 0 to depth do
      heightmap[i,j] := PerlinNoise2D(i,j, octaves, persistence);
end;
Info DGL.png Es kann auch aus einem Graustufenbitmap geladen werden, z.B. je heller ein Punkt, desto höher die Landschaft an dieser Stelle

Bewertung

Der Vorteil von Heightmaps ist, dass sie sehr leicht zu implementieren sind. Ein Nachteil ist jedoch, dass immer nur ein Höhenwert pro Knoten gespeichert werden kann und man so keine Felsvorsprünge oder Höhlen realisieren kann. Eine interessante Möglichkeit ist, um Speicher oder Plattenplatz zu sparen, Heightmaps mit Algorithmen wie Perlin Noise oder den Hügel Algorithmus zur Laufzeit zur erstellen. Desweiteren kann man LOD benutzen um das Rendern von Heightmaps zu beschleunigen.

Ressourcen

Tutorial Terrain1, Tutorial Terrain2, Tutorial Terrain3