Моделирование подстилающей поверхности в имитационных системах

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

УДК 004.921 Дата подачи статьи: 27.07.15

DOI: 10.15827/0236-235X. 112.070-074

МОДЕЛИРОВАНИЕ ПОДСТИЛАЮЩЕЙ ПОВЕРХНОСТИ В ИМИТАЦИОННЫХ СИСТЕМАХ

К.А. Мамросенко, к.т.н., зав. отделом, kirittam@ya.ru;

В.Н. Решетников, д.ф.-м.н., профессор, руководитель

В работе приводятся методы визуализации земной поверхности и наземных объектов с описанием применения в авиационно-космической отрасли. Показаны особенности моделирования подстилающей поверхности с использованием спутниковых снимков, данных SRTM. Рассмотрена организация хранения исходных данных в форматах Tile Map Service и Keyhole Markup Language. С развитием систем дистанционного зондирования Земли, а также систем обработки полученных данных стали применяться методы визуализации земной поверхности с использованием спутниковых снимков. Например, со спутника GeoEye-1 можно получить снимки с разрешением 0,5 метра на пиксель. В целях оптимизации производительности такие снимки хранят в виде тайлов - небольших изображений одинакового размера, которые являются фрагментами большого изображения.

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

Ключевые слова: тренажерно-обучающие системы, визуализация, ландшафт, TMS.

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

В гражданской авиации наличие функционала моделирования аэропортов и земной поверхности согласно руководству ICAO Doc 9625, vol. I, 2009 является одним из требований к тренажерным системам [2, 3]. Детализация воспроизведения окружающей обстановки напрямую связана с производительностью тренажера. Для повышения эффективности использования ресурсов тренажера необходимо определить, какие группы объектов наиболее важны для достижения целей тренировки, и, следовательно, детально воспроизводить именно эти группы.

С развитием систем дистанционного зондирования Земли, а также систем обработки полученных данных визуализация земной поверхности возможна с использованием спутниковых снимков. Например, со спутника GeoEye-1 можно полу-

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

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

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

Для выполнения преобразований можно воспользоваться утилитой gdal_translate. Зная координаты краев изображения 1_1 -1.jpg, которые хранятся в dat-файле, можно получить GeoTIFF-файл: gdal_translate.exe -of GTiff -a_srs "+proj= latlong +ellps=WGS84 +datum=WGS84" -a_ullr 55.4097175598145 51.8169457013069 55.4151141643524

70

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

51.8135349076488 1_1-1.jpg A1_1-1.tif. Полученный GeoTIFF-файл будет содержать изображение, а также привязку с параметрами: геодезическая система координат, эллипсоид WGS84, датум WGS84.

Геоид - фигура Земли, ограниченная поверхностью, отвесные линии к которой всюду перпендикулярны и которая проходит через точку начала отсчета высот, закрепленную на высоте среднего уровня моря (рис. 1). Эта поверхность близка к уровням морей и океанов в состоянии покоя и равновесия [4].

WGS84 - Всемирная геодезическая система координат. Поверхность, которой аппроксимируют фигуру всей Земли (геоида), - геоцентрический (глобальный) эллипсоид вращения WGS84 [5].

Для более точной аппроксимации на некотором участке земной поверхности используются рефе-ренц-эллипсоиды, например, территории отдельной страны или нескольких стран. В России используются эллипсоид Красовского и Система геодезических координат СК-95. Геодезические даты, датум (Datum) - линейные и угловые смещения ре-ференц-эллипсоидов относительно центра масс Земли [6].

Для формирования рельефа подстилающей поверхности возможно использование данных, полученных с помощью радарной топографической съемки Shuttle radar topographic mission (SRTM). Для Евразии разрешение данных - 90 метров [7]. Нет SRTM-данных для самых северных (>60) и самых южных (>54) широт.

Проведено сравнение данных SRTM версии 3 с данными аэромагнитной съемки со среднеквадратической погрешностью 0,92 м. Максимальные расхождения между данными достигают по высоте 30 м, причем имеют разный знак. Расхождения обнаружены в основном в областях с переменным рельефом (долины рек), что можно объяснить неточным определением плановых координат точек в методе SRTM [8].

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

