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

图像处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 10:06:57


图像处理方法、装置、电子设备及存储介质

技术领域

本申请实施例涉及图像处理技术领域,尤其涉及一种图像处理方法、装置、电子设备及存储介质。

背景技术

在电子设备(手机、电脑等设备)中可以运行多种电子游戏,电子游戏中可以包括虚拟场景,例如,虚拟场景中可以包括虚拟的流体,流体可以包括水、风、雾等。

为了向用户提供效果真实的虚拟场景,虚拟场景中的流体需要展现出流动效果。例如,假设虚拟场景中包括一条小河,则为了得到较好的效果,小河中的水需要展现出不断流动的效果。在相关技术中,通常由美工人员手动绘制虚拟场景,当虚拟场景中包括流体时,则美工人员需要手工绘制多张图像来表示流体的流动效果。然而,美工人员通常无法准确的绘制出流体的流动效果,导致绘制的虚拟场景的准确性较差。

发明内容

本申请实施例提供一种图像处理方法、装置、电子设备及存储介质。提高了虚拟场景绘制的准确性。

第一方面,本申请实施例提供一种图像处理方法,包括:

获取第一图像,所述第一图像中包括待处理流体;

根据初始第二图像中包括的第一对象,确定所述第一对象对所述待处理流体产生的外力信息,其中,所述初始第二图像为所述第一图像的下一帧待更新图像;

根据所述外力信息和所述第一图像,更新所述初始第二图像。

在一种可能的实施方式中,所述根据所述外力信息和所述第一图像,更新所述初始第二图像,包括:

根据所述外力信息和所述第一图像,确定目标流体矢量图,其中,所述目标流体矢量图用于计算所述目标流体,所述目标流体为所述外力信息作用于所述待处理流体后得到的流体;

根据所述目标流体矢量图,更新所述初始第二图像,以使更新后的初始第二图像包含所述目标流体。

在一种可能的实施方式中,所述更新所述初始第二图像之后,所述方法还包括:

所述将更新后的初始第二图像作为所述第一图像的下一帧图像。

在一种可能的实施方式中,根据所述外力信息和所述第一图像,确定目标流体矢量图,包括:

获取所述第一图像对应的第一流体矢量图;

根据所述外力信息和所述第一流体矢量图,确定所述目标流体矢量图。

在一种可能的实施方式中,根据所述外力信息和所述第一流体矢量图,确定所述目标流体矢量图,包括:

对所述外力信息进行分解处理,得到所述第一图像中的像素对应的压力向量,所述压力向量包括压力方向和压力大小;

根据所述第一图像中的像素对应的压力向量和所述第一流体矢量图,确定所述目标流体矢量图。

在一种可能的实施方式中,对所述外力信息进行分解处理,得到所述第一图像中的像素对应的压力向量,包括:

获取所述外力信息对应的多个第一外力向量;

对所述多个第一外力向量进行传递处理,得到多个第二外力向量;

对所述多个第二外力向量进行扩散处理,得到多个第三外力向量;

对所述多个第三外力向量进行N次散度与压力处理,得到多个第四外力向量、压力和散度,所述N为大于1的整数;

根据所述多个第四外力向量、所述压力和所述散度,确定所述第一图像中各像素对应的压力向量。

在一种可能的实施方式中,所述根据初始第二图像中包括的第一对象,确定所述第一对象对所述待处理流体产生的外力信息,包括:

获取所述待处理流体的类型、所述第一对象的类型、以及所述第一对象的位置信息;

根据所述待处理流体的类型、所述第一对象的类型、以及所述第一对象的位置信息,确定所述第一对象对所述待处理流体产生的外力信息。

在一种可能的实施方式中,所述位置信息为所述第一对象在游戏地图中的位置信息;所述第一图像和更新后的初始第二图像为所述游戏地图中的图像。

第二方面,本申请实施例提供一种图像处理装置,包括:获取模块、第一确定模块和更新模块,其中,

所述获取模块用于,获取第一图像,所述第一图像中包括待处理流体;

所述第一确定模块用于,根据初始第二图像中包括的第一对象,确定所述第一对象对所述待处理流体产生的外力信息,其中,所述初始第二图像为所述第一图像的下一帧待更新图像;

所述更新模块用于,根据所述外力信息和所述第一图像,更新所述初始第二图像。

