|
ФИЗИКО-МАТЕМАТИЧЕСКОГО ЛИЦЕЯ № 30 of 30 Phys-Math Lyceum Tough Animation ZoneАвторы:
Научный руководитель проекта: Галинский Виталий Александрович ТезисыПроект посвящен разработке и реализации системы визуализации трехмерных сцен, заданных геометрически и аналитически с учетом физических законов. Перед авторами была поставлена задача придумать систему анимации в реальном времени на основе законов физики твердого тела для взаимодействия объектов сцены, а также разработать механизм реалистичной визуализации трехмерных объектов, используя современные средства компьютерной графики. Разработанная система разбита на несколько связанных между собой частей. Визуализация — механизм отображения трехмерных объектов, основанных на базовых примитивах. Примитивы выводятся посредством графической библиотеки Microsoft Direct 3D [1], с использованием прямого программирования графического адаптера (GPU), посредством чего достигается достаточное быстродействие. Для программирования специальных визуальных эффектов разработан механизм взаимодействия с микропрограммами GPU — шейдерами, позволяющими получить полный доступ к аппаратной системе вывода современных видеоадаптеров. В системе разработана система частиц для визуализации всевозможных объектов c нечеткой структурой и массовым представлением. Для оптимизации ее вывода придуманы шейдера специального вида, позволяющие выводить множественную регулярную геометрическую информацию, обновляя и изменяя данные визуализации на GPU, а не на центральном процессоре. Для повышения реалистичности вывода разработана система учета теней объектов и моделирования динамических источников света. Для этого также реализованы шейдера специального вида и использованы теневые карты [2]. Анимация — совокупность функций обеспечения динамического поведения объектов заданной сцены. Анимация обеспечивает взаимодействие с подсистемой визуализации, синхронизацию вывода объектов по времени, хранение и обслуживание активных объектов анимации. Для обеспечения вывода прозрачных объектов и объектов моделирования неплотных сред и реализации физики частиц разработана подсистема "отложенного" вывода, позволяющего регистрировать активные объекты анимации с целью их последующего построения с измененными параметрами вывода (например, разрешение/запрещения доступа к аппаратным плоскостям хранения глубины вывода, смены режима наложения объектов на сцену и т.п.). Шумы — набор алгоритмов для генерации псевдослучайных функций для визуализации некоторых природных эффектов, которые выглядят хаотично и неупорядочено. В системе реализован шум Перлина [3]. Этот алгоритм позволяет получать непрерывную гладкую функцию, возвращающую псевдослучайные значения. В качестве генератора псевдослучайных чисел, лежащего в основе алгоритма, мы реализовали линейный конгруэнтный генератор, к которому применен метод перемешивания Бейса-Дархама [4]. Физическое моделирование — подсистема реализации взаимодействия частей сцены на базе физики сплошных тел [5][6]. В разработанном алгоритме авторами предлагается задавать физические тела в пространстве параметрами поступательного движения (центр масс, скорость, импульс и т.п.) и вращательного движения (ориентационный кватернион [7], тензор инерции, угловой импульс, и т.п.). Моделирование осуществляется за счет применения сил к объектам, поиска столкновений между объектами сцены. Авторами разработана система поиска столкновений на базе подразбиения пространства на отдельные параллелепипеды с хранением геометрической информации о сцене для поиска пересечений со статическими объектами, а также реализованы некоторые алгоритмы столкновений для частных случаев [8]. Система разработана на языке программирования C++. Для оптимизации математических вычислений используются вставки на языке Ассемблера. Шейдера реализованы на языке HLSL. Литература
|
|