张小瑞+舒雅+孙伟+杨泽俊+朱利丰+宋爱国
摘 要: 自然界云由于具有动态模式多变、外表不规则等特点,故基于虚拟现实自然现象云模拟是最为复杂的模拟对象之一。该文运用环境光、漫反射光、镜面反射光处理云的光影,采用3ds MAX 2016和OpenGL,实现了一天中不同时刻云的仿真以及10种具有代表性云的构造与仿真。通过VC++ 2016编写程序,并利用AE和PR技术进行后期制作,实现了晴天云、雨天云、雪天云三种常见天气仿真,模拟效果逼真。
关键词: 云; 虚拟现实; 天气仿真; 3ds MAX 2016; OpenGL; VC++ 2016
中图分类号: TN911?34; TP391.9 文献标识码: A 文章编号: 1004?373X(2018)04?0001?05
Abstract: As clouds in nature have characteristics of variable dynamic patterns and irregular appearances, simulation of clouds in natural phenomena based on virtual reality becomes one of the most complicated simulation objects. In this paper, the cloud shadows are processed by using ambient light, diffuse reflection light, and specular reflection light. 3ds MAX 2016 and OpenGL are used to realize the simulation of clouds at different times of a day, and the construction and simulation of ten representative clouds. VC++ 2016 is used to compile the program, the AE and PR technologies are adopted for post?production, and the simulation for three common weather of sunny clouds, rain clouds, and snow days clouds is realized with vivid simulation effect.
Keywords: clouds; virtual reality; weather simulation; 3ds MAX 2016; OpenGL; VC++ 2016
0 引 言
云的生成、外形特征、分布以及演变,不仅反映了大气运动,且是天气变化征兆之一,对人们的生产、生活实践有重要的参考价值。随着对自然环境模拟逼真度的要求不断提高,云的构造与仿真已成为虚拟现实领域研究的热点,是图形学领域重要的研究课题。
近年来,研究人员在对云这种自然景象进行模拟方面开展了大量研究,取得了一系列成果。Wang在對之前Neyret的方法进行了改良和简化[1?2],将云层的点绘制发展成基于体分割的面绘制,并配以高精度纹理,大幅度提升了云层仿真的绘制效率和仿真效果。Yu等在Wang的云层构建方法的基础上,进行了很多在自动化生成和计算方面的改进[3?6]。
目前模拟的真实感、实时性存在不足,实现的天气特效模拟比较单一,没有加入其他元素进行综合模拟,实用性较差,研发成本高。本文通过对不同形态云的仿真研究,并通过OpenGL对环境进行初始化,结合VC++2016编写程序,以消耗较少系统资源达到逼真效果,在天空场景中绘制出了动态高效且具有高度真实感的云层。
1 虚拟云构建
1.1 云的光影
自然界中云的色彩是在光的反射、折射、散射等光学现象中表现出来的,是光在云中传输而呈现出的视觉效果。光学原理认为,自然界光线的分布与传播是由许多离散的光子所构成,光子不断由光源向外散发,当光子遇到物体表面后分为两部分:一部分以特定波长运动的光子被表面吸收;另一部分将分散到环境中。因此,云的构建应主要考虑环境光、漫反射光、镜面反射光。设[Q]为云表面任意点,观察[Q]点所看到的光强[lQ]可表示为:
1.2 构建方法
当前,云层场景绘制逐渐由二维向三维方向发展。三维立体云建模消除了二维云在摄像机距离较近时所表现出的不真实性以外,还解决了其最严重的缺陷:二维云的不可穿越性。同时在天空仿真系统中加入三维立体云的研究,增加了其仿真真实感。
目前,常用的两种三维立体云建模方法分别是粒子系统建模[7]和基于体分割绘制建模[8],本文采用前者建模。
由于粒子系统建模解决了传统计算方法无法解决的云外形多变且不规则、边缘轮廓模糊的问题。通过将那些不规则的自然物体看成是无数个微小的粒子构成的,这些粒子都具有其各自的属性如颜色、位置、生存周期、速度等,通过控制粒子的这些属性,从而实现对不同物体的仿真模拟。粒子经过创建、运动、消亡的过程,不断的有新粒子产生和旧粒子的消亡,周而复始,实现对不规则物体的绘制,具有相当不错的动态仿真真实感,流程图如图1所示。
本文云模拟具体分为以下几个步骤:
1) 通过OpenGL对环境进行初始化;
2) 读取外部云数据,生成并初始化云粒子;
3) 根据读取特定的云数据,设置云粒子属性,实现对特定云的仿真;
4) 随着时间变化,粒子的生存周期逐渐减少,判断云粒子生命周期是否终结,当生存周期为 0 时,粒子周期终结,执行步骤3),否则继续执行;endprint
5) 生存周期不为 0 的粒子为有效粒子,对其进行渲染,生成云的图形。
2 仿真效果图
本文所用的虚拟现实构建方式是在Intel i7?6700K CPU,NVIDIA GeForce GTX 1080显卡的PC机,以3ds MAX 2016,OpenGL图形库为基础,采用VC++ 2016作为开发环境,构建虚拟云。
自然界云无论是静止形态,还是其受温度和湿度影响而产生的动态变化都相当复杂;并且在对云进行实时模拟时,还要考虑光线在云体内交互作用而产生的视觉效果。为了模拟不同情况下的云,本文首先通过对一天中不同时刻的云进行仿真,达到理想的仿真效果如图2所示。
云不仅多变,而且由于粒子不断的活动,不同种类的云形态多样。通常情况下,根据云的外形特征、结构以及成因划分成若干类。本文选取了卷云、卷积云、层云、高层云、雨层云、积雨云、层积云、积云、高积云、卷层云10种具有代表性的云进行仿真。
3 编程实现
利用3ds MAX 2016和AE制作天气特效,可实现更完整逼真的环境模拟,具体步骤如下:
1) 安置摄像机追踪,在3ds MAX中设置好天气背景。创建一个巨大的球体模拟天空。
2) 给天空球体贴晴天,多云,阴天的HDR环境贴图,模拟出不同气候的天空背景景色。设置渲染,导出视频。
3) 进入AE,项目窗口导入视频动画,将动画拖入新的合成场景中使形成与视频尺寸相同的场景。添加色彩校正中的“曲线”效果,调整曲线参数,对不同天气的画面进行色彩调节并加关键帧使画面色彩自然,再添加色相和饱和度效果,调整画面色彩饱和度,分别创造出晴天、阴天、雨雪天气氛,如图13所示。
4) 在阴天效果的基础上,新建个solid,利用fractal noise效果制造乌云,混合模式改成screen ,并将fractal noise的evolution添加动画使云彩动起来,雨天效果通过cc rain 效果来实现,雨水落地形成的水洼利用Simulation中的wave world模拟出一圈圈的扩散效果,水波纹利用fractal noise效果将fractal type改为dynamic 再加一个invert反向效果,如图14所示。
5) 雪天天气效果的制作。新建一个固态层,吸取一个类似雪的颜色,借此来营造出雪的氛围。
6) 新建一个调节层,加上vibrance,强调画面的灰度感。
7) 再建立一个固态层。使用特效面板上的paticlular,将position xy位置调出画面上方,particles/s每秒发射数量增加,再调节粒子的大小,随机值,physics中Air属性中的wind x,wind y分别增加,发射类型改变为box,velocity降低,使粒子速度降低,有下雪的效果,gravity降低,使粒子自然落下,并将affect position增大,使粒子发射不规则,将粒子寿命life值添加动画使在最后一帧寿命为零,使雪自然停止,如图15所示。
4 结 语
本文基于3ds MAX 2016和OpenGL进行了虚拟云的建模与仿真,结合VC++ 2016的程序编写,运用了软件平台建模,对一天中不同时刻的云进行模拟,选取卷云、卷积云、层云、高层云、雨层云、积雨云、层积云、积云、高积云、卷层云作为代表,实现对不同种类云的仿真。通过仿真结果和相应数据,验证了本文模拟云方法的正确性和可行性,达到较为理想的三维云模拟仿真效果。
就目前而言,虚拟云所应用的领域还有很大的提升空间,研究深度有待提高。对于云的虚拟仿真技术研究,不仅对计算机图形学领域中物体模型技术的发展有着促进作用,而且对大气现象的研究以及各种仿真系统中的应用也有着一定的现实意义。本文模拟方法对于高要求的虚拟现实景物研究应用来说,还有很大改良空间。今后的研究也将考虑不同地质环境、风速等因素对云模拟的影响。同时将进一步实现云模拟的真实感以及沉浸感,提高交互性,以达到更好的模拟仿真效果。
参考文献
[1] WANG N. Realistic and fast cloud rendering [J]. Journal of graphics tools, 2004, 9(3): 21?40.
[2] NEYRET F. Qualitative simulation of convective cloud formation and evolution [C]// Proceedings of Eurographics Workshop on Computer Animation and Simulation. Berlin: Springer?Verlag, 1997: 113?124.
[3] YU C M, WANG C M. An effective framework for cloud modeling, rendering, and morphing [J]. Journal of information science and engineering, 2011, 27(3): 891?913.
[4] CHRISTOPHER I W, PAUL M D S, SAMUEL S R. Application of cellular automata approach for cloud simulation and rendering [J]. Chaos: an interdisciplinary journal of nonlinear science, 2014, 24(1): 1?12.
[5] MACHADO E SILVA R, ESPERANCA C, MARROQUIM R, et al. Image space rendering of point clouds using the HPR operator [J]. Computer graphics forum, 2014, 33(1): 178?189.endprint
[6] HOU W, GUO L. Virtual network embedding for hybrid cloud rendering in optical and data center networks [J]. Science China: information sciences, 2016, 59(2): 1?14.
[7] BI Shuoben, BI Shengjie, ZENG Xiaowen, et al. 3?dimensional modeling and simulation of the cloud based on cellular automata and particle system [J]. International journal of geo?information, 2016, 5(6): 86.
[8] LIU Y. Robust segmentation of raw point clouds into consistent surfaces [J]. Science China: technological sciences, 2016, 59(8): 1156?1166.
[9] KR?MER M, ROLF C, ANNA L, et al. A microphysics guide to cirrus clouds ? part 1: cirrus types [J]. Atmospheric chemistry & physics, 2015, 16(5): 3463?3483.
[10] 张灿,梁文钢.云能天的准确识别研究[J].北京农业,2014(24):185?186.
ZHANG Can, LIANG Wengang. Research on accurate recognition of cloud, visibility, and weather [J]. Beijing agriculture, 2014(24): 185?186.
[11] ZHANG Y, CHEN H, YU R. Simulations of stratus clouds over Eastern China in CAM5: sources of errors [J]. Journal of climate, 2015, 28(1): 36?55.
[12] FEOFILOV A G, STUBENRAUCH C J, DELANOE J. Ice water content vertical profiles of high?level clouds: classification and impact on radiative fluxes [J]. Atmospheric chemistry and physics, 2015, 15(21): 12327?12344.
[13] BLYTH A M, BENNETT L J, COLLIER C G. High?resolution observations of precipitation from cumulonimbus clouds [J]. Meteorological applications, 2015, 22(1): 75?89.
[14] 郭准,周天军.一个改进的诊断层积云方案及其对大气环流模式性能的改进[J].中国科学地球科学,2014,44(5):1034?1048.
GUO Z, ZHOU T J. An improved stratocumulus scheme based on estimated inversion strength and its performance in GAMIL2 [J]. Science China: earth sciences, 2014, 44(5): 1034?1048.
[15] HEIBLUM R H, ALTARATZ O, KOREN I, et al. Characterization of cumulus cloud fields using trajectories in the center of gravity versus water mass phase space. part 1: cloud tracking and phase space description [J]. Journal of geophysical research: atmospheres, 2016, 121(11): 6336?6355.endprint