Стоит ли использовать WebGL для связки CANVAS + Video?
Привет!
Ситуация такая:
Есть 2–5 видео-файлов формата Full HD, которые на сайте нужно проигрывать одновременно одно под другим. Предполагается, что все видео будут видны одновременно благодаря разным смешениям слоёв и маскам прозрачности. То есть такой ситуации, когда верхнее видео полностью перекрывает собой все остальные не будет. Это всё можно сделать с помощью Canvas (2D).
Вопрос:
Можно ли в данном случае использовать WebGL для повышения производительности? И вообще поможет ли?
С WebGL будет быстрее, но если рендерите 2-5 файлов HD, быстро точно не будет ;) Момент с растеризацией будет быстрый, но сама отрисовка видеотекстур крайне медленная операция.
Я думаю, что вы однозначно получите прирост производительности. Только вот при использовании WebGl не придётся ли вам самостоятельно писать шейдеры для смешивания слоёв?
GreatRash, ок, а если использовать метод .blendFunc() вместо, globalCompositeOperation в Сanvas, то производительность будет выше?
Просто я читал, что WebGL хорош для быстрого расчёта положения точек (вершин полигонов) в 2D пространстве. Но на сколько эффективно GPU будет работать с 5-ю анимированными текстурами в 1920x1080? Предполагаю, что видео в данном случае будет, по сути, статичным четырехгранным полигоном с видео-текстурой. Вся нагрузка будет от текстур.
Видео и правда будет тупо квадом с анимированой текстурой, висящим перед камерой.
GPU специально спроектирован так, чтобы уметь в 100500 потоков обрабатывать данные о цвете пикселя. Так что да, это будет намного быстрее, чем расчёты на CPU.