引擎设计杂谈
好久没有去碰Ogre了,最近别人推荐了一个网站:
http://gd.91.com/zt/ogre/
前段时间又分析了OpenSceneGraph的结构,对于模块的划分已经很清楚,但是对
于这些模块间的交互还是需要时间搞清楚。
在你自己去写一个引擎的时候是否需要去用几个引擎?因为有很多东西在你没有
去用之前时没办法搞清楚的,或者在单纯的分析代码过程中时没有办法搞清楚的。
在用的过程中你才会去想用起来方不方便?才会知道为什么要这样去设计一个
模块等等。
对于场景树中物体的动态更新问题,Ogre和OpenScene Graph采用的方法是不同的,
Ogre采用的是Listener和Target的方式,Listener又分好几种,每帧必须更新的是
Framelistener,其他的则是只有在触发的时候才会调用,所以像例子系统啊,
EventProcessor等都是直接继承了Framelistener,每帧都会通过frameStarted进行
必要的更新,所以如果用户定义的有些信息必须每帧更新,则需要继承Framelistener
类,更新的过程在framestart或frameend实现。
而OpenSceneGraph则采用的是遍历场景树,然后调用场景树中的Travers函数,而在
Travers中会调用一些更新函数。OpenSceneGraph有些东西还是值得借鉴的,下次找
几个地方写点文章吧。
这两者的实现方式各有利弊吧,这段时间的任务还需要搞清楚几个问题:
1、场景的动态更新方式
2、Collision如何结合到Engine
3、Physic Lib如何结合到Engine中去
4、Shadow manger管理receive和caster的方法,以及
阴影不同的实现方式的切换。
在具体实现代码前,再去全面分析一个Torque Engine吧,其他的到时候看看相应
的代码也就可以了。
http://www.Sourceforge.net
可以经常去看看。
再推荐一个网站,摘自http://blender.blogone.net
http://scholar.google.com/
上去看看就知道干嘛的了。
好久没有去碰Ogre了,最近别人推荐了一个网站:
http://gd.91.com/zt/ogre/
前段时间又分析了OpenSceneGraph的结构,对于模块的划分已经很清楚,但是对
于这些模块间的交互还是需要时间搞清楚。
在你自己去写一个引擎的时候是否需要去用几个引擎?因为有很多东西在你没有
去用之前时没办法搞清楚的,或者在单纯的分析代码过程中时没有办法搞清楚的。
在用的过程中你才会去想用起来方不方便?才会知道为什么要这样去设计一个
模块等等。
对于场景树中物体的动态更新问题,Ogre和OpenScene Graph采用的方法是不同的,
Ogre采用的是Listener和Target的方式,Listener又分好几种,每帧必须更新的是
Framelistener,其他的则是只有在触发的时候才会调用,所以像例子系统啊,
EventProcessor等都是直接继承了Framelistener,每帧都会通过frameStarted进行
必要的更新,所以如果用户定义的有些信息必须每帧更新,则需要继承Framelistener
类,更新的过程在framestart或frameend实现。
而OpenSceneGraph则采用的是遍历场景树,然后调用场景树中的Travers函数,而在
Travers中会调用一些更新函数。OpenSceneGraph有些东西还是值得借鉴的,下次找
几个地方写点文章吧。
这两者的实现方式各有利弊吧,这段时间的任务还需要搞清楚几个问题:
1、场景的动态更新方式
2、Collision如何结合到Engine
3、Physic Lib如何结合到Engine中去
4、Shadow manger管理receive和caster的方法,以及
阴影不同的实现方式的切换。
在具体实现代码前,再去全面分析一个Torque Engine吧,其他的到时候看看相应
的代码也就可以了。
http://www.Sourceforge.net
可以经常去看看。
再推荐一个网站,摘自http://blender.blogone.net
http://scholar.google.com/
上去看看就知道干嘛的了。