在一种可能的实施方式中,所述更新模块具体用于:

根据所述外力信息和所述第一图像,确定目标流体矢量图,其中,所述目标流体矢量图用于计算所述目标流体,所述目标流体为所述外力信息作用于所述待处理流体后得到的流体;

根据所述目标流体矢量图,更新所述初始第二图像,以使更新后的初始第二图像包含所述目标流体。

在一种可能的实施方式中,所述装置还包括第二确定模块,其中,所述第二确定模块用于,在所述更新模块更新所述初始第二图像之后,将更新后的初始第二图像作为所述第一图像的下一帧图像。

在一种可能的实施方式中,所述更新模块具体用于:

获取所述第一图像对应的第一流体矢量图;

根据所述外力信息和所述第一流体矢量图,确定所述目标流体矢量图。

在一种可能的实施方式中,所述更新模块具体用于:

对所述外力信息进行分解处理,得到所述第一图像中的像素对应的压力向量,所述压力向量包括压力方向和压力大小;

根据所述第一图像中的像素对应的压力向量和所述第一流体矢量图,确定所述目标流体矢量图。

在一种可能的实施方式中,所述更新模块具体用于:

获取所述外力信息对应的多个第一外力向量;

对所述多个第一外力向量进行传递处理,得到多个第二外力向量;

对所述多个第二外力向量进行扩散处理,得到多个第三外力向量;

对所述多个第三外力向量进行N次散度与压力处理,得到多个第四外力向量、压力和散度,所述N为大于1的整数;

根据所述多个第四外力向量、所述压力和所述散度,确定所述第一图像中各像素对应的压力向量。

在一种可能的实施方式中,所述第一确定模块具体用于:

获取所述待处理流体的类型、所述第一对象的类型、以及所述第一对象的位置信息;

根据所述待处理流体的类型、所述第一对象的类型、以及所述第一对象的位置信息,确定所述第一对象对所述待处理流体产生的外力信息。

在一种可能的实施方式中,所述位置信息为所述第一对象在游戏地图中的位置信息;所述第一图像和更新后的初始第二图像为所述游戏地图中的图像。

第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如第一方面任一项所述的图像处理方法。

第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的图像处理方法。

本申请实施例提供的图像处理方法、装置、电子设备及存储介质,在第一图像中包括待处理流体时,可以根据初始第二图像(第一图像的下一帧待更新图像)中包括的第一对象,确定第一对象对待处理流体产生的外力信息,并根据外力信息和第一图像更新初始第二图像。外力信息可以准确的表示第一对象对流体的流动效果的影响,因此,根据外力信息以及第一图像可以准确的更新初始第二图像,提高了虚拟场景绘制的准确性。

附图说明

图1为本申请实施例提供的应用场景示意图;

图2为本申请实施例提供的图像处理方法的流程示意图;

图3为本申请实施例提供的一种图像示意图;

图4为本申请实施例提供的一种确定目标流体矢量图的过程示意图;

图5为本申请实施例提供的另一种图像处理的示意图;

图6为本申请实施例提供的外力的传递效果进行说明;

图7为本申请实施例提供的风场处理的过程示意图;

图8A为本申请实施例提供的一种风场模拟效果示意图;

图8B为本申请实施例提供的另一种风场模拟效果示意图;

图8C为本申请实施例提供的再一种风场模拟效果示意图;

图9为本申请实施例提供的水体处理的过程示意图;

图10A为本申请实施例提供的一种水体模拟效果示意图;

图10B为本申请实施例提供的另一种水体模拟效果示意图;

图10C为本申请实施例提供的再一种水体模拟效果示意图;

图10D为本申请实施例提供的又一种水体模拟效果示意图;

图10E为本申请实施例提供的另一种水体模拟效果示意图;

图11A为本申请实施例提供的一种风场与雾的模拟示意图;

图11B为本申请实施例提供的另一种风场与雾的模拟示意图;

图12为本申请实施例提供的图像处理装置的结构示意图;

图13为本申请实施例提供的另一种图像处理装置的结构示意图;

图14为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了便于理解,首先对本申请的应用场景进行说明。

图1为本申请实施例提供的应用场景示意图。请参见图1,包括页面101和页面102,页面101和页面102为游戏画面中的两帧图像。在页面101和页面102中包括水(流体),水中有人物在进行游泳。在人物游泳的过程中,水需要有流动的效果,例如,水需要根据用户的泳姿不同而进行不同的流动。由于人物的游泳过程为一连续过程,因此,水的流动也需要为一个连续的过程。

