数字仿真系统平台与传统的动画三维可视化不同,它不仅要满足三维场景真实表达的要求,而且要具备良好的交互性。本书在图形工作站的硬件支撑下,基于Visual C++在OpenGVS基础上搭建流域干旱演化模拟与评估仿真平台,系统启动界面见图8.4。
图8.4 系统启动界面
系统启动过程中要调度三维地形地物模型,进入系统界面的速度取决于数据量大小,为防止调用较大数据时出现空白界面,在启动时增加了闪屏功能。该系统平台的程序结构主要分为系统初始化、系统运行和系统退出三部分,见图8.5。
系统初始化利用函数GV_sys_init()初始化软件管道,并启动连接数据库。在完成自身的初始化动作后,调用用户初始化函数GV_user_init(),此函数是系统真正进行初始化的地方;然后生成关键图形资源,建立帧缓存、通道、相机、场景和光源,载入地形地物;定义对象后生成对象实例,再将实例加入到场景中;进行其他必要的资源链接:将光源加入到场景中,为通道设置摄像机和场景,将通道加入帧缓存。(www.xing528.com)
图8.5 系统程序结构
系统运行是利用系统函数GV_sys_proc()调用用户函数GV_user_proc(),在每帧循环过程中实现对各种图形资源的动态更新。该函数通过变化摄像机六个自由度参数实现对三维场景的漫游控制;根据视点位置的移动和观察角度变化实时探测与地面相对位置,避免穿过地面或者其他物体造成的不真实感觉;通过改变雾化和光照参数实现特殊效果。在该函数中,通过分析自然界刚体和柔体的变化规律建立物体运动和变化方程,系统能够使刚性实体的空间位置移动和旋转角度发生变化,同时根据已建立的连接关系对刚体结构进行操控,如闸门的升降、船体的运行等;也能够实现柔性物体的实时动态仿真,如闸门启闭导致下泄水流变化的实时仿真、河湖水体的波动等。干旱参数演化的时空分布也可以采用类似方法进行图形仿真。
系统退出利用系统函数GV_sys_shutdown()调用用户函数GV_user_shutdown(),执行系统占有内存的释放,包括各种指针对象和各种GVS图形资源的内存释放。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。