Трёхмерное моделирование водной поверхности для разноспектральных оптико-электронных устройств

УДК 004.932

Т. П. Макарова, А. П. Кирпичников, С. А. Ляшева, М. В. Медведев, М. П. Шлеймович

ТРЁХМЕРНОЕ МОДЕЛИРОВАНИЕ ВОДНОЙ ПОВЕРХНОСТИ

ДЛЯ РАЗНОСПЕКТРАЛЬНЫХ ОПТИКО-ЭЛЕКТРОННЫХ УСТРОЙСТВ

Ключевые слова: беспилотный летательный аппарат, оптико-электронное устройство, моделирование фоноцелевой

обстановки, моделирование водной поверхности.

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

Keywords: unmanned aerial vehicle, optical-electronic device, modeling situation of the flight, the simulation of the

water surface.

In this paper the questions of simulation of water surface for different spectral opto-electronic devices based on the use of hardware and software three-dimensional computer graphics using the OpenGL library are discussed.

В настоящее время широко применяются беспилотные летательные аппараты (БЛА) различного назначения. Система управления БЛА, как правило, включает средства обработки изображений различной спектральной природы, формируемых соответствующими оптико-электронными модулями [1]. По результатам анализа изображений система управления БЛА формируются управляющие решения, связанные, например, с обнаружением и сопровождением заданных объектов [2].

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

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

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

- модель подстилающей поверхности;

- модель водной поверхности;

- модель атмосферы.

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

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

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

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

- излучение ложных целей;

- собственное излучение оптико-электронной системы;

- шум приёмника и усилителя сигнала, флуктуации параметров элементов оптико-электронных систем.

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

- детальный анализ целевых объектов на радиолокационных изображениях с целью адекватного представления их свойств;

- оптимальные численные оценки данных свойств;

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

Под фоноцелевой обстановкой следует понимать совокупность условий наблюдения,

характеризующихся заданными статистическими и динамическими свойствами объектов, фона, освещения, атмосферы, устройств формирования и передачи изображений [4].

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

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

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

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

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

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

Одной из главных проблем, возникающих при моделировании, является проблема достоверного определения физических характеристик

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

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

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

В случае с моделированием водной поверхности есть существенная разница между моделированием небольших водоёмов (луж, озёр, прудов и т.д.) и моделированием больших открытых водоёмов (море, океан). Если не учитывать эту разницу, то итоговый результат может не только оказаться далёким от реального изображения, но и весьма затратным при реализации. На первый взгляд разница не так уж и существенна - вода не изменяется при увеличении её объёма, законы, по которым отражается и преломляется свет, не искажаются, а значит и визуальное их проявление остаётся прежним. Такое верно только для математической модели воды, в случае её программной реализации размер водоёма вносит существенные изменения в методику расчетов взволнованной вводной поверхности. К примеру, ранние методы визуализации воды в реальном времени, основывались на предположении о том, что водная поверхность плоская. Иллюзия волн создавалась за счет рельефного текстурирования с использованием заранее сгенерированных карт для нормалей и высот. Такой подход до сих пор часто используется. Он отлично подходит для визуализации небольших и спокойных поверхностей воды - озер, прудов и луж. Кроме того, плоская поверхность воды сильно упрощает визуализацию отражений, преломлений, физическую модель, требует минимального количества полигонов и позволяет легко добавлять спецэффекты, например, волны от объектов. К сожалению, такой подход очень плохо справляется с визуализаций больших открытых водоемов, а именно тех, где ожидается увидеть крупные волны. Как только у аппаратной части появилась возможность изменять геометрию без серьезного падения производительности, рельефное текстурирование было вытеснено анимацией вершин. Но получаемые поверхности все равно приходится делать достаточно плоскими, так как для реалистичного синтеза больших волн требуются более сложные подходы, чем анимация за счет заранее сгенерированных карт нормалей и высот. Таким подходом, например, является параметрическая модель Gemster Waves, которая хотя и применялась на практике, но широкого распространения не получила [5].

Существуют более простые методики моделирования крупных волн, к примеру,

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

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

