Это один из самых изящных примеров работы с 3D-сканами за последнее время. Технология Gaussian Splatting выдает отличную фотореалистичную картинку, но для движка это просто облако цветных точек. В нем нет полигонов, коллизий, навигационных сеток и источников света. Если просто бросить туда персонажа, он провалится сквозь пол и будет выглядеть инородно из-за разницы в освещении.
Разработчики из PlayCanvas собрали из сырого скана полноценный браузерный шутер с ботами. Главный инструмент здесь — открытая утилита splat-transform. Она разбивает тяжелую сцену на стриминговые LOD-чанки для быстрой загрузки и генерирует физическую модель. Один флаг вокселизирует облако точек и выдает готовый сетчатый коллайдер. После этого пули начинают сталкиваться со стенами, а у NPC появляется плотная поверхность для ходьбы.
Самая элегантная часть проекта — интеграция освещения. Свет уже запечен в сами гауссианы, поэтому динамические PBR-объекты вроде оружия сильно выбиваются из окружения. Автор написал скрипт, который расставляет виртуальные зонды по сетке. Каждый зонд рендерит кубмапу, вычисляет среднюю яркость точки и собирает данные в легкий JSON-файл на 40 килобайт. В рантайме игра просто читает эти значения без тяжелых вычислений. Заходишь в темный коридор — ствол автомата реалистично темнеет! Весь исходный код открыт и доступен для форка.
Поделиться:
Пересмотр зарплаты: почему руководители игнорируют хороших сотрудников и как конвертировать достижения в деньги →
Meta выпустила Sapiens2: точный трекинг, сегментация и 3D-реконструкция людей →