WebGL教程_Three.js教程_郭隆邦技术博客 郭隆邦_技术博客 一对一班

Three.js保存导出.ply、.obj、.GLTF等格式三维模型

无论Three.js加载的任意格式三维模型,还是通过Threejs的API创建的一个三维模型,都可以导出为一个文件保存三维场景的数据。 你可以自定义提取保存Three.js中任何的三维场景信息,比如Threejs中的光源数据保存,threejs中的几何体顶点数据提取保存,你也可以按照一定的标准导出特定格式的三维模型,比如导出.obj格式、.GLTF格式、.ply格式....

.toJSON()方法

通过Three.js各个对象的.toJSON()方法可以保存Threejs自己格式的JSON文件,比如你通过Threejs开发一个三维建模软件,想保存Threejs中创建个立方体、球体等三维模型的顶点、材质等数据,就可以通过.toJSON()方法实现。

可以在控制台查看导出的几何体数据

var geometry = new THREE.BoxGeometry(36, 25, 78);
console.log(geometry);
console.log(geometry.toJSON());
// JSON对象转化为字符串
console.log(JSON.stringify(geometry.toJSON()));
// JSON.stringify()方法内部会自动调用参数的toJSON()方法
console.log(JSON.stringify(geometry));

导出一个层级模型的所有数据

console.log(group.toJSON());
// JSON格式转化为字符串
console.log(JSON.stringify(group.toJSON()))

其它格式

通过Threejs保存为非Threejs自身格式的其它通用格式,比如常见的obj、ply等格式模型,比如Web3D应用常用的GLTF格式模型。 Threejs数据保存为通用格式其它的WebGL或OpenGL三维引擎都可以很方便解析调用。

在three.js-master官方文件包的\examples\js\loaders目录下提供了各种各样的针对特定格式三维模型加载器的 ,同样three.js-master提供有加载器js库,也有一些导出器的js库,具体参考目录\examples\js\exporters,比如用于导出.GLTF格式三维模型的js库GLTFExporter.js,用于导出.obj格式三维模型的js库OBJExporter.js,用于导出.ply格式三维模型的js库PLYExporter.js,用于导出.stl格式三维模型的js库STLExporter.js

GLTFExporter.jsPLYExporter.js等库的应用可以参考three.js-master\examples目录下的一些案例。

本站版权所有,本站任何内容未经允许不得转载   备案号:豫ICP备16004767号 QQ群:187740169 (WebGL-Three.js教程)   邮箱:guolongbang@163.com