3D-панорамы. Часть III: Редактирование проекций, создание 3D-панорамы

[adrotate banner="2"]

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Продолжаем серию уроков “Создание 3D-панорамы”

В предыдущих статьях было рассмотрено:

1. По каким принципам надо снимать, чтобы фотографии сшились в единую панораму

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

В этой статье отредактируем изображение панорамы, полученное в предыдущем уроке, достроим зенит и создадим 3D-панораму.

Скачать панораму, полученную во второй части серии уроков (6.6 Мб)

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

1. Программное обеспечение для работы с панорамами

Нам потребуются программы:

1) Для работы с проекциями: Pano2VR (ссылка на триал-версию).

2) Для создания 3d-панорамы на основе сферической проеции: Autopano Tour. В версии Autopano Giga 2.0.6 эта программа уже поставляется в комплекте. Для версии 2.5 можно скачать программу Panotour. Функционал у нее достаточно схож с Autopano Tour.

Данные программы основаны на функционале просмотрщика панорам krpano. Этот просмотрщик имеет широкие возможности по созданию 3d-панорам, но при этом не имеет графического интерфейса. Все редактирование панорамы осуществляется через командную строку и редактирование xml файлов.

Autopano Tour предлагает функционал krpano в более удобном и привычном виде, но вместе с тем требует лицензию на krpano. Без этой лицензии у вас будут ограничения на разрешение 3D-панорамы.

Купить лицензию на krpano можно тут.

3) Для работы с изображениями, само собой, потребуется Adobe Photoshop.

2. Заполнение зенита

На этом этапе необходимо панораму привести к необходимым размерениям.

У полной сферической проекции панорамы обзор составляет 3600 по горизонтали и 1800 по вертикали. Следовательно в сферической проекции соотношение сторон должно быть два к одному.

В нашей панораме получилось разрешение 7066х3272, а для сферической проекции необходимо 7066х3533.

По прошлому уроку мы видели, что исходя из значения угла Phi, у нас получилось что от горизонта до надира у нас полное заполнение (т.к. Phi Min = 900), а от горизонта до зенита нет (т.к. Phi Max < 90). Значит в данном случае нужно заполнить панораму в верхней части

Открываем панораму в Photohop-е

Главное меню (которое в самом верху) -> Image -> Canvas Size. Ставим Anchor в нижнюю часть квадрата и устанавливаем Height = 3533.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

А что делать если в панораме присутствуют недостроенные и зенит и надир?

В этом случае определите линию горизонта, и дозаполните до 1/4 ширины выше и ниже горизонта.

Например, получившаяся панорама имеет разрешение 10000х3500, а линию горизонта на уровне 2000 пикселей от верхней границы.

Получается, что необходимо достроить вверх (10000/4)-2000=500 пикселей, а вниз (10000/4)-(3500-2000)=1000 пикселей.

В результате получится высота 3500+500+1000=5000 пикселей, т.е. ровно половина от ширины. Условия соотношения сторон два к одному соблюдаются.

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

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

Для того чтобы достроить зенит – преобразуем панораму из сферической проекции в кубическую.

Запустите программу Pano2VR

В область Импорт из проводника или файлового менеджера перетащите файл панорамы.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Программа автоматически попытается определить тип проекции. В данном примере Pano2VR тип проекции установила верно – эквидистантная (другое название сферической проекции)

Вместе с тем, если присутствует предварительное заполнение надира или зенита, то иногда она это делает неправильно. Если такое произошло – нажмите кнопку Выбрать и вручную укажите нужный тип.

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

Выберите тип проекции Стороны Куба и нажмите Process

Программа Pano2VR может работать с несколькими типами проекций: эквидистантная, цилиндрическая и кубическая.

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

Например, если большую часть панорамы занимает длинное здание, на котором получились дефекты (изломы, засечки).

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

4. Редактирование панорамы

Итак, после преобразование панораму из сферической в проекцию Стороны Куба мы получили 6 файлов. Особое внимание следует уделить сторонам надира и зенита (они под номерами 5 и 6). В данной панораме сторона надира не имеет дефектов, а вот в центре зенита – черный многоугольник, соответствующий той области, которую мы заполняли в сферической проекции.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Откроем сторону зенита в photoshop-е и достроим кадр зенита. Для этого скопируем часть изображения в новый слой и расположим его поверх черного многоугольника.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Отредактируем его так, чтобы провода располагались по одной линии. Для этого воспользуемся инструментом Free Transform (Главное меню -> Edit-> Free Transform). Напомню, что вы можете перемещать углы редактируемой области при помощи мыши если зажать клавишу Ctrl.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Применим к слою маску (Главное меню -> Layer->Layer Mask->Reveall All) и при помощи кисти замажем резкие границы слоя.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

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

Теперь кадр зенита достроен.

Выделим все 6 файлов сторон куба и перетащим мышкой в область импорта в программе Pano2VR.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Затем нажмем кнопку Изменить и преобразуем панораму из кубической проекции обратно в эквидистантную.

В результате получилась полная сферическая проекция панорамы с углами обзора 360х180.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

5. Создание 3d-панорамы.

Запустим программу Autopano Tour.

Перетащим файл панорамы из проводника или файлового браузера в левую верхнюю область окна программы и кликнем по самой панораме.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Меню Hotspot Editor

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Здесь можно указать месторасположение солнца (для создания линзовых эффектов), и обозначить точки перехода между панорамами.

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

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

Меню 3D Editor

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Здесь вы можете посмотреть превью будущей 3D-панорамы. Покрутите проекцию, определите понравившийся ракурс, нажмите правую кнопку мыши и выберите set a start position. С этой точки будет запускаться ваша 3D-панорама.

В этом эдиторе Yaw, Pitch — это углы по горизонтали и вертикали на которые повернута камера.

