繁体   English   中英

如何从gltf对象获取几何体

[英]How can I get the geometry from a gltf object

我使用了three.js来获得gltfloader的gltf,我想创建一个粒子系统。 我需要得到几何对象,我怎么能得到它

function initModel() {

    var planeGeometry = new THREE.PlaneGeometry(100, 100);
    var planeMaterial = new THREE.MeshLambertMaterial({color: 0xaaaaaa, 
    side: THREE.DoubleSide});
    var plane = new THREE.Mesh(planeGeometry, planeMaterial);
    plane.rotation.x = -0.5 * Math.PI;
    plane.position.y = -.1;
    plane.receiveShadow = true; 
    scene.add(plane);

    var loader = new THREE.GLTFLoader();
    loader.load('./../model/scene.gltf', function (gltf) {  
        gltf.scene.scale.set(10,10,10);
        //how to get the geometry?

    });


}

您可以遍历模型以查找网格,或者在知道名称时使用getObjectByName(MeshName),并从网格中选择几何体。 就像是

var geometry = getObjectByName('Plane001').geometry;

如果网格的名称是Plane001

我有一个简单的帮助方法来从对象中查找所有类型的子类

findType(object, type) {
    object.children.forEach((child) => {
        if (child.type === type) {
            console.log(child);
        }
        this.findType(child, type);
    });
}

从加载器我将调用findType(gltf.scene, 'Mesh')打印出模型中的所有网格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM