Hey. I'v been downloading some grass textures and i'm somewhat bummed about the albedo. It looks as if it the "deep" parts have been high-passed to death, almost to the point of there being a flat color with a tint of curvature. I tested it out in Marmoset and found that while it didn't look as bad it didn't look correct (or as in the preview). I'm guessing it's something you guys are doing in regards to AO removal.
Here are a few samples.
Link to the ones featured (i have tested two more and they have the same "problem").
https://megascans.se/assets/pftpn0https://megascans.se/assets/pkhg40Last one isn't so bad but mostly because of the small details hiding everything. I might be crazy but would like to get some kind of clarification on this.
Cheers!
Replies
@Maximum-Dev - I actually wire in my AO map with a parameter to control the strength of it on the fly - it's nice being able to adjust it without needing to edit it and reimport the entire texture.
Try using the AO and cavity map in Toolbag's shader setup, I think you'll see a big difference!
I think what loggie24 is trying to say is that when you supply the material with an AO map then you get all those nice little shadows on the material and it looks the way it's supposed to look like only when the material is in the shadows. As soon as the material is directly lit in a game engine the AO map doesn't have any effect anymore and the look of that material without the AO is not like what it looks like in reality at all.
The issue originates from the fact that in real life you still do have AO when a surface such as grassy ground is directly lit by the sunlight and that's because of the 3D volumes the surface has as opposed to game engines where there's about 2 Tris per meter on landscape.
If AO map is supplied in the material:
How it looks if covered in shadow:
How it looks when directly lit:
If AO map is supplied in material and also multiplied on Albedo:
How it looks if covered in shadow:
How it looks when directly lit:
If AO map only multiplied on Albedo:
How it looks if covered in shadow:
How it looks when directly lit:
How it looks in reality when directly lit:
^ That is why people still tend to bake AO to albedo for some particular surfaces such as grass.
I personally don't respect the PBR rules equally for all surface types, because it's a set of one way rules. These rules tell us the relationship surfaces have with light in reality and we should follow them to reconstruct that reality in the fake 3D space but the missing factor is that in the fake 3D space we do not have as much geometry on a surface as there is in reality. i.e model a 1x1m grass surface made up of a few million triangles and then in game engine you'd have this perfect scenario:
If AO map is supplied in the material only:
How it looks if covered in shadow:
How it looks when directly lit:
But everything is different when you move from a grass surface to something like a painted metal surface. Grass in reality has lots of volume to it but in game engine the surface is flat => Bend the PBR rules if achieving realistic result is the goal here. Painted metal surface in reality is flat and in game engine the surface is also flat=> Stick to the PBR rules as much as possible.
Edit: Added more info to the comparisons.
Personally, I don't actually have a problem with premultiplied AO. I prefer that AO is not interpolated to 0 in direct light however, typically Ill request the engine only interpolates SSAO to quarter strength or something like that. That way materials can be authored devoid of lighting and SSAO can kick in to help those shadowed areas based on the normal map. Its a more systemic way to achieve the look you are looking for. This grass is an excellent example of where I would take no issue with. Bricks are another example of this.
That being said, there are lots of people who disagree with me on this situation and your pipeline may not support something this. (IE your TAs or graphics programmers may say they don't support this workflow?). Its important to note that this should be evaluated on a case by case basis, where and when this material is used and it must be checked in all lighting conditions you would expect the asset to be in. It may look okay in direct light, but make sure to check the material in shadow like above to make sure it doesn't become too dark. Premultipled AO should really only be used for micro detail on texture flats that are volumetric in nature. Weapons, clothing, hardsurface props etc are examples of something I would not expect to have highly prevalent premultiplied shadow information.
Finally, I also recommend that AO is always separated out in your PSD, substance etc so its easily disabled when someone wants to tweak or audit materials.
Edit: wow this thread is old whoops
A while ago when PBR was new-ish I was being sort of bashed for still multiplying AO on Albedo for some surfaces. But as time goes it seems to get more common. The UE4 document is also suggesting to multiply the fine shadow details on Albedo itself which is clearly saying we got off to a bad start with the whole explanation of removing "all" the shadow information from the Albedo.
I also think it's totally valid to add some shadowing info into the Albedo for things with a volume that cant be captured with a 2D material. I'd agree on it being something you'd want to test well in different lighting conditions and on avoiding reducing the Albedo to 0 in direct light.
IMO bending the rules is warranted as long as you have a solid reason to do so. Grass is a really good example because even in direct light it should realistically occlude. With that intuition as a physical basis it makes sense to introduce AO into your Albedo and Specular maps.