Истинный альфа-блендинг в webgl
По интернету гуляет стандартный способ
gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA
Или же
gl.ONE, gl.ONE_MINUS_SRC_ALPHA
для предумноженных изображений. Он идеален для наложения прозрачных текстур на непрозрачный фон.
Но что делать если мне нужно наложить текстуру с прозрачностью на фон с прозрачностью? Нашел в википедии формулу (картинка). Как я понимаю, через blendfunc её никак не сделать.. или сделать?
Зачем мне это? Хочу создать что-то типо рисовалки. Нужно отрисовать на canvas штрих кисти с учетом прозрачности как фона, так и самой кисти.
Как вариант: использовать два фреймбуффера и отрисовывать сначала сам canvas на один из них, а потом уже оба смешивать на canvas. Но такие костыли делать неохота. Есть ли способ сделать нормальное смешивание за одну отрисовку?
