掌桥专利:专业的专利平台
掌桥专利
首页

流体效果生成方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 19:59:31


流体效果生成方法、装置、计算机设备和存储介质

技术领域

本申请涉及通信技术领域,具体涉及一种流体效果生成方法、装置、计算机设备和存储介质,其中,存储介质为计算机可读存储介质。

背景技术

在一些场景中,虚拟载具(例如船只)可以停泊或者航行于水域,水流的运动以及虚拟载具的运动,会出现虚拟载具进水的情况,以船只为例,制作虚拟载具进水效果可以通过船只和海水碰撞交互,物理模拟虚拟船只的漏水水流粒子效果,认为模拟计算量巨大,也会带来高性能开销,虚拟场景容易出现卡顿,船只每动一下就要增加模拟量和最终数据的存储量,使用时的读取量。而且,大面积的模型动画导入是很消耗资源的,而且引擎也会有三角面的导入上限,所以目前得到的流体效果动画是固定动态,在在游戏领域中,玩家会操控船只在海面上航行,受浮力、风力、技能影响以及船只倾斜等也应该需要有相应的漏水效果,这种固定动态的流体效果动画无法满足需求。

发明内容

本申请实施例提供一种流体效果生成方法、装置、计算机设备和存储介质,可以减少制作流体效果的性能开销,且可以根据虚拟载具的运动实时触发流体效果。

本申请实施例提供的一种流体效果生成方法,包括:

获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;

响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;

在所述目标进水位置处触发生成流体粒子;

根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌。

相应的,本申请实施例还提供的一种流体效果生成装置,包括:

获取单元,用于获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;

选择单元,用于响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;

生成单元,用于在所述目标进水位置处触发生成流体粒子;

控制单元,用于根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌。

相应的,本申请实施例还提供的一种计算机设备,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行本申请实施例提供的任一种流体效果生成方法。

相应的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器加载以执行本申请实施例提供的任一种流体效果生成方法。

本申请实施例通过获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;在目标进水位置处触发生成流体粒子;根据目标进水位置对应的流淌方向,控制流体粒子在虚拟载具上流淌。

本申请实施例根据虚拟载具上预先标记的至少两个进水位置确定虚拟载具的目标进水位置,并根据目标进水位置对应的进水水流的流淌方向,控制流体粒子在虚拟载具上流淌,实现虚拟载具的进水流体效果,通过预先标记的进水位置即可确定流体粒子的生成位置和运动方向,可以减少进水流体效果生成的性能开销,且可以实时根据虚拟载具的运动触发进水流体效果,提升进水流体效果的真实性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的流体效果生成方法的流程图;

图2是本申请实施例提供的进水平面示意图;

图3是本申请实施例提供的标记模型示意图;

图4是本申请实施例提供的另一标记模型示意图;

图5是本申请实施例提供的又一标记模型示意图;

图6是本申请实施例提供的进水流体效果示意图;

图7是本申请实施例提供的粒子加速度和粒子生命的关系示意图;

图8是本申请实施例提供的流体运动视频素材示意图;

图9是本申请实施例提供的视频帧序列示意图;

图10是本申请实施例提供的序列动帧动画贴图示意图;

图11是本申请实施例提供的片区化进水效果示意图;

图12是本申请实施例提供的流体效果生成装置示意图;

图13是本申请实施例提供的计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种流体效果生成方法、装置、计算机设备和计算机可读存储介质。该流体效果生成装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。

其中,该终端可以包括手机、穿戴式智能设备、平板电脑、笔记本电脑、个人计算(PC,Personal Computer)、以及车载计算机等。

其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。

本实施例将从流体效果生成装置的角度进行描述,该流体效果生成装置具体可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。

本申请实施例提供的一种流体效果生成方法,如图1所示,该流体效果生成方法的具体流程可以如下:

101、获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向。

其中,虚拟载具可以包括用于运送物资、人员等的虚拟的工具,比如,可以包括可以在水上移动的船舶,在一些虚拟场景中,汽车、摩托车等载具也可以在水上移动,所以虚拟载具还可以包括摩托车(具体可以是水上摩托车)、汽车(具体可以是水上汽车)等,运动状态信息可包括虚拟载具的姿态信息,比如,偏转角度、翻转角度以及俯仰角度等。

虚拟载具位于水面上,随着虚拟载具的移动或者水流的运动,水流可能会进入虚拟载具,即虚拟载具可能会出现漏水情况,为了模拟出真实的漏水效果,可以根据虚拟载具的结构,预先对虚拟载具可能进水的位置进行标记,得到进水位置,进水位置还对应有水流在该处进入后的流淌方向,即进水水流的流淌方向。

标记进水位置可以有多种方式,比如,可以通过虚拟载具上的载具部件进行标记,假设在一可能的进水位置附近有一栏杆,可以通过栏杆标记进水位置,栏杆的位置信息可以作为进水位置的位置信息,也可以基于栏杆和实际标记位置之间的位置关系,和栏杆的位置信息,确定进水位置的位置信息。

标记进水位置还可以通过在目标位置上方式标记模型,通过标记模型将该目标位置标记为进水位置,标记模型不仅标记进水位置,还标记进水水流的流淌方向,该流淌方向即为进水位置对应的流淌方向。

在一些场景中,水流进入虚拟载具通常是从虚拟载具的边缘处进入,因此,为了模拟出真实的漏水效果,可以预先在虚拟载具的进水平面的边缘处上放置标记模型,标记模型用于标记虚拟载具可能的进水位置,以及水流在进水位置进入后的流淌方向,进水平面可以是虚拟载具出现漏水时,水流进入的平面,例如,对于船只,进水平面可以是船只的甲板;对于摩托车,进水平面可以是有摩托车的座位;对于汽车,进水平面可以是与车窗齐平的平面。

可选的,标记模型不会被渲染到画面中,所以对于用户而言,标记模型是不可见,标记模型的作用在于标记出虚拟载具的可能进水位置,标记模型标记的方向为在相应的进水位置流入的水流的流淌方向。

