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

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

Computer Graphics Support Group
of 30 Phys-Math Lyceum

Tough Insipid Graphics

Авторы:
1.Быстров АлексейBystrov Alexey11-3 класс
2.Григорьев КонстантинGrigoryev Konstantin11-1 класс
3.Гриднев МаксимGridnev Maxim9-1 класс
4.Дошина ТатьянаDoshina Tatiana9-1 класс
5.Майстренко ЯнMaystrenko Jan11-4 класс
6.Руцкий ВладимирRutsky Vladimir11-1 класс
7.Чуринов АндрейChurinov Andrey9-1 класс
8.Чуринов ДмитрийChurinov Dmitry11-3 класс

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

Presentation

Аннотация

Актуальность компьютерной графики в настоящее время стала основной причиной нашего исследования. Для рассмотрения была выбрана задача, заключающаяся в построении и визуализации трёхмерных динамических сцен в реальном времени. Основной сложностью для нас стало выработка собственной концепции её решения на основе информации, почерпнутой из различных источников и проанализированной нами. Конечным результатом исследования стала библиотека, позволяющая динамически работать с трехмерными сценами.

Введение

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

Представление геометрических данных

Разработанная система геометрического моделирования позволяет путём контекстной иерархической схемы описания и модификации геометрических данных создать реалистичную геометрическую сцену, где для каждой единицы анимации геометрия представляет собой ветвь общего дерева. Каждый уровень хранит независимые данные об аффинных преобразованиях собственной системы координат и системы полигональных данных. Все основные элементы геометрии (примитивы) делятся на четыре класса: ориентированные треугольники, веера, триангулярные полосы и сетки.

В проекте реализован импорт геометрических сцен из сторонних систем геометрического моделирования. Для решения задач с поворотом объектов, их передвижением и другими действиями над ними была реализована библиотека линейной алгебры.

Оптические свойства объектов

Для обеспечения большей реалистичности была осуществлена и исследована визуализация разных оптических свойств объектов. Способ визуализации, использованный в данном проекте, заключается в задании параметров материалов, на основании которых в реальном времени (т.е. непосредственно перед выводом каждого объекта на экран) вычисляется освещенность в вершинах (т.н. повертексное освещение) с использованием модели Фонга. Кроме того, в свойства каждого объекта входят параметры текстурирования, уровень прозрачности и цвет.

Анимация

Для синхронизации обслуживания изменения динамических сцен предназначен разработанный в проекте модуль анимации. В его основе лежит объектно-ориентированный подход к моделированию поведения объектов на сцене. Основной принцип обслуживания единиц анимации заключается в переборе всех объектов сцены и вызове для каждого из них методов обновления и вывода на экран (построения, рендеринга). Таким образом, поведение объектов целиком зависит от управляющей ими функции реагирования на те или иные изменения сцены, которая ответственна за адекватное обновление объектов сцены.

Построение ландшафта

Кроме того, в данном проекте разработан метод построения триангулярной сетки по карте высот.

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

Физическое моделирование

В нашем проекте проанализирован и реализован с некоторыми изменениями метод моделирования физики твёрдых тел (rigid bodies), изменяющих своё положение и ориентацию по законам механики.

Каждое тело имеет набор характеристик: масса, центр тяжести, ориентирующий кватернион, скорость, момент импульса, момент всех сил, действующих на это тело, коэффициент восстановления, тензор инерции.

Также в проекте разработана модель деформации нежёстких тел (например, поведение флага, развевающегося на ветру).

Эффекты на основе системы частиц

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

Для реализации системы частиц был реализован специальный объект - прямоугольник, ориентированный определённым образом к камере (billboard).

Система визуализации

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

Для взаимодействия с аппаратной частью видеоподсистемы используется интерфейс API DirectX 9.0, который обеспечивает вывод 3D-графики с удалением невидимых поверхностей на аппаратном уровне.

Заключение

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

Литература

  • James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes. “Computer Graphics: Principles and Practice”, Second edition, Addison-Wesley Publishing Company, 1990.
  • Alan Watt, Mark Watt. “Advanced Animation and Rendering Techniques. Theory and Practice”, ACM Press, Addison-Wesley Longman Limited, 1992.
  • Грег Снук "3D- ландшафты в реальном времени на C++ и DirectX 9", М:Кудиц-Образ 2005.
  • Frank D. Luna. "Introduction to 3D Game Programming with DirectX 9.0". Wordware Publishing, Inc., 2003
  • Пэрент. "Компьютерная анимация". М: Кудиц-Образ, 2004.
ФМЛ № 30
 
Сайт Физико-математического лицея № 30, Санкт-Петербург, Россия