WebGL三.js立方体相机映射



在遵循了三个不同的立方体映射指南之后.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/

最新更新