Write to Framebuffer

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.

Blending

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.

Blending flow

Blend Source Coefficient and Destination Coefficient

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

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.

Blending Coefficients

The coefficients that comprise a color or alpha value subtracted from 1 have their signs flipped.

Blending Equation

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.

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
Blend Source Coefficient Blend Destination Coefficient

The table below lists the types of blending equations.

Item Operator Result Description
Add source and destination. ADD Blending ADD Blend source coefficient + Blend destination coefficient.
Subtract destination from source. SUBTRACT Blending SUBTRACT Blend source coefficient - Blend destination coefficient.
Subtract source from destination. REVERSE_SUBTRACT Blending REVERSE_SUBTRACT Blend destination coefficient - Blend source coefficient.
Smaller value of either the source or destination. MIN Blending 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 Blending MAX Compares the blend source coefficient and blend destination coefficient and uses the larger of the two values.

Separate blending

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

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.

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
Blend Source Coefficient Blend Destination Coefficient

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 Logical operation CLEAR Writes 0 to RGBA.
Source color bit value COPY Logical operation COPY Writes the source value as is.
Destination color bit value NOOP Logical operation NOOP Does not write anything. Uses the existing framebuffer value.
All bit values are 1 SET Logical operation SET Writes 1 to RGBA.
Source color bit value, inverted COPY_INVERTED Logical operation INVERTED Inverts the source value.
Destination color bit value, inverted INVERT Logical operation INVERT Inverts the destination value.
Bitwise AND of the source color and the inverted destination color. AND_REVERSE Logical operation 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 Logical operation 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 Logical operation 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 Logical operation 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 Logical operation 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 Logical operation 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 Logical operation 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 Logical operation 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 Logical operation 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 Logical operation OR_INVERTED Bitwise OR of the inverted source value and the destination value.

CONFIDENTIAL