CAMCAM← Guide

LUT versus shader: what each can actually do

Both are ways of transforming an image, and they are often talked about as alternatives when they solve different halves of the problem. A LUT handles colour. A shader handles everything that is not colour — and in practice a convincing film look needs both.

What a LUT is

A lookup table is exactly that: a table that says which output colour every input colour becomes. A 3D LUT samples the colour cube at intervals — 33 points per axis is common — and interpolates between them. This makes it extremely fast, perfectly consistent, and portable between applications, which is why it is the standard way to move a colour grade between tools and why every editing package supports them. If the transformation you want is purely a mapping from colour to colour, a LUT is the right tool.

What a LUT cannot do, by definition

Because the table maps colour to colour, it has no knowledge of position. It cannot know that a pixel sits next to a bright light, so it cannot produce halation. It cannot add grain, because grain must differ from pixel to pixel while a LUT gives identical input the identical output every time. It cannot vary with brightness in a spatial way, so no vignetting, no bloom, no diffusion. Every one of those is a spatial effect, and spatial effects are exactly what a lookup table is unable to express.

What a shader adds

A shader is a small program run per pixel on the GPU, and it can see where the pixel is, sample its neighbours, and use randomness. That is what makes grain, halation, bloom, diffusion, vignetting and edge softening possible in real time. It can also apply the colour transform itself, either as maths or by sampling a LUT texture — which is the common arrangement: the LUT supplies the colour identity, and the surrounding shader code supplies the structure and the optics.

Which to use for what

If you are grading a finished video in an editor, a LUT plus separate grain and glow effects is the standard workflow and it works. If you want the look live in a camera preview, it has to be a shader, because the whole transformation must run inside a frame's worth of time on the device. And if you are building a look to distribute, remember that a LUT travels anywhere while a shader is tied to a platform — which is precisely why looks are shared as LUTs and experienced as shaders.

Film stock names in this guide refer to real photographic products for reference only. CAMCAM is not affiliated with, endorsed by or licensed from any film manufacturer; the looks are original interpretations, not reproductions.

Frequently asked questions

Can I just use a LUT and add grain separately?

Yes, and in a video editor that is the normal approach. The reason apps do it in one shader is speed and preview accuracy: separating the steps means several passes over the image, which is fine offline and expensive at thirty frames per second.

Do LUTs lose quality?

They can, in two ways. A coarse table with too few sample points causes banding in smooth gradients, and applying a LUT to already-clipped footage cannot recover what is gone. Applied to well-exposed footage at a reasonable resolution, the loss is not visible.

Why do the same LUTs look different in different apps?

Because of what happens around them: the colour space the app works in, whether the LUT is applied before or after tone mapping, and whether the app applies its own contrast on top. A LUT is only as predictable as the pipeline it sits in.

Can I export CAMCAM's looks as my own LUT?

No — CAMCAM's looks are a shader with grain, halation and per-pixel randomness built in, well beyond a pure colour mapping. A LUT could only ever capture the colour part, never the structural part.

See it on your own camera. CAMCAM runs the film simulation as a live shader on your phone's camera. Nothing is uploaded — the look is computed on the device, frame by frame.

Open CAMCAM Get it on Google Play
Language: TR EN DE ES FR IT PT AR RU JA KO