Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阴影在(THREE.js r82)中不可见_Javascript_Three.js - Fatal编程技术网

Javascript 阴影在(THREE.js r82)中不可见

Javascript 阴影在(THREE.js r82)中不可见,javascript,three.js,Javascript,Three.js,我试图用MeshLambertMaterial将立方体的阴影投射到平面上,但没有显示阴影 我发现的解决方案通常归结为对象不在平截头体内部,但对象似乎在平截头体中 你知道我做错了什么吗?我是否将某些属性设置为疯狂值?任何帮助都将不胜感激。我在这里加入了一把小提琴来显示我的工作代码: 这里有两个问题:一个是材料的再利用。不知道为什么这是一个问题,但这解决了它 const mesh4 = new THREE.Mesh(plane, new THREE.MeshLambertMaterial({ col

我试图用MeshLambertMaterial将立方体的阴影投射到平面上,但没有显示阴影

我发现的解决方案通常归结为对象不在平截头体内部,但对象似乎在平截头体中

你知道我做错了什么吗?我是否将某些属性设置为疯狂值?任何帮助都将不胜感激。我在这里加入了一把小提琴来显示我的工作代码:


这里有两个问题:一个是材料的再利用。不知道为什么这是一个问题,但这解决了它

const mesh4 = new THREE.Mesh(plane, new THREE.MeshLambertMaterial({ color: 0xff0000}));
另一个是,您已经注释掉了使平行光投射相当大阴影的线条。特别是平行光,仅在所有这些
light.shadow.camera.*
属性定义的框内投射阴影。确保这些内容未注释:

light.shadow.camera.left = -width / 2;
light.shadow.camera.right = width / 2;
light.shadow.camera.top = -height / 2;
light.shadow.camera.bottom = height / 2;

摆弄这些变化:

非常感谢。我以为我是在做一些有效的资源利用材料,没有想到它会影响阴影。阴影摄影机属性是有意义的,但在尝试所有不同的组合时,我取消了它们的注释,认为它们什么也没做。
light.shadow.camera.left = -width / 2;
light.shadow.camera.right = width / 2;
light.shadow.camera.top = -height / 2;
light.shadow.camera.bottom = height / 2;