About this project
Filament is a real-time physically based rendering (PBR) engine developed by Google, targeting Android, iOS, Linux, macOS, Windows and the web via WebGL 2.0/WASM. It is designed to be small and efficient, particularly on Android, and is distributed as stable release archives containing both the runtime library and host-side asset tools.
Language bindings and APIs:
- Native C++ API for Android, iOS, Linux, macOS and Windows
- Java/JNI API for Android
- JavaScript API for the web
Graphics backends include OpenGL 4.1+ (desktop), OpenGL ES 3.0+ (mobile), Metal (macOS/iOS), Vulkan 1.0, WebGPU and WebGL 2.0.
Rendering capabilities cover a clustered forward renderer, Cook-Torrance specular and Lambertian diffuse BRDFs, custom lighting/surface shading, HDR/linear lighting, metallic workflow, clear coat, anisotropic lighting, approximated subsurface/translucent materials, cloth/sheen shading, normal and ambient occlusion mapping, image-based lighting, a physically-based camera, physical light units, point/spot/directional lights, specular anti-aliasing, various shadow techniques (PCF, DPCF, PCSS, EVSM, cascaded, contact, transparent), screen-space ambient occlusion, reflections and refraction, global fog, and dynamic resolution with AMD FidelityFX FSR support.
Post-processing features include HDR bloom, depth-of-field bokeh, multiple tone mappers (GT7, PBR Neutral, AgX, ACES, filmic, generic), color/tone management and grading, TAA/FXAA/MSAA anti-aliasing, and screen-space lens flares.
The engine includes a glTF 2.0 loader supporting embedded and binary encodings, points/lines/triangles primitives, transform/morph/skin/joint animation, and many extensions such as KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_transmission, KHR_materials_volume, KHR_texture_basisu, KHR_texture_transform and EXT_meshopt_compression.
Materials are authored through a material system compiled by the `matc` material compiler, with documentation covering material models and custom material authoring. The repository also ships supporting libraries and tools, including `cmgen` for image-based lighting generation, `filamesh` for mesh conversion, `mipgen`, `matinfo`, `matedit`, `glslminifier`, `resgen`, and `libiblprefilter`. Sample applications for desktop, Android and iOS demonstrate engine initialization, swap chain creation, scene/view/camera setup, and rendering loops. Assets such as CC0 textures and environment maps are provided for getting started.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.