Crazy opengl realtime example of AO

It crazy cause it’s a HUGE mesh… Really just eye candy to you and me but very neat anyway and a great example of what might be available for Blender in the future… But by then technoligy will have advanced even further in the OpenGlrealm :stuck_out_tongue:
http://qutemol.sourceforge.net/fxs/

real-time gpu AO, thats is sweet!

If I am not mistaken, their method is more like a post-processing filter that uses depth and edge information to achieve AO, quite nice, since it is virtually independent of the scene complexity.

I gotta try to get this effect using the node editor.

i think what they have is a GPU code that takes care of the AO calculation and that
result is than used as a texture which will be mixed with the object texture in realtime.

This is my idea many years ago… I posted it here… Hm what was the topic title?

Ah I found my old topic:
http://blenderartists.org/forum/showthread.php?t=27313

Bingo, they’re just calculating it once and baking it. There may even be other ways to optimise the heck out of it too, since the models aren’t that complex at all, they’re not arbitrary meshes, just points representing spheres.

There’s a big difference between something like this, and something that will work for real meshes in a real 3d scene.

While it does appear that in this particular case it is a precomputation, the accompanying paper says interactive calculation is possible if required. They use multiple shadow buffers, a standard technique.
However, interactive AO is certainly possible. There are several papers about this subject, and you can find some demos here and there as well.
Some of it simple and obvious approximations (sometimes even for particular situations, like tree rendering) but also more general ones. Most well known is the disk-to-disk method by bunell, which from what I understand is now also used in PRman for GI as well.

and all you say is like Chinese to me eeshlo.
but it sounds good.

besides that i was working yesterday with c4d with a student and i was quite happy
with their opengl performance and what c4d could preview with opengl.

textures and effects like lens flare and fog was quite impressive to get a feeling of the scene before you render.

eeshlo, if you take a look at the binary, it certainly looks like no precomputation was done. I think the AO was done as some sort of post processing using z and edge data. quite ingenious, and in theory, it is definitely possible.

Well, from what I read in the accompanying paper, it only mentions that ‘AO can be computed dynamically if the application requires it’. But I haven’t seen this particular program working, so maybe it does calculate it dynamically by default. And from what I understand it is implemented with shadowbuffers, sampling several light directions, in effect pretty much similar like we used to do back in the early blender days with the ‘GI-dome’ (icosphere with spotlight dupliverts).

Related to this, the author of the aforementioned ‘disk’ AO method, is now involved with the ‘Fantasy’ game engine which is apparently capable of realtime GI which looks quite nice, not like a typical approximation type of effect:
http://www.fantasylab.com/newPages/rtgi.html

man, that fantasy game engine looks crazy!, look at the pictures and movies!

Meh, molecular visualization. The eye candy, seen it already.

The real neat thing would be having something with an actual physics engine to simulate atomic attraction and repulsion forces in realtime.

Afaik, an app like that doesn’t exist. If anyone knows of one please tell me, I’m dying to know.

yep

the game engine is really quite nice. the GI looks very good for a game.

eeshlo, do you think there is a faster way to calculate AO in blender?
to get a noise free result the sample rate needs to be so high!

further more I am not sure if you ever have heard about Pixels 3D.
They have a AO node which does not slow down. It does use raytracing
as far as i know. well tempest is pixels REYES render engine. I am not sure if that
matters. I know that their AO node also has now a color bleed function which is slowing down. but still i loved using the AO node because it was so insane fast and NOISE free.

here is a link:
https://store.pixels.net/pixelstv/ao/index.html

any clues?

The AO disk method was used by ILM in Pirates 2 on those extremely dense meshes. Looks somewhat different that raytraced AO, but great thing is that it’s noise free and flicker free for animations.

i think F@H does that :stuck_out_tongue:

eeshlo, yeah you are right, i played around with the binary a bit and it seems the AO is done by a large number of softshadow lights (128 by default)

disk methods ? ha?

1 Like

cekuhnen: As far as I know the basic idea of disk method is to create a disks on each vertex based on vertex normals. Then you can use vectorial cross product and the normal to figure out the orientation of each disk. After that you need to calculate the crossing points of the disks and do your GI “magic”.

I am not exactly sure about how to find the optimal size for each disk. One possibility might be to use the vertex distribution to vary their width.

The advantage is that you don’t have to do any nasty and slow ray tracing.

Not exactly.

I’m talking about a standalone app, where I can just spawn two (or more) atoms and watch them attract/repel eachother.

It’s hard to believe that no one made something like that already, but I can’t seem to find anything straightforward like that.

http://static.flickr.com/47/132357901_734456539c_m.jpg

method.

.b