cocos2dx3為什麼改用渲染命令的方式,而不是cocos2dx2的邏輯處理完立即渲染的方式?

時間 2021-06-03 01:37:26

1樓:侯帥英

了解不深,隨便講幾點。

傳統的遊戲引擎,設計上並未考慮到充分利用多核CPU的效能。其渲染和邏輯都是在同乙個執行緒當中進行。當渲染一幀的時候,需要處理邏輯運算,然後進行渲染。

當遇到運算開銷較大,或者有可能出現阻塞的邏輯時(例如網路請求),通常採用啟動新執行緒(或coroutine),從而減少對渲染部分的拖累。在這種情況下,執行緒間資料的同步是需要程式設計師自行考慮的。而且,即便採用這種方式,也無法保證新啟動的執行緒/coroutine能夠採用最優化的方式利用多核。

比較理想的做法是,將邏輯和渲染部分拆分成不同的多個執行緒,採用執行緒排程器分配CPU資源。理想狀態下,拆分出來的任何乙個執行緒應該都可以在CPU的任何乙個核心上自由執行和互相切換。

當然,這麼做會有兩個難點。其一是多執行緒間的排程和同步對於任何乙個程式設計師都不是一件輕鬆愉快的事情,稍有不慎就會bug頻發,這就是為啥cocos開發進度緩慢的原因;其次對於引擎使用者來說,也有比過去更高的學習門檻,如果設計得不夠方便易用,可能還不如傳統的方式。Unity在多執行緒渲染這一點上還是比較保守的,一直都沒做激進的改動,也是為了考慮到學習成本和向下相容的問題。

具體可以參考:

Doom3 BFG Source Code Review: Multi-threading

Doom3 BFG Source Code Review: Renderer

cocos2dx建立專案為什麼要用cmd命令列建立?

Leon 一般來說,有整合開發環境的專案 IDE 的專案,一般都可以在IDE裡面建立工程,比如Unity或者Unreal。而cocos2d x只是一套框架,並沒有對應的IDE,所以為了建立專案,就有了一套命令列指令碼用來從命令列來建立工程。如果以後有一日cocos2d x有了自己的IDE,比如開發中...

Cocos2d x 不是開源專案麼?為什麼觸控科技對外說是自己旗下的?

郭凜 觸控官方介紹說過cocos2d x是由他們投資的 http www.觸控科技投資並支援的2D 遊戲引擎 Cocos2D X在中國擁有70 的開發者認可和使用比例。此外,Cocos2D X在全球199個國家地區有40萬開發者使用,而Cocos2D X已經成為全球使用率最高的手機遊戲引擎之一,在中...

為什麼cocos2d x用的是右手座標系,旋轉角度卻是以順時針為正?

minggo 確實是因為從 cocos2d iphone 移植過來保持相容性造成的,然後這個問題也成了歷史的一部分,如果修改的話會破壞相容性,只能是在大版本公升級時修復了。 Yang z 無論出於什麼原因,無論是否有什麼考慮,聲稱卡迪爾右手系,且z軸指向螢幕外的旋轉正方向居然是順時針,這絕對是個bu...