gpt4 book ai didi

javascript - THREE.OBJLoader 蒙上了阴影?

转载 作者:行者123 更新时间:2023-12-03 02:31:01 26 4
gpt4 key购买 nike

我正在尝试使对象转换并接收阴影,

场景中有一个光源THREE.SpotLight

这是我的 MTLLoader() 和 OBJLoader() 代码

        var mtlLoader = new THREE.MTLLoader();
mtlLoader.setBaseUrl('assets/');
mtlLoader.setPath('assets/');
mtlLoader.load('komoda.mtl', function (materials) {
materials.preload();
materials.materials.lambert2SG.map.magFilter = THREE.NearestFilter;
materials.materials.lambert2SG.map.minFilter = THREE.LinearFilter;

materials.materials.lambert3SG.map.magFilter = THREE.NearestFilter;
materials.materials.lambert3SG.map.minFilter = THREE.LinearFilter;

var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath('assets/');
objLoader.load('komoda.obj', function (object) {
object.castShadow = true;
object.receiveShadow = true;
scene.add(object);
});
});

完整的js代码:https://a3d.joladev2.com/webgl2/webgl-attempt.js

这是在线示例:https://a3d.joladev2.com/webgl2/index.html

谢谢

编辑:我添加了 jsfiddle,但无法在 jsfiddle 上加载 Material

https://jsfiddle.net/fcb9qoco/23/

谢谢

编辑 2:已解决 - 有 2 个问题,一个是 SpotLight.shadow.camera.near = 500;

正确的值为10,因此spotLight.shadow.camera.near = 10;

谢谢@gaitat

第二个是平面对象没有 receiveShadow = true;

现在有了,谢谢@Jim Tang

最佳答案

在线示例无法在我的 chrome 上运行,所以我无法判断,但在我的“Three.js Inspector”调试选项卡中显示了层次结构:

Scene
+- SpotLight
+- Group
|- plane <-- check this Mesh object receiveShadow property
|- komoda

关于javascript - THREE.OBJLoader 蒙上了阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com