Resolve FX · Color · DCTLStudio

DCTL in DaVinci Resolve 21

DCTL is not one fixed colour effect. It is a Resolve FX host for custom DaVinci Color Transform Language code. The selected script can be a technical colour transform, creative look, gamut tool, diagnostic utility or another pixel operation — so the real behaviour is defined by the DCTL you load.

The panel in the screenshot is intentionally minimal: NONE means no script has been selected yet. DCTL-specific controls appear only when the chosen script defines them. This is why DCTL must be documented as a programmable host, not as a normal effect with one permanent set of sliders.

What DCTL actually is

A programmable transform host, not one permanent image effect

The DCTL Resolve FX provides the host and final Blend control. The actual maths, expected colour space, optional UI and purpose come from the selected DCTL/DCTLE. Two tools loaded through the same DCTL panel can therefore behave completely differently.

Executable transform logic

Unlike a fixed lookup table, DCTL can calculate output values with code and can expose user controls when the author defines them.

Colour transforms and looks

DCTL is commonly used for colour-space maths, tone/gamut shaping, film-style tools and other colour operations.

Diagnostics and utilities

A DCTL can also visualise clipping, false colour, gamut limits or other analytical information rather than create a final look.

Pipeline-dependent

The same code can be correct in one signal state and wrong in another. Input/output assumptions matter as much as the visible slider values.

Inspector controls

The small host panel hides a very flexible system

With NONE selected the panel contains almost nothing because there is no DCTL-specific interface to show. Once a script is loaded, Resolve can expose whatever supported controls that script defines.

Installed transform/script selector

DCTL

The DCTL field selects the specific DCTL file executed by this Resolve FX. NONE means no custom transform is selected: the DCTL FX shell may remain on the node, but no useful transform from DCTL code is being applied. After a script is selected, the panel can expose additional sliders, checkboxes, combo boxes or other controls defined by that particular DCTL author.

  • NONE — no DCTL code is selected
  • The list is populated by installed DCTL/DCTLE files
  • Controls below depend on the selected script
The DCTL defines its own UI

Script-defined controls

DCTL has no universal fixed parameter set comparable to Contrast Pop. One script may be a technical colour-space transform with no user controls, another a film-look tool with exposure, contrast and gamut controls, and another a diagnostic false-colour or gamut checker. After choosing a DCTL, follow the documentation for that specific tool rather than carrying settings over from another script.

  • A DCTL may expose no additional UI at all
  • Control names and ranges are defined by the code
  • Colour-space assumptions are script-specific too
Final result mix

Global Blend

Blend mixes the selected DCTL result with the node's original state. A value of 1.000 gives the full DCTL result; lower values reduce it. Blend cannot repair a wrong input colour space, bad node order or an unsuitable DCTL — it is only the final mix of an already computed result.

  • 1.000 — full output of the selected DCTL
  • Useful for creative tools, but not always appropriate for technical transforms
  • Fix the pipeline first, then use Blend

DCTL vs LUT

Both can transform colour, but they are not the same mechanism

DCTL

Executable code can calculate transforms, branch on conditions, expose controls and implement operations that do not fit naturally into a finite 3D lookup table. Open .dctl source can be inspected and edited; encrypted .dctle protects the author's code.

LUT

A LUT stores precomputed input-to-output mappings and interpolates between table points. It can be excellent for a known colour transform or look, but it does not provide the same programmable logic or script-defined UI model as DCTL.

Production workflow

A safe six-step workflow for an unfamiliar DCTL

The key is to treat the script as a signal-processing contract. Do not assume its colour space, range, purpose or mixing behaviour from the filename alone.

01

Know what the DCTL is designed to do

Do not treat every .dctl as a generic look. Establish whether it is a technical transform, creative look, utility, diagnostic overlay or another pixel operation, and read its expected input/output conditions.

02

Place it at the correct signal stage

A DCTL written for DaVinci Wide Gamut/Intermediate should not be casually placed after a Rec.709 output transform, and a display-referred tool should not automatically be moved into scene-referred space. Node placement follows the script contract.

03

Select the DCTL and inspect its UI

Choose the tool in the DCTL dropdown. If additional controls appear, reset or document defaults first. The host panel is only a container; the selected script defines the actual operation and controls.

04

Validate against the expected signal

Use the appropriate scopes and known reference images. For a technical transform, verify neutrals, primaries, clipping and gamut behaviour; for a creative tool, compare bypass and ensure it is not breaking the technical pipeline.

05

Test the whole shot, not one frame

Custom code can react strongly to out-of-range values, highlights, noise or unusual channel combinations. Scrub the clip and test difficult frames, not just the hero frame on which the look was tuned.

06

Use Blend only when mixing is semantically valid

Creative DCTLs can often be mixed down safely. A technical conversion is different: partially blending a transform with its input may create a signal that belongs to neither colour space. Follow the script's documentation rather than using Blend automatically.

Common failures

Most DCTL failures are pipeline failures, not a mysterious bad slider

01

The DCTL is fed the wrong colour space

A tool authored for DWG/Intermediate may produce extreme saturation, contrast or clipping when fed Rec.709, camera log or another state. Verify the script contract before touching Blend.

