Компания Google объявила (https://developers.googleblog.com/2018/05/open-sourcing-seur... об открытии исходных текстов проекта Seuratо (https://github.com/googlevr/seurat), в рамках которого подготовлена реализация технологии упрощения 3D-сцен для снижения потребления ресурсов и ускорения процесса рендеринга. Код проекта написан на C++ и поставляется (https://github.com/googlevr/seurat) под лицензией Apache 2.0.
С практической стороны Seuratо может использоваться для упрощения очень сложных 3D-сцен для их эффективной обработки на мобильных системах виртуальной реальности, предоставляющий шесть степеней свободы (6DoF (https://ru.wikipedia.org/wiki/%D0%A8%D0%.... Работа Seurat сводится к преобразованию больших 3D-сцен, включающих миллионы треугольников, сложное освещение и шейдерные эффекты, в представление, состоящее из сотен тысяч треугольников, которые по силам отобразить на мобильных устройствах, ценой незначительной потери качества рендеринга (менее гладкие поверхности и небольшое искажение освещения).
Оригинальная сцена:
Сцена, обработанная в Seuratо (исходные 46.6 млн треугольников сокращены до 307 тысяч треугольников, что позволило поднять производительность отрисовки более чем в 100 раз без видимой потери качества):
Процесс обработки в Seurat отталкивается от того факта, что сцены в шлемах виртуальной реальности обычно просматриваются в ограниченной области видимости и это можно использовать для оптимизации геометрии и текстур в 3D-сцене. Seurat получает на входе RGBD-изображения (цвет и данные о глубине) и генерирует текстурированную полигональную сетку (mesh (https://ru.wikipedia.org/wiki/%D0%9F%D0%... отвечающую заданным требованиям по числу треугольников, размеру текстуры и интенсивности заполнения.
Seurat позволяет на лету обрабатывать статические 3D-окружения, формируя вывод для одного шлема виртуальной реальности на основании входных данных от любой системы рендеринга, в том числе от игровых движков и систем трассировки лучей. Динамический контент может быть совмещён поверх статического окружения, сгенерированного в Seurat. Плагины для интеграции с Seurat подготовлены для Unity (https://github.com/googlevr/seurat-unity-plugin), Unreal (https://github.com/googlevr/seurat-unreal-plugin) и Maya (https://github.com/googlevr/seurat/blob/master/seurat/genera.... На выходе выдаются мэши c текстурным атласом (https://ru.wikipedia.org/wiki/%D0%A2%D0%... в цветовом пространстве RGBA, которые могут быть отрисованы в любом движке real-time рендеринга.
URL: https://developers.googleblog.com/2018/05/open-sourcing-seur...
Новость: https://www.opennet.ru/opennews/art.shtml?num=48551