最近都在干麻?
这段时间项目很忙,一直没有心思上来写点什么,就聊聊对OGRE的使用心得吧~
1. max plugin持续都在改善,加了很多新的功能,也修了许多BUG,总的来说已经和oFusion不相上下,一些地方还表现得更好。
2. 实现了一直以来想要做的水面效果,直接照搬sample里的code还是不行,还是自行封装了rtt类,多块水面可以共用一个rtt,但要做处理,比较被雷到的是传*Plane和&Plane是有差别的。。。
3. 本来是想只做人物投影的,算是妙手偶得,不小心把camera放高了一点,不小心就实现了类似WOW 3.0中的实时阴影效果,加了几级可选,速度和效果不错。
4. 打算直接用Theora Video Plugin省点功夫,结果被这位老兄的多线程和图形水平伤害了,最后实在受不了,自己去看libtheora,写了个simple & stupid的,用着挺好的,不过还是感谢这位前辈的代码供参考。
5. 想实现类似漫画中的速度线,想了几种实现方法,最后一行代码没写,直接用Overlay实现了,ogre的便利性充分体现出来了。
6. avatar的类越来越完善,鉴于优秀的ogre设计,换装很容易就实现了,模型和特效挂载实在是太方便了。
7. 前段时间用nvperfhud测试了一下,发现游戏还是cpu bounding,于是优化了一下,帧数有大大提高,再次证明大多数时候还是app的问题,或者说是程序员自己的问题。
8. 用octree scene manager代替了默认的scene manager,裁减的效果提升了10%+
9. ogre希望动画是基于“原地动画”,会运动的应该只有scene node,所以如果动画本身有比较大的位移,那么必须在max plugin输出时统计包裹所有动作的bounding box,否则就会有“意外的裁减”。拿ogre自带的机器人举例,在用model viewer查看那个死亡动作时,因为机器人会向后位移一段距离倒下,这时如果camera看不到站立动作的bounding box,则倒下时机器人会消失。
……
…………
ogre还是很强大的,对比我用过的引擎,和我自己写的引擎,基本上我想到的、没想到的,全部都有了,就算没有的或是不方便的,也基本上可以在现有的架构上进行扩展实现出来,期待1.7版本的到来!
过两天丢点游戏画面截图上来~
P.S. background thread loading我还在摸索,尚未达到实用阶段,哪位仁兄如果有心得,希望能够一起分享和指教!