基于粒子系统的全局天气模拟方法

文档序号:6509607阅读:193来源:国知局
基于粒子系统的全局天气模拟方法
【专利摘要】本发明提供一种基于粒子系统的全局天气模拟方法,步骤1、建立一主区域,步骤2、确定粒子运动的当前区域,所述当前区域为粒子产生区域,新粒子随机从当前区域的上端面的任意一点出现,然后开始运动;步骤3、当所述虚拟摄像机再次移动或者旋转时,再次确定粒子运动的当前区域。本发明设置一包裹摄像机的主区域,然后根据主区域及虚拟摄像机移动或旋转的方向向量,确定粒子运动的当前区域,仅在当前区域内模拟全局天气,由于视锥体包含在所述当前区域内,给用户带来了丰富多变的真实天气效果,同时,减少CPU运算开销,提高天气模拟过程中程序的运行及系统运行的效率,降低特效设计和制作成本。
【专利说明】基于粒子系统的全局天气模拟方法
【【技术领域】】
[0001]本发明涉及一种基于粒子系统的全局天气模拟方法。
【【背景技术】】
[0002]在3D游戏中,传统天气效果模拟方案多采用全屏光效,就是通过美术制作工具(如3dmax或者maya)制作出模拟天气的粒子特效,然后将其预渲染成平面动画,在游戏内使用反复播放,以达到在游戏场景内营造天气效果的目的。这种技术就好像在镜头前放一块透明玻璃,而透明玻璃上不断重复几张变化的图片。玩家只能看到一种预渲染好的美术效果,没有其他的变化,如果希望保持长时间的变化,就需要预渲染大量的单帧画面,而支持这些画面的每张纹理需要覆盖整个屏幕,因此对内存的消耗非常大。
[0003]另有一种改进方案,不使用预渲染的动画,而是直接在游戏场景中使用实时的粒子系统,解决了预渲染动画缺少变化的问题,但是单纯使用粒子系统模拟真实天气,比如暴风雪、雨水、风沙等,要求在场景内存在成千上万的粒子,而每个粒子在其生存期内的运动情况都需要消耗CPU运算,数量过多不可避免带来额外开销,影响系统运行速度。

【发明内容】

[0004]本发明要解决的技术问题,在于提供一种基于粒子系统的全局天气模拟方法,以小范围的粒子运动模拟达成整个场景同时有效的效果,减少整个3D场景中大量粒子运算带来的系统开销,提高系统运行速度。
[0005]本发明是 这样实现的:
[0006]基于粒子系统的全局天气模拟方法,所述方法应用于3D场景中,在3D场景中,通过一虚拟摄像机模拟人的眼睛,其可见区域是一个封闭的四面椎体空间,称之为视锥体,所述方法包括如下步骤:
[0007]步骤1、建立一主区域:
[0008]所述主区域是以虚拟摄像机所在位置为中心点O的一正方体空间,所述主区域的边长为R,R=2(D+X),所述D为中心点O到四面椎体上平面的距离,所述X为自定义的变量,O < X < L,所述L为四面椎体上平面和下平面之间的垂直距离;
[0009]步骤2、确定粒子运动的当前区域:
[0010]所述当前区域为粒子产生区域,新粒子随机从当前区域的上端面的任意一点出现,然后开始运动;
[0011]确定当前区域的步骤如下:
[0012]与所述主区域边角相邻且与所述主区域大小相同的正方体共26个,
[0013]当所述虚拟摄像机静止时,所述主区域即为当前区域,由主区域的上端面产生新粒子;
[0014]当所述虚拟摄像机移动或旋转时,通过公式v/mod(v)*R+C得到E点坐标,所述E点为虚拟摄像机视锥体内的探测点,所述V是虚拟摄像机当前移动或旋转的方向向量V,所述C为虚拟摄像机的当前坐标;根据所述E点的坐标,确定E点位于哪一正方体内,
[0015]若E点还处于主区域的正方体内,则,所述主区域仍为当前区域,由主区域的上端面产生新粒子;
[0016]若E点位于与主区域相邻的26个正方体中的其中一个正方体内,则将该正方体确定为当前区域,所述主区域不再产生新粒子;
[0017]步骤3、当所述虚拟摄像机再次移动或者旋转时,再次确定粒子运动的当前区域,具体如下:
[0018]通过所述公式v/mod(v)*R+C得到E点坐标,根据所述E点的坐标,确定E点位于当前区域的正方体内还是与当前区域边角相邻且大小相等的26个正方体中的其中一个正方体内,将E点所在的正方体确定为确定粒子运动的当前区域;
[0019]当所述虚拟摄像机再次移动或者旋转时,重复执行步骤3。
[0020]本发明具有如下优点:
[0021]本发明设置一包裹摄像机的主区域,然后根据主区域及虚拟摄像机移动或旋转的方向向量,确定粒子运动的当前区域,仅在当前区域内模拟全局天气,由于视锥体包含在所述当前区域内,给用户带来了丰富多变的真实天气效果,同时,减少CPU运算开销,提高天气模拟过程中程序的运行及系统运行的效率,降低特效设计和制作成本。
【【专利附图】

