月下的博客

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  34 Posts :: 0 Stories :: 59 Comments :: 0 Trackbacks

常用链接

留言簿(5)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

  我和朋友一块在做游戏编辑器练手,鉴于大家以前都没有经验,就会写写图形。就照着开源的Ogitor学习罢。我首先负责的就是草体部分,考虑到哥是最弱的。。。所以写到现在才完工。。。讲下学习心得吧,只写下思路,具体的过程懒得写。(高手勿看了。。)
  Ogitor的代码写的非常易读,要是你能编译次ogitor的话,跟着程序走一边就能很快清楚其结构。所以嘛,先提下编译,ogitor的编译其实还是有些麻烦的,尤其是对像我这种命令行菜鸟来说,ogitor的wiki上有详细的教程,[url]http://wiki.ogitor.org/Building+Ogitor&structure=Development[/url]基本很完善了,不过我还是遇到许多麻烦,强烈建议装vs2008,因为Qt有专门适用08的源码包,而且记着一定按着Jacmoe写的步骤来,别先过cmake那块,先把
QtPropertyBrowser弄好,设置环境变量的时候我出了个小白错误,在PATH变量后面加Qt目录前加了个空格,导致系统不接受后面的路径。(。。。悲剧的很。。)然后的步骤就没啥问题了。如果你在编译的时候出现(vs08命令行下或者Qt Creator下,后者不建议,得改qt的编译器,我反正没找到在哪里改。。。)
[code]
g++: Documents\Programmer\Ogre\unstable-06e26a1bed18\qtOgitor\qtpropertybrowser-2.5\lib\libQtSolutions_PropertyBrowser-2.5d.a: No such file or directory
mingw32-make[1]: *** [..\lib\QtSolutions_PropertyBrowser-2.5d.dll] Error 1
mingw32-make: *** [debug-all] Error 2
Exited with code 2.
Error while building project buildlib
When executing build step 'Make'
[/code]记着肯定是你装了mingw,编译得用vs的编译器。

  Ogitor的草体也是借由PageGemotry库(下面缩写为PG)实现的,Ogre的 Addons fourm里有详细介绍,这个库相当强大,而且使用轻便,简单的刷草体我们利用里面的GrassLoader即可,就是公告板。这块代码他们没有写在ogPageGeometry里,那块别看了,否则你们会向我一样给带跑的。Ismail(Ogitor的主要开发人员)将这块写在TerrainGroupManager里,直接和地形刷交互,仔细想想,这也是最好的方法。(我走工厂方法的歪路想了4,5天才拐回来。。之前没发现他写在
TerrainGroupManager里了。。。)由于PG实现草体的加载只有两种,要么随机,要么通过加载密度纹理。不像treeLoader一样,可以直接AddEntity。(想想为什么)所以要想实现草体刷,咱就得创建一张动态纹理来实现了。我们修改每个TerrainPageObject(页地形),向其加入GrassLayer。而在TerrainGroupManager里保留具体的更新者PagedGeometry和GrassLoader。这里不做具体解释,建议去看看PG的源码,10个文件左右,(一半Header,一半Source)代码也很易懂。还有,Ogitor的工厂对象注册机制很好,(我对设计模式没什么研究不知道叫啥。。)新手这个一定得细看看,Ogitor在解耦上做的也近乎完美,面向对象的界面编程Qt加上Ismail自己写的很多基类,使得程序分离的很好,推荐看看OgitorsProperty类,里面就是照着Qt的信号机制写的,这块我也没深看。我们用的是MFC,所以这块没有写成纯面向对象的,用的还是离散型的单件。我兄弟说Ogitor那样效率差点,不过我觉得挺酷的,毕竟写的漂亮。Ogitor的工厂对象的初始化部分是写在CreateProperties里的,因为许多变量需要有用户修改,所以构造函数没有初始化所有变量。
  最后带句:Ogitor的大哥们相当热情,有问题多去他们的forum
里提,基本第二天就回了。(有时差)
 
posted on 2010-04-03 19:18 月下圆舞曲 阅读(4771) 评论(3)  编辑 收藏 引用 所属分类: 开发

Feedback

# re: [学习心得]跟着Ogitor学做编辑器--实现草体刷 2010-09-26 16:08 X.Sirius
请问如何编译QtPropertyBrowser....用Qt Creator.打开OGITOR_SOURCE\qtOgitor\qtpropertybrowser-2.5\buildlib\buildlib.pro.我的源码里并没有buildlib\buildlib.pro所以用Qt Creator也不知道怎么编译....用命令的话又说不认识configure..
希望楼主教我怎么编译这个啊...  回复  更多评论
  

# re: [学习心得]跟着Ogitor学做编辑器--实现草体刷[未登录] 2011-05-18 23:07 c
ogritor 说需要boost,我用cmake是报错,要boost。为啥你的不要boost
  回复  更多评论
  

# re: [学习心得]跟着Ogitor学做编辑器--实现草体刷[未登录] 2011-06-29 21:02 angle
ogitor那帮大哥的确很热情。。。  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理