2017-03-21 118 views
-1

我是THREE.js的初學者,我想創建一個球體,我將用它來創建具有紋理的球體,但是我在創建MeshPhongMaterial時卡住了它什麼也沒有出現。否則,當我使用MeshBasicMaterial看來,MeshPhongMaterial沒有出現

這是我的代碼

var mainScene, camera, aspect, renderer; 

mainScene = new THREE.Scene(); 
aspect = window.innerWidth/window.innerHeight; 

camera = new THREE.PerspectiveCamera(40, aspect, 0.1, 100); 

renderer = new THREE.WebGLRenderer(); 
renderer.setSize(window.innerWidth, window.innerHeight); 

var canvasContainer = document.getElementById("canvasContainer"); 
canvasContainer.appendChild(renderer.domElement); 

var mesh = new THREE.Mesh(
    new THREE.SphereGeometry(0.5,32,32), 
    new THREE.MeshPhongMaterial({ 
    color: 0x00ff00, 
    wireframe: true 
    }) 
); 

mainScene.add(mesh); 

camera.position.z = 5; 

var render = function(){ 

     requestAnimationFrame(render); 
    renderer.render(mainScene, camera); 

     } 

render(); 

我不知道什麼是錯用此代碼,我應該使用MeshPhongMaterial辦呢?

謝謝

回答

1

MeshPhongMaterial需要場景燈。

下面是一種方法,但看看three.js的例子。

// ambient 
scene.add(new THREE.AmbientLight(0xffffff, 0.1)); 

// light 
var light = new THREE.PointLight(0xffffff, 1); 
camera.add(light); 

scene.add(camera); // required because the camera has a child 

three.js所r.84

+0

噢..謝謝你救這個我一天:d – Ampersanda