-
引入obj格式加mtl
可能会报错,百度修改报错行 -
引入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.低版本文件的引入。