Главная
страница 1
УДК 629.7.05

Д.И. ВАНЮКОВА, А.А. ЗАЛУЧАНОВ, К.В. МАЛЫНКИН, П.А. СОКОЛОВ

(ЗАО НПО «Мобильные Информационные Системы», Москва).

СПЕЦИАЛИЗИРОВАННЫЕ МЕТОДЫ ВИЗУАЛИЗАЦИИ 2D И 3D ИЗОБРАЖЕНИQ В БОРТОВЫХ КАРТОГРАФИЧЕСКИХ СИСТЕМАХ

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

Введение

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



  • Быстрая перерисовка - быстрый отклик программы на смену координат и масштаба

  • Минимизация погрешностей визуализации;

  • Поддержка высокого разрешения;

  • Высокая четкость и качество картинки.

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

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

Применение на борту аппаратного ускорения позволило бы значительно снизить нагрузку на ЦПУ и увеличить производительность графической подсистемы. К сожалению, сейчас на борту не применяется техника аппаратного ускорения 2д и 3д отображения.

Для реализации отображения разработаны специальные библиотеки, которые легко встраиваются в программные продукты. Основные и наиболее распространенные из них, это библиотеки OpenGL и Directx . Directx — разработка компании Microsoft и используется только в операционных системах семейства Windows. OpenGL представляет из себя семейство открытых спецификаций и используется сообществом свободного программного обеспечения, что позволяет применить данную технологию для реализации задач визуализации на борту ЛА.



Возможности использования библиотеки OpenGL и шейдеров на борту ЛА.

Принцип работы библиотеки  OpenGL.

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




https://lh6.googleusercontent.com/dl356z2nj6b2iprrjbqbeficgs4h9hcvwi5452x3ejx9plq0jbf0fp7jmmqbytpk4zckfs_orr7nfihthj718omgx6tckjgoqyuzhimugd8hmvnvicsfh1pmvq

Схема 1. Принцип работы библиотеки OpenGl
Использование библиотеки OpenGL на борту ЛА.

Существуют множество спецификаций библиотеки OpenGL, среди которых есть спецификации, пригодные для использования в бортовых системах. К ним относятся OpenGL ES (OpenGL для встраеваемых систем) и OpenGL SC (OpenGL Safety Critical). Реализации библиотеки OpenGL базируются на этих спецификациях.

OpenGL SC – это спецификация, в которой главным приоритетом является безопасность и стабильность работы, поэтому у библиотеки ограниченный функционал и используются только необходимые функции. Тем не менее возможности этой библиотеки OpenGL позволяют решать задачи 2D визуализации картографического изображения местности и 3D изображения рельефа земной поверхности.

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

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

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

, (1)

где F - реальный размер фрагмента в сантиметрах, S - масштаб карты в сантиметре, Tex - размер текстуры, Pix - Количество пикселей в 1 сантиметре на экране.

Данный метод имеет следующие достоинства:


  1. Текстуры имеют фиксированный размер, вне зависимости от количества объектов на карте;

  2. Достигается высокая производительность;

  3. Скорость формирования изображения зависит только от масштаба и количества фрагментов, и не зависит от количества объектов на карте.

Но имеются и следующие недостатки:

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

  2. При снятии слоев объектного состава необходимо заново формировать растровое изображение фрагмента.

На рисунке 1 показан результат отображения карты с использования первого подхода. https://lh6.googleusercontent.com/hdvmbtrjbeizu3vel4mko8h6xgljvrhnooyywwabnseembe3gtsxtoshpjltkvkwmq3gfc42oh9tbsnhhlt2ultxwzvuhxkk04g6wqiaylxixzt2cxxr4h5uzg

Рисунок 1. Отображение КИМ с помощью текстур

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

Данный метод имеет следующие достоинства:



  1. Высокое качество картинки вне зависимости от масштаба;

  2. Снятие объектного состава требует лишь переформирование дисплейного списка.

Но также имеются и недостатки

  1. Скорость формирования изображения зависит от количества объектов на карте и их параметров. При большом количестве объектов, например в мегаполисе, производительность может значительно снизиться;

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

На рисунке 2 показан пример изображение с помощью второго подхода.        https://lh3.googleusercontent.com/e0ax_ceisao90rsy5uutfibbdwbvcmw9f66ysjvswyfgzhvru5nsydoxgflle03yynsfrgovvvcjaj5zr-feptwu589y189bztbuunzyw2_23yxiqfnrn1pmkq

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

Гипсометрия и «Подсветка» опасных высот. Использование шейдеров.

3D рельеф - это отображение информации о рельефе местности в трехмерном пространстве, т.е. построение изображение производится по трем параметра: широте, долготе и высоте. При отображении 3D рельефа возникает задача раскраски точки в зависимости от ее высоты и положения ЛА, а также теневой отмывки рельефа в зависимости от положения солнца по отношению к ЛА и камеры “наблюдения”. Для раскраски 3D рельефа могут быть использованы текстуры.

