Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 1 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 1 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 1 Блохин Дмитрий Бурков Денис Гордеев Дмитрий Каретников Алексей Кожевников Михаил Косолобов Борис Кулагин Роман Лонч Вадим Налимов Анатолий Никитин Алексей Романов Алексей Рыбалкин Михаил Научный руководитель: Галинский Виталий Александрович, Преподаватель информатики и программирования ФМЛ 30 Tough Dynamics System
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 2 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 2 Tough Dynamics System Иерархическое представление Добавление простейших геометрических фигур Моделирование сложных объектов Просчет освещения Текстурирование Задание рельефных поверхностей Моделирование с помощью метаболов Деформации произвольных форм Геометрическое моделирование
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 3 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 3 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 3 Иерархическое представление Верхний уровень геометрии (root) Описание геометрии (geometry) o Преобразования системы координат o Атрибуты Геометрический примитив Набор треугольников (Triangle Mesh) Веер треугольников (Triangle Fan) Полоса треугольников (Triangle Strip) Регулярная сетка (Grid) Геометрический примитив... o Дочерние геометрические объекты Описание геометрии (geometry)... Описание геометрии (geometry)... Текущий контекст геометрического моделирования
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 4 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 4 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 4 Простейшие геометрические фигуры Стандартные геометрические фигуры Сфера Усеченный конус Прямоугольный параллелепипед Тор Моделирование сложных тел Протяженные тела Тела вращения Выдавливание тел Создание рельефных поверхностей по карте высот
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 5 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 5 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 5 Загрузка и сохранение моделей Загрузка из файлов формата: 3DS OBJ MDL MD3 RGF (внутренний формат) Сохранение RGF OBJ
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 6 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 6 Tough Dynamics System - результат просчета освещения (цвет в точке); -коэффициент бликовости (Specular reflection); - интенсивность источника света; LN – количество источников света. - коэффициент константного освещения(Ambient) ; - коэффициент диффузного отражения (Diffuse reflection); - рассеянный свет окружающей среды; Ph – коэффициент зеркальности (коэффициент Фонга / Phong); Освещение (lighting)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 7 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 7 Tough Dynamics System Цилиндрическое мэпирование Наложение текстур (texture mapping)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 8 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 8 Tough Dynamics System Наложение текстур (texture mapping)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 9 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 9 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 9 Моделирование сложных тел Деформации произвольных форм (FFD) s t u
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 10 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 10 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 10 Моделирование сложных тел Skinning b1b2 g1 g2 g3 g4 g5 g6 g7g8g9 g10
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 11 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 11 Tough Dynamics System f(x,y,z)=x 4 +y 4 +z 4 -x 2 -y 2 -z 2 =0 Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 11 Моделирование сложных тел Алгоритм Разбиваем выделенное пространство на множество кубов Находим пересечения всех ребер кубиков с функционалом По данным пересечений строим объект Маркировочные кубы (Marching Cubes). (Используются для построения функционалов) f(x,y,z)=sin(x)+sin(y)+sin(z)=0
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 12 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 12 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 12 Моделирование сложных тел Визуализация в пространстве Обобщенные метаболы (Metaballs). Деформация объектов
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 13 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 13 Tough Dynamics System Инверсная кинематика (inverse kinematics)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 14 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 14 Tough Dynamics System Post render Unit #1 Unit #2 …………… … ID SIZE NAME PRIORITY FUNCTION S Response time Процедурная анимация
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 15 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 15 Tough Dynamics System Источник частиц ЧастицыМетоды обслуживания Обслуживание частиц : определение количества новых частиц и инициализация начальных параметров; обновление состояния активных частиц и удаление отслуживших; вывод системы частиц на экран. X Y Z Эффекты на основе частиц (particle system)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 16 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 16 Tough Dynamics System Моделирование Газов D3Q19 D3Q1 D3Q6 D3Q12 p = ƒ qi q i ƒ qi = x(A q + B q (e qi * t) + C q (e qi * t)² + D q (t)²), u = (ƒ qi e qi )/p ei qi ƒ q i = p(A q + B q (e qi * u) + C q (e qi * u)² + D q (u)²) eq Ω qi = 1/T(ƒ qi (xi, t) - ƒ qi (p, u))
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 17 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 17 Tough Dynamics System При отсутствии теней невозможно визуально оценить расстояние от объекта до земли. Наличие теней позволяет довольно Точно оценивать расстояние до земли. Визуализация теней (cast shadow)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 18 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 18 Tough Dynamics System Основной алгоритм: Подготовительная часть (происходит один раз в начале работы программы) Построение графа ребер у объектов, отбрасывающих тень. Основная часть (процесс построения и прорисовки теней) Строится силуэт объекта, который был бы виден из источника света. По силуэту строится многогранник, все объекты попадающие в него находятся в тени. Визуализация теней (cast shadow)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 19 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 19 Tough Dynamics System Поддержка отражений позволяет Имитировать такие поверхности, Как мраморный пол, и другие Отражающие материалы. Построение отражений (reflection mapping)
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 20 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 20 Tough Dynamics System Просчет диффузного освещения методом Radiosity. n – общее количество патчей в сцене; Bi, Bj – radiosity i-ого и j-ого патчей; Ei – энергия, излучаемая единицей поверхности патча; Fij – коэффициент рассеяния энергии патчем, показывающий какая часть энергии не поглотилась, а отразилась от патча; Fij – форм-фактор между i–ым и j– ым патчами, показывающий, какая часть энергии, покидающая патч j доходит до патча i. dAi, dAj – элементарные площадки i-ого и j-ого патчей; i, j – углы между нормалями патчей и отрезком соединяющим их центры; V(i, j) – функция видимости; r – расстояние между центрами патчей. Уравнения задающие Radisoity:
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 21 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 21 Tough Dynamics System Просчет форм-факторов. Метод проекции полукуба. N i-ый патч j-ый патч Fij = dFa+dFb+dFc+dFd Патч а Патч b dAdB Формула вычисления форм-факторов сводится к следующему:
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 22 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 22 Tough Dynamics System Физическое моделирование Механика твердых тел (rigid body) C(t) – центр масс V(t) – его линейная скорость q(t) – ориентирующий кватернион w(t) – угловая скорость M - масса L(t) – момент импульса I(t) – тензор инерции F(t), t(t) – силы, действующие на тело и их момент e – коэффициент восстановления
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 23 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 23 Tough Dynamics System Физическое моделирование Обработка столкновений.
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 24 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 24 Tough Dynamics System Advanced Character Physics X*X* X X1X1 Фиксация первоначального положения сдвигом частиц Расстояние слишком большое Корректное расстояние Расстояние слишком малое
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 25 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 25 Tough Dynamics System Определение столкновений (collision detection) Столкновение динамических объектов Пересечение объекта и отрезка Пересечение объекта и сферы Пересечение объекта и луча Физическое моделирование
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 26 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 26 Tough Dynamics System Низкий уровень Система вывода: драйвера обслуживания низкоуровневых API (Direct3D и OpenGL) Звуковое сопровождение Взаимодействие с устройствами ввода
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 27 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 27 Tough Dynamics System Драйвера (Direct3D и OpenGL) Инициализация Создание графического контекста Начало и завершение кадра Вывод 3D геометрии Вывод графического контекста на экран Установка параметров вывода Создание текстуры (загрузка и сохранение) Установка параметров текстурирования Динамическое изменение текстуры Перенаправление вывода в текстуру Низкий уровень: система вывода
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 28 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 28 Tough Dynamics System Низкий уровень: система вывода Консоли Инициализация Создание консоли Изменение косоли Вывод 2D примитивов Ввод и вывод текста
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 29 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 29 Tough Dynamics System DirectSound Инициализация Загрузка звука (WAV) Изменение громкости звучания Изменение частоты дискретизации Изменение стерео параметров Позиционирование дорожки (и зацикливание) DirectMusic Инициализация Загрузка музыки (MIDI) Изменение громкости звучания Позиционирование дорожки (и зацикливание) Низкий уровень: звуковое сопровождение
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 30 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 30 Tough Dynamics System DirectInput Инициализация Опрос клавиатуры Опрос мыши Опрос джойстика Задание обратной связи (feed back) Низкий уровень: устройства ввода
Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 31 Tough Dynamics System Физико-математический лицей 30 Computer Graphics Support Group of 30 Phys – Math Lyceum 31 Tough Dynamics System Низкий уровень: вершинные шейдеры ВШ работаетВШ отключен