在相关技术中,需要由美工人员手动绘制每一帧中水的流动效果,导致美工人员的工作量较大,且美工人员无法准确的绘制出水的流动效果。

为了解决该技术问题,技术人员进行研究发现,画面中的对象(例如,人物、石头、船只等)对流体的流动效果具有一定的影响,并且不同的对象对流体的流动效果的影响不同,例如,水中的石头对水的流动效果的影响与船只对水的流动效果的影响不同。因此,在本申请实施例中,可以根据当前游戏画面中包括的对象(例如,人物、石头、船只等),确定外力信息,并根据外力信息和当前游戏画面,确定下一帧游戏画面的流体矢量图,并根据流体矢量图确定下一帧游戏画面。外力信息可以准确的表示画面中的对象对流体的流动效果的影响,因此,根据外力信息以及当前游戏画面可以准确的确定得到下一帧游戏画面,提高了虚拟场景绘制的准确性。

下面,通过具体实施例对本申请实施例所示的技术方案进行说明。需要说明的是,下面几个实施例可以独立存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。

本申请实施例提供的图像处理方法的执行主体可以为电子设备或者服务器,也可以为设置在电子设备或者服务器中的图像处理装置。图像处理装置可以通过软件实现,也可以通过软件和硬件的结合实现。电子设备可以手机、电脑等游戏客户端。

可以在如下两种情况下执行图2所示的实施例:

情况1、在用户通过电子设备运行网络游戏的过程,电子设备或服务器可以实时或者周期性的执行图2所示的实施例,以确定出最新的游戏画面帧,并由电子设备显示最新的游戏画面帧。

情况2、在离线的网络游戏中,电子设备或服务器可以执行图2所示的实施例,以确定出网络游戏中的各个画面帧。

图2为本申请实施例提供的图像处理方法的流程示意图。该图像处理方法所包含的各个步骤对应的执行主体可以相同,也可以不同。请参见图2,该方法可以包括:

S201、获取第一图像。

第一图像中包括待处理流体,待处理流体可以包括:液体、风、雾等。液体可以包括水、油等。

可选的,第一图像可以为电子设备当前显示的游戏画面。

S202、根据初始第二图像中包括的第一对象,确定第一对象对待处理流体产生的外力信息。

初始第二图像为第一图像的下一帧待更新图像。例如,假设第一图像为电子设备当前显示的游戏画面,则初始第二图像为电子设备在下一个帧待更新的图像,即,对初始第二图像更新后的图像为电子设备下一帧待显示的游戏画面。

第一对象可以为影响第一图像中的待处理流体流动的对象。

例如,当待处理流体为水时,第一对象可以为位于水中的对象或者与水接触的对象,第一对象可以为位于水中的石头、船只、人、容纳水的水池、容纳水的海岸等。第一对象可以影响水的流动方向、影响水面溅起水花的形状和大小、影响水面的波浪的形状和大小等。

例如,当待处理流体为雾时,第一对象可以为位于雾中的对象,例如,第一对象可以为雾环绕的山、雾环绕的树等。第一对象可以影响雾的密度、影响雾的密度分布等。

可以根据如下方式确定第一对象对待处理流体产生的外力信息:确定待处理流体的类型、第一对象的类型、以及第一对象的位置信息,确定第一对象对待处理流体产生的外力信息。在实际应用过程中,当待处理流体的类型和第一对象的类型不同时,第一对象对待处理流体流动的影响不同。例如,石头对水流动的影响与大山的雾流动的影响不同,石头对水流动的影响与船只对水流动的影响不同。因此,根据待处理流体的类型和第一对象的类型,可以准确的确定得到第一对象对待处理流体产生的外力信息。第一对象的位置信息可以为第一对象在游戏地图中的位置信息。

外力信息中可以包括第一图像中各像素点对应的外力。可选的,外力信息中包括第一像素点对应的外力,第一像素点为第一对象所占位置的像素点。

可以预先设置流体的类型、第一对象的类型与外力之间的对应关系,例如,该对应关系可以如表1所示:

表1

需要说明的是,表1只是以示例的形式示意流体的类型、第一对象的类型与外力之间的对应关系,并非对该对应关系进行的限定。