Текстура - растровое изображение, накладываемое на поверхность полигона, из которых состоят 3D-модели, для придания ей цвета, окраски или иллюзии рельефа. Качество поверхности текстуры определяется текселями - количеством пикселей на минимальную единицу текстуры. Так как сама по себе текстура является изображением, разрешение текстуры и её формат играют большую роль. которая впоследствии сказывается на общем впечатлении от качества 3D-графики в приложении. При использовании текстур на каждый фрагмент рельефа “натягивается” соответствующая текстура раскраски по высоте, что придает рельефу информативность. Но у такого подхода имеются следующие недостатки::


  • При изменении режима раскраски или высоты самолета необходимо пересчитать все текстуры для всех подгруженных фрагментов рельефа на ЦПУ. А затем передать все текстуры по шине на ГПУ;

  • Точность раскраски привязана к размеру текстуры. Размер текстуры должен быть 2 2 в степени n. При малом размере текстуры будут видны пиксели.

На рисунке 3 показан пример отображения рельефа с использованием текстур.https://lh5.googleusercontent.com/9jocxn8y3io_r7qokdcdpfo5elnsvcchxzlakwctel_aja2t6k_dojm7b7zchhbb7brapsw5_lmss7j0fntnjkzi1uur1s7qf3evlucmadlb0ruejzkmxovo3a

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

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

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

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



https://lh6.googleusercontent.com/v03mizecuy34l3rpieeoztmqopd89zdgufko_op_9wpdx1cobux_diou3g56uwplmaz4fybje9lm92vbck7k2bvifhw-3lwdwtfpzft_bmi9cthunz18

Листинг 1. Функция ColorHeight(h) - возвращает цвет, которым будет раскрашена высота h.

На рисунке 4 показан пример раскраски рельефа с использованием шейдеров. https://lh3.googleusercontent.com/fsiw-8g_ddtbhwus2rlpofbhz26mavkw3duhj53nvz5qcvqigzlol1uksziatsrd-pzb2_rlntistudmvxjr82b8_fhm9grrg1cbm0veq9ah7qif4kgzinfcga



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

Использование шейдеров позволяет достигнуть следующих результатов:



  • Рагрузка ЦПУ;

  • Разрузка шины;

  • Повышение точности раскраски до пикселя;

  • Повышение отзывчивости графической подсистемы.


Заключение

Современные методы и технологии позволяют отображать картинку очень высокого качества. Но к сожалению на практике это реализовано только на персональных компьютерах и на наземных вычислительных системах. Дело в том, что высокое качество визуализации требует достаточно большого количества ресурсов. которые просто не могут быть предоставлены вычислительной машиной на борту ЛА. Именно поэтому приходится выбирать методы визуализации в разумном соответствии “затраты/нагрузка - качество”. К тому же, повышение требований к качеству визуализации картографический информации в условиях ограниченных ресурсов и толкает на разработку все более новых и эффективных методов отображения.



Литература

  1. Баяковский, Ю.М., Графическая библиотека OpenGL.// Баяковский Ю.М., Игнатенко А.В., Фролов А.И. –М.: 2003, -130с.

  2. Тихомиров, Ю., Программирование трехмерной графики. –С.Петербург.: БХВ-Петербург, 1998г. – 246с.

Работа выполнена самостоятельно.





Смотрите также:
Специализированные методы визуализации 2d и 3d изображениq в бортовых картографических системах
88.09kb.
1 стр.
1. Оперативное то
600.6kb.
4 стр.
Методы и алгоритмы выделения контуров изображений в радиотехнических системах с использованием дискретной вейвлет-фильтрации 05. 12. 04 Радиотехника, в том числе системы и устройства телевидения
326.58kb.
1 стр.
Об одном способе визуализации социальных взаимодействий
43.67kb.
1 стр.
Методы интерактивной визуализации динамики жидких и газообразных сред
490.08kb.
8 стр.
Резолюция международной научно-технической конференции wpltn-2012
37.46kb.
1 стр.
Визуализация информации на основе графовых моделей
9.79kb.
1 стр.
Методы лучевой визуализации в диагностике и лечении заболеваний щитовидной железы 14. 00. 19 лучевая диагностика, лучевая терапия 14. 00. 14 онкология
1186.51kb.
6 стр.
Визуализация дорожной сети на местности
23.03kb.
1 стр.
Решение картографических задач Методические рекомендации в помощь учителям географии Ульяновск 2009
316.06kb.
1 стр.
Урок №19-20. Тема Арифметические операции в позиционных системах счисления. Умножение и деление
40.76kb.
1 стр.
Методы анализа данных Кредиты: 3 Аннотация дисциплины
17.78kb.
1 стр.