2017-03-21 125 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