我遇到了 Object3D 组中的面上未接收到阴影的问题。
阴影从物体转换并被地面接收,但阴影在应该被接收的时候却没有被彼此接收。
我四处搜寻,但似乎找不到类似的问题,这让我相信我的设置不正确。
有人可以看一下吗?我在下面的 JSfiddle 中放置了一个工作示例。我认为这可能是我设置面孔的方式有问题。
https://jsfiddle.net/shanemccster/848k1qxh/
var makeobject = function(width, height, depth){
logger('makeobject fired');
var geometry = new THREE.BoxGeometry( width, height, depth );
var materials = [
new THREE.MeshLambertMaterial({ color: 0xffffff }),
new THREE.MeshLambertMaterial({ color: 0xffcc00 }),
new THREE.MeshLambertMaterial({ color: 0xffffff }),
new THREE.MeshLambertMaterial({ color: 0xffcc00 }),
new THREE.MeshLambertMaterial({ color: 0xffffff }),
new THREE.MeshLambertMaterial({ color: 0xffcc00 })
];
var texture = new THREE.MeshFaceMaterial( materials );
texture.minFilter = THREE.LinearFilter;
var theObject = new THREE.Mesh(geometry,texture);
theObject.recieveShadow = true;
theObject.castShadow = true;
return theObject;
}
最佳答案
您需要在网格物体上设置receiveShadow
标志。看Object3D的文档它是 Mesh
的父级。
关于javascript - ThreeJS 对象组中的面部未收到阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405299/