【发布时间】:2020-01-02 11:13:19
【问题描述】:
我无法找到 WebGL2 着色器语言的确切语法规范。我看到它是“基于”Open GL Shader 语言的第 3 版的参考资料——但显然不完全是因为在 Open GL 版本中缺少关键字。为现代浏览器支持的当前版本的 WebGL 指定的着色器语言的精确语法在哪里?
例如this spec 明确禁止在 WebGL 顶点着色器中使用关键字“attribute”。正确的 BNF 语法在哪里指定?
【问题讨论】:
-
WebGL 支持不同的 GLSL 版本,因此您可以使用
#version定义要使用的版本。你在那里指定了哪个版本? -
我在哪里可以找到任何最近支持的版本的语法规范?
-
支持 GLSL 3.00 ES,如果您使用
#version 300 es定义它,那么您使用in和out而不是attribute和varying。我问这个问题是为了弄清楚您可以使用 GLSL 3 ES 的配置,同时允许使用attribute。知道我可以向您解释为什么会这样,这就是为什么我要问您在着色器中指定的版本。
标签: fragment-shader vertex-shader webgl2