threejs 递归遍历层级模型修改材质 学习笔记

threejs yekong

加载一个外部模型,比如gltf模型,如果你想批量修改每个Mesb的材质,一个一个设置比较麻烦,可以通过递归遍历方法.traverse() 批量操作更加方便。

递归遍历方法traverse()

// 递归遍历gltf.scene
gltf.scene.traverse(function (object) {
  if (object.isMesh) { //判断是否是网格模型
    console.log('模型节点', object)
    console.log('模型名称', object.name)
  }
})

查看gltf默认的材质

.obj、.gitf、.fbx等不同格式的模型,threejs加载默认的材质可能不同,通过浏览器控制台log打印即可 console.1og(obj.material).

threejs解析gltf模型默认材质一般是 MeshStandardMaterial 或 MeshPhysicalMaterial.

喜欢