Özet
Filament, Google tarafından geliştirilen, gerçek zamanlı fiziksel tabanlı bir render motorudur. Android, iOS, Linux, macOS, Windows ve WebGL gibi çok çeşitli platformlarda yüksek performans ve verimlilikle çalışmak üzere tasarlanmış, açık kaynaklı bir C++ kütüphanesidir. Özellikle Android cihazlarda küçük boyutlu ve verimli olması hedeflenmiştir.
Filament’in temel özellikleri şunlardır:
-
Çoklu Platform Desteği: Android (Java/JNI), iOS, Linux, macOS, Windows için native C++ API’si ve WebAssembly/JavaScript ile web tarayıcıları için destek sunar.
-
Çoklu Grafik Arkayüzü (Backend): OpenGL 4.1+, OpenGL ES 3.0+, Metal, Vulkan 1.0 ve WebGL 2.0 gibi güncel grafik API’lerini destekler.
-
Gelişmiş Render Özellikleri: Modern bir kümeleme odaklı (clustered forward) renderer kullanır. Fiziksel tabanlı kamera ve ışık birimleri, Cook-Torrance mikro-facet BRDF, gölgeler (kaskad, yumuşak, saydam), ortam ışığı (SSAO), ekran uzayı yansımaları/kırılmaları, dinamik çözünürlük (FSR desteğiyle) ve küresel sis gibi ileri düzey grafik tekniklerini içerir.
-
Kapsamlı Post-Processing: HDR parlaması (bloom), alan derinliği (depth of field), renk düzeltme (grading), ton eşleme (tone mapping) için çeşitli operatörler (AgX, ACES, vs.) ve TAA, FXAA gibi kenar yumuşatma teknikleri sunar.
-
glTF 2.0 Desteği: glTF 2.0 formatını geniş kapsamlı olarak destekler. Animasyon, morf hedefi, ciltleme ve Draco sıkıştırması, ışık, malzeme uzantıları (şeffaflık, parlaklık, vs.) gibi birçok uzantıyı içerir.
-
Kapsamlı Araç Seti: Materyal derleme (matc), IBL oluşturma (cmgen), mesh dönüştürme (filamesh) gibi varlık üretimini kolaylaştıran bir dizi komut satırı aracı sunar.
-
Esnek Kullanım: Geliştiriciler, motoru doğrudan C++ ile kullanabileceği gibi, Android’de Java ve web’de JavaScript arayüzleriyle de projelerine entegre edebilir. Detaylı dökümantasyon ve örnek uygulamalar (samples/ dizini) ile birlikte gelir.
Summary
Filament is a real-time physically based rendering engine developed by Google. It is an open-source C++ library designed for high performance and efficiency across a wide range of platforms including Android, iOS, Linux, macOS, Windows, and WebGL, with a particular focus on being small and efficient on Android.
Key features of Filament include:
-
Cross-Platform Support: Provides a native C++ API for Android, iOS, Linux, macOS, Windows, and JavaScript bindings for the web (via WebAssembly). It also offers Java/JNI APIs specifically for Android.
-
Multiple Graphics Backends: Supports modern graphics APIs including OpenGL 4.1+, OpenGL ES 3.0+, Metal, Vulkan 1.0, and WebGL 2.0.
-
Advanced Rendering Capabilities: Employs a modern clustered forward renderer. It features a physically-based camera model and physical light units, a Cook-Torrance microfacet BRDF, advanced shadowing techniques (cascaded, soft, transparent), screen-space ambient occlusion (SSAO), screen-space reflections/refractions, dynamic resolution with FSR support, and global fog.
-
Comprehensive Post-Processing: Includes HDR bloom, depth of field bokeh, extensive color grading options, multiple tone mapping operators (AgX, ACES, generic), and anti-aliasing techniques like TAA and FXAA.
-
Extensive glTF 2.0 Support: Offers robust support for the glTF 2.0 asset format, including animations, morph targets, skinning, and numerous extensions like Draco compression, lights, and various material models (transmission, sheen, clearcoat, etc.).
-
Powerful Toolchain: Comes with a suite of command-line tools for asset preparation, such as the material compiler (matc), IBL generator (cmgen), and mesh converter (filamesh).
-
Flexible Integration: Developers can integrate Filament into their projects via its native C++ API, Android Java API, or JavaScript API. It is accompanied by detailed documentation and a variety of example applications in the samples/ directory to help developers get started.