автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.01, диссертация на тему:Система визуализации для нового поколения тренажеров военной техники

кандидата технических наук
Тотмаков, Алексей Сергеевич
город
Москва
год
2006
специальность ВАК РФ
05.13.01
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Система визуализации для нового поколения тренажеров военной техники»

Автореферат диссертации по теме "Система визуализации для нового поколения тренажеров военной техники"

на правах рукописи

Тотмаков Алексей Сергеевич

Система визуализации для нового поколения тренажеров военной

техники

Специальность 05.13.01 - системный анализ, управление и обработка информации.

Автореферат диссертации на соискание ученой степени кандидата технических наук

Москва 2006

Работа выполнена в государственном образовательном учреждении высшего профессионального образования «Московский физико-технический институт (государственный университет)».

Научный руководитель:

кандидат технических наук, старший научный сотрудник Литовченко Дмитрий Цезариевич

Официальные оппоненты:

доктор технических наук, старший научный сотрудник Гребенкин Владимир Федорович

доктор физико-математических наук, профессор Клименко Станислав Владимирович

Ведущая организация:

ФГУП "Государственный научно-исследовательский институт авиационных систем", г. Москва.

Защита состоится 4 апреля в 15:00 на заседании диссертационного совета Д411.002.01 при ОАО "Морской

научно-исследовательский институт радиоэлектроники "Альтаир", 111024, г.Москва, ул. Авиамоторная, д. 57.

С диссертацией можно ознакомиться в библиотеке ОАО "МНИИРЭ "Альтаир ".

Автореферат разослан « 28 » февраля 2006 г.

Ученый секретарь диссертационного совета, заслуженный деятель науки РФ, доктор технических наук, профессор

истратов Анатолий Васильевич

хоовА Аобг~

Введение

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

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

Актуальность темы

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

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

Цель работы и задача исследования

Целью работы является решение научно-технической задачи, заключающейся в создании программного комплекса визуализации для нового поколения тренажерных систем военной техники.

Для достижения поставленной цели решаются следующие задачи:

РОС. НАЦ БИБЛ С.Пе

• производится анализ существующих систем визуализации, рассматриваются наиболее существенные особенности тренажеров военной техники, формулируются специальные требования к системе визуализации;

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

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

• разрабатывается библиотека программ для визуализации в симуляторах реального времени, учитывающая специальные требования тренажеров военной техники;

• разрабатывается программный комплекс визуализации боевой обстановки комплексного тренажера нового поколения МТТ72Б.

Методы разработки и исследований

Для проектирования программных модулей использовался язык проектирования UML, среда разработки - Microsoft Visio. Для реализации программных систем использовался язык С++, среда разработки - Microsoft Visual Studio. Целевой платформой, а также платформой разработки был персональный компьютер с операционной системой Microsoft Windows ХР и библиотекой OpenGL версии не ниже 1.4.

При разработке системы были использованы следующие бесплатные программные библиотеки с открытым исходным кодом:

TinyXML - программная библиотека, позволяющая производить грамматический разбор текста на языке XML. Библиотеку легко встраивать в различные приложения.

CAL3D - программная библиотека, позволяющая производить анимацию персонажей, используя технику скелетной анимации. Библиотека написана на языке С++, является кросс-платформенной и предоставляет удобные инструменты для интеграции с трехмерными данными.

Glew - программная библиотека, предназначенная для загрузки OpenGL расширений. Библиотека является кросс-платформенной и предоствляет эффективный механизм для определения расширений OpenGL, поддерживаемых на используемой платформе.

Freeimage - программная библиотека, обеспечивающая поддержку популярных графических форматов, таких как PNG, BMP, JPEG, TIFF и многих других. Библиотека обладает высокой производительностью, ее легко использовать, она является потоково безопасной и совместима со всеми 32 битными версиями Windows, Linux, Mac OS X. Библиотека предоставляет интерфейс ANSI С и обертку для языка С++ и многих других.

zlib - программная библиотека, позволяющая производить сжатие данных без потерь. Формат данных zlib является кросс-платформенным.

BOOST - набор программных библиотек, расширяющих стандартную библиотеку языка С++ Десять библиотек из этого набора уже включены комитетом стандартизации С++ в следующую редакцию стандарта Библиотеки расширяют возможное ш для обработки строк и текста, предоставляют дополнительные контейнеры, итераторы, алгоритмы, функциональные объекты, инструменты для обобщенного программирования и шаблонного метапрограммирования, математические функции, средства автоматического тестирования программного кода, структуры данных, средства ввода-вывода и работы с оперативной памятью, средства грамматического разбора.

Для программирования видеоподсистемы персонального компьютера использовалась библиотека OpenGL версии 1.4.

Специальные инструкции процессора Pentium IV были задействованы посредством использования компилятора ICC 8.

В качестве источника трехмерных данных использовался пакет трехмерного моделирования 3D Studio МАХ. Для этого пакета была разработана специальная встраиваемая программа, позволяющая производить экспорт трехмерных данных в собственный формат. Источником растровых изображений служил пакет Adobe Photoshop, использовались форматы TGA и DDS.

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

невидимых объектов производилось по конусу видимости и дальности для виртуальной камеры. Для повышения производительности использовался алгоритм уровней детализации объектов. В основу разработки метода визуализации больших ландшафтов были положены два алгоритма -GeoMipMap и Chunked Lod.

Положения, выносимые на защиту

На защиту выносятся:

• метод визуализации земной поверхности Chunked MipMap, основанный на регулярной сетке и квадратичном дереве для структурирования данных с использованием коэффициентов перехода между уровнями детализации, позволяет производить отображение и изменение ландшафта в реальном времени с эффективностью на 30% выше известного метода Geo MipMap;

• алгоритм расчета столкновения шасси военной техники с земной поверхностью, использующий процедуру упорядоченного перебора элементов поверхности с учетом особенностей многоточечною шасси, позволяет сократить время расчета по сравнению с известными алгоритмами в три раза;

• комплексная методика оптимизации временной диаграммы вычислительного процесса, основанная на алгоритмах структурирования пространственных данных, алгоритмах отсечения невидимых примитивов, алгоритмах оптимизации конвейера расчета изображений и использующая критерий оценки качества изображения на основе экспертных оценок, позволяет производить адаптацию программ расчета изображения к вычислительным средствам и упрощает выбор оптимальной комбинации параметров отображения сцены;

• использование библиотеки программ для генерации и отображения изображений на выходе специализированных оптико-электронных устройств, реализующей метод отображения ландшафта Chunked MipMap, алгоритм расчета столкновений шасси военной техники с ландшафтом, содержащей комплексную методику оптимизации временной диаграммы, существенно облегчает разработку систем визуализации нового поколения тренажеров военной техники в соответствии со специальными требованиями;

• программный модуль визуализации боевой обстановки комплексного тренажера нового поколения военной техники (ШТ72Б) обеспечивает высокое качество отображения боевой обстановки и удовлетворяет специальным требованиям для нового поколения тренажеров военной техники.

Научная новизна

Разработан метод визуализации земной поверхности Chunked MipMap Новизна метода заключается в способе хранения данных, представляющих уровни детализации ландшафта. Использование коэффициентов перехода между уровнями детализации позволяет производить адекватные изменения земной поверхности в реальном масштабе времени во всех уровнях. Хранение данных не только в листьях но и в узлах квадратичного дерева позволяет оптимально использовать ресурс графического процессора и повысить эффективность на 30% относительно известного метода Geo MipMap.

Разработан алгоритм расчета столкновения шасси военной техники с высоко детализированной земной поверхностью. Новизна алгоритма заключается в предварительном отборе элементов земной поверхности, потенциально пересекающихся с mhoi оточечным шасси Упорядочивание отобранных элементов сокращает время поиска нужного элемента. Дчя 16-ти соченного шасси алгоршм позволяет сократить время расчета до трех раз по сравнению с известными алгоритмами.

Предложена комплексная методика оптимизации временной диаграммы вычислительного процесса. Отличительной особенностью методики является использование нового критерия оценки качества изображения для выбора оптимальной комбинации параметров отображения сцены Критерий основан на экспертных оценках. Использование комплексной меюдики позволяет упростить оптимизацию и адаптацию программ расчета изображения на заданных вычислительных средствах.

Разработана библиотека программ для построения систем визуализации симуляторов реального времени, обеспечивающая генерацию и отображение изображений на выходе специализированных оптико-электронных устройств. Научная новизна библиотеки заключается в учете специальных требований тренажеров военной техники, испопьзовапии нового метода визуализации земной поверхности, алгоритма расчета столкновений для многоточечного шасси военной техники, комплексной

методики оптимизации и новых возможностей CPU и GPU последнего поколения.

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

Практическая ценность и реализация научных результатов

На основе представленной библиотеки программ для визуализации в симуляторах реального времени была разработана система визуализации комплексного многофункционального тренажера экипажа танка Т-72Б. Тренажер представляет собой программно-аппаратный комплекс, предназначенный для обучения механика-водителя, наводчика-оператора и командира в условиях, максимально приближенных к реальным условиям. Система визуализации предназначена для отображения боевой обстановки, наблюдаемой обучаемым контингентом и инструктором. Мобильный комплексный тренажер экипажа танка разработан Российской компанией ООО «Модернизация Авиационных Комплексов». Программный модуль внедрен в компании ООО «Модернизация Авиационных Комплексов», акт о внедрении от 10 декабря 2003 г. Тренажер нового поколения с внедренным программным модулем поставлен на вооружение в армии Беларуси в 2004 году.

Гибкая программная архитектура библиотеки позволяет легко модифицировать старые и наращивать новые возможности, что позволяет применять ее в других приложениях:

• библиотека внедрена в программно-аппаратный комплекс медицинской диагностики DDFAO в компании ЗАО «Мастер Медиа», акт о внедрении от 23 сентября 2004 г;

• библиотека внедрена в пакет программ SecuraVista Российской компанией «Люксофт», акт о внедрении от 14 марта 2005 г;

• библиотека внедрена в систему программно-технического комплекса документального обеспечения аварийно-спасательных работ АИСДО-ЧС

Российской компании ООО «Трест-Р», акт о внедрении от 31 января 2006 г.

Личный вклад

Автором решены следующие задачи:

• разработан метод отображения большого модифицируемого ландшафта;

• разработан алгоритм расчета столкновений многоточечного шасси военной техники с земной поверхностью;

• разработана комплексная методика оптимизации временной диаграммы вычислительного процесса;

• разработана и отлажена специализированная библиотека на языке С++ для построения систем визуализации реального времени;

• на основе библиотеки построены системы визуализации и внедрены в конкретные технические приложения.

Содержание работы

Работа содержит 160 страниц и состоит из введения, 5-ти глав, выводов, 2-х приложений, 107 рисунков, 4 таблиц.

