Ogre 使用非常广泛,国内外都有不少使用者,包括国内的天龙八部。
Ogre并不是游戏引擎,而是一个通用的3D引擎,功能非常强大。然而,使用Ogre开发的应用,基本上是游戏相关。如果要开发一款类似3d max类型的3D work space, 例如机械绘图,船舶制造等等就会比较困难。因为一大堆的问题需要自己解决,比如如何绘制3d max里移动物体的小坐标轴?如何管理一大堆的几何体?如何平移,旋转相机?这些都和游戏类程序不一样,看似简单,却比较麻烦,但ogre有没有相关资料可查,因为大家都在做游戏开发:).
PS: 为什么需要开发这样的应用了?不是有3d max, autocad了么? 这些工具功能完善,但始终是一个通用平台。我们可以使用它们来制作3D模型,却不能满足很多特定工程的需要。
通过几个月的开发,我使用Ogre + c++ + wxwidget开发了一款具有3d max基本3D功能的程序,可以从Ogre的mesh文件,autocad的dxf文件以及自定义文件加载和保存模型。程序被划分为了几个层,和几个块,所以虽然是使用的wxwidget开发,但是很容易使用其他GUI替换。并且使用了插件技术,需要添加新的功能时,只需要注册新的功能,使代码被最大程度低耦合。如果需要源代码,可以联系我的msn: derickyou@hotmail.com 或者qq: 394884652.
程序截图:
1: 图形渲染 ( 插件功能已被关闭)
2. 高亮显示
对于工程应用来说,模型和游戏大不一样,有大量空间上的嵌套,几何体数量巨大。但鼠标在几何体上hovering时,物体的高亮就需要精确的鼠标拾取,而不是常用的使用立方体近似。
3. 旋转物体
相对旋转相机来说,旋转物体比较简单,但是旋转轴和平移轴画起来也不是一件简单的事,特别是这些轴是大小不变的,而且是绘制于最顶层。