Спору нет: 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» и подождал две недели, но там никто мне не ответил. Стало быть, если вы назовёте другое средство просмотра фотопанорам, то оно не для одного меня окажется новинкою. Не стесняйтесь, называйте.
Но я собрал вас поговорить о другом: наверное, есть и такие аналогичные средства для демонстрации фотопанорам, которыми пользуется фотограф, желающий разместить фотопанорамы на своём собственном сайте вместо внешнего хостинга?
Что это за средства? Как организуется просмотрщик на сайте, как организуется фотоматериал для просмотра и для подкачки по мере нужды? Есть ли открытые, свободные, или хотя бы бесплатные, готовые решения для этой цели? А если нет открытых и свободных, то каковы платные?
У меня до сих пор нет настолько хорошего ответа на эти вопросы, который бы вполне меня устраивал. Я предлагаю, однако, обозреть более дюжины решений, самому мне попадавшихся; быть может, сообщество Хабрахабра заполнит пробелы в моих изысканиях.
Изыскания логично было начать с трёх крупных фотохостингов, перечисленных выше. К сожалению, из них только ViewAt честно признаётся, каким панорамопроигрывателем пользуется: это Flash Panorama Player, цена которого ≈40 €. Основной недостаток этого варианта явствует сразу: исходные данные для него подготавливаются как шесть граней кубической проекции и подкачиваются все целиком (по крайней мере, на сайте ViewAt мне пришлось сперва смотреть на progress bar с процентами, и лишь затем на панораму). Наверное, это не лучший вариант.
Простым погугливанием по словосочетанию «360 panorama» нетрудно найти продукт 360 Panorama Lite (≈50 $). На его сайте явствует, однако, что автор употреблял
Примерно таким же способом нагугливается FirmTools Panorama Composer
Вспомнив PTGui, уместо поискать панорамопроигрыватели в разделе ссылок на сайте PTGui. Сперва там отыскивается вышеупомянутый Pano2VR, за ним — ещё выше упомянутый Flash Panorama Player, затем — ещё нами не рассматривавшиеся krpano, PanoSalado и PTViewer.
Панорамопроигрыватель krpano обходится
Сайт PanoSalado удивляет рассказом о том, что его беспрестанно пытаются взломать конкуренты, так что этот оупенсорсный панорамопроигрыватель перенесён на вики репозитория IVRPA. Лицезрев эту вики, я не нашёл на ней ни документации, ни описаний программы, а только гиперссылки для скачивания самогó проигрывателя и двух дополнительных средств к нему (одно — для преобразования сферической равнопромежуточной проекции в развёртку куба, а другое — для нарезки этого куба на плитки). А судя по той документации, которая скачивается в архиве наряду с программою, её исходный код предназначен для компиляции в SWF, совершаемой средствами адобовской разработки флэшёвых роликов. Этим он напоминает
PTViewer написан не на Flash, а на Java, так что быстрой загрузки плагина, надо думать, не получится. Этот фотопанорамопроигрыватель, к счастью, поддерживает нарезание панорам на куски, однако только в одном разрешении (так что единственным достоинством будет начало закачки от тех элементов, которые находятся перед зрителем, с постепенным переходом к тем, которые «за спиною» у зрителя).
Если продолжать погугливание, то отыскивается ещё пара бесплатных средств: FreePV (браузерный плагин, способный воспроизводить цилиндрические и кубические панорамы)
Уместно рассмотреть раздел ссылок и на сайте IVRPA, упомянутом выше.
В том же списке без труда отыскивается
Некоторого внимания заслуживает также CubicVR 360°. Фотопанораму он принимает в качестве шести граней куба, как и ViewAt (то есть Flash Panorama Player). Зато не стоит ни копейки и начинает работать ещё до того, как подкачает изображения из Сети (грани куба выкачиваются последовательно, причём на скачиваемой грани отображается двумерный progress bar), а также позволяет размещать на гранях куба ясно видимые кружочки, которые служат гиперссылками, то есть загружают зрителю другой куб или открывают некоторую
Совершенно отдельной страницею в истории отображения фотопанорам являются попытки достичь желаемого вообще без плагинов — за счёт современных технологий разметки гипертекста, а также его стилизации и заскриптовывания. Наиболее простым примером такого подхода является jQuery Reel, который просто перетаскивает фон объекта налево и направо, реагируя на таскание мышью (а также на таскание пальцем по сенсорному экрану мобильника или нетбука). Такое перемещение, не вносящее геометрических изменений, подойдёт для демонстрации плоскостной (или, скажем, цилиндрической) проекции панорамы — но оно не позволит демонстрировать область,
Очень близки к этому примеру также PanoramAh и
PanoScroll допускает движение фона в двух измерениях, причём он закольцовывается по горизонтали (что полезно), а также и по вертикали (а вот это для фотопанорамы неприемлемо). Движение запускается и останавливается специальными кнопками, тыкаемыми мышью; это решение менее эргономично, чем в предыдущих примерах.
Сочетанием двух вышеупомянутых подходов является jQuery virtual tour, который обеспечивает и интерактивное движение (когда пользователь тащит панораму мышью), и равномерное (после нажатия на нарисованные кнопки). Дополнительным достоинством является поддержка активных областей (задаваемых при помощи стандартной разметки
Автор jQuery spherical panorama viewer совершил единственную известную мне попытку отображать сферическую панораму посредством джаваскрипта. К сожалению, ни в Firefox 4, ни в IE8 мне не удалось добиться от его труда никаких видимых результатов, кроме надписи «Loading…», хотя анализ
Далеко опередила своё время идея построить кубическую панораму при помощи трёхмерных
Джон Дайер экспериментировал, придавая изображению пространственные искажения джаваскриптом по вертикальным столбцам (как сделали много лет назад программисты игры DooM); однако для скорости он вынужден был сделать столбцы шириною в 5 пикселов (это неприятно «разрывает» горизонтальные линии), к тому же во блоге Ajaxian пишут, что эти демки работали только в Файерфоксе (даже в Сафари не работали).
На этом у меня всё; но если кто-нибудь из читателей вспомнит