gpt4 book ai didi

javascript - 将 ThreeJS 场景导出到 STL 文件结果导致文件大小非常大

转载 作者:行者123 更新时间:2023-12-03 07:54:55 24 4
gpt4 key购买 nike

我想将我的 ThreeJS 场景导出到 STL 文件。我正在使用这个导出器:https://gist.github.com/kjlubick/fb6ba9c51df63ba0951f

我的问题是我得到的文件大小。例如,对于 4 个球体(通过 new THREE.SphereGeometry(1,32, 32) 创建),我得到了一个 15MB 的文件,如果您认为这里的这个球,我认为这个文件很大: http://archive3d.net/?a=download&id=469e26a6小于 0.5 MB。

有什么办法可以减小文件大小吗?为什么只有 4 个球体就这么大?一种方法是在导出时创建一些低分辨率( new THREE.SphereGeometry(1, 16, 16) )临时球体,然后将其删除,但是还有其他更好的方法吗?

编辑:我在导出过程中犯了一个错误,当我更正它时,大小下降到 6 MB,但对于 2 个球体来说仍然很大。

预先感谢您,如有任何意见,我们将不胜感激。

最佳答案

您链接的导出使用 ASCII STL format ,它本质上是相当冗长的,并且占用大量字节来存储单个三 Angular 形。每个球体都由数千个三 Angular 形组成。选项是:

  • 使用二进制 STL 文件格式。这是一种更加紧凑的表示形式,每个方面使用 50 个字节。根据一些粗略计算*,每个球体大约需要 0.1MB。 Three.js 存储库有一个 binary STL exporter example .
  • 降低导出数字时使用的数字精度。如果您导出 0.1 等数字而不是 0.100001,则需要更少的字符来保存结果(但会丢失精度)。
  • 按照问题中的讨论,使用更少的三 Angular 形来组成球体。
  • 如果您真的非常渴望使用 ASCII,您也可以尝试删除导出器生成的一些不必要的空格缩进,但这只会带来非常小的改进。

* 假设每个球体有 32 * 32 * 2 个三 Angular 形,则 32 * 32 * 2 * 50 = ~100e3 = ~0.1MB

关于javascript - 将 ThreeJS 场景导出到 STL 文件结果导致文件大小非常大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34839871/

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