我已经开发了一个基本的3D游戏使用box2Dweb的物理和three.js的渲染。这是一个基本的侧滚轮。我想让它在iOS上运行。我决定使用cocoon.js来打包游戏,因为它允许在iOS上使用WEBGL
我遇到的问题是表演。在台式电脑上,游戏以每秒50帧的速度运行。在iPhone 5上,它以每秒3帧的速度运行。
我试着剥离游戏,删除所有的纹理,删除着色,删除天框,渲染更少的水平(只有在相机的看法,稍微在后面和前面)。这确实给了我25%的业绩增长。因此,它现在运行在4 4FPS。
我看了一下iOS启动程序的演示程序,它们都运行得非常顺利。
我唯一能想到的提高性能的方法是缩小JS,我不认为这会给性能带来很大的提升。
我正在使用加速画布/WebGL在启动应用程序。我也尝试过用canvas+选项编译,同样的问题。我正在使用three.js修订版67。我在three.js中使用的是three.js渲染器:
this.renderer = new THREE.WebGLRenderer
关于如何用cocoon.js?提高three.js性能的建议
发布于 2014-05-05 09:20:01
我已经设法提高了帧速率,高达25 fps左右,所以有了很大的改进。
首先,我除去了所有阴影,不仅从投射阴影的物体上移除,而且从所有光源和渲染器中移除:
object3d.castShadow = false;
light.castShadow = false;
renderer.shadowMapEnabled = false;
I也使用多种光源。这是最大的罪魁祸首。我只保留了一个光源,这大大提高了帧速率。
接下来,我消除了雾,这给了我额外的几个fps。
我还缩小了JavaScript,它似乎在性能上也略有提高。
发布于 2014-09-14 13:19:39
很高兴看到你解决了你的问题。
你可能忘记了“后脸选择”,主要是用来提高比赛的表现。
(任何不可见的多边形都不会呈现)这个wiki链接更好地解释了culling。
我还建议参加这门基于Three.js https://www.udacity.com/course/cs291的三维图形学课程。
https://stackoverflow.com/questions/23397974
复制相似问题