RESOLVE FX · PORTABLE COLOR DECISIONS
OCIO CDL Transform.
Move the decision.
Keep the pipeline honest.
A technical guide to ASC CDL inside Resolve 21: file exchange, ordered Slope/Offset/Power math, Saturation, Forward/Reverse, and the pipeline context required for repeatable results across applications.
Color state
Slope · Offset · Power · Sat
.cc · .ccc · Direction
Try Forward and Reverse in the lab, then push Saturation toward a singular extreme: invertibility is a property of the transform, not a promise made by the button.
Educational approximation, not Blackmagic or OpenColorIO rendering. The lab uses a normalized display-referred toy signal, simplified clamping, and illustrative slider ranges. Use it to understand SOP/Saturation order and invertibility; judge production CDL values in the intended color pipeline.
Six native Resolve 21 Inspector captures plus an independent teaching model.
ASC CDL · SOP / SAT01WHAT A CDL ACTUALLY CARRIES
Four compact decisions—not an entire color pipeline.
ASC CDL is valuable because it is small, explicit and portable. That same compactness means it cannot tell another application everything about the signal around it.
SOP is ordered math
OpenColorIO defines ASC CDL as Slope, then Offset, then Power. These are not three independent creative wheels: changing an early stage changes what the next stage receives.
Saturation follows SOP
Saturation works on RGB after SOP and changes channel distance from the luminance basis. SOP and Sat are therefore not freely interchangeable.
Color state is part of the contract
A CDL is compact precisely because it does not describe the whole pipeline. Repeatability also requires the input color state, insertion point, Direction, and version context.
Technical transform reference: OpenColorIO CDLTransform ↗
02THE ACTUAL RESOLVE 21 CONTROLS
Read the Inspector as one transform with four responsibilities.
Six native captures document the current UI. Visible values are evidence of one neutral state, not claimed limits or recommended settings.
01 · FILE / EXCHANGE
The file is transport, not a separate look engine.
- CDL File
Shows the ASC CDL source. In Resolve FX this block feeds the same Slope/Offset/Power/Saturation values; the file populates the correction rather than creating a hidden parallel process.
CheckRecord the color state in which the CDL was authored. The same file has a different visual meaning if the upstream pipeline changes.
- Load…
Loads a CDL. Blackmagic documents single `.cc` files and `.ccc` collections; loading a `.ccc` exposes an additional CCID so a specific entry can be selected.
CheckAfter loading, verify the SOP/Sat numbers and the picture, not only the filename. With `.ccc` collections it is easy to select the wrong ID.
- Reload
Rereads the current file source. This is useful in a VFX/DI round trip when a `.cc` file or `.ccc` entry has been updated outside Resolve.
CheckReload is not Reset. For a neutral transform, verify the values themselves: Slope=1, Offset=0, Power=1, Saturation=1.
- Export…
Exports the current CDL controls as a portable `.cc`, turning a manual Resolve adjustment into a compact technical hand-off for another CDL/OCIO-aware system.
CheckExport with context: shot/look identifier, version and expected input state. A `.cc` file does not describe the entire color-management pipeline.
02 · SOP CORE
Slope → Offset → Power: order matters more than wheel analogies.
- Slope · Red / Green / Blue
The first RGB multiplier. Blackmagic describes Slope as Gain-like in feel, but technically it is a coefficient inside the CDL formula. Separate channel values alter both level and color balance.
CheckWatch both waveform and RGB parade. Large channel differences can tint a neutral patch before Offset and Power even act.
- Offset · Red / Green / Blue
Adds an RGB offset after Slope and before the exponent stage. Blackmagic compares it with Exposure as an intuition aid, but CDL Offset is not mathematically identical to an arbitrary exposure control.
CheckDark values are especially sensitive to per-channel Offset. Inspect the black floor rather than judging the adjustment only from midtones.
- Power · Red / Green / Blue
The exponent stage applied to the Slope+Offset result. Blackmagic describes it as Gamma-like. Neutral is 1; different RGB values can alter midtone color transitions without a simple linear shift.
CheckDo not use Power to compensate for the wrong upstream color space. Restore the intended color state first, then judge the CDL.
03 · SATURATION / DIRECTION
Saturation completes the CDL; Direction decides whether it is applied or undone.
- Saturation
The global CDL saturation stage after SOP. Neutral is 1. Lower values pull chroma toward computed luminance; higher values increase channel distance from that luminance.
CheckSaturation=0 removes chroma differences and makes an exact Reverse fundamentally ambiguous. For round trips, avoid singular extremes.
- Forward
Applies the CDL in the authored direction: the current Slope/Offset/Power/Saturation values are interpreted as a correction from input to output. This is the normal mode for an incoming or newly authored CDL.
CheckRecord Direction before export or hand-off. Numbers without direction are an incomplete technical contract.
- Reverse
Attempts to invert the same CDL. It is useful for removing a known baked-in correction or testing a round trip, but Blackmagic explicitly warns that not every color correction is invertible.
CheckA zero Slope, zero Saturation, clipping, and other information-losing operations cannot be recovered by switching to Reverse.
04 · PIPELINE CONTEXT
A CDL transports numbers; pipeline placement gives them meaning.
- Input color state
A CDL is not a full declaration of input/output color space. Log, Linear, DaVinci Wide Gamut, ACES, or display-referred signals may respond very differently to the same SOP/Sat values.
CheckDocument the upstream transform and insertion point in a hand-off. If results do not match between applications, check the color state before blaming the CDL.
- Keyframes / reset controls
The Inspector exposes keyframe diamonds and reset controls for groups. A CDL is commonly exchanged as a static decision list, but Resolve can animate these values as OFX controls.
CheckAn animated version is no longer cleanly represented by a normal `.cc`. For inter-application hand-off, prefer static shot-level decisions.
03WHY ORDER MATTERS
Slope, Offset and Power are a chain—not three interchangeable knobs.
OpenColorIO describes the SOP stage as an ordered transform. Blackmagic offers familiar Gain/Exposure/Gamma analogies for intuition, but the math remains CDL math.
Multiply first
Per-channel scale changes what Offset and Power will receive. Neutral is 1/1/1; channel asymmetry is also a color decision.
Add before exponent
Offset moves the Slope result before Power. This is why dark values can react strongly to small channel differences.
Shape the response
Power applies the exponent stage. It is Gamma-like in feel, but not a universal substitute for a grading Gamma control in every working space.
Chroma after SOP
Saturation acts after SOP. At singular extremes it can discard chroma information, which is one reason Reverse cannot always reconstruct the input.
The hero lab deliberately uses simplified normalized math. Production negative handling, clipping style and color-space behavior belong to the actual OpenColorIO/Resolve implementation and configured pipeline.
04A REPEATABLE PIPELINE
The durable workflow starts before the CDL and ends after Export.
Most cross-application CDL problems are context problems. Make color state, values, direction and hand-off explicit instead of chasing the same look by eye.
Lock the color state
The same CDL numbers have different meaning on different encoded signals. Agree on the insertion point before judging the transform.
Teaching workflow, not a literal Blackmagic OFX graph. Durable order: color state → CDL values → SOP → Saturation/Direction → documented hand-off.
Related technical pages: OCIO Color Space ↗ · color management ↗
05BUILD THE HAND-OFF
Four exercises with observable acceptance checks.
Do not memorize “good CDL values.” Learn to preserve the same decision through file exchange, direction changes and different applications.
Ingest a CDL from VFX/DI
Verify the file and the conditions under which it is meant to be applied.
PrepareUse a shot with a known input state and the supplied `.cc` or `.ccc`.
- 01
Place OCIO CDL Transform at the agreed point in the node pipeline.
- 02
Load the file; for `.ccc`, select the correct CCID and Reload if needed.
- 03
Compare Slope/Offset/Power/Saturation against hand-off data and inspect scopes.
- 04
Toggle bypass and confirm the change matches the expected show/shot decision.
The CDL reproduces the expected correction at the intended pipeline point without an unexplained gamut or tone shift.
Author a portable primary correction
Build a compact shot-level grade that can be handed to another system.
PrepareStart neutral: Slope 1, Offset 0, Power 1, Saturation 1.
- 01
Adjust Slope and Offset first while watching waveform/RGB parade.
- 02
Use Power for midtone response rather than compensating for the wrong color space.
- 03
Finish with Saturation and verify neutral patches/skin.
- 04
Export a `.cc` and save context beside it: input state, shot ID, version.
Another CDL-aware system reproduces the look under the same conditions, and mismatches can be diagnosed from pipeline context rather than guessed.
Validate Forward ↔ Reverse
Determine whether a specific correction is practically invertible.
PrepareUse moderate non-zero Slope/Saturation values and material without already clipped channels.
- 01
Capture a reference frame before the effect.
- 02
Apply Forward and save the result as an intermediate reference.
- 03
On a copy, apply the same values in Reverse.
- 04
Compare difference/scopes and locate areas where clipping or singular values prevent a round trip.
You know what is actually reversible in your chain and do not treat Reverse as a guarantee of source restoration.
Build an inter-application hand-off
Validate Resolve ↔ another OCIO/CDL system without hidden assumptions.
PreparePrepare one `.cc`, one test frame, and a short record of the pipeline state.
- 01
Apply the CDL in Resolve and save a reference still.
- 02
Load the same `.cc` in another CDL/OCIO-aware tool.
- 03
Match the input color state before comparing.
- 04
Compare RGB values/scopes on several patches, not only visually on one display.
The mismatch either disappears after pipeline alignment or becomes a specific implementation/version difference.
06USE THE RIGHT COLOR TOOL
CDL is excellent at one narrow job—and that is its strength.
Choose the tool from what must be transported. A primary decision, a color-space conversion, a display/view transform and a complex look are different contracts.
Portable primary decision
Use for editable SOP/Saturation values that must travel between grading, VFX and finishing.
Color-space conversion
Use when the job is moving a signal between named OCIO color spaces. A CDL does not declare those spaces for you.
Display / View transform
Use to apply a configured display/view path. That is monitoring/output behavior, not a shot-level SOP/Sat decision.
More complex look
Use LUTs, curves or regular grading tools when the desired transformation cannot be represented by four CDL parameter groups.
07DIAGNOSE THE CONTRACT
When a CDL “does not match,” inspect context before touching the values.
Separate transform math, file selection and pipeline state. Otherwise every mismatch turns into an unnecessary re-grade.
01After Load the image looks nothing like the reference.
Likely cause: Most often the CDL values match but the input color state or insertion point does not.
Repair: Verify upstream CST/RCM/ACES state and node order before changing SOP/Sat.
02Reverse does not recover the original.
Likely cause: The correction lost information through clipping, near-zero Saturation, zero Slope, or other baked nonlinear processing.
Repair: Check values for invertibility and compare before any additional transforms.
03The same `.cc` looks different in another application.
Likely cause: Different input space, OCIO config/style, negative-value handling, or display/view path.
Repair: Match pipeline state first, then compare the CDL implementation.
04Shadows picked up a strong color cast.
Likely cause: Per-channel Offset is especially visible near the black floor; Slope and Power interactions may contribute.
Repair: Move Offset closer to neutral and inspect RGB parade before and after each SOP stage.
05The exported CDL does not carry the entire look.
Likely cause: ASC CDL carries SOP/Saturation, not LUTs, curves, qualifiers, windows, OFX, or the full color-management pipeline.
Repair: Treat the CDL as one technical part of the hand-off and document anything outside SOP/Sat separately.
08FAQ
Practical OCIO CDL Transform questions.
How is ASC CDL different from a LUT?
A CDL is a compact parametric primary correction made from Slope, Offset, Power and Saturation. A LUT can encode a much more complex transform but is not as directly editable as a small set of meaningful parameters.
Are Slope/Offset/Power just Gain/Exposure/Gamma?
Only as rough intuition. Blackmagic uses those analogies to describe the feel, but a CDL is a fixed sequence of mathematical stages whose result depends on the input color state.
What happens when loading a `.ccc`?
A `.ccc` is a collection of CDLs. Blackmagic documents an additional CCID after loading it, used to select the desired name or index; Reload rereads that selection.
Why may Reverse fail to recover perfectly?
Some values make the transform singular, while clipping and later operations destroy information. Reverse inverts the available CDL math; it cannot recreate data that no longer exists.
Where should OCIO CDL Transform sit in the node tree?
At the point for which the CDL was authored. This matters more than a universal “before/after CST” rule: if the hand-off expects scene-linear, log, or display-referred values, the transform must see that state.
09SOURCES & BOUNDARIES
Resolve labels come from native captures; transform semantics are cross-checked against Blackmagic and OpenColorIO documentation.
The interactive lab is an independent deterministic teaching model. It is not a reverse-engineered implementation of Blackmagic Resolve FX or OpenColorIO and does not claim production parameter ranges, negative-value behavior, or exact clamp style.