fill.blendMode

类型 字符串
对象 绘制
display.*
修订 版本 2024.3703
关键词 加法混合, 混合模式, 混合, Porter-Duff
另请参阅 绘制
object.fill
object.blendMode

概述

允许您更改特定对象的混合模式。

标准混合模式

标准混合模式可以通过以下字符串之一指定

Porter-Duff 预设

Porter-Duff 混合模式可以通过下面列出的字符串之一指定。

自定义混合模式

自定义混合模式允许您控制如何在混合计算中使用源和目标因子。它们遵循 OpenGL-ES 2 规范 中讨论的混合因子。

您可以通过 Lua 表指定自定义混合模式,该表将源和目标因子指定为键值对。

srcColor (必填)

字符串 有关有效字符串值的列表,请参见下面的

srcAlpha (可选)

字符串 默认情况下,与 srcColor 相同。

dstColor (必填)

字符串 有关有效字符串值的列表,请参见下面的

dstAlpha (可选)

字符串 默认情况下,与 dstColor 相同。

  • "zero"
  • "one"
  • "srcColor"
  • "oneMinusSrcColor"
  • "dstColor"
  • "oneMinusDstColor"
  • "srcAlpha"
  • "oneMinusSrcAlpha"
  • "dstAlpha"
  • "oneMinusDstAlpha"
  • "srcAlphaSaturate"

限制

预乘 Alpha

某些 Android 设备无法始终如一地将图像加载为预乘 alpha。我们已经应用了变通方法,但它们并非万无一失。在这些设备上,"multiply""screen" 混合模式将无法正常工作,您应该在控制台中看到一条关于此问题的警告消息。

Porter-Duff 混合模式仅适用于已加载为预乘 alpha 的图像。

示例

加法混合
local laser = display.newImage( "blendmode_laser.png" )
laser.fill.blendMode = "add"
Porter-Duff 预设
local laser = display.newImage( "blendmode_laser.png" )
laser.fill.blendMode = "srcAtop"
自定义混合
local laser = display.newImage( "blendmode_laser.png" )

local customBlend = {
    srcColor = "srcColor",
    srcAlpha = "oneMinusDstColor",
    dstColor = "dstAlpha",
    dstAlpha = "srcAlphaSaturate"
}

laser.fill.blendMode = customBlend