threejs着色圆柱体

时间:2013-12-27 03:59:49

标签: javascript three.js

我正在尝试画一个巧克力色为0xd2691e的圆柱体,但是当我使用时:

var cylinder = new THREE.Mesh(new THREE.CylinderGeometry(100, 100, 100, 100, 50, false), new THREE.MeshNormalMaterial({ color: 0xd2691e }));

它不会改变颜色。当我使用

var cylinder = new THREE.Mesh(new THREE.CylinderGeometry(100, 100, 100, 100, 50, false), new THREE.MeshBasicMaterial({ color: 0xd2691e }));

它确实改变了颜色,但顶面的颜色与边相同,因此它最终像一个blob而没有显示圆柱3D形状。

我检查了this question,它确实随机改变了脸部的颜色,但我想要一些方法来区分顶部和侧面的颜色。

1 个答案:

答案 0 :(得分:2)

您应该使用MeshLambertMaterial。此外,请确保场景有灯,否则不会显示。

var scene = new THREE.Scene();

var cylinder = new THREE.Mesh(new THREE.CylinderGeometry(100, 100, 100, 100, 50, false), new THREE.MeshLambertMaterial({ color: 0xd2691e }));
scene.add( cylinder );

var light = new THREE.PointLight( 0xffffff );
light.position.z = 200;
scene.add( light );