下面,通过图3所示的示例,对外力信息进行说明。

图3为本申请实施例提供的一种图像示意图。请参见图3,在游戏地图中,电子设备当前显示第一图像,第一图像中包括河流、河流中包括流淌的水(图中未示出)、河边停靠的车辆。

在游戏过程中,假设画面向正北方向移动,在初始第二图像中包括河流、河流中流淌的水(图中未示出)、河边停靠的车辆、和一个石头。影响水的流动的第一对象为石头,则可以根据待处理流体的类型(水)、第一对象的类型(石头)、石头在游戏地图的位置,确定外力信息。假设石头在初始第二图像中占据的像素为M*N个像素,则外力信息包括该M*N个像素中各像素对应的外力信息,除该M*N个像素之外的像素的外力信息可以为0。

S203、根据外力信息和第一图像,更新初始第二图像。

可选的,可以外力信息和第一图像,确定目标流体矢量图,根据目标流体矢量图,更新初始第二图像,以使更新后的初始第二图像包含目标流体。

可以通过如下方式确定目标流体矢量图:获取第一图像对应的第一流体矢量图;根据外力信息和第一流体矢量图,确定目标流体矢量图。可选的,可以对外力信息进行分解处理,得到所述第一图像中的像素对应的压力向量,压力向量包括压力方向和压力大小;根据第一图像中的像素对应的压力向量和第一流体矢量图,确定目标流体矢量图。分解处理可以包括:传递、扩散以及散度与压力处理。

目标流体矢量图用于计算目标流体,目标流体为外力信息作用于待处理流体后得到的流体。其中,将外力信息作用于待处理流体可以得到目标流体,待处理流体对应第一流体矢量图,目标流体对应目标流体矢量图。

可选的,可以根据纳维斯托克斯方程进行流体解算,以确定得到目标流体矢量图。

纳维斯托克斯方程可以如下所示:

其中,u为速度场;p为压力场;v为粘滞度;F为外力与障碍;ρ为流体密度。

在上述方程中,F代表流体的外力部分。

需要说明的是,在图4-图5所示的实施例中,对确定目标流体矢量图的过程进行说明,此处不再进行赘述。

可选的,可以对目标流体矢量图进行渲染处理,以得到更新后的初始第二图像,更新后的初始第二图像中包含目标流体。在更新初始第二图像之后,还可以将更新后的初始第二图像作为第一图像的下一帧图像。在电子设备确定得到更新后的初始第二图像之后,电子设备还可以显示更新后的初始第二图像。

本申请实施例提供的图像处理方法,在第一图像中包括待处理流体时,可以根据初始第二图像(第一图像的下一帧待更新图像)中包括的第一对象,确定第一对象对待处理流体产生的外力信息,并根据外力信息和第一图像更新初始第二图像。外力信息可以准确的表示第一对象对流体的流动效果的影响,因此,根据外力信息以及第一图像可以准确的对初始第二图像进行更新处理,提高了虚拟场景绘制的准确性,使得更新后的初始第二图像的画面感更加逼真。

下面,通过具体示例,对图2实施例所示的方法进行说明。

示例性的,在用户通过电子设备进行网络游戏的过程中,假设电子设备当前显示的游戏画面如图1中的页面101所示,即,第一图像为页面101。

电子设备在更新第二图像(页面102所示)的过程如下:电子设备先获取第一图像,并确定第一图像中包括待处理流体(水)。电子设备确定初始第二图像中待显示的对象为一游泳姿态的人物,即,第一对象为一游泳姿态的人物。电子设备根据待处理流体的类型(水)、第一对象的类型(游泳姿态的人物)和第一对象在游戏地图中的位置信息,可以确定得到游泳姿态的人物对水产生的外力信息,该外力信息为待作用于水的外力信息,可以根据该外力信息和第一图像,更新初始第二图像,以得到更新后的初始第二图像,即,页面102所示的图像。由图1可知,第一图像和更新后的初始第二图像中的水的流动不同,其中,第一图像中的水面没有水花,更新后的初始第二图像中的水面具有水花。

在上述过程中,游泳姿态的人物影响水的流动效果,因此,根据游泳姿态的人物的外力信息可以准确的确定更新后的初始第二图像中的水的流动效果。

下面,结合图4,对确定目标流体矢量图的过程进行说明。

