反复收到错误THREE.WebGLRenderer.render

时间:2018-11-09 17:14:31

标签: javascript three.js

在添加功能更新部分之前,我的代码运行良好。但现在我不断收到错误消息:“ THREE.WebGLRenderer.render:相机不是THREE.Camera的实例”,而且我不知道如何解决。我知道在StackOverflow上也有同样的问题,但是它也没有很好的答案。

function init(){
var scene = new THREE.Scene();

var box = getBox(1 , 1, 1);
var plane = getPlane(4);

scene.add(box);
scene.add(plane);

box.position.y = box.geometry.parameters.height/2;
plane.rotation.x = Math.PI/2; 

var camera = new THREE.PerspectiveCamera(
    45,
    window.innerWidth/window.innerHeight,
    1,
    1000
);
camera.position.z = 5;
camera.position.x = 1;
camera.position.y = 2;

camera.lookAt(new THREE.Vector3(0, 0, 0));

var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth,window.innerHeight);
document.getElementById('webgl').appendChild(renderer.domElement);

 update(renderer,scene,camera);

return scene;
 }
function getBox(w, h, d){
var geometry = new THREE.BoxGeometry(w, h, d);
var material = new THREE.MeshBasicMaterial({
    color: 0x00ff00
});
var mesh = new THREE.Mesh(
    geometry,
    material
);
return mesh;
 }
function getPlane(size){
var geometry = new THREE.PlaneGeometry(size,size);
var material = new THREE.MeshBasicMaterial({
    color: 0xff0000,
    side : THREE.DoubleSide
});
var mesh = new THREE.Mesh(
    geometry,
    material
);
return mesh;
 }
function update(renderer, scene, camera) {
renderer.render(
    camera,
    scene
);
requestAnimationFrame(function () {
    update(renderer,scene,camera);
});
}
var scene = init();

1 个答案:

答案 0 :(得分:0)

问题出在“更新”功能中。

Intent

参数顺序错误。