2017-03-16 21 views
0

我想顯示一個簡單的平面和一個簡單的立方體,但平面隱藏立方體,立方體位於相機和平面之間,但飛機「隱藏」立方體。Three.js渲染不顯示簡單的立方體當我想顯示簡單的網格

這是我的場景沒有飛機: image

,並在這裏它與飛機補充說: image

我敢肯定他們是在立方體應被顯示的位置。

這裏是我的代碼:

var scene = new THREE.Scene(), 
    camera = new THREE.PerspectiveCamera(45,Window.innerWidth,window.innerHeight,0.1,1000), 
    renderer = new THREE.WebGLRenderer({ antialias: true }); 

renderer.shadowMapEnabled = true; 
renderer.shadowMapSoft = true; 

var axes = new THREE.AxisHelper(20); 
scene.add(axes); 

var cubeGeometry = new THREE.CubeGeometry(4,4,4); 
var cubeMaterial = new THREE.MeshBasicMaterial({color:0x777777}); 
var cube = new THREE.Mesh(cubeGeometry,cubeMaterial); 
//cube.castShadow = true; 
cube.position.x = 0; 
cube.position.y = 10; 
cube.position.z = 5; 
scene.add(cube); 



var planeGeometry = new THREE.PlaneGeometry(60,20); 
var planeMaterial = new THREE.MeshBasicMaterial({color: 0x55cc88}); 
var plane = new THREE.Mesh(planeGeometry,planeMaterial); 
plane.rotation.x = -0.5*Math.PI; 
plane.position.x = 15; 
plane.position.y = 0; 
plane.position.z = 0; 
//scene.add(plane); 
//plane.receiveShadow = true; 



camera.position.x = -30; 
camera.position.y = 40; 
camera.position.z = 30; 
camera.lookAt(scene.position); 

var spotLight = new THREE.SpotLight(0xffffff); 
spotLight.position.set(-40,60,-10); 
scene.add(spotLight); 


//renderer.setClearColor(0xEEEEEE,1); 
renderer.setSize(window.innerWidth,window.innerHeight); 


renderer.render(scene,camera); 


$("#WebGl-salida").append(renderer.domElement); 

回答

0

要注意參數的對象和秩序,正確的名稱的方法:

camera = new THREE.PerspectiveCamera(45,Window.innerWidth,window.innerHeight,0.1,1000) 

應該是這樣的:

camera = new THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.1,1000) 

jsfiddle示例

0

非常感謝!無論是回答問題還是建議編輯問題以使其更易於理解(我的英語必須改進)現在它的工作完美無缺。