一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

实时真实感地物交互方法、系统及介质

2023-04-05 13:58:07 来源:中国专利 TAG:


1.本发明涉及视觉动画处理技术领域,具体地,涉及一种实时真实感地物交互、系统及介质。


背景技术:

2.程序性地形形变是计算机游戏以及虚拟现实环境中的一个开放问题,其主要关注人物、动物和爆炸碎片等动态物体与地形(例如雪地、泥地、沙地)之间的相互作用。在现实生活中,行人或是车辆通常会与地形产生交互,这些物体与地形之间的相互作用会导致地形产生形变。然而,在实时领域中,当地形被建模和渲染时,这些相互作用效果往往表现不出真实的动态形变效果,如雪地受力产生的压缩、堆积、边缘隆起等效果。
3.经过多年的不断研究,计算机图形学领域中有一种动态形变地形算法,该方法提出了一种可变形地面材料的一般模型,使用位移和压缩算法,利用运行在cpu上的高度图来模拟刚性几何物体撞击地面材料时产生的形变效果。如今,通过cuda、compute shader等gpu并行计算编程语言,可以在现代gpu上实现该动态形变地形算法,在实时性能的情况下也能展现出不俗的视觉效果。
4.然而在现实情况下,地形与刚体之间的交互不仅只有该方法所描述的压缩、堆积、边缘隆起效果,还有在边缘隆起生成斜坡后产生的物质滑坡现象,以及凹陷处受力产生的水平形变效果。现有的方法并不能实时模拟出真实的物质滑坡现象与水平形变效果。


技术实现要素:

