https://stackoverflow.com/questions/62074822/webgl-feedback-loop-formed-between-framebuffer-and-active-texture
GL_INVALID_OPERATION: Feedback loop formed between Framebuffer and active Texture.
错误消息指出存在帧缓冲对象(FBO)
和活动纹理
之间的反馈循环。
反馈循环指的是将一个纹理用作渲染到帧缓冲对象
的目标,并且同时将该纹理用作渲染的输入。
这种配置会导致问题,因为它创建了一个依赖于自身的循环,使得渲染结果无法确定。
const target = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight)
// ok, 纹理 和 帧缓冲对象 会建立绑定关系
renderer.render(scene, camera, target, true)
// ok, 绑定的纹理会成为 活动纹理。绑定多个对象(FBO和Material)可以的。但是绑定多个对象后不能渲染。
material.uniforms.textureA.value = target
// error, 该纹理使用形成循环了, 这个纹理同时作为输出和输入了。
renderer.render(scene, camera, target, true)
// 解决:
material.uniforms.textureA.value = null;