当我的ThreeJS自定义着色器包含错误时,在渲染阶段,我会在JS控制台中收到非常神秘的INVALID_OPERATION
消息:
WebGL: INVALID_OPERATION: useProgram: program not valid
有没有办法获取更有用的日志,例如getShaderInfoLog()返回的日志?
(要进行快速测试,可以在this app的着色器中添加错误。)
答案 0 :(得分:5)
出于性能考虑,three.js R104
在编译着色器程序时不再执行错误检查和报告。但是,多个用户抱怨此更改,因此最近已将其还原。在下一个版本R105
中,情况将与以前一样(请参见migration guide)。
但是,您可以通过将R104
设置为renderer.debug.checkShaderErrors
来手动打开true
中的先前行为。