З розвитком технологій найсміливіші панорамні фотографи стали задавати питання: а чи можна знімати не тільки статичні сфери, коли глядач знаходиться лише в нерухому точку зйомки? Чи можна знімати сфери в русі, даючи можливість глядачеві пересуватися в просторі і при цьому дивитися на всі боки? Тоді це здавалося фантастичним.
Проте, прогрес невблаганно рухався вперед, і фантастика стала реальністю.
Початок. перші труднощі
Звичайно, об'єктив після цього не виглядає як новий :), але зате можна зняти сферичну панораму, зробивши всього три кадри.
Але при практичному здійсненні цього простого плану ми виявили велику кількість перешкод, часом просто непереборних. Тиждень тривав мозковий штурм, і ще тиждень ми експериментували зі зйомкою і складанням матеріалу. Через два тижні на сайті з'явився наш перший тестовий ролик, який через 10 хвилин завалив сервер :) Далі ми розповімо, як ми боролися з труднощами, і що з цього вийшло.

Для кріплення камер було виготовлено ось такий пристрій.


Потрібно згадати ще одна з переваг використання мильниць - компактність і малу вагу всієї конструкції.
Однак при цьому не буде вирішена головна проблема: синхронна зйомка всіх камер (про це буде сказано трохи пізніше).
Потім були пошуки альтернативних хакерських прошивок для Canon, в яких могло бути щось корисне для нас, але теж безуспішно.
Проблему вирішили простим методом. Коли ми скаржилися на важку долю нашого колеги, Стасу Сєдову, той навіть здивувався простоті питання і запитав: а як в кіно камери синхронізують? Хлопавкою - синхронізація по звуку.
Спочатку ми купили відлякувач для собак гучністю 130db. Він пищав так голосно, що боляче закладало вуха, але зате його добре було чутно в шумному вертольоті. Однак виявилося, що потрібен швидкий імпульс з різким фронтом, і відлякувач зовсім не годиться, але зате нам чудово підходить бавовна в долоні.

Розглянемо роботу двох камер (в реальній ситуації їх було чотири). Припустимо, зйомка ведеться з частотою 30 кадрів / сек. У верхньому ряду зелені сектори позначають час експозиції першої камери, червоні - другий камери. Оскільки камери запускаються вручну, то час експозиції у всіх камер зрушено за часом на випадкову величину. При підгонці кадрів ми можемо вибрати точку розрізу тільки дискретно - по частоті кадрів. Тобто для того, щоб підігнати камеру з червоними секторами до зеленого сектору, доведеться вибрати червоний кадр A або В, але обидва вони не збігаються в с зеленим кадром. Таким чином в будь-якому випадку є різниця в часі між зйомкою кожної камери. Величина ця чисто випадкова, і лежить в проміжку часу, рівному тривалості кадру.
Для статичних зображень, якщо камера стоїть на місці, цей параметр не має значення. Якщо бути точним, майже не має - до тих пір, поки об'єкт, що рухається не проходить кордон зони перетину сусідніх кадрів. В цьому випадку при швидкому русі об'єкта він буде «розрізаний», і на об'єкті з'явиться «сходинка».
Коли ми це зрозуміли, розгадка була знайдена швидко.
Для англійської версії меню:
Menu - Live View / Movie func. set. -> LV func. setting - Stills + movie -> Screen settings - Movie display
З метою полегшити подальшу сортування матеріалу на камери були наклеєні стікери A, B, C, D. Таким же чином були помічені і флеш-карти кожної камери. Зйомка починалася в такій послідовності:
2. Переводимо всі камери в режим Live View.
Для підтвердження переконуємося, що в меню стоїть наступне піктограма:
4. По черзі включаємо запис на камерах А, В, C і D. Зйомка почалася.
5. Робимо гучний хлопок в долоні. Цей звук і є наша кіношна «хлопавка». З цієї мітці буде здійснено вирівнювання кліпів від всіх камер.
6. Висуваємо камери в люк автомобіля і починаємо рух.
Стежимо за таймером, так як максимальний час запису складає 12 хвилин. Це визначається файлової системою флеш-карти камери, в якій розмір файлу не може бути більше 4Gb.


