Gaussian-Splat-Lite v1.7.0 сокращает память сплатов и меняет кодирование поворота
Вышел выпуск v1.7.0 рендерера Gaussian-Splat-Lite. В списке изменений автор описывает переход моделей RAD и SOG на общий кодбук SH вместо хранения коэффициентов SH на каждый сплат, в том числе при потоковой загрузке. Память CPU и GPU под атрибуты сплатов снижается до 25%, 43,75% и 62,5% для SH1, SH2 и SH3 соответственно; фактическая экономия зависит от размера кодбука и не учитывает прочие накладные расходы рендеринга и загрузки. Поворот сплатов теперь хранится в 32-битных smallest-three кватернионах. Существующие файлы моделей остаются совместимыми, но живые просмотрщики нужно перезагрузить после обновления.
Что это значит
Gaussian-Splat-Lite — это генератор 3D-моделей с открытым кодом под лицензией Apache-2.0, рендерер 3D Gaussian Splatting для Three.js с поддержкой WebGPU и WebGL2. Он работает с форматами PLY, SPZ, SOG и RAD, включая потоковый LOD для RAD, SOG и LCC2. Выпуск v1.7.0 затрагивает внутреннее представление сплатов: общий кодбук SH вместо покоеффициентного хранения снижает потребление памяти, а smallest-three кватернионы повышают точность поворота. Автор убрал alpha, color и sh из входов и выходов postDecode — теперь при загрузке доступны только позиция, масштаб, кватернион и непрозрачность, а прозрачность и цвет предлагается менять через opacity и свойства меша или правки SDF.
Для пользователей справочника это означает, что сцены RAD и SOG в том же бюджете памяти вмещают больше деталей, а файлы, созданные ранее, продолжат открываться. Утилиты encodeQuatOctXy1010R12 и decodeQuatOctXy1010R12 удалены; вместо них добавлены utils.encodeQuatSmallestThree32() и utils.decodeQuatSmallestThree32(). Если вы используете postDecode в своих интеграциях, после обновления потребуется адаптировать код под новый набор полей.Как устроен метод. Схема нарисована по этой заметке.