От сплатов к точкам
Съёмка 3D Gaussian splatting и облако точек выглядят похоже, но это разные вещи. Каждый сплат — ориентированный эллипсоид с масштабом, поворотом, прозрачностью и цветом, который меняется с углом обзора. У точки есть только позиция и цвет. Перевод одного в другое полезен и обязательно теряет данные, и этот инструмент честен в обоих отношениях.
Почему PLY из 3DGS открывается неправильно в других программах
Результат обучения из оригинальной статьи 3D Gaussian Splatting — корректный файл PLY, поэтому CloudCompare, MeshLab и Open3D открывают его без возражений и показывают серое облако. Виноваты два свойства:
f_dc_0,f_dc_1,f_dc_2— это коэффициенты сферических гармоник, а не RGB. Цвет равен0,5 + 0,2820948 × f_dc.opacity— это логит, а не альфа. Альфа равна1 / (1 + exp(-opacity)).
Конвертер применяет обе формулы, поэтому скачанное облако окрашено так же, как его рисует просмотрщик сплатов.
Что можно настроить
- Порог прозрачности: съёмка обычно полна почти прозрачной дымки, которая ничего не даёт облаку точек. Подняв порог, вы её уберёте.
- Лимит точек: при превышении лимита сохраняются самые важные сплаты — оценка равна прозрачности, умноженной на два наибольших радиуса, так что поверхности выживают, а дымка уходит первой.
- Цвет: плоский базовый цвет или полный цвет сферических гармоник, вычисленный для одного направления обзора. Второй вариант честнее на глянцевых съёмках, где базовый цвет никто не видит.
- Нормали: по желанию, выводятся из самой тонкой оси каждого сплата. Сошедшийся сплат ложится плашмя на поверхность, которую изображает, поэтому эта ось годится как нормаль.
Форматы
По умолчанию двоичный PLY: цвет uchar, порядок байтов little-endian — диалект, который реально читают программы для облаков точек. Текстовый PLY — то же самое словами. XYZ — колонки x y z r g b, места для нормалей там нет.
Всё работает в браузере, съёмка никуда не загружается.
Tiny Online Tools







