three.js - 将绘制的模型从 Blender 导出到 Three.js

标签 three.js blender shadow light

我尝试将 GLTF 模型从 Blender 导出到 Three.js。有用。但是我在 Three.js 上有一些带有光照和绘画的工件。我在 Three.js 中有线条和方 block ,我不知道为什么。

enter image description here

我只使用 Blender 中的 Principled BSDF 节点来绘制我的模型。如果我在 Three.js (MeshPhongMaterial) 中设置 Material ,它工作正常。但不是来自 Blender 的 Principled BSDF 节点。有什么想法吗?

enter image description here

我试图让物体转换阴影并对光照使用react。这适用于 MeshPhongMaterial 和 Principled BSDF。但是在第二个选项中,我不喜欢这些黑色条纹。

const INITIAL_MTL = new THREE.MeshPhongMaterial( { color: 0x575757, shininess: 10 } );
...
let theModel = gltf.scene;

        theModel.traverse((o) => {
            if (o.isMesh) {
                if (o.name == 'Foundation') {
                    o.material = INITIAL_MTL //Left part on screenshot with MeshPhongMaterial
                }
                o.castShadow = true;
                o.receiveShadow = true;
            }
        })

最佳答案

减轻自阴影伪影的常用方法是调制阴影转换光的 bias 属性。试试看:

light.shadow.bias = - 0.002;

关于three.js - 将绘制的模型从 Blender 导出到 Three.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71466789/

相关文章:

javascript - 基于球体顶点 ThreeJs 创建形状

javascript - 如何在网络浏览器中本地运行 Three.js 示例?

c++ - 如何使用Qt 3D库加载和显示Blender .obj源文件场景

jquery - 将阴影添加到文本框 onFocus

函数调用期间核心转储,找不到问题所在

javascript - 我们可以在 webGL 中用 HTML 元素制作平面几何吗?

3d - 使用 three.js 设置 Material (obj + mtl)后网格消失

Blender 2.8 视频编辑视频变暗

javascript - 三个JS导出Blender模型和动画变形

CSS Shadow IE8 及以下