大型的obj文件如何处理和加载

做环物测试的时候使用的obj文件很小,加载起来也没那么耗时,但是很多情况下,得到的obj文件都会很大,例如三维扫描仪扫描出来的文件,动辄就是几百MB,直接加载变得不太现实,因此我们需要处理它。

1.obj文件处理为gltf文件

2.gltf文件压缩为更小的gltf文件

如何处理?其实很简单,只需要借助node.js的npm的node_modules的两个插件,obj2gltf和gltf-pipeline,这里不再单独讲述如何安装了。

obj2gltf -i model,obj
gltf-pipeline -i model.gltf -d -t

其中-i是选择需要处理的文件,-d为压缩,-t则图片不再压缩到gltf中,单独拉出来。

这样几百MB的obj文件可以压缩到10MB以内。

注意事项

一般来说,我们获取到obj文件之后,需要导入到3dsmax等工具中处理,例如更改模型坐标,角度等等,当我们导出来的时候会发现,导出来的文件比导入的文件大?明明什么都没加,只是改个坐标,旋转个角度,为什么会发生如此大的变化?其实这些变化的起因都是因为法线,一个模型很多扫描仪都会给3个文件,分别为obj,mtl和纹理贴图。此时的obj文件并不包含法线数据,而从3dsmax再次导出为obj的时候,默认会添加法线选项,所以导出来的obj文件会变大。

你可能感兴趣的:(3d,three.js)