ГоловнаСтаттіГенеративне Мистецтво

Деформація Домену: Перетворення Плоских Шумів у Пом’ятні, Рідликові Поля

Як живити шум власними зміщеними координатами — ітеративно дві або тричі — перетворює простий fBm на химерний, пом’ятний вигляд, який використовується в рельєфах, хмарах та шейдерах мармуру.

mysimulator teamОновлено — червень 2026≈ 7 хв читання▶ Відкрити симуляцію

Полегшення шуму власними координатами

Плоский фрактальний Броуновський шум ( fBm) — декілька октав Перліна або простих шумів, що сумуються за зростаючою частотою та зменшуваною амплітудою — вже виглядає органічно, але має ознаку: кожна особливість все ще приблизно вирівнюється з основним сітчастим простором, на якому було зібрано шум, і весь простір виглядає ізотропним і трохи статичним. Domain warping, популяризований Кеном Перліном та пізніше детально описаний Іногою Куїлезом, порушує цей вирівнювання з однією ідеєю: перед збором шуму функції в точці p, змістіть p іншим шумом спочатку. Шум не знає, що координати вхідних даних були зігнуті — він просто оцінює там, де його просять — що саме й робить ця хитрость.

// single-level domain warp
q = p + noise2D(p)                 // warp the coordinate with a noise field
result = noise2D(q)                // sample the SAME (or a different) noise at the warped point
// the warp field can itself be fBm for richer, multi-scale distortion
жива демонстрація · пов'язана симуляція● LIVE

Ітерація викривлення

Одне рівняння викривлення вже порушує узгодження сітки, але ключовою моделлю Квілеза було ітеративне застосування цього процесу – передавання результату одного викривлення на інше, рекурсивно:

f(p) = fbm(p + f1) де f1 = fbm(p + f2) де f2 = fbm(p) // три рівневі оцінки однієї функції шуму, кожна з яких викривлює простір координат, в якому зращується наступна оцінка Кожний додатковий рівень укладання збільшує ступінь великих, узгоджених деформацій над попереднім – перше викривлення згинає поле в м’які криві, друге викривлення – ці криві в спіралі, а на третьому рівні ви отримуєте мадлений, турбулентний вигляд хмари та диму, який не може створити проста одношарова функція fBm, незалежно від кількості використаних октав, оскільки прості fBm октави все ще оцінюються в незміненому просторі координат і, отже, залишаються статистично ізотропними всюди.

f(p) = fbm(p + f1)
where f1 = fbm(p + f2)
where f2 = fbm(p)
// three nested evaluations of the same noise function, each one warping
// the coordinate space the next evaluation is sampled in

Два незалежні регулятори: сила викривлення та масштаб викривлення

Сила викривлення є скалярним множником на зміщення — при нульовому значенні вона повертає простий fBm без змін; невеликі значення (0,1–0,5 в нормалізованих одиницях шуму) додають ледь помітний органічний тремор до меж; великі значення (+2) можуть розірвати поле на вивихлені звивини настільки сильні, що оригінальна структура майже нерозрізнена, корисні для вигляду полум'я та турбулентного диму.

Масштаб викривлення — частота поля шуму, яке викриває, незалежна від частоти поля шуму, яке викривається — контролює розмір спотворених ознак: низькочастотне викривлення згинає все поле у широких кривих (корисно для рельєфу та мармуру), а високочастотне викривлення на тій же основі поля виробляє дрібний, хлипкий турбулентність (корисно для вогню та киплячого диму). Ці два регулятора справді незалежні, і більшість візуальної варіативності у викривленому домену мистецтві походить від дослідження їх комбінацій, а не від зміни базової функції шуму.

Чому це схоже на рух рідини, а не просто декорація

Схожість із справжнім рухом рідин не є поверхневою. Зміщення, створене з узгодженого шуму, насправді є гладким вектором з високою дивергенцією — сусідні точки штовхаються в подібних напрямках, що точно відповідає поведінці адивекції у потоці низької Рейнольда, незважаючи на те, що рівняння Нав'є-Стокса ніде немає в коді. Це й є головний привабливий момент: деформація домену дає 90% візуальної насиченості справжньої симуляції рідини за вартість, яка все ще становить лише кілька оцінок шуму на піксель, без розв’язування рівнянь тиску, інтегрування поля швидкостей і без проблем із числовою нестабільністю.

Практичне застосування в рельєфі, хмарах та мармурі

Викривлення висоти піксельного шуму (fBm побудованого з |noise| відбитого навколо нуля, що створює гострі гребені) за допомогою нижчої частоти є стандартним способом генерування гірських хребтів, чиї гребені викривляються та розгалужуються реалістично замість того, щоб проходити в ідеально прямих діагональних лініях. Викривлення поля шуму значенням та фарбування результату простим дво- або трикольоровим градієнтом створює переконливі текстури мармуру та деревини — класичний шейдер турбулентності + синусоїдальний мармур насправді є одним виміром з тієї ж ідеї. Зкладання двох або трьох октав викривлення на різних масштабах на полі щільності хмар, а потім порогове значення, дає пухка, не повторювана зовнішність кумулів, яка використовується в численних процедурних шейдерах неба.

Frequently asked questions

Що саме робить domain warping відмінним від регулярного fBm?

Регулярний fBm сумує декілька октав шуму, відраховуючи їх безпосередньо на координатах кожного пікселя, тому особливості залишаються статистично узгодженими з базовою сіткою. Domain warping спочатку зміщує ці координати за допомогою окремого поля шуму перед відбором, щоб шумове функцію ніколи не бачили оригінальної сітково-вирівняної вхідних даних – це і створює викручену, мармурову зовнішність замість плоскої, ізотропної текстури.

Чому ітерація warpu (загортання його дві чи тричі) виглядає так відрізнятися від одного warpu?

Кожне загорнуте warping згинає простор координат, з якого зраховується наступна оцінка, тому спотворення накопичуються. Один warp додає м’яку кривизну; warping самого warpu додає викручення поверх цих кривих; третє рівняння створює мармурову, турбулентну зовнішність, яку жодна додаткова октава fBm на фіксованих координатах не може відтворити, оскільки прості октави завжди оцінюються в не спотворених позиціях.

Чи дійсно domain warping імітує гідродинаміку?

Ні – там немає розв’язку рівняння тиску чи інтеграції швидкості, це чисто трюк зі зміщенням координат. Але узгоджене поле зміщення шуму поводиться якісно як гладке поле адивекції, тому результати виглядають переконливо як потоки за мізерної вартості обчислень порівняно з справжньою силою Нав’є-Стокс.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Domain Warping і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Domain Warping

Що ви знайшли?

Додати кроки відтворення (опційно)