Данные SRTM могут быть получены в формате GeoTIFF. Данные являются 16-битным растром (65 536 значений, без заголовка), а значение пикселя - высотой над уровнем моря в данной точке, оно также может принимать значение -32 768, что означает «нет данных» для некоторых участков. Горизонтальный датум - WGS84. Для вычисления высот используется модель геоида EGM96 (Earth Gravitational Model 1996) [9].

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

Полученные исходные данные необходимо оптимизировать для их отображения в системе визуализации. Данные спутниковых снимков для их визуализации должны быть помещены в память видеокарты. Для протяженных участков земной поверхности объем требуемой памяти значителен. Также требуются значительные вычислительные мощности для обработки данных. Имеются ограничения на максимальное разрешение текстуры. Например, изображение участка в 18 км2 имеет разрешение 60 000x30 000 пикселей.

Решением может быть разбиение одного большого изображения на несколько изображений -тайлов, например размером 256x256 пикселей, которые можно быстро обработать. В случае отображения протяженных участков возрастает удаленность наблюдателя от поверхности с текстурой, следовательно, нет необходимости использовать исходные данные самого высокого разрешения. Можно сформировать несколько вариантов снимков одного и того же участка земной поверхности с различным разрешением для каждого диапазона удаления наблюдателя от виртуальной поверхности Земли. Указанные методы применяются в форматах хранения геодезических данных, таких как Tile Map Service (TMS). Подобные преобразования можно проводить одновременно с визуализацией в случае, если производительность не является одной из основных характеристик. В тренажерных системах такой подход неприемлем ввиду ограничений на время генерации одного кадра - максимум 40 мс. Следовательно, необходимо подготовить данные заранее. Все вышеизложенное относится и к данным рельефа подстилающей поверхности в случае их хранения в растровом формате типа GeoTIFF.

Для создания TMS-хранилища из исходных данных возможно использование утилиты os-gearth_package. Пример использования: osgearth_ package config.earth --tms --max-level 19 --out d:\tms\. Параметр --max-level необходимо устанавливать в зависимости от разрешения исходных данных. При недостаточном разрешении исходных

71

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

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

Пример скрипта для генерации TMS-хранилища:

<map type="geocentric" version="2">

<! Загрузка слоя с данными изображения Земли>

<image name="MyMap" driver="gdal"> <url>g:\testAir\gtif</url>

</image>

<! Загрузка слоя с данными ландшафта Земли> <elevation name="srtm" driver="gdal"> <url>g:\testAir\strm</url> <extensions>tif</extensions>

</elevation>

</map>

Пример файла для визуализации данных из TMS -хранилища:

<map type="geocentric" version="2">

<image name="ImMap" driver="tms">

<url>G:\testAir\fs_cache\MyMap\tms.xml</url>

</image>

<elevation name="ElMap" driver="tms">

<url>g: \testAir\fs_cache\srtm\tms. xml</url> </elevation>

</map>

Для хранения информации об объектах на поверхности Земли (аэродромах, самолетах) можно использовать файл формата KML (Keyhole Markup Language) на основе XML. Спецификация KML подразумевает, что сами модели хранятся в файлах формата Collada. Целесообразно преобразовать все модели в бинарный формат для сокращения времени загрузки сцены. При преобразовании моделей в формат Collada возможно появление графических артефактов, например черных тонких линий, разделяющих составные элементы модели. Учитывая, что число моделей может быть большим, потребуется автоматическое преобразование данных.

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

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

Вторая проблема - дублирование данных о геометрии объектов.

Данные о сцене можно хранить в структуре, называемой графом сцены. Граф сцены - это иерархическая древовидная структура данных, которая организует данные в пространстве для эффективного отображения [10]. Узлы могут быть нескольких типов (рис. 2).

Узел типа Geode (Geometry Node) (рис. 3) предназначен для хранения объектов Drawables [11]. Drawables не являются узлами сцены, они присоединяются к узлам Geode, позволяют использовать в сцене данные об отображаемых объектах. Объект Geometry является одним из типов отображаемых объектов, хранит массивы вершин, текстурные координаты, данные о цвете и массивы нормалей.

Узел типа Group содержит информацию о дочерних узлах. Узел Transform предназначен для трансформации дочерних узлов, например, для изменения положения объекта при помощи матриц преобразования MatrixTransform (рис. 4) [11].

