Программные продукты и системы /Software & Systems
№ 4 (112), 2015
УДК 004.946 Дата подачи статьи: 27.07.15
DOI: 10.15827/0236-235X.112.099-104
СИСТЕМА ВИЗУАЛИЗАЦИИ ТЕКСТУРИРОВАННЫХ МОДЕЛЕЙ ПЛАНЕТ ДЛЯ ТРЕНИРОВОК ПРОВЕДЕНИЯ КОСМИЧЕСКИХ ЭКСПЕРИМЕНТОВ
(Исследования выполнены при поддержке РФФИ, грант № 14-07-31332)
П.Ю. Тимохин, научный сотрудник, [email protected] (ФНЦ НИИСИ РАН, Нахимовский просп., 36, корп. 1, г. Москва, 11 7218, Россия)
Современным инструментом для проведения тренировок космических экспериментов, связанных с наблюдением планеты с околопланетной орбиты, является визуализация в масштабе реального времени виртуальной трехмерной модели планеты с детализированными текстурами, созданными на основе спутниковых снимков. Исследования показывают, что размеры и объем необходимых текстур существенно превышают аппаратно допустимые значения современных графических ускорителей (сверхбольшие текстуры), что не позволяет загружать их целиком в видеопамять и аппаратно обрабатывать. В статье описываются технология и программная реализация, позволяющие визуализировать в масштабе реального времени сверхбольшие текстуры планет, разбитые на небольшие участки одинакового размера (страницы). Ключевая идея предложенной технологии состоит в сокращении временных затрат на отбор видимых страниц сверхбольшой текстуры путем распараллеливания вычислений на графическом процессоре (GPU) с помощью ряда разработанных шейдерных программ. Технология обеспечивает текстурную детализацию для моделируемой поверхности планеты, наиболее близкую к разрешению экрана, а также позволяет визуализировать на виртуальной поверхности планеты в масштабе реального времени сверхбольшие текстуры, имеющие различное исходное разрешение.
Предложенная технология реализована в программном комплексе визуализации детализированных текстур планет, который интегрируется во внешнее приложение. Созданный программный комплекс также снабжен модулем расчета орбитального положения наблюдателя и пользовательским интерфейсом для управления полетом наблюдателя. В работе выполнена апробация реализованного программного комплекса в составе системы визуализации трехмерных виртуальных сцен, которая показала его адекватность поставленным задачам. Разработанный программный комплекс может быть использован как для улучшения характеристик существующих тренажерных систем по проведению космических экспериментов, так и для построения новых перспективных тренажеров.
Ключевые слова: визуализация, космический эксперимент, виртуальная планета, сверхбольшая текстура, реальное время.
Космические эксперименты, связанные с наблюдением планеты с околопланетной орбиты, являются источником ценных и уникальных научных данных о глобальных процессах и явлениях, протекающих на ее поверхности. В настоящее время выполнение таких экспериментов по исследованию поверхности Земли - одна из важных задач экипажей Международной космической станции (МКС). Мониторинг земной поверхности осуществляется через иллюминаторы как невооруженным глазом, так и с помощью фото- и видеоаппаратуры с изменяемой кратностью увеличения и с постоянным полем зрения [1]. Ввиду высокой сложности выполнения таких экспериментов (время эффективного наблюдения объекта ограничено 50-80 секундами) для получения успешного результата космонавту необходимо активно тренировать соответствующие навыки.
Современным инструментом для проведения таких тренировок является визуализация в масштабе реального времени виртуальной трехмерной модели планеты с детализированными текстурами, созданными на основе спутниковых снимков. Исследования в работе [1] показывают, что для имитации наблюдения Земли с борта МКС невооруженным глазом детализация таких текстур должна составлять не менее 150 м/пиксел и быть на поря-
док выше для имитации работы средств наблюдения с изменяемой кратностью увеличения. Проблема состоит в том, что размеры и объем таких текстур существенно превышают аппаратно допустимые значения современных графических ускорителей (сверхбольшие текстуры), что не позволяет загружать их целиком в видеопамять и аппаратно обрабатывать. Задача еще более усложняется в случае необходимости визуализации в космическом эксперименте дополнительных детализированных текстурных слоев (например, текстур с изображением облачного покрова или огней ночных городов). Все это обусловливает высокую востребованность технологий и систем визуализации, которые могут работать с огромными массивами текстурных данных в режиме реального времени.
Возможность наблюдения текстурированных виртуальных поверхностей планет с орбитальной высоты предоставляют ряд популярных виртуальных 3D-глобусов, разрабатываемых как крупными организациями, так и сообществами энтузиастов. Примерами таких программных продуктов являются виртуальный географический атлас NASA World Wind [2], астрономическая программа Celestia [3], симулятор орбитальных космических полетов Orbiter [4] и другие. Однако возможности и скорость визуализации детализированных тек-
99
Программные продукты и системы /Software & Systems
№ 4 (112), 2015
стур планет в подобных системах зачастую ограничены и не отвечают в полной мере требованиям для постановки космических экспериментов [1]. К тому же особенности подобных зарубежных программных продуктов затрудняют их применение в отечественной космической отрасли.
Для решения рассматриваемой задачи в данной работе предлагается разработанная в НИИСИ РАН система визуализации текстурированных моделей планет в масштабе реального времени. Принцип действия предлагаемой системы основан на разработанной технологии визуализации сверхбольших текстур.
Технология визуализации сверхбольших текстур
В основе предлагаемой технологии лежит подход, применяемый в компьютерной графике для визуализации текстур, размеры и объем которых удовлетворяют аппаратным возможностям современных видеокарт. При данном подходе наряду с исходными текстурами применяются текстуры с меньшими уровнями детализации (мип-пирамида текстур), причем для каждого пиксела синтезируемого изображения подбираются текстуры тех уровней, детализация которых наиболее близка к разрешению экрана (технология аппаратного мипмэп-пинга [5]).
В предлагаемой технологии по исходной сверхбольшой текстуре (далее текстура T) также создается мип-пирамида текстур из L уровней, причем текстуры уровней от 0 до L’ разбиваются на небольшие участки одинакового размера (страницы), образуя массивы Mo, ..., Ml’ страниц (рис. 1), которые размещаются на жестком диске в сжатом виде. Перед визуализацией выделяется область видеопамяти, в которую на постоянное хранение помещаются текстуры уровней от L’+1 до L-1 (текстурная группа G1), а также области видео- и оперативной памяти, куда будут динамически отбираться и подкачиваться страницы из массивов M0, ..., ML (текстурные группы G2 и B), необходимые для визуализации текущего кадра.
L <
к
}
Gi
Рис. 1. Мип-пирамида сверхбольшой текстуры Fig. 1. Extra-large texture MIP pyramid
Ввиду того, что избыточная загрузка в видеопамять страниц препятствует соблюдению режима реального времени визуализации (работа с жестким диском является потенциально узким местом), а отсутствие необходимых страниц существенно отражается на качестве синтезируемого изображения планеты, в предлагаемой технологии акцент сделан на выполнении точного отбора видимых страниц по всем пикселам кадра. При современных разрешениях средств отображения (Full HD, Ultra HD) объем пикселов, которые необходимо обрабатывать, крайне велик, поэтому ключевая идея предлагаемой технологии состоит в сокращении временных затрат путем распараллеливания такой обработки полностью на графическом процессоре (GPU).
По подобному направлению пошли авторы работы [6], однако предложенное ими решение на базе программно-аппаратной архитектуры CUDA позволяет обрабатывать в реальном времени лишь некоторую выборку из всех пикселов кадра и ограничивает область средств реализации только видеокартами компании NVidia. В отличие от [6] в данной работе предлагается распараллеливать обработку всех пикселов кадра с помощью ряда разработанных шейдерных программ, написанных на универсальном языке GLSL, поддерживаемом всеми современными графическими ускорителями. Предлагаемая технология включает в себя ряд этапов.
Синтез экранной карты текстурных координат. На данном этапе вычисляется двухканальная текстура, имеющая размеры кадра (полнокадровая текстура), в каждый тексел которой записываются текстурные координаты (s, t) видимой точки модели поверхности планеты (далее ST-текстура). С этой целью при создании трехмерной модели поверхности планеты для каждой ее геометрической вершины указываются текстурные координаты этой вершины в исходной сверхбольшой текстуре T. Используя эти координаты, при синтезе ST-текстуры планеты для каждого пиксела видеокарта автоматически вычисляет текстурные координаты (s, t) на текстуре T, соответствующие этому пикселу. Непосредственно сам синтез ST-текстуры реализуется путем рендеринга модели планеты в текстуру с помощью разработанной шейдерной программы.
Синтез экранной карты значений уровня текстурной детализации. На данном этапе вычисляется одноканальная полнокадровая текстура, в каждый тексел которой записывается уровень t текстурной детализации видимой точки модели поверхности планеты (далее LOD-текстура). Данная величина является вещественным числом и определяется на основе вычисления количества текселов, охватываемых сторонами проекции пиксела в пространстве текстуры T. На практике такая проекция эффективно приближается параллело-
100
Программные продукты и системы /Software & Systems
№ 4 (112), 2015
граммом, длины сторон которого вычисляются с помощью частных производных текстурных координат (s, t) по экранным координатам пикселов. Более подробно вычисление £ рассмотрено в [7]. В разработанной шейдерной программе, реализующей вычисление £, необходимые текстурные координаты (s, t) считываются из тексела ST-текстуры, имеющего такое же расположение, что и рассчитываемый тексел LOD-текстуры.
Получение списка видимых страниц. Формирование списка страниц, видимых в текущем кадре, осуществляется с помощью вычисленных выше ST-текстуры и LOD-текстуры и выполняется в 3 шага.
На 1-м шаге создается полнокадровая текстура U1, в каждый тексел которой записывается идентификатор видимой страницы. Этот идентификатор задается тройкой чисел (q, i, j), где q - наименьший номер уровня мип-пирамиды, который необходимо использовать для закраски текущего пиксела, а i и j - номера строки и столбца страницы в массиве М0 страниц:
q = min(max(o,[f J),Z' +l),
i = min(|_hq • tJ, hq -l)-2q,
j = min ([ Wq ■ s J , Wq -1)-2q ,
где £ - величина уровня детализации текстуры Т. записанная для текущего пиксела в ST -текстуре; hq, wq - число строк и столбцов массива Mq страниц; (s, t) - текстурные координаты в пространстве текстуры T, записанные для текущего пиксела в LOD-текстуре.
На 2-м шаге осуществляется удаление повторяющихся идентификаторов в текстуре Ui. Для этого сначала формируется множество V двумерных геометрических вершин, в которое для каждого идентификатора (q, i, j) из Ui записывается вершина Vq,ij с координатами x=-1+2jlw0, y=-i+2i/ho и цветом 2q. Затем с помощью специально разработанного геометрического шейдера множество V параллельно визуализируется в одноканальную текстуру U2 размера w0xh0 с включенной побитовой операцией «ИЛИ» записи цвета. В результате такой визуализации в текселах текстуры U2 будут записаны битовые векторы, в которых единицы стоят в тех позициях, номера которых соответствуют номерам видимых страниц из массивовM0, ML'.
На 3 -м шаге формируется список неповторяющихся идентификаторов страниц. С помощью специально разработанного геометрического шейдера создается множество V' трехмерных вершин, в которые записываются идентификаторы страниц, отмеченных в текстуре U2 единичными битами. Затем выполняется рендеринг вершин из V' в буфер вершин. В результате в буфере вершин формируется список неповторяющихся идентификаторов отобранных страниц.
Подкачка видимых страниц. Так как графические процессоры могут работать только с информацией, находящейся в видеопамяти, а в видеопамять информацию можно копировать только из оперативной памяти, в работе предлагается использовать массивыM0, ...,ML'страниц на жестком диске, массив B в оперативной памяти и массив G2 в видеопамяти. Последние два массива используются для кэширования. То есть при необходимости использования какой-либо страницы она сначала ищется в массиве G2. Если ее там нет, то она подкачивается из массива B, а если ее нет и в этом массиве, она подкачивается с жесткого диска. При этом новая загружаемая страница записывается на место той, которая дольше всех не использовалась (стратегия LRU, Least Recently Used). Подкачка страниц из M0, ..., ML' в B выполняется непрерывно в отдельном потоке. Для подкачки страниц из B в G2 отводится некоторый промежуток времени, по истечении которого подкачка прекращается, а загрузка оставшихся страниц переносится в следующий кадр визуализации.
Синтез экранной текстуры с изображением планеты. Закраска пикселов синтезируемой текстуры с изображением планеты выполняется с помощью текстурных групп Gi и G2, а также ST-текстуры и LOD-текстуры. Способ вычисления цвета закраски для каждого пиксела определяется индивидуально, исходя из его величины £ текстурной детализации, считанной из LOD-текстуры. Из этой величины вычисляются наименьший номер 9=ш уровня мип-пирамиды, а также коэффициент/={ £ } интерполяции между q-м и <7+1-м уровнями мип-пирамиды. В случае q>L' цвет пиксела вычисляется путем аппаратной выборки из текстурной группы Gi по текстурным координатам (s, t) пиксела, считанным из ST-текстуры. Если q=L', то цвет вычисляется путем интерполяции с коэффициентом f двух цветов, один из которых вычисляется аналогично первому случаю, а второй -путем выборки из соответствующей координатам (s, t) страницы q-го уровня, загруженной в массив G2. Если qe[0, L—1], цвет пиксела вычисляется также путем интерполяции с коэффициентом f двух цветов, но вычисленных уже путем выборки из страниц q-го и q+ i-го уровней. Если необходимая пара страниц отсутствует в массиве G2, для визуализации используется уже подкаченная пара страниц ближайшего более грубого уровня детализации, а в случае отсутствия таковых - данные из постоянно хранимой группы Gi текстур. Цвета всех закрашиваемых пикселов вычисляются параллельно на GPU с помощью разработанного фрагментного шейдера.
На рисунке 2 изображена результирующая схема работы предложенной технологии. Описанная технология легко применяется для визуализации нескольких сверхбольших текстур на поверхности планеты. Для каждой сверхбольшой тек-
101
Программные продукты и системы /Software & Systems
стуры создаются свои массивыM0, ML'страниц,
буфер B и текстурные группы G1 и G2. Этап вычисления ST-текстуры планеты выполняется один раз в кадре для всех визуализируемых текстур, а оставшиеся этапы технологии выполняются для каждой сверхбольшой текстуры отдельно. Синтезированные в результате экранные текстуры с различными изображениями планеты смешиваются в соответствии с типом данных, который они представляют (например, дневная поверхность и облачный покров), или с задачей, поставленной в космическом эксперименте.
Результаты исследования
Описанная технология реализована в программном комплексе визуализации текстурированных моделей планет. Программный комплекс выполнен в виде dn-библиотеки, которая интегрируется во внешнее приложение (например, в систему визуализации трехмерных виртуальных сцен [8]). Такой подход позволяет путем минимальных усилий построить любой программный комплекс, использующий высококачественную визуализацию сверхбольших текстур планет в режиме реального времени. В качестве базовой технологии для вычисления описанных в работе текстур и вывода трехмерной графики система использует графическую библиотеку OpenGL и язык программирования шейдеров GLSL, соответствующие стандарту OpenGL 3.3. Разработанный программный комплекс также снабжен модулем расчета орбитального положения наблюдателя, созданным на основе представленной ранее технологии моделиро-
№ 4 (112), 2015
вания полета космического аппарата по орбите [9, 10], и пользовательским интерфейсом, позволяющим задавать параметры эллиптической кепле-ровской орбиты виртуального наблюдателя, начало и конец участка подспутниковой трассы и т.д. На рисунке 3 изображено диалоговое окно для
Рис. 3. Диалоговое окно для управления полетом виртуального наблюдателя по околоземной орбите
Fig. 3. Dialog box for controlling the virtual observer's flight along a near-Earth orbit
О ^
Список идентификаторов видимых страниц
ST-текстура LOD-текстура Текстура Ui Текстура Lh
V
О
Экранная текстура & с изображением планеты
Текстурная группа G2
Буфер B
О
Массивы Mo, ., Ml-
Текстурная группа Gi
Рис. 2. Схема работы предлагаемой технологии Fig. 2. Work scheme of the proposed technology
102
Программные продукты и системы /Software & Systems
№ 4 (112), 2015
Рис. 4. Примеры изображений текстурированных моделей Земли и Луны, синтезированных в реальном времени с помощью разработанной системы визуализации
Fig. 4. Examples of images of the Earth and Moon textured models, rendered in real-time using developed visualization system
управления полетом виртуального наблюдателя вдоль участка подспутниковой трассы, соответствующего 1-, 2- и 3-му орбитальным виткам МКС.
Разработанный программный комплекс прошел апробацию в составе системы визуализации трехмерных виртуальных сцен GLView [8]. Для апробации использовались трехмерная полигональная модель земной и лунной поверхности (около 150 тыс. полигонов каждая), а также сверхбольшие текстуры с изображением подстилающей поверхности Земли, ее облачного покрова и Луны. Скорость визуализации текстурированной земной поверхности составила около 150 кадров в секунду, а лунной -около 200 кадров в секунду.
Апробация комплекса проводилась также в составе сложной виртуальной сцены с моделью МКС. Тестируемая сцена содержала трехмерную текстурированную полигональную модель МКС (более 2 млн полигонов), для которой выполнялся реалистичный расчет освещения и теней. Скорость визуализации такой сцены составила около 76 кадров/с.
Синтез всех изображений выполнялся на видеокарте типа GeForce GTX 680 в разрешении Full HD. На рисунке 4 изображены примеры кадров визуализации текстурированных моделей земной и лунной поверхности.
В заключение отметим, что в данной работе представлена технология визуализации сверхбольших текстур на виртуальных поверхностях планет в масштабе реального времени. Технология обеспечивает текстурную детализацию для моделируемой поверхности планеты, наиболее близкую к разрешению экрана, а также позволяет визуализировать на виртуальной поверхности планеты в масштабе реального времени несколько сверхбольших текстур, имеющих различное исходное разрешение. Предложенная технология реализована в программном комплексе визуализации детализированных текстур планет. Апробация комплекса показала его адекватность поставленным задачам. Он может быть использован как для улучшения характеристик существующих тренажеров по проведению космических экспериментов, так и для построения новых перспективных тренажеров, связанных, например, с исследованием Луны и Марса.
Литература
1. Митин А.И., Брагин В.И. Пути повышения адекватности моделирования визуальных условий мониторинга земной поверхности на тренажере служебного модуля Российского сегмента Международной космической станции // Пилотируемые полеты в космос. 2014. № 3. С. 60-70.
2. NASA World Wind. URL: http://worldwind.arc.nasa.gov (дата обращения: 10.07.2015).
3. Celestia. URL: http://www.shatters.net/celestia (дата обращения: 10.07.2015).
4. Orbiter. URL: http://orbit.medphys.ucl.ac.uk (дата обращения: 10.07.2015).
5. Ewins J. et al. MIP-Map Level Selection for Texture Mapping. IEEE Transactions on Visualization and Computer Graphics, 1998, vol. 4, no. 4, pp. 317-329.
6. Hollemeersch C.F., Pieters B., Lambert P., Van de Walle R. Accelerating virtual texturing using CUDA. GPU Pro: Advanced Rendering Techniques, 2010, vol. 1, pp. 623-641.
7. Тимохин П.Ю., Михайлюк М.В. Сверхбольшие текстуры для высокореалистичной визуализации виртуальных ландшафтов // Информационные технологии и вычислительные системы. 2013. № 3. С. 46-54.
8. Михайлюк М.В., Торгашев М.А. Система визуализации «GLView» для имитационно-тренажерных комплексов подготовки космонавтов // Пилотируемые полеты в космос. 2013. № 4. С. 60-74.
9. Тимохин П.Ю. Моделирование полета космического аппарата по околоземной орбите в космическом тренажерном комплексе // Программные продукты и системы. 2010. № 4. С. 36-41.
10. Михайлюк М.В., Тимохин П.Ю. Моделирование взаимного расположения планеты и спутника в космических видеотренажерах // Mathematica Montisnigri. 2014. Т. XXIX. С. 91-97.
DOI: 10.15827/0236-235X.112.099-104 Received 27.07.15
TEXTURED PLANET MODEL VISUALIZATION SYSTEM FOR SPACE EXPERIMENTS SIMULATION
(The research has been done with support from RFBR, grant no. 14-07-31332) Timokhin P. Yu., Research Associate, [email protected] (SRJSA RAS, Nakhimovsky Ave. 36/1, Moscow, 117218, Russian Federation)
103
Программные продукты и системы /Software & Systems
№ 4 (112), 2015
Abstract. A modem tool to train space experiments related to the planet observation from a circumplanetary orbit is real-time visualization of virtual 3D planet model with detailed textures based on satellite images. Studies show that the size and memory space required for such textures significantly exceeds the capability of modern graphics accelerators (extra-large textures). This does not allow loading such textures in video memory completely and their hardware processing. This article describes a technology and software implementation which allows real-time visualizing of extra-large planet textures divided into small pieces of an equal size (pages). The key idea of the proposed technology is to reduce time costs for visible pages selection using GPU parallelizing computations by means of developed shader programs. The technology provides texture detailing of the simulated planet surface to fit the screen resolution. It also allows real-time visualizing multiple extra-large textures with different initial resolution on a virtual planet surface. The proposed technology is implemented in the planet texture visualization software package, which can be integrated in an external application. The created software package is also equipped with a module which calculates a observer's orbital position, as well as a user interface to control an observer's flight. The paper considers testing of the implemented software package as a part of 3D virtual scene visualization system. The results show that it meets all the requirements. The developed software package can be used both to improve features of existing simulators for space scientific experiments and to build new promising ones.
Keywords: visualization, space experiment, virtual planet, extra-large texture, real-time.
References
1. Mitin A.I., Bragin V.I. Ways of Improving the Adequacy of Modeling Visual Conditions of the Earth Surface Monitoring on the Service Module Simulator of the ISS RS. Pilotiruemye polety v kosmos [Manned Spaceflight], 2014, no. 3, pp. 60-70 (in Russ.).
2. NASA World Wind. Available at: http://worldwind.arc.nasa.gov (accessed July 10, 2015).
3. Celestia. Available at: http://www.shatters.net/celestia (accessed July 10, 2015).
4. Orbiter. Available at: http://orbit.medphys.ucl.ac.uk (accessed July 10, 2015).
5. Ewins J., Waller M.D., White M., Lister P.F. MIP-Map Level Selection for Texture Mapping. IEEE Transactions on Visualization and Computer Graphics. 1998, vol. 4, no. 4, pp. 317-329.
6. Hollemeersch C.F., Pieters B., Lambert P., Van de Walle R. Accelerating virtual texturing using CUDA. GPU Pro: Advanced Rendering Techniques. 2010, vol. 1, pp. 623-641.
7. Timokhin P.Yu., Mikhaylyuk M.V. Extra-large textures for high realistic terrain visualization. Informatsionnye tekhnologii i vychislitelnye sistemy [Information Technologies & Computing Systems]. 2013, no. 3, pp. 46-54 (in Russ.).
8. Mikhaylyuk M.V., Torgashev M.A. “GLView” visualization system for cosmonaut preparing simulation and training complexes. Pilotiruemye polety v kosmos [Manned Spaceflight]. 2013, no. 4, pp. 60-74 (in Russ.).
9. Timokhin P.Yu. Near-earth orbit flight simulation in a space training system. Programmnye produkty i sistemy [Software & Systems]. 2010, no. 4, pp. 36-41 (in Russ.).
10. Mikhaylyuk M.V., Timokhin P.Yu. Simulation of mutual planet-satellite arrangement in space video simulators. MathematicaMontisnigri. 2014, vol. XXIX, pp. 91-97 (in Russ.).
Реклама
НИИ «Центрпрограммсистем»
Предлагаем комплексные решения по созданию систем защиты информации для существующих и разрабатываемых автоматизированных (информационных) систем:
- системы защиты конфиденциальной информации;
- системы защиты персональных данных до уровня К1;
- системы защиты информации от несанкционированного доступа и иностранных технических разведок, позволяющие обрабатывать информацию, отнесенную к государственной тайне с грифом до «совершенно секретно» включительно;
- аппаратно-программные модули доверенной загрузки;
- аппаратно-программные комплексы защиты информации.
Разработка ведется строго в соответствии с требованиями российского законодательства, руководящих документов ФСТЭК России, ФСБ России, нормативных документов МО РФ и других ведомств.
Правомочность выполнения работ подтверждается действующими лицензиями ФСБ, ФСТЭК и Минобороны России.
Опыт работы НИИ «Центрпрограммсистем» в области информационной безопасности - более 20 лет.
Подробности на сайте www.szi-cps.ru Телефон в Москве: (495) 729-25-84 Телефон в Твери: (4822) 68-06-36
104