Помимо различий в моделировании волнения и расчёта цвета есть так же разница в площади изображаемого водоёма. Пруды и лужи обладают небольшим размером и чаще всего полностью оказываются в зоне видимости, в то время как море уходит далеко за горизонт. Очевидно, что моделирование всей поверхности большого водоёма нерационально, поскольку наблюдатель никогда не увидит так далеко расположенную поверхность. В этом случае часто прибегают к снижению детализации дальней части водной поверхности. То есть вместо того, чтобы равномерно распределять полигоны по поверхности, как в случае небольшого водоёма, необходимо уменьшать количество полигонов модели в зависимости от расстояния до наблюдателя. Для реализации этого подхода используется проекционная сетка, однако при её использовании необходимо учитывать возможность возникновения артефактов по краям, возникающих при сдвиге вершин спроецированной сетки для создания остроконечного профиля волн. Решением этой проблемы является расширение проекционной сетки, чтобы сдвинутые краевые вершины оставались за пределами экрана. Но сетку в таком случае придется либо очень сильно расширять, либо реализовывать достаточно сложную схему выбора величины сдвига в зависимости от положения наблюдателя относительно поверхности воды, амплитуды волн, расстояния до края сетки [5].

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

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

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

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

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

1. Моделирование - создание трёхмерной математической модели сцены и объектов в ней;

2. Текстурирование - назначение поверхностям моделей растровых или процедурных текстур (подразумевает также настройку свойств материалов - прозрачность, отражения, шероховатость и пр.);

3. Освещение - установка и настройка источников света;

4. Анимация (в некоторых случаях) - придание движения объектам;

5. Динамическая симуляция (в некоторых случаях) - автоматический расчёт взаимодействия частиц, твёрдых/мягких тел и пр. с моделируемыми силами гравитации, ветра, выталкивания и др., а также друг с другом;

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

7. Композитинг (компоновка) - доработка изображения;

8. Вывод полученного изображения на устройство вывода - дисплей или специальный принтер [2].

В рамках данной работы, для визуализации имитационной модели водной поверхности были реализованы этапы моделирования,

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

Для программно й реализации трехмерноо моделирования водной поверхности была использована библиотека OpenGL (Open Graphics Library), обеспечивающая платформонезависимый программный интерфейс для написания графических приложений.

Современная компьютерная графика основана на использовании технологии шейдеров. Изначально шейдером называли программу, определяющую цвет пикселей изображения. Со временем количество возможностей возросло, и теперь шейдером называют программу, выполняемую графическим процессором (GPU, Graphics Processing Unit) и используемую для определения параметров геометрических объектов или изображений, для изменения этих изображений: создание эффектов сдвига, отражения, преломления, затемнения с учётом заданных параметров поглощения и рассеяния света и т.д., а также для наложения текстур на геометрические объекты и прочее. Шейдеры впервые были включены в OpenGL в версии 2.0, добавляя возможность

программирования в ранее стандартных функциях OpenGL конвейера. Они предоставляют возможность использования альтернативных алгоритмов рендеринга и большую гибкость в их реализации [8]. Однако, написание шейдеров сильно отличается от программирования для традиционных процессоров. Причина в специфической архитектуре GPU, ориентированной на задачи рендеринга - визуализации - трёхмерных объектов. Подобная специализация обеспечивает огромное быстродействие графического процессора, но накладывает существенные ограничения на выполняемые на нём программы.

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

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

Существует большое количество языков программирования шейдеров, созданных под определённые цели. Примерами таких языков являются RenderMan, OSL, GLSL, Cg, DirectX ASM и HLSL. В данной работе был использован язык GLSL (OpenGL Shading Language) - язык программирования шейдеров, описанный в стандарте OpenGL и основанный на версии языка С, описанной в стандарте ANSI C. Язык поддерживает типы данных, часто применяемые в работе с трёхмерной графикой (векторы, матрицы). Словом «шейдер» в языке GLSL называется независимо компилируемая единица, написанная на этом языке. Словом «программа» называется набор скомпилированных шейдеров, связанных вместе.

Разработанное программное обеспечение для трехмерного моделирования водной поверхности содержит:

- основное приложение;

- вершинный шейдер;

- фрагментный шейдер;

- файл сцены;

- файл 3D-модели объекта.

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

После запуска программы и ввода пользователем исходных данных производится инициализация 3D-сцены и отображения в ней результата моделирования. Пример результата работы представлен на рисунке 1 в псевдоцветах: яркостное изображение сцены в спектральном диапазоне длин волн 0,4-0,7 мкм, лето (температура 21°С и влажность 70 % приземного слоя воздуха), безоблачно, максимальная дальность видимости 23 км, высота Солнца над горизонтом 30°, азимут между Солнцем и наблюдателем 180°, высота наблюдения 1,5 км, зенитный угол наблюдения 30°, угол поля зрения 30°. На рисунке 2 приведены

