第29卷Vol.29
第24期No.24
计算机工程与设计
ComputerEngineeringandDesign
2008年12月Dec.2008
农业场景中下雪和积雪的实时模拟
魏
摘
伟1,2,郭新宇2+,赵春江2,陆声链2
(1.首都师范大学信息工程学院,北京100037;2.国家农业信息化工程技术研究中心,北京100097)
要:下雪和积雪是农业场景中常见的自然现象。提出了一种下雪和积雪过程模拟的方法,算法采用粒子系统对雪粒子建模来模拟下雪过程,同时加入了风吹的效果。在模拟积雪时,通过在地面和屋顶构造一层三角形网格来保存雪的堆积信息,避免了保存雪粒子作为积雪实体的内存开销,同时考虑了雪飘落过程中与温室墙壁的碰撞检测。在渲染时,采用了平均法向量和混合顶点颜色的方法来获得平滑的效果。模拟结果表明,该方法能有效地再现农业场景中下雪和积雪场景,在满足实时交互漫游的前提下表现出较强的真实感。
关键词:雪;积雪模型;自然场景模拟;粒子系统;OpenGL中图法分类号:TP391.9
文献标识码:A
文章编号:1000-7024(2008)24-6350-03
Real-timesimulationofsnowfallingandaccumulationinagriculturalscene
WEIWei1,2,
GUOXin-yu2+,
ZHAOChun-jiang2,
LUSheng-lian2
(1.CollegeofInformationEngineering,CapitalNormalUniversity,Beijing100037,China;2.NationalEngineering
ResearchCenterforInformationTechnologyinAgriculture,Beijing100097,China)
Abstract:Snowfallingandaccumulationarecommonnaturalphenomenainagriculturalscene.Amethodispresentedtosimulatesnowfallingandaccumulation,thealgorithmsimulatesthesnowfallingprocessandmodelssnowflakeparticlesbasedonanalyzingparticlesystem,withtheeffectsofwind-blownsnow,inthesimulationofsnowaccumulation,ablanketoftriangulationmeshareconstructedtostoreinformationaboutsnowdepthonthegroundandroof,thememorycostforstoringsnowflakeparticlesassnowaccumulationthereforeisavoided,thecollisiondetectionbetweensnowflakesandthewallofgreenhouseisconsideredinthefallingprocessatthesametime,amethodofaveragingnormalandblendingthecolorofvertexisadoptedtoobtainthesmootheffectinsnowrendering.Thesimulationresultshaveproventhattheproposedmethodismoreeffectiveforsimulatingsnowfallingandaccumulationinagriculturalscene,anditsatisfybasicneedforreal-timeinteractivenavigationwithrealisticeffects.
Keywords:snow;accumulationmodel;simulationofnaturalscene;particlesystem;OpenGL
在远景中可视化一个真实的积雪层;Summers等[5]提出了沙子、泥、雪变形的模拟方法,实现了沙子、泥、雪表面受到外部压力时产生表面变形,;Nishita等[6]则使用metaballs来构造和绘制积雪,并且考虑了光线通过雪时的传播路径和散射。Fearing[7]介绍了一个复杂的积雪模型和稳定性模型来构造几何面表达的雪景。这种方法的不足在于构造过程非常复杂、场景数据庞大,很难应用于复杂场景。Haglund等[8]人巧妙地使用了一个二维矩阵来保存每个积雪面的积雪高度信息,当雪花落到地面时,包含积雪高度信息的二维矩阵中对应的高度值就会增加,利用高度信息在地面上绘制出积雪曲面。一些研究者还提出了把积雪作为单个像素来渲染的方法[9],这种方法与阴影映射方法非常相似,深度缓存被用来计算每个面应该落下多少雪花,并且使用3D噪声来模拟积雪面的光照。最近还有些
0引言
雪景在农业生产中是常见的自然现象,积雪对农业设施的设计和农作物的生长发育有着很重要的影响,逼真、实时地模拟下雪和积雪对农业景观的模拟和计算分析都十分重要。
目前,计算机图形学和动画研究中对雪的模拟通常分为两类。一类是模拟雪花的下落,主要研究雪花在各种外力作用下的下落方式和路径,包括风、重力的作用,以及雪花之间的相互碰撞等。这类研究大都采用粒子系统来模拟雪花,如王润杰等[1]和罗维佳等[2]分别使用粒子系统实现了三维场景中实时模拟降雨和下雪的效果,徐利明等
[3]
基于粒子系统与
OpenGL实时模拟了雨雪。另一类研究重点是模拟地面的积雪。Law等[4]模拟了高山地形上的积雪,他们的工作主要集中
E-mail:[email protected]
基金项目:国家十一五科技支撑计划基金项目(2006BAD10A07)。收稿日期:2007-12-18
作者简介:魏伟(1983-),男,河南周口人,硕士研究生,研究方向为三维可视化;+通讯作者:郭新宇(1973-),男,内蒙赤峰人,副研究员,研究方向为作物数字化设计;赵春江(1964-),男,河北人,博士,研究员,研究方向为农业信息技术;陆声链(1979-),广西人,博士研究生,研究方向为植物生长建模。
-6350-
研究者分别提出了使用阴影缓存技术模拟积雪形状的方法[10]和基于Boltzmann方程的离散形式来模拟风驱动下积雪场景的方法[11]。国内对积雪模拟的报道较为罕见,陈彦云等[12]曾提出了一种在大型场景中采用位移映射来构造近处由多边形构造的物体上的雪块的方法。但是这种方法实现起来比较复杂,并且不能实时的模拟积雪堆积的过程。本文结合上面两类研究的已有成果,根据农业场景的特点,提出了一种基于粒子系统的下雪和积雪过程实时模拟的方法,并应用到了农业场景中。模拟结果表明,该方法实现了在农业场景中下雪效果和积雪的实时模拟,具有较强的真实感。
到场景中风的方向和风力的大小。由于改变是实时,使用者可以随时调节风的方向和大小,直到达到满意的效果。图2是雪粒子在下落过程中风吹的效果。
1基于粒子系统的下雪模拟
粒子系统是模拟不规则物体最常用的图形生成算法之一[13],
它是一种过程计算模型,其正常运行的关键是确定粒子的初始属性、粒子的变化规律和绘制等因素。粒子系统的这些属性与变化规律的可控性使粒子系统可以用来模拟许多动态自然景象(如雨、雪、烟、云、火焰等)[14]。
在粒子生命期的每一刻,都要完成以下5步工作:
(1)粒子源产生粒子并赋予粒子属性后加入系统中;(2)根据粒子的动态属性对粒子进行移动和变换,同时更新粒子属性;
(3)判断粒子的生命值;
(4)删除那些已经超过其生命周期的粒子;(5)绘制并显示由有生命的粒子组成的图形。
2
2.1
雪的堆积
积雪建模
根据农业场景中积雪的特点,本文分别在开阔地和温室
屋顶,及温室墙脚处模拟了积雪堆积过程。为了更加逼真地模拟积雪,文中用一个三角形网格化曲面保存地面和屋顶等区域的积雪厚度信息。将积雪区域划分成许多小三角形网格,当粒子落到三角形的顶点区域时,该顶点的积雪厚度就会增加。离散点的三角形网格化有许多方法,算法中采用的是均匀划分这些离散点的方法,开始时遍历所有顶点,为每邻近的4个顶点建立两个三角形,每4个顶点都有两种不同的方法来划分。不同的三角形划分方法对积雪的渲染效果有很大的影响,本文只是为了模拟积雪的效果,所有只采用了单一的划分方法。三角形网格化积雪区域如图3所示。
1.1雪粒子的绘制
可以用来表示粒子的微小图元类型较多,由于雪花的物
理形状很难绘制,并且雪花片的厚度很薄。因此本文选择了较简单的由4个点定义的小正方形作为粒子,并为正方形加上纹理。纹理映射在粒子系统的模拟效果中起到了重要作用,可以使每个粒子充分的发挥作用。采用带有纹理的微小图元做粒子,形成了经过复杂的光照模型计算才能达到的相同效果,减少了计算量,从而提高了粒子系统显示的实时性。
1.2BillBoarding技术的应用
粒子系统是运行在三维坐标系中,但通常的纹理映射都
是采用二维纹理,例如本文是采用的正方形片映射二维纹理的方法。
采用二维纹理映射的优点是需要的系统资源和运算量较小,可以明显的提高运行速度。缺点是当视点或粒子系统进行位移和旋转运动时,粒子面元会因为和视线在三维空间中的相互关系发生改变而产生失真:当粒子的纹理映射平面和视线平行时,看到就是粒子面元的侧面,粒子就会变成一条线,完全得不到希望的效果。
本文采用BillBoarding技术[15](即公告板技术。也称视线
追踪技术),在确定了粒子几何中心后,由视线向量和其它条件计算出粒子各个顶点的坐标,然后根据顶点坐标绘制粒子。这样不论粒子系统或者视点如何移动,粒子的纹理映射平面始终垂直于视线方向,从而实现了三维效果。本文所用到的雪花纹理如图1所示。
积雪的细节是由三角形网格的大小和积雪区域的大小决定的。网格的划分取决取决于场景大小,在大型虚拟场景中就会划分成较大的网格,但是会丢失一些细节。如果能够划分成每个雪花大小的小单元区域,将会模拟出十分逼真和高度细节的积雪,但是由于模拟是实时的,这将会花费大量的时间用在计算上,因此必须在速度和可视化效果之间做出平衡。
2.2积雪的绘制
由于三角形划分的相当大,所以必须使用Gouraud或者
Phong明暗处理方法渲染。直接的明暗效果会看起来棱角分明,有些地方会有锋利的凸起。本文使用的是OpenGL来渲染图形,因此选择Gouraud明暗处理方法。
为了实现更好的明暗效果,必须计算每个顶点的法线向
量
1.3风吹效果的模拟
在模拟过程中,加入了风吹的效果,允许使用者指定加载
-6351-
顶点,
因此每个顶点的法向量
6
态转变会有雪的状态。地面从没有雪,到突然变成一个白色的表面,这种明显的突变将不会产生逼真的模拟。为了模拟积雪不断累积渐变的过程,本文使用了混合顶点颜色以实现该过程。积雪的颜色是由混合因子alpha值决定的。当厚度为0时,积雪是完全透明的。随着积雪厚度的增加,其混合因子alpha值也不断的增加。当积雪厚度达到一个固定值时,其alpha值为1.0。此时,积雪完全覆盖了地面。由图6~9可以看
3
即为2个或3个三角形面法向量的平均值。图4是计算每个顶点的法线向量前后的效果。
=
出这一渐变过程。
3实现与结果
采用VisualC++编程语言和OpenGL图形引擎实现了上
述模拟算法,并进行了模拟实验。可以观察到积雪在日光温室的透光覆盖材料上堆积的过程,图6~9反映了这一变化过程。模拟时,可以通过程序交互控制接口调整粒子数量,以达到场景需要的雪景大小要求。模拟是在配置为Pentium1.8GHz的CPU、DDR512M内存及GeForce3Ti200显卡的PC机
(a)未计算每个顶点的法线
向量前的效果
(b)计算每个顶点的法线
向量后的效果
上进行的,当场景中动态粒子数达500时,场景漫游系统仍能以24帧/秒的速度进行漫游,基本不影响系统的实时性。
图4计算每个顶点的法线向量前后的效果
2.3墙脚积雪的模拟
对于墙脚的积雪是要区别对待的,当在场景中加入风的
作用,墙的一侧阻挡了风,大量的粒子会在下落的过程中碰撞到墙面,然后下落到墙脚处的地方,所以此侧墙脚处就会有较多的积雪,而另一侧的墙脚处则比其它的积雪要少。为了增强场景的真实感,本文使用包围盒碰撞检测法来
检测粒子与墙的碰撞。沿坐标轴的包围盒(axis-alignedboundingboxes,AABB)在碰撞检测的研究历史中使用的时间比较长,使用的范围较广。粒子对象被包含一个各边都平行与坐标轴的最小的六面体内。图5(a)给出了一个粒子的包围盒,它具有顶
点
、
坐标、
min
max
、
min
、(
max
)
和,
+
+
+
≤0则发生了碰撞。此时
4结束语
本文提出了一种下雪和积雪过程模拟方法,能够在较少
把粒子的偏移速度置为0,则刚好落到墙脚处。
计算开销的基础上模拟农业场景中逼真地下雪和积雪场景。该方法使用粒子系统产生雪粒子,并且采用BillBoarding技术加强雪粒子的视觉效果,在粒子下落的过程中,可以实时调整风的大小和方向。在模拟积雪时,通过在地面和屋顶构造一
(a)三维包围盒示例
(b)
墙脚的积雪效果
层三角形网格来保存雪的堆积信息,当粒子落到三角形的顶点区域时,该顶点的积雪厚度就会增加,同时,算法考虑了雪在飘落过程中与温室墙壁的碰撞问题,生成了雪在墙脚堆积的效果。而在渲染时,采用了平均法向量和混合顶点颜色的方法来生成平滑的效果。模拟效果是十分逼真的。并且为以后研究计算积雪下的温室屋顶透光率和温室接受的太阳辐射量奠定了基础。
(下转第6357页)
图5采用碰撞检测后的积雪
2.4积雪的混合
当雪花下落到积雪表面时,地面或屋顶上对应顶点的积
雪厚度就会增加,并且会影响比一个雪花大小更大区域的积雪。从第一片雪片落到地上时,一个大的区域会从无雪的状
-6352-
经过PC-1置换、左右拆分、循环左移操作后的左、右各28位的数据通过密钥合并组件合并为56位的数据后进行PC-2置换,将此置换结果与经过E置换的明文数据进行异或运算、S盒、P置换操作,再将此结果与明文IP置换后的右拆分结果进行异或运算,最终将明文IP置换后的左拆分结果与此异或结果合并作为DES算法第一轮的加密结果,该结果如图7所示。
参考文献:
[1]
CaoJiannong,AlvinChan,CaoWeidong,etal.Virtualprogram-minglabforonlinedistancelearningLNCS2436[C].Hong-Kong,China:FirstInternationalConference,2002:59-61.[2]
BenetazzoL,BertoccoM,FerrarisF,etal.Aweb-baseddistri-butedvirtualeducationallaboratory[J].IEEETransactiononIn-strumentationandMeasurement,2000,49(2):349-356.[3]
SpaniasAndreas,AttiVenkatraman.InteractiveOnlineunder-graduatelaboratoriesusingJ-DSP[J].IEEETransactionsonEdu-cation,2005,48(4):735-749.[4]
SpaniasAndreas,AttiVenkatramanPapandreou-Suppappola,Antonia,etal.On-linesignalprocessingusingJ-DSP[J].IEEESignalProcessingLetters,2004,11(10):821-825.[5]
MarcoCasini,DomenicoPrattichizzo,AntonioVicino.Theauto-maticcontroltelelab:Auser-friendlyinterfacefordistancelearning[J].IEEETransactionsonEducation,2003,46(2):252-257.[6][7][8][9]
王建新,陆炜妮.基于CORBA技术的网上虚拟实验室系统架构设计[J].小型微型计算机系统,2004,25(10):1213-1216.王建新,陆炜妮,王伟平.基于组件的数字图像处理仿真系统的设计与实现[J].系统仿真学报,2004,16(6):1750-1753.信息安全工程实践综合实验平台[EB/OL].http://863prj.sjtu.edu.cn,2005.
北京邮电大学信息安全实验室[EB/OL].http://www.sie.bupt.cn.
[10]刘东华,徐志伟,李伟.基于有向无环图的两层网络监测系统[J].
计算机研究与发展,2002,39(8):937-942.
图6DES算法的实验图7DES算法实验的结果显示
5结束语
本文在对密码学实验的深入分析研究的基础上,详细论
述了密码学虚拟实验室的架构和实现方案。该系统以JavaApplet实现客户端,具有Java语言的平台独立性和安全性;以JavaBean的形式开发密码算法组件,提高了系统的开发效率,实现了软件重用,使系统易于扩充;以用组件搭建实验流程图的方式实现密码相关算法,增强了抽象算法的直观性。在此系统中,用户能够进行密码学课程中的相关实验,也可以加入自己编写的算法进行验证及扩充实验组件。该系统具有功能完整,交互性强,功能模块化清晰,实验组件丰富且易于扩充、软件重用性强等特点,为信息安全专业的学生提供了通过互联网学习密码学课程的实验平台,并给从事仿真系统开发的研究者提供了很好的参考模型。
(上接第6352页)
参考文献:
[1][2][3][4]
王润洁,田景全,倪政国.基于粒子系统的实时雨雪模拟[J].系统仿真学报,2003,15(4):495-496.
罗维佳,都金康,谢顺平.基于粒子系统的三维场地降雨实时模拟[J].中国图像图形学报,2004,9(4):495-500.
徐利明,姜昱明.基于粒子系统与OpenGL的实时雨雪模拟[J].计算机仿真,2005,22(7):242-245.
LawS,OhBM,ZaleskyJ.Thesynthesisofsnowcoveredterrains[EB/OL].http://www.graphics.lcs.mit.edu/boh/Projects/snowGen-FinalWrite.html,1996.[5]
SummerRW,O’brienJF,HodginsJK.Animatingsand,mudandsnow[C].Vancouver,BritishColumbia:ProceedingsofGraphicsInterface,1998:125-132.[6]
NishitaT,IwasakiH,DobashiY,eta1.Amodelingandrenderingmethodforsnowbyusingmeatballs[J].ComputerGraphicsFo-rum,1997,16(3):357-364.[7]
FearingP.Computermodelingoffallensnow[C].NewYork,USA:Proceedingsofthe27thAnnualConferenceonComputer
GraphicsandInteractiveTechniques,2000:37-46.[8][9]
HaglundH,AndersonM,HastA.Snowaccumulationinreal-time[C].Norrköping,Sweden:ProceedingsofSIGRAD,2002:11-15.PerOhlsson,StenfanSipel.Real-timerenderingofaccumulatedsnow[C].Gävle,Sweden:SIGRAD,2004:25-31.
[10]KoheTokoi.Ashadowbuffertechniqueforsimulatingsnow-coveredshapes[C].Sydney,Australia:InternationalConferenceonComputerGraphics,ImagingandVisualization,2006:310-316.[11]WangChangbo,WangZhangye,XiaTian,etal.Real-time
snowingsimulation[J].VisualComputer:InternationalJournalofComputerGraphics,2006,22(5):315-323.
[12]陈彦云,孙汉秋,郭白宁,等.自然雪景的构造和绘制[J].计算机
学报,2002,25(9):916-921.
[13]彭群生.计算机真实感图形的算法基础[M].北京:科学出版社,
2003.
[14]尹勇,金以丞,任鸿翔,等.自然现象的实时仿真[J].系统仿真学
报,2002,14(9):1217-1219.
[15]韩瑞波,戴树岭.可调参数的粒子系统及其在飞行仿真中的应
用[J].系统仿真学报,2006,18(8):2296-2299.
-6357-
第29卷Vol.29
第24期No.24
计算机工程与设计
ComputerEngineeringandDesign
2008年12月Dec.2008
农业场景中下雪和积雪的实时模拟
魏
摘
伟1,2,郭新宇2+,赵春江2,陆声链2
(1.首都师范大学信息工程学院,北京100037;2.国家农业信息化工程技术研究中心,北京100097)
要:下雪和积雪是农业场景中常见的自然现象。提出了一种下雪和积雪过程模拟的方法,算法采用粒子系统对雪粒子建模来模拟下雪过程,同时加入了风吹的效果。在模拟积雪时,通过在地面和屋顶构造一层三角形网格来保存雪的堆积信息,避免了保存雪粒子作为积雪实体的内存开销,同时考虑了雪飘落过程中与温室墙壁的碰撞检测。在渲染时,采用了平均法向量和混合顶点颜色的方法来获得平滑的效果。模拟结果表明,该方法能有效地再现农业场景中下雪和积雪场景,在满足实时交互漫游的前提下表现出较强的真实感。
关键词:雪;积雪模型;自然场景模拟;粒子系统;OpenGL中图法分类号:TP391.9
文献标识码:A
文章编号:1000-7024(2008)24-6350-03
Real-timesimulationofsnowfallingandaccumulationinagriculturalscene
WEIWei1,2,
GUOXin-yu2+,
ZHAOChun-jiang2,
LUSheng-lian2
(1.CollegeofInformationEngineering,CapitalNormalUniversity,Beijing100037,China;2.NationalEngineering
ResearchCenterforInformationTechnologyinAgriculture,Beijing100097,China)
Abstract:Snowfallingandaccumulationarecommonnaturalphenomenainagriculturalscene.Amethodispresentedtosimulatesnowfallingandaccumulation,thealgorithmsimulatesthesnowfallingprocessandmodelssnowflakeparticlesbasedonanalyzingparticlesystem,withtheeffectsofwind-blownsnow,inthesimulationofsnowaccumulation,ablanketoftriangulationmeshareconstructedtostoreinformationaboutsnowdepthonthegroundandroof,thememorycostforstoringsnowflakeparticlesassnowaccumulationthereforeisavoided,thecollisiondetectionbetweensnowflakesandthewallofgreenhouseisconsideredinthefallingprocessatthesametime,amethodofaveragingnormalandblendingthecolorofvertexisadoptedtoobtainthesmootheffectinsnowrendering.Thesimulationresultshaveproventhattheproposedmethodismoreeffectiveforsimulatingsnowfallingandaccumulationinagriculturalscene,anditsatisfybasicneedforreal-timeinteractivenavigationwithrealisticeffects.
Keywords:snow;accumulationmodel;simulationofnaturalscene;particlesystem;OpenGL
在远景中可视化一个真实的积雪层;Summers等[5]提出了沙子、泥、雪变形的模拟方法,实现了沙子、泥、雪表面受到外部压力时产生表面变形,;Nishita等[6]则使用metaballs来构造和绘制积雪,并且考虑了光线通过雪时的传播路径和散射。Fearing[7]介绍了一个复杂的积雪模型和稳定性模型来构造几何面表达的雪景。这种方法的不足在于构造过程非常复杂、场景数据庞大,很难应用于复杂场景。Haglund等[8]人巧妙地使用了一个二维矩阵来保存每个积雪面的积雪高度信息,当雪花落到地面时,包含积雪高度信息的二维矩阵中对应的高度值就会增加,利用高度信息在地面上绘制出积雪曲面。一些研究者还提出了把积雪作为单个像素来渲染的方法[9],这种方法与阴影映射方法非常相似,深度缓存被用来计算每个面应该落下多少雪花,并且使用3D噪声来模拟积雪面的光照。最近还有些
0引言
雪景在农业生产中是常见的自然现象,积雪对农业设施的设计和农作物的生长发育有着很重要的影响,逼真、实时地模拟下雪和积雪对农业景观的模拟和计算分析都十分重要。
目前,计算机图形学和动画研究中对雪的模拟通常分为两类。一类是模拟雪花的下落,主要研究雪花在各种外力作用下的下落方式和路径,包括风、重力的作用,以及雪花之间的相互碰撞等。这类研究大都采用粒子系统来模拟雪花,如王润杰等[1]和罗维佳等[2]分别使用粒子系统实现了三维场景中实时模拟降雨和下雪的效果,徐利明等
[3]
基于粒子系统与
OpenGL实时模拟了雨雪。另一类研究重点是模拟地面的积雪。Law等[4]模拟了高山地形上的积雪,他们的工作主要集中
E-mail:[email protected]
基金项目:国家十一五科技支撑计划基金项目(2006BAD10A07)。收稿日期:2007-12-18
作者简介:魏伟(1983-),男,河南周口人,硕士研究生,研究方向为三维可视化;+通讯作者:郭新宇(1973-),男,内蒙赤峰人,副研究员,研究方向为作物数字化设计;赵春江(1964-),男,河北人,博士,研究员,研究方向为农业信息技术;陆声链(1979-),广西人,博士研究生,研究方向为植物生长建模。
-6350-
研究者分别提出了使用阴影缓存技术模拟积雪形状的方法[10]和基于Boltzmann方程的离散形式来模拟风驱动下积雪场景的方法[11]。国内对积雪模拟的报道较为罕见,陈彦云等[12]曾提出了一种在大型场景中采用位移映射来构造近处由多边形构造的物体上的雪块的方法。但是这种方法实现起来比较复杂,并且不能实时的模拟积雪堆积的过程。本文结合上面两类研究的已有成果,根据农业场景的特点,提出了一种基于粒子系统的下雪和积雪过程实时模拟的方法,并应用到了农业场景中。模拟结果表明,该方法实现了在农业场景中下雪效果和积雪的实时模拟,具有较强的真实感。
到场景中风的方向和风力的大小。由于改变是实时,使用者可以随时调节风的方向和大小,直到达到满意的效果。图2是雪粒子在下落过程中风吹的效果。
1基于粒子系统的下雪模拟
粒子系统是模拟不规则物体最常用的图形生成算法之一[13],
它是一种过程计算模型,其正常运行的关键是确定粒子的初始属性、粒子的变化规律和绘制等因素。粒子系统的这些属性与变化规律的可控性使粒子系统可以用来模拟许多动态自然景象(如雨、雪、烟、云、火焰等)[14]。
在粒子生命期的每一刻,都要完成以下5步工作:
(1)粒子源产生粒子并赋予粒子属性后加入系统中;(2)根据粒子的动态属性对粒子进行移动和变换,同时更新粒子属性;
(3)判断粒子的生命值;
(4)删除那些已经超过其生命周期的粒子;(5)绘制并显示由有生命的粒子组成的图形。
2
2.1
雪的堆积
积雪建模
根据农业场景中积雪的特点,本文分别在开阔地和温室
屋顶,及温室墙脚处模拟了积雪堆积过程。为了更加逼真地模拟积雪,文中用一个三角形网格化曲面保存地面和屋顶等区域的积雪厚度信息。将积雪区域划分成许多小三角形网格,当粒子落到三角形的顶点区域时,该顶点的积雪厚度就会增加。离散点的三角形网格化有许多方法,算法中采用的是均匀划分这些离散点的方法,开始时遍历所有顶点,为每邻近的4个顶点建立两个三角形,每4个顶点都有两种不同的方法来划分。不同的三角形划分方法对积雪的渲染效果有很大的影响,本文只是为了模拟积雪的效果,所有只采用了单一的划分方法。三角形网格化积雪区域如图3所示。
1.1雪粒子的绘制
可以用来表示粒子的微小图元类型较多,由于雪花的物
理形状很难绘制,并且雪花片的厚度很薄。因此本文选择了较简单的由4个点定义的小正方形作为粒子,并为正方形加上纹理。纹理映射在粒子系统的模拟效果中起到了重要作用,可以使每个粒子充分的发挥作用。采用带有纹理的微小图元做粒子,形成了经过复杂的光照模型计算才能达到的相同效果,减少了计算量,从而提高了粒子系统显示的实时性。
1.2BillBoarding技术的应用
粒子系统是运行在三维坐标系中,但通常的纹理映射都
是采用二维纹理,例如本文是采用的正方形片映射二维纹理的方法。
采用二维纹理映射的优点是需要的系统资源和运算量较小,可以明显的提高运行速度。缺点是当视点或粒子系统进行位移和旋转运动时,粒子面元会因为和视线在三维空间中的相互关系发生改变而产生失真:当粒子的纹理映射平面和视线平行时,看到就是粒子面元的侧面,粒子就会变成一条线,完全得不到希望的效果。
本文采用BillBoarding技术[15](即公告板技术。也称视线
追踪技术),在确定了粒子几何中心后,由视线向量和其它条件计算出粒子各个顶点的坐标,然后根据顶点坐标绘制粒子。这样不论粒子系统或者视点如何移动,粒子的纹理映射平面始终垂直于视线方向,从而实现了三维效果。本文所用到的雪花纹理如图1所示。
积雪的细节是由三角形网格的大小和积雪区域的大小决定的。网格的划分取决取决于场景大小,在大型虚拟场景中就会划分成较大的网格,但是会丢失一些细节。如果能够划分成每个雪花大小的小单元区域,将会模拟出十分逼真和高度细节的积雪,但是由于模拟是实时的,这将会花费大量的时间用在计算上,因此必须在速度和可视化效果之间做出平衡。
2.2积雪的绘制
由于三角形划分的相当大,所以必须使用Gouraud或者
Phong明暗处理方法渲染。直接的明暗效果会看起来棱角分明,有些地方会有锋利的凸起。本文使用的是OpenGL来渲染图形,因此选择Gouraud明暗处理方法。
为了实现更好的明暗效果,必须计算每个顶点的法线向
量
1.3风吹效果的模拟
在模拟过程中,加入了风吹的效果,允许使用者指定加载
-6351-
顶点,
因此每个顶点的法向量
6
态转变会有雪的状态。地面从没有雪,到突然变成一个白色的表面,这种明显的突变将不会产生逼真的模拟。为了模拟积雪不断累积渐变的过程,本文使用了混合顶点颜色以实现该过程。积雪的颜色是由混合因子alpha值决定的。当厚度为0时,积雪是完全透明的。随着积雪厚度的增加,其混合因子alpha值也不断的增加。当积雪厚度达到一个固定值时,其alpha值为1.0。此时,积雪完全覆盖了地面。由图6~9可以看
3
即为2个或3个三角形面法向量的平均值。图4是计算每个顶点的法线向量前后的效果。
=
出这一渐变过程。
3实现与结果
采用VisualC++编程语言和OpenGL图形引擎实现了上
述模拟算法,并进行了模拟实验。可以观察到积雪在日光温室的透光覆盖材料上堆积的过程,图6~9反映了这一变化过程。模拟时,可以通过程序交互控制接口调整粒子数量,以达到场景需要的雪景大小要求。模拟是在配置为Pentium1.8GHz的CPU、DDR512M内存及GeForce3Ti200显卡的PC机
(a)未计算每个顶点的法线
向量前的效果
(b)计算每个顶点的法线
向量后的效果
上进行的,当场景中动态粒子数达500时,场景漫游系统仍能以24帧/秒的速度进行漫游,基本不影响系统的实时性。
图4计算每个顶点的法线向量前后的效果
2.3墙脚积雪的模拟
对于墙脚的积雪是要区别对待的,当在场景中加入风的
作用,墙的一侧阻挡了风,大量的粒子会在下落的过程中碰撞到墙面,然后下落到墙脚处的地方,所以此侧墙脚处就会有较多的积雪,而另一侧的墙脚处则比其它的积雪要少。为了增强场景的真实感,本文使用包围盒碰撞检测法来
检测粒子与墙的碰撞。沿坐标轴的包围盒(axis-alignedboundingboxes,AABB)在碰撞检测的研究历史中使用的时间比较长,使用的范围较广。粒子对象被包含一个各边都平行与坐标轴的最小的六面体内。图5(a)给出了一个粒子的包围盒,它具有顶
点
、
坐标、
min
max
、
min
、(
max
)
和,
+
+
+
≤0则发生了碰撞。此时
4结束语
本文提出了一种下雪和积雪过程模拟方法,能够在较少
把粒子的偏移速度置为0,则刚好落到墙脚处。
计算开销的基础上模拟农业场景中逼真地下雪和积雪场景。该方法使用粒子系统产生雪粒子,并且采用BillBoarding技术加强雪粒子的视觉效果,在粒子下落的过程中,可以实时调整风的大小和方向。在模拟积雪时,通过在地面和屋顶构造一
(a)三维包围盒示例
(b)
墙脚的积雪效果
层三角形网格来保存雪的堆积信息,当粒子落到三角形的顶点区域时,该顶点的积雪厚度就会增加,同时,算法考虑了雪在飘落过程中与温室墙壁的碰撞问题,生成了雪在墙脚堆积的效果。而在渲染时,采用了平均法向量和混合顶点颜色的方法来生成平滑的效果。模拟效果是十分逼真的。并且为以后研究计算积雪下的温室屋顶透光率和温室接受的太阳辐射量奠定了基础。
(下转第6357页)
图5采用碰撞检测后的积雪
2.4积雪的混合
当雪花下落到积雪表面时,地面或屋顶上对应顶点的积
雪厚度就会增加,并且会影响比一个雪花大小更大区域的积雪。从第一片雪片落到地上时,一个大的区域会从无雪的状
-6352-
经过PC-1置换、左右拆分、循环左移操作后的左、右各28位的数据通过密钥合并组件合并为56位的数据后进行PC-2置换,将此置换结果与经过E置换的明文数据进行异或运算、S盒、P置换操作,再将此结果与明文IP置换后的右拆分结果进行异或运算,最终将明文IP置换后的左拆分结果与此异或结果合并作为DES算法第一轮的加密结果,该结果如图7所示。
参考文献:
[1]
CaoJiannong,AlvinChan,CaoWeidong,etal.Virtualprogram-minglabforonlinedistancelearningLNCS2436[C].Hong-Kong,China:FirstInternationalConference,2002:59-61.[2]
BenetazzoL,BertoccoM,FerrarisF,etal.Aweb-baseddistri-butedvirtualeducationallaboratory[J].IEEETransactiononIn-strumentationandMeasurement,2000,49(2):349-356.[3]
SpaniasAndreas,AttiVenkatraman.InteractiveOnlineunder-graduatelaboratoriesusingJ-DSP[J].IEEETransactionsonEdu-cation,2005,48(4):735-749.[4]
SpaniasAndreas,AttiVenkatramanPapandreou-Suppappola,Antonia,etal.On-linesignalprocessingusingJ-DSP[J].IEEESignalProcessingLetters,2004,11(10):821-825.[5]
MarcoCasini,DomenicoPrattichizzo,AntonioVicino.Theauto-maticcontroltelelab:Auser-friendlyinterfacefordistancelearning[J].IEEETransactionsonEducation,2003,46(2):252-257.[6][7][8][9]
王建新,陆炜妮.基于CORBA技术的网上虚拟实验室系统架构设计[J].小型微型计算机系统,2004,25(10):1213-1216.王建新,陆炜妮,王伟平.基于组件的数字图像处理仿真系统的设计与实现[J].系统仿真学报,2004,16(6):1750-1753.信息安全工程实践综合实验平台[EB/OL].http://863prj.sjtu.edu.cn,2005.
北京邮电大学信息安全实验室[EB/OL].http://www.sie.bupt.cn.
[10]刘东华,徐志伟,李伟.基于有向无环图的两层网络监测系统[J].
计算机研究与发展,2002,39(8):937-942.
图6DES算法的实验图7DES算法实验的结果显示
5结束语
本文在对密码学实验的深入分析研究的基础上,详细论
述了密码学虚拟实验室的架构和实现方案。该系统以JavaApplet实现客户端,具有Java语言的平台独立性和安全性;以JavaBean的形式开发密码算法组件,提高了系统的开发效率,实现了软件重用,使系统易于扩充;以用组件搭建实验流程图的方式实现密码相关算法,增强了抽象算法的直观性。在此系统中,用户能够进行密码学课程中的相关实验,也可以加入自己编写的算法进行验证及扩充实验组件。该系统具有功能完整,交互性强,功能模块化清晰,实验组件丰富且易于扩充、软件重用性强等特点,为信息安全专业的学生提供了通过互联网学习密码学课程的实验平台,并给从事仿真系统开发的研究者提供了很好的参考模型。
(上接第6352页)
参考文献:
[1][2][3][4]
王润洁,田景全,倪政国.基于粒子系统的实时雨雪模拟[J].系统仿真学报,2003,15(4):495-496.
罗维佳,都金康,谢顺平.基于粒子系统的三维场地降雨实时模拟[J].中国图像图形学报,2004,9(4):495-500.
徐利明,姜昱明.基于粒子系统与OpenGL的实时雨雪模拟[J].计算机仿真,2005,22(7):242-245.
LawS,OhBM,ZaleskyJ.Thesynthesisofsnowcoveredterrains[EB/OL].http://www.graphics.lcs.mit.edu/boh/Projects/snowGen-FinalWrite.html,1996.[5]
SummerRW,O’brienJF,HodginsJK.Animatingsand,mudandsnow[C].Vancouver,BritishColumbia:ProceedingsofGraphicsInterface,1998:125-132.[6]
NishitaT,IwasakiH,DobashiY,eta1.Amodelingandrenderingmethodforsnowbyusingmeatballs[J].ComputerGraphicsFo-rum,1997,16(3):357-364.[7]
FearingP.Computermodelingoffallensnow[C].NewYork,USA:Proceedingsofthe27thAnnualConferenceonComputer
GraphicsandInteractiveTechniques,2000:37-46.[8][9]
HaglundH,AndersonM,HastA.Snowaccumulationinreal-time[C].Norrköping,Sweden:ProceedingsofSIGRAD,2002:11-15.PerOhlsson,StenfanSipel.Real-timerenderingofaccumulatedsnow[C].Gävle,Sweden:SIGRAD,2004:25-31.
[10]KoheTokoi.Ashadowbuffertechniqueforsimulatingsnow-coveredshapes[C].Sydney,Australia:InternationalConferenceonComputerGraphics,ImagingandVisualization,2006:310-316.[11]WangChangbo,WangZhangye,XiaTian,etal.Real-time
snowingsimulation[J].VisualComputer:InternationalJournalofComputerGraphics,2006,22(5):315-323.
[12]陈彦云,孙汉秋,郭白宁,等.自然雪景的构造和绘制[J].计算机
学报,2002,25(9):916-921.
[13]彭群生.计算机真实感图形的算法基础[M].北京:科学出版社,
2003.
[14]尹勇,金以丞,任鸿翔,等.自然现象的实时仿真[J].系统仿真学
报,2002,14(9):1217-1219.
[15]韩瑞波,戴树岭.可调参数的粒子系统及其在飞行仿真中的应
用[J].系统仿真学报,2006,18(8):2296-2299.
-6357-