CN118015150A - 基于注视点的自适应流体仿真方法、系统、介质及设备 - Google Patents
基于注视点的自适应流体仿真方法、系统、介质及设备 Download PDFInfo
- Publication number
- CN118015150A CN118015150A CN202410203610.5A CN202410203610A CN118015150A CN 118015150 A CN118015150 A CN 118015150A CN 202410203610 A CN202410203610 A CN 202410203610A CN 118015150 A CN118015150 A CN 118015150A
- Authority
- CN
- China
- Prior art keywords
- fluid
- particle
- particles
- region
- fluid particles
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000012530 fluid Substances 0.000 title claims abstract description 311
- 238000004088 simulation Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000002245 particle Substances 0.000 claims abstract description 342
- 238000012952 Resampling Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000001514 detection method Methods 0.000 claims abstract description 8
- 230000002093 peripheral effect Effects 0.000 claims description 43
- 230000003044 adaptive effect Effects 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 7
- 239000007788 liquid Substances 0.000 claims description 7
- 238000009877 rendering Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 abstract description 7
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 241000282414 Homo sapiens Species 0.000 description 3
- 239000011435 rock Substances 0.000 description 3
- 230000004304 visual acuity Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013016 damping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000016776 visual perception Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于注视点的自适应流体仿真方法、系统、介质及设备。构建虚拟的地形场景和置于场景内的流体粒子,进行复杂地形场景的碰撞检测与处理;获取用户的注视信息,并根据所述注视信息将流体区域划分为三个重叠的矩形区域并进行重采样,得到高分辨率流体粒子;对多尺度流体粒子的不可压缩性约束进行求解,预测场景中不同尺度流体粒子的位置,并根据流体粒子之间的作用力更新各尺度流体粒子速度与位置。本发明通过动态调整流体粒子的尺度,实现了在用户视野内中央凹区域的高保真度,为用户提供了与全高分辨率相媲美的视觉体验,并同时提高了仿真效率。
Description
技术领域
本发明涉及视觉动画处理技术领域,具体地,涉及一种基于注视点的自适应流体仿真方法、系统、介质及设备。尤其涉及虚拟现实下动画模拟的优化领域。
背景技术
流体仿真对于教育、娱乐、体育训练等各种虚拟现实(Virtual Real ity,VR)应用至关重要。传统的VR中通常使用非物理的方法模拟流体,该类方法往往难以模拟表面的流体细节并且无法为用户带来身临其境的体验,基于物理的流体动画则能提供更逼真的流体细节。另外,保证VR流体动画的实时性对于提高用户体验至关重要。因此,如何在VR中实现基于物理的大规模实时流体仿真成为了一个亟待解决的研究问题。
在计算机图形学中,学者们研究基于几何的自适应技术以提高流体动画的效率。这些方法根据预定义的精细化标准动态分配计算资源,使得不同的复杂流体现象达到令人满意的仿真分辨率。然而,现有的自适应方法主要侧重于复杂的流体运动细节,却忽略了人类的视觉感知特性。
具体地,人的视觉在不同区域会拥有不同的视觉敏锐度,眼窝区域的视觉敏锐度较高,而周边区域的视觉敏锐度则显著降低。在渲染领域,研究人员利用这一特性降低了远离用户注视区域的图像分辨率,在保持整体图像质量感知水平的同时,通过省略周边视野中不易察觉的图像细节大大降低了计算负荷。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于注视点的自适应流体仿真方法、系统、介质及设备。
根据本发明提供的一种基于注视点的自适应流体仿真方法,包括:
步骤S1:构建虚拟的地形场景和置于场景内的流体粒子,进行复杂地形场景的碰撞检测与处理;
步骤S2:获取用户的注视信息,并根据所述注视信息将流体区域划分为三个重叠的矩形区域并进行重采样,得到高分辨率流体粒子;
步骤S3:对多尺度流体粒子的不可压缩性约束进行求解,预测场景中不同尺度流体粒子的位置,并根据流体粒子之间的作用力更新各尺度流体粒子速度与位置。
优选地,所述步骤S1包括:
步骤S1.1:建立二维的地形高度图;
步骤S1.2:获取每个粒子当前的坐标高度值,根据双线性插值方法计算每个粒子坐标位置的地形场景高度估计值,比较当前粒子的高度值是否小于场景所在点的高度估计值,若是,则判定发生碰撞,执行步骤S1.3;否则,则说明未发生碰撞,重复执行步骤S1.2,直到检测完所有粒子的碰撞情况;
步骤S1.3:计算地形场景碰撞发生点的法线向量,计算公式如下:
其中,ni表示粒子i在碰撞发生点的法向量,Hi表示粒子i所在位置的地形场景高度,x和y分别表示场景中的水平与垂直方向;
步骤S1.4:对发生碰撞的流体粒子进行平移,计算公式如下:
pi=pi+β·dsurface→i·ni
dsurface→i=||(pi-p0)·ni||
其中,pi表示粒子i的位置,β表示常数值,dsurface→i表示粒子i距离场景的无向距离,p0表示切平面上的任意一点;
重复执行步骤S1.2至步骤S1.4直至所有流体粒子不再穿透地形场景。
优选地,步骤S2包括:
步骤S2.1:利用虚拟现实头戴式设备提供的眼动跟踪技术获取用户的注视方向,从用户视角向所述视角的注视方向投射射线,计算注视射线与整个场景的交点位置;
步骤S2.2:根据所述交点位置确定注视点位置,若交点位于流体区域内,选择距离所述交点最近的粒子位置作为注视点;若交点位于流体区域外,则选择所述交点作为注视点;
步骤S2.3:根据所述注视点位置将流体区域划分为中央凹区域、边界区域和外围区域三个重叠的矩形区域;
步骤S2.4:根据初始尺度流体粒子所在位置划分所述流体粒子归属区域;
步骤S2.5:记录高分辨率流体粒子的父亲流体粒子;
步骤S2.6:对中央凹区域以及边界区域内的流体粒子进行重采样,使所述流体粒子分裂为更高分辨率的流体粒子。
优选地,步骤S2.6包括如下子步骤:
步骤S2.6.1:记录每个流体粒子所处区域;
步骤S2.6.2:记录每个高分辨率流体粒子的父亲流体粒子,删除进入外围区域的高分辨率流体粒子;
步骤S2.6.3:基于进入中央凹区域或边界区域的初始分辨率流体粒子的位置与速度分裂生成多个的高分辨率流体粒子;
步骤S2.6.4:对新生成的高分辨流体粒子的位置进行松弛操作。
优选地,步骤S2.5中所述父亲流体粒子是指距离所述高分辨率流体粒子最近的初始尺度流体粒子;
所述父亲流体粒子继承所述高分辨率流体粒子的归属区域状态。
优选地,所述中央凹区域以用户的注视点为中心,中央凹区域F的对角线长度计算公式如下:
其中,θ表示中央凹区域的视场角,dview表示用户的观测距离,即用户与注视点之间的欧氏距离;
所述边界区域同心环绕中央凹区域并向外延伸;所述边界区域的宽度为初始尺度流体粒子的光滑核半径大小的两倍;所述边界区域的粒子只进行对流步计算而无需求解不可压缩性约束,负责传递来自外围区域的流体运动信息,并为中央凹区域设定边界条件,此外,边界区域的粒子并不参与最终的渲染;
所述外围区域覆盖剩余的所有视野区域,采用初始尺度的流体粒子进行模拟。
优选地,所述步骤S3包括如下子步骤:
步骤S3.1:记录每个粒子的邻居粒子,具体地使用空间哈希算法记录每个粒子的邻居粒子;
步骤S3.2:根据流体粒子速度及外力情况预测液体粒子位置;
步骤S3.3:求解多尺度流体粒子的不可压缩性约束,对流体粒子位置进行修正,以保证流体密度的恒定,计算公式如下:
其中,Δxi表示位置修正量,ρ0表示初始密度,mj表示邻居粒子j的质量,λi与λj分别表示粒子i与j的拉格朗日系数,表示半径为hi的光滑核函数梯度,pi和pj分别表示粒子i与j的位置;
边界区域中粒子i的速度,计算公式如下:
其中,ρj表示粒子j的密度,vi和vj分别表示粒子i和粒子j的速度,hparent表示父粒子的支持域半径;
因此,边界区域内的粒子在下一帧中的位置通过以下方式更新:
其中,n表示当前帧;
步骤S3.4:根据外围区域与中央凹区域的粒子流速差异,对外围区域内的流体粒子施加额外的反馈力,外围区域中每个流体粒子i的受到的反馈力计算公式如下:
其中,α表示用户定义的常数。mk表示粒子k的质量,ρk表示粒子k的密度,vk表示粒子k的速度,pk表示粒子k的位置;
根据本发明提供的一种基于注视点的自适应流体仿真系统,包括:
模块M1:构建虚拟的地形场景和置于场景内的流体粒子,进行复杂地形场景的碰撞检测与处理;
模块M2:获取用户的注视信息,并根据所述注视信息将流体区域划分为三个重叠的矩形区域并进行重采样,得到高分辨率流体粒子;
模块M3:对多尺度流体粒子的不可压缩性约束进行求解,预测场景中不同尺度流体粒子的位置,并根据流体粒子之间的作用力更新各尺度流体粒子速度与位置。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的基于注视点的自适应流体仿真方法的步骤。
根据本发明提供都一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现所述的基于注视点的自适应流体仿真方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过动态调整流体粒子的尺度,实现了在用户视野内中央凹区域的高保真度,为用户提供了与全高分辨率相媲美的视觉体验,并同时提高了仿真效率。
2、本发明实现了在虚拟现实头戴设备上,通过追踪用户的注视点,基于注视点位置动态划分流体仿真区域并调整流体粒子的尺度,统一求解了多尺度流体粒子的不可压缩性约束与粒子间的交互作用。
3、本发明基于高度场的地形表示方法实现了各尺度流体粒子与复杂地形场景之间的耦合计算,以及本发明可以被集成在各类虚拟现实流体仿真应用中,用于高效地提供与全高分辨率相媲美的视觉体验,以及呈现丰富生动的实时流体动画。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的工作方法流程示意图;
图2为本发明的流体仿真方法和其他流体仿真方法在岩石场景下的模拟效果对比图;
图3为本发明与其他模拟方法在不同流体场景的模拟效果对比图;
图4为本发明中流体粒子的自适应重采样过程二维示意图;
图5为本发明的电子设备原理框图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例一
根据本发明提供的一种基于注视点的自适应流体仿真方法,如图1所示,包括:
步骤S1:构建虚拟的地形场景和置于场景内的流体粒子,实现复杂地形场景的碰撞检测与处理。所述实现复杂地形场景的碰撞检测与处理包括:基于二维高度场构建地形场景。检测每一个流体粒子是否与场景碰撞,沿法线方向对发生碰撞的流体粒子进行平移,直至所有流体粒子不再穿透地形场景。所述步骤S1包括:
步骤S1.1:建立二维的地形高度图。
步骤S1.2:获取每个粒子当前的坐标高度值,根据双线性插值方法计算每个粒子坐标位置的地形场景高度估计值,比较当前粒子的高度值是否小于场景所在点的高度估计值,若是,则判定发生碰撞,执行步骤S1.3;否则,则说明未发生碰撞,重复执行步骤S1.2,直到检测完所有粒子的碰撞情况。
步骤S1.3:计算地形场景碰撞发生点的法线向量,计算公式如下:
其中,ni表示粒子i在碰撞发生点的法向量,Hi表示粒子i所在位置的地形场景高度,x和y分别表示场景中的水平与垂直方向。
步骤S1.4:对发生碰撞的流体粒子进行平移:
pi=pi+β·dsurface→i·ni
dsurface→i=||(pi-p0)·ni||
其中,pi表示粒子i的位置,β表示常数值,dsurface→i表示粒子i距离场景的无向距离,p0表示切平面上的任意一点。
重复执行步骤S1.2至步骤S1.4直至所有流体粒子不再穿透地形场景。
步骤S2:获取用户的注视信息,并根据所述注视信息将流体区域划分为三个重叠的矩形区域并进行重采样,得到高分辨率流体粒子。所述注视信息包括注视点位置,所述三个重叠的矩形区域为中央凹区域、边界区域和外围区域。其中,用户的注视信息的获取方式包括利用具有眼动追踪功能的虚拟现实头戴式设备进行获取。
具体地,根据所述注视点位置将流体区域划分为中央凹区域、边界区域和外围区域,对中央凹区域和边界区域内的流体粒子进行重采样,将所述流体粒子分裂为更高分辨率的流体粒子。步骤S2包括:
步骤S2.1:利用虚拟现实头戴式设备提供的眼动跟踪技术获取用户的注视方向,从用户视角向所述视角的注视方向投射射线,计算注视射线与整个场景的交点位置。
步骤S2.2:根据所述交点位置确定注视点位置,若交点位于流体区域内,选择距离所述交点最近的粒子位置作为注视点;若交点位于流体区域外,则选择所述交点作为注视点。
步骤S2.3:根据所述注视点位置将流体区域划分为中央凹区域、边界区域和外围区域三个重叠的矩形区域。对所述中央凹区域、边界区域和外围区域的具体描述如下:
中央凹区域:中央凹区域以用户的注视点为中心,需要最精细的模拟细节,因此高分辨率的流体模拟在所述中央凹区域进行。中央凹区域F的对角线长度计算公式如下:
其中,θ表示中央凹区域的视场角,dview表示用户的观测距离,即用户与注视点之间的欧氏距离。
边界区域:边界区域同心环绕中央凹区域并向外延伸。边界区域的宽度对中央凹区域内模拟的稳定性至关重要,设置为初始尺度流体粒子的光滑核半径大小的两倍。为了保证效率和稳定性,边界区域的粒子只进行对流步计算而无需求解不可压缩性约束,负责传递来自外围区域的流体运动信息,并为中央凹区域设定边界条件。此外,边界区域的粒子并不参与最终的渲染;
外围区域:外围区域覆盖剩余的所有视野区域。所述外围区域采用初始尺度的流体粒子进行模拟,虽然在一定程度上会导致区域内的流体细节较少,但对用户而言仍然不易察觉,并且大大降低了仿真的计算需求。
如图2所示,右上插图提供了放大的注视区域流体细节效果图。顶行从左到右依次为非物理模拟方法、高分辨率的PBF流体模拟、基于注视点的自适应流体仿真方法和低分辨率的PBF流体模拟的流体模拟效果。底行从左到右依次为岩石场景以及与上一行对应的流体粒子渲染效果。此外,每个子图中心的白点代表注视点,右上插图提供了中央凹区域的放大流体细节效果图。
如图3所示,最左侧第一列图从上到下依次为水池场景、岩石场景与瀑布场景;第二列图至第五列图从左到右依次为高分辨率的PBF流体模拟,、基于注视点的自适应流体仿真方法和低分辨率的PBF流体模拟和非物理模拟方法的中央凹区域的放大流体细节效果图。
步骤S2.4:根据初始尺度流体粒子所在位置划分所述流体粒子归属区域。
步骤S2.5:记录高分辨率流体粒子的父亲流体粒子,具体地,将距离所述高分辨率流体粒子最近的初始尺度流体粒子作为所述高分辨率流体粒子的父亲流体粒子,并继承所述高分辨率流体粒子的归属区域状态。
步骤S2.6:对中央凹区域以及边界区域内的流体粒子进行重采样,使所述流体粒子分裂为更高分辨率的流体粒子,如图4所示,从左到右依次为分裂、松弛以及删除操作。
对分裂、松弛以及删除操作具体描述如下:
分裂:当一个初始分辨率流体粒子从外围区域进入中央凹或边界区域时,它将进行重采样。具体地,它会被分裂成八个更高分辨率的流体粒子,每个小粒子的半径为原粒子的一半,质量为原粒子的八分之一,速度相同,保证了质量与动量守恒、
松弛:在中央凹区域新生成的高分辨率流体粒子将会被执行一次位置松弛以缓解流体粒子密度骤变带来的不稳定性问题。松弛过程使用基于位置的流体方法(Positionbased Fluids,PBF)对所有中央凹区域内新生成的高分辨率流体粒子进行重新放置、
删除:当一个高分辨流体粒子的状态被标记为外围区域时,即其父粒子进入外围区域时,该粒子会立即从模拟和渲染中删除。为了防止小粒子被意外删除,并保持自适应模拟的稳定性,模拟设置每个粒子i的最大速度为γ·hi/Δt,该限制类似于库朗条件,其中常数γ设置为0.5。
所述步骤S2.6包括如下子步骤:
步骤S2.6.1:记录每个流体粒子所处区域。
步骤S2.6.2:记录每个高分辨率流体粒子的父亲流体粒子,删除进入外围区域的高分辨率流体粒子。
步骤S2.6.3:基于进入中央凹区域或边界区域的初始分辨率流体粒子的位置与速度分裂生成多个的高分辨率流体粒子。
步骤S2.6.4:对新生成的高分辨流体粒子的位置进行松弛操作。
步骤S3:对多尺度流体粒子的不可压缩性约束进行求解,预测场景中不同尺度流体粒子的位置,并根据流体粒子之间的作用力更新各尺度流体粒子速度与位置。具体地,所述根据流体粒子之间的作用力更新各尺度流体粒子速度与位置包括:边界区域的高分辨率流体粒子为中央凹区域的高分辨率流体粒子提供求解时的边界条件;中央凹区域的高分辨率流体粒子根据当前运动情况为外围区域的低分辨率流体进行提供运动反馈力。所述预测场景中不同尺度流体粒子的位置包括根据施加的外力更新流体粒子位置及流体粒子速度;记录每个流体粒子的邻居粒子;基于流体粒子位置、流体粒子速度、流体粒子的邻居粒子以及施加的外力预测液体粒子位置。所述步骤S3包括如下子步骤:
步骤S3.1:记录每个粒子的邻居粒子,具体地使用空间哈希算法记录每个粒子的邻居粒子。
步骤S3.2:根据流体粒子速度及外力情况预测液体粒子位置。
步骤S3.3:求解多尺度流体粒子的不可压缩性约束,对流体粒子位置进行修正,以保证流体密度的恒定,计算公式如下:
其中,Δxi表示位置修正量,ρ0表示初始密度,mj表示邻居粒子j的质量,λi与λj分别表示粒子i与j的拉格朗日系数,表示半径为hi的光滑核函数梯度,pi和pj分别表示粒子i与j的位置。
边界区域内流体粒子组成的边界区域为中央凹区域内的流体粒子构建了边界条件。边界区域中粒子i的速度则通过光滑粒子动力学方法(Smoothed ParticleHydrodynamics,SPH)插值确定的,计算公式如下:
其中,粒子j为其父粒子和外围区域中父粒子的所有邻居低分辨率流体粒子,高分辨率流体粒子i隶属于边界区域(记为B),ρj表示粒子j的密度,vi和vj分别表示粒子i和粒子j的速度,hparent表示父粒子的支持域半径。因此,边界区域内的粒子在下一帧中的位置通过以下方式更新:
其中,n表示当前帧。
步骤S3.4:根据外围区域与中央凹区域的粒子流速差异,对外围区域内的流体粒子施加额外的反馈力,解决了不同尺度的流体粒子因阻尼不同所导致的流体运动不一致的问题。外围区域中每个流体粒子i的受到的反馈力计算公式如下:
其中,流体粒子i隶属于边界区域(记为P),粒子k表示中央凹区域中的高分辨率流体粒子,其父粒子是流体粒子i,α为用户定义的常数。mk表示粒子k的质量,ρk表示粒子k的密度,vk表示粒子k的速度,pk表示粒子k的位置。
所以本实施例的方法是一种多尺度流体粒子运动时的视觉仿真方案。本实施例的方法利用不同尺度流体粒子间的耦合算法来校正和平滑这些不同区域界面上的流动行为差异,中央凹区域依赖边界区域提供重要的边界条件,外围区域则获得中央凹区域的反馈信息,以确保多尺度流体运动的一致性。
本发明的方法是一种高效且的流体动画仿真方法。目前已有的自适应流体仿真方法主要关注于流体域中复杂的流体运动细节,忽略了人类的视觉感知特性,难以让用户得到较强的沉浸感与真实感。而本实施例的方法通过一种基于注视点的自适应流体仿真方案,能够较为轻松地实现在虚拟现实中的高效的流体动画仿真。
本发明旨在提供一种基于注视点的自适应流体仿真方法,能够较为轻松地实现在虚拟现实中的高效的流体动画仿真,有效解决现有技术中在虚拟现实中实时模拟大规模流体场景的技术问题。
实施例二
本发明还提供一种基于注视点的自适应流体仿真系统,所述基于注视点的自适应流体仿真系统可以通过执行所述基于注视点的自适应流体仿真方法的流程步骤予以实现,即本领域技术人员可以将所述基于注视点的自适应流体仿真方法理解为所述基于注视点的自适应流体仿真系统的优选实施方式。
根据本发明提供的一种基于注视点的自适应流体仿真系统,包括:
模块M1:构建虚拟的地形场景和置于场景内的流体粒子,进行复杂地形场景的碰撞检测与处理。所述模块M1包括:
模块M1.1:建立二维的地形高度图。
模块M1.2:获取每个粒子当前的坐标高度值,根据双线性插值方法计算每个粒子坐标位置的地形场景高度估计值,比较当前粒子的高度值是否小于场景所在点的高度估计值,若是,则判定发生碰撞,触发模块M1.3;否则,则说明未发生碰撞,重复触发模块M1.2,直到检测完所有粒子的碰撞情况。
模块M1.3:计算地形场景碰撞发生点的法线向量,计算公式如下:
其中,ni表示粒子i在碰撞发生点的法向量,Hi表示粒子i所在位置的地形场景高度,x和y分别表示场景中的水平与垂直方向。
模块M1.4:对发生碰撞的流体粒子进行平移,计算公式如下:
pi=pi+β·dsurface→i·ni
dsurface→i=||(pi-p0)·ni||
其中,pi表示粒子i的位置,β表示常数值,dsurface→i表示粒子i距离场景的无向距离,p0表示切平面上的任意一点。
重复触发模块M1.2至模块M1.4直至所有流体粒子不再穿透地形场景。
模块M2:获取用户的注视信息,并根据所述注视信息将流体区域划分为三个重叠的矩形区域并进行重采样,得到高分辨率流体粒子。模块M2包括:
模块M2.1:利用虚拟现实头戴式设备提供的眼动跟踪技术获取用户的注视方向,从用户视角向所述视角的注视方向投射射线,计算注视射线与整个场景的交点位置。
模块M2.2:根据所述交点位置确定注视点位置,若交点位于流体区域内,选择距离所述交点最近的粒子位置作为注视点;若交点位于流体区域外,则选择所述交点作为注视点。
模块M2.3:根据所述注视点位置将流体区域划分为中央凹区域、边界区域和外围区域三个重叠的矩形区域。
模块M2.4:根据初始尺度流体粒子所在位置划分所述流体粒子归属区域。
模块M2.5:记录高分辨率流体粒子的父亲流体粒子。所述父亲流体粒子是指距离所述高分辨率流体粒子最近的初始尺度流体粒子。所述父亲流体粒子继承所述高分辨率流体粒子的归属区域状态。
模块M2.6:对中央凹区域以及边界区域内的流体粒子进行重采样,使所述流体粒子分裂为更高分辨率的流体粒子。模块M2.6包括如下子模块:模块M2.6.1:记录每个流体粒子所处区域。模块M2.6.2:记录每个高分辨率流体粒子的父亲流体粒子,删除进入外围区域的高分辨率流体粒子。模块M2.6.3:基于进入中央凹区域或边界区域的初始分辨率流体粒子的位置与速度分裂生成多个的高分辨率流体粒子。模块M2.6.4:对新生成的高分辨流体粒子的位置进行松弛操作。
所述中央凹区域以用户的注视点为中心,中央凹区域F的对角线长度计算公式如下:
其中,θ表示中央凹区域的视场角,dview表示用户的观测距离,即用户与注视点之间的欧氏距离。
所述边界区域同心环绕中央凹区域并向外延伸;所述边界区域的宽度为初始尺度流体粒子的光滑核半径大小的两倍;所述边界区域的粒子只进行对流步计算而无需求解不可压缩性约束,负责传递来自外围区域的流体运动信息,并为中央凹区域设定边界条件,此外,边界区域的粒子并不参与最终的渲染。
外围区域覆盖剩余的所有视野区域,采用初始尺度的流体粒子进行模拟。
模块M3:对多尺度流体粒子的不可压缩性约束进行求解,预测场景中不同尺度流体粒子的位置,并根据流体粒子之间的作用力更新各尺度流体粒子速度与位置。所述模块M3包括如下子模块:
模块M3.1:记录每个粒子的邻居粒子,具体地使用空间哈希算法记录每个粒子的邻居粒子。
模块M3.2:根据流体粒子速度及外力情况预测液体粒子位置。
模块M3.3:求解多尺度流体粒子的不可压缩性约束,对流体粒子位置进行修正,以保证流体密度的恒定,计算公式如下:
其中,Δxi表示位置修正量,ρ0表示初始密度,mj表示邻居粒子j的质量,λi与λj分别表示粒子i与j的拉格朗日系数,表示半径为hi的光滑核函数梯度,pi和pj分别表示粒子i与j的位置
边界区域内流体粒子组成的边界区域为中央凹区域内的流体粒子构建了边界条件。边界区域中粒子i的速度则通过光滑粒子动力学方法(Smoothed ParticleHydrodynamics,SPH)插值确定的,计算公式如下:
其中,粒子j为其父粒子和外围区域中父粒子的所有邻居低分辨率流体粒子,高分辨率流体粒子i隶属于边界区域(记为B),ρj表示粒子j的密度,vi和vj分别表示粒子i和粒子j的速度,hparent表示父粒子的支持域半径。因此,边界区域内的粒子在下一帧中的位置通过以下方式更新:
其中,n表示当前帧。
模块M3.4:根据外围区域与中央凹区域的粒子流速差异,对外围区域内的流体粒子施加额外的反馈力,解决了不同尺度的流体粒子因阻尼不同所导致的流体运动不一致的问题。外围区域中每个流体粒子i的受到的反馈力计算公式如下:
其中,流体粒子i隶属于边界区域(记为P),粒子k表示中央凹区域中的高分辨率流体粒子,其父粒子是流体粒子i,α为用户定义的常数。mk表示粒子k的质量,ρk表示粒子k的密度,vk表示粒子k的速度,pk表示粒子k的位置。
实施例三
本实施例提供一种存储介质,存储有程序指令,所述程序指令被处理器执行时实现实施例易中所述的基于注视点的自适应流体仿真方法的步骤。实施例一已经对所述基于注视点的自适应流体仿真方法进行了说明,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括实施例一中各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
实施例四
如图5所示,本实施例还提供一种电子设备10,所述电子设备10为但不限于个人台式电脑、笔记本电脑、服务器以及服务器集群等。
所述电子设备10包括存储器102,用于存储计算机程序;处理器101,用于运行所述计算机程序以实现如实施例1所述的基于注视点的虚拟现实流体动画方法的步骤。
存储器102通过装置总线与处理器101连接并完成相互间的通信,存储器102用于存储计算机程序,处理器101用于运行计算机程序,以使所述电子设备10执行所述的基于注视点的自适应流体仿真方法。实施例一中已经对所述基于注视点的自适应流体仿真方法进行了说明,在此不再赘述。
另需说明的是,上述提到的装置总线可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustry StandardArchitecture,简称EISA)总线等。该装置总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器102可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器101可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于注视点的自适应流体仿真方法,其特征在于,包括:
步骤S1:构建虚拟的地形场景和置于场景内的流体粒子,进行复杂地形场景的碰撞检测与处理;
步骤S2:获取用户的注视信息,并根据所述注视信息将流体区域划分为三个重叠的矩形区域并进行重采样,得到高分辨率流体粒子;
步骤S3:对多尺度流体粒子的不可压缩性约束进行求解,预测场景中不同尺度流体粒子的位置,并根据流体粒子之间的作用力更新各尺度流体粒子速度与位置。
2.根据权利要求1所述的所述基于注视点的自适应流体仿真方法,其特征在于,所述步骤S1包括:
步骤S1.1:建立二维的地形高度图;
步骤S1.2:获取每个粒子当前的坐标高度值,根据双线性插值方法计算每个粒子坐标位置的地形场景高度估计值,比较当前粒子的高度值是否小于场景所在点的高度估计值,若是,则判定发生碰撞,执行步骤S1.3;否则,则说明未发生碰撞,重复执行步骤S1.2,直到检测完所有粒子的碰撞情况;
步骤S1.3:计算地形场景碰撞发生点的法线向量,计算公式如下:
其中,ni表示粒子i在碰撞发生点的法向量,Hi表示粒子i所在位置的地形场景高度,x和y分别表示场景中的水平与垂直方向;
步骤S1.4:对发生碰撞的流体粒子进行平移,计算公式如下:
pi=pi+β·dsurface→i·ni
dsurface→i=||(pi-p0)·ni||
其中,pi表示粒子i的位置,β表示常数值,dsurface→i表示粒子i距离场景的无向距离,p0表示切平面上的任意一点;
重复执行步骤S1.2至步骤S1.4直至所有流体粒子不再穿透地形场景。
3.根据权利要求1所述的所述基于注视点的自适应流体仿真方法,其特征在于,步骤S2包括:
步骤S2.1:利用虚拟现实头戴式设备提供的眼动跟踪技术获取用户的注视方向,从用户视角向所述视角的注视方向投射射线,计算注视射线与整个场景的交点位置;
步骤S2.2:根据所述交点位置确定注视点位置,若交点位于流体区域内,选择距离所述交点最近的粒子位置作为注视点;若交点位于流体区域外,则选择所述交点作为注视点;
步骤S2.3:根据所述注视点位置将流体区域划分为中央凹区域、边界区域和外围区域三个重叠的矩形区域;
步骤S2.4:根据初始尺度流体粒子所在位置划分所述流体粒子归属区域;
步骤S2.5:记录高分辨率流体粒子的父亲流体粒子;
步骤S2.6:对中央凹区域以及边界区域内的流体粒子进行重采样,使所述流体粒子分裂为更高分辨率的流体粒子。
4.根据权利要求3所述的所述基于注视点的自适应流体仿真方法,其特征在于,步骤S2.6包括如下子步骤:
步骤S2.6.1:记录每个流体粒子所处区域;
步骤S2.6.2:记录每个高分辨率流体粒子的父亲流体粒子,删除进入外围区域的高分辨率流体粒子;
步骤S2.6.3:基于进入中央凹区域或边界区域的初始分辨率流体粒子的位置与速度分裂生成多个的高分辨率流体粒子;
步骤S2.6.4:对新生成的高分辨流体粒子的位置进行松弛操作。
5.根据权利要求3所述的所述基于注视点的自适应流体仿真方法,其特征在于,步骤S2.5中所述父亲流体粒子是指距离所述高分辨率流体粒子最近的初始尺度流体粒子;
所述父亲流体粒子继承所述高分辨率流体粒子的归属区域状态。
6.根据权利要求3所述的所述基于注视点的自适应流体仿真方法,其特征在于,所述中央凹区域以用户的注视点为中心,中央凹区域F的对角线长度计算公式如下:
其中,θ表示中央凹区域的视场角,dview表示用户的观测距离,即用户与注视点之间的欧氏距离;
所述边界区域同心环绕中央凹区域并向外延伸;所述边界区域的宽度为初始尺度流体粒子的光滑核半径大小的两倍;所述边界区域的粒子只进行对流步计算而无需求解不可压缩性约束,负责传递来自外围区域的流体运动信息,并为中央凹区域设定边界条件,此外,边界区域的粒子并不参与最终的渲染;
所述外围区域覆盖剩余的所有视野区域,采用初始尺度的流体粒子进行模拟。
7.根据权利要求1所述的所述基于注视点的自适应流体仿真方法,其特征在于,所述步骤S3包括如下子步骤:
步骤S3.1:记录每个粒子的邻居粒子,具体地使用空间哈希算法记录每个粒子的邻居粒子;
步骤S3.2:根据流体粒子速度及外力情况预测液体粒子位置;
步骤S3.3:求解多尺度流体粒子的不可压缩性约束,对流体粒子位置进行修正,以保证流体密度的恒定,计算公式如下:
其中,Δxi表示位置修正量,ρ0表示初始密度,mj表示邻居粒子j的质量,λi与λj分别表示粒子i与j的拉格朗日系数,表示半径为hi的光滑核函数梯度,pi和pj分别表示粒子i与j的位置;
边界区域中粒子i的速度,计算公式如下:
其中,ρj表示粒子j的密度,vi和vj分别表示粒子i和粒子j的速度,hparent表示父粒子的支持域半径;
因此,边界区域内的粒子在下一帧中的位置通过以下方式更新:
其中,n表示当前帧;
步骤S3.4:根据外围区域与中央凹区域的粒子流速差异,对外围区域内的流体粒子施加额外的反馈力,外围区域中每个流体粒子i的受到的反馈力计算公式如下:
其中,α表示用户定义的常数,mk表示粒子k的质量,ρk表示粒子k的密度,vk表示粒子k的速度,pk表示粒子k的位置。
8.一种基于注视点的自适应流体仿真系统,其特征在于,包括:
模块M1:构建虚拟的地形场景和置于场景内的流体粒子,进行复杂地形场景的碰撞检测与处理;
模块M2:获取用户的注视信息,并根据所述注视信息将流体区域划分为三个重叠的矩形区域并进行重采样,得到高分辨率流体粒子;
模块M3:对多尺度流体粒子的不可压缩性约束进行求解,预测场景中不同尺度流体粒子的位置,并根据流体粒子之间的作用力更新各尺度流体粒子速度与位置。
9.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于注视点的自适应流体仿真方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于注视点的自适应流体仿真方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410203610.5A CN118015150A (zh) | 2024-02-23 | 2024-02-23 | 基于注视点的自适应流体仿真方法、系统、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410203610.5A CN118015150A (zh) | 2024-02-23 | 2024-02-23 | 基于注视点的自适应流体仿真方法、系统、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118015150A true CN118015150A (zh) | 2024-05-10 |
Family
ID=90950219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410203610.5A Pending CN118015150A (zh) | 2024-02-23 | 2024-02-23 | 基于注视点的自适应流体仿真方法、系统、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118015150A (zh) |
-
2024
- 2024-02-23 CN CN202410203610.5A patent/CN118015150A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8154544B1 (en) | User specified contact deformations for computer graphics | |
CN109771951B (zh) | 游戏地图生成的方法、装置、存储介质和电子设备 | |
US8169438B1 (en) | Temporally coherent hair deformation | |
JP2021111380A (ja) | 入力映像に含まれた客体の3次元ポーズの推定のためのデータを生成する方法、コンピュータシステムおよび推論モデルを構築する方法 | |
KR20140030098A (ko) | 애니메이션화 된 페이지 넘기기 | |
US20080309668A1 (en) | Image processing method and apparatus | |
JP7432005B2 (ja) | 二次元画像の三次元化方法、装置、機器及びコンピュータプログラム | |
RU2487412C2 (ru) | Способ и устройство для создания видеоанимации | |
KR102629583B1 (ko) | 3차원 이미지를 처리하는 방법 및 장치 | |
US11989900B2 (en) | Object recognition neural network for amodal center prediction | |
JP3700863B2 (ja) | ディスプレイ上に現実性の加味された画像を表示する方法および装置 | |
CN111739134B (zh) | 虚拟角色的模型处理方法、装置及可读存储介质 | |
CN118015150A (zh) | 基于注视点的自适应流体仿真方法、系统、介质及设备 | |
JP7039294B2 (ja) | プログラム、画像処理方法、及び画像処理装置 | |
CN114972587A (zh) | 表情驱动方法、装置、电子设备及可读存储介质 | |
KR102056985B1 (ko) | 가상 현실 인터랙션 방법 및 그 장치 | |
US10387997B2 (en) | Information processing device, information processing method, and storage medium | |
JP6950641B2 (ja) | 画像生成装置、画像生成方法、およびプログラム | |
JP7303340B2 (ja) | プログラム、画像処理方法、及び画像処理装置 | |
WO2016107356A1 (zh) | 一种基于静态图片的动态交互方法和装置 | |
WO2023145411A1 (ja) | 情報処理システム、情報処理方法、および、コンピュータ読み取り可能な非一時的記憶媒体 | |
US8115771B2 (en) | System and method for multilevel simulation of animation cloth and computer-readable recording medium thereof | |
KR20190066804A (ko) | 구형 영상을 생성하는 방법, 구형 영상을 재생하는 방법 및 그 장치들 | |
US20230267696A1 (en) | Responsive Video Canvas Generation | |
KR101824178B1 (ko) | 3차원 렌더링 장치에서 시점을 기반으로 투명도를 조절하는 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |