2017-12-08 8 views
1

Ich habe eine 2D-Kachelkarte mit 100x100 Kacheln. Die meisten von ihnen sind Meeresfliesen und eine Insel in der Mitte. Ich möchte, dass jedes der Meeresplättchen einen Tiefenwert hat.Erzeugen von Meeresbodentiefen in 2D-Karte

Ich habe darüber nachgedacht, so etwas wie eine Lärmkarte zu verwenden, um ein Terrain zu erzeugen, und es dann auf den Kopf zu stellen, aber ich bin unsicher, wie man das bereits existierende Land in Betracht zieht. Weil die Tiefe flacher ist, je näher man dem Land kommt.

Ich muss beachten, dass die Insel in der Mitte entworfen und nicht generiert Layout ist.

Also im Grunde, was ich will, ist eine Karte, die in etwa so aussieht, wo 0 flach ist und die anderen Werte sind Tiefen in Metern f.ex.

9 9 9 9 9 8 9 8 7 
9 7 7 8 7 6 7 6 6 
9 7 4 3 3 3 4 5 6 
9 6 2 0 0 0 0 3 6 
9 6 2 0 0 0 0 1 6 
9 6 2 0 0 0 0 3 6 
9 7 4 2 2 2 1 3 6 
9 7 7 8 7 6 7 6 6 

Wenn jemand mich in die richtige Richtung zeigen könnte, das wäre genial.

+1

Eine 2d-Gauss-Verteilung hat mehr oder weniger diese Form. – dmedine

+1

Eine andere Methode wäre, standardmäßiges Perlin-Rauschen (Tutorials überall) zu verwenden, und die Ausgabe zu filtern, um eine negative Verzerrung hinzuzufügen, je weiter Sie von der Mitte entfernt sind. Sie könnten die Neigung anpassen, um größere Inseln oder tiefere Gewässer zu erzeugen. –

Antwort

1

Verwenden Sie Perlin Noise und erhöhen Sie die Werte in der Nähe der gewünschten Stelle um einen Faktor 1,2 (oder senken Sie alle anderen Werte).

Verbesserte Lärm: https://gist.github.com/Flafla2/1a0b9ebef678bbce3215

Ich empfehle Sie Turbulenz für schönere Ergebnisse hinzufügen: http://paulbourke.net/fractals/perlin/

Dann zu berücksichtigen das bestehende Land, können Sie das Rauschen mit Ihrem bestehenden Modell-Durchschnitt (und einige über Wasser ausschließen Werte daraus).