Самый болезненный вопрос для съемки клееных панорам - это параллакс. Именно параллакс мешает нормально и без проблем снимать панорамы с рук и собирать их за 1 минуту.
Поскольку до
давно обещанного мастер класса по панорамам и HDR еще далеко, попробую написать тут основные мысли, которые часто приходится писать в коментариях.
Что такое параллакс:
Классическую картинку с иллюстрацией параллаксе мне делать лень, поэтому проведем мысленный эксперимент. Возьмите палец любой в количество одной штуки и разместите его неподалеку от Вашего глаза. За ним должен быть задний план, типа дома с окошками или шкафа с книжками. Палец будет олицетворять колонну или дерево, находящиеся недалеко от фотографа. Посмотрите на дерево палец и сдвиньте камеру голову. Вы сразу увидите, как палец переместится по шкафу или дому на ЗП. Это явление и называется параллаксом: перемещение близкорасположенных объектов относительно далеко расположенных при перемещении камеры.
Если Вы поворачиваете камеру при съемке панорамы, она смещается. При съемке с рук Вы крутите ее вокруг оси, проходящей где-то возле Вашей шеи. При съемке со штатива - вокруг оси, проходящей где-то в районе матрицы. Параллакса нет только при вращении камеры вокруг оси, проходящей через нодальную точку объектива.
Что происходит при сборке панорамы с параллаксом
1. Опять-же, обойдемся мыслительным экспериментом. Сфотографируйте дом на ЗП с пальцем на ПП, сместив камеру (2 кадра). Давайте совместим кадры так, чтобы дом на ЗП идеально совпал. Что будет с пальцем? Он окажется в разных местах, поскольку в этих кадрах находится перед разными частями дома. И никакое шаманство при сборке не поможет нам сделать так, чтобы он совпал.
2. Пусть наш "палец" на реальной панораме переходит из одного кадра в другой? Что мы получим при идеальном совпадении ЗП? У не очень умного блендера (алгоритм смешивания кадров при сборке панорамы) мы получим "привидение" - полупрозрачный палец смешанный с домом на ЗП. У умного блендера (smartblend и др.) - просто поломанный палец (слом будет в случайном месте, где блендер поместит границу между кадрами) или вообще 2 отдельных обрубка пальца. Если же нам повезло, и палец целиком влез в 1 исходный кадр, то глупый блендер опять-же сделает "привидение", а вот умный - либо полностью удалит палец, либо оставит его целиком, взятым из одного кадра (хотя может сделать и 2 экземпляра). И опять-же, никаким шаманством при съемке или сборке нам с этим не побороться.
3. Параллакс ограничивается случаями дерева, перекрывающего ЗП? Как бы не так! Очередной мыслительный эксперимент мы проведем с дорогой, идущей из бесконечного удаленного прекрасного далёко прямо к фотографу . Снимаем панораму с передним планом. Что будет при смещении камеры при идеальном совпадении ЗП? Дорога, конечно, ЗП не перекроет, просто на перекрывающихся кадрах она будет вести в разные места, а совпадать будет только на горизонте. И эта проблема будет в любом случае, если в кадр попадают объекты, находящиеся на разном расстоянии от фотографа. Конечно, если близко от Вас песок и трава, то smartblend прекрасно смешает кадры и ничего не будет видно, но если там тротуарная плитка или ковер - то он будет поломан. Ну и, как в пункте 2, сборщик панорамы ничего не может сделать в этом случае - в его арсенале нет геометрических преобразований для подгонки таких кадров. Впрочем, с помощью warp'а в фотошопе ("деформация" в русской версии) кадры можно подогнать, но если Вы представите столб, растущий рядом с дорогой, то warp сделает его "слегка" не-вертикальным.
4. Вы думаете это все проблемы? А как бы не так! Теперь вспомним про оптимизатор. Оптимизатор - это такой алгоритм, который вычисляет положение кадров в панораме (параметры вращения камеры по трем осям yaw, pitch, roll) и подбирает точную информацию об объективе (FOV, коэффициенты исправления дисторсии) используя информацию об общих контрольных точках между перекрывающимися кадрами. Он делает это путем перебора вариантов (и что-то там считает для каждого из них), выбирая тот вариант, у которого будет минимальная ошибка сведения (т.е. среднее расстояние внутри пар контрольных точек в собранной панораме будет минимальным). Опять-же, рассмотрим на примере двух кадров с пальцем. У нас будет 5 контрольных точек на ЗП и 5 - на пальце. Что сделает оптимизатор? Он разместит кадры так, чтобы не совпал ни палец, ни ЗП, а ошибка сведения ПП и ЗП была бы примерно одинаковой. Т.е. не совпадет ни ПП, ни ЗП. Заодно, оптимизатор попортит и вычисленные параметры оптики - ломать так ломать! В итоге мы получим:
- развалившийся на ступеньки горизонт
- поломанную картинку на всех стыках в панораме
- горизонт волнами (и это невозможно будет исправить обычными методами)
- случайно пляшущие вертикали по всей панораме (ведь оптимизатор крутил исходники, подгоняя ПП)
Что делать?
1. Не снимать панорамы с ПП :)
2. Научиться собирать панорамы с параллаксом.
3. Использовать панорамную головку к штативу (не путать с 3d-головой) - специальное приспособление для вращения камеры вокруг нодальной точки объектива. При этом параллакса не будет. Я использую
Nodal Ninja, выбор таких голов большой - с ценой от $100 и до пары тысяч. Все они устроены по сути одинаково, принцип действия понятен из фото с указанного сайта. Они отличаются весом, прочностью, удобством настроек, материалом, ценой. Самые простые - для вращения в одной оси с горизонтальным положением камеры, фактически такая головка - это одна рейка; более сложные - головы с вращением в одной оси и вертикальным положением камеры (есть в арсенале RRC); самые сложные - с вращением в двух осях. При всей привлекательности этого пути не все ему следуют: кто-то экономит деньги на головке и штативе; кто-то ленится таскать их с собой; кто-то - носит, но редко использует (я такой, то времени мало возиться со штативом, то лень). Иногда она и не может помочь, пример -
тут +
комментарии.
в качестве замены штатива с панорамной головкой можно использовать отвес, прикрепленный к объективу возле нодальной точки. Съемка с таким отвесом - не самое простое дело (надо крутить камеру так, чтобы отвес висел возле одной точки на земле), но вполне реальное.
Собираем панораму с параллаксом
Есть 2 рецепта: правильный и неправильный.
Неправильный очень простой и легко делается в PTGUI: открываем таблицу со списком контрольных точек, сортируем по ошибке и удаляем к.т. с самой большой ошибкой. Если Вы внимательно прочитали выше про работу оптимизатора при параллаксе, то легко поймете, почему он неправильный - оптимизатор уже постарался, чтобы равномерно размазать ошибку между передним и задним планами, поэтому максимальная ошибка будет у случайно взятых к.т., удаление которых нам ничем не поможет.
Правильный метод несколько более сложный: вручную удаляем к.т. с объектов переднего плана и добавляем побольше на задний план. Для этого хорошо подходит Autopano Pro: там есть удобная визуализация связей между исходными кадрами, при редактировании контрольных точек можно удалять точки в выделенном прямоугольнике, и добавлять в выделенный прямоугольник (PTGUI удаляет только поштучно, добавляет в выбранном месте - тоже поштучно). Для не очень сложных случаев я просто удаляю связи между кадрами нижнего ряда - этого хватает (заодно часто удаляю связи между верхними кадрами - там много к.т. на облаках попадается). В сложных случаях - просматриваю все подозрительные связи и исправляю их. Стараюсь сделать так, чтобы к.т. находились только на объектах ЗП. Если этого сделать невозможно, то таким исходникам я делаю связь только с 1-2 "соседями", причем количество к.т. у них делаю меньше, чем у нормальных кадров.
После всех изменений проект надо переоптимизировать. Если Вы все сделали верно, то общая ошибка сборки уменьшится, а в списке связей Autopano будет видно, что ошибка перестала быть размазанной по всей панораме, а переместилась на кадры ПП.
Что в итоге?
В итоге мы получаем панораму с нормальным горизонтом, вертикалями (в т.ч. и на ПП), идеальной сборкой объектов ЗП, но на ПП у нас будут проблемы - с этим ничего не поделать. Если повезет, то smartblend эти ошибки исправит. Если не повезет, то Вас ждет фотошоп: собираем панораму с исходными слоями, и дальше аккуратно лечим проблемные места, выбирая фрагменты исходников, а что-то придется подогнать warp'ом ("деформация"). Про работу со слоями в фотошопе я писал давно
тут.