在遵循了三个不同的立方体映射指南之后.js,我总是在控制台中发现相同的错误:
- " ebGL: INVALID_FRAMEBUFFER_OPERATION: drawElements: attachment 有一个0维"
- "ebGL: INVALID_FRAMEBUFFER_OPERATION: drawArrays: attachment 有一个 0维度"
- "[.WebGLRenderingContext]渲染警告:纹理绑定到纹理单元 0 不可渲染。它可能不是 2 的幂并且有纹理过滤不兼容或不是'纹理完成'"
这三个错误在控制台中多次重复。
这是我试图模仿的指南和现场示例:
指南 1
现场示例
现在我的代码类似于实时示例中的代码:
cubeCameraBottom1 = new THREE.CubeCamera(0.1, 5000, 512 );
scene.add(cubeCameraBottom1);
var provacylGeometry = new THREE.CylinderGeometry(8, 8, 70, 32, 32);
var provacylinderMaterial = new THREE.MeshPhongMaterial( { envMap: cubeCameraBottom1.renderTarget } );
provaCil = new THREE.Mesh( provacylGeometry, provacylinderMaterial );
provaCil.position.set(0,0,-20);
provaCil.castShadow = true;
cubeCameraBottom1.position = provaCil.position;
scene.add(provaCil);
这是渲染函数:
function render()
{
provaCil.visible = false;
cubeCameraBottom1.updateCubeMap( renderer, scene );
provaCil.visible = true;
renderer.render( scene, camera );
}
我哪里出错了?看起来立方体相机没有以正确的方式计算纹理。我该如何解决这个问题?提前致谢
在示例中,他们使用了 r60。也许这就是问题所在,也许这可以帮助您:
https://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/