gpt4 book ai didi

json - Three.js:减少模型文件大小的方法?

转载 作者:行者123 更新时间:2023-12-01 05:30:22 25 4
gpt4 key购买 nike

目前,我使用 ObjectLoader 将所有模型加载到场景中。我还使用 Three.js 编辑器来应用纹理。我目前的做法是从 3Ds Max 导出 OBJ 文件并将其导入 Three.js 在线编辑器,然后在其中添加纹理。

OBJ 文件约为 30mb,但导出的 JSON 文件几乎为 100mb。怎么会有这么大的差别呢?纹理尺寸非常小,所以这不是原因。有谁对此有任何见解或有更好的方法吗?

最佳答案

您的原始 obj 文件可能不包含法线和 UV 列表。当您添加纹理时,仅这一事实就可以轻松地将文件大小推至 300%。

OBJ 是一种传统的逐行格式。 JSON 是一个多维对象,包含所有内容。 JSON 中的数组和对象带有重要的足迹,例如逗号、引号、括号和重要的换行符(如果不考虑的话),以及可能出现重复的标记。 Three.js 开发人员在 3d json 格式上非常聪明,不重复元信息。

相比之下,OBJ 格式在每行仅使用简单的一个和两个字母指示符,并在每行上使用空格分隔值。

例如:

f v1 v2 v3

虽然经过简化,但这使得 OBJ 文件更难以使用,并且在 Three.js 中使用 ObjLoader 和 ObjLoader2 存在加载限制,而加载 json 文件时则不存在这些限制。

您选择哪种文件类型取决于您。 Threejs 具有各种格式的加载器和导出器,例如 STL 和 Collada,并且包括 obj 导出。

Exporters

Loaders

无论使用 json 还是 obj,在向浏览器提供 3D 模型时,使用 JIT GZIP 正确设置服务器至关重要。请参阅this decent article我刚刚通过谷歌找到的。这将简化 3D 数据的服务。

减小 3D 模型尺寸以便在网络或游戏中交付的正确方法是 use mesh decimation plugins .

这并不重要,但我更喜欢在整个数据流中使用 OBJ,以符合各种 3D 工具集,因为它得到了广泛的支持。

关于json - Three.js:减少模型文件大小的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45144656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com