当我的 ThreeJS 自定义着色器包含错误时,我会在渲染阶段在 JS 控制台中收到非常神秘的 INVALID_OPERATION
消息:
WebGL: INVALID_OPERATION: useProgram: program not valid
有没有办法获得更有用的日志,例如getShaderInfoLog()返回的日志?
(为了快速测试这一点,可以在 this app 的着色器中添加错误。)
最佳答案
出于性能原因,two.js R104
在编译着色器程序时不再执行错误检查和报告。然而,多名用户提示这一更改,因此最近已将其恢复。在下一个版本 R105
中,一切都会像以前一样(请参阅 migration guide )。
不过,您可以通过将 renderer.debug.checkShaderErrors
设置为 true
来手动启用 R104
中的先前行为。
关于three.js - 三JS : Get useful shader build log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001055/