blendLinearBurn: Additive Darkening Process
Linear Subtraction with Zero Boundary
Linear Burn blending creates darkening effects through additive subtraction. This function adds base and blend values, subtracts unity, then clamps negative results to zero, producing linear darkening that preserves color relationships while creating controlled shadow regions.
The mathematical definition uses linear arithmetic with boundary clamping:
This operation creates predictable darkening where colors combine additively before subtracting the maximum possible value, ensuring that only overlapping bright regions survive the subtraction process.
Linear Darkening Properties
Property | Description | Mathematical Expression |
---|---|---|
Additive Base | Colors combine through addition | |
Unity Subtraction | Maximum value removed from sum | |
Zero Clamp | Negative values bounded to black | |
Linear Response | Proportional darkening relationship |
const fragment = () => { const leftCircle = float(0.3).smoothstep(0.25, uv.sub(vec2(0.35, 0.5)).length()) const rightCircle = float(0.3).smoothstep(0.25, uv.sub(vec2(0.65, 0.5)).length()) const brightBase = vec3(0.9, 0.7, 0.6).mul(leftCircle) const brightBlend = vec3(0.8, 0.9, 0.5).mul(rightCircle) const result = blendLinearBurnVec3(brightBase, brightBlend) return vec4(result, 1) }
The demonstration reveals Linear Burn's selective color emergence through bright circle intersection. Only where both bright circles overlap do colors survive the subtraction process, showing how this function requires sufficient combined brightness to produce visible results. The overlapping region demonstrates the additive-then-subtract mechanism that creates color only when input values exceed the unity threshold together.