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.
Checking the stable version of the documentation...
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。