Bent Normals for Reflective Ambient Occlusion

Hi there,
We are in need of better visuals for our current project regarding lots of hard surface mechanical models.
As you know, the lack of raytrace soft shadows or reflections complete destroys any realistic visuals illusion.
Many years ago, when I was doing an offline rendering project, I came accross the same situation, since raytrace was prohibitive in terms of render time.
So I use a kind of new technique at that time, which was to use bent normals to create a reflective ambient occlusion.
The concept is that simple, it is a regular ambient occlusion, but making it now diffuse but reflecive.
You can find a reference here:
https://www.fxguide.com/wp-content/uploads/2011/01/ocllusion.jpg
Apparently Unreal Engine is able to do this, seeing their documentation: Bent Normal Maps | Unreal Engine Documentation

Is there any way to achieve that in BabylonJS or are there any plans of adding such feature?
Thanks for your appreciated input.
cheers.

We do not have plans to support it by now but would happily help anybody who would like to do a PR for it. It would be an awesome contribution by the way and I wish days were longer the 24h to do it :slight_smile:

Sorry but I’m not a coding guy AT ALL, LOL
There is so little things to do to visually separate parts of a hard surface model without such techniques.
Since I’m not a coding guy, is this thing so complex to code?

I love the technique a lot, and it is not a tiny development to add support in babylon as it requires not only to change the pbr to add the support for a new sampler, but also nme, our serialization/deserialization, a nice doc, some tests as well as ensuring they would match the “ground truth”.

Basically it is not complex but requires a bit of time to do it properly.

@Evgeni_Popov will work with us soon after the vacation and it sounds like it could be a great mission for him :slight_smile:

Yay!
I asked in first place because I’ve seen Substance Painter now can bake, apart from standard normals, those “Bent normals”, so you can achieve the effect easily. You may check that new feature.

Yup totally agree it would be nice to have :slight_smile:

1 Like