В главе 1 производится постановка задачи. Рассматриваются особенности работы симуляторов реального времени.

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

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

На основе анализа особенностей военной техники формируются общие и специальные требования к системе визуализации реального времени. На основе этих требований выбираются принципы построения системы визуализации.

Рис 2. Общая схема функционирования системы визуализации На рисунке 2 представлена общая схема функционирования системы визуализации. На рисунке 3 изображена схема информационного взаимодействия системы визуализации с математической моделью боевой обстановки. Стоимость решения, основанного на собственной библиотеке,

оказалась существенно ниже, чем решения, основанного на готовой системе визуализации.

Рис 3. Схема информационного взаимодействия

Во второй главе на основе специальных требований к системе визуализации разрабатывается метод визуализации ландшафта.

Визуализация открытых пространств требует большого объема вычислений, которые можно производить как на стороне CPU, так и на стороне GPU. Однако большинство приложений помимо вычислений, необходимых для визуализации открытых пространств, производят также и вычисления, специфические для них. В связи с этим основное требования, предъявляемое к современным алгоритмам визуализации ландшафтов -минимально использовать ресурсы центрального процессора, освобождая их для задач моделирования.

В настоящее время современные GPU представляю i собой программируемый процессор, позволяющий преобразовывать миллионы треугольников в секунду и подстраивать графический конвейер под нужды приложения. Это позволяет переносить все большую часть вычислений на графический процессор.

Современные методы визуализации ландшафтов также должны учитывать факторы, влияющие на производительность GPU. Одним из основных факторов является время, затрачиваемое на вызов команды рисования (DIP cost). Для достижения максимальной производительности каждая из команд рисования должна передавать графическому ускорителю не менее одной тысячи треугольников.

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

необходима возможность визуализации больших массивов данных (объем которых больше объема доступной видео или оперативной памяти).

Для тренажеров военной техники необходима возможность изменения формы ландшафта в реальном времени. Это могут быть программы имитации военных действий (последствия взрывов), моделирование природных катаклизмов.

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

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

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

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

сеткой, достаточно просто локализовать участок ландшафта, в котором будут произведены изменения.

Нерегулярная сетка позволяет представить исходный ландшафт меньшим количеством треугольников по сравнению с регулярной сеткой. Следовательно, методы, основанные на нерегулярной сетке, обладают более высокой производительностью. Среди них наиболее известен метод Chunked LOD (автор работы - Thatcher Ulrich, 2002 г). Однако они не удовлетворяют специальным требованиям, т.к. не позволяют изменять форму ландшафта во время исполнения приложения. Причиной этого является потеря данных на этапе преобразования в нерегулярную сетку. Например, плоский участок ландшафта будет представлен двумя треугольниками Для внесения изменений в какой-либо фрагмент данного участка необходимо восстановить детализацию участка (иначе изменения формы не будут адекватными). Также необходимо будет перестроить структуры данных выбранного графического программного интерфейса (АРГ). Объем вычислений, необходимых для этого, слишком велик, что делает невозможным такие вычисления в реальном времени.

Одним из наиболее широко используемых методов визуализации ландшафтов на основе регулярной сетки является Fast Terrain Rendering Using Geometrical MipMapping. Автором этого метода, опубликованного в 2000 юду, является Willem H. de Boer. Он предложил использовать для создания уровней детализации ландшафта технику, похожую на создание MIP уровней при текстурировании (отсюда MipMapping в названии).

Основная идея предлагаемого метода заключается в объединении достоинств выше рассмотренных методов визуализации ландшафтов. Метод Geo MipMapp позволяет динамически изменять форму ландшафта в реальном времени. С другой стороны, метод Chunked LOD обладает рядом привлекательных достоинств. В первую очередь, это хранение данных в узлах дерева, что позволяет снизить DIP cosí по сравнению с Geo MipMapp методом. Зависимость значения DIP cosí от числа треугольников приведена на рис. 4.__

Рис 4 Зависимость времени выполнения команды отображения от количества треугольников

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

Произведено измерение производительности методов Geo MipMap, Chunked LOD и Chunked MipMap на различных задачах. Результаты сравнения представлены на рисунке 5 Приведены результаты четырех тестов, в каждом из тестов первый столбик соответствует методу Geo MipMap, второй - методу Chunked LOD, третий - разработанному методу Chunked MipMap.

На специальных задачах, требующих модификации ландшафта в реальном времени, метод Chunked MipMap имеет в 1.5 раза более высокую производительность, чем метод Geo MipMap.

На задачах, не требующих модификации ландшафта, метод Chunked MipMap проигрывает в производительности наиболее быстрому из известных методов Chunked LOD всего 20 процентов.

Результаты сравнения показывают высокую эффективность разработанного метода.

Рис 5 Итоговое сравнение производительности трех методов Geo MipMap, Chunked LOD, Chunked MipMap

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

имеются ввиду, как правило, три вещи: увеличение числа кадров в секунду (fps), увеличение разрешения (размера рассчитываемого изображения), увеличение числа объектов (деталей) в сцене и улучшение их визуального представления. Скорое i и вывода в 60-85 кадров в секунду в общем случае достаточно и, возможно, разрешение 1600x1200 обеспечивает па данный момент необходимую четкость, но нет верхней границы для сложности сцены (числа деталей составляющих сцену). Следовательно, можно сделать вывод о том, что алгоритмы оптимизации будут всегда востребованы Рассматриваются методы оптимального представления пространственных данных, такие как деревья бинарного разбиения пространства, квадратичные и восьмеричные деревья. Структурирование пространственных данных представляет собой механизм организации геометрических примитивов в пространстве R3 Здесь будут рассматриваться юлько двумерные и трехмерные структуры, но идеи могут быть обобщены для любых размерностей. Такие структуры данных могут существенно ускорять решение задачи поиска пересечений геометрических сущностей Эга задача часто возникает при реализации алгоритмов отсечения, при проверке пересечений и трассировке луча, при определении столкновений.

Организация структур пространственных данных обычно иерархическая. Основная причина использования иерархии - ускорение выполнение различных операций. В общем случае сложность алгоритмов падает с 0(п) до 0(log п). Следует отметить, что построение большинства структур пространственных данных довольно ресурсоемкая операция, которая обычно выполняется вне реального времени. Для некоторых структур возможно инкрементальное обновление в реальном времени.

Примерами пространственных структур данных являются- Иерархия ограничивающих объемов (Bounding Volume Hierarchies, BVH), BSP-дерево (Binary Space Partition, Бинарное разбиение пространства), восьмеричное дерево (octree) BSP-дерево и восьмеричное дерево являются структурами данных, основанными на пространственном разбиении. Это означае!, что все пространство сцены разбивается на подпространства, которые записываются в структуру данных. Объединение всех подпространств, содержащихся в листьях дерева, эквивалентно всему пространству сцены (листья не пересекаются). BSP-дерево является нерегулярным. Это означает, что пространство может быть поделено произвольно. Восьмеричное дерево является регулярным Это означает, что пространство делится всегда одинаково. Иерархия ограничивающих объемов не основывается на

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

Рассматриваются методы отсечения невидимой геометрии, такие как отсечение обратных полигонов, отсечение объемом видимости, отсечение скрывающими объектами, портальное отсечение. Под отсечением примитива понимается удаление его из списка примитивов, предназначенных для дальнейшей обработки. Отсекать необходимо те полигоны, которые никак не влияют на рассчитываемое изображение. Набор примитивов, оставшийся после отсечения, передается дальше по конвейеру для построения изображения. В результате часто употребляется выражение - отсечение по области видимости Отсечение применяется и в других задачах, таких как определение столкновений, расчет физической реакции, искусственный интеллект. Методами отсечения, использующимися для построения изображения, являются: отсечение обратных полигонов (backjace culling), отсечение объемом видимости (view frustum culling), отсечение скрывающими объектами (occlusion culling). Техника отсечения обратных полигонов откидывает полигоны, ориентированные к виртуальной камере обратной стороной. Ориентация каждого полигона задается порядком перечисления его вершин. Отсечение объемом видимости является более сложным, эта техника откидывает группы объектов, не попадающих в усеченный конус видимости виртуальной камеры. Отсечение скрывающими объектами является самым сложным, эта техника откидывает объекты, скрытые от виртуальной камеры другими объектами сцены. Сложность этой техники заключается в том, что необходимо иметь информацию о взаимном расположении объектов.

Исследован метод уровней детализации, позволяющий увеличивать производительность. Рассмотрены схемы переключения уровней детализации и стратегии выбора текущего уровня. Основная идея уровней детализации (Level Of Detail, LOD) заключается в использовании степени детализации отображаемого объекта, соответствующей весу объекта в рассчитываемом изображении. Под весом, в данном случае, подразумевается количество пикселей, необходимых для отображения объекта.

Алгоритм уровней детализации можно разбить на три основных этапа: генерация уровней детализации, выбор подходящего уровня детализации,

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

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

Приведена методика измерения производительности. Описаны методы оптимизации найденных узких мест.

Завершающим этапом оптимизации является выбор оптимальной комбинации параметров x=[3j,...,S„], определяющих качество Q рассчитываемого изображения при ограничениях на вычислительные ресурсы. Вектор параметров х содержит такие компоненты как: разрешение, глубина цвета, количество треугольников в сцене, размер текстур в сцене, количество активных источников освещения, параметр текстурной фильтрации. Зависимость качества изображения Q от вектора параметров х аппроксимируем кусочно-линейной функцией:

Q{Sh...,dn)=Qk+t ¿Д- Ы где Jr(Qk-Qk-,)l( h,t+r Кк). (1)

Узлы интерполяции xk=[h,b , hnk] и значение критерия качества Qk в узлах интерполяции задаются с помощью экспертных оценок Ограничения

вычислительных ресурсов задаются в виде системы линейных неравенств для трехпроцессорного вычислительного комплекса:

я

¿o+i b,(ö,-hin) <м>2 x, (2)

i«i

Со+Х с/<5, -/г J < wj т,

1-й

где т допустимое время счета, w производительность процессоров, а„ Ъ „ с / -коэффициенты определяющие вычислительную сложность программы. После этого решается задача оптимизации критерия Q по х при ограничениях (2).

В главе 4 рассматриваются вопросы программной реализации выбранных принципов построения системы визуализации. Система визуализации разработана на языке программирования С++ в среде Microsoft Visual Studio и состоит из следующих частей: Core - содержит базовые классы, необходимые для функционирования системы визуализации, Anim -содержит базовые классы необходимые для проигрывания трех типов анимаций - скелетной, фреймовой, морфинговой, а также высокоуровневые средства для работы с последовательностями анимаций, PS - содержит базовые классы, необходимые для создания систем часгиц (particle system), Viewer - пример приложения построенного на основе системы визуализации.

