Содержание к диссертации
Введение 6
1. Постановка задачи 15
Особенности симуляторов реального времени 15
Анализ доступных универсальных систем визуализации 16
Специальные требования к системе визуализации 17
Выбор принципов построения интерактивной системы визуализации реального времени 19
2. Разработка метода отображения модифицируемого ландшафта 24
Постановка задачи 24
Geometrical MipMapping 27
Chunked Level of Detail 31
Разработка Chunked MipMap метода ....., 34
3. Методы оптимизации временной диаграммы вычислительного процесса 39
Структурирование пространственных данных 39
Отсечение невидимых примитивов 48
Оптимизация графического конвейера 65
Оптимизация качества визуализации при ограничении на вычислительные ресурсы . 82
4. Программная реализация системы визуализации 87
Разработка архитектуры системы визуализации , 87
Реализация метода отображения больших ландшафтов 92
Получение и подготовка данных для визуализации 101
Результаты оптимизации временной диаграммы вычислительного процесса... 103
5. Программный комплекс визуализации тренажера военной техники 105
Вычислительная модель 105
Технология разработки 105
Программное ядро тренажера 105
Интерфейс с аппаратурой 108
Сетевой интерфейс 108
Взаимодействие сервисного домена визуализация с моделирующим ядром 109
Результаты работы ПО
6. Выводы , 114
6.1 Основные результаты 116
Литература..,., ,. 118
Приложение 1 , 124
Приложение 2 , ,„ 156
Список используемых терминов
3D Studio Max, 3DS МАК— пакет трехмерного моделирования
ААВВ, axis aligned bounding box — ограничивающий параллелепипед стороны которого параллельны координатным осям
AGP, accelerated graphic port —шипа передачи данных на видеокарту
alpha channel - альфа канал, канал прозрачности
AMD, Advanced Micro Device — производитель центральных процессоров
AMD 3DNow - набор векторных инструкций центрального процессора
APIf application programming interface — интерфейс программирования прикладных приложений
А ТІ - производитель графических процессоров и видеокарт
hack buffer - буфер на видеокарте в котором формируется изображение при включенном
режиме двойной буферизации
back-to-front order - порядок, при котором полигоны расположены от дальнего к
ближнему, по отношению к виртуальной камере
back-to-front sorting - процесс упорядочивания полигонов, от дальнего к блилшему
Bounding volume - ограничивающий объем, применяется для быстрого расчета
столкновений, например, между объектом и пирамидой видимости
BBOXf bounding box — ограничивающий параллелепипед, частный случай ограничивающего объемов
bilinear filtering - билинейная фильтрация
BSP, BSP tree, Binary Space Partition — бинарное разделение пространства
blend— смешивание
bottleneck - узкое место, место в программном коде ограничивающее общую производительность
В VH, Bounding Volume Hierarchies ~ иерархия ограничивающих объемов
bus — шина передачи данных
camera space - система координат связанная с виртуальной камерой
canonical view volume — канонический объем видимости, куб
clipping - отсечение
collision response - процесс определения столкновений
color buffer - буфер, содержащий информацию о цвете
CPU, central processing unit- центральный процессор
DDFAO - программно-аппаратный комплекс медицинской диагностики depth buffer, z-buffer - буфер содержащий информацию о глубине depth of field- глубина резкости depth-value — значение глубины полигона
DIP, DrawIndexedPrimitive - команда графического процессора используемая для
отображения индексированных примитивов
DIP cost — время вызова команды отображения
Direct3D — графический АРІ от Microsoft, часть DirectX
directional light- направленный источник освещения
DirectX- мультимедиа АРІ от Microsoft
Discreet - производитель программного обеспечения, пакета трехмерного моделирования
DMA, Direct Memory Access — прямой доступ к памяти, без использования центрального процессора
double buffering - режим двойной буферизации, т.е. изображение сначала строится в заднем буфере, а затем передний и задний буфер меняются местами, позволяет реализовать плавную анимацию
far plane — дальняя плоскость отсечения виртуальной камеры
FIFO, First In First Out — тип очереди, первый пришел, первый ушел
force feedback devices - устройство с обратной отдачей
FPS, frames per second -количество кадров в секунду
fragment shader, pixel shader - программа выполняющаяся на фрагментном процессоре
front-to-back sorting - процесс упорядочивания полигонов, от ближнего к дальнему
frustum culling - процесс отсечения усеченной пирамидой
GPU, graphics processing unit - графический процессор
graphic accelerator- устройство, аппаратно реализующее некоторые функции необходимые при расчете изображения, видеокарта
graphic rendering pipeline - конвейер расчета изображения
halo - эффект светимости, ореола, вокруг яркого объекта
HP, Hewlett-Packard - разработчик программного и аппаратного обеспечения
homogeneous coordinates - однородные координаты
instance — экземпляр
instancing - процесс создания экземпляра
Intel- разработчик программного и аппаратного обеспечения
Intel SSE, SSE2, Intel's Streaming SIMD Extensions - набор векторных инструкций центрального процессора
JPEG - формат сжатия растровых изображений
LOD, Level OfDetail - уровень детализации, используется для оптимизации вычислений
lighting equation - уравнение по которому вычисляется освещенность
Microsoft Flight Simulator - симулятор гражданских самолетов
Microsoft Visual Studio ~ среда разработки программного обеспечения
МірМар — техника оптимизации, использующаяся в процессе растеризации
mirror matrix — матрица зеркального отражения
model space — система координат связанная с геометрической моделью
Motorola AltiVec - набор векторных инструкций центрального процессора
near plane — ближняя плоскость отсечения виртуальной камеры
Null HW driver - специальный драйвер видеокарты, позволяющий находить узкие места
NVIDIA — разработчик программного и аппаратного обеспечения
octree — восьмеричное дерево
OpenGL - графический АРІ от SGI
Oriented Bounding Box — ориентированный по координатпьш осям ограничивающий
параллелепипед
parallel projection - параллельная проекция
particle system - система частиц, необходима для реализации эффектов огонь, взрыв,
дым и подобных
per-pixel lighting - поточечное освещение
perspective projection — перспективная проекция
pixel - минимальный элемент растрового изображения
plug-in - встраиваемый модуль
point light — точечный источник освещения
Р VS, Potentially Visible Set - потенциально видимый набор примитивов
pre-computed shadow mask- предварительно рассчитанные участки затенения
quad tree - квадратичное дерево
Quake3 — трехмерная компьютерная игра
rasterization - процесс растеризации
real time rendering - расчет изображения в реальном масштабе времени
rigid-body transform - трансформация твердого тела
RLE — метод сжатия данных
screen coordinates - экранные координаты
SecuraVista, SecuraVista Suite — программный продукт, позволяющий проектировать системы безопасности
stencil buffer — буфер трафарета, реализован на видеокарте, используется отсечения
fcp/Ір — протокол передачи данных
tessellate - процесс разбиения на треугольники
texture - текстура, растровое изображения предназначенное для окрашивания геометрических моделей
texture cache — область памяти, содержащая последние использованные текстуры
TnL block, Transform and Lighting block - блок геометрических вычислений
TPF, triangles per frame — количество треугольников в кадр
TPS, triangles per second - количество треугольников в секунду, равно TPF * FPS
Unreal- компьютерная игра
vertex shader — вершинная программа
vertices per second- количество перший в секунду
view frustum - усеченная пирамида видимости виртуальной камеры
VFC, view frustum culling - отсечение пирамидой видимости
XML, Extensible Markup Language - язык разметки документов
ГИС, GIS, Geographic Information Systems - Географические Информационные Системы
МТТ72Б - многофункциональный тренажер танка Т72Б
Патч, заплатка, patch - квадратный участок ландшафта
Введение к работе
Визуализация данных играет важнейшую роль в их интерпретации и анализе. Научно-техническая революция, произошедшая в последние годы в области вычислительной техники, обеспечила бурный прогресс в технологиях визуализации и открыла новые способы их использования. В настоящее время эти технологии имеют широкое применение в таких областях как медицина, космический мониторинг, индустрия развлечений. Актуальным является применение новейших технологий визуализации при создании симуляторных систем. В этой области основной задачей визуализации является погружение человека в симулируемую среду. В настоящий момент востребованы тренажерные системы современных видов вооружения, основу которых составляют симуляторы реального времени. Важной частью симулятора реального времени является система визуализации, состоящая из специализированных аппаратных средств. Функционирование аппаратуры обеспечивается специально разработанным программным обеспечением.
Первые разработки тренажеров военной техники с использованием компьютерных технологий в Советском Союзе начаты в начале 70-х годов. Наиболее известные из них следующие: дисплейная станция «Дельта», разработанная в ВЦ СО АН СССР, графическая станция «Гамма», разработанная в институте прикладной физики, система визуализации реального времени тренажера «Буран», авиационный тренажер альбатрос, разработанный в институте автоматики и электрометрии, и многие другие.
Основой визуализации в реальном времени (real time rendering) является быстрый расчет изображений с помощью вычислительных машин. Эта область компьютерной графики является наиболее интерактивной. После появления кадра на экране пользователь совершает некоторое действие, и реакция на это действие отображается уже в следующем кадре. Цикл расчета изображения, исходя из действий пользователя, должен быть достаточно быстрым для того, чтобы пользователь наблюдал не отдельные сцены, а непрерывный динамический процесс.
Частота, с которой кадры сменяют друг друга, измеряется либо в кадрах в секунду (fps), либо в герцах. При частоте один кадр в секунду уровень интерактивности будет низкий; пользователю придется долго ожидать появление следующего кадра. Начиная с шести кадров в секунду, уровень интерактивности начинает увеличиваться. В случае если приложение успевает рассчитать 15 кадров в секунду, можно уже говорить о визуализации в реальном времени; пользователь имеет возможность сосредоточится на своих действиях и реакции на них. Однако существует предел (72 кадра в секунду), свыше которого изменения становятся малозаметными.
Концептуальные вопросы визуализации в реальном времени даны в работах [1][2][3].
Наиболее полное изложение вопросов построения графических систем приведено в монографиях [6][18][20][22].
Цель работы
Целью работы является решение научно-технической задачи, заключающейся в создании программного комплекса визуализации для нового поколения тренажерных систем военной техники.
Для достижения поставленной цели решаются следующие задачи:
производится анализ существующих систем визуализации, рассматриваются наиболее существенные особенности тренажеров военной техники, формулируются специальные требования к системе визуализации;
решаются ключевые вопросы построения систем визуализации тренажеров военной техники, отображение открытых пространств, отображение техники, отображение специальных эффектов (дым, огонь, взрыв), визуализация данных на выходе оптико-электронных устройств;
рассматриваются методы оптимизации временной диаграммы вычислительного процесса (структурирование и отсечение пространственных данных, оптимизация графического конвейера, оптимизация качества изображения при ограничении на вычислительные ресурсы);
разрабатывается библиотека программ для визуализации в симуляторах реального времени, учитывающая специальные требования тренажеров военной техники;
разрабатывается программный комплекс визуализации боевой обстановки комплексного тренажера нового поколения МТТ72Б.
Актуальность
Основным потребителем симуляторов и виртуальных обучающих систем является министерство обороны, которое активно инвестирует в развитие подобных программ и технологий. Главный интерес с его стороны заключался в создании эффективных тренажеров, позволяющих операторам получать навыки управления дорогостоящей военной техникой. Стоимость таких систем может достигать нескольких миллионов долларов, а визуализация изображения осуществляется посредством мощных и дорогих графических систем.
Сегодня рынок систем визуализации и симуляторов оценивается в $22 млрд. (по данным исследовательского агентства CyberEdge Information Services Solutions Group [112], специализирующегося на этом рынке). Рынок можно поделить на два крупных сегмента: военный и коммерческий. Доля первого по разным оценкам составляет от 50% до 75%. При этом в последние годы аналитики прослеживают увеличение доли рынка коммерческих приложений, что, прежде всего, связано с сильным удешевлением всех составляющих технологий.
Программы визуализации для тренажерных систем применяемых министерством обороны разрабатываются под специальные требования, учитывающие конкретные особенности боевой техники. Одним из таких требований является создание собственного оригинального кода, не уступающего известным аналогам.
Задача визуализации данных в масштабе реального времени востребована также во многих других областях, одной из которых является построение медицинских приборов. Как правило, в таких системах необходима высокоточная трехмерная визуализация органов человека и возможность интерактивного изменения ракурса наблюдения.
Еще одной областью применения систем трехмерной визуализации являются различные бизнес-приложения, оперирующие с трехмерными данными, либо результатом работы которых являются трехмерные данные. В качестве примера рассматривается приложение, предназначенное для моделирования работы охранных систем больших промышленных объектов.
Новизна
Разработан метод визуализации земной поверхности Chunked МІрМар. Новизна метода заключается в способе хранения данных, представляющих уровни детализации ландшафта. Использование коэффициентов перехода между уровнями детализации позволяет производить адекватные изменения земной поверхности в реальном масштабе времени во всех уровнях. Хранение данных не только в листьях но и в узлах квадратичного дерева позволяет оптимально использовать ресурс графического процессора и повысить эффективность на 30% относительно известного метода Geo МірМар.
Разработан алгоритм расчета столкновения шасси военной техники с высоко детализированной земной поверхностью. Новизна алгоритма заключается в предварительном отборе элементов земной поверхности потенциально пересекающихся с многоточечным шасси. Упорядочивание отобранных элементов сокращает время поиска нужного элемента. Для 16-ти точечного шасси алгоритм позволяет сократить время расчета до трех раз по сравнению с известными алгоритмами.
Предложена комплексная методика оптимизации временной диаграммы вычислительного процесса. Отличительной особенностью методики является использование нового критерия оценки качества изображения для выбора оптимальной комбинации параметров отображения сцены. Критерий основан на экспертных оценках. Использование комплексной методики позволяет упростить оптимизацию и адаптацию программ расчета изображения на заданных вычислительных средствах.
Разработана библиотека программ для построения систем визуализации симуляторов реального времени, обеспечивающая генерацию и отображение изображений на выходе специализированных оптико-электронных устройств. Научная новизна библиотеки заключается в учете специальных требований тренажеров военной техники, использовании нового метода визуализации земной поверхности, алгоритма расчета столкновений для многоточечного шасси военной техники, комплексной методики оптимизации и новых возможностей CPU и GPU последнего поколения.
Разработан программный модуль визуализации боевой обстановки, функционирующий в программно-аппаратной среде нового поколения тренажера военной техники (МТТ72Б). Программный модуль представляет собой новую законченную научно-техническую разработку и обеспечивает поддержку совместной тренировки нескольких экипажей, изменение земной поверхности полигона вследствие боевых действий и более высокое качество отображения боевой обстановки по сравнению с предыдущими аналогами.
Методы разработки и исследования
Для проектирования программных модулей использовался язык UML, среда разработки - Microsoft Visio. Для реализации программных систем использовался язык C++, среда разработки - Microsoft Visual Studio. Целевой платформой, а также платформой разработки был персональный компьютер с операционной системой Microsoft Windows ХР и библиотекой OpenGL версии не ниже 1.4.
При разработке системы были использованы следующие бесплатные программные библиотеки с открытым исходным кодом:
TinyXML - программная библиотека, позволяющая производить грамматический разбор текста на языке XML. Библиотеку легко встраивать в различные приложения.
CAL3D — программная библиотека, позволяющая производить анимацию персонажей, используя технику скелетной анимации. Библиотека написана на языке C++, является кросс-платформенной и предоставляет удобные инструменты для интеграции с трехмерными данными.
Glew - программная библиотека, предназначенная для загрузки OpenGL
расширений. Библиотека является кросс-платформенной и предоставляет эффективный механизм для определения расширений OpenGL, поддерживаемых на используемой платформе.
Freelmage - программная библиотека, обеспечивающая поддержку популярных графических форматов, таких как PNG, BMP, JPEG, TIFF и многих других. Библиотека обладает высокой производительностью, ее легко использовать, она является потоково безопасной и совместима со всеми 32 битными версиями Windows, Linux, Mac OS X. Библиотека предоставляет интерфейс ANSI С и обертку для языка C++ и многих других.
zlib - программная библиотека, позволяющая производить сжатие данных без потерь. Формат данных zlib является кросс-платформенным.
BOOST - набор программных библиотек, расширяющих стандартную библиотеку языка C++. Десять библиотек из этого набора уже включены комитетом стандартизации C++ в следующую редакцию стандарта. Библиотеки расширяют возможности для обработки строк и текста, предоставляют дополнительные контейнеры, итераторы, алгоритмы, функциональные объекты, инструменты для обобщенного программирования и шаблонного метапрограммирования, математические функции, средства автоматического тестирования программного кода, структуры данных, средства ввода-вывода и работы с оперативной памятью, средства грамматического разбора.
Для программирования видео под системы персонального компьютера использовалась библиотека OpenGL версии 1.4.
Специальные инструкции процессора Pentium IV были задействованы посредством использования компилятора ICC 8.
В качестве источника трехмерных данных использовался пакет трехмерного моделирования 3D Studio МАХ. Для этого пакета была разработана специальная встраиваемая программа, позволяющая производить экспорт трехмерных данных в собственный формат. Источником растровых изображений служил пакет Adobe Photoshop, использовались форматы TGA и DDS.
При разработке набора специализированных библиотек были использованы широко известные алгоритмы. Для вычисления позиции объектов использовался аппарат линейной алгебры, а для вычисления ориентации математика кватернионов. Для структурирования пространственных данных использовались квадратичные и восьмеричные деревья. Отсечение невидимых объектов производилось по конусу видимости и дальности для виртуальной камеры. Для повышения производительности использовался алгоритм уровней детализации объектов. В основу разработки метода визуализации больших ландшафтов были положены два алгоритма - GeoMipMap и Chunked Lod.
Положения, выносимые на защиту
На защиту выносятся:
метод визуализации земной поверхности Chunked МірМар, основанный на
реіулярной сетке и квадратичном дереве для структурирования данных с использованием коэффициентов перехода между уровнями детализации позволяет производить отображение и изменение ландшафта в реальном времени с эффективностью на 30% выше известного метода Geo МірМар;
алгоритм расчета столкновения шасси военной техники с земной
поверхностью использующий процедуру упорядоченного перебора
элементов поверхности с учетом особенностей многоточечного шасси
позволяет сократить время расчета по сравнению с известными алгоритмами в три раза;
комплексная методика оптимизации временной диаграммы вычислительного процесса, основанная на алгоритмах структурирования пространственных данных, алгоритмах отсечения невидимых примитивов, алгоритмах оптимизации конвейера расчета изображений использующая, критерий оценки качества изображения на основе экспертных оценок, позволяет произвести адаптацию программ расчета изображения к вычислительным средствам и упростить выбор оптимальной комбинации параметров отображения сцены;
использование библиотеки программ для генерации и отображения изображений на выходе специализированных оптико-электронных устройств, реализующей метод отображения ландшафта Chunked МірМар, алгоритм расчета столкновений шасси военной техники с ландшафтом, содержащей комплексную методику оптимизации временной диаграммы, существенно облегчает разработку систем визуализации нового поколения тренажеров военной техники в соответствии со специальными требованиями;
программный модуль визуализации боевой обстановки комплексного тренажера нового поколения военной техники (МТТ72Б) обеспечивает высокое качество отображения боевой обстановки и удовлетворяет специальным требованиям для нового поколения тренажеров военной техники.
Внедрение
На основе представленного набора специализированных библиотек была разработана система визуализации многофункционального тренажера экипажа танка Т-72Б. Тренажер представляет собой программно-аппаратный комплекс, предназначенный для обучения механика-водителя, наводчика-оператора и командира в условиях, максимально приближенных к реальным условиям. Система визуализации предназначена для отображения боевой обстановки, наблюдаемой обучасмьш контингентом. Мобильный тренажер экипажа танка разработан Российской компанией ООО «Модернизация Авиационных Комплексов». Программный модуль внедрен в компании 000 «Модернизация Авиационных Комплексов», акт о внедрении от 10 декабря 2003 г. Тренажер нового поколения с внедренным программным модулем поставлен на вооружение в армии Беларуси в 2004 году.
Гибкая программная архитектура библиотеки позволяет легко модифицировать старые и наращивать новые возможности, что позволяет применять ее в других приложениях:
библиотека внедрена в программно-аппаратный комплекс медицинской
диагностики DDFAO [113] в компании ЗАО «Мастер Медиа», акт о
внедрении от 23 сентября 2004 г;
библиотека внедрена в пакет программ SecuraVista [115] Российской компанией «Люксофт» [116], акт о внедрении от 14 марта 2005 г;
библиотека внедрена в систему программно-технического комплекса документального обеспечения аварийно-спасательных работ АИСДО-ЧС Российской компании ООО «Трест-Р», акт о внедрении от 31 января 2006 г.
Апробация
Практическая проверка основных положений и результатов диссертационной работы произведена в ООО «Модернизация Авиационных Комплексов», ЗАО «Мастер Медиа», ООО «Люксофт», ООО «Трест-Р».
Предварительная защита диссертации проведена на заседании кафедры "Космические информационные системы" факультета "Аэрофизики и космических исследований" Московского физико-технического института.
Основные результаты диссертации опубликованы в работах [107][108][109] и доложены на семинаре молодых специалистов ФГУП ЦНИИ Комета и на научно-техническом семинаре компании ООО "Люксофт".
Личный вклад
Автором разработан программный комплекс визуализации тренажера нового поколения наземной техники. Разработана и отлажена специализированная библиотека для языка программирования C++, предназначенная для генерации изображений в реальном времени, и позволяющая на своей основе разрабатывать системы визуализации реального времени. Разработан оригинальный метод визуализации больших открытых пространств. На основе известных методов разработаны и программно реализованы следующие алгоритмы: управление вычислительным процессом, расчет столкновения с земной поверхностью, выгрузка трехмерных моделей из пакета моделирования, отображение трехмерных моделей, построение и использование восьмеричного дерева для структурирования пространственных данных, отображение большого модифицируемого ландшафта, расчет затенений, расчет уровней детализации, система скелетной анимации людей, система фреймовой анимации объектов, быстрый расчет пересечений геометрических объектов, система отображения сетки прицелов и их специальных режимов работы, система частиц и отображение специальных эффектов (таких как огонь, дым, взрыв).
Автором решены следующие задачи:
разработан метод отображения большого модифицируемого ландшафта;
разработан алгоритм расчета столкновений многоточечного шасси военной техники с земной поверхностью;
разработана комплексная методика оптимизации временной диаграммы вычислительного процесса;
разработана и отлажена специализированная библиотека на языке C++ для построения систем визуализации реального времени;
на основе библиотеки построены системы визуализации и внедрены в конкретные технические приложения.
Краткое описание структуры работы
Работа содержит 160 страниц, введение, 5 глав, выводы, 2 приложения, 107 рисунков, 4 таблицы.
В главе 1 производится постановка задачи. Рассматриваются особенности работы симуляторов реального времени. Производится анализ доступных в свободной продаже систем и их сопоставление с требованиями. Производится анализ специальных требований к системам визуализации тренажеров наземной техники. На основе анализа специальных требований разрабатываются принципы построения системы визуализации. Система визуализации состоит из нескольких компонент, основными из которых является графический конвейер и набор управляющих программ. Графический конвейер состоит из трех основных компонент: формирование данных, геометрическая обработка и растеризация. Набор управляющих программ представляет собой средства для начальной инициализации конвейера и взаимодействия с внешней средой. Для построения этих компонент используются некоторые известные методы и алгоритмы, описание которых представлено в приложении, программная реализация описана в главе 4. Для отображения больших ландшафтов разработан оригинальный метод, рассматриваемый в главе 2.
Во второй главе разрабатывается оригинальный метод визуализации ландшафта. Метод разрабатывается в соответствии со специальным требованием изменять ландшафт в реальном масштабе времени. При этом требуется обеспечить соблюдение временной диаграммы. Основная проблема визуализации открытых пространств - слишком большой объем данных для интерактивной визуализации, следовательно, необходимо его уменьшить. Существуют две идеи, позволяющие значительно уменьшить объем данных для визуализации: отсечение невидимых участков ландшафта и визуализация удаленных участков с меньшей детализацией. Уровни детализации играют значительную роль в визуализации открытых пространств, поскольку, что нет необходимости отображать удаленные участки ландшафтов в полной детализации. Методы уменьшения детализации удаленных участков ландшафта делятся на два больших класса - основанные на регулярной сетке и основанные на нерегулярной сетке. Одним из наиболее широко используемых методов визуализации ландшафтов на основе регулярной сетки является Fast Terrain Rendering Using Geometrical MipMapping. Автором этого метода, опубликованного в 2000 году, является Willem Н. de Boer. Он предложил использовать для создания уровней детализации ландшафта технику, похожую на создание МІР уровней при текстурировании (отсюда MipMapping в названии). Одним из самых популярных методов визуализации открытых пространств на основе нерегулярной сетки является Rendering Massive Terrains using Chunked Level of Detail Control. Автор работы — Thatcher Ulrich, работа была представлена на конференции Siggraph 2002. Основной идеей разработанного метода была интеграция регулярной сетки со способом хранения данных, использующимся в методе Chunked LOD. Для этого был разработан метод подготовки данных, позволяющий не только быстро получать уровни детализации менее детализированных участков ландшафта из более детализированных участков (и наоборот), но и работать с регулярной сеткой.
В главе 3 проведен анализ методов оптимизации, как с точки зрения алгоритмов, так и с точки зрения аппаратной части. Рассматриваются методы оптимального представления пространственных данных, такие как деревья бинарного разбиения пространства, квадратичные и восьмеричные деревья. Структурирование пространственных данных представляет собой механизм организации геометрических примитивов в пространстве R". Рассматриваются только двумерные и трехмерные структуры, но идеи могут быть обобщены для любых размерностей. Такие структуры данных могут существенно ускорять решение задачи поиска пересечений геометрических сущностей. Эта задача часто возникает при реализации алгоритмов отсечения, при проверке пересечений и трассировке луча, при определении столкновений. Рассмотрены
следующие пространственные структуры данных: иерархия ограничивающих объемов (Bounding Volume Hierarchies, BVH), BSP-дерево (Binary Space Partition, Бинарное разбиение пространства), восьмеричное дерево (octree). BSP-дерево и
восьмеричное дерево являются структурами данных, основанными на пространственном разбиении. Рассматриваются методы отсечения невидимой геометрии, такие как отсечение обратных полигонов, отсечение объемом видимости, отсечение скрывающими объектами, портальное отсечение. Под отсечением примитива понимается удаление его из списка примитивов, предназначенных для дальнейшей обработки. Методами отсечения, использующимися для построения изображения, являются: отсечение обратных полигонов (backface culling), отсечение объемом видимости (view frustum culling),
отсечение скрывающими объектами (occlusion culling). Разобран метод перекрывающего горизонта и работа аппаратных тестов перекрытия. Дано представление о работе алгоритма иерархической z-буферизации. Исследован метод уровней детализации, позволяющий увеличивать производительность. Рассмотрены схемы переключения уровней детализации и стратегии выбора текущего уровня. Подробно рассмотрена аппаратная архитектура графического процессора и методы оптимизации задачи по нее. Приведена методика измерения производительности. Описаны методы оптимизации найденных узких мест. Приведены некоторые советы по написанию программного кода и использованию специальных инструкций процессора. Рассмотрены методы оптимального доступа к оперативной памяти. Рассмотрены принципы балансировки графического конвейера. Описано использование многопроцессорных систем в задачах визуализации.
В главе 4 рассматриваются вопросы программной реализации выбранных принципов построения системы визуализации. Система визуализации, представляет собой набор библиотек для языка программирования C++, предназначенный для построения программ, генерирующих изображения в реальном времени. Система визуализации состоит из следующих проектов (в терминологии Microsoft Visual Studio): Core -содержит базовые классы, необходимые для функционирования системы визуализации, Anim - содержит базовые классы необходимые для проигрывания трех типов анимаций -скелетной, фреймовой, морфииговой, а также высокоуровневые средства для работы с последовательностями анимаций, PS - содержит базовые классы, необходимые для создания систем частиц (particle system), Viewer - пример приложения построенного на основе библиотеки. Подсистема Core является основным модулем библиотеки, отвечающим за реализацию графического конвейера и набора управляющих программ. Основными сущностями в ней являются: World, Atomic, Geometry, Model3d, Material, ResourccFinder, ResourceManager, Camera, Light. Подсистема Anim отвечает за анимацию объектов, на этапе формирования данных для геометрической обработки. В подсистеме реализованы три типа анимации: фреймовая, скелетная и морфинговая. Основными сущностями подсистемы Anim являются: Animation, AnimationControlier, AnimWorld, SequencePlayer. Подсистема PS отвечает за реализацию эффектов, основанных на системах частиц. Модули подсистемы исполняются на всех трех этапах графического конвейера. Реализованы эффекты взрыв, огонь, дым, дождь, снег и т.д. Основными сущностями подсистемы PS являются: ParticleFacade, Particle, Interpolator, ParticleRenderer, ParticleSystem. Глава дает представления о рассматриваем программном продукте с точки зрения его внутреннего наполнения. Также можно сделать заключение об его возможном использовании в качестве модуля визуализации в сторонних программных продуктах. Рассмотрены сущности составляющие основу библиотеки визуализации, их отношения и использование. Подробно рассмотрена реализация метода отображения большого, подверженного изменениям, ландшафта, и его сравнения с другими известными методами. Алгоритм отображения больших модифицируемых ландшафтов описан во второй главе. Его реализация находится в составе библиотеки визуализации в
программном модуле Core. Показаны источники данных для системы визуализации и методы получения данных. Данными для визуализации являются компоненты описания виртуальной сцены. Основными компонентами этого описания являются следующие: геометрическая форма объектов составляющих сцену (трехмерные модели), цветовое представление этих объектов (материалы и текстуры), параметры источников освещения. Описана предварительная обработка данных. Представлена реализация методов оптимизации расчета изображения, таких как, структурирование пространственных данных, отсечение пирамидой видимости, использование уровней детализации.
В главе 5 рассмотрены вопросы разработки системы визуализации тренажерного комплекса МТТ72Б. Дано описание программной и аппаратной среды тренажера. Описано взаимодействие программной среды тренажера с системой визуализации. Приведены результаты испытаний тренажерного комплекса и результаты работы системы визуализации.
В выводах подводится итог проделанной работы, дано направление дальнейшего развития и приведены основные результаты работы.
В приложении 1 дан обзор методов и технологий, применяющихся при построении систем визуализации. Рассмотрена архитектура аппаратной части системы визуализации, ее вклад в процесс генерации изображения. Подробно разобран процесс построения изображения состоящий из трех основных этапов: подготовка данных, геометрическая обработка, растеризация. Описаны математические методы, составляющие основу представления объектов в трехмерном пространстве позволяющие производить следующие действия: перемещение, вращение, масштабирование, сдвиг. Дано понятие однородной системы координат. Дано понятие преобразования Эйлера и метода вращения геометрического объекта вокруг произвольной оси. Рассмотрен метод интерполированного вращения с использованием кватернионов.
В приложении 2 даны примеры использования библиотеки программ для визуализации в задачах построения систем медицинской диагностики и систем проектирования и анализа охранных решений.