我正在使用从Blender导入的GLTF模型。 当我添加一些其他物体(例如平面)时,它的渲染器不正确。 也给我一个错误 like this 加载gltf模型时,我发现了如下修复方法:
mesh.traverse(function (child) {
if (child.isMesh) {
if (child.material) {
child.material.dispose();
}
child.geometry = new THREE.Geometry().fromBufferGeometry(child.geometry);
child.geometry.computeFaceNormals();
}
});
除了带有动画的模型外,它都很好用。因为将几何图形从缓冲更改为非缓冲会中断动画。所以我不知道该怎么办,因为没有这个
child.geometry = new THREE.Geometry().fromBufferGeometry(child.geometry);
child.geometry.computeFaceNormals();
这是行不通的(渲染器无法渲染),但是使用此模型动画会中断。
解决方案
我要更改
import * as THREE from "three";
到
import * as THREE from "three/build/three.module";
及其作品!