自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Cocos2d-JS v3.1圖形渲染新進(jìn)化 性能提升50%

云計(jì)算 游戲開發(fā)
Cocos2d-JS是整合了Cocos2d-html5和Cocos2d-x JavaScript Bindings(JSB)的游戲引擎,擁有清晰的工作流,提供一致的開發(fā)體驗(yàn),一次編碼可將游戲同時(shí)部署在網(wǎng)頁(yè)和原生應(yīng)用渠道。

 Cocos2d-JS是整合了Cocos2d-html5和Cocos2d-x JavaScript Bindings(JSB)的游戲引擎,擁有清晰的工作流,提供一致的開發(fā)體驗(yàn),一次編碼可將游戲同時(shí)部署在網(wǎng)頁(yè)和原生應(yīng)用渠道。

JSB腳本綁定跨平臺(tái)方案是所有HTML5游戲跨原生平臺(tái)解決方案中最高效的,其運(yùn)行效率比其他類型解決方案更快數(shù)十倍、數(shù)百倍,接近原生應(yīng)用的性能表現(xiàn)。不僅如此,在Cocos2d-x JSB在開啟了baseline compiler之后,JSB 在android平臺(tái)上的運(yùn)行效率又有了質(zhì)的飛躍,實(shí)測(cè)其性能表現(xiàn)已經(jīng)超越了Lua,看來github上JS語言強(qiáng)勢(shì)流行也不是沒有道理的。

在移動(dòng)網(wǎng)頁(yè)游戲的性能改進(jìn)方面,Cocos2d-JS團(tuán)隊(duì)經(jīng)過不懈努力和反復(fù)嘗試,終于成功對(duì)v3.1版本的圖像渲染進(jìn)行了更新升級(jí),改進(jìn)后的Canvas模式渲染效率大幅提升,實(shí)測(cè)數(shù)據(jù)顯示其性能相比v2.x版本最大可達(dá)到50%的提升幅度。具體測(cè)試情況見下圖:

 

性能測(cè)試對(duì)比:手機(jī)上300個(gè)靜態(tài)Sprite

性能測(cè)試對(duì)比:手機(jī)上200個(gè)Sprite進(jìn)行縮放、旋轉(zhuǎn)

v3.1渲染框架更新:更加清晰 更易維護(hù)

Cocos2d-JS原v2.x版本中,渲染流程的每一幀都要以樹形遍歷的方式(visit),將場(chǎng)景中所有節(jié)點(diǎn)都訪問到,查詢是否需要調(diào)用矩陣變換函數(shù)(transform), 并需對(duì)子節(jié)點(diǎn)進(jìn)行排序并進(jìn)一步遍歷之后,才能調(diào)用當(dāng)前節(jié)點(diǎn)渲染函數(shù)展現(xiàn)在屏幕上。在游戲的層級(jí)較多的情況下,這樣的做法可能帶來很大的消耗——本身沒有繪制圖形功能的層、節(jié)點(diǎn)、場(chǎng)景容器等需調(diào)用下文進(jìn)行保存與恢復(fù),這些系統(tǒng)API調(diào)用將耗費(fèi)多余的資源——而在實(shí)際的游戲應(yīng)用場(chǎng)景中,多層級(jí)是非常普遍的。

針對(duì)于此,Cocos2d-JS團(tuán)隊(duì)進(jìn)行了各種相關(guān)的性能實(shí)驗(yàn),并得出可喜的結(jié)果:

➢ 將“全局坐標(biāo)計(jì)算”與“逐層調(diào)用矩陣變換函數(shù)”方式進(jìn)行比較后,發(fā)現(xiàn)前者耗費(fèi)的時(shí)間僅為后者的一半左右

➢ 在UI較多的游戲中,若將那些不包括變形、旋轉(zhuǎn)等復(fù)雜操作的“路人甲”型元素進(jìn)行設(shè)置全局坐標(biāo),可省下重新計(jì)算坐標(biāo)的調(diào)用消耗,直接使用渲染圖形的方法即可將它們畫出

根據(jù)實(shí)驗(yàn)結(jié)果,Cocos2d-JS團(tuán)隊(duì)對(duì)渲染框架進(jìn)行了升級(jí)改進(jìn)(如下圖所示)??梢钥闯觯橄蟪鼋y(tǒng)一的渲染層后,v3.1的框架設(shè)計(jì)更加簡(jiǎn)潔,層次更加清晰,更加易于維護(hù)。

V2.x(左)與V3.1(右)渲染框架范例圖對(duì)比

3.1渲染流程升級(jí):渲染隊(duì)列 未來可支持自動(dòng)批量渲染