Рис б Отношения основных сущностей подсистемы Core Рассматриваются как общая программная архитектура системы, так и некоторые конкретные решения. Представлена схема архитектуры подсистем Core, Anim и PS.

Подсистема Core является основным модулем библиотеки. Основными сущностями в ней являются: World, Atomic, Geometry, ModeBd, Material,

ResourceFinder, ResourceManager, Camera, Light. Отношения основных сущностей приведены на рисунке 6.

В состав подсистемы Core входит модуль расчета столкновений объектов - Collision, составляющих сцену. В этом модуле реализован новый алгоритм расчета столкновений многоточечного шасси военной техники с земной поверхностью.

Подсистема Anim отвечает за анимацию объектов. В подсистеме реализованы гри типа анимации: фреймовая, скелетная и морфинговая. Все три типа анимации основаны на последовательном изменении вектора состояния объекта во времени. Вектор сосюяния вычисляется в опорных точках t„ в промежуточные моменты времени значение вектора состояния интерполируется. Фреймовая анимация - это изменение положения и ориентации объекта во времени. Вектор состояния объекта при фреймовой анимации задается матрицей вида:

X = T(t)R =

f '00 г<п rta tx

1о гп rn h

Г20 h1 Г22 iz

0 0 0 К

(3)

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

= = + . (4)

Переход от матрицы к кватернионам осуществляется по соотношениям (5), от кватернионов к матрице - по соотношениям (6):

Mq =

1-2 (ql+q1,)

2 (Я,Чу + Я.Я,)

О

2 (ад,-9,9.)

2 (адг+9Л) о

2 (адг+м,)

2(9,9, ~9»9,)

l-^ + iJ)

О

,(5)

4</„

.(6)

Основными сущностями подсистемы Anim являются: Animation, AnimationController, AnimWorld, SequencePlayer. Отношения основных сущностей приведены на рисунке 7.

Рис 7 Отношения основных сущностей подсистемы Anim

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

Взаимодействием с этой подсистемой управляет менеджер, являющийся шаблоном проектирования Facade. Т.е. пользователю подсистемы частиц нет' необходимости знать об ее внутреннем устройстве, создавать различные эффекты можно посредством менеджера. В случае необходимости можно напрямую обращаться к внутренним объектам подсистемы Основными сущностями подсистемы PS являются: ParticleFacade, Particle, Interpolator, ParticleRenderer, ParticleSystem. Отношения основных сущностей приведены на рисунке 8.

PartlcleRenderer

1

PartlcleFacade

ParticleSystem Interpolator

ф,-

1 3

Рис 8 Отношения основных сущностей подсистемы PS

Глава лает представление о рассматриваемом программном продукте с точки зрения его внутреннего наполнения. Также можно сделать заключение об его возможном использовании в качестве модуля визуализации в сторонних программных продуктах. Рассмотрены сущности, составляющие основу библиотеки визуализации, их отношения и использование Подробно рассмотрена реализация метода отображения большого, подверженного изменениям, ландшафта, и его сравнение с другими известными методами. Алгоритм отображения больших модифицируемых ландшафтов описан во второй главе. Его реализация находится в составе библиотеки визуализации в программном модуле Core. Для использования этого метода необходимо задать исходные данные и произвести настройку алгоритма посредством настроечного файла.

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

Проведена оптимизация временной диаграммы вычислительного процесса на основе методов рассмотренных в предыдущей главе, таких как, структурирование пространственных данных, отсечение пирамидой видимости, использование уровней детализации.

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

В главе 5 рассмотрены вопросы внедрения системы визуализации в программную среду комплексного тренажера танка Т-72Б.

Результатом работы является программное обеспечение тренажера экипажа танка Т72Б. Внедрение результатов работы позволило качественно улучшить характеристики тренажерного комплекса по сравнению с

предыдущим поколением. Далее на рисунках приведены примеры работы тренажерного комплекса и его составляющие.

Рис 9 Слева вид через прицел 1К13, справа карта полигона

Рис 10 Слева - прохождение препятствия "колейный мост ", справа -

карта полигона

Рис 11 Места обучаемых командира, наводчика-оператора, механика-

водителя.

На Рис 12 произведено сравнение характеристик разработанного тренажера и тренажера состоящего на данный момент на вооружении.

Параметр тренажер на вооружении новый тренажер

модель шасси 10 Гц, упрощенная, 4-х точечная 50 Гц сложная, 16-ти точечная

количество одновременно обучаемых 1 чел 3 чел (полный экипаж Т72)

возможность совместной работы тренажеров Нет одновременное совместное обучение до девяти экипажей на одном полигоне

одновременная работа всех оптико-электронных устройств танка Нет Есть

разрешение изображения на оптико- электронных устройствах 640x480 точек 1280x1024 точек

число элементов составляющих виртуальную сцену - полигон (боевое окружение) 100000 шт 1000000 шт

число элементов составляющих кадр 10000 шт 100000 шт

объем текстур на полигон 18 Mb 64 МЬ

детализация земной поверхности в окрестностях дороги 1 метр 0 2 метра

ночные режимы работы оптико-электронных устройств Нет Есть

задымление области видимости оптико-электронных устройств при выстреле Нет Есть

возможность модификации земной поверхности Нет Есть

отбрасывание теней Нет Есть

количество полигонов в составе тренажера 2 ил- 4 шт

Рис 12 Сравнение характеристик тренажеров

В приложении 1 дан обзор методов и технологий, применяющихся при построении систем визуализации. Рассмотрена архитектура аппаратной части системы визуализации, ее вклад в процесс генерации изображения. Подробно разобран процесс построения изображения, состоящий из трех основных этапов- подготовка данных, геометрическая обработка, растеризация. Описаны математические методы, составляющие основу представления объектов в трехмерном пространстве позволяющие производить следующие действия: перемещение, вращение, масштабирование, сдвиг. Дано понятие однородной системы координат. Дано понятие преобразования Эйлера и метода вращения геометрического объекта вокруг произвольной оси Рассмотрен метод интерполированного вращения с использованием кватернионов.

В приложении 2 представлены результаты внедрения в программно

аппаратный комплекс медицинской диагностики DDFAO и в пакет программ

SecuraVista предназначенный для проектирования охранных систем.

В выводах подводится итог проделанной работы, дано направление

дальнейшего развития и приведены основные результаты работы.

Основные результаты

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

• Разработан новый метод Chunked MipMap для отображения больших открытых пространств земной поверхности, обеспечивающий увеличение производительности на 30% по сравнению с известным методом Geo MipMap.

• Разработан новый алгоритм расчета столкновений 16-ти катков танка с земной поверхностью, позволяющий сократить время расчета в три раза по сравнению с классическим алгоритмом.

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

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

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

Разработана библиотека программ для построения систем визуализации в симуляторах реального времени. Библиотека состоит из трех основных компонентов: Core - содержит базовые классы, необходимые для функционирования системы визуализации, Anim -содержит базовые классы, необходимые для реализации трех типов анимаций: скелетной, фреймовой, морфинговой, а также высокоуровневые средства для работы с последовательностями анимаций, PS - содержит базовые классы, необходимые для создания эффектов, основанных на системах частиц, таких как: огонь, взрыв, дым.

Разработан программный комплекс визуализации тренажера нового поколения военной техники (на примере тренажера танка Т-72Б). Программный комплекс визуализации состоит из универсальной библиотеки и специализированных программ, обеспечивающих интеграцию в программную среду тренажера. Программный комплекс внедрен в поставленный на вооружение тренажер танка МТТ72Б.

Произведено также внедрение результатов диссертационной работы в следующих проектах:

о На основе библиотеки разработан модуль отображения результатов обследования пациента методом измерения электрической проводимости тела. Модуль интегрирован и внедрен в программно-аппаратный комплекс медицинской диагностики DDFAO.

о На основе библиотеки разработан модуль визуального представления большого индустриального объекта, охранных систем, установленных на нем, и их зон видимости. Модуль

интегрирован и внедрен в программный комплекс Secura Vista Suite.

о На основе библиотеки разработан модуль визуального представления комплекта документального обеспечения аварийно-спасательных работ АИСДО-ЧС.

Список авторских публикаций по теме диссертационной работы

[1] Литовченко Д.Ц., Тотмаков A.C., "Конвейер расчета изображений в интерактивных системах визуализации", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006 г.

[2] Литовченко Д.Ц., Тотмаков А С., "Манипуляция объектами в трехмерном пространстве", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006 г.

[3] Литовченко Д.Ц., Тотмаков A.C., "Методы структурирования пространственных данных", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006 г.

[4] Тотмаков A.C., "Реализация методов манипуляции объектами в интерактивных системах визуализации", Электронный журнал "Исследовано в России", № 167,2005 г. http://zhurnal.ape.relarn.ru/articles/2005/167.pdf.

[5] Тотмаков A.C., "Оптимизация доступа к пространственным данным" Электронный журнал "Исследовано в России", № 168, 2005 г. http://zhurnal.ape.relarn.ru/articles/2005/168.pdf.

[6] Тотмаков A.C., "Оптимизация качества визуализации при ограничении на вычислительные ресурсы", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006 г.

[7] Тотмаков A.C., "Метод отображения модифицируемого ландшафта с использованием коэффициентов перехода между уровнями детализации", Космические информационно-управляющие системы, выпуск 1. М: ФГУП "ЦНИИ "Комета", 2006 г.

Отпечатано в копицентре «СТ ПРИНТ» Москва, Ленинские горы, МГУ, 1 Гуманитарный корпус. www.stprint.ru e-mail: zakaz@stprint.ru тел.: 939-33-38 Тираж 100 экз. Подписано в печать 11.02.2006 г.

2,Q0£A

Оглавление автор диссертации — кандидата технических наук Тотмаков, Алексей Сергеевич

Список используемых терминов.

Введение.

1. Постановка задачи.

1.1 Особенности симуляторов реального времени.

1.2 Анализ доступных универсальных систем визуализации.

1.3 Специальные требования к системе визуализации.

1.4 Выбор принципов построения интерактивной системы визуализации реального времени.

2. Разработка метода отображения модифицируемого ландшафта.

2.1 Постановка задачи.

2.2 Geometrical MipMapping.

2.3 Chunked Level of Detail.

2.4 Разработка Chunked MipMap метода.

3. Методы оптимизации временной диаграммы вычислительного процесса.

3.1 Структурирование пространственных данных.

3.2 Отсечение невидимых примитивов.

3.3 Оптимизация графического конвейера.

3.4 Оптимизация качества визуализации при ограничении на вычислительные ресурсы.

4. Программная реализация системы визуализации.

4.1 Разработка архитектуры системы визуализации.

4.2 Реализация метода отображения больших ландшафтов.

