Об этом проекте

Filament — это движок физически корректного рендеринга (PBR) в реальном времени, разработанный Google и ориентированный на Android, iOS, Linux, macOS, Windows и веб через WebGL 2.0/WASM. Он спроектирован как компактный и эффективный, особенно на Android, и распространяется в виде стабильных архивов релизов, содержащих как библиотеку времени выполнения, так и инструменты для работы с ассетами на стороне хоста. Языковые привязки и API: - Нативный API на C++ для Android, iOS, Linux, macOS и Windows - API Java/JNI для Android - API JavaScript для веба Графические бэкенды включают OpenGL 4.1+ (настольные системы), OpenGL ES 3.0+ (мобильные устройства), Metal (macOS/iOS), Vulkan 1.0, WebGPU и WebGL 2.0. Возможности рендеринга охватывают кластеризованный прямой рендерер, BRDF Кука-Торренса для бликовой составляющей и ламбертовскую BRDF для диффузной, пользовательское освещение и затенение поверхностей, HDR/линейное освещение, металлический рабочий процесс, прозрачное покрытие, анизотропное освещение, приближенные подповерхностные/полупрозрачные материалы, затенение ткани/ворса, карты нормалей и ambient occlusion, освещение на основе изображений, физически корректную камеру, физические единицы освещения, точечные/прожекторные/направленные источники света, сглаживание бликов, различные техники теней (PCF, DPCF, PCSS, EVSM, каскадные, контактные, прозрачные), ambient occlusion в экранном пространстве, отражения и преломление, глобальный туман и динамическое разрешение с поддержкой AMD FidelityFX FSR. Функции постобработки включают HDR bloom, боке глубины резкости, несколько тональных преобразователей (GT7, PBR Neutral, AgX, ACES, filmic, generic), управление цветом/тоном и цветокоррекцию, сглаживание TAA/FXAA/MSAA и блики объектива в экранном пространстве. Движок включает загрузчик glTF 2.0 с поддержкой встроенных и бинарных кодировок, примитивов точек/линий/треугольников, анимации трансформаций/морфинга/скиннинга/суставов, а также многих расширений, таких как KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_transmission, KHR_materials_volume, KHR_texture_basisu, KHR_texture_transform и EXT_meshopt_compression. Материалы создаются через систему материалов, компилируемую компилятором материалов `matc`, с документацией, охватывающей модели материалов и создание пользовательских материалов. Репозиторий также поставляет вспомогательные библиотеки и инструменты, включая `cmgen` для генерации освещения на основе изображений, `filamesh` для конвертации мешей, `mipgen`, `matinfo`, `matedit`, `glslminifier`, `resgen` и `libiblprefilter`. Примеры приложений для настольных систем, Android и iOS демонстрируют инициализацию движка, создание цепочки обмена, настройку сцены/вида/камеры и циклы рендеринга. Для начала работы предоставляются такие ассеты, как текстуры CC0 и карты окружения.