图4为本申请实施例提供的一种确定目标流体矢量图的过程示意图。请参见图4,在确定目标流体矢量图的过程中,可以先获取外力信息,依次对外力执行传递处理、扩散处理、N次散度与压力处理、以及确定压力向量的处理,进而得到压力向量,并根据压力向量确定得到目标流体矢量图。在图5所示的实施例中,对该处理过程进行详细说明。

图5为本申请实施例提供的另一种图像处理的示意图。请参见图5,该方法可以包括:

S501、获取第一图像。

其中,所述第一图像中包括待处理流体。

S502、根据初始第二图像中包括的第一对象,确定第一对象对待处理流体产生的外力信息。

其中,所述初始第二图像为所述第一图像的下一帧待更新图像。

需要说明的是,S501-S502的执行过程可以参见S201-S202的执行过程,此处不再进行赘述。

S503、获取外力信息对应的多个第一外力向量。

多个第一外力向量包括第一图像中的像素点对应的第一外力向量。外力向量包括外力大小和外力方向。

可以通过第一预设函数对外力信息进行处理,得到第一外力向量。例如,假设第一预设函数对应的代码可以存储至预设缓存(buffer)中,则可以将外力信息作为参数加载该预设缓存,以使电子设备通过该第一预设函数对外力信息进行处理,以得到多个第一外力向量。

S504、对多个第一外力向量进行传递处理,得到多个第二外力向量。

外力具有传递效果,下面,结合图6,对外力的传递效果作用进行说明。

图6为本申请实施例提供的外力的传递效果进行说明。请参见图6,包括图像601和图像602。

请参见图像601,假设初始时在像素A、像素B、像素C和像素D上具有外力,外力大小和方向如箭头所示,其中,箭头的方向表示外力方向,箭头的长度表示外力大小。该外力在进行传递之后如图像602所示。

请参见图像602,像素A、像素B、像素C和像素D上的外力沿着外力方向进行传递,在传递过程中,外力的大小进行衰减,直至外力无法继续传递。例如,像素A、像素B、像素C和像素D上的外力传递至像素E、像素F、像素G、像素H和像素I,该像素E至像素I上的外力比像素A-像素D上的外力小。外力继续传递至像素J至像素P,像素J至像素P上的外力比像素E至像素I上的外力小。

可以通过第二预设函数对多个第一外力向量进行传递处理,得到多个第二外力向量。本申请实施例对该第二预设函数不作具体限定。

S505、对多个第二外力向量进行扩散处理,得到多个第三外力向量。

外力具有扩散效果,外力的扩散可以沿着多个方向进行扩散。例如,外力处理沿着外力方向进行传递,外力还可以沿其它方向(除外力方向之外的其它方向)进行扩散。

例如,请参见图6,像素A至像素D上的外力在其周围各个方向进行扩散。例如,像素A至像素D上的外力除了在左下方的像素上进行扩散,还向上方的像素、右侧的像素以及右上方的像素上扩散,扩散方式与外力的传递方式类似,此处不再进行赘述。

可以通过第三预设函数对多个第二外力向量进行传递处理,得到多个第三外力向量。本申请实施例对该第三预设函数不作具体限定。

S506、对多个第三外力向量进行N次散度与压力处理,得到多个第四外力向量、压力和散度。

散度是指各个像素上矢量场发散的强弱程度。例如,流体的散度可以描述流体从周围聚合到某一处或者从某一处流散开来的程度。

其中,N为大于1的整数。第四外力向量、压力和散度为进行N次散度与压力处理后得到的。N的数值越大,确定得到的第四外力向量、压力和散度的值越精确。

可以通过第四预设函数对多个第二外力向量进行传递处理,得到第四外力向量、压力和散度。本申请实施例对该第四预设函数不作具体限定。

S507、根据多个第四外力向量、压力和散度,确定第一图像中各像素对应的压力向量。

针对第一图像中的任意一个像素点,根据该像素点对应的第四外力向量、压力和散度,可以确定得到该像素点对应的压力向量。

可以通过第五预设函数对第四外力向量、压力和散度进行处理,得到压力向量。本申请实施例对该第五预设函数不作具体限定。

S508、根据第一图像中各像素对应的压力向量和所述第一流体矢量图,确定目标流体矢量图。

