Cesium中的Blending State定义了用于混合、渲染两个实体颜色的基本规则。 Blending State包括混合运算符、混合函数和混合颜色。
Blending State的混合运算符可以是:
BlendingState.ALPHA_BLEND
BlendingState.ADDITIVE_BLEND
BlendingState.REPLACE
ALPHA_BLEND是默认的混合运算符,该运算符将源alpha加权平均到目标颜色中。 公式为:
Blend Color = (source alpha * source color) + ((1 - source alpha) * destination color)
ADDITIVE_BLEND将两种颜色相加以生成新颜色。 公式为:
Blend Color = source color + destination color
REPLACE是Blending State最简单的混合运算符,它使用源颜色替换目标颜色。 公式为:
Blend Color = source color
Blending State中的混合函数定义了源颜色和目标颜色的混合方式。
Cesium支持以下混合函数:
BlendingState.SOURCE_ALPHA
BlendingState.ONE_MINUS_SOURCE_ALPHA
BlendingState.DESTINATION_ALPHA
BlendingState.ONE_MINUS_DESTINATION_ALPHA
BlendingState.SOURCE_ALPHA_SATURATE
BlendingState.ONE
BlendingState.ZERO
使用源alpha值作为混合因子。 公式为:
Blend Factor = source alpha
使用(1-源alpha)作为混合因子。 公式为:
Blend Factor = 1 - source alpha
使用目标alpha值作为混合因子。 公式为:
Blend Factor = destination alpha
使用(1 - 目标alpha)作为混合因子。 公式为:
Blend Factor = 1 - destination alpha
使用目标alpha作为混合因子,但将源alpha裁剪到0到1范围内。 公式为:
Blend Factor = min(source alpha, 1 - destination alpha)
简单的加权平均值(平均值)。 公式为:
Blend Factor = 1
完全透明的混合。 公式为:
Blend Factor = 0
混合颜色是用来设置混合的颜色。 它由4个浮点数定义,分别表示红色、绿色、蓝色和alpha值。 它可以在源颜色和目标颜色之间混合。 如果设为null,则不会使用混合颜色。
更多关于Blending State的详细信息,请参考Cesium文档。