ColorOp

Description

Enumeration of color operations.

Items

# Name Tag

0

Blend

-

Blends the color values according to their alpha channel values (second over first).

The following computations are performed, assuming color channel values in the range [0..1]:

temp       := first.a * (1 - second.a)
result.a   := second.a + temp
result.rgb := (first.rgb * temp + second.rgb * second.a) / result.a;

When the first color is opaque, the computation reduces to this:

result.a   := 1
result.rgb := first.rgb * (1 - second.a) + second.rgb * second.a;

1

Mul

-

Multiplies the color channel components of the given color values.

For each color component, the following computation is performed, assuming color channel values in the range [0..1]:

result := first * second;

2

Add

-

Adds the color channel components of the given color values.

For each color component, the following computation is performed, assuming color channel values in the range [0..1]:

result := min(first + second, 1);

3

Sub

-

Subtracts the color channel components of the given color values.

For each color component, the following computation is performed, assuming color channel values in the range [0..1]:

result := max(first - second, 0);