标记模型可以有多种类型,不同类型的标记模型标记位置和标记方向的方式不同,比如,标记模型可以是箭头、标记点、几何模型或者其中至少两种的组合,即在一实施例中,所述标记模型为箭头、几何模型以及标记点中的至少一种,

若所述标记模型包括箭头,所述标记模型标记的进水位置为所述箭头的起始位置,所述标记模型标记的流淌方向为所述箭头的方向;

若所述标记模型包括标记点,所述标记模型标记的进水位置为所述标记点所在的位置,所述标记模型标记的流淌方向为所述标记点平行于所述虚拟载具的进水平面的法线方向;

若所述标记模型包括几何模型,所述标记模型标记的进水位置为所述几何模型中的预设定点,所述标记模型标记的流淌方向为所述几何模型的目标向量的方向。

在一实施例中,标记模型可以是箭头,可以在虚拟载具的边缘处放置箭头,箭头的起始位置为进水位置,箭头的方向为从该进水位置进入的水流的流淌方向,示例性的,虚拟载具为虚拟船只,如图2所示,进水平面为船只的甲板,在虚拟船只边缘处放置箭头的示意图如图3所示,可以理解的是,在渲染后的画面中,箭头是不可见的。

在一实施例中,标记模型可以是几何模型,比如,长方体、球体以及其他几何形状的模型,可以从几何模型中指定一个定点作为进水位置,并且指定一个目标向量用于指示水流的流淌方向,如果几何模型为长方体,可以将长方体的一个几何顶点作为进水位置,并可以指定几何模型中指定一个向量来确定水流的流淌方向,示例性的,如图4所示,顶点A用于标记进水位置,可以指定长方体绑定的坐标系的x轴的向量为目标向量,该目标向量的方向为水流的流淌方向,在船只上放置长方体的俯视图如图4所示。

在一实施例中,标记模型可以是标记点,每个标记点所在的位置为虚拟载具可能进水的位置,每个标记点标记的方向可以是该点的法线方向,且该法线方向平行于进水平面,可选的,可以通过在虚拟载具的边缘处放置线条,在该线条上撒点,得到多个标记点,或者是对该线条进行采样,得到多个标记点,虚拟载具为船只,在船只上放置标记点的示意图可以参阅图5。

在一实施例中,还可以结合标记点和箭头标记进水位置和进水水流的流淌方向,每个标记点对应一个箭头,标记点所在的位置为候选进水位置,对应的箭头标记进水水流的流淌方向。

可选的,还可以结合标记点和几何模型标记进水位置和进水水流的流淌方向,标记点所在的位置为候选进水位置,几何模型的目标向量的方向标记进水水流的流淌方向。

102、响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置。

其中,载具进水事件可以是触发流体粒子,产生流体特效的事件,比如,在虚拟载具破损时,触发载具进水事件,或者是在天气满足条件时,触发载具进水事件,或者是虚拟载具所在水面的水位线超过虚拟载具的进水水位线时,触发载具进水事件。

当获取到载具进水事件,从虚拟载具上预先标记的至少两个进水位置中选取目标进水位置,进水位置的位置信息为进水位置当前在世界空间中所在位置的信息,可以坐标等。

如果进水位置通过标记模型进行标记,当获取到载具进水事件,从虚拟载具上放置的至少两个标记模型中选取目标标记模型,标记模型的位置信息为标记模型当前在世界空间中所在位置的信息,可以坐标等。

由于水流通常是从最靠近水面的位置流入,所以目标进水位置为距离水面最近的进水位置(如果通过标记模型标记进水为孩子,目标进水位置为距离水面最近的目标标记模型标记的进水位置),当虚拟载具浮于水面上,可以根据进水位置的位置信息,确定处于最低处的进水位置,将该进水位置作为目标进水位置。可以理解的是,在一些场景的设定中,世界是颠倒的,水在上方,天空在下方,在这种设定下,则是选择最高处的进水位置作为目标进水位置。即在一实施例中,虚拟载具位于虚拟水面上,所述响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置之前,本申请实施例提供的虚拟角色面部控制方法还可以包括:

计算所述虚拟水面和所述虚拟载具的进水平面的高度差;

若所述高度差小于预设阈值,则触发载具进水事件。

比如,可以计算当前虚拟水面和虚拟载具的进水平面的高度差,如果高度差小于阈值,表示虚拟水面比较靠近进水平面,虚拟水面的水流会进入虚拟载具的进水平面,触发载具进水事件。

如果虚拟载具持续进水,虚拟载具的进水平面上的流体粒子的数量会越来越多,流体会堆积过渡,可以通过控制流体粒子的发生频率,避免进水平面的累计流体粒子的数量,流体效果堆积过渡,即在一实施例中,步骤“若所述高度差小于预设阈值,则触发载具进水事件,可以包括:

若所述高度差小于预设阈值,则计算当前时间和最近一次触发生成流体粒子的目标时间的时间间隔;

若所述时间间隔大于预设时间间隔,则触发载具进水事件。

比如,如果虚拟水面和虚拟载具的进水平面的高度差小于预设阈值,则计算当前时间,和上一次触发生成流体粒子的目标时间的时间间隔,如果时间间隔大于预设时间间隔,则触发载具进水事件,以触发再次生成流体粒子,如果时间间隔不大于预设时间间隔,则不触发载具流水事件,避免在进水平面上有太多流体粒子,流体效果堆积过度。

103、在所述目标进水位置处触发生成流体粒子。

比如,可以是目标进水位置上触发生成流体粒子,流体粒子是用于模拟流体效果的粒子,一个粒子是可以认为是一个基本元素,粒子可以有位置、大小、颜色、速度等属性,通常是一个点或简单的几何形状,粒子可以由粒子系统控制生成,粒子系统是指由大量粒子组成的系统,粒子系统通常会设置一些规则来控制每个粒子的行为,如位置、速度、大小、颜色的变化,来模拟流体效果,比如,火焰、烟雾、海浪等。

104、根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌。

