在SpriteKit中,如何计算默认混合模式(SKBlendModeAlpha)?你能否在下面的示例点验证它是否有效?下面的所有节点都使用默认的SKBlendModeAlpha。
我的场景有一个白色背景和两个相同的颜色均匀的子节点,它们彼此部分相交。每个节点的真实RGB是(16,195,117),alpha = 0.4。
当我看到坐在白色背景上的节点的混合色时,颜色为(158,221,190)。 (通过屏幕捕获和检查gimp确认了这一点。)
这是如何通过SpriteKit计算的?
当我查看白色背景上两个节点的交叉区域的混合颜色时,RGB是(112,203,153)。
这是如何通过SpriteKit计算的?
谢谢!
答案 0 :(得分:1)
谢谢Okapi。这是找到答案的关键。使用"显示原生值"帮助我看到每个RGB组件,它是:
final_color = previous_final_color * (1 - alpha) + new_color * alpha.
对于白色的一层,我确实得到了
的RGB(159, 231, 200) = floor(0.6 * (255, 255, 255) + 0.4 * (16, 195, 117))
对于白色的两层,我得到RGB
(101, 216, 166) = floor(0.6 * (159, 231, 200) + 0.4 * (16, 195, 117))