Home Technical Talk

Why no AO in albedo?

grimsonfart
polycounter lvl 4
Offline / Send Message
grimsonfart polycounter lvl 4
Ok, so i have a quick question. Why can't we have AO information in our albedo texture?

Replies

  • billymcguffin
    Offline / Send Message
    billymcguffin polycounter lvl 11
    Because then you'd have AO all the time, even in direct light. Ambient occlusion should only occlude ambient light, so it cannot be in the albedo.
  • grimsonfart
    Offline / Send Message
    grimsonfart polycounter lvl 4
    So the engine bakes the AO? Or is it controlled by the depth in the normals map?
  • Farfarer
    You trend to supply an AO map as a separate texture (or texture channel).
  • EarthQuake
    Cole hit the nail on the head, but I think its important to give a practical example as well.

    Go into your kitchen, and look under your fridge. Its dark under there, right? This is because the light source is occluded. Now, go grab a flash light and shine it under the fridge. The previously occluded area is now illuminated by the light source. When you bake AO into your diffuse/albedo map, what you're doing is telling the renderer that even if a dynamic light hits the surface, it shouldn't light up. This is physically implausible.

    The same thing applies to spec maps as well (or metallic areas of your albedo if using the metalness workflow). You shouldn't multiply spec on reflectivity, because what you're really telling the renderer is that areas that are occluded are less reflective. This is yet again, physically implausible. Objects do not get less reflective when you place them in shade, there is simply less light that hits them to reflect (this is a very important difference).

    For these reasons, AO maps in modern shaders are usually placed in a separate map, so they can be used to mask only the ambient (usually image-based) diffuse lighting. Cavity maps, or micro-scale AO maps which only contain small pits, pores, cracks and crevices can sometimes make sense to multiply on diffuse/spec as you usually do not have detailed enough geometry for the engine to work out the occlusion there. Even cavity maps are often assigned as a separate map.

    Now, AO maps can still be very handy in the texturing process, they are great when used as initial bases to define materials. For instance, an inverted AO map can be a great base for dust or dirt. Here, you're actually defining a material, and dust may be brighter than say, black paint, while dirt may be darker than light concrete. Its important to note that you're not simply multiplying AO onto your maps here, but again, defining a specific material. Thats what modern texture creation boils down to, defining the specific material properties, and multiplying/overlaying baked lighting, ao, curvature maps, isn't particularly productive.
Sign In or Register to comment.