比如,在生成流体粒子后,根据目标进水位置对应的流淌方向确定流体粒子的移动位置,根据了流体粒子的材质在移动位置上渲染出流体粒子,以实现控制流体粒子在虚拟载具上流淌,模拟虚拟载具的进水效果(漏水效果),比如,将目标进水位置对应的流淌方向作为流体粒子的运动方向,控制流体粒子在虚拟载具的进水平面上流动,模拟虚拟载具进水效果,虚拟载具的进水流体效果可以如图6所示。

在一实施例中,可以将流体粒子的粒子属性和虚拟载具的姿态进行关联,使虚拟载具的姿态影响流体效果,即在一实施例中,步骤“根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌”,可以包括:

将所述虚拟载具在当前姿态下进水平面的法线,对于世界空间中目标方向的旋转方向,作为所述流体粒子的加速度方向;

根据预设的粒子生命与粒子加速度大小之间的映射关系,确定所述流体粒子的目标加速度大小;

基于所述目标进水位置对应的流淌方向、所述加速度方向、所述目标加速度大小控制所述流体粒子在所述虚拟载具上流淌。

由于虚拟载具位于虚拟水面上,水的流动会影响虚拟载具的姿态发生变化,虚拟载具的移动也会影响姿态的变化,当前姿态可以是虚拟载具在当前时间的姿,虚拟载具的姿态会影响水流粒子在进水平面上的流动动向以及流动速度等,所以可以将虚拟载具的姿态和流水粒子的粒子属性进行关联,比如,可以计算虚拟载具在当前姿态下的倾斜方向对流体粒子的加速度进行调节。

虚拟载具的倾斜方向可以根据虚拟载具相对于世界空间的旋转角度确定,具体可以是计算虚拟载具的进水平面的法线到世界空间的目标轴的旋转方向,其中,目标坐标轴可以根据场景的设定确定,比如,对于常规的场景设定,水面在下,天空在上的设定,目标方向可以是世界空间中,竖直向上的方向,对于特殊的场景设定,水在上方,天空在下方,在这种场景设定下,则目标方向可以是竖直向下的方向,可以根据以下公式计算进水平面的法线对于时间空间的目标坐标轴的旋转方向,其中,AccDirection为流体粒子的加速度,A为进水平面的法线,B为目标方向的单位向量,RotationFromXVector(A-B)计算从向量A到向量B的旋转方向。

AccDirection=RotationFromXVector(A-B)

在一实施例中,可以在虚拟载具的进水平面上绑定一平面模型,该平面模型跟随虚拟载具的运动,获取平面模型的法线即可得到进水平面的法线。

在另一实施例中,可以在虚拟载具上绑定一个盒子模型(Cube)或者任意模型同虚拟载具一起运动,根据绑定的模型在本地坐标系的上方向的单位向量,和世界空间的指示目标方向的单位向量计算旋转角度,可以通过以下公式计算加速度的方向,其中,Model表示与虚拟载具绑定的模型,GetUpVector(Model)用于获取模型在本地坐标系的上方向的单位向量。

AccDirection=RotationFromXVector(GetUpVector(Model)-B)

通过对流体粒子的加速度方向进行调整,可以模拟流体粒子受虚拟载具运动影响的的回流效果。

流体粒子的加速度大小可以根据粒子生命和粒子加速度大小之间的映射关系确定,根据粒子生命控制粒子加速度的变化的映射关系可以是预先设置,一示例性的映射关系可以如图7所示,横坐标为流体粒子的粒子生命,纵坐标为粒子加速度大小。

根据流体粒子当前的粒子生命,以及粒子生命和粒子加速度之间的映射关系,可以确定流体粒子当前的加速度大小,将该加速度大小作为目标加速度大小,即确定了流体粒子当前的加速度,根据进水位置对应的方向,和基于虚拟载具的当前姿态确定的加速度,控制流体粒子在虚拟载具的进水平面上流淌。

在一实施例中,还可以基于虚拟载具的倾斜角度对流体粒子的加速度大小进行调节,使得流体粒子的加速度的方向和大小均根据虚拟载具的运动变化,模拟水流受到虚拟载具运动的影响效果,即在一实施例中,步骤“根据预设的粒子生命与粒子加速度大小之间的映射关系,确定所述流体粒子的加速度大小”,可以包括:

根据预设的粒子生命和粒子加速度的大小之间的映射关系,得到所述流体粒子的当前生命对应的粒子加速度大小;

基于所述法线对于所述目标方向的倾斜角度,和预设的最大倾斜角度之间的比例,得到进水调节权重;

基于所述进水调节权重对所述粒子加速度大小进行调节,得到所述粒子的目标加速度大小。

由于虚拟载具的倾斜角度越大,水流在虚拟载具上的流动越快,可以计算拟载具的倾斜角度和最大倾斜角度的比例,以对倾斜角度进行归一化处理,得到进水调节权重。倾斜角度可以根据进水平面的法线和目标方向的夹角确定,具体可以通过以下公式计算得到,其中CurrentAngle表示倾斜角度,A为进水平面的法线,B为目标方向的单位向量,Dot(A,B)为A向量和B向量之间夹角的余弦值,Acosd函数是反余弦运算。

CurrentAngle=Acosd(Dot(A,B))

根据预设的粒子生命和粒子加速度的大小之间的映射关系,确定流体粒子当前的生命所对应的粒子加速度大小。

将粒子加速度大小和进水调节权重相乘,以对粒子加速度大小进行调节,得到流体粒子的目标加速度大小。

流体粒子的序列帧动画贴图可以通过模拟水流的运动生成,比如,具体可以是准备水面基础贴图,设置水流的形状函数,可以通过正弦函数来控制海浪高低起伏,设置水流的移动速度、颜色、透明度以及光照效果等属性,然后渲染成视频,将该视频的视频序列作为序列帧动画贴图。

可选的,还可以采集真实的喷水、泼水以及海浪等流体运动视频素材,通过对流体运动视频素材进行处理,得到视频帧动画贴图,即在一实施例中,步骤“获取虚拟载具边缘处放置的至少两个进水位置的位置信息”之前,本申请实施例提供的流体效果生成方法还可以包括:

获取流体运动视频素材;

对所述流体运动视频素材进行背景去除处理,得到包含目标视频区域的视频序列帧;

对所述视频序列帧进行切片处理,得到序列帧动画贴图;

