Техническая суть и поддержка форматов
UnitySplats — это форк проекта gsplat-unity, существенно доработанный ARLOOPA. Пакет решает ключевую проблему: рендеринг 3DGS-контента в реальном времени на различных графических бэкендах. Поддерживаются форматы .ply (стандартный и PlayCanvas compressed), .sog (v1/v2), .spz (v1-v4 с Zstandard-сжатием) и .glb (через расширение KHR_gaussian_splatting). Данные загружаются асинхронно, с возможностью рендеринга во время загрузки.
Алгоритмы сортировки и производительность
Ключевая особенность UnitySplats — динамический выбор пути сортировки (GPU или CPU) в зависимости от платформы и графического API. На десктопах и Android с Vulkan/Metal используется GPU radix sort. Для совместимости с мобильными GPU, где SSBO могут работать нестабильно, реализован портативный CPU-сортер с использованием sampled-текстур (RGBA8/float). WebGL 2 работает на основном потоке CPU, поэтому для веба рекомендуется сжатие Spark и умеренное количество сплотов.
| Платформа | Графический API | Путь сортировки/рендеринга |
|---|---|---|
| Windows | Direct3D 12, Vulkan | GPU radix sort (с CPU fallback) |
| Windows | Direct3D 11, OpenGL Core | Асинхронная CPU-сортировка + instanced GPU draw |
| Linux | Vulkan, OpenGL Core | GPU radix sort (Vulkan) / CPU fallback |
| Android | Vulkan | GPU radix sort (с поддержкой) |
| Android | OpenGL ES 3.1 | Асинхронная CPU-сортировка + sampled-texture draw |
| macOS, iOS | Metal | GPU radix sort (с поддержкой) |
| Web | WebGL 2 | Main-thread CPU sort + sampled-texture draw |
Интеграция с графическими конвейерами
Пакет полностью интегрирован в экосистему Unity 6. Для Built-in Render Pipeline настройка не требуется. В URP добавляется компонент Gsplat URP Feature (поддерживается RenderGraph). В HDRP используется Custom Pass Volume с инъекцией Gsplat HDRP Pass на этапе Before Transparent. Поддерживаются ортографические камеры, MSAA, cutouts и XR-интеграция (тестировалось на Meta Quest 3/3S).
Требования и установка
Для работы требуется Unity 6000.0+ (рекомендуется 6000.3.9f1), пакет com.unity.mathematics (v1.3.2+) и com.netpyoung.webp (v0.3.22) для декодирования изображений в SOG. Установка осуществляется через Git URL или архив. Для автоматического разрешения зависимостей рекомендуется добавить реестр OpenUPM в manifest.json.
Источник: Github ↗
