This section describes the process by which fragments that passed the write test are written to the framebuffer.
CreativeStudio offers four options for the blend mode when writing to the frame buffer.
The table below lists the options that can be selected for the blend mode.
Item | Description |
---|---|
Unused | Does not perform blending. Results in an opaque expression. |
Blend processing. | Applies a scale to the fragment color and alpha and framebuffer color and alpha, and then performs blending using a blending formula. |
Separate Blending |
Applies a scale to each color component and alpha value, and then blends the fragment color and alpha and framebuffer color and alpha using a blending formula. |
Logic calculations | Blends the fragment color and alpha and framebuffer color and alpha using logical operations. |
This section describes the per-fragment mixing process called blending.
Blending is the process by which the color and alpha values for fragments that have passed the write test (the source color and source alpha) are blended with the color and alpha values at the same locations in the framebuffer being written to (the destination color and destination alpha). The source and destination are multiplied by coefficients (i.e., scaled) and the results of the blending equation are written back to the framebuffer.
The figure below shows the blending flow.
Blend source coefficient refers to the coefficient that the source color and source alpha are multiplied by. The results are then used as source elements.
Blend destination coefficient refers to the coefficient that the destination color and destination alpha are multiplied by. The results are then used as destination elements.
In CreativeStudio, you can configure separate coefficients for the color and alpha.
Blend color refers to the fixed color and alpha values that can be used with the blend source and destination coefficients.
The constant color setting is different from the one for the texture combiner.
The figure below lists the types of coefficients.
The coefficients that comprise a color or alpha value subtracted from 1 have their signs flipped.
The blending equation is a calculation that combines the source elements (results of multiplying by the blend source coefficients) and destination elements (results of multiplying by the blend destination coefficients). In CreativeStudio, you can configure separate blending equations for the color and alpha.
The figure below shows color blending using a blending equation.
Below, we describe using blending equations to combine the following blend source coefficient and blend destination coefficient color images.
Blend Source Coefficient | Blend Destination Coefficient |
---|---|
![]() |
![]() |
The table below lists the types of blending equations.
Item | Operator | Result | Description |
---|---|---|---|
Add source and destination. | ADD | ![]() |
Blend source coefficient + Blend destination coefficient. |
Subtract destination from source. | SUBTRACT | ![]() |
Blend source coefficient - Blend destination coefficient. |
Subtract source from destination. | REVERSE_SUBTRACT | ![]() |
Blend destination coefficient - Blend source coefficient. |
Smaller value of either the source or destination. | MIN | ![]() |
Compares the blend source coefficient and blend destination coefficient and uses the smaller of the two values. |
Larger value of either the source or destination. | MAX | ![]() |
Compares the blend source coefficient and blend destination coefficient and uses the larger of the two values. |
Separate blending is the process by which the fragment color and alpha that will be used because they have passed the write test (the source color and source alpha) are blended with the color and alpha at the same location in the framebuffer being written (the destination color and destination alpha).
The source and destination color components and alpha values are multiplied by coefficients, and the results of the blending equations are written back to the framebuffer.
Logical operations in this case refers to processes that are performed on the fragment color that will be used because it has passed the write test (the source color) and the color at the same location in the framebuffer being written to (the destination color).
A logical operation is performed on the two possible input values for source and destination color of 1 (TRUE) or 0 (FALSE) to output a single value, which is then written back to the framebuffer.
The figure below shows the logical operation flow.
Below, we describe using logical operations to combine the following source color (A) and destination color (B) image inputs. This example uses monochrome images for purposes of simplicity. White regions are treated as 1, and black regions as 0.
Source Color | Destination Color |
---|---|
![]() |
![]() |
The figure below lists the types of logical operations. In CreativeStudio, you can select these from Calculation methods.
Item | Operator | Result | Description |
---|---|---|---|
All bit values are 0 | CLEAR | ![]() |
Writes 0 to RGBA. |
Source color bit value | COPY | ![]() |
Writes the source value as is. |
Destination color bit value | NOOP | ![]() |
Does not write anything. Uses the existing framebuffer value. |
All bit values are 1 | SET | ![]() |
Writes 1 to RGBA. |
Source color bit value, inverted | COPY_INVERTED | ![]() |
Inverts the source value. |
Destination color bit value, inverted | INVERT | ![]() |
Inverts the destination value. |
Bitwise AND of the source color and the inverted destination color. | AND_REVERSE | ![]() |
Bitwise AND of the source value and the inverted destination value. Outputs 1 for those areas where A and inverted B are both 1. |
Bitwise OR of the source color and the inverted destination color. | OR_REVERSE | ![]() |
Bitwise OR of the source value and the inverted destination value. Logical sum outputs 1 for areas where either A or B are 1, and outputs 0 otherwise. |
Bitwise AND of the source color and the destination color. | AND | ![]() |
Bitwise AND of the source value and the destination value. Outputs 1 for those areas where A and B are both 1. |
Bitwise OR of the source color and the destination color. | OR | ![]() |
Bitwise OR of the source value and the destination value. |
Inversion of the bitwise AND of the source color and the destination color. | NAND | ![]() |
Inversion of the bitwise AND of the source value and the destination value. Also called Not_And. Outputs 0 when all input values are 1 , and otherwise outputs 1 . |
Inversion of the bitwise OR of the source color and the destination color. | NOR | ![]() |
Inversion of the bitwise OR of the source value and the destination value. Also called Not_Or. Outputs 1 when all input values are 0, and outputs 1 otherwise. |
Bitwise exclusive OR of the source color and the destination color. | XOR | ![]() |
Exclusive bitwise OR of the source value and the destination value. Outputs 1 where input values differ, and outputs 0 where they are the same. |
Inversion of the exclusive bitwise OR of the source color and the destination color. | EQUTV | ![]() |
Inversion of the exclusive bitwise OR of the source value and the destination value. |
Bitwise AND of the inverted source color and the destination color. | AND_INVERTED | ![]() |
Bitwise AND of the inverted source value and the destination value. |
Bitwise OR of the inverted source color and the destination color. | OR_INVERTED | ![]() |
Bitwise OR of the inverted source value and the destination value. |
CONFIDENTIAL