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

发布于 2021-08-05 13:06:50 字数 1522 浏览 2302 评论 0

无论 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 目录下的一些案例。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

夜无邪

暂无简介

0 文章
0 评论
19447 人气
更多

推荐作者

qq_Yqvrrd

文章 0 评论 0

2503248646

文章 0 评论 0

浮生未歇

文章 0 评论 0

养猫人

文章 0 评论 0

第七度阳光i

文章 0 评论 0

新雨望断虹

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文