Added Deep EXR support for true Feature Film pipeline of Cycles

I’m Roland Vyens, a Lighting TD working at VFX 3 years now. My recent work includes Thunderbolts, The Fantastic 4: First Step, Ironheart, BEEF season 2…

I have been working on Deep EXR output for Blender Cycles as part of Industrial CG Platform. You can now render deep exr using Industrial CG Platform - A Blender-based production platform for advanced VFX workflows, composite seamlessly with deep exrs rendered with other softwares.

The problem with traditional render-layer splitting

In a conventional 2D compositing workflow, the depth relationships between render layers usually have to be decided before rendering.

For example:

  • A character layer may need holdouts for foreground environment objects.

  • Smoke may require mattes for the character and surrounding assets.

  • Particles may need to be divided into several layers according to depth.

  • Adding or repositioning an element can invalidate the holdouts of existing layers.

  • Updating one asset may trigger re-renders across Lighting, FX, and Comp.

This becomes particularly difficult around hair, transparent surfaces, volumes, particles, and objects that repeatedly cross one another.

Preserving depth inside each pixel

A normal EXR stores the final flattened RGBA value for each pixel. Once the result has been flattened, the original spatial relationships inside that pixel are mostly lost.

A Deep EXR can instead store multiple samples inside one pixel. Each sample contains its own color, alpha, and depth information.

This allows the same pixel to contain samples for:

  • Foreground hair

  • A character surface

  • Volumetric smoke

  • Particles

  • A distant environment

Industrial CG Platform generates this Deep data during the Cycles render and writes Deep EXRs that can be read directly by Nuke’s DeepRead node.

Recombining separately rendered elements

Independent Deep render layers can be connected to a DeepMerge node:

DeepRead_Character ───┐
DeepRead_Environment ─┤
DeepRead_Volume ──────┼─ DeepMerge ─ DeepToImage
DeepRead_Particles ───┘

Nuke sorts the samples according to their spatial positions before converting the result back into a normal 2D image.

This means that a compositor can, for example:

  • Insert smoke behind a character without rebuilding character holdouts.

  • Place particles between foreground hair and the character surface.

  • Replace an environment while preserving complex foreground intersections.

  • Add a new CG element without resubmitting every existing render layer.

Another possible workflow is to deliver the Deep spatial data separately from the final 2D beauty render and combine them with DeepRecolor.

That can be useful when the beauty pass changes while the underlying geometry and depth relationships remain the same.

Where this is actually useful

Deep EXR introduces additional storage and processing costs, so it is not automatically beneficial for simple shots.

In these cases, render layers can be separated according to departments, sampling requirements, and version management rather than being permanently divided by foreground/background order.

The implementation is part of Industrial CG Platform. Visit the official Industrial CG Platform homepage, download the current build or grab the source code from GitHub, and integrate Blender into a more precise, low-re-render-cost Nuke deep composite workflow.

14 Likes

Cool stuff!
I don’t know how appealing deep rendering outside of studio use is, but it would certainly help Blender’s adoption in VFX.
Any plans to submit PRs to the Blender codebase?
EXR-Overscan (which you listed as one of the features on your platform) is something I have been waiting for years already.

2 Likes

Thanks for your hard work on this! I’ll keep following its progress.

1 Like

I don’t have a plan to submit pr now, it’s a complex thing, now I only want to work fully on the feature development

1 Like