Ich habe folgendes Problem. Wenn ich eine Heightmap erzeuge und diese auf eine Kugel mappe, dann entsteht an der Stelle, an der beide Enden der Karte aufeinander treffen eine unschöne Kante. Ich habe bereits eine Lösung für das Problem, bin mir aber nicht sicher, ob das die cleverste Lösung ist. Hier meine Nachbearbeitung der Heightmap, mit der diese Kanten verschwinden (Siehe Bild):
Ich erstelle nur eine halbe Heightmap, kopiere sie und lege sie daneben (1). Dann wird die Kopie gespiegelt (2) und man erhält zumindest eine geschlossene Oberfläche.
Dennoch kann man erkennen, dass die Landschaft an dieser Stelle eine Unregelmäßigkeit hat und genau genommen kann man sogar erkennen, dass eine Spiegelung vorliegt.
Welche Alternativen habe ich?
- Bereits das Noise so parametrieren, dass am Kartenrand immer "Wasser" ist? Das schränkt die Vielfalt ein, da es immer mindestens einen Kontinent gibt. (Ist z.B. schlecht bei Monden, wo doch der handelsübliche Mond mehr Krater als Wasser hat)
- Die Ränder nochmal weichzeichnen und evtl. nochmal mit Noise drüber?
- Der mir unbekannte Algorithmus <insert name here>, welcher mit den Schlagworten "pattern" oder "seamless" und "heightmap" in Google nicht auffindbar scheint?
- (Hmm, gerade noch eingefallen). Ich könnte die Karte auch größer als benötigt machen, die Ränder ein Stück (10%) überlappen lassen, die Höhen addieren und dann auf Planetenniveau runternormalisieren. (Könnte klappen)
Grüße, Daniel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
_________________ Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de
Du Könntest die Map ein bisschen größer machen, als du sie benötigst (vllt so 10-20%) und dann die rechts und unten überstehenden 10-20% in die linke und obere Kante reinmischen. Mit einem sanften Verlauf.
Zitat:
Der mir unbekannte Algorithmus <insert name here>, welcher mit den Schlagworten "pattern" oder "seamless" und "heightmap" in Google nicht auffindbar scheint?
Fraktales Mid-Point-Displacement kann man sehr einfach Kachelbar machen. Sieht nur (meiner Meinung nach) nicht so gut aus - es sei denn, du willst nen richtig zerklüfteten Planeten.
Perlin Noise kann man auch sehr einfach Kachelbar machen.
Wenn du jedoch auf Planeten aus bist, frage ich mich, warum du Heightmaps nutzt und keine Isospheres. Da gabs hier auch mal ne Demo zu. Musste mal das Forum durchsuchen.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Für mich wäre es mal interessant zu erfahren als was deine Heightmap vorliegt.
Wenn sie als Bild vorliegt, dann musst du natürlich bereits im Bild darauf achten, dass es kachelbar ist. In Gimp gibt es speziell dafür eine Option. Wenn es per Algorythmus generiert wird ist es nicht so leicht. Und kommt dann recht stark darauf an wie es gemacht wurde. Dürfte aber wohl darauf hinaus laufen, dass der Rand ein bisschen übergeblendet wird. Und zwar so weich, dass es nicht auffällt.
Du Könntest die Map ein bisschen größer machen, als du sie benötigst (vllt so 10-20%) und dann die rechts und unten überstehenden 10-20% in die linke und obere Kante reinmischen. Mit einem sanften Verlauf.
Ja, das wäre die vierte von mir angesprochene Variante. Scheint mir gut machbar zu sein. Danke für die Festigung.
AL hat geschrieben:
Wenn du jedoch auf Planeten aus bist, frage ich mich, warum du Heightmaps nutzt und keine Isospheres. Da gabs hier auch mal ne Demo zu. Musste mal das Forum durchsuchen.EDIT: viewtopic.php?t=2340
Das lese ich mir mal durch. Vorteil von Heightmaps ist die einfache Erstellung eben dieser mit Perlin Noise. Man muss zu einem Planeten nur ein paar Parameter hinterlegen und alle Clients können exakt die gleiche Heightmap selbst erstellen. Wenn Isospheres genauso gut parametrierbar sind, dann wäre das auch eine Möglichkeit. Aber ich lese mich da erstmal rein.
Lossy eX hat geschrieben:
Für mich wäre es mal interessant zu erfahren als was deine Heightmap vorliegt.
Wird durch einen Noise-Algorithmus zur Laufzeit erstellt. Die Übertragung der recht großen Maps wollte ich vermeiden.
Grüße, DNA
_________________ Heute code ich, morgen debug ich, und übermorgen caste ich die Königin auf int.
http://www.2ndmoon.de
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.