Filament is a real-time physically-based renderer written in C++. It is mobile-first, but also multi-platform. We are very conscientious about keeping Filament small, fast to load, and focused on rendering. For example, Filament does not compile materials at run time. Instead, we provide a command line tool (matc) that does this offline. Filament is a physically based rendering (PBR) engine for Android. The goal of Filament is to offer a set of tools and APIs for Android developers that will enable them to create high quality 2D and 3D rendering with ease. For both artists and developers, our system will rely on as few parameters as possible to reduce trial and error and allow users to quickly master the material model. A physically based approach must not preclude non-realistic rendering. User interfaces for instance will need unlit materials. Our primary goal is to design and implement a rendering system able to perform efficiently on mobile platforms.
Features
- Android projects can simply declare Filament libraries as Maven dependencies
- iOS projects can use CocoaPods to install the latest release
- Physically-based camera (shutter speed, sensitivity and aperture)
- Color grading, white balance, channel mixer, shadows/mid-tones/highlights, ASC CDL, contrast, saturation, etc.
- You can use Filament either with AWT or Swing, using respectively a FilamentCanvas or a FilamentPanel
- Transform animation, linear interpolation, morph animation, and more