Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Побудова фрактальних поверхонь в комп'ютерній г...doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.2. Алгоритм фрактального шуму або шум перліна

Фрактальний шум або Шум Перліна[16,17] широко використовується в двомірній і тривимірній комп'ютерній графіці для створення таких візуальних ефектів, як дим, хмари, туман, вогонь і так далі… Він також дуже часто використовується як проста текстура, що покриває геометричну модель. На відміну від растрових текстур, шум Перліна є процедурною текстурою, і тому він не займає пам'ять, але разом з тим виконання алгоритму вимагає якихось обчислювальних ресурсів. Використання шуму перліна дуже поширене в демосценах, учасники якої використовують його в демках. Також на такому алгоритму працюють, такі програми для генерації ландшафтів, як Terragen, а також практично всі ігрові застосування, в яких робляться спроби хоч як те відобразити небо і згенерувати ландшафт.

Шум Перліна був створений Кеном Перліном (англ.) в 1983 році і згодом був названий на честь свого творця. Перлін створив свій алгоритм, працюючи в Mathematical Applications Group, Inc. У 1997 році Кен Перлін отримав нагороду Academy Award for Technical Achievement від Американської Академії кінематографічних мистецтв і наук за його внесок в створення фільму «Трон» випуску 1982 року.

Використання Perlin Noise для моделювання ландшафту і хмар є найбільш поширеним способом із-за його можливості масштабувати одно- двух- і тривимірного вигляду. Більш того, в алгоритм можна ввести четверте часове вимірювання, дозволяючи алгоритму динамічно змінювати текстури в часі і достатнього ступеня реалістичності для ряду додатків.

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

Комбінація шумової та інтерполяційної функції

Шумова функція

В результаті послідовного застосування цих двох функцій виходить, як показано на малюнках, функція, що володіє гладкістю і в теж час що володіє достатнім ступенем хаотичністю.

Синусна хвиля

Шумова хвиля

Основними величинами тут є амплітуда (amplitude) і частота (frequency). Амплітуда відповідає за висоту хвилю, частота рівна зворотному від довжини хвилі, довжина хвилі - це, по відношенню до шумової функції, відстань від однієї червоної крапки до іншої.

Але якщо фіксувати амплітуду і частоту, то отримувана функція все ще володіє достатнім ступенем рівномірністю. Рішення наступне: ми будуємо декілька функцій з різними амплітудами і частотами, а потім складаємо їх. Отримувана в результаті функція якраз задовольняє всім необхідним умовам

початкові функції

Сумарна функція

Амплітуду і частоту на кожному кроці змінюють по наступному закону:

frequency = 2i amplitude = persistence

де i - номер функції, що генерується. Величина persistence спеціально введена для забезпечення залежності амплітуди від частоти.

зображення з фіксованою амплітудою і частотою

сумарне зображення

Октавою (octave) називається кожна функція, що згенерувала і додана в сумарний потік. Кількість октав, також, є основною величиною в даному процесі і впливає на якість зображення.