Откуда начать загрузку

Импорт панорам всегда начинается со страницы проекта /dashboard/profiles/<id>. В шапке проекта есть три кнопки:

  • «Новая панорама» — основной путь для одного файла. Открывает диалог с тремя режимами загрузки: стандартная (2:1), cubemap-крест (4:3) и 6 граней куба.
  • «Мультизагрузка» — массовое добавление нескольких equirectangular-панорам за один проход. Открывает отдельную страницу /panoramas/multi.
  • «Подключить телефон» — неактивна. Подсказка «В разработке. Скоро можно будет загружать 360°-панорамы напрямую с телефона».
В самом редакторе загрузки нет
Редактор панорамы — это режим правки одной сцены. Чтобы добавить ещё одну панораму, возвращайтесь на страницу проекта и нажимайте «Новая панорама» или «Мультизагрузка».

Стандартная панорама (2:1)

Режим по умолчанию в диалоге «Новая панорама». Подходит для большинства камер и рендеров: один equirectangular-файл с соотношением сторон 2:1.

  • Форматы: JPG, PNG, WebP.
  • Максимальный размер файла: 45 МБ.
  • Соотношение сторон проверяется как 2:1 ±0.2.
  • Drag-and-drop: перетащите файл в зону «Перетащите файл сюда или выберите».
  • Название панорамы можно ввести вручную в поле над dropzone.

Предупреждение о пропорциях

Если соотношение сторон отличается от 2:1, появится диалог:

Изображение имеет размер 4096×2160 px (соотношение 1.90:1).
Стандартная 360° панорама — 2:1.
Загрузить всё равно?

В диалоге две кнопки: «Отменить» и «Загрузить всё равно».

Обработка на сервере

Файл проходит цепочку: Sharp → EXIF-rotate → ресайз по лимиту тарифа (на Free-тарифе панорама пересчитывается до 4K) → WebP качества 85 → сохранение в uploads/<id>.webp. Исходный загруженный файл удаляется сразу после конвертации.

Cubemap: крест-раскладка (4:3)

Режим для одного файла с шестью гранями куба, разложенными «крестом». Подходит для экспорта из 3D-пакетов и игровых движков, где удобнее получить cross-layout, а не equirectangular.

  • Форматы: JPG, PNG, WebP. Один файл.
  • Соотношение сторон проверяется как 4:3 ±0.15.
  • Конвертация в equirectangular выполняется на сервере автоматически.
  • После успешной обработки появляется зелёная плашка «Конвертация выполнена — панорама готова к сохранению» и активируется кнопка «Создать панораму».
  • Имя сцены по умолчанию — pano_N, где N — порядковый номер. Меняется позже в редакторе.
Cubemap доступен не на всех тарифах
На Free-тарифе загрузка cubemap отключена — сервер отвечает 403 с сообщением «Загрузка Cubemap недоступна на вашем тарифе». На платных тарифах режим активен по умолчанию.

Cubemap: 6 граней куба

Режим для тех, у кого экспорт даёт шесть отдельных квадратных файлов — по одному на каждую грань куба. Диалог показывает шесть слотов: Передняя, Задняя, Левая, Правая, Верхняя, Нижняя.

  • Каждая грань — отдельный файл JPG / PNG / WebP, до 45 МБ.
  • Проверка квадратности: 1:1 ±0.1. Неквадратные файлы отклоняются с тостом.
  • Загружать грани можно в произвольном порядке.
  • Как только все шесть слотов заполнены, сервер автоматически собирает их в equirectangular-панораму и показывает плашку готовности.
  • Имя по умолчанию — pano_N (как в crest-режиме).

Доступность режима совпадает с cross-раскладкой: только на платных тарифах.

Мультизагрузка

Отдельный поток для массового импорта — открывается кнопкой «Мультизагрузка» в шапке проекта. URL: /panoramas/multi.

Принципы

  • Только equirectangular 2:1. Cubemap в мультизагрузке не поддерживается.
  • Перетащите файлы или выберите через системный диалог — приём множественного выбора.
  • В шапке отображается баннер «Доступно для загрузки: N панорам(ы)» — остаток лимита тарифа.
  • Если файлов больше, чем остаток — приходит тост «Лимит тарифа — Можно загрузить ещё N. M файлов отклонено». Первые N всё равно ставятся в обработку.
  • Имя каждой сцены берётся из имени файла без расширения.
  • Все файлы с неправильным соотношением сторон собираются в общий диалог-предупреждение со списком, прежде чем начнётся обработка.

Статусы прогресса

