Google Filament - physically based rendering for Android, Windows, Linux, MacOS

It has JNI bindings for desktop operating systems too.

What’s it for?

Cas :slight_smile:

It’s a physically based rendering engine: https://google.github.io/filament/Filament.md.html

How’s the performance? Do you guys think it could be used for games?

Interesting. Judging by the sample pictures, it looks like the aim of the library is to achieve photo realistic lighting. It does seem like an odd thing to do on Android phone hardware

Aye, that’s what I was getting at when I asked “what’s it for”… I can clearly see that it renders things using physically based rules (and quite fast, too, by the looks of it), but I can’t actually see what the purpose of it would be on Android. Desktop machines perhaps more useful though, but if it’s not actually going to be realtime rendering of complex scenes then it’s more of a curiosity than anything useful for the likes of us. Though the huge and detailed in-depth article on the site explaining all the aspects of PBR they’ve implemented and/or approximated for speed is fascinating and pure gold.

Cas :slight_smile:

Isn’t it part of ARCore? So real-time on Android (inc. games) would appear to be exactly its aim. Wonder if it can render those nice demo images in real time though?

I imagine if you make a game that involves, er, arranging perfect spheres made from exquisitely rendered realistic materials in some way, it’ll be a winner.

Cas :slight_smile:

Like an exquisitely rendered ten-pin bowling ball game using people in the street as skittles? ;D … generally I find most AR stuff pretty dull, but that sounds strangely appealing. :persecutioncomplex:

This essentially is Romain Guy’s passion project for the past several years; what you get to do at Google after service in the early Android days… :stuck_out_tongue_winking_eye: I spoke to him about it 2 years ago or so. Glad to see it open sourced as there is a lot of good stuff to glean from it including optimizations and workarounds for GL silliness and a Vulkan pipeline to review.

After seeing these pictures, the concept of a third parameter of “reflection” seems useful. I may implement it!

Seems like it just is a modifier for IBL?

This is a rendering library ontop of OpenGL/Vulcan.

At first glance this looks similar in purpose to the Lightweight Pipeline in Unity. So it works on both desktop and mobile, with aim being good compatibility with mobile, even if it means bit limited capabilities on desktop.

Currently it is perhaps even more compatible with linux and mobile, as compilation on windows runs into errors. They promise to release binaries for windows, so it might be a wait until they make a stable release as binary.

As it is Google behind it, i think we can expect an active development, and a big userbase working on it.