根據(jù)最新的渲染框架,Cocos2d-JS v3.1對(duì)流程設(shè)計(jì)也進(jìn)行了優(yōu)化升級(jí)(新舊流程圖對(duì)比如下)。

(原版)V2.x渲染流程圖

(新版)V3.1渲染流程圖

新渲染流程主要有以下優(yōu)勢(shì):

➢ 引入渲染對(duì)象與全局坐標(biāo)計(jì)算——只有需要繪制的對(duì)象才加入隊(duì)列中,采用整體渲染過程更加高效,避免了多余的上下文保存恢復(fù)與坐標(biāo)計(jì)算等操作

➢ 避免重復(fù)調(diào)用遍歷函數(shù)——在沒有進(jìn)行節(jié)點(diǎn)添加、節(jié)點(diǎn)刪除時(shí),避免調(diào)用遍歷函數(shù)等不必要的循環(huán)與查詢

➢ 方便進(jìn)行不同渲染模式切換——游戲元素管理與渲染處理層次更加清晰,職責(zé)更加分明,方便進(jìn)行Canvas與WebGL渲染模式切換

在新的渲染設(shè)計(jì)中,增加了一個(gè)渲染命令對(duì)象,將代替原來的渲染函數(shù)進(jìn)行繪圖。新的渲染命令可將各個(gè)渲染對(duì)象加入到渲染隊(duì)列,進(jìn)行統(tǒng)一管理,并提供全局世界坐標(biāo)。

渲染隊(duì)列只在子節(jié)點(diǎn)變化時(shí)才需要更新隊(duì)列,使得執(zhí)行更加高效,并節(jié)省重復(fù)計(jì)算資源,提升渲染性能。渲染隊(duì)列的管理方式可幫助優(yōu)化渲染算法與碰撞檢測(cè)(如紋理自動(dòng)批量渲染合并等),可方便地進(jìn)行瓦片地圖(TileMap)算法改進(jìn),提升使用大地圖時(shí)的性能表現(xiàn),未來也可加入單獨(dú)的渲染線程。

此外,新圖像渲染設(shè)計(jì)還可支持WebGL模式的自動(dòng)批量渲染,為圖形渲染提速奠定了堅(jiān)實(shí)基礎(chǔ)。開發(fā)中可避免頻繁的渲染節(jié)點(diǎn)添加、刪除動(dòng)作,通過重用已有節(jié)點(diǎn)來進(jìn)一步提升性能??芍赜玫膶?duì)象在不用的時(shí)候可以設(shè)置隱藏,加入緩存池,等待重用。

通過更加智能、高效渲染模式,Cocos2d-JS v3.1新圖像渲染設(shè)計(jì)將最大化地降低CPU開銷,幫助節(jié)省渲染環(huán)節(jié)中的CPU消耗。Cocos2d-JS將繼續(xù)支持更多的精品HTML5游戲高性能地運(yùn)行在移動(dòng)瀏覽器上,致力打造Web平臺(tái)最高性能與最多特性的2d游戲引擎。

目前,Cocos2d-JS圖像渲染代碼已合并至https://github.com/cocos2d/cocos2d-html5/tree/Renderer ,歡迎各位開發(fā)者下載測(cè)試,圖形渲染的改進(jìn)將在v3.1版本默認(rèn)集成。

同時(shí),也歡迎各位開發(fā)者來測(cè)試基于新圖形渲染實(shí)現(xiàn)的MoonWarriors打飛機(jī)游戲,訪問地址:http://cocos.b0.upaiyun.com/,或掃描下方二維碼快速進(jìn)入游戲。

 

 

責(zé)任編輯:小明 來源: 51CTO.com
相關(guān)推薦

2015-03-25 20:09:21

2015-01-06 17:05:09

Html5引擎Cocos2d-JS

2014-08-28 10:20:03

游戲設(shè)計(jì)

2014-12-08 16:56:53

2022-09-13 15:54:41

samgr鴻蒙

2014-07-29 13:27:12

手游Cocos2d-JS神經(jīng)貓

2009-05-08 09:22:00

Python面向?qū)ο?/a>編譯

2025-02-20 08:26:28

2015-10-23 13:44:14

巴巴獵

2014-09-12 14:19:51

Cocos 2d-JS

2015-04-22 09:41:45

WeX5

2012-05-28 15:25:40

微瘋客棧

2022-09-08 15:27:11

OHOSSafwk組件

2011-12-12 10:40:08

Cocos2d-X游戲開發(fā)開發(fā)環(huán)境

2022-08-17 15:07:48

2015-01-26 14:35:44

Cocos 2d-JS

2013-05-22 15:49:46

2014-10-29 15:11:35

Cocos Studi

2012-02-19 20:10:23

Cocos2d-x fCocos2dWindows Pho
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)