gpt4 book ai didi

javascript - ammo.js 在谷歌浏览器中的性能

转载 作者:行者123 更新时间:2023-11-29 10:51:51 24 4
gpt4 key购买 nike

我和一个 friend 正在使用 WebGL 开发游戏,在寻找一些物理引擎后,我发现了 ammo.js,它是一个端口或子弹物理库。我们实现了一个简单的示例,并很快发现与 Firefox 或 Safari 相比,谷歌浏览器的帧率非常糟糕。我说的是 chrome 达到 10 FPS,而 firefox 达到相当恒定的 60 FPS。

经过大量研究,我发现了 this博客确切地解释了 Chrome 与图书馆有什么问题。 (tl;dr:ammo.js 使用 chrome 不鼓励的字典对象)

所以我的问题是:这个库是否有一个不使用字典的端口?如果不是,修改原始 C++ 项目符号代码并重新移植是否值得(甚至可行)?如果前面的选项都不可行,您会推荐哪种 javascript 物理引擎?

我知道这里的选择非常有限,但我认为这个问题是值得的。

谢谢。

最佳答案

我怀疑当原始 C++ 代码是面向对象时,是否可以将代码移植到 JavaScript 而不是使用对象。

如果您想在移植前“修改”Bullet 代码,我相信您必须重写它,以便它使用在 JavaScript 中具有优势的东西:类型化数组。我想您将不得不重写大部分代码才能做到这一点。在这种情况下,直接编写 JavaScript 会更方便。

除了 ammo.js,我没有任何好的推荐给你。然而,cannon.js是一个刚起步的项目,等代码稳定了就可以满足你的需求了。也许您想为此做出贡献?

另一种方式可能是 FireBreath .它是一个浏览器插件开发框架。它可以帮助您制作原生 JavaScript 函数。如果 Bullet 被编译成这样的插件,并且绑定(bind)到 JavaScript,那么你的 C++ 物理引擎就可以在 JavaScript 中使用了。当然,最终用户必须先下载插件。

关于javascript - ammo.js 在谷歌浏览器中的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8740629/

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