🏔️ Ułamkowy Ruch Browna (fBm), Diamond-Square i Erozja Hydrauliczna
Klasycznym i niezwykle wydajnym sposobem na proceduralną generację ułamkowego ruchu Browna (fBm) w 2D/3D jest algorytm Diamond-Square (oparty na rekurencyjnym podziale płaszczyzny) lub fBm oparte na wielooktawowym szumie gradientowym.
Poniższy interaktywny symulator implementuje oba te podejścia w fotorealistycznym rzucie 3D. Wykorzystuje cieniowanie oparte na nachyleniu zbocza (Slope-based PBR), okluzję otoczenia (AO), mgłę atmosferyczną, lśniącą taflę wody oraz model fizyczny erozji hydraulicznej, żłobiący naturalne kaniony i doliny rzeczne.
💎 Algorytm Diamond-Square
Rekurencyjny podział płaszczyzny o siatce $(2^N + 1) \times (2^N + 1)$. W każdym kroku obliczany jest punkt centralny kwadratu (krok Square), a następnie punkty centralne rombów (krok Diamond).
R_{k+1} = R_k \cdot 2^{-H}
Gdzie $H \in (0, 1)$ to wykładnik Hursta. Mniejsza wartość $H$ daje szorstki, poszarpany teren o wysokim wymiarze fraktalnym.
🏔️ Teksturowanie Slope-Based & PBR
Kąt nachylenia powierzchni ($\text{slope} = 1 - N_y$) decyduje o rodzaju pokrycia: płaskie tereny to roślinność i osad, strome ściany ($> 40^\circ$) to naga lita skała, z której śnieg odpada pod wpływem grawitacji.
💧 Fizyka Erozji Hydraulicznej
Symulacja cząsteczkowa kropli deszczu spływających w dół wektora gradientu wysokości $\nabla h = (\frac{\partial h}{\partial x}, \frac{\partial h}{\partial y})$.
\text{Erozja: } s < C \implies \Delta s = (C - s) \cdot K_e
\text{Depozycja: } s > C \implies \Delta s = (s - C) \cdot K_d
Woda żłobi kaniony na stromych zboczach i odkłada piasek w dolinach, formując delty rzeczne u ujścia do jeziora.