Как определять прозрачные области спрайта, используя маску?
Шейдером в openGL это решается элементарно.
Передаём в шейдер обе текстуры. Из первой текстуры берём r, g, b. Потом вычисляем яркость второй текстуры в точке и в прозрачку стави один минус это значение.vec4 tex1 = texture2D(texture1, position);
vec4 tex2 = texture2D(texture2, position);
float luma2 = (tex2.r + tex2.g + tex2.b)/3.0;
gl_FragColor = vec4(tex1.r, tex1.g, tex1.b, 1.0 - luma2);
А почему-бы не искать на маске белый цвет и не делать цвет в тех же координатах на оригинале прозрачным?
Про контуры не понял.