【附图说明】】
[0022]下面参照附图结合实施例对本发明作进一步的说明。
[0023]图1为本发明视锥体的示意图。
[0024]图2为本发明虚拟摄像机向前移动的平面示意图。
[0025]图3为本发明虚拟摄像机向前移动后当前区域和主区域的立体示意图。
【【具体实施方式】】
[0026]请参阅图1至图3,对本发明实施例进行详细说明。
[0027]基于粒子系统的全局天气模拟方法,所述方法应用于3D场景中,在3D场景中,通过一虚拟摄像机模拟人的眼睛,其可见区域是一个封闭的四面椎体空间,称之为视锥体A(请参阅图1),所述方法包括如下步骤:
[0028]步骤1、请参阅图2,建立一主区域:
[0029]所述主区域B是以虚拟摄像机所在位置为中心点O的一正方体空间,所述主区域的边长为R,R=2 (D+X),所述D为中心点O到四面椎体上平面的距离,所述X为自定义的变量,O < X < L,所述L为四面椎体A上平面A1和下平面A2之间的垂直距离;X值越大,视野范围内的粒子数量就会越多,可获得比较好的纵深感;
[0030]步骤2、确定粒子运动的当前区域W;
[0031]所述当前区域W粒子产生区域,新粒子随机从当前区W的上端面W1任意一点出现,然后开始运动;所述粒子的运动是通过粒子系统进行模拟,粒子系统是一种计算机图形技术,它使用了大量的非常小的图片或其它图形对象来模拟某些种类的“模糊”现象,这类现象是非常难以通过传统的渲染技术重现的——通常是高度混沌系统以及化学反应引起的自然现象或过程;[0032]确定当前区域W步骤如下:
[0033]与所述主区域B边角相邻且与所述主区域大小相同的正方体共26个,与所述主区域B的六个面相邻且大小相同的正方体有6个,与所述主区域的十二条边相邻且大小相同的正方体有12个,与所述主区域的8个顶点相邻且大小相同的正方体有8个,所以一共有26个;
[0034]当所述虚拟摄像机静止时,所述主区域B为当前区域W,主区域B上端面B1新粒子;
[0035]当所述虚拟摄像机移动或旋转时,通过公式v/mod(v)*R+C得到E点坐标,所述E点为虚拟摄像机视锥体内的探测点,所述V是虚拟摄像机当前移动或旋转的方向向量V,所述C为虚拟摄像机的当前坐标,所述mod(v) Smod(v)为对所述方向向量v求模,根据所述E点的坐标,确定E点位于哪一正方体内,
[0036]若E点还处于主区域的正方体内,则,所述主区域B仍为当前区域,由主区域B的上端面B1产生新粒子;
[0037]若E点位于与主区域B相邻的26个正方体中的其中一个正方体内,则将该正方体确定为当前区域W,所述主区域B不再产生新粒子;
[0038]图2和图3展示了虚拟摄像机向前移动,且E点移入位于主区域B正前方的正方体内,将其确定为当前区域W ;
[0039]由于视锥体是一个细长的锥体,上平面A1和下平面A2之间距离非常大,若当前区域包裹整个视锥体,则粒子数量依然巨大,但实际上,粒子在经过多层堆叠之后,人眼已经很难分辨它们之间的层次关系,因此只需包裹部分视锥体,且由于当前区域为新粒子产生区域,用户看到新的粒子进入视野,达到真实的天气模拟效果;
[0040]步骤3、当所述虚拟摄像机再次移动或者旋转时,再次确定粒子运动的当前区域,具体如下:
[0041]通过所述公式v/mod(v)*R+C得到E点坐标,根据所述E点的坐标,确定E点位于当前区域W的正方体内还是与当前区域边角相邻且大小相等的26个正方体中的其中一个正方体内,将E点所在的正方体确定为确定粒子运动的当前区域;
[0042]当所述虚拟摄像机再次移动或者旋转时,重复执行步骤3。
[0043]本发明设置一包裹摄像机的主区域,然后根据主区域及虚拟摄像机移动或旋转的方向向量,确定粒子运动的当前区域,仅在当前区域内模拟全局天气,由于视锥体包含在所述当前区域内,给用户带来了丰富多变的真实天气效果,同时,减少CPU运算开销,提高天气模拟过程中程序的运行及系统运行的效率,降低特效设计和制作成本。
[0044]虽然以上描述了本发明的【具体实施方式】,但是熟悉本【技术领域】的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
【权利要求】
1.基于粒子系统的全局天气模拟方法,所述方法应用于3D场景中,在3D场景中,通过一虚拟摄像机模拟人的眼睛,其可见区域是一个封闭的四面椎体空间,称之为视锥体,其特征在于,所述方法包括如下步骤: 步骤1、建立一主区域: 所述主区域是以虚拟摄像机所在位置为中心点O的一正方体空间,所述主区域的边长为R,R=2 (D+X),所述D为中心点O到四面椎体上平面的距离,所述X为自定义的变量,O < X < L,所述L为四面椎体上平面和下平面之间的垂直距离; 步骤2、确定粒子运动的当前区域: 所述当前区域为粒子产生区域,新粒子随机从当前区域的上端面的任意一点出现,然后开始运动; 确定当前区域的步骤如下: 与所述主区域边角相邻且与所述主区域大小相同的正方体共26个, 当所述虚拟摄像机静止时,所述主区域即为当前区域,由主区域的上端面产生新粒子; 当所述虚拟摄像机移动或旋转时,通过公式v/mod(v)*R+C得到E点坐标,所述E点为虚拟摄像机视锥体内的探测点,所述V是虚拟摄像机当前移动或旋转的方向向量V,所述C为虚拟摄像机的当前坐标;根据所述E点的坐标,确定E点位于哪一正方体内, 若E点还处于主区域的正方体内,则,所述主区域仍为当前区域,由主区域的上端面产生新粒子; 若E点位于与主区域相邻的26个正方体中的其中一个正方体内,则将该正方体确定为当前区域,所述主区域不再产生新粒子; 步骤3、当所述虚拟摄像机再次移动或者旋转时,再次确定粒子运动的当前区域,具体如下: 通过所述公式v/mod(V) *R+C得到E点坐标,根据所述E点的坐标,确定E点位于当前区域的正方体内还是与当前区域边角相邻且大小相等的26个正方体中的其中一个正方体内,将E点所在的正方体确定为确定粒子运动的当前区域; 当所述虚拟摄像机再次移动或者旋转时,重复执行步骤3。
【文档编号】G06T15/00GK103473802SQ201310388235
【公开日】2013年12月25日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】李臻, 刘德建, 陈宏展, 金磊 申请人:福建天晴数码有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1