- Detect 'pano360' tag and open the photo in a spherical viewer - Mini-WebGL equirect viewer (no deps): drag to look, wheel FOV, Space reset - Load original as origin-clean bitmap; fall back to flat image without WebGL - 360 indicator in viewer and badge on grid tiles
2.7 KiB
2.7 KiB
Proposal
Why
Пользователь загружает сферические 360-панорамы, но просмотрщик показывает их как обычное
плоское фото — искажённую equirect-развёртку. Нужен режим обзора панорамы по тегу pano360.
What Changes
- Детект по тегу. Фото считается 360-панорамой, если среди его тегов есть
pano360(без учёта регистра и пробелов по краям). Теги персональные, поэтому на публичных share-страницах и у других участников 360 не включается — фолбэк на плоский просмотр. - Мини-WebGL вьюер. В просмотре появляется equirect-обзор на
<canvas>: перетаскивание — осмотр, колесо — угол обзора (FOV),Space— сброс вида. Стрелки и лента по-прежнему переключают фото,f— полный экран. Без сторонних библиотек. - Источник изображения. Грузится оригинал с даунскейлом до
min(4096, MAX_TEXTURE_SIZE); при неудаче —preview. Новый вариант на бэкенде не заводится. - Фолбэк. Нет WebGL или сбой загрузки/декодирования — показывается обычное плоское фото.
- Индикация. В топбаре просмотра виден признак «360»; на плитке сетки — бейдж «360».
Capabilities
New Capabilities
Нет.
Modified Capabilities
ui-workspace: добавляется требование «Просмотр 360-панорамы» (детект по тегу, сферический обзор, управление, фолбэк, ограничение на share-страницах).
Impact
- Frontend: новый
lib/pano.ts(детект тега) иlib/components/PanoViewer.svelte(WebGL equirect); правкиlib/components/Viewer.svelte(переключение режима, клавиши, фолбэк, индикатор) иlib/components/PhotoGrid.svelte(бейдж). Возможна новая иконка вlib/icons/registry.ts. - Backend: не затрагивается.
- Совместимость: поведение плоского просмотра сохраняется; 360 — дополнительный режим.