首页 理论教育 干旱演化模拟评估与风险调控技术

干旱演化模拟评估与风险调控技术

时间:2023-08-27 理论教育 版权反馈
【摘要】:OpenGVS本身没有提供动态对象的绘制功能,必须依靠OpenGL图形库进行混合编程实现,通过点、线、面、体的组织方式,可以实现复杂规则物体的绘制,干旱演化参数时空可视化即由该方法完成。干旱演化数据大部分是二维标量,空间位置坐标不变,而任一点的属性信息可能会发生变化。

干旱演化模拟评估与风险调控技术

旱情时空分布动态可视化可以从宏观上把握研究区干旱的演化趋势,三维虚拟仿真平台能够与各种信息进行交互式三维可视化,从而将流域的地形地貌、社会经济和人文等综合信息实时展现给决策者。系统平台提供了与干旱演化时空数据交互的接口,将计算过程中及计算结果或监测数据转换为图形及图像并直观显示出来,其目的在于维持信息完整性的同时,把信息变换成适合人类视觉系统理解的方式,达到将许多抽象、难于理解的原理和规律变得容易理解,冗繁的数据变得生动有趣的效果。其基本流程包括数据生成、数据精炼和处理、可视化映射、绘制及显示[246]。OpenGVS利用“图形回调”实现动态可视化效果,具体实现流程如下:

(1)分析事件对象的绘制特点,设计动态对象的数据结构EventObject,用来存储动态对象的实时信息,如河道网格节点的空间位置、水位、流速、纹理坐标,即回调函数的私有数据;而后声明结构体对象指针,并为其分配内存空间。

(2)声明对象定义,调用GVS内置函数GV_obd_set_gfx_callback()为对象设置图形回调函数Event_gfx_callback(),并将动态实体实现的相关代码写入此函数;调用内置函数GV_obd_set_gfx_data()为对象分配私有数据。私有数据和对象实例手柄共同传递给回调函数。

(3)通过内置函数GV_obd_set_drawing_order设置对象绘制顺序的优先级为最高级,从而可以保证动态实体能够正确显示。

(4)将对象实例化加载到场景中,实现动态实体的三维效果。(www.xing528.com)

上述步骤是OpenGVS动态对象绘制的通用框架,不同实体动态效果的实现主要在回调函数中完成。OpenGVS本身没有提供动态对象的绘制功能,必须依靠OpenGL图形库进行混合编程实现,通过点、线、面、体的组织方式,可以实现复杂规则物体的绘制,干旱演化参数时空可视化即由该方法完成。这样不但能够充分利用二次开发的优势,减轻工作量,缩短开发周期,而且能利用底层开发工具灵活地操纵动态物体,增强了系统的交互性和对时间维的支持[247]

通过数据库或数据文件实现干旱演化模型与仿真系统的集成。仿真系统实时运行过程中,按顺序依次读取三个计算步长的数据,分别存入内存中的PreviousInfo、NextInfo和NNextInfo三个指针;用PreviousInfo和NextInfo两个指针数组按一定的显示时间步长插值,得到进程渐变的数据并实时显示;后台调入下一时间步长的数据进行更换并继续插值:*PreviousInfo=*NextInfo,*NextInfo=*NNextInfo。这样不但实现了数据在三维可视化平台上的更新传递与实时显示,而且消耗内存资源极小。

干旱演化数据大部分是二维标量,空间位置坐标不变,而任一点的属性信息可能会发生变化。数据场分布随着时间的推进而发生变化,每循环一帧,属性值就会变化一次,以属性值为参数的绘制函数所绘制的干旱演化数据时空分布图形会重绘一次,伴随着屏幕的更新,数据各时刻的空间分布状态就可以展现在三维场景中。

属性值可视化是通过颜色映射方式表现的。首先,设置分级或连续的颜色条带;其次,在系统初始化过程中找出所有节点中相同属性的最大、最小值,并设置其对应的颜色值或者透明度值,然后线性插值得出所有节点的颜色值和透明度值;最后,通过节点位置、透明度和颜色值绘制三角形图元。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