首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Three.js:减少模型文件大小的方法?

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

Stack Overflow用户
提问于 2017-07-17 12:43:52
回答 1查看 4.4K关注 0票数 2

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

OBJ文件约为30 is,但导出的JSON文件几乎为100 is。怎么会有这么大的差别呢?纹理大小很低,所以这不是原因。有没有人对此有任何洞察力,或者有更好的方法来做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-17 16:46:27

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

OBJ是一个遗留的逐行格式。JSON是一个多维对象,包含所有这些内容。JSON中的数组和对象具有重要的足迹,如逗号、引号、括号和不考虑的重要行间隔,以及重复标记的可能性。three.js开发人员在3d json格式中非常聪明,不重复元信息。

相反,OBJ格式在每行只使用简单的一个和两个字母指示符,每一行都有空格分隔的值。

例如:

代码语言:javascript
复制
f v1 v2 v3

尽管简化了,但这使得OBJ文件更难处理,而且在加载json文件时,ObjLoader和ObjLoader2在three.js中也存在加载限制。

你选择哪种文件类型取决于你。Threejs有各种格式的装载机和出口商,如STL和Collada,并包括obj导出。

出口商

装载机

在使用json或obj的情况下,当向浏览器提供3d模型时,使用JIT正确设置服务器至关重要。请看我刚刚通过谷歌找到的这个像样的东西。这将简化3d数据的服务。

在网络或游戏中减少3d模型大小的正确方法是使用使用网格抽取插件

这并不重要,但我更喜欢在数据流中使用OBJ,以满足各种3d工具集的要求,因为它受到了广泛的支持。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45144656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档