Blending any color with white gives white. Blending with black does not change the image. The operation is not invertible due to possible clipping of highlights.
As was written, with an equality, blending with values > 1 produces strange results:
Base:
Blend:
Which is a procedurally generated sun that has many r and g values > 1.
Result (with opacity = 0.5):
Replacing the conditional in line 2 with: blend>=1.0:
Which is kinda cool, but still probably not what is wanted, as the color should saturate at white and opacity = 0.5 here means that at most a 50% grey should be added from the blended image. Finally with line 2 reading (blend>1.0)?1.0:... :
Which is how I believe the blending would work in photo editing software.
There are possibly other blend modes in this repo that don't account for values > 1, I can fix those two if you'd like. That is, if you agree that values > 1 should be handled.
According to https://en.wikipedia.org/wiki/Blend_modes#Dodge_and_burn
As was written, with an equality, blending with values > 1 produces strange results:
Base:
Blend: Which is a procedurally generated sun that has many
r
andg
values > 1.Result (with
opacity = 0.5
):Replacing the conditional in line 2 with:
blend>=1.0
:Which is kinda cool, but still probably not what is wanted, as the color should saturate at white and
opacity = 0.5
here means that at most a 50% grey should be added from the blended image. Finally with line 2 reading(blend>1.0)?1.0:
... :Which is how I believe the blending would work in photo editing software.