为什么我需要点击并稍微移动一下鼠标才能在ThreeJS中看到场景呢?
所以,页面完全是黑色的,但是一旦我点击并移动,一切都出现了,我找不到问题所在。希望能得到一点帮助 :)
所以,页面完全是黑色的,但是一旦我点击并移动,一切都出现了,我找不到问题所在。希望能得到一点帮助 :)
var origWidth = 1280;
var origHeight = 720;
//TODO WindowResize looks wierd, implement it properly
//var width = window.innerWidth;
//var height = window.innerHeight;
var width = origWidth;
var height = origHeight;
var Top = origHeight/2;
var Bottom = -origHeight/2;
var Left = -origWidth/2;
var Right = origWidth/2;
var renderer = null;
var scene = null;
var camera = null;
var Textures = {};
//Set the renderer engine
renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(width, height);
document.getElementsByTagName("body")[0].appendChild(renderer.domElement);
renderer.shadowMapEnabled = true;
renderer.shadowMapSoft = true;
//Setup the Scene!
scene = new THREE.Scene;
//Camera
camera = new THREE.PerspectiveCamera(45, origWidth / origHeight, 0.1, 10000);
camera.position = new THREE.Vector3(0,-80,800);
scene.add(camera);
camera.lookAt(scene);
//TODO WindowResize looks wierd, implement it properly
//var windowResize = THREEx.WindowResize(renderer, camera);
//Light
var pointLight = new THREE.PointLight(0xffffff);
pointLight.position.set(0, 0, 900);
scene.add(pointLight);
//Debug
controlsObj = new THREE.OrbitControls(camera);
controlsObj.addEventListener('change', render);
axes = new THREE.AxisHelper( origWidth );
scene.add( axes );
/*var size = 10;
var step = 1;
var gridHelper = new THREE.GridHelper( size, step );
gridHelper.position = new THREE.Vector3( 10, 10, 0 );
gridHelper.rotation = new THREE.Euler( 45, 0, 0 );
scene.add( gridHelper );*/
var pointLightHelper = new THREE.PointLightHelper( pointLight, 10 );
scene.add( pointLightHelper );
//Add playing field
tablegeometry = new THREE.BoxGeometry(origWidth, origHeight, 40);
tablematerial = new THREE.MeshLambertMaterial({ color: 0xffff00, map: Textures.bg, side: THREE.DoubleSide });
tableobj = new THREE.Mesh(tablegeometry, tablematerial);
tableobj.position.set(0,0,-20); //TODO vec
scene.add(tableobj);
//ANNNND, Action !
render();
function render() {
console.log("render");
renderer.render(scene, camera);
}
gridHelper.position = new THREE.Vector3( 10, 10, 0 );
更改为gridHelper.position.set( 10, 10, 0 )
,并将gridHelper.rotation = new THREE.Euler( 45, 0, 0 );
更改为gridHelper.rotation.set( 45, 0, 0 );
。 - mrdoobcamera.lookAt(scene.position)
进行实验。更好的方法是尝试使用最近版本的three.js r.67。 - WestLangley