我刚开始学习three.js,这对我来说完全是新的领域。所以我正在编写一系列的“hello world”脚本。下面的代码是我写的一个生成带有MeshBasicMaterial材质的立方体的脚本(这只是一个博客中给出的教程的完全复制)。
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, 640/340, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(640, 340);
document.body.appendChild(renderer.domElement);
var geometry = new THREE.CubeGeometry(1,1,1);
var material = new THREE.MeshBasicMaterial({color: 0xD43001});
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
camera.position.z = 5;
var render = function (){
requestAnimationFrame(render);
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
renderer.render(scene, camera);
};
render();
上面的脚本生成一个不断旋转的立方体,现在当我改变立方体的材质时,它仍然会不断旋转。
var material = new THREE.MeshBasicMaterial({color: 0xD43001});
to
var material = new THREE.MeshLambertMaterial({color: 0xD43001});
没有显示任何东西。我到底缺了什么?
更新
所以我必须添加一个光源来显示由网格Lambert材质制成的对象。当我添加了一个点光源时,对象就被显示了。