threejs引入不同文件报错

  1. 引入obj格式加mtl
    可能会报错,百度修改报错行

  2. 引入fbx格式文件
    导出文件版本问题导致不加载(不低于7000)
    导出文件可能不存在贴纸或纹理。
    都为导出文件问题。

无论引入哪种格式,都要把文件放在静态文件下。
vue-cli2放在static中,引入路径 /static/。。
vue-cli3要放在public中,路径为PROCESS_ENV_BATH_URL(localhost:8080) + 文件名。(不需要加public)

3.引入gltf文件

出现模型颜色暗淡问题
var loader = new THREE.GLTFLoader();
loader.load( ‘xxx.gltf’, function ( gltf ) {
//需要添加的部分
gltf.scene.traverse( function ( child ) {
if ( child.isMesh ) {
child.material.emissive = child.material.color;
child.material.emissiveMap = child.material.map ;
}
} );

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
scene.add( gltf.scene );

    }, undefined, function ( e ) {

        console.error( e );

    } );

4.模型加载显存占用过大,清除操作
// 从scene中删除模型并释放内存
if(this.meshList.length > 0){
for(var i = 0; i< this.meshList.length; i++){
var currObj = this.meshList[i];
// 判断类型
if(currObj instanceof THREE.Scene){
var children = currObj.children;
for(var i = 0; i< children.length; i++){
this.deleteGroup(children[i]);
}
}else{
this.deleteGroup(currObj);
}
this.scene.remove(currObj);
}
}
},
// 删除group,释放内存
deleteGroup(group) {
console.log(group)
if (!group) return;
// 删除掉所有的模型组内的mesh
group.traverse(function (item) {
if (item instanceof THREE.Mesh) {
item.geometry.dispose(); // 删除几何体
item.material.dispose(); // 删除材质
}
})
},

剩余问题:
1.rvt文件转换为其他格式文件。
2.低版本文件的引入。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值