Heightmap: Unterschied zwischen den Versionen
Aus DGL Wiki
K (Orthografie, Kleinigkeiten) |
DGLBot (Diskussion | Beiträge) K (Der Ausdruck ''<pascal>(.*?)</pascal>'' wurde ersetzt mit ''<source lang="pascal">$1</source>''.) |
||
Zeile 1: | Zeile 1: | ||
==Konzept== | ==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: | 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; | ||
Zeile 10: | Zeile 10: | ||
heightmap[i,j] := PerlinNoise2D(i,j, octaves, persistence); | heightmap[i,j] := PerlinNoise2D(i,j, octaves, persistence); | ||
end; | end; | ||
− | </ | + | </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}} | ||
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;
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.