Традиционные методы моделирования, которые используются в компьютерной графике, были основаны на предположении, что объекты, по сути, набор гладких поверхностей, которые могут быть математически описаны детерминированной функцией. Простейший из таких методов предполагает, что объекты - это коллекции многоугольников, поверхность которых описывается линейной функцией [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. За счет разделения этапов моделирования и рендеринга обеспечена кроссплатформенность системы. Это позволяет интегрировать разработанную систему в проекты, где используется моделирование стохастических процессов.
Основные научные результаты работы докладывались на научно-технической конференции Таганрогского технологического института ЮФУ и опубликованы в материалах одиннадцатого международного научно-практического семинара «Практика и перспективы развития партнерства в сфере высшей школы».