能否在WebGL中运行#version 120的着色器?

10

我有多个 GLSL 片段着色器,可以基本保证它们符合 #version 120 标准,使用标准的非 ES 兼容值,并且没有任何 ES 特定的编译指示。

我真的想为它们制作一个使用 WebGL 的 Web 预览器。预览器不会在移动设备上使用。这可行吗?与 GLSL 版本相比,WebGL 中用于 GLSL 着色器的功能集是否受到限制?存在精度差异吗?

我已经尝试过使用 THREE.js,但它不能很好地运行我的着色器代码(因为它在将代码加载到 GPU 之前就搞砸了)。

简而言之:GLSL 规范是否足以运行这些着色器?如果不行,那么我需要做的事情是不可行的,我应该放弃它。

1个回答

12
不行,WebGL着色器必须是100版本。其他版本都是不允许的。
如果你好奇为什么,那是因为尽可能地让WebGL在所有地方运行。如果你可以选择任何版本,你的网页只能在处理该版本的GPU /驱动程序系统上运行。
下一个版本的WebGL将会提高版本号。它将允许GLSL ES 3.0(请注意ES)。截至2016年5月,它已经在Chrome和Firefox的标志后面可用。

谢谢。这让我感到难过(尽管这是一个非常特定的用例)。 - Julik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接