小游戏的离屏canvas效率很差
发布于 6 年前 作者 jun92 783 次浏览 来自 问答

如题用createCanvas建立的离屏的canvas,本来是想用来做ui的缓存的,结果发现动态更新ui的时候fps降低得非常厉害,还不如我直接在主canvas里绘制,这效率,恐怕直接用dom更新都比他快

10 回复

小游戏性能是有点差,特别ios端,同样的场景,居然帧数比安卓的还低,比原生的差很多

其他机型有出现类似问题吗?

我没有测试过,我只有自己的手机而已,现在小游戏也只能自己预览

在主循环里

if(需要更新ui){

    uicanvas.clearrect

    uicanvas.draw

    需要更新ui=false

}

maincanvas.drawImage(uicanvas)

和你们自带的游戏不同的是,我给所有canvas的width和height都是乘以pixelRatio的,但用style约束到屏幕长宽,我不知道这是否会影响,但按照道理是不应该有影响的。

以上代码如果我把需要更新ui去除,每帧都绘制在第二canvas上,FPS也是一样显著下降

可以提供一下代码说明你的具体做法吗?

@LastLeaf 你的意思是canvas 2d也是使用 gl 硬件加速的?

对于小游戏,是的。

你好,请提供一下出现问题的机型和微信版本。

收到。事实上小游戏框架是基于GL实现的,你可以直接在主canvas绘制的。

魅族note5,微信6.6.1

回到顶部