如何从 THREE.JS 中的场景中获取所有材质

How to get all materials from a scene in THREE.JS

我正在导入一个 .glb 模型,并在此文件中包含一些未应用于任何网格的材质。 所以我的问题是 THREE.JS 存在一些东西,比如场景中所有材质的数组,或者我是否可以在使用 GLTFLoader 加载模型时获得一些我的材质。

您可以遍历已解析的 glTF 资产并将所有材料收集到一个集合中。类似于:

const materials = new Set();
const scene = gltf.scene;

scene.traverse( function( object ) {

    if ( object.material ) materials.add( object.material );

} );