[Cocos Creator] Cocos Creator中的動態合圖(dynamicAtlasManager)做了什麼

Cocos creator中有一個動態合圖的功能,也就是在運行時將內存中的任意紋理組合成一張虛擬的圖集,從而合併繪製,減少drawcall。那麼,Cocos Creator是如何實現這個功能的呢。

核心思想是數據結構中常說的空間換時間, 原理其實並不複雜,就是幀緩存,簡單來說就是將多份spriteFrame繪製到RenderTexture上,並記錄其在新的RenderTexture中所屬的位置長寬,渲染的時候利用這些信息從RenderTexture所得到的紋理上取所需要的區域。

看過Cocos Creator dynamicAtlasManager的核心代碼,內容不多,一共200來行,有興趣的可以自己取看看。

具體使用可以參考cocos creator engine內代碼:
https://github.com/cocos-creator/engine/blob/5479d7202282756a7da257212b9ec01393d882ef/cocos2d/core/renderer/webgl/assemblers/sprite/2d/simple.js

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章