[FREE][OPENSOURCE] Fast ambient occlusion at runtime

https://github.com/nezix/Unity-GeoAO

Here I propose an asset to quickly compute AO for runtime generated mesh.

Please provide feedback here or on github !

1 Like

404 Github error fixed

Sorry, but 150 ms for a 500k scene on that hardware isn’t really fast, at least not in a real-time graphics context. It does look pretty nice, though.

I doubt a vert based AO for meshes will be as fast as screen space AO, but different tools for jobs :slight_smile:

Maybe I was not clear on that but this is really different from SSAO, you compute object space AO one time then it’s free for the next frames (one texture fetch per vertex). You have a higher quality AO that you compute only one time, you can even record it inside the mesh.colors array.

Yep it’s ideal for procedural levels on load etc…

Ah, I apologize. Should have read through the git page more thoroughly. I could see how this might potentially work as a higher quality AO solution to procedurally generated scenes ( @hippocoder beat me to it, there.)

Would be nice if script can handle this point with separate renders for every object in scene. To avoid this “layer messing” etc.) Anyway, cool work, man!

I wonder if this technique can be used to bake ao on background level meshes? I can see it moves the object to the center of the world and does camera rotate to generate depth map etc… so my hope is slim but just want to raise the possibility of making the system that can bake ao into object’s lightmap uv channel… to actually bake ao of the level in runtime! that would be awesome!

I propose 2 ways to use the computed AO values, one directly in the color array of the mesh and one creating a texture but I could possibly write this information in the lightmap texture. I have a limited experience in lightmaps so feel free to fork/send pull requests if you manage to do this!

Thank you. Adding this should not be too hard, I would be happy to review your pull request :wink:

Sorry, I’m more about art)