javascript 从Thre.js中的GLTFLaoder().load()创建网格

wz3gfoph  于 2023-01-29  发布在  Java
关注(0)|答案(1)|浏览(101)

我有一个本地3D对象模型,我加载它:

const loader = new GLTFLoader();
loader.load("path/to/model", gltf => {
  scene.add(gltf.scene);
});

我应该如何从gltf创建一个mesh,因为当我尝试:

loader.load("path/to/model", (geometry, materials) => {
  var mesh = new THREE.Mesh(geometry, materials);
  scene.add(mesh);
  mesh.position.z = -10;
});

我得到错误:
无法将undefined转换为对象

prdp8dxp

prdp8dxp1#

我发现,实际上通过修改第一个函数上面这样:

loader.load("path/to/model", gltf => {
  var object = gltf.scene.children[0];
  scene.add(gltf.scene);
});

才是解决之道。
因为现在object变量完全可以像普通网格一样处理。也许video可以帮助你。

相关问题