Rebuilding the CG beauty


I wanted to share a couple of documents I have that help explain the recipe for rebuilding the beauty pass. I have documents for Redshift and Arnold.

So basically Redshift uses this

Beauty = Diffuse (DiffuseFilter*DiffuseLightingRaw) + GlobalIllumination (DiffuseFilter*GlobalIlluminationRaw) + DiffuseFilter*SubsurfaceScatteringRaw + SpecularLighting + Reflections + Refractions + Emission + Caustics

It can be really good to get the Diffuse pass split into DiffuseFilter and DiffuseLightingRaw because the DiffuseFilter is basically the colour information with none of the light/shading. Good for pulling a HLS key off.

I don’t always get the Refraction, Emission and Caustics. Or sometimes they are just black.

I will try and follow this up with a screen shot of my Flame schematic.


here is an interesting post on how to use diffuseFilter and DiffuseLightingRaw it in nuke, but it can be easily rebuild in flame.


Hiya @PlaceYourBetts , can you define “Beauty Pass” and why you’d need to rebuild it in the first place?

That’s a whole episode of Logik live @randy. Short order, it allows you to tweak isolated areas (spatial) of the components (qualitative) that make up your scene in a significantly simpler and more granular method by making said edits to a 3D scene’s foundational building blocks and recombining them into what would be otherwise a 1:1 match of the bty pass.

This is pretty much par for course on all CG work, but especially when it comes to car work for me.


If you want to save on rendering some passes you can calculate the RAW components by diving Diifuse by Albedo (Diffuse Filter)

Beauty = Diffuse (DiffuseFilter*(Diffuse/DiffuseFilter)) + GlobalIllumination (DiffuseFilter*(DiffuseFilter/GlobalIllumination)) + DiffuseFilter*SubsurfaceScatteringRaw + SpecularLighting + Reflections + Refractions + Emission + Caustics

With some render engines this may actually give you a more accurate match to the beauty, as is bypassing some internal filtering done on AOVs at render time. Technically all additive AOVs should be adjusted using Gain or Mult color adjustments. Only the RAW passes will react better to other types of adjustments like Gamma and Contrast.

Also be aware that you may need to take into account render denoising to have and accurate match. Denoise may no be applied exactly the same in different passes. Usually denoise is only applied to RGBA.


I know that @randy knows. He is being a good host and asking the layman questions to help me frame this topic more clearly :wink:

The Beauty Pass is the preferred result of the CG render. On its way to being completed the renderer will do different passes/calculations, and it will combine them all together and deliver the result that the CG artists intended.

You can save off these individual passes, called AOVs ( Arbitrary output variables) and recombine them to rebuild the Beauty Pass.

Why would you want to do this? Well I use the example of a render of a red leather wallet. Your mobile phone client thinks that the red is a little too Vodafone and wants you to grade everything that is red to blue. You haven’t got time to go back and render again so you have a go at grading it in comp.

With only a single render pass you are going to be dealing with the shiny red wallet and when you are grading it you don’t want any of the specular (shine) or reflections to change colour. If you rebuild the CG beauty pass you have access to all of the AOV passes that went in to the render and by changing the colour (diffuse pass) before adding the specular (shine) and then the reflection pass means you don’t have to worry about messing up the colour on those.

It helps to know how different renders use different AOVs and how they are combined to make the beauty. I deal 90% with RedShift and 10% Arnold.

This came up in a discussion on discord about Subtractive CG compositing which @finnjaeger talks about in this LOGIK Live


For anyone interested in having a go, Tony Lyons has an excellent compositing series called Compositing Mentor. He has just started a series on this topic and although he focuses on Nuke, he explains this very clearly and he has some example multi layered EXRs from three different renderers, RedShift, Arnold and Octane. Download all three here (1.61GB)

Way more AOVs than I would normally like but a very good example file for sure!

1 Like

On top of the Beauty AOVs in many cases is also beneficial to have per-light contribution passes. These have different names depending on the render engine user… Light Selects (Vray), PLOs (Per Light Output - RIS)
Sometimes I actually prefer these over AOVS given the option… and also the type of shot.
Basically you get a Beauty pass per light, group of lights or type of lights. This combined with beauty AOVs provides powerful controls and may save time by not going back to the CG Dept to address lighting changes.
I sure there are plenty of tutorial around… here is one using Blender:

why would anyone do this and not work substractive? i honestly want to know.

1 Like

@finnjaeger In that example, if you want to change the diffuse colour on the red leather wallet.

Would you subtract spec, reflect, emission before you grade and then add them back again afterwards?

I would substract diffuse/albedo pass grade and add back in , possibly also change more stuff depending on what the diffuse color is indeed effecting, but most should be fine , probably need to do some stuff to GIs also.

There are just too many issues with rebuilding, lots of stuff just plain up doesnt work (light selects would be one, you would need a lightSelect with every pass in it etc.

Then there is odd stuff that some renderes do with caustics and volumetrics/emission lights etc, with substractive no matter what comes in from what renderer you are good to go… oh and if someone “forgets” to render a needed pass to rebuild you end up not beign able to match beauty.

Oh and also most often you dont need all the passes , saves time and money to not render them.


In my experience the substrative method works fine for basic color correction. This is the method of choice for grading light contributions and additive Beauty AOVs like Lighting, GI, Reflection and Spec. But when you need more complex adjustments like the one @PlaceYourBetts is describing; change the underlaying color of an object or the contrast ratio of a lighting pass, or even add texture to a surface… you need a more articulated method of deconstructing and putting back together the different lighting elements.

That being said… any of this is the law of the land… whatever work, works.

1 Like

regarding lightSelects I have made my own light mixer in nuke that goves you access to all selects in one node, its so clean and sexy , can someone make it for flame/matchbox (image + a few comp nodes?) .

Honestly lightselects are compeltely underrated for comp!

interesting I havent run into anything I couldnt habdle with substractive in … 4? years or so, but then if its a very complex change i would just open the houdini scene and fix it myself :stuck_out_tongue: cause I am lazy

1 Like

You can have light selects and single beauty AOVs adjustments living happily in the same stream without the need to break each light into AOVs

I was thinking about this wrong.

I was thinking about subtraction to remove so that you could work on the diffuse. When I should have been thinking about subtraction to extract the diffuse so that it can be treated independently :+1:

Thanks @finnjaeger @milanesa

1 Like

Fair enough but then you end up going substractive with your lightselects on top of the rebuild beauty comp? I mean yes, you get both, but if you want to take it all the way, you can break them all out but that would be insanely annoying

@finnjaeger I just went through the logik live ep on subtractive comping, from this thread @ Logik Live Episode #46: ACES & Subtractive CG Comping with Finn Jäger - YouTube and noticed that the first comp node is set to subtract and the second one is set to add. When I tried this on a scene I did not get the same expected results, however, if I set the second comp node to subtract then it works. This does not make any sense to me. My project is ACES CG and the source is a demo file multichannel exr.

if you do substract X from Y and then add X to Y you will get … nothing so i recon something in your setup is connected in a wrong way.

Y-X= Z and then Z+X=Y

Are you sure the back/front inputs are correct and you are substracting a contribution pass from the beauty?

I am happy to post a batch setup but I am on vacation with no access to a flame at the moment :confused:

1 Like

I just located the error on my part. I see that in your demo that the first comp node has “swap inputs” enabled.