Файлы обрабатываются последовательно. Для каждого виден свой статус:

  • «В очереди» — ожидает обработки.
  • «Загрузка...» — около 20%, файл уходит на сервер.
  • «Создание панорамы...» — около 70%, серверная конвертация.
  • «Готово» — 100%, сцена создана.
  • «Ошибка» — файл не прошёл валидацию или конвертацию.

По окончании появится тост «Загрузка завершена — Готово: X из Y», и страница вернётся к проекту, где новые сцены уже в списке.

Что происходит после загрузки

  • Single-импорт сразу переходит в редактор сцены — /panoramas/<id>/edit. Сцена появляется в левой панели проекта.
  • Мультизагрузка возвращает на страницу проекта; все новые сцены видны в списке карточек.
  • Порядок: orderIndex присваивается как количество существующих сцен, новая всегда оказывается в конце списка. Порядок можно менять перетаскиванием.
  • Slug сцены формируется из заголовка автоматически. Если такой slug уже есть в проекте, к нему добавляется суффикс -1, -2 и т. д.
  • Тайлы (мультиразрешение) готовятся лениво — при первом открытии сцены в редакторе или плеере. Сам момент загрузки этого не делает, чтобы не задерживать импорт.

Ограничения и тарифы

Файловые лимиты

  • Максимальный размер одного файла: 45 МБ (на сервере).
  • Поддерживаемые типы: image/jpeg, image/png, image/webp.
  • В мультизагрузке нет жёсткого верхнего количества файлов — ограничивает только лимит тарифа.

Разрешение по тарифу

  • У тарифа есть параметр maxPanoramaResolution. Сервер автоматически уменьшает панораму до этого значения после EXIF-вращения.
  • На Free-тарифе предел — 4K. Более крупные панорамы загружаются, но сохраняются в 4K-версии.
  • На платных тарифах предел выше — см. страницу тарифа.

Лимит количества панорам

  • Если лимит панорам в проекте исчерпан, диалог загрузки показывает красную плашку «Лимит панорам по тарифу достигнут» и кнопку «Улучшить тариф», которая ведёт в /dashboard/upgrade.
  • Если проект полностью заблокирован за превышение тарифа, появляется баннер «Проект заблокирован: превышен лимит тарифа». Загрузка недоступна, пока проект не разблокирован (повышение тарифа или удаление лишних сцен).

Cubemap только на платных тарифах

Оба cubemap-режима (4:3 и 6 граней) на Free-тарифе закрыты. Попытка загрузки возвращает HTTP 403 с сообщением «Загрузка Cubemap недоступна на вашем тарифе».

Возможные ошибки

СитуацияЧто вы увидите
Файл больше 45 МБТост «Не удалось загрузить изображение»
Неподдерживаемый форматТост «Не удалось загрузить изображение»
Сбой обработки на сервере (Sharp)Тост «Ошибка обработки изображения»
Equirect не 2:1Диалог с пропорциями и кнопкой «Загрузить всё равно»
Cross-cubemap не 4:3Тост «Неверные пропорции»
Грань cubemap не квадратнаяТост о квадратности, файл не принят
Cubemap на Free-тарифе403, сообщение «Загрузка Cubemap недоступна на вашем тарифе»
Лимит панорам исчерпанКрасная плашка + кнопка «Улучшить тариф»
Проект заблокированБаннер «Проект заблокирован: превышен лимит тарифа»
Мульти: файлов больше остатка тарифаТост «Лимит тарифа — Можно загрузить ещё N. M файлов отклонено»

Альтернативные пути

Авто-анализ тура (ИИ)

Это не «импорт» в строгом смысле, а альтернативный способ ускорить сборку: ИИ анализирует уже загруженные панорамы, предлагает им осмысленные названия комнат и автоматически расставляет навигационные хотспоты между сценами.

  • Запускается из кнопки «Авто-анализ тура» на странице проекта (видна при включённом ИИ).
  • Открывается диалог «Авто-анализ тура» с чекбоксом согласия на обработку.
  • Работает на проектах до 20 панорам.
  • Результат можно скорректировать вручную — сгенерированные хотспоты обычные, не «зашитые».

DCC-плагины (Cinema 4D, 3ds Max)

Плагины для 3D-пакетов экспортируют 3D-туры (формат .vpano), а не классические 360°-панорамы. Если у вас рендер из 3D-сцены, см. плагин для Cinema 4D и плагин для 3ds Max.

Мобильный компаньон

m.vpano.ru — приложение для съёмки 360°-панорам прямо с телефона — в разработке. Кнопка «Подключить телефон» на странице проекта пока неактивна и показывает подсказку. Скоро доступно.

ZIP-импорт

Загрузка готового ZIP-архива с панорамами не поддерживается. Используйте мультизагрузку отдельных файлов или DCC-плагин — в зависимости от источника.

Что дальше