Пример загрузки 2 000 одинаковых моделей в сцену приведен на рисунке (http://www.swsys.ru/ uploaded/image/2015-4-dop/11.jpg). Создаются узел типа Group и 2 000 дочерних узлов Transform с объектами MatrixTransform. Загружается модель: 34 узла Geode, 34 элемента Geometry. Каждый узел Transform использует копии моделей, следовательно, копии узлов Geode, объектов Geometry и объектов Drawables. В сцене хранится 68 000 Geode, 68 000 Geometry, 68 000 Drawables.

72

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

Одной из причин низкой производительности является то, что каждый объект Drawable создает свой Display List - поименованное множество команд OpenGL. Обработка одного Display List занимает фиксированное время вне зависимости от объема выполняемой работы. С уменьшением числа Geometry уменьшается и число Drawables. Уменьшение числа Geometry возможно за счет объединения Geometry. Аналогичные проблемы с производительностью имеются при использовании vertex buffer object OpenGL. В методе предусмотрено создание буферов для вершин и массива атрибутов вершин каждого Geometry. Объединение Geometry возможно, если все объединяемые Geometry используют одинаковую текстуру (см. http://www. swsys.ru/uploaded/image/2015-4-dop/12.jpg) [12].

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

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

Объект PrimitiveSet предоставляет высокоуровневую поддержку команд OpenGL для отрисовки массива вершин. Он используется для определения типов примитивов, которые будут отрисовываться на основании данных, хранимых в Geometry (см. http://www. swsys.ru/uploaded/image/2015-4-dop/13 .jpg).

Из PrimitiveSet копируются данные об индексах. Для экземпляров модели к текущему значению индекса прибавляется наибольшее значение индекса у предыдущего экземпляра. Дочерний класс от PrimitiveSet DrawElementsUInt (рис. 5) инкапсулирует OpenGL функцию glDrawElements().

В заключение отметим, что использование методов визуализации и аппаратных платформ позво-

73

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

ляет создавать высокореалистичное отображение земной поверхности в тренажерно-обучающих системах. Хранение исходных данных блоками в формате Tile Map Service позволило отображать подстилающую поверхность реальных протяженных ландшафтов с приемлемой производительностью. В работе рассматривалась виртуальная сцена с 2 000 однотипных трехмерных моделей. Всего в сцене содержится 6 млн вершин, частота обновления порядка 12 кадров в секунду. После внедрения разработанного метода частота кадров выросла до 83, ранее частота кадров не отвечала требованиям к ТОС: минимально - 25 кадров в секунду.

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

Литература

1. Allerton D. Principles of flight simulation. Chichester, UK, Wiley, 2009, 471 p.

2. Решетников В.Н. Космические телекоммуникации. Тригонометрические воспоминания. СПб: Изд-во РИП СПБ, 2015. 138 с.

3. Г иацинтов А.М. Отображение разнородных видеоматериалов на гранях трехмерных объектов в подсистеме визуализации тренажерных обучающих систем // Программные продукты и системы. 2012. № 3. С. 80-86.

4. Г еоинформационный портал ГИС-Ассоциации - Г еоид.

URL: http://www.gisa.ru/13065.html (дата обращения:

28.04.2015).

5. Решетников В.Н. Космические телекоммуникации (начала). М.: Изд-во МАТИ, 2013. 184 с.

6. Системы координат и проекции. URL: http://www.gis-craft.ru/info/cs/cs.shtml (дата обращения: 28.04.2015).

7. GIS-Lab: Описание и получение данных SRTM. URL: http://gis-lab.info/qa/srtm.html (дата обращения: 28.04.2015).

8. Высотные данные SRTM против топографической съемки: все о геологии (geo.web.ru). URL: http://geo.web.ru/db/ msg.html?mid=1177761 (дата обращения: 28.04.2015).

9. GIAR-CSI SRTM 90m DEM Digital Elevation Database.

URL: http://srtm.csi.cgiar.org/SRTMdataProcessingMethodology.

asp (дата обращения: 28.04.2015).

10. Martz P. OpenSceneGraph Quick Start Guide. California: Computer Graphics Systems Development Corp., 2007, 122 p.

11. OpenSceneGraph: Class List. URL: http://trac.openscene-graph.org/documentation/OpenSceneGraphReferenceDocs/annota-ted.html (дата обращения: 28.04.2015).

12. Wang R., Qian X. OpenSceneGraph 3 cookbook. Birmingham, UK, Packt Pub., 2012, 427 p.

DOI: 10.15827/0236-235X.112.070-074 Received 27.07.15

TERRAIN MODELLING IN SIMULATION TRAINING SYSTEMS

Mamrosenko K.A., Ph.D. (Engineering), Head of Department, kirillam@ya.ru SIT;

Reshetnikov V.N., Dr.Sc.

Abstract. The work presents the methods of the earth's surface and ground elements visualization and their usage in the aerospace industry. It also shows the features of the underlying surface modeling using satellite imagery, SRTM data. The authors consider how initial data is stored in the Tile Map Service and Keyhole Markup Language formats. Development of the earth remote sensing and data processing systems allowed using earth surface visualization techniques with satellite images as textures. For example, the GEOEYE-1 satellite makes it possible to obtain images with the resolution of 0.5 meters per pixel. In order to optimize performance the images are stored as tiles, which are small images of the same size, fragments of a big picture. The paper describes the method for increasing the visualization subsystem performance when displaying multiple objects of the same type. This method makes the sequent bypassing of all nodes of the model to clone and assembles a new model, which contains the required number of copies of the original model. An array of vertices of the original model is changed in order to place a sample model in the desired spatial position. An array of normals is copied without changes, as well as an array of texture coordinates. However, it is possible that the number of vertices in the model is bigger than the number of texture coordinates. In this case missing texture coordinates are replaced by the values from the next sample model, which can lead to incorrect texture mapping. To avoid such situations missing texture coordinates values are set to zero.

Keywords: training simulation systems, rendering, landscape, TMS.

References

1. Allerton D. Principles of flight simulation. Chichester UK, Wiley Publ., 2009, 471 p.

2. Reshetnikov V.N. Kosmicheskie telekommunikatsii. Trigonometricheskie vospominaniya [Space telecommunications. Trigonometric memories]. St. Petersburg, RIP SPB Publ., 2015, 138 p.

3. Giatsintov A.M. Playback of heterogeneous videos on 3d object’s edges in visualization subsystem of training simulation system. Programmnyeprodukty i sistemy [Software & Systems]. 2012, no. 3, pp. 80-86 (in Russ.).

4. Geoinformatsionny portal GIS-Assotsiatsii - Geoid [Geoinformation Portal of GIS-Association - Geoid]. Available at: http://www. gisa.ru/13065.html (accessed April 28, 2015).

5. Reshetnikov V.N. Kosmicheskie telekommunikatsii (nachala) [Space Telecommunications (basics)]. Moscow, ITTS MATI Publ., 2013, 2nd ed., 184 p.

6. Sistemy koordinat iproyektsii [Frames of Axis and Projections]. Available at: http://www.giscraft.ru/info/cs/cs.shtml (accessed April 28, 2015).

7. GIS-Lab: Opisanie i poluchenie dannykh SRTM [GIS-Lab: a Description and Obtaining SRTM Data]. Available at: http://gis-lab.info/qa/srtm.html (accessed April 28, 2015).

8. Vysotnye dannye SRTMprotiv topograficheskoy syemki - vse o geologii (geo.web.ru) [SRTM Upper-air Data versus Mapping: All about Geology]. Available at: http://geo.web.ru/db/msg.htmUmidM 177761 (accessed April 28, 2015).

9. CGiAr-CSI SRTM 90m DEM Digital Elevation Database. Available at: http://srtm.csi.cgiar.org/SRTMdataProcessingMethodol-ogy.asp (accessed April 28, 2015).

10. Martz P. OpenSceneGraph Quick Start Guide. California: Computer Graphics Systems Development Corp., 2007, 122 p.

11. OpenSceneGraph: Class List. Available at: http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/anno-tated.html (accessed April 28, 2015).

12. Wang R., Qian X. OpenSceneGraph 3 Cookbook. Birmingham, UK, Packt Publ., 2012, 427 p.

74