Estoy usando una CubeCamera con WebGLCubeRenderTarget para representar el reflejo circundante similar al ejemplo aquí: https://threejs.org/examples/#webgl_materials_cubemap_dynamic
Pero el ejemplo sigue dando este error:
[.WebGL-000052760009C700] GL_INVALID_OPERATION: bucle de retroalimentación formado entre Framebuffer y la textura activa.
¿Alguien ve el problema? Mi código:
const reflection=()=> { renderer.outputEncoding = THREE.sRGBEncoding; // for post processing pass cubeRenderTarget1 = new THREE.WebGLCubeRenderTarget( 256, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter, encoding: THREE.sRGBEncoding // prevents the material's shader from recompiling every frame } ); cubeCamera1 = new THREE.CubeCamera( .01, 10, cubeRenderTarget1 ); cubeCamera1.position.z = 3 cubeCamera1.position.y = -4 reflectionMaterial = new THREE.MeshBasicMaterial( { envMap: cubeRenderTarget1.texture, color: 0x011111, } ); } reflection() gltfLoader.load( '/exportPackages/sceneMaya.glb', (gltf) => { let meshGLB= gltf.scene.children.find(child => child.name === 'mesh_0') meshGLB.material = reflectionMaterial scene.add(gltf.scene) }) const animate =()=> { cubeCamera1.update( renderer, scene ); }; animate()La solución: necesitaba agregar
meshGLB.visible = false; cubeCamera1.update( renderer, scene ); meshGLB.visible = true; en mi animate() para evitar que el material se renderice solo.