将所述序列帧动画贴图,作为所述流体粒子的材质,以基于所述流体粒子的材质在所述虚拟载具上渲染流体粒子。

其中,流体运动视频素材可以包括流体运动的视频,比如,喷水、泼水或者海浪等视频。

比如,具体可以是获取流体运动视频素材,对流体运动视频素材进行背景去除处理,保留流体运动对应的目标视频区域,得到视频序列帧,对视频帧序列进行切片处理,得到序列帧动画贴图,将序列帧动画贴图作为流体粒子的材质,以便根据流体粒子的加速度、初始运动方向确定流体粒子在当前时间所处的位置,并基于序列帧动画贴图在该位置上渲染流体粒子,使流体粒子呈现动态变化。

示例性的,流体运动视频素材可以如图8示,对流体视频素材进行背景去除处理得到的视频帧序列如图9所示,序列动帧动画贴图如图10所示。

序列帧动画贴图的播放速度可以是预先设置的,以预先设置的播放速度控制序列帧动画贴图的切换,实现动画效果,通常情况下,虚拟载具的倾斜角度越大,则虚拟载具上的水流速度越大,所以可以根据虚拟载具的倾斜角度对虚序列帧动画贴图的播放速度进行调节,使呈现出水流流动更快的效果,即在一实施例中,所述序列帧动画贴图对应有的播放速度,所述方法还包括:

获取所述虚拟载具的倾斜角度;

根据所述倾斜角度对所述序列帧动画贴图的播放速度进行调节,得到目标播放速度,所述播放速度越快,相邻两帧动画贴图映射至所述流体粒子上的时间间隔越短。

其中,虚拟载具的倾斜角度可以参考上述过程计算得到,在此不做赘述。

根据倾斜角度对序列帧动画贴图的播放速度进行调节,具体可以是计算拟载具的倾斜角度和最大倾斜角度的比例,以对倾斜角度进行归一化处理,得到进水调节权重。

将进水调节权重和序列帧动画贴图的播放速度相乘,以对播放速度进行调节,得到目标播放速度,播放速度指示对序列帧动画贴图的切换速度,通过切换序列帧动画贴图中的动画贴图,可以实现动画效果。

在一实施例中,可以通过Flipbook动画技术控制粒子动画效果。

流体粒子的材质可以包括纹理贴图,所以序列帧动画贴图可以包括序列帧纹理贴图,通过序列帧纹理贴图对流体粒子进行纹理映射,可以使流体粒子在不同时间具有不同的纹理,呈现动画效果,即在一实施例中,序列帧动画贴图包括序列帧纹理贴图,步骤“所述根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌”之前,本申请实施例提供的方法还可以包括:

根据所述序列帧动画纹理贴图中纹理贴图的排列顺序,和所述序列帧动画贴图的播放速度,依次从所述序列帧动画纹理贴图中获取纹理贴图;

基于所述纹理贴图对所述流体粒子的材质中已有的纹理贴图进行更新;

根据所述流体粒子的材质中更新后的纹理贴图,对所述流体粒子进行纹理映射处理。

比如,具体可以是根据序列帧动画贴图的播放速度,以及序列帧纹理贴图的排列顺序,依次从序列帧纹理贴图中选择一张纹理贴图,并根据获取的纹理贴图对流体粒子的材质中已有的纹理贴图进行更新,并根据材质中更新后的纹理贴图对流体粒子进行纹理映射处理,以便渲染出具有更新后的纹理贴图的纹理的流体粒子。

序列帧动画贴图还可以包括序列帧法线贴图,根据序列帧法线贴图进行光照处理,使流体粒子呈现凹凸感,可选的,还可以融合虚拟载具的法线贴图和序列帧法线贴图进行光照处理,增加水流粒子的体积感和细节感,即在一实施例中,序列帧动画贴图包括序列帧法线贴图,步骤“所述根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌”之前,本申请实施例提供的流体效果控制方法还可以包括

从所述序列帧法线贴图中获取法线贴图;

对所述法线贴图和所述虚拟载具的载具法线贴图进行融合处理,得到目标法线贴图;

基于所述目标法线贴图对所述流体粒子的材质中已有的法线贴图进行更新;

基于所述流体粒子的材质中更新后的法线贴图,对所述流体粒子进行光照处理。

比如,具体可以是根据序列帧动画贴图的播放速度,以及序列帧法线贴图的排列顺序,依次从序列帧法线贴图中选择一张法线贴图,可选的,还可以根据流体粒子的UV坐标对序列帧法线贴图进行采样,得到流体粒子的材质中纹理贴图匹配的法线贴图,具体可以通过以下函数采样得到法线贴图,Tex

Tex

将法线贴图和虚拟载具的载具法线贴图进行融合,得到目标法线贴图,具体可以通过以下方式计算得到,N

N

根据获取的法线贴图对流体粒子的材质中已有的法线贴图进行更新,并根据材质中更新后的法线贴图对流体粒子进行光照处理,以便渲染具有立体感的流体粒子。

在一实施例中,序列帧动画贴图还可以包括序列帧固有色纹理贴图,序列帧动画贴图包括序列帧固有色纹理贴图,步骤“根据所述目标进水位置对应的流淌方向和所述虚拟载具的运动状态信息,控制所述流体粒子在所述虚拟载具上流淌”之前,所述本申请实施例提供的流体效果生成方法还可以包括:

从序列帧固有色纹理贴图中获取固有色纹理贴图;

根据所述固有色纹理贴图,对所述流体粒子的材质中的光照强度进行调节,得到目标光线强度;

根据所述目标光线强度对所述流体粒子进行光照处理。

比如,根据所述序列帧固有色纹理贴图中固有色纹理贴图的排列顺序,和所述序列帧动画贴图的播放速度,从序列帧固有色纹理贴图中选取一张固有色纹理贴图,可选的,还可以根据流体粒子的UV坐标对序列帧固有色纹理贴图进行采样,得到流体粒子的材质中纹理贴图匹配的固有色纹理贴图,具体可以通过以下函数采样得到法线贴图,Tex

Tex

