举荐:将NSDT场景编辑器退出你的3D工具链其余工具集:NSDT简石数字孪生递归遍历层级模型批改材质加载一个内部模型,比方gltf模型,如果你想批量批改每个Mesh的材质,一个一个设置比拟麻烦,能够通过递归遍历办法.traverse()批量操作更加不便。递归遍历办法.traverse()递归遍历gltf所有的模型节点。// 递归遍历所有模型节点批量批改材质
gltf.scene.traverse(function(obj) {

if (obj.isMesh) {//判断是否是网格模型    console.log('模型节点',obj);    console.log('模型节点名字',obj.name);}

});
查看gltf默认的材质.obj、.gltf、.fbx等不同格局的模型,threejs加载默认的材质可能不同,不过也不必刻意记忆,通过浏览器控制台log打印即可console.log(obj.material)。

threejs解析gltf模型默认材质个别是MeshStandardMaterial或MeshPhysicalMaterial,相比拟其它网格材质,这两个材质属于PBR物理材质,能够提供更加实在的材质成果// 递归遍历所有模型节点批量批改材质
gltf.scene.traverse(function(obj) {

if (obj.isMesh) {    console.log('gltf默认材质',obj.material);}

});
批量批改gltf所有Mesh的材质gltf.scene.traverse(function(obj) {

if (obj.isMesh) {    // 从新设置材质    obj.material = new THREE.MeshLambertMaterial({        color:0xffffff,    });}

});