我正在用three.js 构建一个项目,我正在摆弄的一个想法是允许用户编写他们自己的着色器代码。来自用户的代码将动态加载到 gpu,就像在这个例子中一样。在这样的设置中,用户可以通过某种方式来显示由他的代码生成的编译时错误,从而使用户受益匪浅。我查看了上面示例中的代码,但这个实例直接与 WebGl 一起工作。
我是否可以考虑利用three.js 库来检测编译时着色器错误的任何替代方法?
我只是在猜测,但看起来你想要做的是使用 WebGL 来编译和链接着色器。如果有错误显示它们。如果编译和链接成功,则制作一个 three.js ShaderMaterial并传入刚刚工作的着色器源。
如果您在glsl.heroku.com/e上查看源代码,您可以在createShader
代码中看到它检查错误并尝试突出显示源代码中的特定行。