4.3 Получение и подготовка данных для визуализации.

4.4 Результаты оптимизации временной диаграммы вычислительного процесса.

5. Программный комплекс визуализации тренажера военной техники.

5.1 Вычислительная модель.

5.2 Технология разработки.

5.3 Программное ядро тренажера.

5.4 Интерфейс с аппаратурой.

5.5 Сетевой интерфейс.

5.6 Взаимодействие сервисного домена визуализация с моделирующим ядром.

5.7 Результаты работы.

6. Выводы.

6.1 Основные результаты.

Введение 2006 год, диссертация по информатике, вычислительной технике и управлению, Тотмаков, Алексей Сергеевич

Визуализация данных играет важнейшую роль в их интерпретации и анализе. Научно-техническая революция, произошедшая в последние годы в области вычислительной техники, обеспечила бурный прогресс в технологиях визуализации и открыла новые способы их использования. В настоящее время эти технологии имеют широкое применение в таких областях как медицина, космический мониторинг, индустрия развлечений. Актуальным является применение новейших технологий визуализации при создании симуляторных систем. В этой области основной задачей визуализации является погружение человека в симулируемую среду. В настоящий момент востребованы тренажерные системы современных видов вооружения, основу которых составляют симуляторы реального времени. Важной частью симулятора реального времени является система визуализации, состоящая из специализированных аппаратных средств. Функционирование аппаратуры обеспечивается специально разработанным программным обеспечением.

Первые разработки тренажеров военной техники с использованием компьютерных технологий в Советском Союзе начаты в начале 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 MipMap. Новизна метода заключается в способе хранения данных, представляющих уровни детализации ландшафта. Использование коэффициентов перехода между уровнями детализации позволяет производить адекватные изменения земной поверхности в реальном масштабе времени во всех уровнях. Хранение данных не только в листьях но и в узлах квадратичного дерева позволяет оптимально использовать ресурс графического процессора и повысить эффективность на 30% относительно известного метода Geo MipMap.

Разработай алгоритм расчета столкновения шасси военной техники с высоко детализированной земной поверхностью. Новизна алгоритма заключается в предварительном отборе элементов земной поверхности потенциально пересекающихся с многоточечным шасси. Упорядочивание отобранных элементов сокращает время поиска нужного элемента. Для 16-ти точечного шасси алгоритм позволяет сократить время расчета до трех раз по сравнению с известными алгоритмами.

Предложена комплексная методика оптимизации временной диаграммы вычислительного процесса. Отличительной особенностью методики является использование нового критерия оценки качества изображения для выбора оптимальной комбинации параметров отображения сцены. Критерий основан на экспертных оценках. Использование комплексной методики позволяет упростить оптимизацию и адаптацию программ расчета изображения на заданных вычислительных средствах.

Разработана библиотека программ для построения систем визуализации симуляторов реального времени, обеспечивающая генерацию и отображение изображений на выходе специализированных оптико-электронных устройств. Научная новизна библиотеки заключается в учете специальных требований тренажеров военной техники, использовании нового метода визуализации земной поверхности, алгоритма расчета столкновений для многоточечного шасси военной техники, комплексной методики оптимизации и новых возможностей CPU и GPU последнего поколения.

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

Методы разработки и исследования

Для проектирования программных модулей использовался язык UML, среда разработки - Microsoft Visio. Для реализации программных систем использовался язык С++, среда разработки - Microsoft Visual Studio. Целевой платформой, а также платформой разработки был персональный компьютер с операционной системой Microsoft Windows ХР и библиотекой OpenGL версии не ниже 1.4.

При разработке системы были использованы следующие бесплатные программные библиотеки с открытым исходным кодом:

TinyXML - программная библиотека, позволяющая производить грамматический разбор текста на языке XML. Библиотеку легко встраивать в различные приложения.

CAL3D — программная библиотека, позволяющая производить анимацию персонажей, используя технику скелетной анимации. Библиотека написана на языке С++, является кросс-платформенной и предоставляет удобные инструменты для интеграции с трехмерными данными.

Glew - программная библиотека, предназначенная для загрузки OpenGL расширений. Библиотека является кросс-платформенной и предоставляет эффективный механизм для определения расширений OpenGL, поддерживаемых на используемой платформе.

Freelmage - программная библиотека, обеспечивающая поддержку популярных графических форматов, таких как PNG, BMP, JPEG, TIFF и многих других. Библиотека обладает высокой производительностью, ее легко использовать, она является потоково безопасной и совместима со всеми 32 битными версиями Windows, Linux, Mac OS X. Библиотека предоставляет интерфейс ANSI С и обертку для языка С++ и многих других. zlib - программная библиотека, позволяющая производить сжатие данных без потерь. Формат данных zlib является кросс-платформенным.

BOOST - набор программных библиотек, расширяющих стандартную библиотеку языка С++. Десять библиотек из этого набора уже включены комитетом стандартизации С++ в следующую редакцию стандарта. Библиотеки расширяют возможности для обработки строк и текста, предоставляют дополнительные контейнеры, итераторы, алгоритмы, функциональные объекты, инструменты для обобщенного программирования и шаблонного метапрограммирования, математические функции, средства автоматического тестирования программного кода, структуры данных, средства ввода-вывода и работы с оперативной памятью, средства грамматического разбора.

Для программирования видеоподсистемы персонального компьютера использовалась библиотека OpenGL версии 1.4.

Специальные инструкции процессора Pentium IV были задействованы посредством использования компилятора ICC 8.

В качестве источника трехмерных данных использовался пакет трехмерного моделирования 3D Studio МАХ. Для этого пакета была разработана специальная встраиваемая программа, позволяющая производить экспорт трехмерных данных в собственный формат. Источником растровых изображений служил пакет Adobe Photoshop, использовались форматы TGA и DDS.

При разработке набора специализированных библиотек были использованы широко известные алгоритмы. Для вычисления позиции объектов использовался аппарат линейной алгебры, а для вычисления ориентации математика кватернионов. Для структурирования пространственных данных использовались квадратичные и восьмеричные деревья. Отсечение невидимых объектов производилось по конусу видимости и дальности для виртуальной камеры. Для повышения производительности использовался алгоритм уровней детализации объектов. В основу разработки метода визуализации больших ландшафтов были положены два алгоритма — GeoMipMap и Chunked Lod.

Положения, выносимые на защиту

На защиту выносятся:

• метод визуализации земной поверхности Chunked MipMap, основанный на регулярной сетке и квадратичном дереве для структурирования данных с использованием коэффициентов перехода между уровнями детализации позволяет производить отображение и изменение ландшафта в реальном времени с эффективностью па 30% выше известного метода Geo MipMap;

• алгоритм расчета столкновения шасси военной техники с земной поверхностью использующий процедуру упорядоченного перебора элементов поверхности с учетом особенностей многоточечного шасси позволяет сократить время расчета по сравнению с известными алгоритмами в три раза;

• комплексная методика оптимизации временной диаграммы вычислительного процесса, основанная на алгоритмах структурирования пространственных данных, алгоритмах отсечения невидимых примитивов, алгоритмах оптимизации конвейера расчета изображений использующая, критерий оценки качества изображения на основе экспертных оценок, позволяет произвести адаптацию программ расчета изображения к вычислительным средствам и упростить выбор оптимальной комбинации параметров отображения сцены;

• использование библиотеки программ для генерации и отображения изображений на выходе специализированных оптико-электронных устройств, реализующей метод отображения ландшафта Chunked MipMap, алгоритм расчета столкновений шасси военной техники с ландшафтом, содержащей комплексную методику оптимизации временной диаграммы, существенно облегчает разработку систем визуализации нового поколения тренажеров военной техники в соответствии со специальными требованиями;

• программный модуль визуализации боевой обстановки комплексного тренажера нового поколения военной техники (МТТ72Б) обеспечивает высокое качество отображения боевой обстановки и удовлетворяет специальным требованиям для нового поколения тренажеров военной техники.

Внедрение

На основе представленного набора специализированных библиотек была разработана система визуализации многофункционального тренажера экипажа танка Т-72Б. Тренажер представляет собой программно-аппаратный комплекс, предназначенный для обучения механика-водителя, наводчика-оператора и командира в условиях, максимально приближенных к реальным условиям. Система визуализации предназначена для отображения боевой обстановки, наблюдаемой обучаемым контингентом. Мобильный тренажер экипажа танка разработан Российской компанией ООО «Модернизация Авиационных Комплексов». Программный модуль внедрен в компании ООО «Модернизация Авиационных Комплексов», акт о внедрении от 10 декабря 2003 г. Тренажер нового поколения с внедренным программным модулем поставлен на вооружение в армии Беларуси в 2004 году.

Гибкая программная архитектура библиотеки позволяет легко модифицировать старые и наращивать новые возможности, что позволяет применять ее в других приложениях:

• библиотека внедрена в программно-аппаратный комплекс медицинской диагностики DDFAO [113] в компании ЗАО «Мастер Медиа», акт о внедрении от 23 сентября 2004 г; и

• библиотека внедрена в пакет программ SecuraVisla [115] Российской компанией «Люксофт» [116], акт о внедрении от 14 марта 2005 г;

• библиотека внедрена в систему программно-технического комплекса документального обеспечения аварийно-спасательных работ АИСДО-ЧС Российской компании ООО «Трест-Р», акт о внедрении от 31 января 2006 г.

Апробация

Практическая проверка основных положений и результатов диссертационной работы произведена в ООО «Модернизация Авиационных Комплексов», ЗАО «Мастер Медиа», ООО «Люксофт», ООО «Трест-Р».

Предварительная защита диссертации проведена на заседании кафедры "Космические информационные системы" факультета "Аэрофизики и космических исследований" Московского физико-технического института.

Основные результаты диссертации опубликованы в работах [107][108][109] и доложены на семинаре молодых специалистов ФГУП ЦНИИ Комета и на научно-техническом семинаре компании ООО "Люксофт".

Личный вклад

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

Автором решены следующие задачи:

• разработан метод отображения большого модифицируемого ландшафта;

• разработан алгоритм расчета столкновений многоточечного шасси военной техники с земной поверхностью;

• разработана комплексная методика оптимизации временной диаграммы вычислительного процесса;

• разработана и отлажена специализированная библиотека на языке С++ для построения систем визуализации реального времени;

• на основе библиотеки построены системы визуализации и внедрены в конкретные технические приложения.

Краткое описание структуры работы

Работа содержит 160 страниц, введение, 5 глав, выводы, 2 приложения, 107 рисунков, 4 таблицы.

