本发明涉及图像处理,尤其涉及一种用于虚拟场景的水波纹模拟方法。
背景技术:
1、现在目前品质相对较高的移动端游戏中,经常会出现角色跟地面水交互的场景,如何模拟真实环境中人物跟水面交互的效果是急需待解决的一个问题。现有技术通过虚拟对象的发力骨骼与水面各点的距离确定水波纹作用力的大小,增强了水波纹效果的逼真性,但是未对水波纹特效的触发情况进行分析,特效触发时间与虚拟人物接触水面时间易因各种因素出现偏差。
2、中国专利申请号:cn202111658246.4公开了一种水波纹处理方法、装置、存储介质及电子设备,方法包括:获取当前虚拟场景中虚拟对象信息,所述虚拟对象信息包括骨骼模型,所述骨骼模型预先标记有发力骨骼,所述发力骨骼为所述骨骼模型中可以产生对水面的作用力的骨骼;根据所述发力骨骼与水面各个点的距离,确定出所述发力骨骼对于水面各个点的水波纹作用力;根据所述水波纹作用力,确定水波纹高度图;根据所述水波纹高度图,对预先获取的水波纹贴图进行水波纹传播计算,得到水波纹图像。由于水波纹是由于发力骨骼(例如肢体)的动作而产生的,而水面任一点所受水波纹作用力的大小又与该点与肢体的距离相关,因此,通过发力骨骼与水面各点的距离确定水波纹作用力大小的方式,可更为准确、逼真的模拟水波纹效果。由此可见,所述水波纹处理方法存在以下问题:针对水波纹特效的触发情况的控制精度不足。
技术实现思路
1、为此,本发明提供一种用于虚拟场景的水波纹模拟方法,用以克服现有技术中针对水波纹特效的触发情况的控制精度不足的问题。
2、为实现上述目的,本发明提供一种用于虚拟场景的水波纹模拟方法。包括:
3、步骤s1、监测角色模型与水面模型的重叠情况,并在重叠面积发生变化时采集角色模型与水面模型交互状态的渲染体的交互图片;
4、步骤s2、采用水波纹扩散算法将所述交互图片转化为水波纹图片;
5、步骤s3、采集所述角色模型与所述水面模型的重叠面积发生变化的时间节点以及水波纹特效触发的时间节点,基于两时间节点的时间差分析水波纹特效的触发是否合格;
6、步骤s4、基于所述角色模型与所述水面模型的相对移动速度对所述水波纹特效的触发是否合格进行二次分析;
7、步骤s5、基于所述时间差分析所述水波纹特效的触发不合格的原因并基于分析结果调节对应的参数,重新采集各时间节点并计算时间差以重新分析水波纹特效的触发是否合格;
8、步骤s6、在判定水波纹特效的触发合格时完成针对水波纹特效的模拟。
9、进一步地,数据分析模块基于所述角色模型与所述水面模型的重叠面积发生变化的变化时间节点以及水波纹特特效触发时间节点的时间差确定所述水波纹特效的触发是否合格,
10、若所述时间差小于等于第一预设时间差,数据分析模块判定水波纹特效的触发合格;
11、若所述时间差大于所述第一预设时间差且小于等于第二预设时间差,所述数据分析模块判定基于所述角色模型与所述水面模型的相对移动速度对所述水波纹特效的触发是否合格进行二次判定;
12、若所述时间差大于所述第二预设时间差,所述数据分析模块判定所述水波纹特效的触发不合格,并基于时间差分析其不合格的原因。
13、进一步地,所述数据分析模块基于所述相对移动速度分析所述水波纹特效的触发是否合格,
14、若所述相对移动速度小于等于预设相对移动速度,数据分析模块判定所述水波纹特效的触发不合格,并基于所述时间差判定其不合格的原因;
15、若所述相对移动速度大于所述预设相对移动速度,所述数据分析模块判定所述水波纹特效的触发合格,并基于相对移动速度与预设相对移动速度的移度差值对所述采样点数进行修正。
16、进一步地,所述数据分析模块基于所述移速差值对所述采样点数进行修正。
17、进一步地,所述数据分析模块在判定基于所述时间差判定所述水波纹特效的触发不合格的原因的条件下将所述时间差与所述第二预设时间差的差值记为一级差值,并根据一级差值判定所述水波纹特效的触发不合格的原因,
18、若所述一级差值小于等于预设一级差值,所述数据分析模块判定算法不合格;
19、若所述一级差值大于所述预设一级差值,所述数据分析模块判定特效渲染不合格。
20、进一步地,所述数据分析模块在判定算法不合格的条件下基于所述一级差值与所述预设一级差值的比值对水波纹特效的修正公式中的振幅进行修正。
21、进一步地,所述数据分析模块在判定特效渲染不合格的条件下将所述一级差值与所述预设一级差值的差值记为二级差值,并根据二级差值对渲染倍率进行调节。
22、进一步地,所述数据分析模块在监测的所述角色模型与所述水面模型的交互重叠情况从重叠状态变为不重叠状态或处于重叠状态但重叠情况在预设时间内不发生变化时判定角色模型与水面模型不再进行新的踩水效果交互。
23、与现有技术相比,本发明的有益效果在于,本发明中分别监测角色模型与水面模型接触的时间以及特效触发时间的时间差初步分析特效触发是否及时,角色模型与水面模型的接触时间与特效触发时间相差过大时,影响画面质量,在时间差介于第一预设时间差与第二预设时间差之间时基于两模型的相对移动速度进一步进行分析,提高了针对水波纹特效触发情况的控制精度。
24、进一步地,本发明中基于相对移动速度进一步分析水波纹特效的触发情况,并在相对移动速度较小时基于时间差分析不合格的原因,或基于相对移动速度减少采样点的数量,减少采样点的数量可以提高针对单次特效触发情况的分析准确度,避免因采样点与角色模型和睡眠模型的接触点的距离过远导致误判。
25、进一步地,本发明中基于时间差与第二预设时间差的差值分析水波纹特效的触发不合格的原因,并在差值较小时判定算法不合格,进而对水波纹的修正公式中的参数进行调节,提高了针对水波纹特效的控制精度。
26、进一步地,本发明中基于一级差值选用对应的调节系数将渲染倍率调节至对应值,提高了针对水波纹特效的渲染效果的控制精度。
27、本发明中水波纹特效的修正公式中的振幅越大,单个波峰和波谷的高低差异越大,波纹形变越显著,基于时间差将修正公式中的振幅调大,提高了水波纹特效的形变度。
28、进一步地,本发明中渲染倍率越低,视觉效果的醒目度越低,低渲染倍率会使特效效果看起来更柔和自然,基于时间差确定渲染倍率,进一步提高了针对水波纹特效的控制精度。
1.一种用于虚拟场景的水波纹模拟方法,其特征在于,包括:
2.根据权利要求1所述的用于虚拟场景的水波纹模拟方法,其特征在于,数据分析模块基于所述角色模型与所述水面模型的重叠面积发生变化的变化时间节点以及水波纹特特效触发时间节点的时间差确定所述水波纹特效的触发是否合格,
3.根据权利要求2所述的用于虚拟场景的水波纹模拟方法,其特征在于,所述数据分析模块基于所述相对移动速度分析所述水波纹特效的触发是否合格,
4.根据权利要求3所述的用于虚拟场景的水波纹模拟方法,其特征在于,所述数据分析模块基于所述移速差值对所述采样点数进行修正。
5.根据权利要求4所述的用于虚拟场景的水波纹模拟方法,其特征在于,所述数据分析模块在判定基于所述时间差判定所述水波纹特效的触发不合格的原因的条件下将所述时间差与所述第二预设时间差的差值记为一级差值,并根据一级差值判定所述水波纹特效的触发不合格的原因,
6.根据权利要求5所述的用于虚拟场景的水波纹模拟方法,其特征在于,所述数据分析模块在判定算法不合格的条件下基于所述一级差值与所述预设一级差值的比值对水波纹特效的修正公式中的振幅进行修正。
7.根据权利要求6所述的用于虚拟场景的水波纹模拟方法,其特征在于,所述数据分析模块在判定特效渲染不合格的条件下将所述一级差值与所述预设一级差值的差值记为二级差值,并根据二级差值对渲染倍率进行调节。
8.根据权利要求7所述的用于虚拟场景的水波纹模拟方法,其特征在于,所述数据分析模块在监测的所述角色模型与所述水面模型的交互重叠情况从重叠状态变为不重叠状态或处于重叠状态但重叠情况在预设时间内不发生变化时判定角色模型与水面模型不再进行新的踩水效果交互。
9.根据权利要求8所述的用于虚拟场景的水波纹模拟方法,其特征在于,所述水波纹特效的修正公式ffixheight()为:
