从对象 (THREE.JS 和 GLTF) 创建网格数组



下面是我的一段代码,它将网格加载到对象上。此刻,它贯穿了整个事情。

当前代码:

var loader = new THREE.GLTFLoader();
loader.load( '../gtf/Box.gltf', function ( gltf ) {
model = gltf.scene;
gltf.scene.traverse( function ( child ) {
if ( child.isMesh ) {
child.material.map = texture;
}
} );
scene.add( model);
} );

我将如何制作一系列children[]?然后,每个孩子将允许我分配单独的纹理。

我在Blender中用单独的网格和材质制作了模型。

在THREE.JS中,我希望能够:

children[0].material.map = blueTexture;
children[1].material.map = greenTexture;

如果我正确理解您的问题,您可以执行以下操作:

var loader = new THREE.GLTFLoader();
loader.load( '../gtf/Box.gltf', function ( gltf ) {
model = gltf.scene;
var children = []
// Construct array of children during traversal of gltf object
gltf.scene.traverse( function ( child ) {
if ( child.isMesh ) {
children.push(child)
}
} );
// Assuming array length is 2 or more, and blueTexture/greenTexture are defined
children[0].material.map = blueTexture;
children[1].material.map = greenTexture;
scene.add( model);
} );

最新更新