Antsam

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
引擎设计杂谈

好久没有去碰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/
上去看看就知道干嘛的了。
posted on 2004-12-29 15:37  Antsam  阅读(1672)  评论(0编辑  收藏  举报