SSAO for monkeys

Overgrowth is 1.5 GB, BF3 is put on dual layer DVD with 8.7 GB, they have enough space. Also the 50-200 MB estimate was for uncompressed textures, I guess JPEG compression could bring it down quite a bit

@Momoko_Fan said:
Overgrowth is 1.5 GB, BF3 is put on dual layer DVD with 8.7 GB, they have enough space. Also the 50-200 MB estimate was for uncompressed textures, I guess JPEG compression could bring it down quite a bit

Yeah like every single AAA game...
At some point every technique has a down side, and I would gladly trade 1,5GB drive space with nice baked shadows and AO. I mean, who cares about drive space and download size?
Also using DXF compression could help to not clutter the graphic memory...

I agree that AO for outdoor scenes with a dominant sunlight is useless.

Perhaps true AO isnt what I was looking at when I think about it.



I guess for outdoor scenes I dont really think of it as ambient occlusion but rather a way for objects to look more “rooted” into the ground. If you take a rock mesh and stick it in the terrain it looks like… well a heap of polygons stuck into a heap of terrain polygons. The bottom polygons of the rock facing the ground should be darker/dirty and the polygons at the ground should reflect the same “state”. I saw a video a long time ago about the making of Oblivion (or Morrowind) where they talked a bit about “rooting objects”. I know this can be done easily by some static shadow maps, but for a generated world its rather tedious to go around painting this around every rock so I think I will try at least baking it into the splat textures so that my generator can “dirty down” the spots where I stick objects automatically (I already have a dirty texture for this to get variations). By using a splat texture I also get some variations into the areas too so it might look better. I guess this means I am actually creating those large shadowmaps you speak of, but perhaps on a smaller scale. Although for the objects on top of the terrain I would have to figure out some way too so that they become darkened at the bottom too.



Even cartoonists learn early on that the thickness of the pen should vary and always be thickest as the pen slopes horizontally to form an impression of depth as the eye perceive the darker areas to have less light and are facing down. Similarly this simple effect in 3d graphics can make objects more rooted as their small “nooks and crannies” gets filled with darkness. Naturally a trick effect doesnt react to lighting in any way, but generally it just looks better than polygons stuck inside others. Ambient occlusion is naturally how this is done to be perfect, so I kinda hoped that a vertex based color shading could also create a similar effect using similar AO type calculations but on a vertex level and precalculated.



Btw when I mention AO calculation when you move objects around I dont talk about dynamic objects in the game but e.g. terrain and objects streamed or procedurally added realtime also has AO vertex calculation going on just before they are plopped into the scene.



Anyway I am rambling… its just an idea I found interesting as vertex based AO seems to add some oomph in some cases too.

@nehon , I tried SSAO jme-test on 2 computers and my fps = 30-25.

Nvidia GTS250 and Nvidia GT 220 - CARDS.



Is it usable for projects at present?

well yeah it’s usable, but it sure sucks a lot of FPS.

You should make it an optional feature for your game, and allow the user to disable it if he has low hardware

@nehon said:
well yeah it's usable, but it sure sucks a lot of FPS.
You should make it an optional feature for your game, and allow the user to disable it if he has low hardware


Or at least warn them if their framerates are low and it is enabled.

Interesting… how WolfireGames did it:



http://www.youtube.com/watch?v=X-imQZh5568&feature=player_embedded#!

@nehon , hi again!



I found a shader which looks like in Wolfires’s game. Possibly you will be interested.



http://dl.dropbox.com/u/26887202/123/jme_blender/SSAO_2.6.blend



Just open blender file and press “p” at 3d view to start the shader.



the shader is found here: //game dev log of martins upitis: nicer SSAO