现在的位置: 首页 > 综合 > 正文

引擎设计杂谈

2012年04月21日 ⁄ 综合 ⁄ 共 898字 ⁄ 字号 评论关闭
引擎设计杂谈

好久没有去碰Ogre了,最近别人推荐了一个网站:

::URL::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吧,其他的到时候看看相应

的代码也就可以了。

::URL::http://www.Sourceforge.net

可以经常去看看。

再推荐一个网站,摘自::URL::http://blender.blogone.net

::URL::http://scholar.google.com/

上去看看就知道干嘛的了。

抱歉!评论已关闭.