抄完osg/osgearth.鬼火引擎最低版本,以及ogre的大部分后,看到消息处理都通过窗口。
突然顿悟,引擎都是类似的。
下一步给自研引擎换皮,全换成ogre的皮。渲染流程类似osg的,多线程渲染,无非就是在哪个线程wglMakeCurrent()
另外,我觉得ogre一点都不过分设计,恰如其分。比如渲染这块,直接用了个rendersystems,将dx或者opengl都放在其中,而不是在内核部分。扩展性很强。
可惜的是,都是抄的最低版本,shader这块并不好,所以,将来还得换高版本的dx和opengl,或许会抄抄filament或者klayge.或者最新推行的osgverse
另外,能不能加载大数据和是否游戏引擎没关系,比如cesium for unreal。我个人认为,只要预处理好了数据,分层分块,然后按需加载文件即可。好比osgEarth的PagerLoad类,调用DataBaseRequest。分页数据库的使用,无非就是开个线程,将需要的模型放到里面,每帧处理一定数目的模型,通过判断帧数是否过期,然后进行合并或者丢弃,再对合并队列进行渲染。
各个引擎都用到了四叉树的方式。只是用traverse()还是直接写递归函数的区别。