La oclusión "ambiente" de Unity ocluye todo. ¿Cómo hacerlo mejor?

Estoy experimentando con soluciones AO personalizadas para Unity. Mientras miraba la fuente de su efecto SSAO incorporado, noté que el sombreador está haciendo esto:

half ao = tex2D (_SSAO, i.uv[1]).r; ao = pow (ao, _Params.w); c.rgb *= ao; 

Básicamente, está oscureciendo toda la image como un process posterior donde el término AO es <1, incluidos los componentes especulares y difusos. Me gustaría que mi versión solo atenúe el componente ambiental sin dejar la iluminación directa intacta.

Entonces, ¿cómo hacer esto? Una opción sería ir al máximo en el renderizador diferido (no preceder legado henetworkingado), calcular la textura AO después de pasar el búfer G e incorporarlo en un sombreador personalizado para hacer el pase de iluminación final. ¿Pero hay opciones más simples que funcionarían con preaviso ligero o incluso renderizado directo?