Free Archive Desktop (.XMP) & Mobile (.DNG) formats · Instant download · No sign-up required
MonoLUTs Logo
COLOR MATHEMATICS & 3D MESHES
COLOR MATHEMATICS & 3D MESHES

LUT Interpolation: Tetrahedral vs Trilinear & Why LUTs Cause Color Banding

Ever wondered why applying a 3D LUT to a smooth sunset gradient creates harsh, stair-stepped color banding? The culprit isn't always 8-bit footage—it's often the mathematical interpolation algorithm inside your NLE. Discover why Tetrahedral interpolation is the colorist's secret weapon.

M
MonoLUTs Color Science Lab
• 3D .CUBE Lattice Geometry • Tetrahedral 6-Polytope vs Trilinear
Interactive Slider Drag to compare
LUT Interpolation: Tetrahedral vs Trilinear & Why LUTs Cause Color Banding Master Graded
LUT Interpolation: Tetrahedral vs Trilinear & Why LUTs Cause Color Banding Raw / Unprocessed
TRILINEAR INTERPOLATION BANDING
TETRAHEDRAL 32-BIT CONTINUOUS GRADIENT

Figure: Compare severe stair-step contour banding caused by trilinear interpolation against smooth continuous tetrahedral subdivision.

Inside the 3D Cube: How Lookup Tables Store Color

A 3D Lookup Table (.CUBE) is not a simple filter or preset—it is a three-dimensional coordinate mesh representing an entire color volume. The Red, Green, and Blue axes define a geometric cube. At each node intersection of the grid, a target RGB coordinate is stored. When your video plays, the color engine looks up the incoming pixel's coordinates and remaps them to the output coordinates.

Because storing every single 10-bit color would create a multi-gigabyte file, standard production LUTs use a 33x33x33 lattice (35,937 sample points) or a 65x65x65 lattice (274,625 sample points). For the millions of colors falling between these points, the software must perform mathematical interpolation.

Trilinear Interpolation: The Rectangular Prism Failure

Trilinear interpolation is the default algorithm in many legacy software packages because it is computationally lightweight. It evaluates the eight corner vertices of the sub-cube enclosing the target color and calculates linear weights along each axis sequentially.

However, trilinear math assumes orthogonal independence. In real-world cinematography, color transitions rarely follow straight XYZ Cartesian lines; gradients move diagonally across hue, saturation, and luminance simultaneously. Along these diagonals, trilinear math produces sharp derivative discontinuities. On screens with wide gamut displays, these mathematical sharp edges appear as visible, stair-stepped color banding stripes.

How to Enable Tetrahedral Interpolation in DaVinci Resolve

Open Project Settings → Color Management. Scroll down to Lookup Tables, find 3D Lookup Table Interpolation, and switch it from Trilinear to Tetrahedral. This instantly eliminates gradient tearing on all applied LUTs with zero performance penalty on modern GPUs.

Lattice Density vs Memory & Precision Comparison

Mathematical breakdown of 3D LUT grid sizes and memory overhead:

Grid DensitySample PointsFile Size (.CUBE)Interpolation RequirementBest Use Case
17x17x174,913 points~150 KBSevere interpolation neededReal-time on-camera EVF monitors
33x33x33 (Industry Standard)35,937 points~1.1 MBTetrahedral recommendedCommercial color grading, Web, TV
65x65x65 (Master Calibration)274,625 points~8.6 MBMinimal interpolation neededHardware monitor calibration, DCI-P3 Print
128x128x1282,097,152 points~68 MBVirtually zero interpolationMathematical research & offline renders

The Tetrahedral Solution: Six Simplices in 3D Space

Tetrahedral interpolation solves the diagonal discontinuity problem through computational geometry. Instead of treating the sub-cube as a box, it subdivides the eight-vertex cube into six distinct four-vertex tetrahedra along the main diagonal (where R = G = B). It identifies exactly which tetrahedron contains the incoming pixel and calculates barycentric coordinates using four weights instead of eight.

Because tetrahedra have planar triangular faces that share continuous boundaries with adjoining tetrahedra, the mathematical gradient is continuous and smooth. Sky transitions, skin-tone roll-offs, and soft lens flares retain pristine 32-bit floating point graduation.

NLE Support: Premiere Pro, Final Cut, and DaVinci Resolve

While DaVinci Resolve Studio defaults to or easily toggles Tetrahedral interpolation, other NLEs vary. Adobe Premiere Pro's Lumetri engine historically used trilinear interpolation, which is why colorists often noticed banding in Premiere that didn't exist in Resolve. Modern versions of Premiere now utilize higher-order interpolation in 32-bit float mode, provided 'Max Bit Depth' and 'Max Render Quality' are checked in export settings.

Frequently Asked Questions

Why does a 33x33x33 LUT require interpolation?

A standard 10-bit video image contains 1,073,741,824 distinct RGB colors. A 33x33x33 3D LUT contains only 35,937 discrete calibration points. The color grading software must mathematically interpolate (estimate) the color values of the 1+ billion missing points that fall in between the grid coordinates.

How does Tetrahedral interpolation eliminate banding compared to Trilinear?

Trilinear interpolation breaks the cube into rectangular sub-prisms, calculating weighted averages along the X, Y, and Z axes independently. This introduces discontinuities along diagonals. Tetrahedral interpolation subdivides each sub-cube into six 4-vertex simplices (tetrahedra) with planar boundaries, ensuring continuous C0 and C1 gradient continuity across the entire color space.

Is a 65x65x65 LUT always better than a 33x33x33 LUT?

A 65-point LUT contains 274,625 points, offering four times higher lattice density. While superior for extreme technical transforms (like steep camera Log to Linear matrix conversions), 65-point LUTs consume significant GPU VRAM and can cause playback stuttering on older hardware. With tetrahedral interpolation enabled, high-quality 33-point LUTs achieve indistinguishable mathematical smoothness.

Uncompressed 33-Point Matrices

Download 33-Point Master Matrix LUTs

Every MonoLUTs .CUBE is generated from uncompressed 32-bit float laboratory curves, verified with zero tetrahedral artifacts.