
200
|
第
6
章
6.13
混合模式
问题
如何通过不同的混合模式以达到不同的视觉效果?
解决方案
通过
blendMode
属性可以控制节点和场景其他部分的混合方式:
shape.blendMode = SKBlendMode.add
讨论
当节点被绘制到场景中时,场景最终呈现的结果取决于节点的混合模式。在节点叠
加进场景中时,
Sprite Kit
渲染引擎会获取节点每一个像素的颜色值以及像素下面
点的颜色值(场景的),并根据指定的方式对这两个颜色值进行计算并得到新的颜
色值。
默认情况下,所有的
SKNode
都会使用
SKBlendMode.alpha
作为默认的混合模式。
这种模式会产生我们在绝大部分情况下所需要的效果,它是用位图的
alpha
通道乘
以精灵的
alpha
属性,最终决定该节点有多少颜色被添加到场景中。
但是,我们可以使用的混合模式并不是只有这一种。其他混合模式还包括:
SKBlendMode.add
节点的颜色和背景颜色相加。这会产生一种加亮的、半透明的效果(适用于灯光、
火焰、激光束和爆炸)。
SKBlendMode.subtract
用背景颜色减去节点颜色,这会产生一种非常奇异的加暗效果(会有一些失真,
但会导致一种特别的效果)。
SKBlendMode.multiply
节点的颜色和背景颜色相乘。这会产生一种加暗效果(适用于阴影、场景的着
色部位)。