【发布时间】:2019-07-02 10:40:49
【问题描述】:
我在 iPad 上使用 threejs 加载一些 3d gltf 模型时遇到问题。加载实际上工作正常,它在台式电脑和安卓平板电脑上加载正常,但在我的具体情况下,它需要在 iPad 平板电脑上运行并且页面不断崩溃,因为它耗尽了所有试图渲染模型的内存(我猜Android 为浏览器提供了更多内存供使用)。
我的问题是如何优化模型以使其能够在 iPad 上运行?我的第一个想法是顶点/索引等的数量会影响渲染,但事实证明,具有更多顶点和索引的模型能够加载,而“优化”模型无法加载。我们将模型放入巴比伦在线预览器以查看其信息,我注意到,与不起作用的新模型相比,具有更多顶点和索引的旧模型具有更少的网格和更少的绘制调用。那么我们应该专注于优化而不是顶点和索引的数量吗?
问题是我们需要优化模型以在 iPad 上渲染,但我不知道模型的哪一部分需要优化,因此非常感谢任何帮助!
附:我尝试实现 DRACO 压缩和 DRACOLoader,但它没有帮助,因为它只是压缩文件,并且一旦需要在屏幕上渲染,压缩就根本无关紧要,因为它基本上仍然是需要渲染的相同 3d 文件.如果需要我可以共享代码,但我认为这并不重要,因为加载没有问题,只是模型没有优化。
【问题讨论】:
-
你在使用纹理吗?如果是这样,您可以尝试在 iPad 上减小纹理大小。
-
@Marquizzo 我在您回答之前尝试过,这正是 iPad 上的问题所在。如果你想把它变成一个答案,我会接受它。顺便提一句。你知道纹理可以有多小吗?我们有大约 15 个纹理,它们都只是一种颜色的正方形(金属度、粗糙度、基色等),我们从一家生产 2048x2048 像素大小的模型的数字机构获得它们,我将它们缩小到 512x512 像素。像 16x16px 这样的东西会起作用吗,因为纹理只是一种颜色,所以分辨率可能无关紧要?
标签: three.js 3d 3d-modelling 3d-model 3d-rendering