Можно ли создавать программы WebGL только с вершинными шейдерами?

Я получаю сообщение об ошибке «отсутствует шейдер», когда пытаюсь связать программу шейдера WebGL2 с присоединенными только вершинными шейдерами. Я пытаюсь использовать Transform Feedback, и я подумал, что, поскольку вывод вершинного шейдера записывается, не должно быть необходимости во фрагментном шейдере.

Из этого сообщения в блоге: ссылка кажется, что вы должны быть в состоянии сделать это. Есть ли что-то особенное в WebGL, чего мне не хватает?


person jz87    schedule 11.07.2017    source источник


Ответы (1)


WebGL 2 основан на OpenGL ES 3.0, который согласно спецификации требует наличия вершинных и фрагментных шейдеров в программных объектах:

Связывание может завершиться ошибкой по разным причинам, как указано в Спецификации языка шейдинга OpenGL ES, а также по любой из следующих причин:

  • [...]
  • программа не содержит ни вершинного, ни фрагментного шейдера.

OpenGL Спецификация ES 3.0, стр. 49

Вместо этого вы можете прикрепить простой сплошной цвет или отбрасывающий фрагментный шейдер.

person LJᛃ    schedule 11.07.2017