在比较了多种多线程引擎框架后,我最终的设计类似double-buffer方案,把引擎模块划分为3个线程:Io线程,逻辑线程,渲染线程,对于我的引擎的目标平台来说,已经足够,实际上,我针对的是2-3核的CPU,再多的线程一方面会使得处理逻辑更加复杂,另一方面也不会带来效率的提升(甚至会降低),anyway,我已经这么做了,把渲染单独做为一个线程,逻辑线程每帧向渲染线程提交渲染数据上下文,在帧开始前进行一次同步(等待渲染线程完成上一帧的渲染),原理很简单,但真正做起来还是有不少细节需要仔细考虑的。。总的来说还是比较顺利,这要归功于写代码前做了足够多的设计工作,我甚至为此通读了Nebula3引擎的代码,整理了一份PPT并在公司内部讲解过。
下一步工作该是把整个Graphics的高层框架搭好了
posted on 2010-06-22 20:36
清風 阅读(619)
评论(2) 编辑 收藏 引用