在Three.js中的MeshPhongMaterial或MeshLambertMaterial上投射阴影

时间:2014-07-14 19:24:40

标签: three.js textures shadow

我觉得我在这里错过了一些简单的东西。

我使用了JSFiddle by @WestLangley,它演示了如何将阴影从一个物体投射到一个平面上。

当飞机充满颜色时,一切都按预期工作:

var groundMaterial = new THREE.MeshLambertMaterial({
  color: 0xFF0000
});

enter image description here

然后我改为使用纹理代替:

var groundMaterial = new THREE.MeshLambertMaterial({
  // color: 0xFF0000,
  map: texture
});
突然,阴影消失了:

enter image description here

MeshPhongMaterialMeshLambertMaterial都会发生这种情况。

请注意,相机位置和阴影配置均未更改。一切都保持不变,但阴影消失了。

纹理是否应该被告知"接收光还是其他东西?

在r61,r66,r67上测试。

1 个答案:

答案 0 :(得分:0)

这是一个非常老的问题,但是为了提供一些结束语,我想指出的是,此问题所在的版本已得到修复。小提琴使用Three.js r66,但是最新的(在撰写本文时为r107)不再存在此问题:

enter image description here