5.针对现有技术中的缺陷,本发明的目的是提供一种实时真实感地物交互方法、系统及介质。
6.根据本发明提供的一种实时真实感地物交互方法,包括:
7.穿透深度图计算步骤:检测可交互物体与地形之间的碰撞,并计算出穿透深度图;
8.第一仿真步骤:根据所述穿透深度图,使用置换和侵蚀算法对地形的压缩、堆积、边缘隆起效果进行仿真,得到第一仿真结果;
9.第二仿真步骤:根据所述第一仿真结果,使用基于生成速度场的高度图平流方法对地形的物质滑坡现象和地形水平形变现象进行仿真,得到地物交互结果。
10.优选地,所述穿透深度图计算步骤包括:
11.在可交互地形正下方放置正交摄像机捕获可交互物体的深度图;
12.使用计算着色器比较地形的高度图与正交摄像机所捕获的深度图在相同像素位置的差值,从而计算出穿透深度图。
13.优选地,所述第一仿真步骤包括:
14.根据所述穿透深度图计算出穿透像素的最近非穿透像素坐标;
15.使用置换算法对穿透像素的高度偏移量进行置换;
16.使用侵蚀算法对高度增加超过预设值的像素的高度值与邻居像素的高度值之间
进行平滑处理。
17.优选地,使用置换算法对穿透像素的高度偏移量进行置换的方式包括:
18.δh
up
=α*δh
dowwn
19.其中δh
up
代表置换后目标像素应上升的高度值,δh
down
代表置换前穿透像素的高度偏移量,α代表由用户指定的压缩系数。
20.优选地,使用侵蚀算法对高度增加超过预设值的像素的高度值与邻居像素的高度值之间进行平滑处理的方式包括:
[0021][0022]
其中δhe代表该像素的高度变化量,h
ij
为像素{i,j}处的高度值,n为搜索的邻域个数。
[0023]
优选地,所述第二仿真步骤包括:
[0024]
根据侵蚀算法的高度偏移量计算力源图;
[0025]
根据力源图计算出非力源像素的最近力源像素坐标;
[0026]
根据最近力源像素坐标和力源图计算出生成速度场;
[0027]
根据生成速度场对高度图进行平流处理。
[0028]
优选地,根据侵蚀算法的高度偏移量计算力源图的方式包括:
[0029][0030]
其中f
ij
为像素{i,j}处的力值,h
ij
为像素{i,j}处的高度值,px
ij
为像素{i,j}的位置,px
ij
=float2(i,j),n为搜索的邻域个数,σ为用户指定的分数常数。
[0031]
优选地,根据最近力源像素坐标和力源图计算出生成速度场的方式包括:
[0032]
distdamp=length(px
ij-forcejfa
ij
)/maxdist
[0033]
velocity
out
=normalize(f
forcejf ij
)*(1-distdamp)
[0034]
其中forcejfa
ij
为像素{i,j}处的最近力源的像素坐标,f
forcejfaij
像素{i,j}处的最近力源的像素坐标处的力向量,px
ij
为像素{i,j}的位置,velocity
out
为输出的生成速度场,maxdist为力的最大影响距离,distdamp为距离衰减乘数。
[0035]
根据本发明提供的一种实时真实感地物交互系统,包括:
[0036]
穿透深度图计算模块:检测可交互物体与地形之间的碰撞,并计算出穿透深度图;
[0037]
第一仿真模块:根据所述穿透深度图,使用置换和侵蚀算法对地形的压缩、堆积、边缘隆起效果进行仿真,得到第一仿真结果;
[0038]
第二仿真模块:根据所述第一仿真结果,使用基于生成速度场的高度图平流方法对地形的物质滑坡现象和地形水平形变现象进行仿真,得到地物交互结果。
[0039]
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的实时真实感地物交互方法的步骤。
[0040]
与现有技术相比,本发明具有如下的有益效果:
[0041]
本发明通过一种生成速度场平流方案,能够较为轻松地表现地形受力产生边缘隆起的斜坡时的物质滑坡现象,以及地形受到物体推动时,受力产生地形水平扭曲形变的效
果,有效解决现有技术中难以模拟的实时物质滑坡现象以及实时地形水平扭曲形变效果的技术问题。
附图说明
[0042]
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0043]
图1为本技术一实施例中的实时真实感地物交互方法的整体流程示意图;
[0044]
图2为本技术一实施例中的实时真实感地物交互方法的实现原理示意图;
[0045]
图3为本技术一实施例中的实时真实感地物交互方法中深度图获取示意图;
[0046]
图4为本技术一实施例中的实时真实感地物交互方法中置换算法中初始状态示意图;
[0047]
图5为本技术一实施例中的实时真实感地物交互方法中置换算法中高度图压缩后结果示意图;
[0048]
图6为本技术一实施例中的实时真实感地物交互方法中置换算法中高度图置换后结果示意图;
[0049]
图7为本技术一实施例中的实时真实感地物交互方法中生成速度场效果图;
[0050]
图8为本技术一实施例中的实时真实感地物交互方法中生成速度场示意图;
[0051]
图9为未使用基于生成速度场的高度图平流方法的效果图;
[0052]
图10为使用基于生成速度场的高度图平流方法效果图;
[0053]
图11a、11b、11c、11d为本技术一实施例中的实时真实感地物交互方法中水平扭曲形变效果图;
[0054]
图12a、12b、12c、12d为本技术一实施例中的实时真实感地物交互方法中物质滑坡现象效果图。
具体实施方式
[0055]
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
[0056]
本实施例的目的在于提供一种实时真实感地物交互方法,以表现地形受力产生边缘隆起的斜坡时的物质滑坡现象,以及地形受到物体推动时,凹陷处受力产生地形水平扭曲形变的效果,同时模拟压缩、堆积、边缘隆起等效果,以有效解决现有技术中难以实时模拟的物质滑坡现象以及实时地形水平扭曲形变效果的技术问题。
[0057]
本实施例提供一种实时真实感地物交互方法,实现了地物交互时地形压缩、堆积、边缘隆起以及物质滑坡现象和地形水平扭曲形变效果的实时模拟。本发明可以被集成在各类实时交互应用中,用于提供稳定的真实感地物交互模拟,以及呈现丰富生动的实时地物交互效果。
[0058]
实施例
[0059]
具体地,如图1所示,本实施例提供一种实时真实感地物交互方法,所述实时真实
感地物交互方法包括:
[0060]
步骤s100,检测可交互物体与地形之间的碰撞,并计算出穿透深度图;
[0061]
步骤s200,根据穿透深度图,使用置换和侵蚀算法对地形的压缩、堆积、边缘隆起效果进行仿真;
[0062]
步骤s300,根据侵蚀算法输出的结果,使用基于生成速度场的高度图平流方法对地形的物质滑坡现象和地形水平形变现象进行仿真。
[0063]
以下将结合图2对本实施例的实时真实感地物交互方法的步骤s100至步骤s300进行详细说明:
[0064]
步骤s100,检测可交互物体与地形之间的碰撞,并计算出穿透深度图。
[0065]
本实施例中,通过在地面下放置一个正交的深度摄像机,记该摄像机的近平面的高度值为0,并通过该相机获取交互物体的深度图,如图3所示。然后比较地形的高度图与深度摄像机所捕获的深度图,使用计算着色器比较两者在相同像素位置的差值,从而计算出穿透深度图。
[0066]
具体地,于本实施例中,所述使用计算着色器比较两者在相同像素位置的差值,从而计算出穿透深度图的一种实现方式为:
[0067]
penetration=height-depth
[0068]
其中penetration为穿透深度值,height为高度值,depth为深度值。如果penetration值大于0,则该帧中物体穿透了地形,发生碰撞。如果penetration值等于0,则物体贴在地形表面,作为地形障碍物存在。如果penetration值小于0,则物体位于地形上方。在具体实现中,为了防止浮点数误差以及防止地形穿透障碍物造成穿模的结果,当penetration值大于h
solid
时,这里h
solid
《0(相当于交互物体在高于高度图-h
solid
cm的表面以下),即判定该位置有地形障碍物。
[0069]
具体地,在步骤s100中包含如下步骤:
[0070]
1)在地面下放置一个正交的深度摄像机,记该摄像机的近平面的高度值为0,并通过该相机获取交互物体的深度图;
[0071]
2)使用计算着色器比较两者在相同像素位置的差值,从而计算出穿透深度图:
[0072]
penetration=height-depth
[0073]
其中penetration为穿透深度值,height为高度值,depth为深度值。
[0074]
步骤s200,根据穿透深度图,使用置换和侵蚀算法对地形的压缩、堆积、边缘隆起效果进行仿真。
[0075]
于本实施例中,计算穿透深度图对地形的影响,模拟地形的压缩、堆积、边缘隆起效果。
[0076]
于本实施例中,所述根据穿透深度图,使用置换和侵蚀算法对地形的压缩、堆积、边缘隆起效果进行仿真包括:根据穿透深度图计算出穿透像素的最近非穿透像素坐标;使用置换算法对穿透像素的高度偏移量进行置换;使用侵蚀算法对高度陡增的像素的高度值与其邻居像素的高度值之间进行平滑处理。
[0077]
具体地,在步骤s200的中包含如下步骤:
[0078]
1)根据穿透深度图计算出穿透像素的最近非穿透像素坐标;
[0079]
2)使用置换算法对穿透像素的高度偏移量进行置换,置换效果如图4、5、6所示:
[0080]
δh
up
=α*δh
down
[0081]
其中δh
up
代表置换后目标像素应上升的高度值,δh
down
代表置换前穿透像素的高度偏移量,α代表压缩系数,由用户指定。
[0082]
3)使用侵蚀算法对高度陡增的像素的高度值与其邻居像素的高度值之间进行平滑处理:
[0083][0084]
其中δhe代表该像素的高度变化量,h
ij
为像素{i,j}处的高度值,n为搜索的邻域个数。
[0085]
本实施例的方法是一种模拟地形的压缩、堆积、边缘隆起效果的有效方法。
[0086]
步骤s300,根据侵蚀算法输出的结果,使用基于生成速度场的高度图平流方法对地形的物质滑坡现象和地形水平形变现象进行仿真。
[0087]
本实施例对侵蚀算法的中间结果进行处理,使用基于生成速度场的高度图平流方法对地形的物质滑坡现象和地形水平形变现象进行仿真。
[0088]
于本实施例中,所述根据侵蚀算法输出的结果,使用基于生成速度场的高度图平流方法对地形的物质滑坡现象和地形水平形变现象进行仿真包括:根据侵蚀算法的高度偏移量计算力源图;根据力源图计算出非力源像素的最近力源像素坐标;根据最近力源像素坐标和力源图计算出生成速度场;根据生成速度场对高度图进行平流处理。
[0089]
具体地,在步骤s300的中包含如下步骤:
[0090]
1)根据侵蚀算法的高度偏移量计算力源图,力源图通过如下公式计算:
[0091][0092]
其中f
ij
为像素{i,j}处的力值,h
ij
为像素{i,j}处的高度值,px
ij
为像素{i,j}的位置,即px
ij
=float2(i,j),n为搜索的邻域个数,σ为用户指定的分数常数。
[0093]
2)根据力源图计算出非力源像素的最近力源像素坐标;
[0094]
3)根据最近力源像素坐标和力源图计算出生成速度场,图7中展示了3d空间中地物交互方法的一个场景,图8展示了该场景在俯视视角下简化的2d空间生成速度场示意图,其速度场通过如下公式计算:
[0095]
distdamp=length(px
ij-forejfa
ij
)/maxdist
[0096]
velocity
out
=normalize(f
forcejfaij
)*(1-disdamp)
[0097]
其中forcejfa
ij
为像素{i,j}处的最近力源的像素坐标,f
forcejfaij
像素{i,j}处的最近力源的像素坐标处的力向量,px
ij
为像素{i,j}的位置,velocity
out
为输出的生成速度场,maxdist为力的最大影响距离,disdamp为距离衰减乘数。
[0098]
4)根据生成速度场对高度图进行平流处理:
[0099]
px
target
=px
ij-velocity
out
*velocitymul
[0100]
其中velocitymul为用户定义的速度乘数,velocity
out
为输出的生成速度场,px
ij
为像素{i,j}的位置。图10中展示了本实施例的基于生成速度场的高度图平流方法在游戏开发软件中的集成应用效果图,图9为未使用该方法的集成应用对比图。对比可以发现,通
过使用本发明中提出的技术,可以实现前人方法无法实现的高效且真实的地形的物质滑坡现象和地形水平形变现象模拟。
[0101]
所以本实施例的方法是一种真实的地形的物质滑坡现象和地形水平形变现象模拟方案。现有方法缺少地形的物质滑坡现象和地形水平形变现象模拟的考虑,难以实时模拟其效果。本实施例的方法提出了一种基于生成速度场的高度图平流方法,通过一种基于力场生成速度场的方式,针对每个高度图进行平流操作,能够高效地实现实时且稳定的物质滑坡现象和地形水平形变现象模拟。图11a、11b、11c、11d展示了本技术一实施例中的实时真实感地物交互方法中水平扭曲形变效果图。图12a、12b、12c、12d展示了本技术一实施例中的实时真实感地物交互方法中物质滑坡现象效果图。
[0102]
综上所述,本发明通过一种基于生成速度场的高度图平流方法,能够较为轻松地实现实时真实感地物交互模拟,有效解决现有技术中难以模拟的物质滑坡现象和地形水平形变现象;所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0103]
本发明还提供一种实时真实感地物交互系统,所述实时真实感地物交互系统可以通过执行所述实时真实感地物交互方法的流程步骤予以实现,即本领域技术人员可以将所述实时真实感地物交互方法理解为所述实时真实感地物交互系统的优选实施方式。
[0104]
本发明还提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的实时真实感地物交互方法的步骤。
[0105]
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0106]
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献