首页 / 专利库 / 显示技术 / 虚拟现实 / 虚拟环境 / 一种2D水体模拟方法

一种2D体模拟方法

阅读:512发布:2020-05-14

专利汇可以提供一种2D体模拟方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及计算机虚拟实现技术领域,提供了一种2D 水 体 模拟方法。包括创建2D粒子,为所述2D粒子赋予属性值,所述属性值包括:形状、大小、 密度 和摩擦因子,所述2D粒子为水体的组成元素,所述方法包括:复制所述2D粒子,并以复制出的2D粒子填充 虚拟环境 中的目标容器;获取用户输入,将所述用户输入转化为2D粒子所处虚拟环境的施 力 方向;处理器根据所述施力方向、目标容器和2D粒子的属性计算每一 帧 图片中2D粒子的 位置 ;对每一帧中的2D粒子作高斯模糊处理,使得各个粒子能产生相互交融的效果。本发明 实施例 能够结合用户输入的力,基于互动形式更生动的模拟水 流体 的运动过程。,下面是一种2D体模拟方法专利的具体信息内容。

1.一种2D体模拟方法,其特征在于,创建2D粒子,为所述2D粒子赋予属性值,所述属性值包括:形状、大小、密度和摩擦因子,所述2D粒子为水体的组成元素,所述方法包括:
复制所述2D粒子,并以复制出的2D粒子填充虚拟环境中的目标容器;
获取用户输入,将所述用户输入转化为2D粒子所处虚拟环境的施方向;
处理器根据所述施力方向、目标容器和2D粒子的属性计算每一图片中2D粒子的位置
对每一帧中的2D粒子作高斯模糊处理,使得各个粒子能产生相互交融的效果;
所述处理器根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置的过程包括计算各2D粒子所受的合力,具体包括:
根据2D粒子的形状、大小和密度计算所述2D粒子所模拟的水的表面张力
处理器根据所述2D粒子的形状、大小、密度、默认重力加速度和摩擦因子计算摩擦力
处理器根据所述施力方向、表面张力和摩擦力计算2D粒子所受的合力。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断像素的α值大小,当α值大于阈值时,进行统一的着色处理。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取虚拟环境时间参数,处理器根据所述虚拟环境时间参数确定2D粒子的加速因子或者减速因子。
4.根据权利要求1所述的方法,其特征在于,对于和目标容器接触的2D粒子,在计算所述合力时,还需要参考所述目标容器的容器壁所产生的力。
5.根据权利要求1所述的方法,其特征在于,将2D粒子分为表面类粒子和内部类粒子,具体包括:
对于表面类粒子按照所述计算合力的方式完成,对于内部类粒子则按照填充原则变化;
其中,所述填充原则具体为:
在因为表面类粒子因为合力作为发生位置变化时,其空缺的地方由内部类粒子按照合力方向填补。
6.根据权利要求1所述的方法,其特征在于,当处理器计算2D粒子A其所受的施力大小、默认重力大小和摩擦力大小之和大于其所受的表面张力,则该2D粒子A的显示效果将是脱离2D粒子群。
7.根据权利要求6所述的方法,其特征在于,所述脱离2D粒子群的2D粒子A将只受默认重力加速度影响,并能配合目标容易的运动重新落到所述2D粒子群中。
8.一种2D水体模拟系统,其特征在于,用户创建2D粒子,为所述2D粒子赋予属性值,所述属性值包括:形状、大小、密度和摩擦因子,所述2D粒子为水体的组成元素,所述系统还包括:
感应器,用于获取用户输入,将所述用户输入传递给处理器;
处理器,用于复制所述2D粒子,并以复制出的2D粒子填充虚拟环境中的目标容器;将接收自感应器的用户输入转化为2D粒子所处虚拟环境的施力方向;根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置;对每一帧中的2D粒子作高斯模糊处理,使得各个粒子能产生相互交融的效果;
显示器,用于显示处理器传递过来的,完成效果处理后的2D粒子;
所述处理器根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置的过程包括计算各2D粒子所受的合力,具体包括:
根据2D粒子的形状、大小和密度计算所述2D粒子所模拟的水的表面张力;
处理器根据所述2D粒子的形状、大小、密度、默认重力加速度和摩擦因子计算摩擦力;
处理器根据所述施力方向、表面张力和摩擦力计算2D粒子所受的合力。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括计时器,具体的:
所述处理器获取虚拟环境时间参数,处理器根据所述虚拟环境时间参数确定2D粒子的加速因子或者减速因子;
所述处理器根据所述加速因子或者减速因子,结合计时器确定各2D粒子的移动速度。

说明书全文

一种2D体模拟方法

【技术领域】

