- •© Вурста с.Ю.,Літнарович р.М.,2010
- •Вступ………………………………..………………………5
- •4.1.Високопродуктивний компілятор в машинний код………………………………..………………... 126
- •4.4 Бібліотека візуальних компонент…………..135
- •5. Опис графічних бібліотек для написання 3d – програм та ігор……………….……………………………………151
- •1. Історія появи фракталів та їх використання
- •2. Довжина берегової лінії. Фрактальна розмірність. Поняття фрактала.
- •2.1. Приклади побудови фрактальних множин. Класифікація фракталів.
- •2.2. Алгоритм фрактального шуму або шум перліна
- •2.3. Реалізація алгоритму
- •3. Історія розвитку комп’ютерної графіки та ігор
- •3.1. Основні поняття зd-графіки
- •3.2. Основні прийоми для роботи з світлом в 3d:
- •3.3 Алгоритми рельєфного текстурування
- •3.3.1 Рельєфне текстурування (bump mappіng)
- •3.3.5 Простий Relief Mapping
- •3.3.6 Багатошаровий Relief Mapping
- •3.4 Основні прийоми для роботи з текстурами в 3d:
- •3.5 Основні поняття про шейдер та види шейдерів
- •3.6. Генерація тривимірних ландшафтів
- •4.1 Високопродуктивний компілятор в машинний код
- •4.2. Могутня об'єктно-орієнтована мова
- •Об'єктно-орієнтована модель програмних компонент
- •4.4 Бібліотека візуальних компонент
- •4.5. Робота з компонентами
- •5. Опис графічних бібліотек для написання 3d – програм та ігор
- •5.1 Опис графічної бібліотеки OpenGl
- •5.2 Графічна бібліотека DirectX
- •5.3 Візуальні бібліотеки компонентів для OpenGl та DirectX.
- •5.4 Опис закладок glScene
- •6. Проектування системи
- •6.1 Вибір середовища реалізації
- •6.2 Опис використаних компонент glScene для реалізації системи
- •Опис інтерфейсу розробленої системи
- •6.3.1 Панель інструментів
- •6.3.2 Опис робочої області
- •6.3.3 Опис панелі налаштування 3d-сцени
- •Висновки
- •Список літератури:
- •Побудова фрактальних поверхонь в комп’ютерній графіці
- •33027 Рівне , Україна
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) називається кожна функція, що згенерувала і додана в сумарний потік. Кількість октав, також, є основною величиною в даному процесі і впливає на якість зображення.
