{"course":{"slug":"motion-and-audio","title":"Motion, Sound and Music","url":"https://addaly.com/learn/motion-and-audio","level":"intermediate","track":"create"},"lesson":{"slug":"blend-modes-are-arithmetic","title":"Every blend mode is one line of arithmetic","url":"https://addaly.com/learn/motion-and-audio/blend-modes-are-arithmetic","position":30,"of":72,"minutes":9,"answer":"Multiply can only darken and drops white, Screen can only lighten and drops black, Add is physically correct for light and clips in 8-bit, and Difference is a measuring instrument rather than a look.","keyIdea":"Multiply can only darken and drops white, Screen can only lighten and drops black, Add is physically correct for light and clips in 8-bit, and Difference is a measuring instrument rather than a look, which is why stock light elements are filmed on black and fail over a bright sky."},"body":{"format":"markdown","text":"## Every blend mode is a one-line formula\n\nThe blend mode dropdown has thirty entries with names like Overlay, Soft Light, Linear Burn and Pin Light, and it invites you to try them all until something looks nice. That is a slow way to work and it does not transfer between projects.\n\nThere are about six that matter, each is one line of arithmetic on values between 0 and 1, and knowing the line tells you exactly when the mode will work.\n\n## The six\n\n**Multiply.** `result = a × b`\n\nAnything times 1 stays the same; anything times 0 goes black. So white becomes invisible and black stays black. This is the mode for **shadows**, for **ink on paper**, for anything that removes light. A scanned pencil drawing on white paper multiplied over a photograph puts the pencil lines on the photograph and drops the paper. Multiply can only darken.\n\n**Screen.** `result = 1 − (1 − a) × (1 − b)`\n\nThe inverse of multiply, applied to the inverted values. Black becomes invisible and white stays white. This is the mode for **light**: fire, sparks, lens flares, smoke shot against black, light leaks, any stock element filmed on a black background. Screen can only lighten, and it never clips, because the result approaches 1 asymptotically.\n\n**Add** (Linear Dodge). `result = a + b`\n\nPhysically the correct model for two light sources in the same place, which is why render engines use it. It clips: `0.7 + 0.6 = 1.3`, and in an 8-bit pipeline that becomes 1.0 and the detail is lost. In a float pipeline it does not clip and holds the value, which is one of the practical reasons to work in float. Use Add for genuine light emission; use Screen when you want a similar look that behaves politely at the top end.\n\n**Difference.** `result = |a − b|`\n\nWhere the two images are identical, the result is black. This is almost useless as a look and invaluable as a tool: put two versions of a shot on top of each other in Difference and any area that is not pure black is a place they differ. It is how you verify an export matches its source, how you find the frame where a track slips, and how you check whether a \"lossless\" round-trip was.\n\n**Overlay** and **Soft Light.** Both apply Multiply where the base is dark and Screen where the base is light, with different roll-offs. They increase contrast while roughly preserving the midpoint. Useful for texture and grade layers, and both are *base-dependent*, which is why swapping the layer order changes the result and why they are unpredictable over a grade you are still adjusting.\n\n## What this tells you about stock elements\n\nMost of the smoke, fire, dust, rain and flare footage sold as \"stock elements\" is filmed against black and intended for Screen. That is not a style choice; it is because Screen with a black background is mathematically identical to an over-composite with a perfect matte, for light-emitting subjects.\n\nThe same logic tells you when it will fail. Screen a fire element over a bright sky and the fire nearly disappears, because `1 − (1 − 0.9)(1 − 0.8)` is 0.98: barely brighter than the sky already was. Light elements only read against darker backgrounds. If you need fire over a bright background you need a real matte, not a blend mode.\n\n## Blend modes are not a substitute for a matte\n\nThis is the useful boundary. A blend mode makes a decision per pixel based on *value*; a matte makes it based on a decision you control. Screen removes black. It does not remove \"the background\", and it will happily remove the dark parts of your subject too.\n\nThe test: if the thing you want to remove is black or white, a blend mode is free and exact. If it is a colour, or a value that also appears inside your subject, you need a matte.\n\n## The one that changes with colour space\n\nBlend modes operate on encoded values, so the same Multiply gives a different result on linear data than on sRGB-encoded data. In a linear-light pipeline, Multiply by 0.5 halves the actual light and looks like a one-stop reduction. On sRGB-encoded values, multiplying by 0.5 is a much larger perceptual change, because the encoding is non-linear.\n\nThis is why a grade that looked right in one application looks wrong when the project is moved into a linear workflow, and why compositing applications are explicit about their working space in a way that design applications are not. Photoshop's default is not linear. Nuke's, Fusion's and Blender's are.\n\n## The free path\n\nEvery application named here has the full set. **Blender**'s Mix node exposes each mode by name and you can build any of them from Math nodes if you want to see the arithmetic directly. **Fusion** in the free DaVinci Resolve, **GIMP**, **Krita** and **Photopea** all implement the standard set. The formulas are also published in the W3C compositing specification, which is free to read and is the reason browsers, design tools and compositors agree on what \"overlay\" means.\n\n## The limitation\n\nBlend modes are per-pixel and context-free. They cannot know that a pixel belongs to your subject rather than the background, they cannot respect an edge, and they have no notion of depth. Everything they do well, they do because the imagery was prepared to suit them: filmed on black, or drawn on white.\n\nThere is also no standard for how they behave outside the 0 to 1 range, which is where high-dynamic-range work lives. Two applications can implement the same named mode and diverge on a pixel at 4.0, which is a real source of \"it looked different in the other program\" that no amount of matching settings will resolve."},"check":{"question":"A fire element filmed on black looks convincing screened over a night street and almost vanishes when screened over a bright daytime sky. What does the formula tell you?","options":[{"text":"Screen normalises by the background's average luminance, so a bright background scales the foreground contribution down proportionally.","correct":false,"tempting":"Invents a normalisation step; Screen is a fixed per-pixel formula with no reference to the frame's average."},{"text":"The fire element was filmed with a black point above zero, so over a bright background the residual black lifts the sky and the encoder discards the difference.","correct":false,"tempting":"A raised black point causes a visible grey wash over dark backgrounds, which is the opposite of the symptom described."},{"text":"Screening a bright value over an already bright background can only move it a little closer to one, so the visible change is small.","correct":true},{"text":"Screen is a base-dependent mode like Overlay, applying Multiply where the background is light and Screen where it is dark, so over a bright sky the fire is being multiplied into it and the dark parts of the flame are being preserved rather than dropped.","correct":false,"tempting":"Confuses Screen with the base-dependent contrast modes; Screen applies the same formula regardless of the background's value."}]},"prev":{"slug":"alpha-and-premultiplication","title":"The dark fringe and what causes it","url":"https://addaly.com/learn/motion-and-audio/alpha-and-premultiplication"},"next":{"slug":"the-shoot-decides-the-key","title":"A green screen is fixed on set, not in the edit","url":"https://addaly.com/learn/motion-and-audio/the-shoot-decides-the-key"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Every blend mode is one line of arithmetic', in Motion, Sound and Music. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/motion-and-audio/blend-modes-are-arithmetic (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Every blend mode is one line of arithmetic","courseTitle":"Motion, Sound and Music","module":{"index":4,"slug":"putting-two-images-together","title":"Putting two images together"},"answer":null,"keyIdea":"Multiply can only darken and drops white, Screen can only lighten and drops black, Add is physically correct for light and clips in 8-bit, and Difference is a measuring instrument rather than a look, which is why stock light elements are filmed on black and fail over a bright sky.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"every-blend-mode-is-a-one-line-formula","runs":[{"text":"Every blend mode is a one-line formula"}]},{"t":"p","runs":[{"text":"The blend mode dropdown has thirty entries with names like Overlay, Soft Light, Linear Burn and Pin Light, and it invites you to try them all until something looks nice. That is a slow way to work and it does not transfer between projects."}]},{"t":"p","runs":[{"text":"There are about six that matter, each is one line of arithmetic on values between 0 and 1, and knowing the line tells you exactly when the mode will work."}]},{"t":"h2","id":"the-six","runs":[{"text":"The six"}]},{"t":"p","runs":[{"text":"Multiply.","b":true},{"text":" "},{"text":"result = a × b","code":true}]},{"t":"p","runs":[{"text":"Anything times 1 stays the same; anything times 0 goes black. So white becomes invisible and black stays black. This is the mode for "},{"text":"shadows","b":true},{"text":", for "},{"text":"ink on paper","b":true},{"text":", for anything that removes light. A scanned pencil drawing on white paper multiplied over a photograph puts the pencil lines on the photograph and drops the paper. Multiply can only darken."}]},{"t":"p","runs":[{"text":"Screen.","b":true},{"text":" "},{"text":"result = 1 − (1 − a) × (1 − b)","code":true}]},{"t":"p","runs":[{"text":"The inverse of multiply, applied to the inverted values. Black becomes invisible and white stays white. This is the mode for "},{"text":"light","b":true},{"text":": fire, sparks, lens flares, smoke shot against black, light leaks, any stock element filmed on a black background. Screen can only lighten, and it never clips, because the result approaches 1 asymptotically."}]},{"t":"p","runs":[{"text":"Add","b":true},{"text":" (Linear Dodge). "},{"text":"result = a + b","code":true}]},{"t":"p","runs":[{"text":"Physically the correct model for two light sources in the same place, which is why render engines use it. It clips: "},{"text":"0.7 + 0.6 = 1.3","code":true},{"text":", and in an 8-bit pipeline that becomes 1.0 and the detail is lost. In a float pipeline it does not clip and holds the value, which is one of the practical reasons to work in float. Use Add for genuine light emission; use Screen when you want a similar look that behaves politely at the top end."}]},{"t":"p","runs":[{"text":"Difference.","b":true},{"text":" "},{"text":"result = |a − b|","code":true}]},{"t":"p","runs":[{"text":"Where the two images are identical, the result is black. This is almost useless as a look and invaluable as a tool: put two versions of a shot on top of each other in Difference and any area that is not pure black is a place they differ. It is how you verify an export matches its source, how you find the frame where a track slips, and how you check whether a “lossless” round-trip was."}]},{"t":"p","runs":[{"text":"Overlay","b":true},{"text":" and "},{"text":"Soft Light.","b":true},{"text":" Both apply Multiply where the base is dark and Screen where the base is light, with different roll-offs. They increase contrast while roughly preserving the midpoint. Useful for texture and grade layers, and both are "},{"text":"base-dependent","i":true},{"text":", which is why swapping the layer order changes the result and why they are unpredictable over a grade you are still adjusting."}]},{"t":"h2","id":"what-this-tells-you-about-stock-elements","runs":[{"text":"What this tells you about stock elements"}]},{"t":"p","runs":[{"text":"Most of the smoke, fire, dust, rain and flare footage sold as “stock elements” is filmed against black and intended for Screen. That is not a style choice; it is because Screen with a black background is mathematically identical to an over-composite with a perfect matte, for light-emitting subjects."}]},{"t":"p","runs":[{"text":"The same logic tells you when it will fail. Screen a fire element over a bright sky and the fire nearly disappears, because "},{"text":"1 − (1 − 0.9)(1 − 0.8)","code":true},{"text":" is 0.98: barely brighter than the sky already was. Light elements only read against darker backgrounds. If you need fire over a bright background you need a real matte, not a blend mode."}]},{"t":"h2","id":"blend-modes-are-not-a-substitute-for-a-matte","runs":[{"text":"Blend modes are not a substitute for a matte"}]},{"t":"p","runs":[{"text":"This is the useful boundary. A blend mode makes a decision per pixel based on "},{"text":"value","i":true},{"text":"; a matte makes it based on a decision you control. Screen removes black. It does not remove “the background”, and it will happily remove the dark parts of your subject too."}]},{"t":"p","runs":[{"text":"The test: if the thing you want to remove is black or white, a blend mode is free and exact. If it is a colour, or a value that also appears inside your subject, you need a matte."}]},{"t":"h2","id":"the-one-that-changes-with-colour-space","runs":[{"text":"The one that changes with colour space"}]},{"t":"p","runs":[{"text":"Blend modes operate on encoded values, so the same Multiply gives a different result on linear data than on sRGB-encoded data. In a linear-light pipeline, Multiply by 0.5 halves the actual light and looks like a one-stop reduction. On sRGB-encoded values, multiplying by 0.5 is a much larger perceptual change, because the encoding is non-linear."}]},{"t":"p","runs":[{"text":"This is why a grade that looked right in one application looks wrong when the project is moved into a linear workflow, and why compositing applications are explicit about their working space in a way that design applications are not. Photoshop’s default is not linear. Nuke’s, Fusion’s and Blender’s are."}]},{"t":"h2","id":"the-free-path","runs":[{"text":"The free path"}],"role":"free"},{"t":"p","runs":[{"text":"Every application named here has the full set. "},{"text":"Blender","b":true},{"text":"’s Mix node exposes each mode by name and you can build any of them from Math nodes if you want to see the arithmetic directly. "},{"text":"Fusion","b":true},{"text":" in the free DaVinci Resolve, "},{"text":"GIMP","b":true},{"text":", "},{"text":"Krita","b":true},{"text":" and "},{"text":"Photopea","b":true},{"text":" all implement the standard set. The formulas are also published in the W3C compositing specification, which is free to read and is the reason browsers, design tools and compositors agree on what “overlay” means."}]},{"t":"h2","id":"the-limitation","runs":[{"text":"The limitation"}],"role":"limit"},{"t":"p","runs":[{"text":"Blend modes are per-pixel and context-free. They cannot know that a pixel belongs to your subject rather than the background, they cannot respect an edge, and they have no notion of depth. Everything they do well, they do because the imagery was prepared to suit them: filmed on black, or drawn on white."}]},{"t":"p","runs":[{"text":"There is also no standard for how they behave outside the 0 to 1 range, which is where high-dynamic-range work lives. Two applications can implement the same named mode and diverge on a pixel at 4.0, which is a real source of “it looked different in the other program” that no amount of matching settings will resolve."}]}],"check":{"question":[{"text":"A fire element filmed on black looks convincing screened over a night street and almost vanishes when screened over a bright daytime sky. What does the formula tell you?"}],"options":[{"text":[{"text":"Screen normalises by the background’s average luminance, so a bright background scales the foreground contribution down proportionally."}],"correct":false,"tempting":[{"text":"Invents a normalisation step; Screen is a fixed per-pixel formula with no reference to the frame’s average."}]},{"text":[{"text":"The fire element was filmed with a black point above zero, so over a bright background the residual black lifts the sky and the encoder discards the difference."}],"correct":false,"tempting":[{"text":"A raised black point causes a visible grey wash over dark backgrounds, which is the opposite of the symptom described."}]},{"text":[{"text":"Screening a bright value over an already bright background can only move it a little closer to one, so the visible change is small."}],"correct":true,"tempting":null},{"text":[{"text":"Screen is a base-dependent mode like Overlay, applying Multiply where the background is light and Screen where it is dark, so over a bright sky the fire is being multiplied into it and the dark parts of the flame are being preserved rather than dropped."}],"correct":false,"tempting":[{"text":"Confuses Screen with the base-dependent contrast modes; Screen applies the same formula regardless of the background’s value."}]}],"order":[3,0,1,2],"why":null},"prev":{"slug":"alpha-and-premultiplication","title":"The dark fringe and what causes it","minutes":10},"next":{"slug":"the-shoot-decides-the-key","title":"A green screen is fixed on set, not in the edit","minutes":10}}}