Fov — угол зрения. Влияет на угловые размеры изображаемого пространства и перспективные искажения картинки. Тут угол можно поставить исходя из своих предпочтений (я обычно ставлю fov = 55)

Вкладка Panorama Properties

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

Здесь указываются основные свойства панорамы.

Field of view. Углы обзора панорамы. В данном случае у нас панорама с полным обзором, поэтому выставлено Horizontal=360, Vertical=180.

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

Autopano Tour считывает параметры оставленные Autopano Giga или пытается автоматически вычислить углы (как в нашем случае).

Но иногда происходит следующая ситуация: Autopano Giga прописала углы в файл, а мы отредактировали панораму через Photoshop и Pano2VR.

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

А что тогда такое Vertical offset?

Данный параметр показывает насколько градусов надо сместить линию горизонта если угол Phi Min не равен Phi Max (подробнее об этих углах в предыдущей статье).

Горизонт в 3d-панораме должен проходить через центр, когда камера находится горизонтально. Но если Phi Min не равен Phi Max, то расстояние в пикселях от горизонта до верхней границы и от горизонта до нижней не равны друг другу. В этом случае необходимо сместить панораму по вертикали, чтобы выровнять положение горизонта.

Vertical offset = (Phi Min+ Phi Max)/2

Здесь следует учитывать, что Phi Min идет со знаком “-”.

Pictures parameters

Preview Width

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

Jpeg Quality

Изображение для панорамы кодируется в jpeg-файл. Здесь устанавливается значение качества. Если панорама подготавливается для интернета, то рекомендуется устанавливать качество 6-9.

Cube Face Size /Partial Panorama Width

Изображения для 3D-панорамы сохраняются в кубической развертке. Если панорама сферическая – то предлагается ввести ширину стороны куба (Cube Face Size). Для интернета в этом случае подойдет значение 1500-2000.

Если панорама с углом обзора по вертикали не 180, то здесь необходимо ввести ширину панорамы в сферической развертке. Опять таки, если панорама подготавливается для размещения в интернете, подойдет значение 5000-7000.

Если нажать на кнопку Compute Optimal Size, то программа предложит свое значение с точки зрения оптимальности Cube Face Size /Partial Panorama Width. Вместе с тем предложенные значения не всегда подходят.

Nadir Patch

Если в надире вы хотите разместить логотип, или какое-либо изображение то выберите здесь файл и отрегулируйте размер этого изображения (параметр Scale)

В данном примере мы не будем использовать эту возможность.

Camera Parameters

Yaw, Pitch определяет начальные углы камеры (эти параметры определяются автоматически, если в 3d editor-е использовалась функция set a start position)

Fov — угол обзора камеры.

Следует заметить, что Fov камеры и Fov в 3d Editor-е это независимые значения. Для создаваемой 3d-панорамы необходимо выставить Fov именно в Camera parameters. В данном случае установим Fov=55.

Параметры Min и Max определяют соответственно минимальный и максимальный fov камеры, если пользователь будет изменять масштаб. Т.е. эти параметры определяют в каких пределах пользователь может приближать и удалять картинку.

Поставим Min=20, а Max=100.

Вкладка Project Properties

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

First Displayed Panorama

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

Insert navigation menu

Позволяет вставить навигационное меню. Оно показывается в нижней части панорамы.

Use auto rotation

Использовать автовращение. Если пользователь некоторое время не двигает мышкой, то панорама начинает плавно вращаться по горизонтали.

Add full screen button

Позволяет возле навигационного меню поместить кнопку для просмотра панорамы в полноэкранном режиме.

Insert panoramas list

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

Logo

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

Export

В данном пункте можно настроить параметры экспорта.

3d-панорама собирается из нескольких файлов:

Swf – исполняемый флеш файл панорамы.

Xml – текстовый файл с описанием настроек панорамы.

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

Напрямую работать с этими файлами нет необходимости, программа Autopano tour может сама все оформить. Вместе с тем надо указать как именно ей необходимо собирать 3D-панораму.

Embed all data

Данная настройка позволяет упаковать все вышеобозначенные файлы в единый swf-файл. Это удобно для размещения 3D-панорамы в интернете, и для распространения на дисках.

Embed XML files

Эта настройка позволяет определить, надо ли упаковывать XML файл в общий swf-файл. Возможность “неупаковки” может потребоваться если вы хотите вручную настроить данный XML-файл.

HTML Template

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

По умолчанию данные шаблоны находятся в:

папка_куда_вы_инсталировали_Autopano_Giga\Temlates\html

Сюда можно разместить свои шаблоны и после перезагрузки Autopano Tour автоматически добавит в список.

В данном примере выберем шаблон simpleWithFullScreen.html. Это простой шаблон вывода 3D-панорамы c возможностью развернуть полностью на экран.

6. Просчет 3d-панорамы и размещение ее в интернете

Теперь мы настроили экспорт изображения панорамы в flash-файл и запускаем на просчет.

3D-панорамы. Часть III:  Редактирование проекций, создание 3D-панорамы

— Export Flash

 

В результате получим 2 файла: swf файл панорамы, и html шаблон для размещения ее в интернете. Оба типа файла можно посмотреть при помощи браузера.

Для того чтобы разместить 3d-панораму в интернете, разместите оба файла на вашем хостинге, и укажите ссылку на html-файл.

Финальная 3D-панорама.

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

Автор статьи: Александр Слободенюк
Сайт: 1panorama.ru
Mail: info@1panorama.ru
1panorama.ru — Фотосъемка панорам. Создание интерактивных виртуальных туров.

Прошлые части статьи:

Создание 3D-панорамы. Часть I: Теория и фотосъемка

Создание 3D-панорамы. Часть II: Сборка фотографий в единую панораму