cocos creator渲染筆記

cocos creator2.0以上的版本對之前的渲染流程進行了優化,根據渲染renderTag,使用查表法進行渲染數據的更新.

creator中渲染組件都要繼承cc.RenderComponent,這個是渲染組件的基類,如果要自定義渲染組件,需要重寫cc.RenderComponent的_resetAssembler 及_activeMaterial 方法,_resetAssembler 在組件創建的時候會去調用,會在組件生命週期方法之前執行,主要負責創建並初始化渲染組件的 Assembler 實例。_activeMaterial 方法負責創建並設置渲染組件所使用的材質實例,會在組件啓用及材質修改時調用。

 

creator渲染最後涉及到的一些關鍵代碼,base-renderer.js,forward-renderer.js,render-flow.js,device.js,cc.render.

渲染流程:

CCDirecor中的mainLoop中

再到cc.renderer

繼續執行到render-flow

在RenderFlow.visitRootNode中會遍歷整個場景的結點,並且將組件中改變的數據更新,將組件中的數據更新到

_batcher(model-batcher.js)中,下一步_batcher進行提交,

再調用_batcher.terminate()提交數據到GPU緩存中,爲接下來的渲染做準備,

在_forward.render中會處理當前場景的渲染狀態,材質,光照,通道,着色器,及更新着色器的統一變量,

最後會調用device.draw進行繪製.

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