其中,光照强度可以包括入射光强度和反射光强度,对于入射光强度,可以基于以下公式1进行调节,对于反射光强度,可以通过以下公式2进行调节,其中,I

公式1:I

公式2:R

为了使流体粒子仅在虚拟载具的进水平面上运动,不穿出虚拟载具,可以通过遮罩与虚拟载具的进水平面绑定,令流体粒子在遮罩内出现,即在一实施例中,步骤“获取虚拟载具边缘处放置的至少两个进水位置的位置信息”之前,本申请实施例提供的流体效果控制方法还可以包括:

对所述虚拟载具的进水平面生成的遮罩图;

根据虚拟载具在世界空间中的位置,对所述遮罩图进行缩放处理,得到与在所述世界空间中的虚拟载具的进水平面的尺寸匹配的候选遮罩图;

根据所述虚拟载具的姿态,对所述候选遮罩图进行旋转处理,得到与所述虚拟载具同步旋转的目标遮罩图,以控制所述流体粒子在所述目标遮罩图内流淌。

比如,具体可以是获取虚拟载具的俯视图,保留俯视图中进水平面所在的区域,得到遮罩图,根据虚拟载具在世界空间中的位置,对遮罩图进行缩放处理,使遮罩图与时间空间中的虚拟载具的进水平面的尺寸相同,能够覆盖进水平面,得到候选遮罩图,可以根据虚拟载具的姿态,对候选遮罩图进行旋转处理,使遮罩图和虚拟载具的同步旋转,得到目标遮罩图,目标遮罩图始终可以覆盖进水平面。

示例性的,虚拟载具使虚拟船只,进水平面为虚拟船只的甲板,可以使用3Dmax,通过船只顶视图拿到一张船舱甲板的平面图,通过图像处理把虚拟船只内有可能漏水的区域的内部结构保留,得到一张船只甲板内部可漏水区域的Mask遮罩图。实时获取船只的位置和旋转角度,通过计算传递给遮罩图,以便在船只动态旋转和位移时遮罩形状能完美契合虚拟船只的甲板。

可选的,还可以对遮罩图添加噪声,使不同帧的流体效果存在差异,增加真实,即在一实施例中,步骤“根据所述虚拟载具的姿态,对所述候选遮罩图进行旋转处理,得到与所述虚拟载具同步旋转的目标遮罩图”之后,本申请实施例提供的流体效果生成方法还可以包括:

对所述目标遮罩图进行加噪处理。

比如,可以通过预设的噪波贴图对目标遮罩图进行加噪处理,或者使用噪声函数根据UV坐标等信息计算出噪声,并和目标遮罩图混合等。

为了避免进水水流多于分散,进水效果不真实,可以对漏水效果形状片区化处理,为了如图11所示的得到片区化的漏水效果,可以在步骤103生成流体粒子的原有发射器的基础上,延Y的正负轴分别错位再增加两个发射器,分别设置粒子的出生位置Pos和大小缩放Size。

假设的原有发射器的位置:Pos01

新增两个发射器粒子的位置分别为:

Pos02

Pos03

原有发射器的大小缩放Size01

Size01

其中,InitialSize.xy表示为粒子初始Size,SizeScale表示Size的缩放倍增,Lifetime表示粒子生命。

新增两个发射器粒子的大小缩放Size分别为:

Size02

Size03

组合原有的发射器和新增的发射器发射流体粒子,可以实现进水片区化。

由上可知,本申请实施例通过获取虚拟载具上预先标记至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;在目标进水位置处触发生成流体粒子;根据目标进水位置对应的流淌方向,控制流体粒子在虚拟载具上流淌。

本申请实施例根据虚拟载具预先标记的进水位置的位置信息,确定虚拟载具的目标进水位置,并根据目标进水位置对应的流淌方向,控制流体粒子在虚拟载具上流淌,实现虚拟载具的进水流体效果,通过预先标记的进水位置即可确定流体粒子的生成位置和运动方向,可以减少进水流体效果生成的性能开销,且可以实时根据虚拟载具的运动触发进水流体效果,提升进水流体效果的真实性。

为了便于更好地实施本申请实施例提供的流体效果生成方法,在一实施例中还提供了一种流体效果生成装置。其中名词的含义与上述流体效果生成方法中相同,具体实现细节可以参考方法实施例中的说明。

该流体效果生成装置具体可以集成在计算机设备中,如图12所示,该流体效果生成装置可以包括:获取单元301、模板单元302、第二风险单元303和风险等级单元304,具体如下:

(1)获取单元301,用于获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向。

在一实施例中,通过在所述虚拟载具上放置的标记模型标记所述进水位置,所述标记模型为箭头、几何模型以及标记点中的至少一种,

若所述标记模型包括箭头,所述标记模型标记的进水位置为所述箭头的起始位置,所述标记模型标记的流淌方向为所述箭头的方向;

若所述标记模型包括标记点,所述标记模型标记的进水位置为所述标记点所在的位置,所述标记模型标记的流淌方向为所述标记点平行于所述虚拟载具的进水平面的法线方向;

若所述标记模型包括几何模型,所述标记模型标记的进水位置为所述几何模型中的预设定点,所述标记模型标记的流淌方向为所述几何模型的目标向量的方向。

在一实施例中,流体效果生成装置还可以包括:

素材获取单元,用于获取流体运动视频素材;

背景去除单元,用于对所述流体运动视频素材进行背景去除处理,得到包含目标视频区域的视频序列帧;

切片单元,用于对所述视频序列帧进行切片处理,得到序列帧动画贴图;

材质构建单元,用于根据所述序列帧动画贴图,得到所述流体粒子的材质,以基于所述流体粒子的材质渲染出流体粒子在所述虚拟载具上流淌的效果。

在一实施例中,流体粒子配置有对于所述序列帧动画贴图的播放速度,流体效果生成装置还可以包括:

角度获取单元,用于获取所述虚拟载具的倾斜角度;

播放速度调节单元,用于根据所述倾斜角度对所述序列帧动画贴图的播放速度进行调节,得到目标播放速度,所述播放速度越快,相邻两帧动画贴图映射指所述流体粒子上的时间间隔越短。

