在比較了多種多線程引擎框架后,我最終的設計類似double-buffer方案,把引擎模塊劃分為3個線程:Io線程,邏輯線程,渲染線程,對于我的引擎的目標平臺來說,已經足夠,實際上,我針對的是2-3核的CPU,再多的線程一方面會使得處理邏輯更加復雜,另一方面也不會帶來效率的提升(甚至會降低),anyway,我已經這么做了,把渲染單獨做為一個線程,邏輯線程每幀向渲染線程提交渲染數據上下文,在幀開始前進行一次同步(等待渲染線程完成上一幀的渲染),原理很簡單,但真正做起來還是有不少細節需要仔細考慮的。。總的來說還是比較順利,這要歸功于寫代碼前做了足夠多的設計工作,我甚至為此通讀了Nebula3引擎的代碼,整理了一份PPT并在公司內部講解過。
下一步工作該是把整個Graphics的高層框架搭好了
posted on 2010-06-22 20:36
清風 閱讀(628)
評論(2) 編輯 收藏 引用