threejs 加载obj模型

            var OBJLoader = new THREE.OBJLoader();//obj加载器
            var MTLLoader = new THREE.MTLLoader();//材质文件加载器
            MTLLoader.load(modelData.mtl, function (materials) {
                //obj的模型会和MaterialCreator包含的材质对应起来
                OBJLoader.setMaterials(materials);
                OBJLoader.load(modelData.url, function (obj) {//url自己定义
                    //第一个表示模型路径,第二个表示完成导入后的回调函数
                    //一般我们需要在这个回调函数中将导入的模型添加到场景中
                    obj.traverse(function (child) {
                        if (child instanceof THREE.Mesh) {
                            obj.scale.set(modelData.scale.x, modelData.scale.y, modelData.scale.z);
                            obj.position.set(modelData.position.x, modelData.position.y, modelData.position.z);
                            child.material.transparent = true;//材质透明
                            console.log("child");
                        }
                    });
                    mainBody = obj;
                    scene.add(obj);//返回的组对象插入场景中

                    if (drawData.imgList) scene.remove(drawData.imgList);

                    // 记录新加载的mesh
                    drawData.imgList = obj;
                })
            })

猜你喜欢

转载自blog.csdn.net/qq_41629249/article/details/106643493