ФизМатШкола № 30
 

ФизМатШкола № 30
ГРУППА КОМПЬЮТЕРНОЙ ГРАФИКИ
ФИЗИКО-МАТЕМАТИЧЕСКОГО ЛИЦЕЯ № 30

Computer Graphics Support Group
of 30 Phys-Math Lyceum

Tough Animation Zone

Авторы:
1.Абрамова МарияAbramova Mariya9-4 класс
2.Другов ЯрославDrugiv Yaroslav10-4 класс
3.Петров СтаниславPetrov Stanislav10-4 класс
4.Розплохас ДмитрийRozplohas Dmitry10-4 класс

Научный руководитель проекта: Галинский Виталий Александрович

Presentation

Тезисы

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

Разработанная система разбита на несколько связанных между собой частей.

Визуализация — механизм отображения трехмерных объектов, основанных на базовых примитивах. Примитивы выводятся посредством графической библиотеки Microsoft Direct 3D [1], с использованием прямого программирования графического адаптера (GPU), посредством чего достигается достаточное быстродействие. Для программирования специальных визуальных эффектов разработан механизм взаимодействия с микропрограммами GPU — шейдерами, позволяющими получить полный доступ к аппаратной системе вывода современных видеоадаптеров. В системе разработана система частиц для визуализации всевозможных объектов c нечеткой структурой и массовым представлением. Для оптимизации ее вывода придуманы шейдера специального вида, позволяющие выводить множественную регулярную геометрическую информацию, обновляя и изменяя данные визуализации на GPU, а не на центральном процессоре. Для повышения реалистичности вывода разработана система учета теней объектов и моделирования динамических источников света. Для этого также реализованы шейдера специального вида и использованы теневые карты [2].

Анимация — совокупность функций обеспечения динамического поведения объектов заданной сцены. Анимация обеспечивает взаимодействие с подсистемой визуализации, синхронизацию вывода объектов по времени, хранение и обслуживание активных объектов анимации. Для обеспечения вывода прозрачных объектов и объектов моделирования неплотных сред и реализации физики частиц разработана подсистема "отложенного" вывода, позволяющего регистрировать активные объекты анимации с целью их последующего построения с измененными параметрами вывода (например, разрешение/запрещения доступа к аппаратным плоскостям хранения глубины вывода, смены режима наложения объектов на сцену и т.п.).

Шумы — набор алгоритмов для генерации псевдослучайных функций для визуализации некоторых природных эффектов, которые выглядят хаотично и неупорядочено. В системе реализован шум Перлина [3]. Этот алгоритм позволяет получать непрерывную гладкую функцию, возвращающую псевдослучайные значения. В качестве генератора псевдослучайных чисел, лежащего в основе алгоритма, мы реализовали линейный конгруэнтный генератор, к которому применен метод перемешивания Бейса-Дархама [4].

Физическое моделирование — подсистема реализации взаимодействия частей сцены на базе физики сплошных тел [5][6]. В разработанном алгоритме авторами предлагается задавать физические тела в пространстве параметрами поступательного движения (центр масс, скорость, импульс и т.п.) и вращательного движения (ориентационный кватернион [7], тензор инерции, угловой импульс, и т.п.). Моделирование осуществляется за счет применения сил к объектам, поиска столкновений между объектами сцены. Авторами разработана система поиска столкновений на базе подразбиения пространства на отдельные параллелепипеды с хранением геометрической информации о сцене для поиска пересечений со статическими объектами, а также реализованы некоторые алгоритмы столкновений для частных случаев [8].

Система разработана на языке программирования C++. Для оптимизации математических вычислений используются вставки на языке Ассемблера. Шейдера реализованы на языке HLSL.

Литература

  • Frank D. Luna "Introduction to 3D Game Programming with DirectX 9.0 (Wordware Game and Graphics Library)", Jones & Bartlett Publishers, 2003
  • Elmar Eisemann, Michael Schwarz, Ulf Assarsson, Michael Wimmer, “Real-Time Shadows”, A K Peters/CRC Press, 2012
  • David S. Ebert (ed.), F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley. “Texturing and Modeling. A Procedural Approach”, AP Professional, Academic Press, 1994.
  • Д.Э.Кнут, “Искусство программирования”, Том.2., М.-СПб.-К., Издательский дом “Вильямс”, 2001
  • David Baraff, "An Introduction to Physically Based Modeling: Rigid Body Simulation", Robotics Institute, Carnegie Mellon University, 1997.
  • Д.Конгер. “Физика для разработчиков компьютерных игр”, М.Бином, 2007
  • Eric Lengyel. “Mathematics for 3D Game Programming and Computer Graphics”, Third Edition, Cengage Learning Course Technology, 2012
  • Christer Ericson, “Real-Time Collision Detection”, Morgan Kaufman Publishers, 2005
ФМЛ № 30
 
Сайт Физико-математического лицея № 30, Санкт-Петербург, Россия