是否可以仅使用顶点着色器创建 WebGL 程序?

Is it possible to create WebGL programs with only vertex shaders?

当我尝试 link 一个仅附加了顶点着色器的 WebGL2 着色器程序时,我遇到了 "missing shader" 错误。我正在尝试使用 Transform Feedback,我认为既然顶点着色器的输出已写出,那么应该不需要片段着色器。

来自这个博客post:link看来你应该可以做到这一点。 WebGL 有什么我遗漏的特别之处吗?

WebGL 2 基于 OpenGL ES 3.0,根据规范要求程序对象上存在顶点和片段着色器:

Linking can fail for a variety of reasons as specified in the OpenGL ES Shading Language Specification, as well as any of the following reasons:

  • [...]
  • program does not contain both a vertex shader and a fragment shader.

OpenGL ES 3.0 Specification, Page 49

您可以附加一个简单的纯色或丢弃片段着色器。