|
ФИЗИКО-МАТЕМАТИЧЕСКОГО ЛИЦЕЯ № 30 of 30 Phys-Math Lyceum Tough Insipid GraphicsАвторы:
Научный руководитель проекта: Галинский Виталий Александрович АннотацияАктуальность компьютерной графики в настоящее время стала основной причиной нашего исследования. Для рассмотрения была выбрана задача, заключающаяся в построении и визуализации трёхмерных динамических сцен в реальном времени. Основной сложностью для нас стало выработка собственной концепции её решения на основе информации, почерпнутой из различных источников и проанализированной нами. Конечным результатом исследования стала библиотека, позволяющая динамически работать с трехмерными сценами. ВведениеДанные проект посвящён проектированию и визуализации трёхмерных сцен в реальном времени, а также исследованию и поиску более простых и эффективных алгоритмов для получение более реалистичной сцены за оптимальное время. Проект состоит из нескольких частей, обеспечивающих мультииерархическое представление геометрических данных, визуализацию оптических свойств объектов. Визуализация происходит посредством API DirectX 9.0. Весь проект базируется на объектно-ориентированном подходе, что позволяет легко разрабатывать и создавать новые классы объектов со своим собственным поведением и уровнем взаимодействия. Представление геометрических данныхРазработанная система геометрического моделирования позволяет путём контекстной иерархической схемы описания и модификации геометрических данных создать реалистичную геометрическую сцену, где для каждой единицы анимации геометрия представляет собой ветвь общего дерева. Каждый уровень хранит независимые данные об аффинных преобразованиях собственной системы координат и системы полигональных данных. Все основные элементы геометрии (примитивы) делятся на четыре класса: ориентированные треугольники, веера, триангулярные полосы и сетки. В проекте реализован импорт геометрических сцен из сторонних систем геометрического моделирования. Для решения задач с поворотом объектов, их передвижением и другими действиями над ними была реализована библиотека линейной алгебры. Оптические свойства объектовДля обеспечения большей реалистичности была осуществлена и исследована визуализация разных оптических свойств объектов. Способ визуализации, использованный в данном проекте, заключается в задании параметров материалов, на основании которых в реальном времени (т.е. непосредственно перед выводом каждого объекта на экран) вычисляется освещенность в вершинах (т.н. повертексное освещение) с использованием модели Фонга. Кроме того, в свойства каждого объекта входят параметры текстурирования, уровень прозрачности и цвет. АнимацияДля синхронизации обслуживания изменения динамических сцен предназначен разработанный в проекте модуль анимации. В его основе лежит объектно-ориентированный подход к моделированию поведения объектов на сцене. Основной принцип обслуживания единиц анимации заключается в переборе всех объектов сцены и вызове для каждого из них методов обновления и вывода на экран (построения, рендеринга). Таким образом, поведение объектов целиком зависит от управляющей ими функции реагирования на те или иные изменения сцены, которая ответственна за адекватное обновление объектов сцены. Построение ландшафтаКроме того, в данном проекте разработан метод построения триангулярной сетки по карте высот. Он основан на том, что некоторые треугольники для улучшения качества графики следует разделить пополам, а некоторые, наоборот, можно объединить без существенного ухудшения качества. Физическое моделированиеВ нашем проекте проанализирован и реализован с некоторыми изменениями метод моделирования физики твёрдых тел (rigid bodies), изменяющих своё положение и ориентацию по законам механики. Каждое тело имеет набор характеристик: масса, центр тяжести, ориентирующий кватернион, скорость, момент импульса, момент всех сил, действующих на это тело, коэффициент восстановления, тензор инерции. Также в проекте разработана модель деформации нежёстких тел (например, поведение флага, развевающегося на ветру). Эффекты на основе системы частицВажным элементом моделирования трехмерных сцен являются эффекты на основе системы частиц. На ней основывается построение таких объектов как взрыв, снег, следы от колес, ореол фар машины и др. Все эти объекты не имеют контура и жесткой формы, что создает сложность задания элементарных графических единиц вывода (мы не можем разбить взрыв на треугольники, в отличие, например, модели автомобиля). Поэтому потребовалось исследовать и разработать специальную систему обслуживания, хранения и вывода частиц. Для реализации системы частиц был реализован специальный объект - прямоугольник, ориентированный определённым образом к камере (billboard). Система визуализацииСистема визуализации абстрагирована от моделирования и анимации, что позволяет вести независимую разработку различных частей проекта без привязки к низкому уровню. Таким образом, существует возможность создания отдельных модулей (например, модуля с описанием физических процессов или моделей) и связывания этих модулей со всем остальным проектом без изменений в самом проекте. Для взаимодействия с аппаратной частью видеоподсистемы используется интерфейс API DirectX 9.0, который обеспечивает вывод 3D-графики с удалением невидимых поверхностей на аппаратном уровне. ЗаключениеДанный проект является простым и удобным средством для визуализации динамических трёхмерных сцен. Он позволяет смоделировать по заданным начальным параметрам геометрии, свойств объектов и их поведения в зависимости от времени сцену практически произвольной степени сложности. Литература
|
|