Спору нет:
Gigapan,
360 Cities,
ViewAt — всё это неплохие глобальные сборники и хостинги фотопанорам для публикации и просмотра всеми желающими. О достоинствах 360 Cities многие из нас узнали, разглядывая
восьмидесятигигапиксельную панораму Лондона; кроме того, панорамы 360 Cities
дней пять назад были включены в фотослой Google Earth. Отдельным слоем в Google Earth показываются и избранные панорамы из Gigapan; другим достоинством Gigapan является флэшёвый демонстратор многомегапиксельных и даже многогигапиксельных фотографий, который может бесплатно размещаться на других сайтах и подкачивает увеличенное изображение по мере нужды (примерно подобно тому, как Google Maps или Google Earth подкачивает свои детальные спутниковые фотографии). Это явное преимущество по сравнению с сайтом 360 Cities (который требует платы за размещение панорам за пределами некоммерческих вебсайтов) и с фотопроигрывателем ViewAt (который сперва подкачивает всю панораму из Сети, и лишь затем начинает показывать её).
Но я собрал вас поговорить о другом: наверное, есть и такие аналогичные средства для демонстрации фотопанорам, которыми пользуется фотограф, желающий разместить фотопанорамы на своём собственном сайте вместо внешнего хостинга?
Или (что примерно то же самое) такие средства, которыми пользуется бизнес: музей, или картинная галерея,
или какой-нибудь магазин — желающий разместить фотопанорамную экспозицию своего товара в Интернете?
Что это за средства? Как организуется просмотрщик на сайте, как организуется фотоматериал для просмотра и для подкачки по мере нужды? Есть ли открытые, свободные, или хотя бы бесплатные, готовые решения для этой цели? А если нет открытых и свободных, то каковы платные?
У меня до сих пор нет настолько хорошего ответа на эти вопросы, который бы вполне меня устраивал. Я предлагаю, однако, обозреть более дюжины решений, самому мне попадавшихся; быть может, сообщество Хабрахабра заполнит пробелы в моих изысканиях.
Изыскания логично было начать с трёх крупных фотохостингов, перечисленных выше. К сожалению, из них только ViewAt
честно признаётся, каким панорамопроигрывателем пользуется: это
Flash Panorama Player, цена которого ≈40 €. Основной недостаток этого варианта явствует сразу: исходные данные для него подготавливаются как шесть граней кубической проекции и подкачиваются все целиком (по крайней мере, на сайте ViewAt мне пришлось сперва смотреть на progress bar с процентами, и лишь затем на панораму). Наверное, это не лучший вариант.
Простым погугливанием по словосочетанию «360 panorama» нетрудно найти продукт
360 Panorama Lite (≈50 $). На его сайте явствует, однако, что автор употреблял
какие-то особые вещества, потому что страница, начавшаяся во здравие («…without the need for plugins»), продолжается за упокой («…are looking for a java panorama viewer…»; а ведь всякому известно,
что Java — это именно plugin, да ещё довольно увесистый, так что запуск его редко отнимает менее нескольких секунд).
Примерно таким же способом нагугливается
FirmTools Panorama Composer (ценою ≈30 $), поддерживающий формат
QuickTime VR. Этот старинный и почтенный формат, насколько я его понял, вообще немало популярен среди программ, создающих фотопанорамы (взять хотя бы
PTGui); однако формат этот предполагает создание единого
.MOV-файла, который будет грузиться из Сети весь целиком. Закинуть туда
сколько-нибудь многомегапиксельную панораму (например, 20000×5000 пикселов) означало бы напрашиваться на неприятное ощущение у всех тех зрителей, которые не располагают ни терпением, ни безлимитным многомегабитным каналом связи с Интернетом. (Не секрет, что многие провайдеры предлагают юридическим лицам или пользователям сотовой связи такие тарифы, которые не назовёшь ни дешёвыми, ни скоростными, ни безлимитными.) Правда, в пользу QTVR можно сказать хотя бы то, что формат этот не требует того, чтобы зритель сперва выкачал
весь файл, а затем смотрел его; во всяком случае, программа
Pano2VR (ценою ≈60 €) обещает «subtiling for progressive download».
Вспомнив PTGui, уместо поискать панорамопроигрыватели
в разделе ссылок на сайте PTGui. Сперва там отыскивается вышеупомянутый Pano2VR, за ним — ещё выше упомянутый Flash Panorama Player, затем — ещё нами не рассматривавшиеся krpano, PanoSalado и PTViewer.
Панорамопроигрыватель
krpano обходится
в 90 € — но потребует
ещё ≈300 € от желающих убрать на своём сайте его название из панорамопроигрывателя. (Сразу скажу: это название отображается в правом нижнем углу
довольно-таки неприятным рубленым курсивом, так что я не удивлюсь желающим уплатить вчетверо за то одно, чтобы его не видеть.) Движок krpano обладает возможностью
подкачки изображений по мере нужды, в том числе с постепенно увеличивающимся разрешением;
и есть пример. Вообще он содержит все те функции, которые необходимы хорошему панорамопроигрывателю, вот только обойдутся они дороже, чем у всех рассмотренных выше вариантов.
Сайт
PanoSalado удивляет рассказом о том, что его беспрестанно пытаются взломать конкуренты, так что этот оупенсорсный панорамопроигрыватель перенесён
на вики репозитория IVRPA. Лицезрев эту вики, я не нашёл на ней ни документации, ни описаний программы, а только
гиперссылки для скачивания самогó проигрывателя и двух дополнительных средств к нему (одно — для преобразования сферической равнопромежуточной проекции в развёртку куба, а другое — для нарезки этого куба на плитки). А судя по той документации, которая скачивается в архиве наряду с программою, её исходный код предназначен для компиляции в SWF, совершаемой средствами адобовской разработки флэшёвых роликов. Этим он напоминает
PAN36OoRAMA из комплекта «visicam
Tools» — ещё один открытый исходник, который также надо компилировать во Flash CS3 или в другом аналогичном средстве. Они бесполезны для тех, что не сведущ в разработке
Flash-роликов и не собирается постигать её.
PTViewer написан не на Flash, а на Java, так что быстрой загрузки плагина, надо думать, не получится. Этот фотопанорамопроигрыватель, к счастью, поддерживает
нарезание панорам на куски, однако только в одном разрешении (так что единственным достоинством будет начало закачки от тех элементов, которые находятся перед зрителем, с постепенным переходом к тем, которые «за спиною» у зрителя).
Если продолжать погугливание, то отыскивается ещё пара бесплатных средств:
FreePV (браузерный плагин, способный воспроизводить цилиндрические и кубические панорамы)
да pan0 — флэшёвый движок на основе знаменитого
Papervision3D, параметром которого является единственный JPEG (равнопромежуточная проекция сферы).
Уместно рассмотреть
раздел ссылок и на сайте IVRPA, упомянутом выше.
Там, например, отыскивается панорамопроигрыватель
PURE Player, помеченный в списке ссылок как бесплатный.
Бесплатный-то он, может быть, и бесплатный, но принимает файлы только в нестандартном формате
IVP, создаваемом
PURE STARTER TOOLKIT (ценою ≈35 $). Грубая приманка.
В том же списке без труда отыскивается
SPi-V (движок на основе
Shockwave 3D, не путать с Flash), который умеет грузить фотопанорамы, понимая несколько проекций (равнопромежуточную, цилиндрическую, кубическую). В остальном он не лучше вышеупомянутого pan0, пожалуй.
Некоторого внимания заслуживает также
CubicVR 360°. Фотопанораму он принимает в качестве шести граней куба, как и ViewAt (то есть Flash Panorama Player). Зато не стоит ни копейки и начинает работать ещё до того, как подкачает изображения из Сети (грани куба выкачиваются последовательно, причём на скачиваемой грани отображается
двумерный progress bar), а также позволяет размещать на гранях куба ясно видимые кружочки, которые служат гиперссылками, то есть загружают зрителю другой куб или открывают некоторую
веб-страницу (что позволяет организовывать так называемые «виртуальные туры»). Но и в этой сладенькой бочке мёда есть своя ложка дёгтя: на сайте CubicVR 360° подчёркивается его гибкость по отношению к формату граней куба (поддерживается GIF, PNG, JPEG и SWF), зато ни слова не сказано о том, что размеры всех шести граней должны быть равны друг другу и некоторой целочисленной степени двойки (поддерживаются грани размером 128, 256, 512, 1024 и 2048 пикселов). Ещё более неприятен фиксированный размер проигрывателя (384×258);
Flash-объект, конечно, можно увеличить, например, ровно вдвое (до 768×516) прямо в HTML, но тогда все точки станут квадратиками 2×2 пикселя, а это отнюдь не прибавит красоты отображаемой фотографии.
Совершенно отдельной страницею в истории отображения фотопанорам являются попытки достичь желаемого
вообще без плагинов — за счёт современных технологий разметки гипертекста, а также его стилизации и заскриптовывания. Наиболее простым примером такого подхода является
jQuery Reel, который просто перетаскивает фон объекта налево и направо, реагируя на таскание мышью (а также на таскание пальцем по сенсорному экрану мобильника или нетбука). Такое перемещение, не вносящее геометрических изменений, подойдёт для демонстрации плоскостной (или, скажем, цилиндрической) проекции панорамы — но оно не позволит демонстрировать область,
сколько-нибудь близкую к зениту или надиру, без искажений и разрывов.
Очень близки к этому примеру также
PanoramAh и
jQuery-версия PhotoNav Showcase. Они, однако, реагируют не на таскание, а на положение мыши над изображением — эту реакцию зрителю проще обнаружить, но зато при движении мыши от одного края к другому панораму «поворачивают» только на 360° (100% ширины), не давая сделать больше одного оборота и продемонстрировать закольцованность в полной мере.
PanoScroll допускает движение фона в двух измерениях, причём он закольцовывается по горизонтали (что полезно), а также и по вертикали (а вот это для фотопанорамы неприемлемо). Движение запускается и останавливается специальными кнопками, тыкаемыми мышью; это решение менее эргономично, чем в предыдущих примерах.
Сочетанием двух вышеупомянутых подходов является
jQuery virtual tour, который обеспечивает и интерактивное движение (когда пользователь тащит панораму мышью), и равномерное (после нажатия на нарисованные кнопки). Дополнительным достоинством является поддержка активных областей (задаваемых при помощи стандартной разметки
<map> и <area>).
Автор
jQuery spherical panorama viewer совершил единственную известную мне попытку отображать
сферическую панораму посредством джаваскрипта. К сожалению, ни в Firefox 4, ни в IE8 мне не удалось добиться от его труда никаких видимых результатов, кроме надписи «Loading…», хотя анализ
HTTP-запросов и показывает, что из Сети выкачивается превеликое множество
файлов .jpg — должно быть, отдельных плашек, составляющих некоторое крупное изображение.
Далеко опередила своё время идея построить кубическую панораму при помощи
трёхмерных CSS-преобразований со скриптами jQuery и jQuery UI, реализованная
в jqPanoramic; поэтому работает она только в WebKit.
Джон Дайер
экспериментировал, придавая изображению пространственные искажения джаваскриптом по вертикальным столбцам (как сделали много лет назад программисты игры DooM); однако для скорости он вынужден был сделать столбцы шириною в 5 пикселов (это неприятно «разрывает» горизонтальные линии), к тому же во блоге Ajaxian
пишут, что эти демки работали только в Файерфоксе (даже в Сафари не работали).
На этом у меня всё; но если кто-нибудь из читателей вспомнит
какое-нибудь средство, ещё не упомянутое выше, то прошу упомянуть его тотчас же: быть может, оно окажется даже
в чём-то лучше вышеупомянутых — по качеству
и (или) по цене (например, CubicVR 360° оказался же бесплатнее, а частично и понавороченнее, чем Flash Panorama Player). И сразу откровенно признаюсь в том, что не хотел приходить неподготовленным, поэтому специально
задал вопрос на Хабрахабре
в разделе «q&a» и подождал две недели, но там никто мне не ответил. Стало быть, если вы назовёте другое средство просмотра фотопанорам, то оно не для одного меня окажется новинкою. Не стесняйтесь, называйте.