Specular or cavity map?

Hey guys,

This senior character artist called Adam, in talking about the creation of a photorealistic character, said in the video (forward to 19 minutes) that cavity map is better than the traditional specular map for character creation.

This is the first time I’ve heard about cavity map. So what do you guys think? Would it be better replacing the specular map for a cavity map? I thought his explanation interesting, so what do you guys think? Thank you.

You usually add cavities to your roughness anyway to stop pores and bigger cavities from reflecting light. Roughness maps don’t tend to be that exact so whatever gets you to a good result is good, and for realtime renderers light leaking is a huge problem, especially on characters, so stopping reflections where they aren’t need is good. Doesn’t matter how you get to that result.

there is also a way to add a node to make cavity in cycles
no map needed !

happy cl

Cavity Map is like AO Map. Specular Map is different thing.

I got you. Thank you. And I like the idea of there’s no right or wrong but whatever gets you to a good result is valid.

Now I’m confused. I thought the cavity map was used in the specular socket so replacing the specular map. So, that’s not the case?

Interesting, how can I do that?

No. You multiply with diffuse map. If you used in specular socket, where you can use your specular map?

Maybe you can multiply your specular map.

He says, you can create Cavity Map from Specular Map. Not says you can use cavity map instead of specular map.

I think the idea is what 0451 says. Remember, with metallic workflow we don’t “do” specular maps anymore, we do roughness only and a static specular value of around 0.5. However, if you use a cavity map in specular, you create a fake shadow effect in the cavity. Whatever world specular lookup is done is reduced in the cavities. Multiplying with diffuse is incorrect, as it darkens direct light as well, and it just ends up looking “dirty”. Using cavity map as specular for a game engine, you lower the world lookup in areas that “can’t see” the world. In the video, while he doesn’t “multiply specular map with cavity map for specular use”, he has manually lowered the specular of the nose in the map to make it match the reference.
I use the same specular trick in Cycles to create shadow gaps where no geometry exist.

2 Likes

No, if you use Cavity Map on specular, then this incorrect. This means, white areas are glossy, black areas are diffuse. But Cavity is works like AO Map. This creates fake shadows. For this reason, must multiply with Diffuse. If you want, you can multiply to specular map also.

And on video, he says if your Specular Map is detailed, then you can create a Cavity Map use with Specular Map.

That’s the whole point though. Those dark spec values in the cavity map creates “shadows” in the pores. He even modulates with fresnel (wrong imo, facing would be “correct”) to limit this effect on grazing angles when you don’t see “into” the pores.
See here for the “correct” vs “incorrect” math. It’s kind of in the name - ambient occlusion - it prevents ambient light from reaching due to nearby geometry, but not direct light.

This is render passes. I am talk about texture, not render passes. For texture, you must multiply AO/Cavity with Diffuse/Albedo.

I’d like to thank everyone here for the answers. There are good points and insights in them I’ll use in order to further my studies. I know there’s a long way to go but I feel I’m progressing fast. :slight_smile:

No.
Check out the link.
Multiplying AO with albedo is not correct.

What is shadow my friend? If you want add shadow, then you must multiply shadow map.

if you do this


instead of this

no AO for comparison:

you will get fake shadow of ambient light(AO) in place when there is direct light

unfortunately specular in eevee is only shader currently with support of AO input in blender (in 2.80 beta there was metallic shader with AO input, but it was removed)

You can set AO amount to change Multiply Factor. If you think AO factor too high, then decrease.

Blender Manual says:

Amount of occlusion to apply to indirect lighting. Usually a bake ambient occlusion map. The final occlusion factor is the minimum of this input and the runtime ambient occlusion effect.

Ao was multiplied with color in legacy shaders. In modern pbr era it is incorrect. Same goes for cavity map, and actually cavity map should never be multiplied but you should use overlay insted.

But cavity as input in specular value is an interesting idea

Overlay formula kills some details of your AO map.

If you want artistic purpose, you can use Overlay, Soft Light or Screen or another blend types, but for all shadow passes, true blend mode is Multiply.