2014-11-14 133 views
7

我試圖使用THREE.meshphongmaterial本教程:http://solutiondesign.com/webgl-and-three-js-texture-mapping/THREE.meshphongmaterial不工作 - 給黑顏色

但它不能正常工作,並給予黑色。下面是它的jsfiddle:http://jsfiddle.net/8hrk7mu6/12/

問題是在第32行:

var material = new THREE.MeshPhongMaterial({ ambient: 0x050505, color: 0x0033ff, specular: 0x555555, shininess: 30 }); 

爲什麼不工作?如果我使用THREE.MeshNormalMaterial,那麼它工作。

var material = new THREE.MeshNormalMaterial(); 

後來,我想從我的代碼中的圖像使用紋理。那也行不通。只有THREE.MeshNormalMaterial正在工作。爲什麼?

回答

18

原來有必要補充光線。沒有光線,meshphongmaterial會呈現黑色。

所以我不得不添加這樣的事情:

var light = new THREE.DirectionalLight(0xffffff); 
light.position.set(0, 1, 1).normalize(); 
scene.add(light); 

得到它從這個鏈接:https://github.com/mrdoob/three.js/issues/2766