2015-02-08 5 views
0

В SpriteKit, как рассчитывается режим смешивания по умолчанию (SKBlendModeAlpha)? Не могли бы вы убедиться, что это работает на моих примерах ниже? Все узлы ниже используют стандартную SKBlendModeAlpha.Как рассчитывается режим смешивания по умолчанию (SKBlendModeAlpha)?

Моя сцена имеет белый фон и два идентичных дочерних узла однородного цвета, которые частично пересекают друг друга. Истинный RGB каждого узла равен (16, 195, 117) и α = 0,4.

Когда я смотрю на смешанный цвет узла, сидящего на белом фоне, цвет (158, 221, 190). (Это было подтверждено выполнением захвата экрана и проверки в gimp).

Как это было рассчитано SpriteKit?

Когда я смотрю на смешанный цвет пересекаемой области двух узлов на белом фоне, RGB является (112, 203, 153).

Как это было рассчитано SpriteKit?

Спасибо!

+1

Устройства GIMP, mac и iOS имеют разные цветовые пространства, что может привести к разным значениям RGB. Если вы используете цифровой цветной метр.app, вы можете изменить цветовое пространство, в котором вы измеряете. – Okapi

ответ

0

Спасибо 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)) 
Смежные вопросы