RDPipelineColorBlendStateAttachment
繼承: RefCounted < Object
管線顏色混合狀態附件(由 RenderingDevice 使用)。
說明
控制使用 RenderingDevice 時如何在來源和目標片段之間進行混合。
以下是常見面向使用者的混合模式在 Godot 的 2D 算繪器中的實作方法,僅供參考:
混合:
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
加:
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
減:
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
乘:
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
預乘 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
屬性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
void |
屬性說明
BlendOperation alpha_blend_op = 0 🔗
void set_alpha_blend_op(value: BlendOperation)
BlendOperation get_alpha_blend_op()
Alpha 通道使用的混合模式。
BlendOperation color_blend_op = 0 🔗
void set_color_blend_op(value: BlendOperation)
BlendOperation get_color_blend_op()
紅、綠、藍通道使用的混合模式。
BlendFactor dst_alpha_blend_factor = 0 🔗
void set_dst_alpha_blend_factor(value: BlendFactor)
BlendFactor get_dst_alpha_blend_factor()
控制如何根據目標片段確定 Alpha 通道的混合係數。
BlendFactor dst_color_blend_factor = 0 🔗
void set_dst_color_blend_factor(value: BlendFactor)
BlendFactor get_dst_color_blend_factor()
控制如何根據目標片段確定顏色通道的混合係數。
如果為 true,則會根據 src_color_blend_factor、dst_color_blend_factor、src_alpha_blend_factor 和 dst_alpha_blend_factor 中定義的係數對來源和目標進行混合。同時也會考慮 color_blend_op 和 alpha_blend_op 混合模式,write_r、write_g、write_b 和 write_a 則控制的是輸出。
BlendFactor src_alpha_blend_factor = 0 🔗
void set_src_alpha_blend_factor(value: BlendFactor)
BlendFactor get_src_alpha_blend_factor()
控制如何根據來源片段確定 Alpha 通道的混合係數。
BlendFactor src_color_blend_factor = 0 🔗
void set_src_color_blend_factor(value: BlendFactor)
BlendFactor get_src_color_blend_factor()
控制如何根據來源片段確定顏色通道的混合係數。
如果為 true,則將新的 Alpha 通道寫入最終結果。
如果為 true,則將新的藍色通道寫入最終結果。
如果為 true,則將新的綠色通道寫入最終結果。
如果為 true,則將新的紅色通道寫入最終結果。
方法說明
void set_as_mix() 🔗
使用普通(非預乘)Alpha 進行標準混合混合(mix blending)的簡便方法。這個方法會將 enable_blend 設為 true,將 src_color_blend_factor 設為 RenderingDevice.BLEND_FACTOR_SRC_ALPHA,將 dst_color_blend_factor 設為 RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,將 src_alpha_blend_factor 設為 RenderingDevice.BLEND_FACTOR_SRC_ALPHA,將 dst_alpha_blend_factor 設為 RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA。