參考LayaAir的graphics矢量繪圖
1.注意大量繪制時,要緩存成bitmap
this.bg = new Laya.Sprite();
this.bg.cacheAs = "bitmap";
2.消除矢量圖繪制鋸齒
在PC電腦的瀏覽器上娘锁,我們經(jīng)常發(fā)現(xiàn)LayaAir引擎繪制的矢量圖會有一些鋸齒远荠,這是由于LayaAir引擎基于性能的考慮其屏,做的優(yōu)化處理坚俗,由于移動手機端的像素密度比較大,所以在PC上看起來明顯的鋸齒問題吗浩,其實在移動設(shè)備上基本上看不出來。如果有追求完美的開發(fā)者浴滴,也可以通過在"Laya.init();"
初始化舞臺的代碼之前拓萌,加一行代碼“Laya.Config.isAntialias=true;”
開啟鋸齒消除設(shè)置,那么在手機端升略,就完全看不到鋸齒了微王。當(dāng)然屡限,開啟這個設(shè)置后是會增加性能的消耗。因此炕倘,建議游戲開發(fā)過程中盡可能少用矢量圖形钧大,即便使用后,基于性能考慮罩旋,盡可能不要開啟鋸齒消除設(shè)置啊央。
**示例代碼如下**:
//消除矢量繪制的鋸齒,但會增加性能消耗
Laya.Config.isAntialias=true;
//初始化舞臺
Laya.init(500, 300, WebGL);
3.關(guān)于大量繪制 draw的性能優(yōu)化問題
大量的繪制矢量圖形涨醋,勢必會導(dǎo)致性能下降瓜饥,這個是所有引擎無法避免的問題,當(dāng)然浴骂,之后我們也會針對矢量繪制做出相應(yīng)的優(yōu)化乓土,但是性能問題依然無法避免,這塊還需開發(fā)者自行取舍
建議:你可以將graphics.drawCircle使用graphics.drawTexture的方式實現(xiàn)溯警,避免矢量繪制
[yjtx][官方團隊]不要過多使用矢量繪圖趣苏,多了確實不行,如果可以換成梯轻,可以通過rendertexture繪制成圖片保存
5.效率問題
通常情況下食磕。矢量繪制都是比較直接用位圖消耗更大的。
6.lineWidth
this.bg.graphics.drawRect(0, h1, this.defaultW-50, h2, "#E6E6E6", "#ff0000", 5);
this.bg.graphics.drawRect(0, h1 + h2 * 2, this.defaultW-50, h2, "#E6E6E6", "#ff0000", 20);
可以看出喳挑,線寬lineWidth并不會影響畫出的矩形寬高彬伦。打個比方,線越寬伊诵,往矩形內(nèi)部吞噬的空間越多媚朦。
7.矢量圖和drawcall
參考Graphics每次drawPoly都占一個drawCall
在layaAir下,一個矢量圖代碼一個drawCall日戈,過多的矢量圖會嚴(yán)重影響性能询张,建議少用