В главе 1 производится постановка задачи. Рассматриваются особенности работы симуляторов реального времени. Производится анализ доступных в свободной продаже систем и их сопоставление с требованиями. Производится анализ специальных требований к системам визуализации тренажеров наземной техники. На основе анализа специальных требований разрабатываются принципы построения системы визуализации. Система визуализации состоит из нескольких компонент, основными из которых является графический конвейер и набор управляющих программ. Графический конвейер состоит из трех основных компонент: формирование данных, геометрическая обработка и растеризация. Набор управляющих программ представляет собой средства для начальной инициализации конвейера и взаимодействия с внешней средой. Для построения этих компонент используются некоторые известные методы и алгоритмы, описание которых представлено в приложении, программная реализация описана в главе 4. Для отображения больших ландшафтов разработан оригинальный метод, рассматриваемый в главе 2.

Во второй главе разрабатывается оригинальный метод визуализации ландшафта. Метод разрабатывается в соответствии со специальным требованием изменять ландшафт в реальном масштабе времени. При этом требуется обеспечить соблюдение временной диаграммы. Основная проблема визуализации открытых пространств — слишком большой объем данных для интерактивной визуализации, следовательно, необходимо его уменьшить. Существуют две идеи, позволяющие значительно уменьшить объем данных для визуализации: отсечение невидимых участков ландшафта и визуализация удаленных участков с меньшей детализацией. Уровни детализации играют значительную роль в визуализации открытых пространств, поскольку, что пет необходимости отображать удаленные участки ландшафтов в полной детализации. Методы уменьшения детализации удаленных участков ландшафта делятся на два больших класса - основанные на регулярной сетке и основанные на нерегулярной сетке. Одним из наиболее широко используемых методов визуализации ландшафтов на основе регулярной сетки является Fast Terrain Rendering Using Geometrical MipMapping. Автором этого метода, опубликованного в 2000 году, является Willem Н. de Boer. On предложил использовать для создания уровней детализации ландшафта технику, похожую на создание MIP уровней при текстурировапии (отсюда 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 рассматриваются вопросы программной реализации выбранных принципов построения системы визуализации. Система визуализации, представляет собой набор библиотек для языка программирования С++, предназначенный для построения программ, генерирующих изображения в реальном времени. Система визуализации состоит из следующих проектов (в терминологии Microsoft Visual Studio): Core -содержит базовые классы, необходимые для функционирования системы визуализации, Anim - содержит базовые классы необходимые для проигрывания трех типов анимаций -скелетной, фреймовой, морфииговой, а также высокоуровневые средства для работы с последовательностями анимаций, PS - содержит базовые классы, необходимые для создаиия систем частиц {particle system), Viewer - пример приложения построенного на основе библиотеки. Подсистема Core является основным модулем библиотеки, отвечающим за реализацию графического конвейера и набора управляющих программ. Основными сущностями в ней являются: World, Atomic, Geometry, Model3d, Material, ResourceFinder, ResourceManager, Camera, Light. Подсистема Anim отвечает за анимацию объектов, иа этапе формирования данных для геометрической обработки. В подсистеме реализованы три типа анимации: фреймовая, скелетная и морфинговая. Основными сущностями подсистемы Anim являются: Animation, AnimationController, AnimWorld, SequencePlayer. Подсистема PS отвечает за реализацию эффектов, основанных на системах частиц. Модули подсистемы исполняются на всех трех этапах графического конвейера. Реализованы эффекты взрыв, огонь, дым, дождь, снег и т.д. Основными сущностями подсистемы PS являются: ParticleFacade, Particle, Interpolator, ParticleRenderer, ParticleSystem. Глава дает представления о рассматриваем программном продукте с точки зрения его внутреннего наполнения. Также можно сделать заключение об его возможном использовании в качестве модуля визуализации в сторонних программных продуктах. Рассмотрены сущности составляющие основу библиотеки визуализации, их отношения и использование. Подробно рассмотрена реализация метода отображения большого, подверженного изменениям, ландшафта, и его сравнения с другими известными методами. Алгоритм отображения больших модифицируемых ландшафтов описан во второй главе. Его реализация находится в составе библиотеки визуализации в программном модуле Core. Показаны источники данных для системы визуализации и методы получения данных. Данными для визуализации являются компоненты описания виртуальной сцены. Основными компонентами этого описания являются следующие: геометрическая форма объектов составляющих сцену (трехмерные модели), цветовое представление этих объектов (материалы и текстуры), параметры источников освещения. Описана предварительная обработка данных. Представлена реализация методов оптимизации расчета изображения, таких как, структурирование пространственных данных, отсечение пирамидой видимости, использование уровней детализации.

В главе 5 рассмотрены вопросы разработки системы визуализации тренажерного комплекса МТТ72Б. Дано описание программной и аппаратной среды тренажера. Описано взаимодействие программной среды тренажера с системой визуализации. Приведены результаты испытаний тренажерного комплекса и результаты работы системы визуализации.

В выводах подводится итог проделанной работы, дано направление дальнейшего развития и приведены основные результаты работы.

В приложении 1 дан обзор методов и технологий, применяющихся при построении систем визуализации. Рассмотрена архитектура аппаратной части системы визуализации, ее вклад в процесс генерации изображения. Подробно разобран процесс построения изображения состоящий из трех основных этапов: подготовка данных, геометрическая обработка, растеризация. Описаны математические методы, составляющие основу представления объектов в трехмерном пространстве позволяющие производить следующие действия: перемещение, вращение, масштабирование, сдвиг. Дано понятие однородной системы координат. Дано понятие преобразования Эйлера и метода вращения геометрического объекта вокруг произвольной оси. Рассмотрен метод интерполированного вращения с использованием кватернионов.

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

1. Постановка задачи

Заключение диссертация на тему "Система визуализации для нового поколения тренажеров военной техники"

6.10сновные результаты

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

• Разработан новый метод Chunked MipMap для отображения больших открытых пространств земной поверхности, обеспечивающий увеличение производительности на 30% по сравнению с известным методом Geo MipMap.

• Разработан новый алгоритм расчета столкновений 16-ти катков танка с земной поверхностью, позволяющий сократить время расчета в три раза по сравнению с классическим алгоритмом.

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

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

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

Разработана библиотека программ для построения систем визуализации в симуляторах реального времени. Библиотека состоит из трех основных компонентов: Core — содержит базовые классы, необходимые для функционирования системы визуализации, Anim - содержит базовые классы, необходимые для реализации трех типов анимаций: скелетной, фреймовой, морфинговой, а также высокоуровневые средства для работы с последовательностями анимаций, PS - содержит базовые классы, необходимые для создания эффектов, основанных на системах частиц, таких как: огонь, взрыв, дым.

Разработан программный комплекс визуализации тренажера нового поколения военной техники (на примере тренажера танка Т-72Б). Программный комплекс визуализации состоит из универсальной библиотеки и специализированных программ, обеспечивающих интеграцию в программную среду тренажера. Программный комплекс внедрен в поставленный на вооружение тренажер танка МТТ72Б.

Произведено также внедрение результатов диссертационной работы в следующих проектах:

• На основе библиотеки разработан модуль отображения результатов обследования пациента методом измерения электрической проводимости тела. Модуль интегрирован и внедрен в программно-аппаратный комплекс медицинской диагностики DDFAO.

• На основе библиотеки разработан модуль визуального представления большого индустриального объекта, охранных систем, установленных на нем, и их зон видимости. Модуль интегрирован и внедрен в программный комплекс SecuraVista Suite.

• На основе библиотеки разработан модуль визуального представления комплекта документального обеспечения аварийно-спасательных работ

АИСДО-ЧС.

4.2.2 Заключение

В результате работы все поставленные задачи были решены. Был разработан метод визуализации открытых пространств, обладающий следующими достоинствами:

• Возможность изменения формы ландшафта в реальном времени

• Высокая производительность

• Низкая нагрузка CPU

• Эффективное представление данных

• Возможность сжатия данных

• Возможность визуализации больших массивов данных

Программная реализация данного метода входит в состав библиотеки визуализации. Для его использования необходимо создать объект класса Landscape, воспользовавшись фабрикой для создания ландшафта Chunked MimMap.

4.3 Получение и подготовка данных для визуализации

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

В подсистеме Core существует три сущности, отвечающие за ввод-вывод данных, определяющих описание виртуальной сцены: ImageReadWrite, Model3d, CriScenelO.

Модуль ImageReadWrite отвечает за чтение и запись растровых форматов, таких как: Windows или OS/2 Bitmap (*.ВМР), DirectDraw Surface (*.DDS), Graphics Interchange Format (*.GIF), High Dynamic Range (*.HDR), Windows Icon (*.ICO), Amiga IFF (*.IFF, *.LBM), JPEG Network Graphics (*.JNG), Independent JPEG Group (*.JPG, *.JIF, *.JPEG, *.JPE), Commodore 64 Koala format (*.KOA), Multiple Network Graphics (*.MNG), Portable Bitmap (ASCII) (*.PBM), Portable Bitmap (BINARY) (*.PBM), Kodak PhotoCD (*.PCD), Zsoft Paintbrush PCX bitmap format (*.PCX), Portable Graymap (ASCII) (*.PGM), Portable Graymap (BINARY) (*.PGM), Portable Network Graphics (*.PNG), Portable Pixelmap (ASCII) (*.PPM), Portable Pixelmap (BINARY) (*.PPM), Adobe Photoshop (*.PSD), Sun Rasterfile (*.RAS), Truevision Targa files (*.TGA, *.TARGA), Tagged Image File Format (*.TIF, *.TIFF), Wireless Bitmap (*.WBMP), XI1 Bitmap Format (*.XBM), XI1 Pixmap Format

ХРМ). Этот модуль использует бесплатную библиотеку с открытым исходным кодом Freelmage (freeimage.sourceforge.net).

Модуль Model3d является интерфейсом для чтеиия и записи геометрических данных. В подсистеме Core есть три реализации этого интерфейса. CriModellO реализует интерфейс Model3d и позволят производить чтение и запись геометрических данных в двух форматах: XML и бинарном. Оба формата являются оригинальными и разработаны специально для описываемой библиотеки. ObjModellO реализует интерфейс Model3d и позволяет производить чтение и запись в открытый общедоступный формат OBJ.

Модуль CriScenelO отвечает за чтение и запись информации, описывающей наполнение виртуальной сцены. Т.е., какие объекты составляют сцену, где они расположены, характеристики источников освещения на сцене. Для данного описания используется XML.

4.3.1 Экспортирование полигональных моделей из программы трехмерного моделирования 3D Studio МАХ

Для разработки геометрических полигональных моделей на рынке представлено множество пакетов трехмерного моделирования. Одним из таких пакетов является 3D Studio Мах от компании Discreet. Этот пакет позволяет производить визуальное трехмерное моделирование. Существует возможность создавать трехмерные модели как по точным чертежам, так и по зарисовкам реального либо вымышленного объекта. В пакете существует специальный механизм, позволяющий разрабатывать дополнительные модули, которые работают в едином с пакетом адресном пространстве и имеют доступ к внутреннему представлению разрабатываемых трехмерных моделей.

