Podczas gdy inne odpowiedzi tutaj są naprawdę dobre do generowania rodzajów statycznych krajobrazów, które byłyby odpowiednie dla tej konkretnej potrzeby. Istnieją inne metody, które mogą znaleźć osoby, które napotkają to pytanie, jeśli chcą tworzyć krajobrazy, które zmieniają się w czasie lub wydają się bardziej realistyczne, można zastosować tę technikę.
W przeciwieństwie do innych odpowiedzi zaczynasz od zupełnie pustej mapy. Zacznij od tego, co uważasz za poziom morza. Użyj Perlin Noise, aby dodać bardzo niewielką zmienność, jeśli masz 256 możliwych wzniesień, nie zmieniaj więcej niż 3-5 w obu kierunkach. To buduje pierwsze kilka miliardów lat twojego krajobrazu bez konieczności przeprowadzania symulacji przez tak długi czas.
Płyty tektoniczne
Podziel mapę wzdłuż prostych lub zakrzywionych linii, aby utworzyć płyty, im bardziej szczegółowy kształt płytek, tym ciekawszy będzie Twój krajobraz. Trzymaj je duże. Daj każdej płycie kierunek, prędkość. W określonym przedziale czasowym przesuwaj płytki po mapie krok po kroku, przeciągając wszystkie płytki nad nimi.
Kiedy dwie płyty się skrzyżują, dokonaj wyboru, który przejdzie, a który pod, wybór może być losowy. Płytki na płytkach oznaczonych poniżej są natychmiast zmniejszane o 5 kroków. Gdy tabliczka zostanie wyznaczona powyżej lub poniżej, wszystkie przyszłe interakcje z płytkami będą podlegały następującym zasadom:
- Gdy wyznaczona płytka przecina nieoznaczoną płytę, nieoznaczona płytka staje się typem przeciwnym. (Tak więc płyty UD stają się niższe podczas przekraczania.)
- Tam, gdzie ponad płytą znajduje się nad płytą spodnią, wszystkie te płytki przesuwają się w górę o 0-1 stopni wysokości, a płytki podążają ścieżką ponad płytą.
- Tam, gdzie ponad płytą przecina się ponad płytą, wszystkie te płytki przesuwają się o 1-2 kroki w górę, a płytki w obszarze krzyżowania nie dryfują.
- W przypadku, gdy płyta dolna przecina płytę dolną, wszelkie płytki w obszarze o wysokości większej niż znak 66% dla obu płyt w obszarze krzyżowania przesuwają się w górę o 1-3 kroki (tak jakby przez aktywność wulkaniczną spowodowało to powstanie wysp przez wystarczająco długi czas ) i płytki w tym obszarze przestają dryfować.
Wszystkie płyty, które przechodzą powoli o 20% ich bieżącej prędkości na każdym kroku. Aby zwiększyć realizm, dodaj losową zmianę od -10% do 10% w każdym kroku.
Po wykonaniu żądanej liczby kroków. Prawdopodobnie 5-10 to dużo. Wszelkie płytki, w których nie ma rezydentów, należy upuścić na najniższy istniejący poziom.
Duży czy mały?
Tej mapy można używać w takiej postaci, w jakiej jest, lub ją rozszerzać, aby utworzyć znacznie większą mapę, dzieląc ją na kawałki kafelków (komórek) 4X4 i rozszerzając te sekcje na podstawie ich indywidualnych wysokości. Traktuj rzędną każdej komórki jako punkt i utwórz gładką gradację na większej mapie między tymi punktami. Tak więc, jeśli większa mapa to 40 x 40 zamiast 4 x 4, a punkt (0,0) to 10, a punkt (0,1) to 1, płytki na większej mapie między nimi wynoszą 10,9,8,7,6 , 5,4,3,2,1 wysokości. Ponadto można dodać hałas Perlina, aby wygładzić zbocza. Ogólnie rzecz biorąc, technika skalowania jest podobna do algorytmu Diamond Square .
woda
Symulacja rzek i jezior, oceanów i zbiorników wodnych. Wolę używać automatów komórkowych .
Wysokości stają się liczbami zmiennoprzecinkowymi lub rozszerzonymi zakresami int, aby umożliwić dokładniejsze śledzenie. Komórki wodne mają wartości nasycenia, powiedzmy w zakresie 1-256. Mapy powinny zaczynać się równomiernie. Będziesz musiał grać z liczbami dla poszczególnych rozmiarów map, jednak ogólnie będziesz przestrzegać zasad mniej więcej takich:
- Jeśli sąsiednia komórka jest bardziej nasycona, zwiększ nasycenie i zyskaj wysokość.
- Jeśli sąsiednia komórka jest mniej nasycona, zmniejsz nasycenie i strac wysokość.
Dokonaj tego sprawdzenia dla każdej sąsiedniej komórki. Przeprowadź wystarczającą liczbę kroków. Jeśli chcesz, możesz dodać temperaturę do tej symulacji, zmieniając ilość utraconego / uzyskanego nasycenia o tę temperaturę. Możesz go również zmienić na podstawie wysokości. Powinny się tworzyć naturalne jeziora i rzeki. Niektórzy wpadną do oceanu. (Ocean prawdopodobnie nie wypełni się żadną miarą, ale i tak oznaczycie wszystko pod poziomem morza, aby na końcu było wypełnione wodą.)
Możesz zachować dane dotyczące temperatury i nasycenia, aby używać ich, podobnie jak w innych odpowiedziach, do tworzenia biomów. Powinny być DUŻO bardziej dokładne i interesujące. Z zaśnieżonymi biomami na biegunach i gorącymi pośrodku (jeśli używasz gładkiej stopniowanej listy temperatur).
Możesz także symulować wiatr, a zatem zmiany temperatury na podstawie wysokości. Jeśli chcesz, możesz przesuwać się między uruchomieniem symulacji temperatury i symulacji wody. Jednak nie zbudowałem niczego przy użyciu zmian temperatury, więc nie będę komentować, jak to zrobić.
Ewoluujące krajobrazy
Jeśli utrzymasz symulacje dla ziemi, wody i ciepła i znacznie zmniejszysz ich skutki, a także powstrzymasz ruchy płyt, możesz nadal zmieniać wszystkie te parametry w czasie. Nie uruchamiałbym obliczeń bardzo często, ale można uzyskać mapę świata, która reaguje na zmiany w ten sposób.
Wniosek
Chociaż tego rodzaju techniki są znacznie bardziej zaangażowane, dają o wiele bardziej realistyczne i ewoluujące efekty. Weź to za co jest warte?