基于Ogre引擎的3D Visualization

Ogre 使用非常广泛,国内外都有不少使用者,包括国内的天龙八部。Ogre功能强大,但始终是个底层3D渲染引擎,开发成熟的产品还需要大量的工作。

我将3D Visualization的应用分为两大类:

1. 虚拟世界类:如虚拟的城市建筑,公园游览,网络3D展会等。场景不会非常大。主要是用户浏览和获取信息。

2. 编辑器类:如场景编辑器,装修软件,船舶制造,汽车有限元分析,物理引擎编辑器等。场景只集中在较小的区域内,用户可以从任意视角观察,只要以对物体实施操作,产生改变,再反馈到其他系统或者现实世界中去。

基于这个分类,我使用Ogre, Physoft Dev SDK, Physoft 3D framework做两个3D框架:

1. Physoft Virtual World,支持                                                    

    a. 多场景支持:用户选择需要浏览的场景,客户端向服务器请求下载最新模型。模型使用版本控制,只下载更新部分。

    b. 动画,声音,视频播放, 使场景有生气。

    c. 多用户登录: 单场景支持1000人登录

    d. 互动性: 用户可以相互看到,可以交流。模型附带信息,用户可以将鼠标移动到模型上,或者点击模型获得模型信息,比如模型是件商品,用户可以查看商品的价格,商家等信息。

   Virtual World的共性在于漫游,互动。

2. Physoft 3D Editor, 支持

   a. 3D基本操作:平移,旋转,缩放等,选择模型,显示,隐藏等。

   b. 3D基本信息:坐标轴,网格,高亮,选择,属性面板。

   c. model管理:通用的实体(entity)管理结构, 可以方便的扩充自定义3D物体,如增加连接器,机械零件等。

   d. 工程管理:文件的打开,关闭,保存,状态更改,Undo, Redo等。

   e. 插件模式:系统使用插件模型,可以加入任意多的功能,可以通过配置文件定义系统需要加载的功能。插件模式使系统可以打开,保存多种文件。

   3D Editor的共性在于 对模型实施操作,3D信息、操作的体现。3D Editor使用插件模式,所以使用同一个3D Editor框架,可以开发出完全不同的应用,如船舶制造系统,装修软件,场景编辑器,物理引擎编辑器等。

详细demo 请参考 www.physoft.net

程序截图:

1: 图形渲染 ( 插件功能已被关闭)

2. 高亮显示

对于工程应用来说,模型和游戏大不一样,有大量空间上的嵌套,几何体数量巨大。但鼠标在几何体上hovering时,物体的高亮就需要精确的鼠标拾取,而不是常用的使用立方体近似。

3. 旋转物体

相对旋转相机来说,旋转物体比较简单,但是旋转轴和平移轴画起来也不是一件简单的事,特别是这些轴是大小不变的,而且是绘制于最顶层。

posted @ 2010-08-01 17:11  physoft  阅读(981)  评论(1编辑  收藏  举报