2010-07-18 8 views
11

Ich habe meine eigene Perlin Noise-Implementierung geschrieben und es funktioniert gut. Ich kann durch Ändern der Frequenz "hinein- und hinauszoomen", aber beim Zoomen wird das Rauschen weicher und weicher.Perlin Lärm Detailstufe. Wie kann man in eine Landschaft hineinzoomen?

Angenommen, ich habe eine Landschaft, die einen Kontinent anzeigt. Ich möchte in einen Bereich in der Stadtgröße (oder näher) hineinzoomen, aber immer noch Details haben. Ich denke, ich muss die Landschaft genauer rekonstruieren, aber ich bin mir nicht sicher, ob es Implementierungen gibt, die dabei helfen können.

Zoomed out, ich sehe den Kontinent und die Ozeane, aber ich möchte große Regionen in kleinen Gebieten vertreten haben. Hier

ist ein Beispiel für das Problem, das ich habe (Kontinent-Ebene):

alt text http://www.blind-games.com/highlevelnoise.jpg

Gezoomte in:

alt text http://www.blind-games.com/closeinnoise.jpg

Wie kann ich immer noch reich Detail bekommen beim Zoomen in einen Bereich auf der Karte? Irgendwelche Beispiele für Techniken?

Antwort

4

Sie müssen Rauschen mit immer höheren Frequenzen erzeugen, um die Glätte zu vermeiden. Versuchen Sie für eine klarere Erklärung, wie Rauschfrequenz zu manipulieren. Oktaven passen natürlich zu einer LOD-Implementierung (LOD = Level of Detail), bei der Sie, solange Sie die Generierung von "fly" unterstützen, nur dann mehr Details generieren müssen, wenn Sie sich ihm nähern. Seien Sie sich dessen bewusst, dass es bei der Erstellung von Terrains zu Unwägbarkeiten kommt, z. B. die Generierung von Features wie Flüssen und Straßen zu erschweren, so dass Sie das Terrain auf ein Minimum beschränken können (z. B. 64 km Gitterquadrate)) und dann im Flug Generierung von detaillierteren Funktionen.

Ich würde auch empfehlen, Simplex-Rauschen zu betrachten, das einen geringeren Rechenaufwand hat (siehe https://en.wikipedia.org/wiki/Simplex_noise für weitere Details).

3

Angenommen, Sie erstellen die Kartendateien statisch und nicht spontan. Ich denke, Ihre einfachste Lösung besteht darin, die gesamte Karte mit der höchsten Auflösung zu erstellen, die Sie benötigen. In der Praxis werden Sie dann auf diese Granularitätsebene zurückzoomen. Es ist rechenintensiver und wird größere Kartendateien liefern. Abhängig von Ihrer Implementierung für den Viewer können Sie entweder eine einzelne Map-Datei verwenden oder de-resolvierte Dateien für die größere Ansicht erstellen.