|
ФИЗИКО-МАТЕМАТИЧЕСКОГО ЛИЦЕЯ № 30 of 30 Phys-Math Lyceum Tough Nature PhenomenaАвторы:
Научный руководитель проекта: Галинский Виталий Александрович ВведениеДанный проект посвящен синтезированию и визуализации "неплотных" сред (дым, огонь и т.д.). Система основана на придуманном механизме представления и отображения трехмерных частиц, которая позволяет проводить визуализацию явлений в реальном времени. Проект состоит из нескольких частей, обеспечивающих иерархическое представление геометрических данных, визуализацию оптических свойств объектов, моделирование шумов и многое другое. Визуализация происходит посредством API DirectX 9.0 [1]. Весь проект базируется на объектно-ориентированном подходе, что позволяет легко разрабатывать и создавать новые классы объектов со своим собственным поведением и уровнем взаимодействия. Система визуализации в реальном времениВ работе спроектирована система анимации, ориентированная на вывод и обслуживание подобъектов визуализации. Единицы анимации посредством синхронизации по времени осуществляют моделирование визуальных эффектов. Для поддержки вывода полупрозрачных объектов разработана и реализована подсистема отложенного вывода, позволяющая строить очередь прозрачных частей сцены с последующим построением. Данный подход позволяет отображать прозрачные объекты без учета их глубины визуализации, однако, с учетом глубины выводимой трехмерной сцены. Основная идея вывода "неплотных" сред - размещение в подсистеме отложенного вывода анимационных единиц, строящих на базе подсистемы частиц визуально-правдоподобную модель синтезируемого явления. Представление геометрических данныхВ проекте реализована иерархическая система представления объектов. Она основана на представлении каждого объекта как совокупности двух систем координат (родительского уровня иерархии и локального уровня), геометрических данных и параметров их вывода. При изменении положения родительского уровня - "дочерние" объекты меняют положение в глобальной системе координат. В то же время, локальный уровень координат позволяет оперативно изменять позицию и ориентацию объекта. Данные объектов - примитивы - совокупность пространственных геометрических фигур, описанных посредством триангуляции. Для решения задач с поворотом объектов, их передвижением и другими действиями над ними была реализована библиотека линейной алгебры. Моделирование шумовВ качестве одной из основных функциональных частей проекта реализована система шума [2, 3]. Шум - суть объект, который выдает псевдослучайные числа с интерполяцией, благодаря чему мы получаем связанные случайные величины. На основе полученных значений можно строить случайные непрерывные функции. Шум имеет достаточно обширное применение, как то: генерация объектов, траекторий, процедурных текстур и т.п. Такие предметы как облака, пламя, дым моделируются посредством таких случайных функций. В нашем проекте реализован двухмерный и трехмерный шум. Для построения шумовой таблицы псевдослучайных величин авторами был реализован алгоритм получения последовательности псевдослучайных чисел. Был использован конгруэнтный метод, предложенный Д. Г. Лехмером в 1949 году [4] (параметризация алгоритма была взята из работы Парки-Миллера). Система частицОсновой системы визуализации "неплотных" сред является подсистема частиц. Частица - небольшой геометрический объект, обладающий физическими параметрами (скорость, ускорение, масса и т.д.) и визуальными свойствами (геометрическая фигура, текстура визуализации, цвет, прозрачность и т.п.). Подсистема выстраивает отдельные очереди визуализации и обработки из частиц каждого эффекта. Эмиттеры очередей включаются в единицы анимации, которые, в свою очередь, регистрируются в подсистеме отложенного вывода. Данный подход позволяет отображать полупрозрачные частицы после основной сцены, что дает возможность использовать механизм смешивания цветов, реализованного аппаратно на всех современных видеокартах. Система визуализацииСистема визуализации находится на более высоком уроне абстракции по сравнению с системами моделирования и анимации, что позволяет вести независимую разработку различных частей проекта без привязки к низкому уровню. Таким образом, существует возможность создания отдельных модулей (например, модуля с описанием физических процессов или моделей) и связывания этих модулей со всем остальным проектом без изменений в самом проекте. Для взаимодействия с аппаратной частью видеоподсистемы используется интерфейс API DirectX 9.0, который обеспечивает вывод 3D-графики с удалением невидимых поверхностей на аппаратном уровне. ВыводДанный проект является простым и удобным средством для динамической визуализации "неплотных" сред. Он позволяет моделировать сложные эффекты в реальном времени по заданным начальным параметрам. Литература
|
|