Ambient occlusion, is it possible?

Hi, sorry for bump, is there anyway to get correct AO?
I think Racer MUST have it, i've tried stereo's files but it give me an black and white game :/
Thanks :)
 
Yes you can make it work, I'm pretty sure Stereo mentions how.

But the FPS hit is pretty high and it doesn't look so great yet either.

On balance of this effect and seeing what other game engines do, I think a 2nd uv channel on the DOF format would make more difference for content as we could then bake 'easy' AO into textures (when I say 'easy' I mean auto-unwrap takes 5 minutes kinda AO)
It looks like Forza use that for cars, and no doubt tracks, and it looks fine in practice. Just don't go trying to edit the AO map manually haha :D

Dave
 
Yeah, the effect of live AO is fairly subtle. Might be worth it if everyone had a lot more GPU power but there are other ways to boost graphics quality (try setting shadowmaps to 2048^2, and live envmaps to 6 sides per frame) with AO baked into the car textures.

I don't know if I uploaded working non-black&white shaders. I didn't have it working for long.

Assetto Corsa definitely uses baked AO on cars to good effect; most of what makes the cars look so good is that texture IMO. And they went a pretty sensible route on textures; there's the UV coordinates mapped to AO and details (bolts, trim, etc.) and a second tiled texture containing the paint colour and specular map (so they can have metallic flake). The alpha map on the first texture controls mixing in of the paint colour.

I've been thinking about retiring my 460GTX and getting a 670 or 680; apparently bitcoins got more valuable so I have some spending money.
 
So AC is running a normal unwrap say 2048x2048 with AO and details on it etc, and then the alpha masks out where the main body paint is, which is actually a tiled fragment of the colour and specular flake...?

So where is the AO stored for the body paint, or is the rgb channel used for the AO intensity?

So then does the whole shader share the same gloss value, or is there a gloss map too?

Sounds good, but the whole metallic flake thing is over-egged in my view.

Except for a few special after market coats I never really see the flakes, I only see the end result of them which is a soft specular reflection.
By the time I can see flakes, I'm also gonna see the wavy lacquer and other subtle details that are excessive to display on a real-time model any way.

Cheap effect to add though so I guess that is why they do it... but I hate to say it's not something I'm excited about... I'd rather they do what you did Stereo with the occlusion of the envmap for interior chrome materials etc... the AC interiors reflect the road in the chrome hehe :D

Dave
 
So AC is running a normal unwrap say 2048x2048 with AO and details on it etc, and then the alpha masks out where the main body paint is, which is actually a tiled fragment of the colour and specular flake...?

Yeah, unwrap is RGB for AO and details, alpha for mixing - where it's transparent it behaves like an AO map over the other texture, where it's opaque it's just details (probably with AO baked in, but they're mostly dark-grey anyway).

For road cars with most details modeled, I think it makes a lot of sense as a primary map, although you could just as easily use the ambient color in the shader for the paint colour and skip having a second texture lookup.

The individual flakes don't show but it does add a little noise to the paint even at a distance. Compared with a similar brightness specular spot it does look a little off, to me, although I'm mostly comparing in screenshots cause I don't have two views running side by side or anything. And maybe scaling down spec. with the AO map is the solution to that.



I like the custom cubemaps too, just need to convince Ruud to load alpha on them so they can be proper renders with a mask.
 
Funny you should mention that method, as I wrote a shader for racer doing the exact same thing not too long ago. It's basically just like the mix shader in racer, apart from that it doesn't world map the textures and it doesn't need an extra "control map" as you use the alpha channel for that.
I just went from that and added support for scaling (diffuse map) and normal maps as well, really just for specular influence as normal mapping an entire car is one hell of a job. Can be useful for some details though, but the quality won't be great unless you use a massive sized normal map.
 
I still think on balance of all the visual effects we need, we are missing key obvious ones that would make a dramatic difference (fresnel/ior on base coats) yet investing time on others that are both inaccurately done just to get an 'effect' that are generally not noticeable.


I was asking on polycount recently and people said that generally you want fresnel everywhere if you are wanting the best visual realism (specular, then into diffuse with energy conservation etc), yet we apply it ONLY to our envmap reflections output...

Just fixing that would give us a massive boost in realism and visual quality, probably at very little GPU cost.


I say get the fundamentals good, then worry about little details like metallic flakes. Imo metallic flakes would be best kept to a procedural domain. For the times that you are THAT close to the paint that you can see the effect of them individually then you probably filling the screen with the car, and thus doing little else except looking for high-cost eye-candy rendering any way!

Authoring your whole shader to try mix the general paint with metallic flakes and non-glossy paint 'details' seems really flawed to me.
Maybe on the odd car it's important, like the Zonda R where you have studs in the paint and carbon with anisotropic specular response under the lacquer... but for a 'normal' car?

Dave
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top