压力向量是指对外力向量经过传递处理、扩散处理、散度与压力处理后的力的向量。还可以理解为:外力向量为初始时施加的力的向量,由于流体具有流动性,将该初始时施加的力作用于流体后流体的变化的真实性较差,对外力向量进行传递处理、扩散处理、散度与压力处理后得到压力向量,将该压力向量作用于流体后流体的变化的真实性较高,因此,根据压力向量确定得到的目标流体矢量图的准确性较高。

S509、根据所述目标流体矢量图,更新初始第二图像,以使更新后的初始第二图像包含所述目标流体。

需要说明的是,S509的执行过程可以参见S203的执行过程,此处不再进行赘述。

在图5所示的实施例中,在第一图像中包括待处理流体时,可以根据初始第二图像(第一图像的下一帧待更新图像)中包括的第一对象,确定第一对象对待处理流体产生的外力信息,对外力信息对应的外力向量进行传递处理、扩散处理、散度与压力处理后得到压力向量,并根据压力向量和第一图像确定目标矢量图像,根据目标矢量图像可以对初始第二图像进行更新,得到更新后的初始第二图像。压力向量为对外力向量进行传递处理、扩散处理、散度与压力处理后得到压力向量,将该压力向量作用于流体后流体的变化的真实性较高,因此,根据压力向量确定得到的目标流体矢量图的准确性较高,因此,确定得到的更新后的初始第二图像的准确性较高,提高了虚拟场景绘制的准确性。

下面,通过具体示例,对上述图像处理方法进行详细说明。

下面,结合图7,对风场处理的过程进行说明。

图7为本申请实施例提供的风场处理的过程示意图。请参见图7,假设待处理流体为风,在进行风场模拟的过程中,可以先给定大气系统风力方向,通过地形模拟大气系统的风场,并确定可交互障碍物与碰撞体(第一对象),并根据通过地形模拟的大气系统的风场和第一对象进行最终的风场模拟。具体过程可以参见上述实施例,此处不再进行赘述。

相比于相关技术,不但可以节省人力,还可以提高风场模拟的效果。相关技术中的风场模拟过程通常为:美术制作流动用的向量图,美工人员在引擎内使用数据函数模拟植被摆动,美工人员进行流动图采样,并进行细节图以及模拟植被的修订,最终得到一个不能交互的比较重复的风场。

下面,结合图8A-图8C,对风场模拟效果进行说明。

图8A为本申请实施例提供的一种风场模拟效果示意图。图8B为本申请实施例提供的另一种风场模拟效果示意图。图8C为本申请实施例提供的再一种风场模拟效果示意图。请参见图8A-图8C,图像中包括植物(树木或者小草),在风场的作用下,植物进行一定程度的摇摆(向某一方向弯曲),植物的摇摆效果真实,通过植物的摇摆可以准确的反映风的方向和大小。通过本申请实施例所示的方法,可以真实的模式风场,提高了风场模拟的准确性。

下面,结合图9,对水体(水)处理的过程进行说明。

图9为本申请实施例提供的水体处理的过程示意图。请参见图9,假设待处理流体为水(或者称为水体),在进行水体模拟时,可以先给定一个水流方向,确定可交互障碍物与碰撞体(第一对象),并根据水流方向和第一对象进行最终的水体模拟。具体过程可以参见上述实施例,此处不再进行赘述。

相比于相关技术,不但可以节省人力,还可以提高水体模拟的效果。相关技术中的水体模拟过程通常为:美工人员制作流体图(flowmap),策划水体的迭代场景,并根据迭代场景中的障碍物调整流体图,美工人员制作出水流的常规图(normalmap),并通过流体图和常规图模拟水体的流动,最终输出一个不可交互的水流。

下面,结合图10A-图10D,对水体模拟效果进行说明。

图10A为本申请实施例提供的一种水体模拟效果示意图。图10B为本申请实施例提供的另一种水体模拟效果示意图。图10C为本申请实施例提供的再一种水体模拟效果示意图。图10D为本申请实施例提供的又一种水体模拟效果示意图。图10E为本申请实施例提供的另一种水体模拟效果示意图。请参见图10A-图10B,可以准确的模拟出水的波澜。请参见图10C-图10D,还可以准确的模拟出水面的泡沫。请参见图10E,还可以准确的模拟出对象(一只兔子)被水遮挡的效果。

