Есть ли эквивалент для `blendFunci` в WebGL 1? - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю над проектом WebGL 1.Мне нужно использовать gl_FragData[0] и gl_FragData[1] в настроенном фрагментном шейдере.Как я могу установить blendFunction для gl_FragData[1].Я думаю, что OpenGL использует glBlendFunci.например, glBlendFunc(1, gl.ONE, gl.ONE).Как я могу сделать это в WebGL?

1 Ответ

0 голосов
/ 09 декабря 2018

В WebGL1 нет эквивалента glBlendFunci.Для обычного смешивания обычное решение состоит в том, чтобы взять 2 текстуры, смешать их в шейдере и вывести на новую текстуру

 uniform sampler2D t1;
 uniform sampler2D t2;

 void main() {
   gl_FragColor = someOperation(t1, t2);
 }

Чтобы сделать больше, чем одну, нужно повторить то же самое, что и в

 uniform sampler2D t1;
 uniform sampler2D t2;
 uniform sampler2D t3;
 uniform sampler2D t4;

 void main() {
   gl_FragData[0] = someOperation(t1, t2);
   gl_FragData[1] = someOperation(t3, t4);
 }
...