результаты моделирования в ранних версиях программного обеспечения в сравнении с реальным изображением земной поверхности. Модель также представлена в псевдоцветах и условиях моделирования: высота оптико-электронной системы 3.3 км, угол поля зрения 40°, сезон - лето, максимальная дальность видимости 10 км, безоблачно, высота Солнца над горизонтом 45°. Как видно на приведённых рисунках предложенная в данной работе модель визуализирует взволнованную водную поверхность гораздо более детализировано и приближённо к реальности.

0 5 10 15 20 25 30 35 40 45 50<

Рис. 1

Рис. 2

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

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

Исследование выполнено в рамках государственного задания № 2.1724.2017/4.6.

Литература

1. Медведев, М.В. система управления беспилотным летательным аппаратом на основе вейвлет-методов обнаружения и распознавания объектов на изображениях/ М.В. Медведев, А.П. Кирпичников// Вестник Казанского технологического университета, 2014. Т. 17, № 19. С. 359-362.

2. Кирпичников, А.П. Обнаружение и сопровождение объектов в бортовых системах обработки изображений/ А.П. Кирпичников, С.А. Ляшева, М.П. Шлеймович// Вестник Казанского технологического университета, 2014. Т. 17, № 13. С. 331-334.

3. Militarily Critical Technologies List MCTL Under Secretary of Defense, Acquisition, Technology and Logistics Pentagon, VA, 2014.

4. Епишин, К.В., Д.В. Зернюков, Д.Б. Изюмов, Е.Л. Кондратюк, Д.С. Миронова Информационно-управляющее поле ударного косплекса и научно-технологические направления в области моделирования фоноцелевой обстановки по материалам зарубежных источников/ К.В. Епишин, Д.В. Зернюков, Д.Б. Изюмов, Е.Л. Кондратюк, Д.С. Миронова// Инноватика и экспертиза, 2016. Выпуск 2 (17). С. 207-214.

5. Трифонов, Д. Визуализация водной поверхности. Быстрое преобразование Фурье на GPU/ Д. Трифонов// Компьютерная графика и мультимедиа, 2009. Выпуск №7 (1).

6. Формулы Френеля. [Электронный ресурс]: - Режим доступа: https://ru.wikipedia.org/wiki/Формулы_Френеля - (Дата обращения: 06.10.2016).

7. Тиранов, Д.Т. Поле яркости протяженных участков земной поверхности с различной орографией/ Д.Т. Тиранов, А.А. Гусева, В.Л. Филиппов, Т.П. Макарова// Оптический журнал, 2017. Т. 84, № 3. С. 22-27.

8. David Wolff OpenGL 4.0 Shading Language Cookbook. Packt Publishing, 2011. - 340 с.

© М. П. Макарова - магистрант КНИТУ-КАИ, e-mail: tomamak@yandex.ru; А. П. Кирпичников - д. ф.-м. н., заведующий кафедрой интеллектуальных систем и управления информационными ресурсами КНИТУ, e-mail: kirpichnikov@kstu.ru; С. А. Ляшева - к.т.н., доцент кафедры прикладной математики и информатики КНИТУ-КАИ, e-mail: stellyash@mail.ru; М. В. Медведев - к.т.н., доцент кафедры автоматизированных систем обработки информации и управления КНИТУ-КАИ, e-mail: mmedv@mail.ru; М. П. Шлеймович - к.т.н., заведующий кафедрой автоматизированных систем обработки информации и управления КНИТУ-КАИ, e-mail: shlch@mail.ru.

© M. P. Makarova - Master Student, KNRTU-KAI, e-mail: tomamak@yandex.ru; A. P. Kirpichnikov - Dr. Sci, Head of the Department of Intelligent Systems & Information Systems Control, KNRTU, e-mail: kirpichnikov@kstu.ru; S. A. Lyasheva - PhD, Associate Professor of the Department of Applied Mathematics & Informatics, KNRTU-KAI, stellyash@mail.ru; M. V. Medvedev -PhD, Associate Professor of the Department of the Department of Automated Information Processing Systems & Control, KNRTU-KAI, e-mail: mmedv@mail.ru; M. P. Shleymovich - PhD, Head of the Department of Automated Information Processing Systems & Control, KNRTU-KAI, e-mail: shlch@mail.ru.