Sobre o projeto
Filament é um motor de renderização fisicamente baseado (PBR) em tempo real desenvolvido pelo Google, com suporte para Android, iOS, Linux, macOS, Windows e web via WebGL 2.0/WASM. Foi projetado para ser pequeno e eficiente, especialmente no Android, e é distribuído como arquivos de versão estável contendo tanto a biblioteca de runtime quanto as ferramentas de assets do lado do host.
Bindings de linguagem e APIs:
- API C++ nativa para Android, iOS, Linux, macOS e Windows
- API Java/JNI para Android
- API JavaScript para web
Os backends gráficos incluem OpenGL 4.1+ (desktop), OpenGL ES 3.0+ (mobile), Metal (macOS/iOS), Vulkan 1.0, WebGPU e WebGL 2.0.
As capacidades de renderização abrangem um renderizador forward clusterizado, BRDFs especular Cook-Torrance e difusa Lambertiana, iluminação/sombreamento de superfície personalizados, iluminação HDR/linear, fluxo de trabalho metálico, clear coat, iluminação anisotrópica, materiais subsuperficiais/translúcidos aproximados, sombreamento de tecido/sheen, mapeamento de normais e oclusão ambiental, iluminação baseada em imagem, câmera fisicamente baseada, unidades físicas de luz, luzes pontuais/spot/direcionais, anti-aliasing especular, várias técnicas de sombra (PCF, DPCF, PCSS, EVSM, cascaded, contact, transparent), oclusão ambiental em espaço de tela, reflexos e refração, névoa global e resolução dinâmica com suporte a AMD FidelityFX FSR.
Os recursos de pós-processamento incluem bloom HDR, profundidade de campo bokeh, múltiplos mapeadores de tom (GT7, PBR Neutral, AgX, ACES, filmic, genérico), gerenciamento e gradação de cor/tom, anti-aliasing TAA/FXAA/MSAA e lens flares em espaço de tela.
O motor inclui um carregador glTF 2.0 com suporte a codificações embutidas e binárias, primitivas de pontos/linhas/triângulos, animação de transformação/morph/skin/juntas e muitas extensões como KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_transmission, KHR_materials_volume, KHR_texture_basisu, KHR_texture_transform e EXT_meshopt_compression.
Os materiais são criados por meio de um sistema de materiais compilado pelo compilador de materiais `matc`, com documentação cobrindo modelos de materiais e criação de materiais personalizados. O repositório também inclui bibliotecas e ferramentas de suporte, incluindo `cmgen` para geração de iluminação baseada em imagem, `filamesh` para conversão de malhas, `mipgen`, `matinfo`, `matedit`, `glslminifier`, `resgen` e `libiblprefilter`. Aplicativos de exemplo para desktop, Android e iOS demonstram inicialização do motor, criação de swap chain, configuração de cena/view/câmera e loops de renderização. Assets como texturas CC0 e mapas de ambiente são fornecidos para começar.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.