Javascript ammo.js在Google Chrome中的性能

Javascript ammo.js在Google Chrome中的性能,javascript,performance,webgl,physics-engine,bulletphysics,Javascript,Performance,Webgl,Physics Engine,Bulletphysics,我和一个朋友正在使用WebGL开发一个游戏,在寻找一些物理引擎后,我发现ammo.js是一个端口或bullet物理库。我们实现了一个简单的例子,很快发现谷歌Chrome上的帧速率与Firefox或Safari相比是可怕的。我说的是chrome的每秒10帧,而firefox的每秒60帧相当稳定 在研究了很多之后,我发现我的博客解释了Chrome到底是怎么回事。(tl;dr:ammo.js使用chrome不支持的字典对象) 所以我的问题是:这个库有没有不使用字典的端口?如果不是,它是否值得(甚至可行

我和一个朋友正在使用WebGL开发一个游戏,在寻找一些物理引擎后,我发现ammo.js是一个端口或bullet物理库。我们实现了一个简单的例子,很快发现谷歌Chrome上的帧速率与Firefox或Safari相比是可怕的。我说的是chrome的每秒10帧,而firefox的每秒60帧相当稳定

在研究了很多之后,我发现我的博客解释了Chrome到底是怎么回事。(tl;dr:ammo.js使用chrome不支持的字典对象)

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

我知道这里的选择非常有限,但我认为值得一提


P.>我怀疑当原始C++代码是面向对象的时,将代码移植到JavaScript而不使用对象是可能的。 如果您想在移植之前“修改”Bullet代码,我相信您必须重写它,以便它使用JavaScript中具有优势的东西:类型化数组。我想你必须重写大部分代码才能做到这一点。在这种情况下,直接编写JavaScript会更方便

除了ammo.js,我没有什么好的推荐给你。然而,这是一个新开始的项目,当它的代码变得稳定时,它可能会满足您的需求。也许你愿意为它做贡献


另一种方式可能是。它是一个浏览器插件开发框架。它可以帮助您创建本机JavaScript函数。如果子弹被编译成这样的插件,绑定到JavaScript,那么你就可以在JavaScript中使用C++物理引擎。当然,最终用户必须首先下载插件。

您有到基准测试的链接吗?我想把它交给Chrome V8团队。