Для получения данных из пакета 3D Studio Мах был написан встраиваемый модуль, позволяющий производить экспорт в форматы, реализующие интерфейс Model3d. Т.е., иными словами, этот модуль производит отображение внутреннего представления трехмерной модели 3D Studio Мах в формат Model3d. Также результатом работы этого модуля является описание виртуальной сцены в формате CriScenelO.

4.3.2 Предварительная обработка данных для визуализации

После получения данных из пакета моделирования 3D Studio Мах можно либо напрямую отправить их на визуализацию, либо произвести предварительную обработку. Предварительная обработка позволяет улучшить качество итогового рассчитываемого изображения, увеличить скорость расчета изображения, увеличить скорость загрузки данных.

Обработка полигональной модели

Полигональные модели описываются набором вершин, и способом объединения этих вершин в треугольники. Во время отображения трехмерной модели, данные для расчета поступают в порядке следования треугольников. Т.е., если модель состоит из 100 вершин и 40 треугольников, то вершины на обработку будут поступать в порядке следования треугольников — тройками. Итого для расчета будет передано 40 х 3 = 120 вершин. В случае, если вершина, составляющая треугольник, только что была обработана и находится в кэше устройства, то повторной обработки не происходит, что позволяет сэкономить аппаратные ресурсы. Задача оптимизации состоит в сортировке списка треугольников таким образом, чтобы максимально задействовать кэш устройства. На разных устройствах размер кэша различается, поэтому эта оптимизация чувствительна к аппаратуре. Оптимальное использование кэша увеличивает производительность этапа геометрической обработки от 10% до 30%.

Обработка растровых изображений

Растровое изображение описывается массивом цветовых значений. В случае использования MipMap техники при визуализации используется как изображение оригинального размера, так и его уменьшенные копии. Это позволяет увеличить скорость отображения удаленных объектов. Создание уменьшенных копий изображения происходит во время загрузки программы, при этом используется билинейная фильтрация. Существует возможность заранее создать необходимое количество уменьшенных копий изображения, при этом, поскольку это является предварительной обработкой, можно использовать сколь угодно сложные алгоритмы фильтрации. Полученный набор изображений необходимо сохранить в специальный формат Direct Draw Surface (*.DDS). Эта подготовка позволяет не только улучшить качество рассчитываемого итогового изображения, но и уменьшить время загрузки программы.

4.4 Результаты оптимизации временной диаграммы вычислительного процесса

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

Структурирование пространственных данных

В описываемой библиотеке применяется два способа структурирования пространственных данных: квадратичное и восьмеричное деревья. Применение квадратичного дерева подробно описано выше и применяется для оптимизации доступа к участкам земной поверхности. Восьмеричное дерево применяется для оптимизации доступа к объектам, не являющимися земной поверхностью. Восьмеричное разбиение пространства используется в алгоритмах отсечения объектов усеченной пирамидой видимости и в алгоритме определения столкновений. При разработке тренажера танка использование структурирования пространственных данных, в зависимости от наполнения виртуальной сцены, дало прирост производительности в алгоритме отсечения пирамидой видимости от 10% до 50%, в алгоритме определения столкновений от 20% до 30%.

Отсечение пирамидой видимости

Под отсечением пирамидой видимости понимается отбрасывание объектов, не попавших в поле зрения текущей камеры. В библиотеке был реализован алгоритм отсечения, работающий совместно со структурированием пространственных данных. Т.е., на первом этапе происходит поиск пространственных областей, попавших в конус видимости, а затем проверка объектов лежащих в этих областях. При разработке тренажера танка использование отсечения невидимых объектов дало прирост производительности процесса отображения объектов от 0% до 100%.

Уровни детализации

Под уровнями детализации понимается семейство алгоритмов и структур данных, позволяющих уменьшать объем данных для расчета при отображении некоторых объектов. При разработке тренажера танка для статических и динамических объектов использовались геометрические модели различной сложности. Используемая модель зависит от расстояния от объекта до виртуальной камеры. Этот прием позволил увеличить скорость отображения объектов от 10% до 30%. При разработке программы проектирования системы безопасности в зависимости от удаления анимированной модели человека от камеры изменялась точность расчета скелетной анимации, что позволило получить прирост производительности до 50%

5. Программный комплекс визуализации тренажера военной техники

Разработанную систему визуализации, можно использовать для построения тренажеров различных видов военной техники, таких как тренажеров наземной, воздушной и морской техники.

Рассмотрим использование системы визуализации на примере построения комплексного тренажера танка Т-72Б.

5.1 Вычислительная модель

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

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

За основу методики моделирования и технологии разработки принята методология моделирования мира в состояниях [29]. Моделируемые сущности представляются в виде совокупности объектов, взаимодействия между ними — в виде обмена событиями, являющимися единственными средствами передачи команд и данных между объектами модели.

5.2 Технология разработки

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

Как правило, информационная модель системы оформляется в виде трех рабочих продуктов: диаграмма информационной структуры системы; описания объектов и атрибутов; описания связей.

5.3 Программное ядро тренажера

Все экземпляры объектов находятся в хранилище, называемом контекстом исполнения. Контекст обеспечивает продвижение модельного времени, именование экземпляров объектов и транспорт событий.

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

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

Программная система тренажера состоит из следующих доменов:

• штатные системы. Прикладной домен, обеспечивающий моделирование внутреннего устройства и работы имитируемых приборов и узлов моделируемого объекта;

• управление обучением. Прикладной домен, включающий в себя программное обеспечение рабочего места руководителя занятий, средства выбора, редактирования, запуска и контроля выполнения учебных задач обучающимся персоналом и другие необходимые для организации обучения на тренажере подсистемы;

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

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

• ядро. Архитектурный домен, обеспечивающий общие механизмы и структуры для управления данными и системой как единым целым;

• имитация органов управления. Сервисный домен, обеспечивающий программное представление органов управления, имитируемых аппаратурой тренажера;

• интерфейс с аппаратурой. Домен реализации, обеспечивающий обмен данными с аппаратурой тренажера;

• сетевой интерфейс. Домен реализации, обеспечивающий обмен данными между компьютерами в составе тренажерного комплекса;

• интерфейс с операционной системой. Домен реализации, обеспечивающий взаимодействие тренажера с операционной системой.

Все объекты, моделируемые при работе тренажера, находятся на общем «виртуальном полигоне» - прямоугольном участке местности размером не менее 5x5 км. На каждой вычислительной машине в составе тренажера создается и обновляется, по мере необходимости, описание состояния местности и всех объектов, находящихся на ней (в обычном, «бытовом» смысле слова) с точки зрения наблюдателя. Для объектов на местности такое описание может включать текущие координаты, скорость и направление движения, положение движущихся частей объекта относительно друг друга и скорости их относительного перемещения, состояние приборов и установок объекта, доступное наблюдению извне, и иные подобные характеристики.

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

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

Система формирования аудиовизуальной обстановки работает следующим образом. Все приборы наблюдения по команде начинают и прекращают высылать в

Publisher свои параметры и текущие координаты. Объект, непосредственно осуществляющий генерацию изображения и звука, подписан на получение этих данных от всех приборов наблюдения. Специальный сторонний объект осуществляет «включение» и «выключение» выбранных приборов наблюдения. Работа системы не зависит от того, расположены ли объект, моделирующий прибор наблюдения и объект, генерирующий изображение и звук, на одной и той же вычислительной машине или на различных машинах.

5.4 Интерфейс с аппаратурой

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

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

С точки зрения объекта Hardware информационные адаптеры содержат наборы устройств следующих типов:

• битовая матрица - устройство ввода информации, считывающее байтовый массив фиксированной длины, причем каждый бит или произвольная группа битов в байте может иметь самостоятельную информационную нагрузку;

• цифровой вход - устройство ввода информации, обеспечивающее преобразование заданного числа аналоговых значений в цифровой эквивалент;

• выходная битовая матрица - устройство вывода информации, передающее байтовый массив фиксированной длины, причем каждый бит или произвольная группа битов в байте может иметь самостоятельную информационную нагрузку;

• цифровой выход - устройство вывода информации, преобразующее заданное количество цифровых значений в аналоговый эквивалент;

Размерности» устройств (количество байт в матрице, число каналов ЦАП и АЦП и т.д.) задаются для каждого информационного адаптера при его реализации. Допустимы нулевые размерности устройств, что означает отсутствие устройств данного типа на плате сопряжения, связанной с данным адаптером.

Hardware отслеживает состояние датчиков подключенных информационных адаптеров и по изменению их состояния генерирует события, основываясь на таблицах раскладки сигналов.

5.5 Сетевой интерфейс

Участвующие в работе тренажера вычислительные машины (далее по тексту в данном значении также употребляется термин «вычислительный узел») взаимодействуют по протоколу tcp/ip. С точки зрения логики тренажера вычислительные машины в его составе классифицируются следующим образом:

• группы машин, отвечающие за работу и/или моделирование одной «большой» сущности тренажера (примеры: моделируемый вертолет, рабочее место инструктора);

• внутри группы выделяются вычислительные узлы, отвечающие за выполнение отдельных функций «большой» сущности (примеры: рабочее место командира или летчика-оператора, станция визуализации, выделенный сервер упражнений в составе рабочего места инструктора).

В результате каждый вычислительный узел имеет три идентификатора:

• ip-адрес. За пределами сетевой библиотеки использоваться не должен;

• уникальный в рамках тренажера идентификатор вычислительного узла. Целое число, однозначно сопоставляющееся с 1р-адресом машины. Фактически, это синоним ip-адреса, используемый за пределами сетевой библиотеки;

• совокупность «код типа группы узлов» - «номер группы данного типа» -«тип функционального узла внутри группы» — «номер узла данного типа внутри группы». Используется в основном при загрузке объектов и инициализации системы.

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

5.6Взаимодействие сервисного домена визуализация с моделирующим ядром

Моделирующее ядро тренажера управляет процессом визуализации посредством домена Синтезируемая Обстановка (SyntheticEnviroment). В терминах шаблонов проектирования такой вид доступа можно назвать доступом через фасад.

Рис 72. Взаимодействие моделирующего ядра тренажера с системой визуализации, через фасад Синтезируемая Обстановка.

Объект SyntheticEnvironment является примитивным. Фактически, он только хранит в себе различные плагины и по заданному закону передаёт им на обработку полученные от модели события. Также он осуществляет старт/стоп визуализации и какие-либо глобальные изменения состояния системы визуализации в целом (день и ночь, выбор и перегрузка полигона на ходу).

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

