VIDEOMONTAZHERDAVINCI RESOLVE · VIDEO · AI

FUSION · NODE REFERENCE

CustomFilter

Programmable convolution matrix

CustomFilter applies a user-authored 3x3, 5x5 or 7x7 convolution kernel to selected RGBA channels for blur, sharpen, emboss, relief, edge detection and other neighborhood filters.

Filter NodesAdvanced

CustomFilter

Overview

What CustomFilter does

CustomFilter is Fusion's classic 2D convolution processor. Unlike the Filter node, which exposes predefined filter families, CustomFilter exposes the kernel itself so the neighborhood operation can be authored directly.

Input is a normal orange 2D RGBA image and Output remains a normal 2D image. The optional blue Effect Mask only limits the contribution of the computed filter; it is not a second image source and does not supply kernel weights.

A convolution kernel can be pictured as a small window that slides across the image. The center matrix cell represents the current pixel, surrounding cells represent neighboring samples, and each integer coefficient defines that sample's contribution to the result.

Matrix Size selects a 3x3, 5x5 or 7x7 working kernel. The Inspector always displays a 7x7 grid, but smaller modes activate only the centered 9 or 25 cells.

A 3x3 kernel uses the current pixel plus its eight nearest neighbors. Larger 5x5 and 7x7 kernels reach farther spatially, cost more to render, and can produce wider halos or ringing on strong edges.

A coefficient of 1 contributes the full sample, 0 ignores it, values greater than 1 amplify it, and negative values subtract the sample. The current Blackmagic documentation explicitly describes the matrix fields as integer-only; fractional 0.x entries are not valid kernel values.

A 3x3 identity kernel places 1 in the center and 0 everywhere else. It is the best baseline test because neighboring pixels have no influence and the image should remain unchanged apart from any separate masking/common-control behavior.

A 3x3 matrix filled with 1 values produces a simple averaging blur when the result is kept at the documented normalized baseline. This makes it a useful training example for Matrix Size and Normalize.

Directional positive and negative weights respond to local differences and can create edge, emboss and relief effects. CustomFilter therefore has no single artistic meaning: the coefficient pattern defines the algorithm.

The Red, Green, Blue and Alpha buttons in Controls are pre-processing channel switches specific to CustomFilter. Blackmagic distinguishes them from the RGBA switches in Common Controls, which are applied after node processing.

Disabling a Controls-tab channel causes CustomFilter to skip that channel's filtering work. This can be both semantically important and cheaper than processing channels that do not need modification.

Alpha deserves special attention. Convolving alpha can soften, sharpen or create unusual coverage values. For a normal RGB sharpening task, compare Alpha off before deciding that the matte should be filtered too.

Update Lock is not a frame freeze or cache. While enabled, Fusion does not render CustomFilter, which is useful while filling many 5x5 or 7x7 cells. Turn it off after editing to see the actual kernel result.

If Update Lock is accidentally left on, the Viewer can continue showing the previous state and make a correct matrix appear ineffective.

Normalize is a slider, not an on/off normalization checkbox. The documented baseline is 0 for a normalized image; positive values raise/brighten the filtered result and negative values lower/darken it.

For that reason, describing Normalize merely as clipping protection is incorrect. It deliberately changes result level and should be judged together with scopes and floating-point range where relevant.

Floor Level adds or subtracts a base offset from the filtered result. Zero adds nothing, positive values raise the result, and negative values subtract from it.

Floor Level is particularly useful with positive/negative edge or relief kernels whose response clusters around zero and may be difficult to inspect directly on a conventional display.

Normalize and Floor Level solve different problems. Normalize changes the normalization/result level; Floor Level adds an offset. Do not tune both at once when diagnosing brightness shifts.

Custom convolution must be judged beyond a pleasing still frame. Sharpen and edge kernels can amplify sensor noise, compression blocks, ringing and fine texture, so inspect around 100 percent and play motion.

Larger Matrix Size means a wider neighborhood and usually higher cost, not automatically better quality. A compact 3x3 kernel is often the more controlled choice for local sharpening.

Symmetric kernels tend to produce non-directional behavior while asymmetric weights create directionality. If emboss responds from the wrong side, inspect coefficient placement around the center before rotating the entire downstream image.

A kernel whose coefficients sum near zero is common for edge/high-pass work and can produce dark, negative or out-of-display-range values. That may be correct for a technical pass and should not be mistaken for a broken filter.

A kernel with a very large positive sum can raise image level dramatically. Inspect the coefficients and Normalize before hiding the issue with a downstream Brightness/ColorCorrector node.

The optional Effect Mask is applied as a spatial gate after filter processing. It does not change Matrix Size, coefficients or sampling radius.

Effect Mask is not a per-pixel kernel map. White and gray mask values control contribution of the already processed result rather than rewriting individual matrix weights.

When a sharpening kernel is masked locally, inspect the mask boundary as a separate problem. A hard mask can expose a seam between filtered and unfiltered regions, so feathering should be chosen deliberately.

Convolution depends on neighboring pixels, so frame edges deserve dedicated inspection. Behavior near a boundary can differ from the center and should not be inferred from a central test patch alone.

Blackmagic also documents supplied custom filter settings in the Filters directory, loadable through Settings > Load from the contextual menu. A loaded setting is still just a concrete matrix/control configuration and should be audited as such.

CustomFilter and CustomTool serve different levels of flexibility. CustomFilter is efficient and readable for a fixed local convolution; CustomTool supports arbitrary expressions and multiple image inputs but is more complex to author and maintain.

For production reuse, save useful kernels with Matrix Size, RGBA state, Normalize and Floor Level documented together. Matrix numbers alone do not fully describe the result.

With premultiplied RGBA, inspect semi-transparent boundaries separately. Aggressive RGB filtering may expose premultiplication issues that belong to a wider pre-divide/post-multiply workflow rather than to the kernel itself.

Serialized matrix-cell names should not be guessed from their visual position. Before scripting, export a minimal .setting or .comp on the target Resolve build and confirm the actual internal IDs.

The bundled captures define the current Controls UI boundary for this page: RGBA switches, Matrix Size 3x3/5x5/7x7, Update Lock, the 7x7 grid, Normalize and Floor level. Generic Settings/Common Controls are not presented as CustomFilter-specific controls.

A reliable diagnostic order is identity kernel first, then RGBA selection, Matrix Size and coefficients, then Normalize, then Floor Level, and finally Effect Mask/downstream blending. This keeps cause and effect legible.

When to use it

  • Author a custom 3x3 sharpening kernel.

  • Build an averaging blur from equal positive weights.

  • Create directional edge, emboss or relief responses.

  • Generate a technical high-pass/edge branch for later processing.

  • Filter RGB while preserving the original alpha channel.

  • Localize a custom filter with an Effect Mask.

  • Experiment with wider 5x5 and 7x7 neighborhoods.

  • Store repeatable production kernels as Settings.