Strona główna Sztuka Generatywna Krajobraz fraktalny

🏔️ Krajobraz fraktalny

Generuj realistyczne górskie tereny algorytmami fraktalnymi: przesunięciem punktu środkowego i diamond-square.

Sztuka Generatywna3DŚredni60 FPS
fractal-landscape ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

Podobne symulacje

O tej symulacji

Ta symulacja generuje fraktalny krajobraz górski za pomocą algorytmu diamond-square — rekurencyjnej metody budowania samopodobnego pola wysokości z losowych przesunięć. Zaczynając od czterech wartości narożnych, algorytm na przemian uśrednia sąsiedztwa typu diament i kwadrat, dodając losowe przesunięcie, które maleje z każdym poziomem rekurencji, kontrolowane przez wykładnik Hursta H. Wynikiem jest mapa wysokości, której chropowatość, poziom morza i paletę kolorów można zmieniać interaktywnie, wraz z bieżącym histogramem wysokości i szacunkiem wymiaru fraktalnego.

🔬 Co pokazuje

Siatkę 2^n+1 × 2^n+1 zbudowaną przez algorytm diamond-square: krok diamentowy uśrednia cztery narożniki każdego kwadratu plus szum, krok kwadratowy uśrednia sąsiadów każdej krawędzi plus szum, a każdy poziom rekurencji zmniejsza o połowę odstęp siatki, skalując losowe przesunięcie przez 2^(-H). Powstały teren jest samopodobny — wygląda statystycznie podobnie niezależnie od tego, czy przybliżamy pojedynczy grzbiet, czy oglądamy cały krajobraz.

🎮 Jak korzystać

Przeciągnij suwak Hurst exponent H, aby kontrolować chropowatość — niskie H daje poszarpany, surowy teren, a wysokie H daje gładkie, faliste wzgórza — oraz suwak Sea level, aby zalać niskie wysokości. Wybierz Grid size (64×64, 128×128 lub 256×256), aby wymienić szczegółowość na wydajność, oraz Color palette (Earth, Mars, Alien lub Ocean world). Użyj New Terrain, aby wygenerować nową mapę wysokości, i Save PNG, aby zapisać bieżący widok.

💡 Czy wiesz, że?

Te same techniki diamond-square i szumu fraktalnego zostały przyjęte przez przemysł filmowy i gry wideo już w latach 80. XX wieku do taniego generowania pasm górskich i obcych planet, ponieważ garstka parametrów (rozmiar siatki, wykładnik Hursta, ziarno losowości) może zastąpić miliony ręcznie umieszczonych wartości wysokości.

Najczęściej zadawane pytania

Co sprawia, że krajobraz jest fraktalny?

Krajobraz fraktalny jest samopodobny w różnych skalach — właściwości statystyczne, takie jak chropowatość, liczba szczytów czy złożoność linii brzegowej, są takie same niezależnie od tego, czy oglądamy 1 km, czy 1000 km terenu. Oznacza to, że krajobraz nie ma jednej naturalnej skali — wygląda podobnie na każdym poziomie powiększenia. Rzeczywisty teren górski dość dobrze odpowiada tej statystycznej samopodobności (choć nie dokładnie), dlatego generowanie fraktalne daje realistycznie wyglądające wyniki.

Jak wykładnik Hursta H kontroluje chropowatość terenu?

Wykładnik Hursta H z przedziału (0,1) kontroluje strukturę korelacji pola wysokości. Wysokie H (blisko 1) oznacza, że wysokości w sąsiednich punktach są silnie skorelowane — łagodny, gładki teren o stopniowych zmianach wysokości. Niskie H (blisko 0) oznacza, że sąsiednie punkty są niemal nieskorelowane — bardzo poszarpany, chropowaty teren. Przy H = 0,5 teren jest standardowym błądzeniem losowym bez persystencji.

Jak krok po kroku działa algorytm diamond-square?

Algorytm zaczyna od siatki 2^n+1 x 2^n+1, w której ustawione są tylko wartości narożników. W kroku diamentowym środek każdego kwadratu ustawiany jest jako średnia jego czterech narożników plus losowe przesunięcie skalowane przez bieżącą chropowatość. W kroku kwadratowym środek każdej krawędzi ustawiany jest jako średnia sąsiednich punktów siatki plus losowe przesunięcie. Każdy poziom rekurencji zmniejsza o połowę odstęp siatki i skaluje losowe przesunięcie przez 2^(-H). Po n poziomach każdy punkt siatki ma przypisaną wartość wysokości.

Co zmieniają suwaki Grid size i Sea level?

Grid size (64×64, 128×128 lub 256×256) ustala rozdzielczość rekurencji diamond-square: większe siatki wymagają większej liczby poziomów rekurencji i pokazują więcej szczegółów kosztem wydajności. Sea level ustala próg wysokości, poniżej którego teren jest renderowany jako zalany, co pozwala zamienić tę samą mapę wysokości w wyspę, archipelag lub jeden spójny ląd bez ponownego generowania.

Jak szacowany jest wymiar fraktalny w symulacji?

Symulacja szacuje wymiar fraktalny (wymiar zliczania pudełek) na podstawie tego samego wykładnika Hursta użytego do wygenerowania terenu, korzystając z zależności D = 3 − H dla powierzchni fraktalnej. Teren o niskim H ma wyższy wymiar fraktalny, bliski 3, co oznacza, że wypełnia przestrzeń w sposób nieregularny i wygląda na poszarpany; teren o wysokim H ma wymiar bliższy 2, czyli bliższy gładkiej, zwykłej powierzchni.

Czy teren generowany metodą diamond-square jest używany w prawdziwych grach i filmach?

Tak. Diamond-square oraz pokrewne techniki szumu fraktalnego są wykorzystywane od lat 80. XX wieku do taniego generowania gór, obcych planet i proceduralnych światów, ponieważ garstka parametrów (rozmiar siatki, wykładnik Hursta, ziarno losowości) może zastąpić miliony ręcznie umieszczonych wartości wysokości. Podobne metody wciąż leżą u podstaw generowania terenu w wielu współczesnych grach i procesach efektów wizualnych.