The Philosophy — Renderer as Digital Negative
01
Renderer
Tone curve OFF
Linear EXR out
No creative color
Linear EXR out
No creative color
02
Resolve
ACES transform
Creative grade
Film emulation
Creative grade
Film emulation
03
Deliver
rec.709 / H.264
or rec.2020 HDR
baked LUT option
or rec.2020 HDR
baked LUT option
The core idea is simple: your renderer captures physically accurate light information in linear color space — like a RAW file from a camera. Applying a tone curve inside the renderer permanently bakes creative decisions into the image before you’ve even touched it in post. Instead, export that linear data untouched as EXR, and let DaVinci Resolve handle all the creative color work.
Ron’s workflow: Tone curve disabled in all renderers. Everything exports as linear EXR. ACES color space in Resolve (Linear-ACES_HD project). The ACES Transform node converts linear to display — that’s the only "tone mapping" in the pipeline. Everything after is creative: contrast, Film Look Creator, Dehancer 35mm grain, custom vignette and chromatic aberration.
Think of it like shooting LOG on a cinema camera. You’d never shoot with a baked-in look. Same principle — keep the data clean, grade it properly.
Octane Render — Disable Tone Curve
1
Octane — Imager Node
Disable Response Curve in the Imager
The Octane Imager controls all post-render tone and color operations. This is where you kill the tone curve.
Response → Linear (no curve)
Gamma → 1.0
Exposure → 1.0
Highlight Compression → 0 (off)
Vignetting → 0 (off — do in Resolve)
White Balance → 6500 K neutral, or match scene
Gamma → 1.0
Exposure → 1.0
Highlight Compression → 0 (off)
Vignetting → 0 (off — do in Resolve)
White Balance → 6500 K neutral, or match scene
Your Octane viewport will look flat and washed out — that’s correct. You’re looking at linear light data. The grade happens in Resolve.
2
Octane — Render Output
Export EXR with full dynamic range
Format → OpenEXR (.exr)
Bit depth → 32-bit float (or 16-bit half for speed)
Compression → PIZ or ZIP
Color space → Linear sRGB
Render passes → Beauty + optional AOVs
Bit depth → 32-bit float (or 16-bit half for speed)
Compression → PIZ or ZIP
Color space → Linear sRGB
Render passes → Beauty + optional AOVs
32-bit float preserves every stop of dynamic range. 16-bit half is fine for most work and renders faster — only go 32-bit if you need extreme highlight recovery in Resolve.
Redshift — Disable Tone Mapping
1
Redshift — Render Settings
Set Tone Mapping to None / Linear
In Redshift Render Settings under the "Globals" or "Post FX" tab, disable the tone mapping operator entirely.
Tone Mapping → None (Linear)
Photographic Exposure → disabled
Gamma Correction → 1.0 (linear)
Vignette → off
Bloom / Glare → off (do in Resolve)
Photographic Exposure → disabled
Gamma Correction → 1.0 (linear)
Vignette → off
Bloom / Glare → off (do in Resolve)
2
Redshift — Output
Export EXR sequence
Format → OpenEXR (.exr)
Bit depth → 16-bit half or 32-bit float
Color space → Linear / ACEScg if using ACES pipeline
Multi-layer EXR → optional — combine passes in one file
Bit depth → 16-bit half or 32-bit float
Color space → Linear / ACEScg if using ACES pipeline
Multi-layer EXR → optional — combine passes in one file
Redshift can output ACEScg directly if your project uses ACES. This matches Ron’s Linear-ACES_HD Resolve project perfectly — no color space conversion node needed on import.
Unreal Engine 5 — Disable ACES Tone Curve
1
UE5 — Post Process Volume
Disable the tone curve in Post Process
UE5 applies ACES tone mapping by default. You need to turn this off so you get linear output from Movie Render Queue.
Tone Curve Amount → 0.0 (fully disabled)
Expand Gamut → 0.0
Blue Correction → 0.0
Scene Color Tint → white (1,1,1)
Auto Exposure → disabled (use Manual)
Expand Gamut → 0.0
Blue Correction → 0.0
Scene Color Tint → white (1,1,1)
Auto Exposure → disabled (use Manual)
With tone curve at 0, UE5’s viewport will look overexposed and blown out in bright areas — that’s normal. You’re seeing untonemapped linear HDR values. Trust the EXR output, not the viewport.
2
UE5 — Movie Render Queue
Render EXR via Movie Render Queue
Output format → EXR Sequence
Bit depth → 16-bit (half float)
Compression → PIZ
Disable tone curve → ✓ confirm in Post Process settings
Anti-aliasing → Temporal AA or Path Tracer samples
Output resolution → match delivery spec (1920×1080 / 3840×2160)
Bit depth → 16-bit (half float)
Compression → PIZ
Disable tone curve → ✓ confirm in Post Process settings
Anti-aliasing → Temporal AA or Path Tracer samples
Output resolution → match delivery spec (1920×1080 / 3840×2160)
Use the High Resolution screenshot or Spatial Sample Count in MRQ for clean anti-aliasing on still frames. For animation, Temporal AA with 8–32 samples gives good results without the render time of path tracing.
DaVinci Resolve — Project Setup & EXR Import
1
Resolve — Project Settings
Set up ACES color managed project
Color science → DaVinci YRGB Color Managed
Color space → Linear · ACES (ACEScg)
Gamma → Linear
Timeline color space → DaVinci Wide Gamut
Output color space → rec.709 gamma 2.4 (web/SDR delivery)
Color space → Linear · ACES (ACEScg)
Gamma → Linear
Timeline color space → DaVinci Wide Gamut
Output color space → rec.709 gamma 2.4 (web/SDR delivery)
Ron’s project: Linear-ACES_HD — working in ACES color space with linear gamma input. This is why the Curves panel shows a straight diagonal line: Resolve is receiving linear light, not a log or gamma-encoded signal.
2
Resolve — Media Import
Import EXR sequence
Drag your EXR folder into the Media Pool. Resolve will auto-detect the sequence. Set the input color space to match your renderer’s output.
Input color space → Linear / ACEScg
Input gamma → Linear
Frame rate → 24fps (cinematic) · 30fps for motion graphics
Decode quality → Source — use original EXR data
Input gamma → Linear
Frame rate → 24fps (cinematic) · 30fps for motion graphics
Decode quality → Source — use original EXR data
Ron’s Resolve Node Tree
This is the actual node structure from the screenshot above. Two parallel chains feed into a final output: the primary correction chain on top, and the creative/film chain on the bottom.
Primary Chain (top row)
01 · Source
→
02 · ACES Transform
→
03 · Contrast
→
04 · Color Correct
→
05 · Vignette
Creative / Film Chain (bottom row)
06 · Glow
→
07 · Chromatic Aberration
→
09 · Film Look Creator / Dehancer
| Node | Type | Purpose | Key Settings |
|---|---|---|---|
| 01 · Source | Input | Raw linear EXR from renderer | No adjustments — pure linear signal in |
| 02 · ACES Transform | CST Node | Converts linear to display — this is the tone map | Input: ACEScg linear → Output: rec.709 or display |
| 03 · Contrast | Corrector | Global contrast lift post-ACES | Contrast 1.25 · Pivot 0.435 |
| 04 · Color Correct | Corrector | Primary hue/sat/luma corrections | Per-shot adjustments |
| 05 · Vignette | Custom | Lens-style radial darkening | Soft oval, subtle — not a hard circle |
| 06 · Glow | FX | Bloom / halation on highlights | Low intensity — cinematic light bleed |
| 07 · Chromatic Aberration | Custom / FX | RGB fringe toward frame edges | Very subtle — lens character, not distortion |
| 09 · Film Look / Dehancer | Plugin / FX | Film emulation — interchangeable, or stack both | Film Look Creator for tone character · Dehancer for grain + halation · Ron uses both |
Dehancer & Film Look Settings
Ron’s approach: Dehancer handles all film grain — not Resolve’s built-in grain. The 35mm emulations in Dehancer include authentic grain structure, halation, and color response that’s far more convincing than any synthetic grain node. Film Look Creator in Resolve adds the tone/color character, Dehancer adds the physical texture.
Dehancer stock → 35mm (varies per scene)
Film Look Blend → 1.0
Color Blend → 1.0
Effects Blend → 1.0
Core Look → Cinematic
Contrast → 1.250
Highlights → 0.350
Fade → 0.285
White Balance → 6500 K
Subtractive Sat → 1.200
Richness → 1.000
Film Look Blend → 1.0
Color Blend → 1.0
Effects Blend → 1.0
Core Look → Cinematic
Contrast → 1.250
Highlights → 0.350
Fade → 0.285
White Balance → 6500 K
Subtractive Sat → 1.200
Richness → 1.000
The Fade at 0.285 is key — it lifts the blacks slightly, giving that analogue film look where true black is never truly black. Combined with the Highlights rolloff it creates the characteristic compressed dynamic range of 35mm print.
LUT Pipeline — Preview & Export
LUTs let you bake a Resolve grade into a single file you can apply in other apps — or use as a viewport preview in your renderer so what you see while lighting roughly matches your final grade.
| Use Case | LUT Type | How to Export from Resolve | Apply In |
|---|---|---|---|
| Viewport preview | 33-point .cube | Color menu → Generate LUT → 33pt | Octane Imager / RS Post FX / UE5 Post Process |
| Delivery bake | 65-point .cube | Deliver page → LUT export in render settings | Applied to finished render for client preview |
| Show LUT | .cube or .3dl | Export base grade without shot-specific corrections | Applied across entire project for consistent look |
| Cross-app consistency | 33-point .cube | Export from Resolve, apply in Octane/RS to match grade | Lighting decisions match final grade during production |
A LUT baked from your Resolve grade will only look correct if the input color space matches. If your renderer outputs linear and your LUT was built on linear input — it’ll match. If there’s a mismatch, you’ll get a color shift. Always document what color space the LUT expects.
Delivery Reference
Web / Social
H.264 / H.265
rec.709 · gamma 2.4 · 8-bit · high bitrate
Client Preview
ProRes 422
rec.709 · 10-bit · smaller than 4444
Archive / Master
ProRes 4444
Full color + alpha · 12-bit · lossless quality
HDR Delivery
H.265 HDR10
rec.2020 · PQ gamma · 10-bit
Frame Sequence
EXR / TIFF
32-bit EXR for VFX handoff · TIFF for print
Render EXR bit depth
16-bit half
Best speed/quality balance · use 32-bit only for extreme recovery
Timeline FPS
24 fps
24fps = cinematic standard · 30fps for motion graphics / broadcast only
Resolve output gamma
2.4
rec.709 gamma 2.4 for SDR · ST.2084 PQ for HDR