Компания Google открыла код Draco, библиотеки для эффективного сжатия 3D-графики
Компания Google опубликовала наработки проекта Draco, в рамках которого подготовлена библиотека для эффективного сжатия 3D-данных, таких как полигональные сетки (mash) и облака точек. Код написан на языке С++ (имеется вариант декодировщика на JavaScript) и распространяется под лицензией Apache 2.0.
Draco поддерживает сжатие расположение точек, информации о связях, цветах, нормалях, мешах, координатах текстур и других геометрических атрибутов. Draco позволяет существенно сократить объем хранимых и передаваемых по сети 3D-данных, обеспечив при этом высокую скорость распаковки и упаковки. Использование Draco дает возможность существенно сократить размер 3D-приложений и игр, сократить время на загрузку 3D-сцен и параметров визуализации, уменьшить объем данных для систем виртуальной и дополненной реальности, оптимизировать хранение данных от лидаров.
Имеется распаковщик на JavaScript, позволяющий обрабатывать сжатый 3D-контент непосредственно на стороне web-приложения в браузере. Производительность распаковщика на JavaScript примерно в два раза отстает от эталонного распаковщика на C++. Реализована возможность интеграции поддержки Draco в 3D-просмотрщик three.js.
В будущем планируется расширить Draco возможностью сжатия с потерей детализации (Draco сможет создавать несколько уровней детализации из исходной модели), которое может применяться в условиях жесткой экономии места в хранилище или при очень низкой пропускной способности.