← 

Ткаченко И.С. Кубическая карта как основа для генерации виртуального окружения / И.С. Ткаченко, С.А. Зори // Современные Информационные Технологии в Образовании и Научных Исследованиях – 7-ая международная научно-техническая конференция (СИТОНИ-2021) [Ссылка на сборник]

УДК 004.9

КУБИЧЕСКАЯ КАРТА КАК ОСНОВА ДЛЯ ГЕНЕРАЦИИ ВИРТУАЛЬНОГО ОКРУЖЕНИЯ

И.С. Ткаченко, С.А. Зори
Донецкий национальный технический университет
igoryok2312@narod.ru, sa.zori1968@gmail.com

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

Ключевые слова: панорама, сферическая панорама, кубическая карта, фотография, изображение, камера, виртуальная реальность.

Введение

В основе почти каждого виртуального окружения, используемого в VR-системах, лежит сферическая панорама. Это специальное изображение, которое охватывает 360 градусов окружающей обстановки по горизонтали и 180 по вертикали. Таким образом, если поместить точку обзора «внутрь» такой сферы и преобразовать изображение, появляется возможность иметь полное визуальное представление желаемого места, которое удалось запечатлеть или создать одним из нескольких способов.

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

Определение и получение кубической карты

Кубическая текстура, кубическая карта (англ. Cube mapping, CubeMap) — методика в трёхмерной компьютерной графике, предназначенная преимущественно для моделирования отражений на поверхности объекта [1]. Основными отличительными чертами кубической карты являются:

Кубическая карта одного из видов в Иокогаме

Рисунок 1 - Кубическая карта одного из видов в Иокогаме [2]

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

Преобразование кубической карты в сферическую панораму

Очевидно, что без преобразований кубическая карта не даст эффекта присутствия при просмотре в VR-системах, т.к. при помещении камеры внутрь куба зритель будет видеть его «швы» – ребра. С помощью математических преобразований от них можно избавиться [3].

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

Для преобразования в сферическую панораму, прежде всего необходимо определить сферические координаты для каждого пикселя в получающемся изображении. Если координаты пикселей одной грани – x и y; а ширина и высота этого изображения равны w, h соответственно, тогда нормализованные координаты (u, v) в диапазоне от 0 до 1 задаются следующим образом:

u = x / w (1)
v = y / h (2)

Сферические координаты θ и φ вычисляются из полученных координат u, v (1), (2).

θ определяется как угол в плоскости ХY и находится в пределах 0 ≤ θ ≤ 2π.

φ определяется как полярный угол от положительной оси Z в пределах 0 ≤ φ ≤ π [4]:

θ = 2πu (3)
φ = πv (4)

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

x = cosθsinφ (5)
y = sinθsinφ (6)
z = cosφ (7)

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

Определение грани в зависимости от направления луча из центра куба

Рисунок 2 - Определение грани в зависимости от направления луча из центра куба

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

ρ = x / cosθsinφ (8)
x = 0.5ρ (9)
y = ρsinθsinφ (10)
z = cosφ (11)

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

Программная реализация описанного алгоритма

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

Одной из основных особенностей разработки является система координат изображения и стартовая точка (0, 0) – она находится в верхнем левом углу вместо привычного в декартовой системе координат нижнего левого. В остальном достаточно просто перенести математический алгоритм в программный код.

Преимуществом Java является объектно-ориентированный подход, который можно использовать для определения собственных типов данных – точки в двумерном и трехмерном пространстве.

Диаграмма классов разрабатываемого приложения

Рисунок 3 - Диаграмма классов разрабатываемого приложения

На вход программы подается 6 изображений – грани кубической сферы. На выходе формируется одно изображение. При размере входного изображения 2048х2048 пикселей получается изображение размером 4096х2048 пикселей.

При переводе из трехмерного пространства в двумерное каждая координата y преобразуется в соответствии с программными особенностями построения изображения. Полный метод перевода координат указан на рисунке 4.

Метод перевода трехмерной точки в двумерную

Рисунок 4 - Метод перевода трехмерной точки в двумерную

Пример результата на основе кубической карты одного из видов Иокогамы показан на рис. 5.

Готовая сферическая панорама

Рисунок 5 - Готовая сферическая панорама

Выводы

Описанный в статье алгоритм позволяет получить одно псевдо-объемное изображение из 6 исходных. Такое изображение можно использовать в 360-VR-системах: очках виртуальной реальности, устройствах для смартфонов (Google Cardboard) и т. д. С их помощью достигается максимальный эффект присутствия с беспрепятственным обзором в любую сторону фотографии. Кроме того, такие фотографии можно смотреть и без VR оборудования [5], однако желаемый эффект будет достигнут в неполной мере.

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

Литература

  1. Кубическая текстура [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Кубическая_текстура
  2. Humus – Cube textures [Электронный ресурс] – Режим доступа: http://www.humus.name/index.php?page=Textures
  3. Virtual reality programming [Электронный ресурс] – Режим доступа: http://paul-reed.co.uk/programming.html
  4. Calculating Equirectangular Projection [Электронный ресурс] – Режим доступа: http://paulreed.co.uk/programming.html
  5. 360 viewer online [Электронный ресурс] – Режим доступа: https://www.chiefarchitect.com/products/360-panorama-viewer/

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

Ключевые слова: панорама, сферическая панорама, кубическая карта, фотография, изображение, камера, виртуальная реальность.

Zori S.A., Tkachenko I.S. Cube map as essential of virtual environment generation. Transformation of cube map into spherical panorama is reviewed in the article. Mathematical actions are considered. Software implementation of described algorithm is produced.

Keywords: panorama, spherical panorama, cube map, photo, image, camera, virtual reality.