2

我创建了一个 cubeCamera,它为我的一些实体的材质生成所有反射。

为了使它成为一个可以被任何需要它的元素访问的相机,我将它设为全局并通过一个自定义组件对其进行初始化,该组件在 <a-scene> 加载后调用。

//<a-scene init-experience>
var cubeCamera
AFRAME.registerComponent('init-experience', {
    init: function(){
        cubeCamera = new THREE.CubeCamera( 0.1, 5000, 512 );
        cubeCamera.renderTarget.texture.minFilter = THREE.LinearMipMapLinearFilter;
        cubeCamera.updateCubeMap( this.el.renderer, this.el.object3D );
        this.el.setObject3D('cube-camera', cubeCamera);
    },
    tick: function(){
        cubeCamera.updateCubeMap( this.el.sceneEl.renderer, this.el.sceneEl.object3D );
    }
});

这样,我以后可以创建一个对象并分配cubeCamera.renderTarget; 到它的envMap

一切都很好。

问题是,一旦我的场景加载并且tick:function()开始执行它的操作,我会收到以下错误: GL_INVALID_OPERATION : glDrawArrays: 绘制的源和目标纹理是相同的。

即使有这些错误,我的场景也可以在桌面和 android 上运行,但会在 iOS 上崩溃任何浏览器。

4

0 回答 0