Традиційні методи моделювання, які використовуються в комп'ютерній графіці, були засновані на припущенні, що об'єкти, по суті, набір гладких поверхонь, які можуть бути математично описані детермінованою функцією. Найпростіший з таких методів припускає, що об'єкти - це колекції багатокутників, поверхня яких описується лінійною функцією [6]. Природні об'єкти, такі як камені, хмари, дерева, ландшафт, не володіють правильними формами. Більшість явищ, для яких необхідно побудувати віртуальну модель, мають стохастичний характер. А це значить, що їх відтворення традиційними способами рендеринга буде дуже складно і ресурсомісткі.
Система частинок - використовуваний в комп'ютерній графіці спосіб представлення об'єктів, що не мають чітких геометричних кордонів [3]. Прикладами подібних явищ можуть бути вибухи, туман, поверхню води, спалахи, що падають листя, хмари, дим, сніг, метеоритний дощ.
Сфера застосування даної розробки пов'язана з мультимедійними додатками для симуляції хаотичних і невизначених явищ, що мають періодичний характер, які важко відтворити за допомогою умовних технологій візуалізації. У різних програмних продуктах властивості, поведінку і зовнішній вигляд подібних систем можуть принципово відрізнятися. В даний час (вересень 2010) не існує загальноприйнятої реалізації подібних систем.
Таким чином, тема магістерської роботи, спрямована на скорочення часу генерації візуальних ефектів, підвищення якості їх відображення і розширення області їх застосування, актуальна.
Об'єктом дослідження є системи генерації високо реалістичних зображень на основі систем моделювання частинок в існуючих графічних пакетах.
Предметом дослідження є методи створення візуальних ефектів.
Мета і завдання дослідження. Метою роботи є розробка інструментарію, що забезпечує при його використанні вченими та інженерами підвищення ефективності інноваційної діяльності за рахунок високої продутківності алгоритму обробки частинок і рендеринга в реальному часі.
Для реалізації поставленої мети в роботі вирішуються наступні завдання:
Нижче наведено малюнок, що демонструє графічний інтерфейс редактора.
При дослідженні використані наступні методи: аналіз літературних джерел, розробка тестів для перевірки роботи системи і працездатності методів, які використовувалися, моделювання для оцінки ефективності використання технології та виявлення її вузьких місць.
3DS Max
У 3DS Max є три класи систем частинок: прості, універсальні, а також системи частинок незалежних виробників. Універсальні та прості системи частинок нічим не відрізняються один від одного, за винятком способу випромінювання. Існують передвстановлені шаблони, які призначені для різних ситуацій: SuperSpray, Blizzard і PCloud. Система частинок Super Spray відмінно підходить для отримання вибухових і розпилюють ефектів. Якщо в сцену потрібно ввести хмари, що рухаються паралельно, або ж листя, падають на великій площі, з усіх некерованих подіями систем частинок найкраще підійде Blizzard. Шаблон PCloud придатний для сцен, в яких частинки повинні зароджуватися усередині деякого обсягу в таких ефекти, як вогонь, розпад і хмари.
Якщо потрібний ефект виходить за рамки шаблонів, є можливість створити собственнную систему в редакторі Particle View, в якому можна налаштувати різні види поведінки. Якщо потрібно, частинки можуть переходити з одного стану в інший. Основними елементами системи частинок Particle Flow є події, що складаються з окремих операторів і перевірок. Оператори служать для передачі таких властивостей частинок, як кут повороту, матеріал і масштаб. А перевірки призначені для організації нової поведінки частинок.
Переваги Досить ефективні засоби для створення візуальних ефектів на базі попередньо встановлених шаблонів.
Недоліки Якщо потрібний ефект виходить за рамки шаблонів, доведеться створювати собственнную математичну модель.
Particle Studio
Система частинок Particle Studio носить унікальний характер, оскільки вона містить керовані растром параметри. Зокрема, розробник може використовувати растр, застосовуваний до геометричній формі випромінювача, для визначення швидкості випромінювача частинок. У цьому є свої переваги, хоча такий підхід сповільнює роботу системи. У цій системі застосований, головним чином, процедурний підхід, заснований на методі Side Effects 'Houdini. На перший погляд, система здається дуже складною, але в даний момент витрати себе виправдовують.
Переваги Інтеграція як в графічні движки, так і в системи моделювання. Генерує реалістичну картинку.
Недоліки Високі системні вимоги.
Управління позицією і рухом системи частинок в просторі реалізовано за допомогою випромінювача (емітера), який виступає в ролі джерела частинок. У кожного емітера є набір властивостей, що визначають поведінку частинок у просторі. Математично кожна частка представляється як матеріальна точка з додатковими атрибутами, такими як швидкість, колір, орієнтація в просторі, кутова швидкість, і т.п. У ході роботи моделюються частки, кожна з яких міняє свій стан за певним, спільного для всіх частинок системи, закону, який встановлюється емітером [3]. Після проведення всіх розрахунків, частка візуалізується. Частка може бути візуалізувати точкою, трикутником, спрайтом, або повноцінну тривимірною моделлю.
Для обчислення кожного кадру в послідовності руху, виконується наступна послідовність кроків:
Оскільки використовується процедурна модель, система може бути запрограмована для виконання будь-якого набору інструкцій у кожному кроці. Цей підхід може включати будь-які обчислювальні операції, що описують зовнішній вигляд або динаміку об'єкта. Наприклад, рух і перетворення частинок може бути прив'язане до вирішення системи диференціальних рівнянь.
Частинки генеруються через певний інтервал, який визначається на основі частоти генерації, початкові координати кожної частки визначаються положенням емітера і ступенем довільності. Емітер володіє наступними параметрами:
- Положення в просторі
- Час життя системи
- Час життя частинки (задається діапазон мінімального і максимального значень)
- Емісія
Кожна частка має ряд параметрів, що задаються свойтсвамі системи:
- Напрям
- Кут розкиду
- Початкова швидкість
- Гравітація
- Радіальне прискорення
- Тангенціальне прискорення
- Розмір частки
- Швидкість обертання
- Альфа-канал в начолі і наприкінці життя частинки
- Колір на початку і наприкінці життя частинки. Задається у форматі RGB
У кожному циклі етапу симуляції додаються нові частинки, видаляються старі і оновлюються параметри «живих» часток. Рух кожної частки засноване на матіматіческой моделі руху матеріальних точок, де кожна частка виступає в якості ційної.
Для опису руху матеріальної точки будемо використовувати діффернціальние рівняння другого порядку. Закон рівноприскореного руху виходить в результаті рішення найпростішого диференціального рівняння виду:
Загальне рішення цього рівняння задається формулою:
Тут C1 та C2 - довільні константи, відповідні початковій координаті і початковій швидкості. Грунтуючись на трехгранников Френе, вектор прискорення можна розкласти по супутньому базису:
де
V
-
величина швидкості,
-
одиничний дотичний до траєкторії вектор, спрямований уздовж швидкості (дотичний орт),
-
орт нормалі до траєкторії,
-
орт бинормали до траєкторії,
R
-
радіус кривизни траєкторії.
Приклад розкладання вектора швидкості по супутньому базису зображений на Малюнку 4.
Відомо, що завжди дорівнює нулю. Вектори і називаються дотичним (тангенціальним) і нормальним прискореннями відповідно, і задаються в якості параметрів для емітера.
Для прорахунку був розроблений спеціальний клас Vector з перевантаженими операторами, який спрощує операції з векторами.
Для відображення системи частинок в замкнутій області використовується операція кліпінгу полігону, яка грунтується на алгоритмі Fast Winding Number Inclusion of a Point in a Polygon .
Нехай є безперервна крива:
C (u) = (x (u), y (u)), для 0 <= u <= 1 і C (0) = C (1)
Також є точка P за межами кривої С. У цьому випадку визначимо вектор CP (u) = C (u)-P від P до C (u) , і його одиничний вектор W (u) = CP (u) / | CP (u) | який дає безперервну картографію кривої C до одиничного колі S1 таким чином , що вона може бути представлена в координатах наступним чином:
W (u) = (cos q (u), sin q (u)) ,
де
Q (u) - позитивний кут проти годинникової стрілки.
У цьому випадку число обертання wn одно цілої частини від числа обертання W (u) навколо S1 . Це відповідає гомотопному класу S1 та може бути обчислено за допомогою інтеграла:
У випадку, якщо крива С, як зображено на малюнку 5, є полігоном з вершинами V0, V1 ,..., Vn = V0, цей інтеграл визначає суму кутів, які межують з ViVi + 1 щодо точки P . У такому випадку, якщо qi = angle (PVi, PVi +1) , отримаємо:
Якщо грань перетинає позитивний промінь знизу вгору, перетин вважається позитивним, а якщо зверху вниз, перетин вважається негативним.
Наукова новизна полягає в розробленому алгоритмі моделювання візуальних ефектів, простоти застосування, легкої інтеграції системи моделювання з інтерфейсом рендеринга і можливості генерації ефекту по заданій траєкторії руху.
Розроблена система з легкістю інтегрується у проекти під різними платформами.
Розроблена система виконана для застосування в реальних умовах. Використовується в ряді комп'ютерних ігор для ПК на базі Windows і ігрових систем Nintendo. За рахунок поділу етапів моделювання і рендеринга забезпечена кросплатформеність системи. Це дозволяє інтегрувати розроблену систему в проекти, де використовується моделювання стохастичних процесів.
Основні наукові результати роботи доповідалися на науково-технічній конференції Таганрозького технологічного інституту ПФУ та опубліковані у матеріалах одинадцятого міжнародного науково-практичного семінару «Практика й перспективи розвитку партнерства в сфері вищої школи».