(2)选择单元302,用于响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置

在一实施例中,流体效果生成装置还可以包括:

计算单元,用于计算所述虚拟水面和所述虚拟载具的进水平面的高度差;

事件触发单元,用于若所述高度差小于预设阈值,则触发载具进水事件。

在一实施例中,事件触发单元,可以包括:

时间间隔计算子单元,用于若所述高度差小于预设阈值,则计算当前时间和最近一次触发生成流体粒子的目标时间的时间间隔;

进水事件触发子单元,用于若所述时间间隔大于预设时间间隔,则触发载具进水事件。

(3)生成单元303,用于在所述目标进水位置处触发生成流体粒子。

(4)控制单元304,用于根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌。

在一实施例中,控制单元304,可以包括:

方向确定子单元,用于将所述虚拟载具在当前姿态下进水平面的法线,对于世界空间中目标方向的旋转方向,作为所述流体粒子的加速度方向;

速度确定子单元,用于根据预设的粒子生命与粒子加速度大小之间的映射关系,确定所述流体粒子的目标加速度大小;

粒子控制子单元,用于基于所述目标进水位置对应的流淌方向、所述加速度方向、所述目标加速度大小控制所述流体粒子在所述虚拟载具上流淌。

在一实施例中,速度确定子单元,可以包括:

映射模块,用于根据预设的粒子生命和粒子加速度的大小之间的映射关系,得到所述流体粒子的当前生命对应的粒子加速度大小;

权重计算模块,用于基于所述法线对于所述目标方向的倾斜角度,和预设的最大倾斜角度之间的比例,得到进水调节权重;

调节模块,用于基于所述进水调节权重对所述粒子加速度大小进行调节,得到所述粒子的目标加速度大小。

在一实施例中,所述序列帧动画贴图包括序列帧纹理贴图,流体效果生成装置还可以包括:

纹理贴图获取单元,用于根据所述序列帧动画纹理贴图中纹理贴图的排列顺序,和所述序列帧动画贴图的播放速度,依次从所述序列帧动画纹理贴图中获取纹理贴图;

纹理贴图更新单元,用于基于所述纹理贴图对所述流体粒子的材质中已有的纹理贴图进行更新;

纹理映射单元,用于根据流体粒子的材质中更新后的纹理贴图,对所述流体粒子进行纹理映射处理。

在一实施例中,所述序列帧动画贴图包括序列帧法线贴图,步骤“根据所述目标进水位置对应的流淌方向,控制所述流体粒子所述虚拟载具上流淌”之前,本申请实施例提供的流体效果生成方法还可以包括:

法线贴图获取单元,用于从所述序列帧法线贴图中获取法线贴图;

融合单元,用于对所述法线贴图和所述虚拟载具的载具法线贴图进行融合处理,得到目标法线贴图;

法线贴图更新单元,用于基于所述目标法线贴图对所述流体粒子的材质中已有的法线贴图进行更新;

第一光照处理单元,用于基于所述流体粒子的材质中更新后的法线贴图对所述流体粒子进行光照处理。

在一实施例中,所述序列帧动画贴图包括序列帧固有色纹理贴图,流体效果生成装置还可以包括:

固有色纹理贴图获取单元,用于从序列帧固有色纹理贴图中获取固有色纹理贴图;

光照强度获取单元,用于根据所述固有色纹理贴图,对所述流体粒子的材质中的光照强度进行调节,得到目标光线强度;

第二光照处理单元,用于根据所述目标光线强度对所述流体粒子进行光照处理。

在一实施例中,流体效果生成装置还可以包括:

遮罩生成单元,用于对所述虚拟载具的进水平面生成的遮罩图;

缩放单元,用于根据虚拟载具在世界空间中的位置,对所述遮罩图进行缩放处理,得到与在所述世界空间中的虚拟载具的进水平面的大小匹配的候选遮罩图;

旋转单元,用于根据所述虚拟载具的旋转信息,对所述候选遮罩图进行旋转处理,得到与所述虚拟载具同步旋转的目标遮罩图,以控制所述流体粒子在所述目标遮罩图内确定的范围内流淌。

由上可知,本申请实施例流体效果生成装置通过获取虚拟载具边缘处放置的至少两个不可见的标记模型所标记位置的位置信息,其中,每个进水位置对应的方向为进水水流的流淌方向;响应于载具进水事件,根据所述位置信息从所述至少两个标记模型中确定进水处的目标标记模型;在目标进水位置处触发生成流体粒子;根据目标进水位置对应的流淌方向,控制流体粒子在虚拟载具上流淌。

本申请实施例根据虚拟载具预先标记的进水位置的位置信息,确定虚拟载具的目标进水位置,并根据进水位置对应的进水水流的流淌方向,控制流体粒子在虚拟载具上流淌,实现虚拟载具的进水流体效果,通过预先标记的进水位置即可确定流体粒子的生成位置和运动方向,可以减少进水流体效果生成的性能开销,且可以实时根据虚拟载具的运动触发进水流体效果,提升进水流体效果的真实性。

相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端。如图13所示,图13为本申请实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。

在本申请实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:

获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;

响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;

在所述目标进水位置处触发生成流体粒子;

根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌。

在一实施例中,通过在所述虚拟载具上放置的标记模型标记所述进水位置,所述标记模型为箭头、几何模型以及标记点中的至少一种,

若所述标记模型包括箭头,所述标记模型标记的进水位置为所述箭头的起始位置,所述标记模型标记的流淌方向为所述箭头的方向;

若所述标记模型包括标记点,所述标记模型标记的进水位置为所述标记点所在的位置,所述标记模型标记的流淌方向为所述标记点平行于所述虚拟载具的进水平面的法线方向;

若所述标记模型包括几何模型,所述标记模型标记的进水位置为所述几何模型中的预设定点,所述标记模型标记的流淌方向为所述几何模型的目标向量的方向。

在一实施例中,步骤“虚拟载具位于虚拟水面上,所述响应于载具进水事件,根据所述位置信息,从所述至少两个进水位置中确定目标进水位置”之前,本申请实施例提供的流体效果生成方法还可以包括:

