Як це працює
Завихрений шум отримується обчисленням завихрення (∇×F) 3D потенційного шумового поля. Ключова математична властивість: дивергенція будь-якого завихрення дорівнює нулю (∇·(∇×F) = 0), що робить поле швидкостей безрозбіжним. Це означає відсутність "стоків" або "джерел" у потоці — густота частинок зберігається скрізь.
На практиці ми семплюємо 3D шумове поле Перліна у злегка зміщених позиціях, щоб чисельно апроксимувати часткові похідні, необхідні для завихрення. Координата Z шумового запиту повільно зростає з часом, створюючи плавну часову еволюцію 2D патерну потоку.
швидкість = (∂N(x,y,z)/∂y - ∂N(x,y+e,z)/∂x, ...)
z = час * 0.003 (повільна часова еволюція)
Кожна частинка зберігає свою позицію (px, py) та лічильник часу життя. Коли частинка виходить за межі канвасу або перевищує свій час життя, вона повторно засівається у випадковій позиції. Ефект загасання слідів досягається накладанням напівпрозорого чорного прямокутника на кожному кадрі замість повного очищення канвасу.
Часті запитання
Що таке завихрений шум?
Завихрений шум — це безрозбіжне векторне поле, отримане обчисленням завихрення (∇×F) потенційного шумового поля. Оскільки дивергенція будь-якого завихрення дорівнює нулю, частинки рухаються без стоків або джерел.
Чому завихрений шум є безрозбіжним?
За тотожністю векторного числення ∇·(∇×F) = 0 для будь-якого гладкого векторного поля F. Це математичне твердження гарантує збереження густини частинок скрізь у полі потоку.
Що таке поле потоку у генеративному мистецтві?
Поле потоку — це сітка векторів, що спрямовують частинки по канвасу. Кожна частинка зчитує вектор у своїй поточній позиції та рухається вздовж нього. При використанні шумової основи результат виглядає органічно й турбулентно.
Що таке шум Перліна?
Шум Перліна — функція градієнтного шуму, винайдена Кеном Перліном. Вона генерує плавно інтерпольовані псевдовипадкові значення, ідеальні для текстур, рельєфу та полів потоку. 3D версія дозволяє кодувати час як вісь Z.
Як 3D шум забезпечує часову анімацію?
Використовуючи час симуляції як третю (Z) координату шумової функції, поле потоку плавно еволюціонує з часом. По мірі зростання Z, 2D зріз 3D шумового поля органічно зсувається, роблячи рух частинок безперервним.
У чому різниця між шумом Перліна та симплексним шумом?
Симплексний шум — вдосконалена версія шуму Перліна. Використовує симплексні решітки (трикутники у 2D, тетраедри у 3D) замість кубічних. Усуває артефакти по осях та має кращу обчислювальну складність.
Скільки частинок можна запустити в реальному часі?
На сучасному браузерному канвасі з GPU-прискоренням 3000–8000 частинок зазвичай працюють при 60 fps. Ця симуляція використовує 500–6000 частинок залежно від повзунка.
Що таке техніка загасання слідів?
Замість очищення канвасу щокадру поверх малюється напівпрозорий чорний прямокутник. Це поступово гасить старі позиції частинок, залишаючи світні сліди, що розкривають структуру поля потоку.
Чи може завихрений шум симулювати реальну гідродинаміку?
Завихрений шум наслідує вигляд турбулентного потоку, але не розв'язує рівняння Нав'є-Стокса. Проте він обчислювально дешевий і виробляє переконливу турбулентність для ігор та генеративного мистецтва.
Що таке октавне нашарування (фрактальний шум)?
Октавне нашарування підсумовує кілька шумових функцій різних частот та амплітуд: W(x) = Σ (1/2^i)·noise(2^i·x). Результат — фрактальний шум (дробовий броунівський рух), що імітує хмари та рельєф.