Все обновления объектов, управляемых моделью, проходят через хранилище на базе SyncStorage. Все управляемые моделью объекты системы визуализации лежат в этом хранилище (указатели на объекты, если быть точным). Соответственно, если кому-то нужно перебрать все мишени, то он должен перебрать все объекты в хранилище и попытаться их привести (dynamiccast) к нужному типу.

Библиография Тотмаков, Алексей Сергеевич, диссертация по теме Системный анализ, управление и обработка информации (по отраслям)

1. Банковский Ю.М., Галактионов В. А., Ходулев А.Б., Геометрические преобразования в высокопроизводительных графических станциях, Микропроцессорные средства и системы, №3, 1988.

2. Баяковский Ю.М., Галактионов В.А., Современные проблемы компьютерной графики, лекции для молодых исследователей, М: Едиториал УРСС, с. 445-473, 2005.

3. Баяковский Ю.М., Галактионов В.А., О некоторых фундаментальных проблемах компьютерной графики, информационные технологии и вычислительные системы, №4, 2004.

4. Карманов В.Г., Математическое программирование, Москва ФМЛ, 1975.

5. Зайченко Ю.П., Исследование операций, Вища школа, Киев, 1975.

6. Abrash, Michael, Michael Abrash's Graphics Programming Black Book, Special Edition, The Coriolis Group, Inc., Arizona, 1997. www.ddj .com/articles/2001 /0165/0165f/0165f.htm

7. Cormen, Т.Н., C.E. Leiserson, and R. Rivest, Introduction to Algorithms, MIT Press, Inc., Cambridge, Massachusetts, 1990.