计算所述虚拟水面和所述虚拟载具的进水平面的高度差;

若所述高度差小于预设阈值,则触发载具进水事件。

在一实施例中,步骤“若所述高度差小于预设阈值,则触发载具进水事件”,可以包括:

若所述高度差小于预设阈值,则计算当前时间和最近一次触发生成流体粒子的目标时间的时间间隔;

若所述时间间隔大于预设时间间隔,则触发载具进水事件。

在一实施例中,步骤“根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌”,可以包括:

将所述虚拟载具在当前姿态下进水平面的法线,对于世界空间中目标方向的旋转方向,作为所述流体粒子的加速度方向;

根据预设的粒子生命与粒子加速度大小之间的映射关系,确定所述流体粒子的目标加速度大小;

基于所述目标进水位置对应的流淌方向、所述加速度方向、所述目标加速度大小控制所述流体粒子在所述虚拟载具上流淌。

在一实施例中,步骤“根据预设的粒子生命与粒子加速度大小之间的映射关系,确定所述流体粒子的目标加速度大小”,可以包括:

根据预设的粒子生命和粒子加速度的大小之间的映射关系,得到所述流体粒子的当前生命对应的粒子加速度大小;

基于所述法线对于所述目标方向的倾斜角度,和预设的最大倾斜角度之间的比例,得到进水调节权重;

基于所述进水调节权重对所述粒子加速度大小进行调节,得到所述粒子的目标加速度大小。

在一实施例中,步骤“获取虚拟载具上预先标记的至少两个进水位置的位置信息”之前,本申请实施例提供的流体效果生成方法还可以包括:

获取流体运动视频素材;

对所述流体运动视频素材进行背景去除处理,得到包含目标视频区域的视频序列帧;

对所述视频序列帧进行切片处理,得到序列帧动画贴图;

根据所述序列帧动画贴图,得到所述流体粒子的材质,以基于所述流体粒子的材质渲染出流体粒子在所述虚拟载具上流淌的效果。

在一实施例中,流体粒子配置有对于所述序列帧动画贴图的播放速度,本申请实施例提供的流体效果生成方法还可以包括:

获取所述虚拟载具的倾斜角度;

根据所述倾斜角度对所述序列帧动画贴图的播放速度进行调节,得到目标播放速度,所述播放速度越快,相邻两帧动画贴图映射指所述流体粒子上的时间间隔越短。

在一实施例中,所述序列帧动画贴图包括序列帧纹理贴图,步骤“根据所述目标进水位置对应的方向,控制所述流体粒子所述虚拟载具上流淌”之前,本申请实施例提供的流体效果生成方法还可以包括:

根据所述序列帧动画纹理贴图中纹理贴图的排列顺序,和所述序列帧动画贴图的播放速度,依次从所述序列帧动画纹理贴图中获取纹理贴图;

基于所述纹理贴图对所述流体粒子的材质中已有的纹理贴图进行更新;

根据流体粒子的材质中更新后的纹理贴图,对所述流体粒子进行纹理映射处理。

在一实施例中,所述序列帧动画贴图包括序列帧法线贴图,步骤“根据所述目标进水位置对应的方向,控制所述流体粒子所述虚拟载具上流淌”之前,本申请实施例提供的流体效果生成方法还可以包括:

从所述序列帧法线贴图中获取法线贴图;

对所述法线贴图和所述虚拟载具的载具法线贴图进行融合处理,得到目标法线贴图;

基于所述目标法线贴图对所述流体粒子的材质中已有的法线贴图进行更新;

基于所述流体粒子的材质中更新后的法线贴图对所述流体粒子进行光照处理。

在一实施例中,所述序列帧动画贴图包括序列帧固有色纹理贴图,步骤“所述目标进水位置对应的方向和所述虚拟载具的运动状态信息,控制所述流体粒子在所述虚拟载具上流淌”之前,本申请实施例提供的流体效果生成方法还可以包括:

从序列帧固有色纹理贴图中获取固有色纹理贴图;

根据所述固有色纹理贴图,对所述流体粒子的材质中的光照强度进行调节,得到目标光线强度;

根据所述目标光线强度对所述流体粒子进行光照处理。

在一实施例中,步骤“获取虚拟载具上预先标记的至少两个进水位置的位置信息”之前,本申请实施例提供的流体效果生成方法还可以包括:

对所述虚拟载具的进水平面生成的遮罩图;

根据虚拟载具在世界空间中的位置,对所述遮罩图进行缩放处理,得到与在所述世界空间中的虚拟载具的进水平面的大小匹配的候选遮罩图;

根据所述虚拟载具的旋转信息,对所述候选遮罩图进行旋转处理,得到与所述虚拟载具同步旋转的目标遮罩图,以控制所述流体粒子在所述目标遮罩图内确定的范围内流淌。

由上可知,本申请实施例通过获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;在目标进水位置处触发生成流体粒子;根据目标进水位置对应的流淌方向,控制流体粒子在虚拟载具上流淌。

本申请实施例根据虚拟载具预先标记的进水位置的位置信息,确定虚拟载具的目标进水位置,并根据进水位置对应的进水水流的流淌方向,控制流体粒子在虚拟载具上流淌,实现虚拟载具的进水流体效果,通过预先标记的进水位置即可确定流体粒子的生成位置和运动方向,可以减少进水流体效果生成的性能开销,且可以实时根据虚拟载具的运动触发进水流体效果,提升进水流体效果的真实性。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

可选的,如图13所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图13中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。

射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。

音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。

输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管图13中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种流体效果生成方法中的步骤。例如,该计算机程序可以执行如下步骤:

获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;

响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;

在所述目标进水位置处触发生成流体粒子;

根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌。

在一实施例中,通过在所述虚拟载具上放置的标记模型标记所述进水位置,所述标记模型为箭头、几何模型以及标记点中的至少一种,

若所述标记模型包括箭头,所述标记模型标记的位置为所述箭头的起始位置,所述标记模型标记的方向为所述箭头的方向;

若所述标记模型包括标记点,所述标记模型标记的位置为所述标记点所在的位置,所述标记模型标记的方向为所述标记点平行于所述虚拟载具的进水平面的法线方向;

