将颜色更改为接收阴影的材质

时间:2015-08-17 21:52:22

标签: javascript three.js

我正试图在整个场景中投射灯光以投射阴影。我有一个问题,因为他们不喜欢改变材料的颜色。阴影不会出现。 如何在将MeshLambertMaterial材质添加到场景后更改它的颜色,为什么不向我展示应该生成的光和阴影? 当我试图改变材料的颜色时,我全黑了。

这是我的代码:

  material = new THREE.MeshLambertMaterial( { color: "#FFFFFF",name:$scope.datosMunicipio[i].nombre} );
  objMesh = new THREE.Mesh( extrude_geometrY, material );
  objMesh.receiveShadow = true;

var lightAmbient = new THREE.AmbientLight(0x000000);
scene.add(lightAmbient);

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

objMesh.material.color.set("#FF0000"); //Ineed change the color

2 个答案:

答案 0 :(得分:0)

使用setHex以十六进制表示法应用颜色:

objMesh.material.color.setHex( 0xFF0000 );

但是你可以set THREE.Color这样:

var redColor = new THREE.Color( 0xFF0000 );
objMesh.material.color.copy( redColor );

详细了解颜色:http://threejs.org/docs/#Reference/Math/Color

答案 1 :(得分:0)

我认为你应该改变光的颜色。除非我们在外部添加灯光,否则MeshLambertMaterial或MeshPhongMaterial对颜色无效。