I’m newbie in modern rendering technologies and trying to dive into it.
I’m pretty confident in simple shader writing (syntax, data structures), because I wrote some technical shaders when it was needed: to render grid over the level geometry, to make walls and ceilings transparent at particular points, water animation, fog of war in 3D.
But I’m interesting how to use rendering technologies to make picture cute. For example like this or this or at least like this.
So now I’m just playing with postprocessing effects to get more sense of them.
Question for the warm-up
How to make SSAO more fine-grained?
The most fine-grained result I succeed to configure:
`jme3test.post.TestSSAO2` with disabled directional lightning and teapot shader replaced with`Common/MatDefs/Misc/Unshaded.j3md` to focus attention on SSAO
When I move camera close to teaposts, they become darker. It’s realistic - like observer is not just a camera, but is shadow casting (in SSAO meaning) object. But this behavior may be undesired, how can it be configured?
Animated GIF
I started to play with SSAO, because for my non-trainded eye AO is the most notable picture beautifulizer, but please feel free to share any relevant opinions
i still hope @RiccardoBlb will finish new pipeline and new SSAO too
BTW. i were using current SSAO, and i agree its really hard to configure it properly. Each configuration had some issues. It looks ok for small areas/values, but when want create more shade area, it become unpredicted.
Screen space AO will always have issues because it can’t operate at anything better than the pixels on the screen. I guess the pretty screen shot you show is from something like blender where the AO was on the objects themselves. (The short answer being that for good looking AO, bake it into an AO map on your object.)
The darkening of the objects as you get closer seems like a bug or a configuration issue, to me. I can’t think why the SSAO algorithm would do that.
Thank you for answers. Now as I understand, main role of SSAO in general is to quickly micro-correct effect of another lighting technics (including baked AO) without necessity to rebake all models.
I like idea to calculate AO maps in runtime by compute shaders. It may save a lot of artist’s time with access to great flexibility in final visual adjustments. But I also guess, implementation of such feature is not too easy.
I guess it’s rather because artist time is free in Terms of GPU Budget.
You are spending GPU power on something that can be scripted or achieved with a few clicks
Blender and other 3D modelers treat scenes and rendering different than a game engine. They can essentially ‘ray trace’ if needed and that will make their AO (a reflection operation essentially) a LOT better looking than what you can achieve in a compute shader. And a compute shader is going to be a lot of work, I think… you somehow need to give each object its own AO map, etc…
Not impossible… just seems like an incredible amount of work for the payoff. Might as well just implement voxel lighting while you are at it.