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.js
、PLYExporter.js
等库的应用可以参考 three.js-master\examples
目录下的一些案例。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Three.js 层级模型 Group
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论