javascript - ThreeJS 对象组中的面部未收到阴影

标签 javascript three.js

我遇到了 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 的父级。

https://jsfiddle.net/woa7kzz1/

关于javascript - ThreeJS 对象组中的面部未收到阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40405299/

相关文章:

javascript - React.js 中的安全问题

javascript - 运行 Node 程序时出错。模块 'prompt' 不工作

javascript - 用于替换字符串中脏话的正则表达式

three.js - 向这个 obj 的每一侧添加不同的颜色

html - three.js 阴影截止

javascript - 计算任意轴上物体的世界向上向量(ThreeJS)

javascript - 在本地计算机上 : How can I download and save a file using Javascript and ActiveX?

使用 Bootstrap3 忽略 PHP 代码的 Javascript WYSIWYG

javascript - Three.js 和 MVC

javascript - 使用 Three.js 启用平滑着色