02

A technical transform is partially blended

Mixing only part of a colour-space conversion can create an undefined intermediate signal. Global Blend is not automatically a creative intensity slider for every DCTL.

03

The script is duplicated elsewhere

A DCTL that already includes an input/output transform can be doubled by RCM, ACES, CST or a LUT. Trace the node tree and project colour management before judging the DCTL itself.

04

NONE is mistaken for a broken DCTL

If the dropdown still reads NONE, no custom script has been selected. Install or refresh the DCTL list, then choose the intended tool before expecting script-specific parameters or image changes.

Code as part of the colour pipeline

DCTL: the signal-level model

DCTL cannot be described by one fixed algorithm because the DCTL Resolve FX is a host for custom DaVinci Color Transform Language code. NONE means that no transform is selected; once a DCTL is chosen, the node behaviour is defined by that script, from colour-space conversion and tone/gamut shaping to creative looks or diagnostic overlays.

The key DCTL contract is not the filename but the expected signal state. A script may be authored for DaVinci Wide Gamut/Intermediate, camera log, Rec.709 display space or another specific input; its output may be a working space, display space or merely a diagnostic view. Correct node placement therefore comes from that DCTL's documentation, not from the fact that it is a DCTL FX.
Global Blend is not a universal intensity control. Partial mixing is often valid for a creative DCTL, but blending a technical colour-space transform at 0.5 can create a signal that belongs cleanly to neither the input nor output space. Determine the script semantics before deciding whether mixing is valid.

Use it when

  • custom technical colour transforms and gamut/tone operations not available as native controls
  • creative look tools with their own maths and script-defined parameters
  • diagnostic utilities such as false colour, clipping/gamut visualisation and other analysis tools

Choose another tool when

  • the task is fully covered by native CST/ACES/Primaries and DCTL would only reduce project portability
  • you do not know a third-party DCTL's input/output assumptions and are trying to place it in the pipeline purely by eye

Control → signal meaning → verification

LayerWhat it meansHow to verify
DCTL selectorSelects an installed .dctl/.dctle. NONE means no custom code is selected and no script-specific transform is being executed.If the intended tool is absent, check the LUT folder, Update Lists/refresh and that particular file's compatibility.
Script-defined UIAdditional sliders, checkboxes and menus exist only if the selected DCTL declares them; there is no universal control set.Verify defaults, ranges and units against the author's documentation rather than another DCTL.
Input signal stateThe colour space, gamma/transfer, range and other assumptions for which the script maths was authored.Trace upstream RCM/ACES/CST/LUT stages and confirm that the node receives the expected signal.
Output semanticsThe result may remain in the working space, move to another space, become display-referred or represent a diagnostic view.Downstream nodes must expect that exact output; a diagnostic DCTL normally should not remain in the final render chain.
Global BlendMixes the DCTL output with the node's original state after the script has been evaluated.Use it only when partial mixing is semantically valid; do not automatically reduce Blend on a technical conversion.
.dctl / .dctle.dctl is readable source; .dctle is an encrypted form that hides the source code. Both can appear to the user as selectable DCTL tools.Do not infer the signal contract from whether the source is open or encrypted; that is a distribution choice, not the transform's purpose.

Production workflow

  1. 01Read the DCTL documentation and record its expected input, output and purpose: technical, creative or diagnostic.
  2. 02Install the file using the folder Resolve opens from Project Settings → Color Management → Lookup Tables → Open LUT Folder, then refresh the lists.
  3. 03Create a dedicated node at the pipeline position where the signal state matches the script requirements.
  4. 04Select the DCTL in the dropdown; if custom controls appear, start from defaults and change one parameter at a time.
  5. 05Validate scopes, known references, clipping/gamut and difficult frames across the whole clip; compare bypass.
  6. 06Only then decide whether Global Blend is appropriate; for a technical transform, keep the full correct transform unless the documentation says otherwise.

Diagnostics: symptom → cause → fix

The image becomes extremely saturated, contrasty or shifts to strange hues

Likely cause: The DCTL is receiving the wrong gamut/gamma/range for which it was authored.

Fix: Check the upstream transform chain and the author's expected input; do not compensate for the mismatch with Primaries or Blend.

The required DCTL is missing from the list

Likely cause: The file is not in the active LUT folder, the list has not been refreshed, or the file/version is incompatible.

Fix: Open the LUT folder from Resolve, place the file there, run Update Lists/refresh and restart Resolve if needed.

The image looks double-transformed after DCTL and CST/RCM

Likely cause: The DCTL already includes part of the input/output conversion that the pipeline applies again.

Fix: Determine the DCTL's exact input/output semantics and keep each transform only once in the chain.

Blend 0.5 produces a dirty or technically incoherent result

Likely cause: A colour-space/tone transform that should be applied as a complete operation is being partially mixed.

Fix: Return Blend to 1.000 and control the look downstream; reduce Blend only when that specific DCTL is designed for creative mixing.

Node placement

