Сперва немного вводной информации
Сферическая панорама должна иметь охват 360° или полный круговой обзор по горизонтали и 180° по вертикали или обзор от нижней точки (так называемый надир) до верхней точки (зенит). Если охват будет меньше - такая панорама уже не будет сферической.
Необходимое оборудование и принадлежности
Для того, чтобы снять сферическую панораму, в теории сгодится даже самый простой дешевый компактный фотоаппарат aka мыльница или смартфон (нет, мы не будем использовать GCam и прочие приложения с функцией съемки сферических панорам, потому что с их помощью качественные панорамы получить в принципе невозможно), но желательно иметь фотоаппарат с режимом ручных настроек выдержки, диафрагмы и чувствительности (лучше всего аппарат со сменной оптикой), штатив и специальную панорамную головку, которая позволяет вращать и наклонять фотоаппарат вокруг точки пересечения лучей в объективе (нодальной точки). Эта точка находится приблизительно в центральной части объектива (если точнее, там, где находится диафрагма), но ее расположение у каждого объектива индивидуально. Более того, у объективов с конструктивом "хобот" при изменении фокусного расстояния и у объективов с выраженным "фокусным дыханием" (эффект, когда при наведении на резкость на разных дистанциях заметно меняется угол обзора) положение нодальной точки также меняется.
Вот так в идеале должен вращаться аппарат на штативной головке вокруг нодальной точки (нетрудно догадаться, что стандартное штативное крепление на фотоаппарате не подойдет), причем данная картинка справедлива как для горизонтальной, так и для вертикальной оси вращения:
А вот так выглядит панорамная головка (на фото головка Сфера-3 - на мой взгляд, одна из лучших панорамных головок за свои деньги):
Суть использования панорамной головки заключается в том, чтобы свести к минимуму эффект параллакса. Чтобы наглядно оценить этот эффект, вытяните вперед руку, поднимите вверх большой палец и посмотрите на него сперва одним глазом, потом не меняя положения руки и головы - вторым глазом. Видно, что задний план заметно смещается относительно пальца.
Съемку панорам в тесных условиях, а также панорам с большим количеством сложных деталей без панорамной головки лучше даже не начинать, потому что из-за выраженного эффекта параллакса будет очень тяжело или даже невозможно нормально склеить снимки. Пейзажные панорамы и панорамы с минимумом деталей вполне можно снимать даже с самого дешевого штатива или вовсе с рук.
Но установить фотоаппарат на панорамную головку - мало. Еще необходимо ее настроить. Настройка головки сводится к установке положения фотоаппарата так, чтобы он вращался точно вокруг нодальной точки. В интернете можно найти уже готовые данные по наиболее распространенным объективам или определить положение нодальной точки самостоятельно с помощью двух длинных и узких предметов (хорошо подойдут свечи, карандаши и т. д.). Для настройки головки сперва выравниваем положение фотоаппарата по нижнему уровню так, чтобы он был строго в центре кадра, потом ставим несколько предметов вертикально один за другим на некотором расстоянии друг от друга строго на оптической оси фотоаппарата (чем дальше друг за другом они будут стоять, тем точнее получится настройка, хороший результат получается при расстоянии 40-50 см между предметами и 70-100 см до фотоаппарата). При этом задний предмет не должно быть видно за передним. Сперва поворачиваем головку так, чтобы предметы находились возле левого края кадра, подстраиваем положение головки так, чтобы передний предмет закрывал задний, потом поворачиваем головку так, чтобы предметы оказались возле правого края и точно так же подстраиваем положение, чтобы предметы были один за другим. Если ни в одном из трех положений (крайнее левое, центральное, крайнее правое) задний предмет не выглядывает из-за переднего, значит, что головка настроена правильно. Теперь можно сделать метки для дальнейшей быстрой настройки головки или затянуть винты намертво, если смена объективов не планируется.
Съемка панорамы
Делаем серию снимков по следующим правилам (этими же правилами желательно руководствоваться и для съемки обычных панорам):
1. Включаем приоритет диафрагмы и выставляем желаемое значение диафрагмы. При съемке днем имеет смысл закрыть диафрагму до значения F/7.1 - F/9 или даже сильнее, поскольку это увеличит глубину резкости и резкость всей системы в целом. В темное время суток диафрагму наоборот можно открыть, особенно там, где требуется собрать много света (съемка панорам звездного неба и т. д.). Если же идет съемка улицы, освещенной фонарями, то диафрагму также лучше закрыть до значения F/7.1-F/9. Поскольку значение выдержки при съемке в темное время суток может составлять несколько секунд, то необходим штатив и желателен спусковой тросик (впрочем, его наличие в целом ускорит и упростит съемку сферических панорам), беспроводной пульт или просто активированный автоспуск - достаточно автотаймера на пару секунд.
2. В настройках камеры выставляем баланс белого, соответствующий конкретной обстановке - ясно, облачно и т. д. Он не должен быть на автомате. Вспышку необходимо либо отключить совсем, либо держать принудительно включенной. Это важно!!!
3. Наводим аппарат на участок средней освещенности, прижимаем кнопку затвора и запоминаем значение выдержки при заданном значении диафрагмы.
4. Переключаем аппарат в ручной режим и задаем ту же экспопару или просто подбираем выдержку экспериментально без предварительного получения значения выдержки в режиме приоритета диафрагмы, после чего отключаем автофокусировку, не сбивая положение кольца фокусировки или передней линзы. Действия в пп. 1 - 4 направлены на то, чтобы на стыках между снимками не было выбивания по цвету, по экспозиции и по фокусировке.
5. При съемке со штатива обязательно отключаем стабилизатор изображения на камере и/или на объективе (если он есть), поскольку при использовании штатива он будет не компенсировать тряску, а наоборот сам приведет к дрожанию камеры и смазыванию изображения (чем более мощный стабилизатор в объективе и чем более длиннофокусная оптика, тем заметнее).
6. Видовые панорамы с достаточно удаленными объектами без особых проблем можно снимать и с рук - здесь эффект параллакса влияет мало (небольшие нестыковки подгонятся при сшивке и ретуши в фоторедакторе), но снимать на автофокусировке и сбивать фокусировку все равно нельзя, иначе на первом снимке резкость может оказаться "вот на этом дереве", а на втором снимке - "вон на той горе", и поэтому на стыке снимков часть объекта может получиться резкая, а часть - размытая.
7. Делаем серию снимков с гарантированным перехлестом между кадрами, лучше вертикально (при той же ширине охвата панорама получится в большем разрешении), лучше всего - перехлест до 1/4-1/5 кадра, поскольку чем шире область перекрытия, тем больше вероятность удачного схождения снимков.
8. Съемку панорамы нужно производить как можно быстрее, особенно в условиях, когда в кадре есть люди, транспорт, облака и прочие движущиеся объекты, в противном случае на панораме могут возникнуть казусы, типа выезжающих из ниоткуда и въезжающих в никуда автомобилей и двойников людей, вплоть до невозможности нормальной сшивки.
9. Обрабатываем всю серию в RAW-конвертере с одинаковыми параметрами или обрабатываем один снимок, после чего все настройки применяем к остальным снимкам серии.
Если мыльница не умеет снимать в RAW и/или имеет ручных настроек, то пропускаем пункты 1, 3, 4, 5 и 9.
Сборка панорамы
Для этого нам потребуется софт для сшивки панорам.
Панораму можно попробовать собрать как в Photoshop, так и в специализированных приложениях, например, Hugin, Kolor AutoPano Giga, PTGui и т. д.
Мы будем рассматривать сборку панорам на примере PTGui 10 версии, потому что она наиболее продвинута: поддерживает 64 бита и аппаратное ускорение OpenCL (видео Intel HD не поддерживается) и имеет очень мощные алгоритмы поиска точек склейки снимков и оптимизации параллакса. Стоит иметь ввиду, что на рабочем диске стоит освободить пару десятков гигабайт свободного места под временные файлы, а саму временную папку разместить на несистемном накопителе.
Также можно установить (ставятся путем простого копирования в рабочую папку PTGui и прописыванием путей в ее настройках) плагины Enblend, Smartblend (очень мощный плагин, который позволяет свести несводимое, хотя работает очень медленно, потому что не поддерживает многопоточность и 64-битную архитектуру, также возможны проблемы с изображениями размером более 4 гигов; пользуюсь им в особо сложных случаях), Autopano (это не одноименная программа AutoPano Giga, хотя они и выпускаются одним и тем же разработчиком), PTOptimizer и PTStitcher. Все эти плагины можно найти в Интернете.
Итак, фрагменты будущей панорамы сохранены в JPEG в одной папке:
Данная панорама была снята с рук без особой надежды на результат, больше из интереса. Здесь я сделал 57 снимков с избыточностью по небу и по земле, чтобы хоть что-то получилось, потому что при более ранних попытках этих снимков мне как раз и не хватало, поэтому небо и землю приходилось достраивать вручную. Забегая вперед, скажу, что несколько снимков земли из проекта я исключил. Вот, где мне совсем не помешала бы панорамная головка, которой тогда еще у меня не было.
Будем считать, что PTGui у нас уже установлена и настроена, и можно приступать к работе.
1. Загружаем серию изображений в PTGui:
2. Нажимаем Align images. Программа выполнит анализ изображений, сгенерирует контрольные точки и попытается по этим точкам соединить изображения. Результат будет показан в окне Panorama Editor, здесь также можно двигать и наклонять панораму в разные стороны с целью выравнивания горизонта, а также выбрать тип проекции:
Здесь сразу бросаются в глаза "засечки" на плитках, кусок тени от меня и небольшие дырки в областях, которые оказались недосняты.
3. Возвращаемся к главному окну PTGui, сразу же нажимаем кнопку Advanced справа (появятся дополнительные вкладки и параметры).
Поскольку низ у меня был снят с избыточностью, я сразу же сразу же исключил из проекта изображения под номерами 52 и 54.
Получилось следующее: тень от меня стала гораздо меньше.
4. Теперь переходим на вкладку Control Points. Здесь мы будем добавлять собственные контрольные точки, по которым будет сшиваться панорама, особенно если их недостаточно или PTGui не смогла их найти совсем. В данном случае сразу после первичной сборки панорамы будет выведено предупреждение о том, что часть фрагментов не удалось привязать к панораме и номера этих фрагментов. Добавление контрольных точек вручную - едва ли не самое муторное занятие при создании панорамы, потому что необходимо расставить точки между каждой парой сообщающихся между собой изображений. Но в PTGui данный инструмент реализован наиболее удобно по сравнению с другими аналогичными программами: при достаточном количестве имеющихся точек (начиная уже от 3-5) PTGui сама может предсказывать расположение добавляемых точек. Жирным выделены изображения, имеющие общие между собой контрольные точки. Так например, с фрагментом №0 связаны изображения №№ 1, 10, 11, 12, 34, 35, 45 и 46, а с №1 - изображения №№ 0, 2, 12, 13, 14, 34, 35, 36 и 46. Сама PtGui расставляет точки по одной ей понятной системе. Я же советую для удобства расставлять точки по наиболее выделяющимся объектам, например, по углам плиток, декоративным элементам, цветам на клумбе.
Небольшое отступление: поскольку эта панорама была отснята с рук, ряды получились перекошенные, а в каждом ряду - разное количество снимков. При съемке с головки все будет ровно и красиво: снимки каждого последующего ряда будут находиться строго над снимками каждого предыдущего ряда. Вот пример панорамы, снятой с использованием панорамной головки: снимки каждого из рядов находятся точно друг над другом.
Теперь возвращаемся к сборке панорамы.
5. По окончании добавления точек переходим на вкладку Optimizer, где отмечаем галки напротив всех изображений в столбце Viewpoint, ставим галки Horizontal shear и Vertical shear, выбираем Optimize using PtGui, нажимаем Run Optimizer и соглашаемся применить изменения. Снова возвращаемся на 1 вкладку, открываем Panorama Editor и видим, что стало ГОРАЗДО лучше - засечки практически исчезли.
6. Открываем вкладку Exposure. Здесь можно выполнить коррекцию экспозиции, баланса белого, виньетирования и т. д. Несмотря на то, что данный инструмент выполняет коррекцию очень и очень неплохо, он не всемогущий, и слишком выбивающиеся по экспозиции и балансу белого снимки нормально не выправит. Ставим галку Exposure Compensation, нажимаем Settings, где ставим Optimize Vignetting - Enabled, Optimize - Enabled (Full), Optimize White Balance - Enabled, Optimize Flare и Camera responce Curve не трогаем (оставляем Disabled и Automatic соотвественно). Нажимаем OK и соглашаемся применить коррекцию.
Можем проверить результат в окне Panorama Editor.
7. Переходим на вкладку Preview. Здесь можно вывести панораму в черновом качестве для предварительного просмотра. Задаем желаемое разрешение (самое оптимальное 2-3 тысячи точек по высоте, чтобы как раз влезало в монитор, и можно было немного помасштабировать), жмем Preview и выбираем, в чем будем смотреть - встроенными средствами PTGui или просмотрщиком изображений по умолчанию. Я выбираю второй вариант. Если же выбрать средства PTGui, откроется окно, в котором можно покрутить сферическую панораму. После выбора желаемого просмотрщика надо немного подождать, пока сошьется панорама.
Если панорама не хочет шиться штатными средствами, можно использовать сторонние плагины. Для этого переходим на вкладку Create Panorama, в Blend Using выбираем необходимый плагин (например, SmartBlend plugin) и возвращаемся на вкладку Preview.
А вот и результат:
Оптимизаторы сработали настолько отлично, что тень от меня пропала вовсе, засечки на плитках тоже исчезли.
Если материал отснят с использованием панорамной головки, общая ошибка (Average error) даже в случае сложной панорамы может составлять не более 4-5 попугаев, что соответствует хорошему результату (good), а дальнейшая оптимизация может привести к снижению общей ошибки до 1.5-1.7 попугаев (это уже считается very good); в ряде случаев это значение вообще может быть меньше единицы. Справедливости ради, приемлемый результат можно получить и при гораздо бОльших значениях ошибки.
8. Если результат устраивает, можно делать финальный вывод панорамы в высоком разрешении. Для этого открываем последнюю вкладку Create Panorama, выбираем желаемый формат, нажимаем Create Panorama и оставляем компьютер на время от нескольких минут до нескольких часов, в зависимости от производительности железа, а также размеров и сложности панорамы.
9. Дело техники отретушировать выведенное изображение в графическом редакторе. Это я оставляю за пределами данного руководства, потому что все сводилось к зарисовыванию дырок и оставшихся засечек клонированным штампом.
10. Теперь надо сохранить полученную панораму, уменьшить разрешение (оптимально 10000*5000 даже с запасом на масштабирование) и можно выгружать на сайты виртуальных туров или делать собственные виртуальные туры.
Создание собственного виртуального тура
Чтобы сделать собственный тур, необходимо специальное программное обеспечение. Профессионалы обычно делают виртуальные туры на движке KRPano. Этот движок очень мощный, но требует навыков веб-разработки.
Для новичка отлично подойдет приложение Pano2VR, которое позволяет выводить сферические панорамы во Flash и в HTML5 для просмотра в любом браузере и встраивания в страницы на сайтах, а также трансформировать в различные нестандартные проекции ("рыбий глаз", маленькая планета" и т. п.), хотя профессионалы ее ругают за очень грязный код движка и медленную работу.
Здесь я коснусь минимума реализованных в Pano2VR функций, а так на самом деле она сама достойна написания отдельной статьи по ее использованию, потому что позволяет создавать туры из нескольких панорам с точками переходов, добавлять изображения, звуки, текстовые метки и т. д.
1. Нажимаем Импорт, выбираем сохраненную панораму:
2. В списке справа выбираем шаблон оформления, для просмотра и редактирования шаблона нажимаем Редактировать оформление:
Здесь к стандартному шаблону controller_new добавлен прямоугольник с текстом подписи панорамы.3. Для вывода интерактивной панорамы нажимаем на плюсик справа, выбираем Flash или HTML5, выбираем шаблон оформления, задаем желаемые параметры автопрокрутки, возврата в горизонт, работу мыши и т. д. Для окончания вывода нажимаем на шестеренку и ждем.
Вот конечный результат наших трудов:
Если планируется публикация панорамы или полноценного тура из нескольких панорам на персональном сайте без использования сторонних сервисов, советую экспортировать в HTML5, потому что такие панорамы будут доступны для просмотра на большем количестве устройств, включая смартфоны и планшеты.
При экспорте в HTML5 будут созданы папки с тайлами, скрипт движка и HTML-файл для открытия в браузере.
Для публикации панорамы необходимо содержимое папки с панорамой выгрузить через FTP на сервер хостинга с соблюдением всех путей (корневая папка хостинга) и указать ссылку на HTML-файл из папки с панорамой.
Чтобы встроить панораму в страницу сайта, необходимо скопировать текст из HTML-файла и вставить его на сайте в режиме редактирования кода страницы.
Пример встраивания панорамы в одну из популярных CMS Joomla (из кода HTML-файла убрана таблица с копирайтами).
При необходимости можно отредактировать пути в файлах стиля и движка, особенно если планируется размещение нескольких несвязанных виртуальных туров, но нужно быть предельно внимательным, чтобы ничего не перепутать.
При импорте панорамы в Pano2VR могут быть заметны явные косяки типа сходящихся конусом неба и земли, например, такие:
В данном случае панораму необходимо разрезать на квадраты, затем эти квадраты отретушировать в фоторедакторе и заново собрать из них панораму.
Для этого:
1. Нажимаем Преобразовать импорт, в открывшемся окне выбираем Тип - Грани куба, все остальное оставляем как есть и нажимаем Конвертировать.
После конвертации в папке с панорамой появятся 6 квадратных фрагментов панорамы:
2. Видно, что необходимо избавиться от конуса на небе (фрагмент IMG_3931 Panorama1_cube_4.tif). Каждый решает сам, как и что будет делать. Я его размазал с помощью микс-кисти.
До и после:
3. Сохраняем отретушированный фрагмент и загружаем его в Pano2VR, после чего проверяем, нормально ли он состыковался с остальными кусками панорамы.
4. Конуса как раньше больше нет, поэтому панораму можно собирать обратно. Снова нажимаем Преобразовать импорт, но теперь выбираем Тип - Эквидистантная, указываем ширину исходного изображения и снова нажимаем Конвертировать.
При съемке со штатива в нижней части панорамы неизбежно появление черного круга - области, не охваченной во время съемки, а также ног от штатива, как на примере ниже:
Единых рецептов по устранению черного круга нет - в случае, если надир простой (земля, асфальт и т. д.) - достаточно круг замазать клонированным штампом. При ретуши надира с повторяющимися элементами (плитка, паркет и т. д.) можно сделать заплатку из фрагмента, взятого рядом с кругом, подогнать его различными трансформациями и по месту пройтись ластиком и подмазать клонированным штампом. Еще более сложный надир (ковры со сложным узором и т. д.) однозначно требует съемки кадра земли, который будет использован в качестве заплатки.
5. Полученное изображение в TIFF можно пересохранить в JPEG и использовать для выгрузки на сайты сферических панорам или создания собственных виртуальных туров.
6. Если при сборке панорамы вылезли двойники или "распиленные" объекты, я либо заретушевываю их клонированным штампом (если это представляется возможным), либо открываю исходное фото, выделяю нужный объект, копирую, вставляю в панораму, подгоняю с помощью различных видов трансформации (искажение, деформация и т. д.), объединяю слои и прохожусь по краю вставленного фрагмента клонированным штампом или перед объединением слоев прохожусь ластиком с мягкими краями и нажимом 50-70%.
Надеюсь, эта информация была для кого-то полезной.