[]关于大量绘制 draw的性能优化问题

想要实现刮刮乐的功能  就是手指在上面滑动 就会有圆形的画面生成。
 
这样一来就需要绘制大量的圆形。
 
 
但是测试的结果是绘制几百个圆形会卡,掉帧很严重(不考虑webgl)
 
var Browser = laya.utils.Browser;
var Stat    = laya.utils.Stat;
var Event   = laya.events.Event;
var Sprite =  laya.display.Sprite;
Laya.init(800, 1030);
Stat.show(0,0);
var drawLayer = new Sprite();
Laya.stage.addChild(drawLayer);
drawLayer.width = 800;
drawLayer.height = 1030;
drawLayer.on(Event.MOUSE_MOVE, this, mousemove);

function  mousemove(e) {

    drawLayer.graphics.drawCircle(e.target.mouseX,e.target.mouseY,20,"#ffffff")
    drawLayer.cacheAsBitmap;
}
 
我的思路是每一次move都把对应的圆形区域绘制到一个容器上,这样一来drawcall就不会一直增加了。  
 
但是在laya中没有找到。
 
 
 
 
 
已邀请:

cuixueying

赞同来自:

大量的绘制矢量图形,势必会导致性能下降,这个是所有引擎无法避免的问题,当然,之后我们也会针对矢量绘制做出相应的优化,但是性能问题依然无法避免,这块还需开发者自行取舍

建议:你可以将graphics.drawCircle使用graphics.drawTexture的方式实现,避免矢量绘制

lu632375951

赞同来自:

graphics.drawTexture可以绘制圆形的纹理区域吗

要回复问题请先

商务合作
商务合作