Google открыл код Seuratо, системы оптимизации 3D-сцен
Как сообщает opennet.ru компания Google объявила об открытии исходных текстов проекта Seuratо, в рамках которого подготовлена реализация технологии упрощения 3D-сцен для снижения потребления ресурсов и ускорения процесса рендеринга. Код проекта написан на C++ и поставляется под лицензией Apache 2.0.
С практической стороны Seuratо может использоваться для упрощения очень сложных 3D-сцен для их эффективной обработки на мобильных системах виртуальной реальности, предоставляющий шесть степеней свободы (6DoF). Работа Seurat сводится к преобразованию больших 3D-сцен, включающих миллионы треугольников, сложное освещение и шейдерные эффекты, в представление, состоящее из сотен тысяч треугольников, которые по силам отобразить на мобильных устройствах, ценой незначительной потери качества рендеринга (менее гладкие поверхности и небольшое искажение освещения).
Оригинальная сцена:
Сцена, обработанная в Seuratо (исходные 46.6 млн треугольников сокращены до 307 тысяч треугольников, что позволило поднять производительность отрисовки более чем в 100 раз без видимой потери качества):
Процесс обработки в Seurat отталкивается от того факта, что сцены в шлемах виртуальной реальности обычно просматриваются в ограниченной области видимости и это можно использовать для оптимизации геометрии и текстур в 3D-сцене. Seurat получает на входе RGBD-изображения (цвет и данные о глубине) и генерирует текстурированную полигональную сетку (mesh), отвечающую заданным требованиям по числу треугольников, размеру текстуры и интенсивности заполнения.
Seurat позволяет на лету обрабатывать статические 3D-окружения, формируя вывод для одного шлема виртуальной реальности на основании входных данных от любой системы рендеринга, в том числе от игровых движков и систем трассировки лучей. Динамический контент может быть совмещен поверх статического окружения, сгенерированного в Seurat. Плагины для интеграции с Seurat подготовлены для Unity, Unreal и Maya. На выходе выдаются мэши c текстурным атласом в цветовом пространстве RGBA, которые могут быть отрисованы в любом движке real-time рендеринга.