DCTL has no universal node-tree position. A technical input transform may belong near the start, a working-space look in the middle, a display-referred output/utility near the end, while a diagnostic overlay may be enabled only temporarily. The single rule is that the signal entering the node must match the code's expectations.

Scopes / validation

For technical DCTLs use Waveform/RGB Parade/Vectorscope and, where appropriate, CIE Chromaticity together with known test/reference images. Judge creative DCTLs perceptually with bypass as well, and verify diagnostic DCTL thresholds/false-colour conditions against their documented scale.

Managed-pipeline warning

RCM/ACES do not make a DCTL automatically correct or incorrect. In a managed project you must know where input mapping, timeline working-space processing and output mapping occur. Place the DCTL relative to those stages according to its input/output assumptions, otherwise you can create a duplicate transform or process in the wrong space.

Do not confuse the roles

DCTL versus the neighbouring Color FX

Color Space Transform

explicit conversion between colour-space/gamma descriptions, including tone/gamut mapping

Open guide
ACES Transform

node-level input/output through the standardised ACES transform set

Open guide
Chromatic Adaptation

conversion between white points / illuminants through a CAT model

Open guide
Color Compressor

compressing hue/saturation/luminance variation around a selected Target Color

Open guide
Color Stabilizer

temporal matching of unwanted brightness/white-balance drift around a chosen reference and analysis region

Open guide
Contrast Pop

selective increase or reduction of local contrast at a chosen structure scale and within a controlled tonal range

Open guide
Dehaze

depth-weighted reduction of smog/airlight/haze through a simulated depth matte and coupled colour/contrast correction

Open guide
Despill

suppression of reflected red/green/blue screen spill after the subject has already been isolated by key/matte/roto

Open guide
False Color

spatial display of exposure zones through camera-matched or creative false-colour mapping and a legend

Open guide
Gamut Limiter

final hard-clipping of chromaticities to a specified delivery/QC gamut boundary

Open guide
Gamut Mapping

tone/gamut remapping through luminance roll-off, saturation compression/clip and OOTF without a separate input/output colour-space conversion

Open guide
Invert Color

simple independent inversion of Red/Green/Blue/Alpha channels for creative and technical channel/key operations

Open guide
NVIDIA RTX Video HDR

AI-assisted SDR→HDR mapping with an explicit input/output signal contract, Middle Gray, target peak luminance and creative shaping

Open guide
Camera Shake

procedural Pan/Tilt/Rotation/Zoom motion with waveform, randomness, pauses and blanking handling

Open guide
ColorTone Diffuser

creative optical-look effect combining spatial diffusion, coloured Tone Lights, tonal protection, a falloff mask and a LUT-compatible subset

Open guide
Film Damage

procedural texture/look effect combining blur/colour drift, vignette, changing dirt and up to five scratches with motion/flicker

Open guide
Film Grain

procedural film-style texture with gauge presets, grain geometry, composite modes, tonal/RGB weighting and final mix

Open guide
Film Look Creator

integrated scene-referred film-emulation environment combining a baked-in Blackmagic film response, colour shaping, halation/bloom/grain/flicker/gate weave and a LUT-compatible subset

Open guide
Flicker Addition

dedicated temporal exposure modulation with tonal flicker modes, RGB selection, smoothness, randomness, pauses and a deterministic seed

Open guide
Halation

film-style highlight scatter using an isolation matte, chromatic dye-layer reflections, secondary glow and optional grain

Open guide
Split Tone

creative shadow/highlight colour separation through Natural/Strong/Custom modes, Pivot, Hue Angle, neutral protection and colour-space overrides

Open guide
Vignette

edge framing and visual-attention control through Basic/Advanced geometry, position, colour and compositing

Open guide
Color Generator

solid-colour generation for Layer Mixer, masks, fills and simple colour washes

Open guide

FAQ

Practical questions about DCTL in Resolve

What does DCTL stand for?

DCTL is DaVinci Color Transform Language. In practical Resolve use it is a way to run custom colour/image-processing code as part of the grading pipeline.

Why does my DCTL panel only show NONE and Blend?

That is the host shell before a script is selected. NONE means no DCTL transform is active. Once Resolve sees installed DCTL/DCTLE files and you select one, script-defined controls may appear if that tool provides them.

Is a DCTL the same as a LUT?

No. A LUT is fundamentally a lookup table of precomputed mappings, while a DCTL is executable transform code and can implement mathematical operations, conditions and optional UI controls. Both can be used for colour transforms, but their capabilities and behaviour are different.

What is the difference between .dctl and .dctle?

.dctl is readable/editable source text. .dctle is an encrypted DCTL form used when the author wants to distribute the transform without exposing the source code. Resolve can use both when they are installed in the proper location.

Where do I install DCTL files?

The version-safe method is to let Resolve open its own LUT folder: Project Settings → Color Management → Lookup Tables → Open LUT Folder. Copy the DCTL/DCTLE there or into a subfolder, then refresh the lists or restart Resolve if necessary.

Where should a DCTL sit in the node tree?

There is no universal position. A scene-referred transform, a display-referred look and a diagnostic overlay can require completely different placement. The correct position is defined by the DCTL's expected input and output signal state.