【问题标题】:Is JSON model format is better for THREE.jsJSON 模型格式是否更适合 THREE.js
【发布时间】:2015-05-14 23:25:19
【问题描述】:

我正在使用 Three.js 创建一个简单的游戏,我加载了大约 100 个 obj 格式的低多边形模型但性能并不流畅,所有模型大小不超过 18 MB,如果我使用 JSON 格式会更快虽然尺寸会增加一倍以上? 我尝试了 Collada,但对于像我的案例 obj 这样的简单对象更快,如果 JSON 不是最佳解决方案,那么最好的解决方案是什么?

【问题讨论】:

  • 你说的是加载时间性能还是渲染时间性能?我怀疑使用的模型格式对渲染时间性能有很大影响。
  • 渲染不流畅
  • 在那种情况下,我怀疑模型格式是你的问题。您是如何得出这个结论的?
  • 在电脑上渲染速度比手机快,但仍然不是很好,在手机上很慢
  • 您加载的文件格式不应影响渲染性能。如果您想要加载时间性能,请尝试使用包含的 python 脚本转换为二进制格式。

标签: three.js


【解决方案1】:

总体而言,没有任何一种文件格式更好,这取决于您的需求和使用的外部软件以及是否包含动画。我个人一般不使用 json,我使用 obj 但 json 得到了 three.js 的大力支持..但这更多的是一种意见。

还有很多因素会导致您的应用程序变得繁重。 没有源代码或模型文件本身我只能推测。

需要考虑的几点:

您的模型是否已尽您所能进行优化,一个场景中的 100 个模型在 18mb 的情况下一次安静分配,这包括纹理吗?。

纹理是否被压缩和重用。这将提高性能。 从阴影、光照和动画类型都有影响,Google 有大量资源可以为您提供。

有几种技术可以让你的多边形倒计时:细分就是一个很好的例子,有一篇非常有用的文章。 http://www.kadrmasconcepts.com/blog/2011/11/06/subdivision-surfaces-with-three-js/

根据对象的距离或距离,LOD Level OF DETAIL 也是可见的。 这里有一个非常有用的解释: http://www.pheelicks.com/2014/03/rendering-large-terrains/ Three.js 支持这一点,无需添加任何库..

细节和渲染方式是获得最佳性能的关键。

甚至到您如何设置项目也会产生重大影响。查看函数以及如何使用它们,例如鼠标移动和 dom 元素点击会显着减慢您的 three.js 应用程序,如果它们是没有优化和有效使用。

重复使用和共享是您的最佳选择,两次加载同一个模型是没有意义的,因为一个是蓝色的,另一个是绿色的......

【讨论】:

    【解决方案2】:

    我认为没有更好的格式?这真的取决于你需要什么,什么不需要。但是,对于我来说,我会选择obj!

    【讨论】:

    • 了解实时 3D 图形。查找 GPU Gems 系列等资源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2015-02-26
    • 2017-03-09
    相关资源
    最近更新 更多