包 | flash.display3D |
类 | public final class Context3DBlendFactor |
继承 | Context3DBlendFactor Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数代表一个特殊的四值矢量,该矢量与混合公式中的源颜色或目标颜色相乘。混合公式为:
result = source * sourceFactor + destination * destinationFactor
在公式中,源颜色为像素着色器程序的输出颜色。目标颜色为颜色缓冲区中当前存在的颜色,由先前的清除和绘制操作设置。
例如,如果源颜色为 (.6, .6, .6, .4),源混合系数为 Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA
,则混合等式的源部分的计算方式如下:
(.6, .6, .6, .4) * (1-0.4, 1-0.4, 1-0.4, 1-0.4) = (.36, .36, .36, .24)
最终计算值锁定到范围 [0,1]。
示例
下面的示例使用源颜色 = (.6,.4,.2,.4)、目标颜色 = (.8,.8,.8,.5) 和各种混合系数演示了混合数学计算方法。
目的 | 源系数 | 目标系数 | 混合公式 | 结果 |
---|---|---|---|---|
不混合 | ONE | ZERO | (.6,.4,.2,.4) * ( 1, 1, 1, 1) + (.8,.8,.8,.5) * ( 0, 0, 0, 0) | ( .6, .4, .2, .4) |
Alpha | SOURCE_ALPHA | ONE_MINUS_SOURCE_ALPHA | (.6,.4,.2,.4) * (.4,.4,.4,.4) + (.8,.8,.8,.5) * (.6,.6,.6,.6) | (.72,.64,.56,.46) |
加法 | ONE | ONE | (.6,.4,.2,.4) * ( 1, 1, 1, 1) + (.8,.8,.8,.5) * ( 1, 1, 1, 1) | ( 1, 1, 1, .9) |
色彩增殖 | DESTINATION_COLOR | ZERO | (.6,.4,.2,.4) * (.8,.8,.8,.5) + (.8,.8,.8,.5) * ( 0, 0, 0, 0) | (.48,.32,.16, .2) |
滤色 | ONE | ONE_MINUS_SOURCE_COLOR | (.6,.4,.2,.4) * ( 1, 1, 1, 1) + (.8,.8,.8,.5) * (.4,.6,.8,.6) | (.92,.88,.68, .7) |
请注意,并非所有的混合系数组合都是有用的,有时可通过不同的方式达到相同的效果。
相关 API 元素
常量 | 由以下参数定义 | ||
---|---|---|---|
DESTINATION_ALPHA : String = "destinationAlpha" [静态]
混合系数为 (Da,Da,Da,Da),其中 Da 是像素程序计算得出的片段颜色的 alpha 组件。 | Context3DBlendFactor | ||
DESTINATION_COLOR : String = "destinationColor" [静态]
混合系数为 (Dr,Dg,Db,Da),其中 Dr/g/b/a 是颜色缓冲区中当前颜色的对应组件。 | Context3DBlendFactor | ||
ONE : String = "one" [静态]
混合系数为 (1,1,1,1)。 | Context3DBlendFactor | ||
ONE_MINUS_DESTINATION_ALPHA : String = "oneMinusDestinationAlpha" [静态]
混合系数为 (1-Da,1-Da,1-Da,1-Da),其中 Da 是颜色缓冲区中当前颜色的 alpha 组件。 | Context3DBlendFactor | ||
ONE_MINUS_DESTINATION_COLOR : String = "oneMinusDestinationColor" [静态]
混合系数为 (1-Dr,1-Dg,1-Db,1-Da),其中 Dr/g/b/a 是颜色缓冲区中当前颜色的对应组件。 | Context3DBlendFactor | ||
ONE_MINUS_SOURCE_ALPHA : String = "oneMinusSourceAlpha" [静态]
混合系数为 (1-Sa,1-Sa,1-Sa,1-Sa),其中 Sa 是像素程序计算得出的片段颜色的 alpha 组件。 | Context3DBlendFactor | ||
ONE_MINUS_SOURCE_COLOR : String = "oneMinusSourceColor" [静态]
混合系数为 (1-Sr,1-Sg,1-Sb,1-Sa),其中 Sr/g/b/a 是像素程序计算得出的片段颜色的对应组件。 | Context3DBlendFactor | ||
SOURCE_ALPHA : String = "sourceAlpha" [静态]
混合系数为 (Sa,Sa,Sa,Sa),其中 Sa 是像素程序计算得出的片段颜色的 alpha 组件。 | Context3DBlendFactor | ||
SOURCE_COLOR : String = "sourceColor" [静态]
混合系数为 (Sr,Sg,Sb,Sa),其中 Sr/g/b/a 是像素程序计算得出的片段颜色的对应组件。 | Context3DBlendFactor | ||
ZERO : String = "zero" [静态]
混合系数为 (0,0,0,0)。 | Context3DBlendFactor |
DESTINATION_ALPHA | 常量 |
public static const DESTINATION_ALPHA:String = "destinationAlpha"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (Da,Da,Da,Da)
,其中 Da
是像素程序计算得出的片段颜色的 alpha 组件。
DESTINATION_COLOR | 常量 |
public static const DESTINATION_COLOR:String = "destinationColor"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (Dr,Dg,Db,Da)
,其中 Dr/g/b/a
是颜色缓冲区中当前颜色的对应组件。
ONE | 常量 |
public static const ONE:String = "one"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (1,1,1,1)
。
ONE_MINUS_DESTINATION_ALPHA | 常量 |
public static const ONE_MINUS_DESTINATION_ALPHA:String = "oneMinusDestinationAlpha"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (1-Da,1-Da,1-Da,1-Da)
,其中 Da
是颜色缓冲区中当前颜色的 alpha 组件。
ONE_MINUS_DESTINATION_COLOR | 常量 |
public static const ONE_MINUS_DESTINATION_COLOR:String = "oneMinusDestinationColor"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (1-Dr,1-Dg,1-Db,1-Da)
,其中 Dr/g/b/a
是颜色缓冲区中当前颜色的对应组件。
ONE_MINUS_SOURCE_ALPHA | 常量 |
public static const ONE_MINUS_SOURCE_ALPHA:String = "oneMinusSourceAlpha"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (1-Sa,1-Sa,1-Sa,1-Sa)
,其中 Sa
是像素程序计算得出的片段颜色的 alpha 组件。
ONE_MINUS_SOURCE_COLOR | 常量 |
public static const ONE_MINUS_SOURCE_COLOR:String = "oneMinusSourceColor"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (1-Sr,1-Sg,1-Sb,1-Sa)
,其中 Sr/g/b/a
是像素程序计算得出的片段颜色的对应组件。
SOURCE_ALPHA | 常量 |
public static const SOURCE_ALPHA:String = "sourceAlpha"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (Sa,Sa,Sa,Sa)
,其中 Sa
是像素程序计算得出的片段颜色的 alpha 组件。
SOURCE_COLOR | 常量 |
public static const SOURCE_COLOR:String = "sourceColor"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (Sr,Sg,Sb,Sa)
,其中 Sr/g/b/a
是像素程序计算得出的片段颜色的对应组件。
ZERO | 常量 |
public static const ZERO:String = "zero"
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
混合系数为 (0,0,0,0)
。
Tue Jun 12 2018, 11:04 AM Z