- Вид «з очей» однією з чотирьох камер
На етапі розробки методики ми використовували для обробки комп'ютер середньої потужності: колись знаменитий Intel Core 2 Duo 3.3 GHz, 8 MB RAM, RAID0 2xRaptor HDD.
Тому ми взяли комп'ютер серйозніше: потужний ПК з процесором Intel Core i7 Extreme Edition 3.3 GHz, 24 MB RAM, SSD накопичувач PCI-E 480Gb OCZ RevoDrive X2 Series SSD, і це дозволило в кілька разів скоротити час обробки. Тепер процес складання займав не більше 20 хвилин! Особливо хочеться відзначити роботу SSD HDD при роботі з масивами невеликих файлів. Швидкість доступу в даному випадку є вирішальним фактором. З таким потужним комп'ютером половину гуртки чаю вже доводилося залишати на столі :)
Отже, в нашому розпорядженні виявилися одночасно зняті кліпи з 4 різних камер зі звуковими мітками початку зйомки.


Виділяємо початок кожного кліпу і безжально відрізаємо. Зрушуємо всі кліпи до початку і відрізаємо відразу всі кінці кліпів. Таким чином, отримуємо чотири кліпи рівної довжини, синхронізовані за часом зйомки з точністю до одного кадру.

Далі кожен кліп експортується в окремі папки A, B, C, D як окремі зображення формату JPEG.

На даному скріншоті показані установки експорту.
В результаті експорту ми отримали в папках послідовності jpg-кадрів від кожної камери.

Легко здогадатися, що назви папок і індекс кліпу відповідають матюками на камерах A, B, C, D.
Далі за допомогою саморобної програми-сортувальника, написаної на Бейсике, кожні чотири кадри з однаковими номерами поміщалися в окрему папку. У підсумку отримуємо набір папок з індексом P на початку імені папки (P- panorama).

Вміст папок розподілено так, як показано на скріншоті нижче:

Збірка панорам велася за шаблоном в пакетному режимі за допомогою популярної програми для склеювання панорам PTGui PRO.
Отже, коротко розповімо, як робилася збірка.
Оскільки всі камери були жорстко закріплені, то не було необхідності збирати з нуля кожну панораму окремо. Досить було зібрати шаблон з перших кадрів, а потім зібрати решту панорами з цього шаблону. Як шаблон для складання всіх панорам були відібрані 4 кадри, по одному від кожної камери, коли автомобіль ще не рухався.
Отже, збираємо цю панораму, проставляючи контрольні точки по заднього плану (пам'ятаємо, що на передньому у нас паралакс), оптимізуємо панораму, і шаблон проекту збірки готовий.
Ми не хотіли вручну збирати кілька тисяч панорам, тому скористалися можливістю пакетної збірки на нашу шаблоном, яку надає PTGui.
Залишаючи проект з шаблоном відкритим, запускаємо batch Builder - пакетний складальник проектів
(Мітка 1 на скріншоті нижче).

Наступний крок: вибрати поточний відкритий проект як шаблон для складання всіх інших проектів (мітка 2). Потім переходимо до побудови проектів: «Generate new projects» (мітка 3).
Побудова проектів вибрано за умовою: «в одній папці - одна панорама»; цей процес наочно ілюструє скріншот нижче:

В результаті з кожних чотирьох кадрів в папках P000. Pnnnn будуть зібрані проекти для збірки еквідистантних проекцій. Після завершення процесу складання проектів batch Builder запропонує передати всі проекти в batch Stitcher. Погоджуємося, і далі починається процес складання еквідистантних проекцій (самих панорам). Залежно від потужності вашого комп'ютера він може тривати до декількох годин.
Потім всі отримані панорами були оброблені ( «підфарбовані») в пакетному режимі в Adobe Photoshop для додання насиченості і барвистості зображення. Уже на цьому етапі було помітно, що отриманий матеріал перевершує по динаміці світлотіні і деталізації репортаж з Гаїті.




Для того, щоб глядач міг бачити звичну картинку і обертати її на всі боки, потрібен спеціальний плеєр, який відтворює потокові еквідистантно проекції.
Для зниження параллакса можна використовувати цифрові мильниці невеликого розміру.
І в обох випадках (дзеркалки і мильниці) не буде вирішена важлива проблема: синхронна зйомка всіх камер. Для цього потрібно втручатися в електроніку на рівні виробників.
Висока якість
Безумовно, наші тестові зйомки не претендують на оригінальність і художність, а всього лише ілюструють принципову можливість створювати такі кліпи з підручного обладнання.