我有许多GLSL片段着色器,我几乎可以保证它们符合#version 120
它们使用标准的,非ES符合的值,并且它们没有任何ES特定的编译指示。
我真的想使用WebGL为他们制作网络预览器。预览器不会在移动设备上使用。这可行吗?与GLSL版本相比,WebGL中的GLSL着色器是否限制了特征集?是否存在精确差异?
我已经尝试过使用THREE.js
,但这并没有真正磨擦它,因为它在将我的着色器代码加载到GPU之前弄乱了它(我无法做到)。
简而言之:GLSL规范是否足以让我运行这些着色器?...因为如果它不是我所追求的不可行而且我应该放弃它。
答案 0 :(得分:6)
不,WebGL着色器必须是版本#100。不允许任何其他事情。
如果你很好奇为什么会这样,因为WebGL需要尽可能地运行到处。如果您可以选择任何版本,您的网页只能在具有处理该版本的GPU /驱动程序的系统上运行。
下一版本的WebGL将提升版本号。它将允许GLSL ES 3.0(注意 ES )。截至2016年5月,它目前在Chrome和Firefox的旗帜下可用