若所述标记模型包括几何模型,所述标记模型标记的位置为所述几何模型中的预设定点,所述标记模型标记的方向为所述几何模型的目标向量的方向。

在一实施例中,步骤“虚拟载具位于虚拟水面上,所述响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置”之前,本申请实施例提供的流体效果生成方法还可以包括:

计算所述虚拟水面和所述虚拟载具的进水平面的高度差;

若所述高度差小于预设阈值,则触发载具进水事件。

在一实施例中,步骤“若所述高度差小于预设阈值,则触发载具进水事件”,可以包括:

若所述高度差小于预设阈值,则计算当前时间和最近一次触发生成流体粒子的目标时间的时间间隔;

若所述时间间隔大于预设时间间隔,则触发载具进水事件。

在一实施例中,步骤“根据所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌”,可以包括:

将所述虚拟载具在当前姿态下进水平面的法线,对于世界空间中目标方向的旋转方向,作为所述流体粒子的加速度方向;

根据预设的粒子生命与粒子加速度大小之间的映射关系,确定所述流体粒子的目标加速度大小;

基于所述目标进水位置对应的流淌方向、所述加速度方向、所述目标加速度大小控制所述流体粒子在所述虚拟载具上流淌。

在一实施例中,步骤“根据预设的粒子生命与粒子加速度大小之间的映射关系,确定所述流体粒子的目标加速度大小”,可以包括:

根据预设的粒子生命和粒子加速度的大小之间的映射关系,得到所述流体粒子的当前生命对应的粒子加速度大小;

基于所述法线对于所述目标方向的倾斜角度,和预设的最大倾斜角度之间的比例,得到进水调节权重;

基于所述进水调节权重对所述粒子加速度大小进行调节,得到所述粒子的目标加速度大小。

在一实施例中,步骤“获取虚拟载具上预先标记的至少两个进水位置的位置信息”之前,本申请实施例提供的流体效果生成方法还可以包括:

获取流体运动视频素材;

对所述流体运动视频素材进行背景去除处理,得到包含目标视频区域的视频序列帧;

对所述视频序列帧进行切片处理,得到序列帧动画贴图;

根据所述序列帧动画贴图,得到所述流体粒子的材质,以基于所述流体粒子的材质渲染出流体粒子在所述虚拟载具上流淌的效果。

在一实施例中,流体粒子配置有对于所述序列帧动画贴图的播放速度,本申请实施例提供的流体效果生成方法还可以包括:

获取所述虚拟载具的倾斜角度;

根据所述倾斜角度对所述序列帧动画贴图的播放速度进行调节,得到目标播放速度,所述播放速度越快,相邻两帧动画贴图映射指所述流体粒子上的时间间隔越短。

在一实施例中,所述序列帧动画贴图包括序列帧纹理贴图,步骤“根据所述目标进水位置对应的流淌方向,控制所述流体粒子所述虚拟载具上流淌”之前,本申请实施例提供的流体效果生成方法还可以包括:

根据所述序列帧动画纹理贴图中纹理贴图的排列顺序,和所述序列帧动画贴图的播放速度,依次从所述序列帧动画纹理贴图中获取纹理贴图;

基于所述纹理贴图对所述流体粒子的材质中已有的纹理贴图进行更新;

根据流体粒子的材质中更新后的纹理贴图,对所述流体粒子进行纹理映射处理。

在一实施例中,所述序列帧动画贴图包括序列帧法线贴图,步骤“根据所述目标进水位置对应的流淌方向,控制所述流体粒子所述虚拟载具上流淌”之前,本申请实施例提供的流体效果生成方法还可以包括:

从所述序列帧法线贴图中获取法线贴图;

对所述法线贴图和所述虚拟载具的载具法线贴图进行融合处理,得到目标法线贴图;

基于所述目标法线贴图对所述流体粒子的材质中已有的法线贴图进行更新;

基于所述流体粒子的材质中更新后的法线贴图对所述流体粒子进行光照处理。

在一实施例中,所述序列帧动画贴图包括序列帧固有色纹理贴图,步骤“所述目标进水位置对应的流淌方向,控制所述流体粒子在所述虚拟载具上流淌”之前,本申请实施例提供的流体效果生成方法还可以包括:

从序列帧固有色纹理贴图中获取固有色纹理贴图;

根据所述固有色纹理贴图,对所述流体粒子的材质中的光照强度进行调节,得到目标光线强度;

根据所述目标光线强度对所述流体粒子进行光照处理。

在一实施例中,步骤“获取虚拟载具上预先标记的至少两个进水位置的位置信息”之前,本申请实施例提供的流体效果生成方法还可以包括:

对所述虚拟载具的进水平面生成的遮罩图;

根据虚拟载具在世界空间中的位置,对所述遮罩图进行缩放处理,得到与在所述世界空间中的虚拟载具的进水平面的大小匹配的候选遮罩图;

根据所述虚拟载具的旋转信息,对所述候选遮罩图进行旋转处理,得到与所述虚拟载具同步旋转的目标遮罩图,以控制所述流体粒子在所述目标遮罩图内确定的范围内流淌。

由上可知,本申请实施例通过获取虚拟载具上预先标记的至少两个进水位置的位置信息,其中,每个进水位置对应有进水水流的流淌方向;响应于载具进水事件,根据所述位置信息从所述至少两个进水位置中确定目标进水位置;在目标进水位置处触发生成流体粒子;根据目标进水位置对应的流淌方向,控制流体粒子在虚拟载具上流淌。

本申请实施例根据虚拟载具预先标记的进水位置的位置信息,确定虚拟载具的目标进水位置,并根据进水位置对应的进水水流的流淌方向,控制流体粒子在虚拟载具上流淌,实现虚拟载具的进水流体效果,通过预先标记的进水位置即可确定流体粒子的生成位置和运动方向,可以减少进水流体效果生成的性能开销,且可以实时根据虚拟载具的运动触发进水流体效果,提升进水流体效果的真实性。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

以上对本申请实施例所提供的一种流体效果生成方法、装置、计算机设备和计算机存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

技术分类

06120116524603