在添加功能更新部分之前,我的代码运行良好。但现在我不断收到错误消息:“ 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();
答案 0 :(得分:0)
问题出在“更新”功能中。
Intent
参数顺序错误。