На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Визуализация трехмерных сцен в реальном режиме времени

Статья опубликована в выпуске журнала № 1 за 1999 год.
Аннотация:
Abstract:
Авторы: Михайлюк М.В. (mix@niisi.ras.ru) - НИИСИ РАН, г. Москва, Москва, Россия, доктор физико-математических наук, Решетников В.Н. (rvn_@mail.ru) - Центр визуализации и спутниковых информационных технологий ФНЦ НИИСИ РАН (профессор), Москва, Россия, доктор физико-математических наук
Количество просмотров: 13016
Версия для печати
Выпуск в формате PDF (1.25Мб)

Размер шрифта:       Шрифт:

В тренажерных системах имитации визуальной обстановки можно выделить две составляющих – создание самой сцены и визуализация ее в реальном режиме времени во время проведения тренировки [1-3]. Для подготовки объектов сцены часто используют такие промышленные программные продукты, как 3D Studio и 3D MAX. Однако эти системы не позволяют визуализировать (рендерить) сцену в реальном режиме времени. Для этих целей приходится создавать отдельные программные средства. В ИВВС РАН разрабатывается система визуализации и анимации трехмерных моделей 3D Studio и 3D MAX с использованием Visual C++ и библиотеки OpenGL, разработанной и утвержденной в качестве графического стандарта девятью ведущими фирмами, при этом в основу была положена библиотека IRIS GL, разработанная Silicon Graphics. Поэтому использование OpenGL позволяет гарантировать надежную работу системы на различном оборудовании со всевозможными операционными системами.

Отметим некоторые функциональные возможности разрабатываемой системы визуализации [4].

·          Загрузка 3ds файла (формат системы 3D Studio) и конвертация в удобные для OpenGL форматы. Файл типа 3ds представляет собой последовательность иерархически вложенных информационных кусков – чанков (chuncks), каждый из которых содержит идентификационный номер типа куска, его длину и информационную часть. По идентификационному номеру однозначно восстанавливается структура информационной части, в которой также записаны вложенные чанки. Рекурсивно обрабатывая эту структуру, можно выделить любой элемент информации, записанной в 3ds файле сцены, и перевести его в другой удобный для дальнейшей обработки формат.

·          Визуализация объектов трехмерных сцен.

Каждый объект задается в 3ds файле множеством полигонов (треугольников). Визуализация полигона является одной из базовых операций в библиотеке OpenGl, поэтому проще всего визуализировать отдельно каждый полигон объекта с присущим ему материалом. Однако для ускорения визуализации объекта полезно использовать некоторые дополнительные возможности, предоставляемые OpenGl. Отметим некоторые из них.

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

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

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

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

·          Обработка текстурированных и нетекстурированных материалов [5].

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

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

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

·       Подпись:  
			а									б
Рис. 3
Интерфейс системы включает меню, панель инструментов, строку состояния и горячие клавиши управления. Основной составной частью является окно настройки параметров работы системы, в котором можно выбрать тип закраски (Гуро или Фонг), тип интерполяции текстур (билинейную или трилинейную), тип фона сцены (одиночный или мозаичный), задать наличие и характеристики тумана, выбрать камеру или управляемый объект и так далее. В строке состояния отображается число обрабатываемых кадров в секунду, количество источников света и общее число полигонов в сцене.

·       Характеристики работы системы зависят от характеристик графического акселератора, установленного на компьютере. При слабой поддержке акселератором возможностей OpenGl вся работа выполняется программным путем, а скорость визуализации системой больших сцен недостаточна для режима реального времени. На специализированных графических акселераторах скорость резко возрастает. Так, например, визуализация сцены международной космической станции “Альфа” (примерно 7 тыс. полигонов) на компьютере PII-233\96 с ускорителем Diamond Multimedia FireGL 1000 Pro 8Mb выполняется со скоростью около 20 кадров в секунду.

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

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

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

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

1)  построение каркасной модели ландшафта ближнего плана;

2)  создание и проецирование текстурного покрытия на построенную каркасную модель.

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

Первый этап – создание каркасной модели ландшафта – можно разделить на следующие шаги.

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

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

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

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

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

Для динамического формирования геометрии участка местности часто используется сетка высот. Рассмотрим для примера квадратный участок местности. Разобьем его на более мелкие квадраты (рис. 3а), задав равномерную прямоугольную сетку, и обозначим узлы этой сетки парами чисел (i, j), где i означает номер горизонтальной, а j – номер вертикальной линии (i, j = 0, 1, ..., N). Зададим в каждом узле решетки некоторое действительное число, выражающее высоту hi,j соответствующей точки в реальном ландшафте. Если теперь разбить каждый из мелких квадратов Ki,j на два треугольника T1i,j и T2i,j (рис. 3б) и рассматривать высоту как значение третьей координаты узловой точки в трехмерном пространстве, то множество треугольников можно расценивать как приближенную модель рассматриваемого участка местности.

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

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

Подпись:  
Рис. 4
Очевидно, что чем более густая сетка наложена на участок, тем выше качество полученной модели. С другой стороны, тем большее число полигонов придется визуализировать, в результате чего графическая система может просто не успевать производить визуализацию в реальном режиме времени. Кроме того, если участок местности представляет собой равнину или близкую к ней поверхность, то нет смысла задавать ее большим числом мелких треугольников, а достаточно разбить квадрат всего на два больших треугольника. Отсюда возникает идея заменить (где это возможно) маленькие треугольники на большие, снизив тем самым нагрузку на систему визуализации и повысив ее скорость. Более точно: пусть имеется два смежных по катету треугольника T1 и T2 с высотами hi в вершинах (рис. 4). Пусть далее задан некоторый действительный параметр e, характеризующий степень отличимости различных значений высот. Тогда, если |h1 - h4| < e и |h3 - h4| < e , то треугольники T1 и T2 можно склеить, убрав из рассмотрения вершину с высотой h4. Такой процесс склейки необходимо продолжать для всех треугольников квадрата (включая и новые получаемые треугольники) пока это возможно, то есть пока на каком-либо общем катете выполняются вышеприведенные условия. При этом очень важно, что полученное множество треугольников разных размеров, мозаикой покрывающее квадрат, также легко записать в виде стрипа, что, как уже отмечалось, сильно ускоряет процесс визуализации.

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

Список литературы

1. Решетников В.Н. Визуализация четырехмерных многообразий. //Сб. науч. тр.: Вычислительные машины с нетрадиционной архитектурой. - М., 1997.

2. Долговесов Б.С. Компьютерные системы визуализации в технологии виртуальной реальности. //Программные продукты и системы. - 1995. - №4.

3. Фомичев В.М., Долговесов Б.С. Особенности построения систем визуализации для тренажерных комплексов подготовки космонавтов //Тез. 3-й Международ. науч.-практ. конф.: Пилотируемые полеты в космос. - М., 1997.

4. Михайлюк М.В., Скворцов А.В. Получение текстурных карт для тел вращения. //Сб. науч. тр.: Вычислительные машины с нетрадиционной архитектурой. - М., 1997.

5. Михайлюк М.В., Скворцов А.В., Торгашев М.А. Система визуализации моделей 3D Studio с использованием OpenGL. //Тр. науч.-техн. сем.: Технические средства и технологии для построения тренажеров. - 1998.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=913&lang=
Версия для печати
Выпуск в формате PDF (1.25Мб)
Статья опубликована в выпуске журнала № 1 за 1999 год.

Назад, к списку статей