[0001] 本发明涉及计算机虚拟实现技术领域,特别是涉及一种2D水体模拟方法。【背景技术】
[0002] 2D游戏中当需要表现流动的水体时,一般都使用动画来表现,帧动画需要预先由美工绘制,然后将图片一张张保存下来,最后在游戏中像播放影片一样逐帧播放出来。这种方式有如下缺点:
[0003] 1.表现单一,只能循环地展现同一个动画效果
[0004] 2.无法通过交互改变水体的形态【发明内容】
[0005] 本发明要解决的技术问题是如何提供一种表现力更强,并能和用户产生互动的水体模拟方法。
[0006] 本发明采用如下技术方案:创建2D粒子,为所述2D粒子赋予属性值,所述属性值包括:形状、大小、密度和摩擦因子,所述2D粒子为水体的组成元素,所述方法包括:复制所述2D粒子,并以复制出的2D粒子填充虚拟环境中的目标容器;获取用户输入,将所述用户输入转化为2D粒子所处虚拟环境的施力方向;处理器根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置;对每一帧中的2D粒子作高斯模糊处理,使得各个粒子能产生相互交融的效果。
[0007] 优选的,所述方法还包括:判断像素的α值大小,当α值大于阈值时,进行统一的着色处理。
[0008] 优选的,所述方法还包括:获取虚拟环境时间参数,处理器根据所述虚拟环境时间参数确定2D粒子的加速或因子者减速因子。
[0009] 优选的,所述处理器根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置的过程包括计算各2D粒子所受的合力,具体包括:根据2D粒子的形状、大小和密度计算所述2D粒子所模拟的水的表面张力;处理器根据所述2D粒子的形状、大小、密度、默认重力加速度和摩擦因子计算摩擦力;处理器根据所述施力方向、表面张力和摩擦力计算2D粒子所受的合力。
[0010] 优选的,对于和目标容器接触的2D粒子,在计算所述合力时,还需要参考所述目标容器的容器壁所产生的力。
[0011] 优选的,将2D粒子分为表面类粒子和内部类粒子,具体包括:对于表面类粒子按照所述计算合力的方式完成,对于内部类粒子则按照填充原则变化。
[0012] 优选的,所述填充原则具体为:在因为表面类粒子因为合力作为发生位置变化时,其空缺的地方由内部类粒子按照合力方向填补。
[0013] 优选的,当处理器计算2D粒子A其所受的施力大小、默认重力大小和摩擦力大小之和大于其所受的表面张力,则该2D粒子A的显示效果将是脱离2D粒子群。
[0014] 优选的,所述脱离2D粒子群的2D粒子A将只受默认重力加速度影响,并能配合目标容易的运动重新落到所述2D粒子群中。
[0015] 优选的,所述方法可以是基于Box2D编程实现。
[0016] 另一方面,本发明实施例还提供了一种2D水体模拟系统,其中,用户创建2D粒子,为所述2D粒子赋予属性值,所述属性值包括:形状、大小、密度和摩擦因子,所述2D粒子为水体的组成元素,所述系统还包括:
[0017] 感应器,用于获取用户输入,将所述用户输入传递给处理器;处理器,用于复制所述2D粒子,并以复制出的2D粒子填充虚拟环境中的目标容器;将接收自感应器的用户输入转化为2D粒子所处虚拟环境的施力方向;根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置;对每一帧中的2D粒子作高斯模糊处理,使得各个粒子能产生相互交融的效果;显示器,用于显示处理器传递过来的,完成效果处理后的2D粒子。
[0018] 优选的,所述系统还包括计时器,具体的:所述处理器获取虚拟环境时间参数,处理器根据所述虚拟环境时间参数确定2D粒子的加速因子或者减速因子;
[0019] 所述处理器根据所述加速因子或者减速因子,结合计时器确定各2D粒子的移动速度。
[0020] 与现有技术相比,本发明的有益效果在于:本发明实施例将2D环境下水体的构成划分成具有特定属性的2D粒子,并基于2D粒子自身的物理特性模拟水体的流动,提高了水体的表现力。并且,能够结合用户的输入,基于互动形式更生动的模拟水流体的运动过程。【附图说明】
[0021] 图1是本发明实施例提供的一种2D水体模拟方法的流程示意图;
[0022] 图2是本发明实施例提供的一种2D水体模拟方法中求合力的流程图
[0023] 图3是本发明实施例提供的一种2D水体模拟方法的流程示意图;
[0024] 图4是本发明实施例提供的一种2D水体模拟效果图;
[0025] 图5是本发明实施例提供的一种2D水体模拟效果图;
[0026] 图6是本发明实施例提供的一种2D水体模拟系统结构示意图。【具体实施方式】
[0027] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0028] 此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0029] 实施例1:
[0030] 本发明实施例1提供了一种2D水体模拟方法,包括:创建2D粒子,为所述2D粒子赋予属性值,所述属性值包括:形状、大小、密度和摩擦因子,所述2D粒子为水体的组成元素,具体的:
[0031] 在步骤201中,复制所述2D粒子,并以复制出的2D粒子填充虚拟环境中的目标容器。
[0032] 在步骤202中,获取用户输入,将所述用户输入转化为2D粒子所处虚拟环境的施力方向。
[0033] 所述用户输入可以是用户通过键盘操作或者触摸屏触发的信号,也可以是用户通过陀螺仪实现的,还可以是基于体感游戏手柄实现等等。
[0034] 在步骤203中,处理器根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置。
[0035] 其中,目标容器并不局限于通常理解上的杯子,例如虚拟环境中的河道、水库等等也可以属于本发明所述的目标容器的范畴。
[0036] 在步骤204中,对每一帧中的2D粒子作高斯模糊处理,使得各个粒子能产生相互交融的效果。
[0037] 所述相互交融的效果,是让用户看起来更像是水体,而并非一个一个的2D粒子。
[0038] 本发明实施例将2D环境下水体的构成划分成具有特定属性的2D粒子,并基于2D粒子自身的物理特性模拟水体的流动,提高了水体的表现力。并且,能够结合用户输入的力,基于互动形式更生动的模拟水流体的运动过程。本实施例可以应用于游戏领域,也可以应用于广告领域,还可以应用于虚拟环境领域等等。
[0039] 在本实施例中,通过步骤204已经将2D粒子做了高斯模糊处理,然而为了能够让用户看到水体的效果,就需要进一步完成着色工作。因此,本实施例所提出的方法,优选的还包括:
[0040] 判断像素的α值大小,当α值大于阈值时,进行统一的着色处理。
[0041] 本发明实施例中给出了如何来实现2D粒子的划分,以及如何根据其属性计算出其模拟位置,但是,实际呈现效果中还涉及水体的流动速度,因此,所述方法还包括:
[0042] 获取虚拟环境时间参数,处理器根据所述虚拟环境时间参数确定2D粒子的加速因子或者减速因子。具体的,所述时间参数值可以直接是对应的加速因子或者减速因子,也可以是根据一分钟对应显示的虚拟时间值,而由处理器自身来转化为加速因子或者减速因子。
[0043] 结合本实施例,其步骤203中实现的内容包括计算各2D粒子所受的合力,在优选的实现方案中,具体包括如下步骤:
[0044] 在步骤301中,根据2D粒子的形状、大小和密度计算所述2D粒子所模拟的水的表面张力。
[0045] 在步骤302中,处理器根据所述2D粒子的形状、大小、密度、默认重力加速度和摩擦因子计算摩擦力。
[0046] 在步骤303中,处理器根据所述施力方向、表面张力和摩擦力计算2D粒子所受的合力。
[0047] 所述合力配合上2D粒子的质量,就能实现依据不同的用户输入(例如:用户使劲甩目标容器或者轻轻摇晃目标容器)产生不同移动速度的效果。
[0048] 在步骤301-303中,给出了如何计算特定2D粒子所受合力的方法,然而,在具体的实现过程中,部分2D粒子所受合力还会受到目标容器的容器壁的影响,因此,上述步骤303在上述情况下对于和目标容器接触的2D粒子,在计算所述合力时,还需要参考所述目标容器的容器壁所产生的力。
[0049] 结合本实施例,存在一种优选的方案,即将2D粒子分为表面类粒子和内部类粒子,具体包括:
[0050] 对于表面类粒子按照所述计算合力的方式完成,对于内部类粒子则按照填充原则变化。这样可有效的提高水体模拟时候的计算量。
[0051] 上述填充原则具体为:在因为表面类粒子因为合力作为发生位置变化时,其空缺的地方由内部类粒子按照合力方向填补。
[0052] 为了更好的模拟出水体在目标容器中的流动状态,尤其是在用户输入的施力大小较大时,此时,在现实中就可能产生飞溅的效果。因此,本实施例的扩展方案中还给出了上述飞溅效果的具体实现方法,具体的:
[0053] 当处理器计算2D粒子A其所受的施力大小、默认重力大小和摩擦力大小之和大于其所受的表面张力,则该2D粒子A的显示效果将是脱离2D粒子群。
[0054] 进一步的,所述脱离2D粒子群的2D粒子A将只受默认重力加速度影响,并能配合目标容易的运动重新落到所述2D粒子群中。
[0055] 在具体实践应用本发明方法时,可以借用已有的软件来实现,所述方法可以是基于Box2D编程实现。接下来将通过具体的实施例阐述如何基于Box2D实现。
[0056] 实施例2:
[0057] 本实施例提供了一种基于Box2D物理引擎模拟2D物理世界中水体的方法。如图3所示,具体包括:
[0058] 在步骤401中,首先启动Box2D软件,并创建Box2D物理世界,将定义好的2D物体的形状、大小、摩擦因子、密度等,导入到引擎中。
[0059] 在Box2D物理世界中,创建大量的2D粒子(小球),我们定义一个水粒子的属性为一个有具体摩擦因子、密度、半径参数的2D圆形物体,然后通过Box2D物理引擎提供的函数接口,重复创建大量同样属性的粒子。通过大量的实体粒子达到模拟流体运动方式的目的。通过改变水粒子(2D圆形物体)的大小与摩擦力,还可以模拟各类粘稠液体的运动方式。
[0060] 进入步骤402的渲染阶段,所述渲染阶段涵盖模拟的水体的生成,接收用户输入后水体的响应,直至该模拟阶段完成之前都属于渲染阶段。
[0061] 在步骤403中,获取用户输入。和水体进行交互的方式有很多种,比如我们可以实时获取用户所持设备的陀螺仪参数,根据此参数,我们可以通过Box2D引擎接口,实时改变Box2D物理世界的重力方向,重力方向的改变会影响流体的运动方式,从而达到与之交互的目的。
[0062] 在步骤404中,获取Box2D世界中每一个粒子的位置与大小,在渲染过程的每一帧中(一秒60帧),驱动物理世界随时间演进,并绘制在屏幕上。Box2D物理引擎提供了一个函数接口,只需传入一个时间参数,便可以得到物理世界在这个时间段的演化结果。
[0063] 在渲染过程的每一帧中,我们都会传入一个时间参数,从而得到物理世界连续随时间演化的结果。
[0064] 在步骤405中,对全屏进行高斯模糊化,使得各个粒子能产生相互“交融”的效果。
[0065] 如图5为图4中2D粒子完成高斯模糊化处理后的效果图。
[0066] 在步骤406中,对全屏的像素进行处理,判断像素的α值大小,当α值小于一个阈值时,则认为此像素太过透明,去除掉太过透明的像素,通过判断像素的α值,若这个值小于某一个阈值,则认为此像素太过透明。其余非透明像素进行统一的着色处理。
[0067] 在步骤407中,判断渲染是否结束,即软件是否暂停或者软件是否退出。若否,则回到步骤403继续进行渲染过程。
[0068] 需要强调的是,在步骤403中,尤其是在循环执行渲染过程时,用户的输入不一定是必要的,倘若是处于水体自动流动过程中,则无需在判断步骤406回到步骤403时,要求用户的进一步输入。
[0069] 实施例3:
[0070] 本发明实施例还提供了一种2D水体模拟系统,其中,用户创建2D粒子,为所述2D粒子赋予属性值,所述属性值包括:形状、大小、密度和摩擦因子,所述2D粒子为水体的组成元素,如图6所示,所述系统还包括:
[0071] 感应器1,用于获取用户输入,将所述用户输入传递给处理器。
[0072] 其中,所述感应器1可以是感应手柄、也可以是带陀螺仪功能的手机,还可以是穿戴式的感应设备等等。
[0073] 处理器2,用于复制所述2D粒子,并以复制出的2D粒子填充虚拟环境中的目标容器;将接收自感应器的用户输入转化为2D粒子所处虚拟环境的施力方向;根据所述施力方向、目标容器和2D粒子的属性计算每一帧图片中2D粒子的位置;对每一帧中的2D粒子作高斯模糊处理,使得各个粒子能产生相互交融的效果;
[0074] 所述处理器可以是个人计算机、平板或者智能手机等等。
[0075] 显示器3,用于显示处理器传递过来的,完成效果处理后的2D粒子。
[0076] 所述显示器可以是LCD显示器、投影仪等。
[0077] 结合本实施例,为了实现2D粒子移动速度的快慢设定,所述系统优选的还包括计时器4,具体的:
[0078] 所述处理器2获取虚拟环境时间参数,处理器2根据所述虚拟环境时间参数确定2D粒子的加速因子或者减速因子;
[0079] 所述处理器2根据所述加速因子或者减速因子,结合计时器3确定各2D粒子的移动速度。
[0080] 具体的,所述加速因子和减速因子可以是一个倍数参数值,而计时器其计时方式可以和现实分/秒计时相同速度的方式。
[0081] 本发明实施例是对应实施例一的系统实施例,给予如何在具体设备上实现本发明的实施方案。所述系统中的处理器还可以用于实现实施例一中除步骤201-204以外的扩展内容,在此不一一赘述。
[0082] 本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
[0083] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