首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何关闭Physijs以提高移动设备的性能?

如何关闭Physijs以提高移动设备的性能?
EN

Stack Overflow用户
提问于 2014-04-23 10:39:38
回答 1查看 407关注 0票数 1

我正在试图找到一种方法来提高我的纸牌游戏在移动设备上的性能(用Cordova包装)。

该脚本检测WebGL是否可用,如果不支持,则回退到Canvas 2d。但我的三星Galaxy S4的帧率很低,只有5-10帧。

可以关闭Physijs吗?如果不是,我如何重写Physijs函数来只返回ThreeJS对象而不是Physijs对象?示例:

代码语言:javascript
复制
if(disablePhysics) {
        Physijs.createMaterial(elem,v1,v2) {
            return elem;
        }
    }

一如既往,您的帮助是宝贵的,谢谢您:)

EN

回答 1

Stack Overflow用户

发布于 2016-10-12 05:30:35

如果你想在你的网页上禁用Physijs物理模拟,那么你所需要做的就是不要在你的渲染循环中调用scene.simulate()方法:

代码语言:javascript
复制
function render(){
    if(!disablePhysics){
        scene.simulate();
    }

    renderer.render();
}

创建Physijs对象并不在其上运行任何模拟是安全的。它们继承了THREE的Object3D及其子代,所以如果没有Physijs替代品,应该或多或少是相同的。只是每个场景都有一个associated worker,简单地把一个线程放在那里是没有用的。解决方案实际上很简单:创建一个新的THREE.Scene并将所有Physijs.Mesh对象传输到它。

结论

因此,当禁用物理时:

不要调用scene.simulate()

  • Just填充你的Physijs场景

  • 你可以把你所有的Physijs.Mesh对象转移到THREE.Scene而不是把它们保存在Physijs中
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23233828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档