通过本申请实施例所示的方法还可以准确的模拟出风与雾之间的交互关系。下面,结合图11A-图11B进行说明。图11A为本申请实施例提供的一种风场与雾的模拟示意图。图11B为本申请实施例提供的另一种风场与雾的模拟示意图。请参见图11A-图11B,图像中的流体包括风与雾,大山可以影响风的流动效果,风的流动效果和大山可以影响雾的流动效果,例如,雾的浓度分布等。通过本申请实施例所示的方法,可以准确的模拟风与雾之间的交互关系。

图12为本申请实施例提供的一种图像处理装置的结构示意图。该图像处理装置10可以设置在电子设备中或者服务器中。请参见图12,该图像处理装置10可以包括:获取模块11、确定模块12和更新模块13,其中,

所述获取模块11用于,获取第一图像,所述第一图像中包括待处理流体;

所述确定模块12用于,根据初始第二图像中包括的第一对象,确定所述第一对象对所述待处理流体产生的外力信息,其中,所述初始第二图像为所述第一图像的下一帧待更新图像;

所述更新模块13用于,根据所述外力信息和所述第一图像,更新所述初始第二图像。

本申请实施例提供的图像处理装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在一种可能的实施方式中,所述更新模块具体用于:

根据所述外力信息和所述第一图像,确定目标流体矢量图,其中,所述目标流体矢量图用于计算所述目标流体,所述目标流体为所述外力信息作用于所述待处理流体后得到的流体;

根据所述目标流体矢量图,更新所述初始第二图像,以使更新后的初始第二图像包含所述目标流体。

图13为本申请实施例提供的另一种图像处理装置的结构示意图。在图12所示实施例的基础上,请参见图13,图像处理装置10还可以包括第二确定模块14,其中,

所述第二确定模块14用于,在所述更新模块13更新所述初始第二图像之后,将更新后的初始第二图像作为所述第一图像的下一帧图像。

在一种可能的实施方式中,所述更新模块13具体用于:

获取所述第一图像对应的第一流体矢量图;

根据所述外力信息和所述第一流体矢量图,确定所述目标流体矢量图。

在一种可能的实施方式中,所述更新模块13具体用于:

对所述外力信息进行分解处理,得到所述第一图像中的像素对应的压力向量,所述压力向量包括压力方向和压力大小;

根据所述第一图像中的像素对应的压力向量和所述第一流体矢量图,确定所述目标流体矢量图。

在一种可能的实施方式中,所述更新模块13具体用于:

获取所述外力信息对应的多个第一外力向量;

对所述多个第一外力向量进行传递处理,得到多个第二外力向量;

对所述多个第二外力向量进行扩散处理,得到多个第三外力向量;

对所述多个第三外力向量进行N次散度与压力处理,得到多个第四外力向量、压力和散度,所述N为大于1的整数;

根据所述多个第四外力向量、所述压力和所述散度,确定所述第一图像中各像素对应的压力向量。

在一种可能的实施方式中,所述第一确定模块12具体用于:

获取所述待处理流体的类型、所述第一对象的类型、以及所述第一对象的位置信息;

根据所述待处理流体的类型、所述第一对象的类型、以及所述第一对象的位置信息,确定所述第一对象对所述待处理流体产生的外力信息。

在一种可能的实施方式中,所述位置信息为所述第一对象在游戏地图中的位置信息;所述第一图像和更新后的初始第二图像为所述游戏地图中的图像。

本申请实施例提供的图像处理装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

图14为本申请实施例提供的一种电子设备的结构示意图。请参见图14,电子设备20可以包括:存储器21、处理器22。示例性地,存储器21、处理器22,各部分之间通过总线23相互连接。

存储器21用于存储程序指令;

处理器22用于执行该存储器所存储的程序指令,用以使得电子设备20执行上述任一所示的图像处理方法。

电子设备还可以包括收发器,收发器可包括:发射器和/或接收器。该发射器还可称为发送器、发射机、发送端口或发送接口等类似描述,接收器还可称为接收器、接收机、接收端口或接收接口等类似描述。

电子设备还可以包括显示器,显示器用于显示第一图像和更新后的初始第二图像。

本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现上述图像处理方法。

本申请实施例还可提供一种计算机程序产品,该计算机程序产品可以由处理器执行,在计算机程序产品被执行时,可实现上述图像处理方法。

实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

在本申请中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

技术分类

06120112421702