Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

RDPipelineColorBlendStateAttachment

Hereda: RefCounted < Object

Adjunto del estado de mezcla de color del pipeline (utilizado por RenderingDevice).

Descripción

Controls how blending between source and destination fragments is performed when using RenderingDevice.

For reference, this is how common user-facing blend modes are implemented in Godot's 2D renderer:

Mix:

var attachment = RDPipelineColorBlendStateAttachment.new()
attachment.enable_blend = true
attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA
attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE
attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA

Add:

var attachment = RDPipelineColorBlendStateAttachment.new()
attachment.enable_blend = true
attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA
attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE
attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA
attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE

Subtract:

var attachment = RDPipelineColorBlendStateAttachment.new()
attachment.enable_blend = true
attachment.alpha_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT
attachment.color_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT
attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA
attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE
attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA
attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE

Multiply:

var attachment = RDPipelineColorBlendStateAttachment.new()
attachment.enable_blend = true
attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_DST_COLOR
attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO
attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_DST_ALPHA
attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO

Pre-multiplied alpha:

var attachment = RDPipelineColorBlendStateAttachment.new()
attachment.enable_blend = true
attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD
attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE
attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE
attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA

Propiedades

BlendOperation

alpha_blend_op

0

BlendOperation

color_blend_op

0

BlendFactor

dst_alpha_blend_factor

0

BlendFactor

dst_color_blend_factor

0

bool

enable_blend

false

BlendFactor

src_alpha_blend_factor

0

BlendFactor

src_color_blend_factor

0

bool

write_a

true

bool

write_b

true

bool

write_g

true

bool

write_r

true

Métodos

void

set_as_mix()


Descripciones de Propiedades

BlendOperation alpha_blend_op = 0 🔗

El modo de mezcla a usar para el canal alfa.


BlendOperation color_blend_op = 0 🔗

El modo de mezcla a usar para los canales de color rojo/verde/azul.


BlendFactor dst_alpha_blend_factor = 0 🔗

Controla cómo se determina el factor de mezcla para el canal alfa en función de los fragmentos del destino.


BlendFactor dst_color_blend_factor = 0 🔗

Controla cómo se determina el factor de mezcla para los canales de color en función de los fragmentos del destino.


bool enable_blend = false 🔗

  • void set_enable_blend(value: bool)

  • bool get_enable_blend()

Si es true, realiza la mezcla entre el origen y el destino de acuerdo con los factores definidos en src_color_blend_factor, dst_color_blend_factor, src_alpha_blend_factor y dst_alpha_blend_factor. Los modos de mezcla color_blend_op y alpha_blend_op también se tienen en cuenta, con write_r, write_g, write_b y write_a controlando la salida.


BlendFactor src_alpha_blend_factor = 0 🔗

Controla cómo se determina el factor de mezcla para el canal alfa en función de los fragmentos de la fuente.


BlendFactor src_color_blend_factor = 0 🔗

Controla cómo se determina el factor de mezcla para los canales de color en función de los fragmentos de la fuente.


bool write_a = true 🔗

  • void set_write_a(value: bool)

  • bool get_write_a()

Si es true, escribe el nuevo canal alfa en el resultado final.


bool write_b = true 🔗

  • void set_write_b(value: bool)

  • bool get_write_b()

Si es true, escribe el nuevo canal de color azul en el resultado final.


bool write_g = true 🔗

  • void set_write_g(value: bool)

  • bool get_write_g()

Si es true, escribe el nuevo canal de color verde en el resultado final.


bool write_r = true 🔗

  • void set_write_r(value: bool)

  • bool get_write_r()

Si es true, escribe el nuevo canal de color rojo en el resultado final.


Descripciones de Métodos

void set_as_mix() 🔗

Método de conveniencia para realizar una mezcla estándar con alfa directo (no premultiplicado). Esto establece enable_blend como true, src_color_blend_factor a RenderingDevice.BLEND_FACTOR_SRC_ALPHA, dst_color_blend_factor a RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, src_alpha_blend_factor a RenderingDevice.BLEND_FACTOR_SRC_ALPHA y dst_alpha_blend_factor a RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA.