Компания Google открыла код системы физически корректного рендеринга Filament
Как сообщает opennet.ru компания Google представила первый выпуск нового открытого проекта Filament, в рамках которого развивается система физически корректного рендеринга (PBR), позволяющая генерировать высококачественные 2D и 3D сцены с симуляцией при отрисовке физических процессов отражения, поглощения, рассеивания и преломления света с учетом фактуры и типов поверхностей. Код проекта опубликован под лицензией Apache 2.0. Поддерживается работа на платформах Android, Windows, Linux и macOS.
При разработке проекта изначально была поставлена цель создания как можно более компактного и нетребовательного к ресурсам движка рендеринга, способного работать на мобильных устройствах под управлением платформы Android для рендеринга в режиме реального времени. Filament уже используется в библиотеке Sceneform, как в составе runtime для Android, так и в качестве системы рендеринга в плагине к Android Studio. Разработчикам приложений предлагается два API: нативный для кода на C++ и Java/JNI API. Для отрисовки могут применяться бэкенды на базе OpenGL 4.1+, OpenGL ES 3.0+ и Vulkan 1.0. Поддерживается кластеризация процесса рендеринга.
Предоставляется коллекция параметров, в которой отражены физические свойства различных материалов, позволяющие точно симулировать все законы отражения и преломления света. Для симуляции отражения предложено несколько реализаций двунаправленной функции отражательной способности (BRDF), специальные профили для симуляции металлических поверхностей, тканей и полупрозрачных материалов (прямое и отраженное освещение). Поддерживаются HDR, анизотропные и линейные модели освещения, различные виды сглаживания (MSAA, FXAA), а также точечные и направленные источники освещения. Имеется режим вывода с симуляцией снимка камерой (скорость затвора, чувствительность и диафрагма).