8. Fuchs, IL, Z.M. Kedem, and B.F. Naylor, "On Visible Surface Generation by A Priori Tree Structure", Computer Graphics, (Siggraph '80 Proceeding).

9. Fuchs, H., G.D. Abram, and E.D. Grant, "Near Real-Time Shader Display of Rigid Objects", Computer Graphics, (Siggraph '89 Proceeding).

10. Gordon, Dan, and Shuhong Chen, "Front-to-back display of BSP trees", IEEE computer Graphics and Applications.

11. James, Adam, Binary Space Partition for Accelerated Hidden Surface Removal and Rendering of Static Environments, Ph. D. Thesis, University of East Anglia, August 1999.

12. Larsson, Thomas, and Tomas Akenine-Moller, "Collision Detection for Continuously Deforming Bodies", Eurographics 2001.

13. Ratcliff, John W., "Sphere Trees for Fast Visibility Culling, Ray Tracing and Range Searching", Game Programming Gems 2.

14. Samet, Hanan, Application of Spatial Data Structures: Computer Graphics, Image Processing and GIS, Addison-Wesley, Reading. Massachusetts, 1989.

15. Samet, Hanan, The Design and Analysis of Spatial Data Structures, Adison-Wesley, Reading. Massachusetts, 1989.

16. Ulrich, Thatcher, "Loose Octrees", Game Programming Gems.

17. Hennessy, John L., and David A. Patterson, Computer Architecture: A Quantitative Approach, Second Edition, Morgan Kaufmann Publishers, 1996.

18. Akeley, K., and T. Jermoluk, "High-Perfomance Polygon Rendering", Computer Graphics (SIGGARPH '88 Proceedings), August 1988.

19. Blinn, Jim, Jim Blinn's Corner: A Trip Down the Graphics Pipeline, Morgan Kauffman Publishers, Inc., San Francisco, 1996.

20. Hearn, Donald, and M. Pauline Baker, Computer Graphics, Second Edition, Prentice-Hall, Inc., Englewoods Cliffs, New Jersey, 1994.

21. Haeberli, P., and K. Akeley, "The Accumulation Buffer: Hardware Support for High Quality Rendering", Computer Graphics (SIGGRAPH '90 Proceedings).

22. Tomas Akenine-Moller, Eric Haines, Real-Time Rendering, Second Edition, A. K. Peters, Natick, Massachusetts, 2002.

23. Streaming SIMD Extensions inverse of 4x4 Matrix, Order Number 245043-001, Intel Corporation, March 1999. developer.intel.com/vtune/compilers/cpp/matrixlib.htm.

24. Shoemake, Ken, "Animating Rotation with Quaternion Curves", Computer Graphics (SIGGRAPH '85 Proceedings).

25. Понтрягин J1.C., "Обобщения чисел", выпуск 54 серии "библиотечка квант", М., Наука, 1986

26. Смирнов В. И., "Курс высшей математики", Наука, 1969.

27. Shoemake, Ken, "Euler Angles Conversions", Graphics Gems IV, Academic Press. www.graphicsgems.com.

28. Watt, Alan, and Mark Watt, Advanced Animation and Rendering Techniques — Theory and Practice, Addison-Wesley, 1992.

29. С.Шлеер, С.Меллор. «Объектно-ориентированный анализ: моделирование мира в состояниях». Киев, «Диалектика», 1993.

30. Calver, Dean, "Vertex Decompression Using Vertex Shaders," in Engel, Wolfgang, ed., ShaderX, Wordware, May 2002. http://www.shaderx.com/

31. Catmull, Edwin, "Computer Display of Curved Surfaces," Proceedings of the IEEE Conference on Computer Graphics, Pattern Recognition and Data Structures, Los Angeles, pp. 11-17, May 1975.

32. Cox, Michael, David Sprague, John Danskin, Rich Ehlers, Brian Hook, Bill Lorensen, and Gary Tarolli, "Developing High-Performance Graphics Applications for the PC Platform," Course 29 notes at SIGGRAPH 98, 1998.

33. Culler, David E., and Jaswinder Pal Singh, with Anoop Gupta, Parallel Computer Architecture: A Hardware/Software Approach, Morgan Kaufmann Publishers Inc., San Francisco, 1998.

34. Do Carmo, Manfred P., Differential Geometry of Curves and Surfaces, Prentice-Hall, Inc., Englewoods Cliffs, New Jersey, 1976.

35. Downs, Laura, Tomas Moller, and Carlo Sequin, "Occlusion Horizons for Driving through Urban Scenery," Proceedings 2001 Symposium on Interactive 3D Graphics, pp. 121-124, March 2001.

36. Appel, Andrew W., with Maia Ginsburg, Modern Compiler Implementation in C, Cambridge University Press, 1998.

37. Foley, J.D., A. van Dam, S.K. Feiner, and J.H. Hughes, Computer Graphics: Principles and Practice, Second Edition in C, Second Edition, Addison-Wesley, Reading, Massachusetts, 1996.

38. Gigus, Z., J. Canny, and R. Seidel, "Efficiently Computing and Representing Aspect Graphs of Polyedral Objects," IEEE Transactions On Pattern Analysis and Machine Intelligence, vol. 13, no. 6, pp. 542-551, 1991.

39. Goldman, Ronald, "Matrices and Transformations," in Andrew S. Glassner, ed., Graphics Gems, Academic Press, pp. 472-475, 1990.

40. Gouraud, H., "Continuous shading of curved surfaces," IEEE Transactions on Computers, vol. C-20, pp. 623-629, June 1971.

41. Hanrahan, Pat, "A Survey of Ray-Surface Intersection Algorithms," Chapter 3 in Andrew Glassner, ed. An Introduction to Ray Tracing, Academic Press Inc., London, 1989.

42. Assarsson, Ulf, and Tomas Moller, "Optimized View Frustum Culling Algorithms for Bounding Boxes," journal of graphics tools, vol. 5, no. 1, pp. 9-22, 2000. http://www.ce.chalmers.se/staff/uffe

43. Hecker, Chris, "More Compiler Results, and What To Do About It," Game Developer, pp. 14-21, August/September 1996. http://www.d6.com/users/checker/misctech.htm

44. Hennessy, John L., and David A. Patterson, Computer Architecture: A Quantitative Approach, Second Edition, Morgan Kaufmann Publishers, 1996.

45. Hill, Steve, "A Simple Fast Memory Allocator," in David Kirk, ed., Graphics Gems III, Academic Press, pp. 49-50, 1992. http://www.graphicsgems.org/

46. Hughes, John F., and Tomas Moller, "Building an Orthonormal Basis from a Unit Vector," journal of graphics tools, vol. 4, no. 4, pp. 33-35, 1999. http://www.acm.org/jgt/papers/HughesMoller99/

47. Kempf, Renate, and Jed Hartman, OpenGL on Silicon Graphics Systems, Silicon Graphics Inc., 1998.

48. Kumar, Subodh, and Dinesh Manocha, "Hierarchical Visibility Culling for Spline Models," Graphics Interface 96, Toronto, Canada, pp. 142-150, May 1996. ftp://ftp.cs.unc.edu/pub/publications/techreports/FILE.html

49. Bartz, Dirk, James T. Klosowski, and Dirk Staneker, "K-DOPs as Tighter Bounding Volumes for Better Occlusion Performance," Visual Proceedings (SIGGRAPH 2001), p. 213, August 2001.

50. Luebke, David, Martin Reddy, Jonathan Cohen, Amitabh Varshney, Benjamin Watson, and Robert Huebner, "Advanced Issues in Level of Detail," Course 41 notes at SIGGRAPH 2001, 2001.

51. Macri, Dean, "Fast AGP Writes for Dynamic Vertex Data," Game Developer, pp. 36-42, May 2001.

52. McReynolds, Tom, David Blythe, Brad Grantham, and Scott Nelson, SIGGRAPH 99 Advanced Graphics Programming Techniques Using OpenGL course notes, 1999. www.opengl.org/developers/code/sig99/index.htmI

53. MeiBner, Michael, Dirk Bartz, Tobias Hiittner, Gordon Miiller, and Jens Einighammer, Generation of Subdivision Hierarchies for Efficient Occlusion Culling of Large Polygonal Models, Technical Report WSI-99-13, WSI/GRIS, University of Tubingen, 1999

54. Melax, Stan, "The Shortest Arc Quaternion," in Mark DeLoura, ed., Game Programming Gems, Charles River Media, pp. 214-218,2000.

55. Moller, Tomas, and John F. Hughes, "Efficiently Building a Matrix to Rotate One Vector to Another," journal of graphics tools, vol. 4, no. 4, pp. 1-4, 1999. http://www.acm.org/jgt/papers/MolIerHughes99/

56. Naylor, В., J. Amanatides, and W. Thibault, "Merging BSP Trees Yield Polyhedral Modeling Results," Computer Graphics (SIGGRAPH '89 Proceedings), pp. 115-124, July 1989.

57. Bigos, Andrew, "Avoiding Buffer Clears," journal of graphics tools, vol. 1, no. 1, pp. 1920, 1996.

58. Paul, Richard P.C., Robot Manipulators: Mathematics, Programming, and Control, MIT Press, Cambridge, Mass., 1981.

59. Ranck, Steven, "Motif-Based Static Lighting," in Mark DeLoura, ed., Game Programming Gems, Charles River Media, pp. 524-534, 2000.

60. Scott, N., D. Olsen, and E. Gannett, "An Overview of the VISUALIZE fx Graphics Accelerator Hardware," Hewlett-Packard Journal, pp. 28-34, May 1998. http://www.hp.com/hpj/98may/ma98a4.htm

61. Sears, Chris, "The Elements of Cache Programming Style," Proceedings of the 4th Annual Linux Showcase and Conference, October 2000.http://www.usenix.org/publications/library/proceedings/als2000/fullpapers/sears/searsh tml/

62. Shirman, Leon A., and Salim S. Abi-Ezzi, "The Cone of Normals Technique for Fast Processing of Curved Patches," Proceedings of Eurographics '93, vol. 12, no. 3, pp. 261272,1993.

63. Shoemake, Ken, "Quaternions and 4x4 Matrices," in James Arvo, ed., Graphics Gems II, Academic Press, pp. 351-354, 1991.

64. Shoemake, Ken, "Euler Angle Conversion," in Paul S. Heckbert, ed., Graphics Gems IV, Academic Press, pp. 222-229, 1994. http://www.graphicsgems.org/

65. Teller, Seth J., Visibility Computations in Densely Occluded Polyhedral Environments, Ph.D. Thesis, Department of Computer Science, University of Berkeley, 1992.

66. Thomas, Spencer W., "Decomposing a Matrix into Simple Transformations," in James Arvo, ed., Graphics Gems II, Academic Press, pp. 320-323, 1991. http://www.graphicsgems.org/

67. Ulrich, Thatcher, "Loose Octrees," in Mark DeLoura, ed., Game Programming Gems, Charles River Media, pp. 444-453, 2000.

68. International Standard ISO/IEC 14772-1:1997 (VRML), http://www.vrml.org/

69. Blinn, Jim, "Optimizing С++ Vector Expressions," IEEE Computer Graphics & Applications, vol. 20, no. 4, pp. 97-103, 2000. Also collected in Jim Blinn's Corner: Notation, Notation, Notation, chapter 18.

70. Zhang, Hansong, and Kenneth E. Hoff III, "Fast Backface Culling Using Normal Masks," in Proceedings 1997 Symposium on Interactive 3D Graphics, pp. 103-106, April 1997.

71. Akeley, Kurt, "The Silicon Graphics 4D/240GTX Superworkstation," IEEE Computer Graphics and Applications, vol. 9, no. 4, pp. 71-83, July 1989.

72. Akeley, Kurt, "RealityEngine Graphics," Computer Graphics (SIGGRAPH 93 Proceedings), pp. 109-116, August 1993. Added:http://www.cs.virginia.edu/~gfx/Courses/2002/BigData/papers/Case%20Studies/RealityE ngine%20Graphics.pdf

73. Booth, Rick, Inner Loops, Addison-Wesley, Reading, Massachusetts, 1997.

74. Goldman, Ronald, "Recovering the Data from the Transformation Matrix," in James Arvo, ed., Graphics Gems II, Academic Press, pp. 324-331, 1991.

75. Goldman, Ronald, "Decomposing Linear and Affine Transformations," in David Kirk, ed., Graphics Gems III, Academic Press, pp. 108-116, 1992.

76. Shoemake, Ken, "Polar Matrix Decomposition," in Paul S. Heckbert, ed., Graphics Gems IV, Academic Press, pp. 207-221, 1994. http://www.graphicsgems.org/

77. Johannsen, Andreas, and Michael B. Carter, "Clustered Backface Culling," journal of graphics tools, vol. 3, no. 1, pp. 1-14, 1998.

78. Sander, Pedro V., Xianfeng Gu, Steven J. Gortler, Hugues Hoppe, and John Snyder, "Silhouette Clipping," Computer Graphics (SIGGRAPH 2000 Proceedings), pp. 327-334, July 2000.

79. Wonka, Peter, and Dieter Schmalstieg, "Occluder Shadows for Fast Walkthroughs of Urban Environments," Computer Graphics Forum, vol. 18, no. 3, pp. 51-60, 1999.

80. Klosowski, James Т., and Claudio T. Silva, "The Prioritized-Layered Projection Algorithm for Visible Set Estimation," IEEE Transactions on Visualization and Computer Graphics, vol. 6, no. 2, pp. 108-123, April/June 2000.

81. Klosowski, James Т., and Claudio T. Silva, "Efficient Conservative Visibility Culling Using The Prioritized-Layered Projection Algorithm," IEEE Transactions on Visualization and Computer Graphics, vol. 7, no. 4, pp. 365-379, 2001.

82. Greene, Ned, Michael Kass, and Gavin Miller, "Hierarchical Z-Buffer Visibility," Computer Graphics (SIGGRAPH 93 Proceedings), pp. 231-238, August 1993.

83. Greene, Ned, Hierarchical Rendering of Complex Environments, Ph.D. Thesis, University of California at Santa Cruz, Report No. UCSC-CRL-95-27, June 1995.

84. Greene, Ned, "Hierarchical Polygon Tiling with Coverage Masks," Computer Graphics (SIGGRAPH 96 Proceedings), pp. 65-74, August 1996.

85. Greene, Ned, "Occlusion Culling with Optimized Hierarchical Z-Buffering," appears in Course 30 notes at SIGGRAPH 2001: Visibility, Problems, Techniques and Applications, 2001.

86. MeiBner, M., D. Bartz, R. Gunther, W. StraBer, "Visibility Driven Rasterization," Computer Graphics Forum, Vol. 20, No. 4, pp 283-293, 2001.

87. Garland, Michael, and Paul S. Heckbert, "Surface Simplification Using Quadric Error Metrics," Proceedings of SIGGRAPH 97, pp. 209-216, August 1997. http://graphics.cs.uiuc.edu/~garland/papers.html

88. Garland, Michael, and Paul S. Heckbert, "Simplifying Surfaces with Color and Texture using Quadric Error Metrics," IEEE Visualization 98, pp. 263-269, July 1998. http://graphics.cs.uiuc.edu/~garland/papers.html

89. Bloom, Charles, "View Independent Progressive Meshes (VIPM)," June 2000. http://www.cbloom.com/3d

90. Forsyth, Tom, "Comparison of VIPM Methods," in Mark DeLoura, ed., Game Programming Gems 2, Charles River Media, pp. 363-376, 2001.

91. Hoppe, Hugues, "Efficient Implementation of Progressive Meshes," Computers and Graphics, vol. 22, no. 1, pp. 27-36, 1998. http://research.microsofit.com/~hoppe/

92. Melax, Stan, "A Simple, Fast, and Effective Polygon Reduction Algorithm," Game Developer, vol. 5, no. 11, pp. 44-49, November 1998. http://www.melax.com/polychop/

93. Svarovsky, Jan, "View-Independent Progressive Meshing," in Mark DeLoura, ed., Game Programming Gems, Charles River Media, pp. 454-464, 2000.

94. Burwell, John M., "Redefining High Performance Computer Image Generation," Proceedings of the IMAGE Conference, Scottsdale, Arizona, June 1996.

95. Montrym, J., D. Baum, D. Dignam, and C. Migdal, "InfiniteReality: A Real-Time Graphics System," Computer Graphics (SIGGRAPH 97 Proceedings), pp. 293-302, August 1997.

96. Eckel, George, IRIS Performer Programmer's Guide, Silicon Graphics Inc., 1997. http://www.sgi.com/software/performer/manuals.html

97. Morein, Steve, "ATI Radeon HyperZ Technology," ACM SIGGRAPH/Eurographics Workshop on Graphics Hardware, Hot3D Proceedings, Switzerland, August 2000.

98. Akeley, Kurt, "RealityEngine Graphics," Computer Graphics (SIGGRAPH 93 Proceedings), pp. 109-116, August 1993. Added:http://www.cs.virginia.edu/~gfx/Courses/2002/BigData/papers/Case%20Studies/RealityE ngine%20Graphics.pdf

99. Rohlf, J., and J. Helman, "IRIS Performer: A High Performance Multiprocessing Toolkit for Real-Time 3D Graphics," Computer Graphics (SIGGRAPH 94 Proceedings), pp. 381394, July 1994.

100. Исследовательская компания CyberEdge, www.cyberedge.com

101. Производитель медицинского оборудования ООО «ДДФАО», www.ddfao.ru

102. Производитель медицинского оборудования ООО «Меди ЛД», www.medild.com

103. ООО «Люксофт» проект SecuraVista, www.luxoftlabs.com/tiki-index.php?page=Visual%20Simulations%20and%20Modeling

104. ООО «Люксофт», www.luxoft.com117. 140-ой ремонтный завод, http://www.mod.mil.by/sl01140remn.html

105. Литовченко Д.Ц., Тотмаков А.С., "Конвейер расчета изображений в интерактивных системах визуализации", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006.

106. Литовченко Д.Ц., Тотмаков А.С., "Манипуляция объектами в трехмерном пространстве", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006.

107. Литовченко Д.Ц., Тотмаков А.С., "Методы структурирования пространственных данных", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006.

108. Тотмаков А.С.," Реализация методов манипуляции объектами в интерактивных системах визуализации", Электронный журнал "Исследовано в России", № 167, 2005. httn://zhurnal.ane.relarn.ru/articles/2005/167.pdf.

109. Тотмаков А.С., " Оптимизация доступа к пространственным данным ", Электронный журнал "Исследовано в России", № 168, 2005. http://zhurnal.ape.relarn.ru/articles/2005/168.pdf.

110. Тотмаков А.С.," Правила разработки трехмерных моделей в среде 3D Studio Мах 7.0, для использования в продукте SecuraVista", внутренний отчет Люксофт, 2005.

111. Тотмаков А.С., "Форматы САПР, их сравнительные возможности и сферы применения", внутренний отчет Люксофт, 2005.

112. Тотмаков А.С., "Исследование возможности перехода с версии 3DSMax 5.1 на версию 3DSMax 6.0", внутренний отчет Люксофт, 2005.

113. Тотмаков А.С., "Сравнение средств статического анализа исходного кода для языка С++", внутренний отчет Люксофт, 2005.

114. Тотмаков А.С., "Исследование возможностей экспорта геодезических данных из гео-информационной системы ArcView 8.3", внутренний отчет Люксофт, 2005.

115. Тотмаков А.С., "Визуализация больших сцен", внутренний отчет Люксофт, 2005.

116. Тотмаков А.С., "Метод отображения модифицируемого ландшафта сиспользованием коэффициентов перехода между уровнями детализации", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006.

117. Тотмаков А.С., "Оптимизация качества визуализации при ограничении навычислительные ресурсы", Космические информационно-управляющие системы, выпуск 1, М: ФГУП "ЦНИИ "Комета", 2006.