CN112598769B - 特效渲染方法、装置、电子设备、计算机可读存储介质 - Google Patents

特效渲染方法、装置、电子设备、计算机可读存储介质 Download PDF

Info

Publication number
CN112598769B
CN112598769B CN202011507174.9A CN202011507174A CN112598769B CN 112598769 B CN112598769 B CN 112598769B CN 202011507174 A CN202011507174 A CN 202011507174A CN 112598769 B CN112598769 B CN 112598769B
Authority
CN
China
Prior art keywords
liquid
container
information
virtual container
target
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.)
Active
Application number
CN202011507174.9A
Other languages
English (en)
Other versions
CN112598769A (zh
Inventor
戴强
王剑
姚鹤斌
马重阳
李雅子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202011507174.9A priority Critical patent/CN112598769B/zh
Publication of CN112598769A publication Critical patent/CN112598769A/zh
Application granted granted Critical
Publication of CN112598769B publication Critical patent/CN112598769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开关于一种特效渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品。所述方法包括:获取对象和虚拟容器,虚拟容器被渲染在对象的目标部位上,虚拟容器中包含液体对象,液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的;获取目标部位的部位运动信息;根据部位运动信息,确定目标部位作用于虚拟容器的容器作用力信息,并基于容器作用力信息得到容器运动信息;根据容器运动信息控制虚拟容器中的液体对象进行运动。根据本公开的方案,通过支持实时对液体对象进行具有高度真实感的物理动画模拟,使得交互过程更加接近真实世界,从而可以使特效渲染方式更加完善。

Description

特效渲染方法、装置、电子设备、计算机可读存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种特效渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
随着计算机技术的发展和智能终端的普及,用户可以通过交互应用与智能终端中的虚拟对象在虚拟场景中进行交互。
相关技术中,与虚拟对象进行交互可通过基于物理的动画模拟实现。基于物理的动画模拟是计算机图形学、数字娱乐(如游戏等)和虚拟现实领域的一项重要内容。近年来,对液体具有较高真实感的实时动画模拟算法和技术取得了一系列进展,但主要集中在PC(Personal Computer,个人计算机)和服务器平台,如使用平滑粒子流体动力学(SPH,Smoothed Particle Hydrodynamics)和物质点法(MPM,Material Point Method,MPM)经典算法对大量粒子进行离线的仿真和模拟等。
但是,随着计算机技术的发展,亟需一种在算力资源较少的终端或边缘计算节点模拟具有高度真实感的特效渲染方法。
发明内容
本公开提供一种特效渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品,以提供一种具有高度真实感的液体动画的特效渲染方式。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种特效渲染方法,包括:
获取对象和虚拟容器,所述虚拟容器被渲染在所述对象的目标部位上,所述虚拟容器中包含液体对象,所述液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的;
获取所述目标部位的部位运动信息;
根据所述部位运动信息,确定所述目标部位作用于所述虚拟容器的容器作用力信息,并基于所述容器作用力信息得到容器运动信息;
根据所述容器运动信息控制所述虚拟容器中的液体对象进行运动。
在其中一个实施例中,所述获取对象和虚拟容器,包括:
采集图像,所述图像中包含所述对象;
获取所述对象上目标部位的部位轮廓信息;
根据所述部位轮廓信息,在所述目标部位上渲染所述虚拟容器,将所述液体对象渲染至所述虚拟容器中。
在其中一个实施例中,所述部位运动信息包括部位运动方向和部位运动距离;所述根据所述部位运动信息,确定所述目标部位作用于所述虚拟容器的容器作用力信息,并基于所述容器作用力信息得到容器运动信息,包括:
根据所述部位运动方向和所述部位运动距离,生成所述目标部位作用于所述虚拟容器的容器作用力信息;
根据所述容器作用力信息确定所述虚拟容器的容器运动方向和容器运动加速度。
在其中一个实施例中,所述根据所述容器运动信息,控制所述虚拟容器中的液体对象进行运动,包括:
根据当前时刻所述虚拟容器的容器运动方向和容器运动加速度,以及预设的所述液体对象的液体物理属性信息,生成所述虚拟容器作用于所述液体对象的液体作用力信息;
根据所述液体作用力信息以及所述液体物理属性信息,得到所述液体对象在下一个时刻的目标位置信息;
根据所述液体对象在所述当前时刻的位置信息以及所述目标位置信息,控制所述液体对象进行运动。
在其中一个实施例中,所述根据所述液体对象在当前时刻的位置信息以及所述目标位置信息,控制所述液体对象进行运动,包括:
按照所述预设的液体粒子外观在所述目标位置信息中渲染所述液体粒子,形成目标液体图像;
将所述当前时刻的液体图像和所述目标液体图像进行重叠显示,得到运动状态下的所述液体对象。
在其中一个实施例中,所述方法还包括:
当获取以下情况中的任一种时,则控制所述液体对象从所述虚拟容器中洒出:
根据所述液体对象的目标位置信息,确定存在液体对象的目标位置位于所述虚拟容器的外部,且为所述虚拟容器的非正上方位置;
根据所述虚拟容器内液体的体积以及所述虚拟容器的容器运动角度,确定存在液体对象在所述虚拟容器外。
在其中一个实施例中,所述方法还包括:
当获取以下情况中的任一种时,则控制所述虚拟容器从所述目标部位上滑落:
所述容器运动角度大于第一阈值;
所述虚拟容器和所述目标部位的距离大于第二阈值;
所述容器运动加速度大于第三阈值。
在其中一个实施例中,所述方法还包括:
根据预先配置的周期性变化的预设容器运动信息控制所述虚拟容器进行运动。
在其中一个实施例中,在所述根据所述容器运动信息控制所述虚拟容器中的液体对象进行运动之后,还包括:
在预设时间后,获取所述虚拟容器中的液体对象的剩余体积;
根据所述液体对象的初始体积和所述剩余体积得到交互评价值;
展示所述交互评价值。
在其中一个实施例中,所述获取所述目标部位的部位运动信息,包括:
采集所述对象的视频数据;
对所述视频数据中每帧图像帧进行所述目标部位的关键点检测或轮廓检测,得到所述部位运动信息。
在其中一个实施例中,所述对象为用户,所述目标部位为所述用户的头部。
根据本公开实施例的第二方面,提供一种特效渲染装置,包括:
第一获取模块,被配置为执行获取对象和虚拟容器,所述虚拟容器被渲染在所述对象的目标部位上,所述虚拟容器中包含液体对象,所述液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的;
第二获取模块,被配置为执行获取所述目标部位的部位运动信息;
容器控制模块,被配置为执行根据所述部位运动信息,确定所述目标部位作用于所述虚拟容器的容器作用力信息,并基于所述容器作用力信息得到容器运动信息;
液体对象控制模块,被配置为执行根据所述容器运动信息控制所述虚拟容器中的液体对象进行运动。
在其中一个实施例中,所述第一获取模块,包括:
第一采集单元,被配置为执行采集图像,所述图像中包含所述对象;
获取单元,被配置为执行获取所述对象上目标部位的部位轮廓信息;
渲染单元,被配置为执行根据所述部位轮廓信息,在所述目标部位上渲染所述虚拟容器,将所述液体对象渲染至所述虚拟容器中。
在其中一个实施例中,所述部位运动信息包括部位运动方向和部位运动距离;所述容器控制模块,包括:
作用力生成单元,被配置为执行根据所述部位运动方向和所述部位运动距离,生成所述目标部位作用于所述虚拟容器的容器作用力信息;
第一运动信息确定单元,被配置为执行根据所述容器作用力信息确定所述虚拟容器的容器运动方向和容器运动加速度。
在其中一个实施例中,所述液体对象控制模块,包括:
第二运动信息确定单元,被配置为执行根据当前时刻所述虚拟容器的容器运动方向和容器运动加速度,以及预设的所述液体对象的液体物理属性信息,生成所述虚拟容器作用于所述液体对象的液体作用力信息;
位置确定单元,被配置为执行根据所述液体作用力信息以及所述液体物理属性信息,得到所述液体对象在下一个时刻的目标位置信息;
液体对象控制单元,被配置为执行根据所述液体对象在当前时刻的位置信息以及所述目标位置信息,控制所述液体对象进行运动。
在其中一个实施例中,所述液体对象控制单元,被配置为执行:按照所述预设的液体粒子外观在所述目标位置信息中渲染所述液体粒子,形成目标液体图像;将所述当前时刻的液体图像和所述目标液体图像进行重叠显示,得到运动状态下的所述液体对象。
在其中一个实施例中,所述液体对象控制模块,还被配置为执行在当获取以下情况中的任一种时,则控制所述液体对象从所述虚拟容器中洒出:
根据所述液体对象的目标位置信息,确定存在液体对象的目标位置位于所述虚拟容器的外部,且为所述虚拟容器的非正上方位置;
根据所述虚拟容器内液体的体积以及所述虚拟容器的容器运动角度,确定存在液体对象在所述虚拟容器外。
在其中一个实施例中,所述容器控制模块,还被配置为执行在获取以下情况中的任一种时,则控制所述虚拟容器从所述目标部位上滑落:
所述容器运动角度大于第一阈值;
所述虚拟容器和所述目标部位的距离大于第二阈值;
所述容器运动加速度大于第三阈值。
在其中一个实施例中,所述容器控制模块,还被配置为执行根据预先配置的周期性变化的预设容器运动信息控制所述虚拟容器进行运动。
在其中一个实施例中,所述装置还包括:
体积获取模块,被配置为执行在预设时间后,获取所述虚拟容器中的液体对象的剩余体积;
评价值生成模块,被配置为执行根据所述液体对象的初始体积和所述剩余体积得到交互评价值;
展示模块,被配置为执行展示所述交互评价值。
在其中一个实施例中,所述第二获取模块,包括:
第二采集单元,被配置为执行采集所述对象的视频数据;
检测单元,被配置为执行对所述视频数据中每帧图像帧进行所述目标部位的关键点检测或轮廓检测,得到所述部位运动信息。
在其中一个实施例中,所述对象为用户,所述目标部位为所述用户的头部。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现如第一方面的任一项实施例中所述的特效渲染方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面的任一项实施例中所述的特效渲染方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的特效渲染方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
将虚拟容器被渲染在对象的目标部位上,虚拟容器中包含液体对象,液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的。通过支持对液体对象进行具有高度真实感的物理动画模拟,可以使对象和虚拟容器的交互过程更加接近真实世界。接着,根据目标部位的部位运动信息确定目标部位作用于虚拟容器的容器作用力信息,并基于容器作用力信息得到容器运动信息;根据容器运动信息控制虚拟容器中的液体对象进行运动。通过提供支持对象和虚拟容器进行交互的功能,可以丰富应用程序的使用功能;通过基于相互之间的作用力信息控制容器和液体对象进行运动,使得交互过程更加接近真实世界,从而可以使对象和虚拟容器进行交互的方式更加完善。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种特效渲染方法的应用环境图。
图2是根据一示例性实施例示出的一种特效渲染方法的流程图。
图3是根据一示例性实施例示出的一种客户端展示的示意图。
图4是根据一示例性实施例示出的一种控制液体对象进行运动步骤的流程图。
图5是根据一示例性实施例示出的一种控制液体对象进行运动步骤的流程图。
图6是根据一示例性实施例示出的一种特效渲染的示意图。
图7是根据一示例性实施例示出的一种特效渲染方法的流程图。
图8是根据一示例性实施例示出的一种特效渲染装置的框图。
图9是根据一示例性实施例示出的一种电子设备的内部结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所提供的特效渲染方法,可以应用于如图1所示的应用环境中。其中,终端110可以是但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。终端110中包含支持特效渲染的应用程序。应用程序可以为社交类应用程序、短视频类应用程序、游戏类应用程序等。应用程序可以提供特效渲染的场景,用户可通过控制场景中对象的运动与虚拟容器进行交互,尽可能地确保虚拟容器能够在对象的目标部位上保持平衡,同时确保虚拟容器中的液体对象能够不从虚拟容器中洒出,从而实现特效渲染。进一步地,本公开所提供的特效渲染方法可以在离线或者在线状态下实施。
图2是根据一示例性实施例示出的一种特效渲染方法的流程图,如图2所示,特效渲染方法用于终端中,包括以下步骤。
在步骤S210中,获取对象和虚拟容器,虚拟容器被渲染在对象的目标部位上,虚拟容器中包含液体对象,液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的。
其中,对象可以是用户通过终端进行控制的角色,可以表现为人物、道具、植物、动物等形象。对象不限于是预先配置的虚拟形象、根据用户真实人像进行识别转换得到的形象。在对象和虚拟容器交互的过程中,用户可以通过转动终端、触发交互页面、按动终端的操作按钮、动作捕捉等方式控制对象进行运动。对象上包含多个部位,目标部位可以是预先配置的部位,也可以是用户自定义的部位,使得在未经任何运动的状态下,虚拟容器能够在目标部位上保持平衡。示例性地,对象是人物,人物包含头部、四肢、躯干等多个部位。目标部位则可以是头部、肩部、手部等任意部位。
虚拟容器可以是容纳液体对象的装置,可以表现为罐、桶、壶、瓶子、碗、盆、鼎、锅等形象。虚拟容器可以呈现为半透明状,从而使用户能够观察到虚拟容器中液体对象的运动状态。
液体对象可以是使用预设的液体粒子外观对液体粒子进行连续介质(流体、软体等)仿真得到的。液体粒子被动态渲染在虚拟容器中,可以表现为水、浆体等形态。液体对象可以在对象以及虚拟容器的运动情况下,受到对象以及虚拟容器的运动力以及虚拟容器壁施加于液体对象的作用力等影响进行相应地运动。
在一些可能性实施例中,注入至虚拟容器中的还可以是除液体对象外的任意可流动对象,例如沙子、球状物等。
在一些可能性实施例中,还可以将液体对象更换为软体对象,例如,果冻。在这种情况下,可以不使用虚拟容器,直接将软体对象渲染在对象的目标部位上,使对象能够直接与软体对象进行交互。
具体地,客户端可以响应于交互开始指令,获取对象和虚拟容器。在交互场景中,将虚拟容器动态渲染至对象的目标部位上,并以液体注入等方式向虚拟容器中动态渲染一定量的液体对象。交互开始指令可以是用户通过触发开始等类似按键得到的。
进一步地,交互场景可以是对象和虚拟容器进行交互的虚拟环境,交互场景中可以包括建筑、机械、道具、树木、天空、道路等元素。交互场景可以是预先配置的虚拟场景,例如雪山场景、沙漠场景、大海场景、城堡场景等;也可以根据用户所在的真实环境进行识别得到。用户可以依需求设置自己喜欢的场景。场景的展现方式可以是静态的,也可以是动态的,不限于采用2D(2-DIMENSIONA,二维)或者3D(3-DIMENSIONA,三维)的形式展现。
在步骤S220中,获取目标部位的部位运动信息。
其中,部位运动信息不限于包括部位运动距离、部位运动方向、部位运动速度等信息。具体地,客户端可以通过感应装置、图像采集装置、交互页面中的预设按钮、预设操作手势等方式捕捉用户实施的运动信息。根据用户实施的运动信息得到部位运动信息。例如,终端将内置的陀螺仪输出的旋转角度作为部位运动信息;或者,通过图像采集装置实时采集用户的视频数据,将视频数据中用户的运动信息作为部位运动信息。
在一些可能性实施例中,可以预先配置虚拟容器的主动运动机制。具体实现中,可以预先配置周期性变化的预设容器运动信息。客户端可以随着时间的推移从周期性变化的预设容器运动信息中获取预设容器运动信息。根据所获取的预设容器运动信息控制虚拟容器进行运动。通过增加虚拟容器的主动运动机制,可以使对象和虚拟容器在交替作用下互动功能更为全面,有助于提高用户的停留时长,提高用户的留存率。其中,周期性变化的初始时刻可以为交互开始时刻。
在步骤S230中,根据部位运动信息,确定目标部位作用于虚拟容器的容器作用力信息,并基于容器作用力信息得到容器运动信息。
其中,容器运动信息不限于包括容器运动方向、容器运动加速度等信息。
具体地,目标部位在运动过程中与虚拟容器接触的瞬间,客户端获取接触瞬间目标部位的部位运动信息。根据部位运动信息计算得到目标部位作用于虚拟容器的容器作用力信息。客户端根据所得到的容器作用力信息和预先配置的虚拟容器的容器物理属性信息等,计算得到虚拟容器的容器运动信息。进而根据该容器运动信息控制虚拟容器进行运动。其中,容器物理属性信息不限于包括容器的重量、形状、体积等信息。
在步骤S240中,根据容器运动信息控制虚拟容器中的液体对象进行运动。
其中,液体对象的运动不限于是晃动、流动、飞溅、下落等,视目标部位和虚拟容器的运动情况而定。具体地,随着虚拟容器的运动,虚拟容器内壁对液体对象会产生一定的作用力信息。客户端实时获取容器运动信息,根据容器运动信息计算得到虚拟容器内壁作用于对液体对象的液体作用力信息。客户端根据所得到的液体作用力信息和预先配置的液体对象的液体物理属性信息,计算得到液体对象进行运动的液体运动信息。进而根据该液体运动信息控制液体对象进行运动。其中,液体物理属性信息不限于包括液体对象的重量、密度、物质弹性系数(如杨氏模量,泊松比)等。
相应地,为了控制虚拟容器在运动过程中不会从目标部位上滑落,同时控制虚拟容器中的液体对象能够尽可能地留存在虚拟容器中,用户可以根据观察到的虚拟容器的运动,相应地继续控制目标部位进行运动。示例性地,用户可以通过转动终端、触发交互页面、按动终端的操作按钮、动作捕捉等方式向客户端输入指示目标部位进行运动的部位运动信息。客户端则根据所获取的部位运动信息,继续控制目标部位进行运动,例如,控制目标部位缓慢或者快速平移、旋转、向上或向下运动,直至达到交互停止条件。
上述特效渲染方法中,将虚拟容器被渲染在对象的目标部位上,虚拟容器中包含液体对象,液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的。通过支持实时对液体对象进行具有高度真实感的物理动画模拟,可以使对象和虚拟容器的交互过程更加接近真实世界。接着,根据目标部位的部位运动信息确定目标部位作用于虚拟容器的容器作用力信息,并基于容器作用力信息得到容器运动信息;根据容器运动信息控制虚拟容器中的液体对象进行运动。通过提供支持对象和虚拟容器进行交互的功能,可以丰富应用程序的使用功能;通过基于相互之间的作用力信息控制容器和液体对象进行运动,使得交互过程更加接近真实世界,从而可以使对象和虚拟容器进行交互的方式更加完善。
在一示例性实施例中,对交互场景的一种初始化过程进行说明。步骤S210,获取对象和虚拟容器,包括:采集图像,图像中包含对象;获取对象上目标部位的部位轮廓信息;根据部位轮廓信息,在目标部位上渲染虚拟容器,将液体对象渲染至虚拟容器中。
其中,对象上的目标部位可以是预先配置的,例如,预先配置对象为人物,人物的头部为目标部位;也可以是用户实时选择的,例如,用户通过客户端展示的部位列表进行选择,或者通过点击对象上的相应部位进行选择。
具体地,客户端可以在接收到交互开始指令后,开启图像采集装置。图像采集装置可以是终端的内置摄像头、与终端相连的外部摄像头等。客户端通过图像采集装置实时采集对象的图像。对对象上的目标部位进行轮廓检测,得到目标部位的部位轮廓信息。部位轮廓信息可以是部位轮廓在页面中的位置信息。轮廓检测可以基于边缘检测算子、深度学习模型等方式实现。客户端根据所得到的部位轮廓信息,在目标部位上渲染虚拟容器,并将液体对象以自然流动的状态渲染至虚拟容器中。
示例性地,对象为用户;目标部位为用户头部;虚拟容器为水桶;液体对象为水。如图3所示,客户端显示实时采集用户人像以及用户所在的环境图像。将水桶渲染在用户头部上方,并在水桶中注入一定量的水。
本实施例中,通过对目标部位进行轮廓检测,根据目标部位的部位轮廓信息确定渲染虚拟容器的位置,一方面,可以将虚拟容器准确渲染在目标部位上;另一方面,可以使用户能够自由地定义目标部位,从而可以使交互功能更加全面。
在一些可能性实施例中,步骤S220,获取目标部位的部位运动信息,包括:采集对象的视频数据;对视频数据中的每帧图像帧进行目标部位的关键点检测或轮廓检测,得到部位运动信息。
具体地,在对象与虚拟容器交互的过程中,图像采集装置实时采集用户根据虚拟容器的运动进行相应运动的视频数据。对于视频数据中的每帧图像帧,通过预训练的深度学习模型,或者边缘检测算法等对每帧图像帧进行检测,得到部位运动信息。进而通过部位运动信息驱动交互场景中的目标部位进行运动。
本实施例中,通过将真实世界的对象和环境作为交互对象和交互场景,使得与虚拟容器的交互过程能够更加接近真实世界场景和真实世界行为,从而可以提高互动的真实性,有助于延长用户在交互中的停留时间。
在一示例性实施例中,部位运动信息包括部位运动方向和部位运动距离;在步骤S230中,根据部位运动信息,确定目标部位作用于虚拟容器的容器作用力信息,并基于容器作用力信息得到容器运动信息,包括:根据部位运动方向和部位运动距离,生成目标部位作用于虚拟容器的容器作用力信息;根据容器作用力信息确定虚拟容器的容器运动方向和容器运动加速度。
其中,部位运动距离可以是目标部位在单位时间内的运动距离。具体地,对象和虚拟容器的相互作用模拟真实世界物体间的相互作用。预先配置对象的对象物理属性信息和虚拟容器的容器物理属性信息等。在目标部位接触虚拟容器的瞬间,获取目标部位的部位运动方向和部位运动距离,并可以结合对象物理属性信息,计算得到目标部位作用于虚拟容器的容器作用力信息。接着,根据容器作用力信息以及容器物理属性信息,计算得到容器运动方向和容器运动加速度。根据所得到的容器运动方向和容器运动加速度控制虚拟容器进行运动。
本实施例中,通过根据真实世界的物理规则模拟对象和虚拟容器之间的交互过程,使得对象和虚拟容器的交互过程更加接近于真实世界行为,从而可以提高互动的真实性。
在一示例性实施例中,如图4所示,在步骤S240中,根据容器运动信息控制虚拟容器中的液体对象进行运动,可以通过以下步骤实现:
在步骤S410中,根据当前时刻虚拟容器的容器运动方向和容器运动加速度,以及预设的液体对象的液体物理属性信息,生成虚拟容器作用于液体对象的液体作用力信息。
具体地,虚拟容器和液体对象的相互作用模拟真实世界物体间的相互作用。预先配置液体对象的液体物理属性信息,在虚拟容器运动的过程中,实时获取当前时刻虚拟容器的容器运动方向和容器运动加速度,并可结合容器物理属性信息,计算得到虚拟容器作用于液体对象的液体作用力信息。
在步骤S420中,根据液体作用力信息以及液体物理属性信息,得到液体对象的目标位置信息。
在步骤S430中,根据液体对象在当前时刻的位置信息以及目标位置信息,控制所述液体对象进行运动。
其中,液体对象的目标位置信息是指液体对象在当前时刻的下一时刻的位置信息。
具体地,在得到液体作用力信息后,根据液体作用力信息以及液体物理属性信息,计算得到液体进行运动的方向和速度等信息。根据所得到的液体进行运动的方向和速度等信息确定液体对象的目标位置信息,并控制液体对象从当前时刻的位置移动至目标位置处。
进一步地,为了更加真实地呈现液体的运动状态,可以采用基于物理的动画模拟算法得到液体对象的目标位置信息,实现对液体对象的运动进行仿真和模拟。基于物理的动画模拟算法不限于采用平滑粒子流体动力学(SPH)、物质点法(MPM)、移动最小二乘物质点法(MLS-MPM,Moving Least Square-Material Point Method)。其中:
SPH是近20多年来逐步发展起来的一种无网格方法。该方法的基本思想是将连续的流体(或固体)用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,求得整个系统的力学行为。
MPM是一种使用粒子进行连续介质(流体、软体等)仿真的方法,将某个物体离散成若干个质点,每个质点内含该质点的相应物理等信息,例如位置信息、能量、质量等,用以跟踪物体动态,并最终在欧拉网格中进行计算。
MLS-MPM是对MPM(Material Point Method)方法的改进。用移动最小二乘法,将APIC(The Affine Particle-In-Cell Method,胞内仿射粒子法)和动量方程弱形式一致的力计算统一起来,实现了新的应力散度离散化,使MPM的运行速度快了两倍,还成功模拟了MPM此前并不支持的各种新现象,包括材料切割、动态开放边界和刚性体的双向耦合。
本实施例中,通过根据真实世界的物理规则模拟虚拟容器和液体对象之间的交互过程,使得虚拟容器和液体对象的交互过程更加接近于真实世界行为,使虚拟容器和液体对象的运动特效更加合理。
在一示例性实施例中,液体对象由若干液体粒子构成;在步骤S420中,根据液体作用力信息以及液体物理属性信息,得到液体对象的目标位置信息,包括:通过预设的动画模拟算法,根据每个液体粒子的液体作用力信息以及每个液体粒子的液体物理属性信息,得到每个液体粒子的目标位置信息。
具体地,预设的动画模拟算法采用基于粒子进行仿真的MPM或者MLS-MPM算法。为了提高终端的运行速度,可以采用MLS-MPM算法。MLS-MPM算法与MPM流程基本一致,两个方法中欧拉网格的插值基函数是B样条插值函数;传统MPM方法的梯度算符是B样条形状函数,而MLS-MPM方法的梯度算符是MLS(Moving Least Square)形状函数。如图5所示,对MLS-MPM的工作原理进行说明。
在步骤S510中,初始化网格和液体粒子。
具体地,将虚拟容器内部及外部周边的仿真空间剖分为多个网格。配置液体物理属性信息(不限于包括液体粒子的数量、密度、质量,以及物质的弹性参数)等。
在步骤S520中,获取每个液体粒子的液体作用力信息以及每个液体粒子的物理属性信息。
在步骤S530中,液体粒子属性到网格属性转换(Particle to grid,简称P2G)。即,将液体粒子的质量和动量转移到网格上。
具体地,为了实现在欧拉网格中对速度场等物理量的计算,需要将液体粒子的质量、动量以及液体作用力信息等数据传递到液体粒子当前所处的及其相邻的几个网格中。根据液体粒子当前的位置,按照一定的规则将粒子的质量和动量对其当前所处的网格和周围相邻的几个网格的贡献,计算得到网格质量和动量,并将网格的质量和动量存储在网格对应的数据结构中。一定的规则可以采用APIC和PolyPIC(Polymorphic-Particle-in-CellMethod,细胞内多态粒子法)。该步骤的输入是液体粒子的位置、质量、动量和受力情况等物理属性,输出为网格的质量和动量。具体可以参照以下公式得到网格的质量和动量:
第i个网格对应的质量和动量信息根据以下公式进行计算:
其中,mi表示第i个网格的质量;mivi表示第i个网格的动量;vi表示第i个网格的初始体积;wip表示第p个粒子的网格对第i个网格的贡献,通常通过B样条函数插值得到该数值;xi表示第i网格的初始位置;B是一个矩阵,与质量、动量等物理量类似,是一个粒子的属性,这个属性的计算方法为:
D用来保存仿射运动信息的矩阵:
在步骤S540中,更新网格动量。
具体地,由于欧拉视角下更容易实现离散化,因此在该步骤中使用半隐式欧拉法或隐式欧拉法,根据步骤S530中输出的网格质量和动量,以及网格的受力情况更新经过一个仿真时间步长(Δt)后网格中的动量。更新后的动量将被用于在之后的步骤中计算得到液体粒子的运动速度以及进行对边界和碰撞等情况的处理。仿真时间步长数量级通常为1e-4秒。更新的频率越大,虚拟容器中水流的速度越快。
在步骤S550中,网格属性到粒子属性转换(Grid to particle,简称G2P)。
具体地,该步骤为步骤S530的相反操作。由于在拉格朗日视角下更容实现液体粒子平流的计算,因此在更新网格动量之后,按照一定的规则根据步骤S530输出的网格质量和动量,将新的速度信息由网格传递到网格内部及周围的液体粒子,输出液体粒子的速度。具体可以参照以下公式得到液体粒子的速度:
在步骤S560中,更新形变梯度(deformation gradient),定义如以下公式:
/>
其中,X表示位置矢量;φ(X,t)为形变映射,表示从材料空间到世界空间的变换。事实上,在MPM中,形变梯度的更新根据以下公式进行计算:
继续参考以下公式(弹性本构模型),根据形变梯度可以计算得到材料的压力和应力信息:
Neo-Hookean本构模型:
P(F)=2μ(F-F-T)+λlog(J)F-T
Fixed Corotated本构模型:
其中,μ和λ分别为杨氏模量(Young’s Modulus)和泊松比(Poisson’s Ratio),是常用的弹性参数。通常情况下,其数值越大,代表材料硬度越高。
该步骤输入是液体粒子当前所处和相邻的网格的动量信息,输出是下一个时刻的液体粒子的形变梯度。
在步骤S570中,计算粒子塑性(particle plasticity)等其他可能用到的物理属性。
具体地,这些物理属性将在下一时刻被用来计算液体粒子的受力情况,以实现对各种弹性、弹塑性材料的模拟,例如:雪、果冻等材料。该步骤的输入是液体粒子当前所处和相邻的网格的动量信息以及杨氏模量、泊松比等描述材料弹性的参数,输出是液体粒子下一时刻的塑形、弹性参数等物理属性。
在步骤S580中,粒子平流(Particle advection)。即根据液体粒子的速度,计算液体粒子的目标位置信息;在拉格朗日视角下根据液体粒子的速度,更新液体粒子的目标位置信息。该步骤的输入是液体粒子当前的位置、步骤S530计算得到的网格质量和动量以及步骤S550得到的液体粒子速度,输出是下一时刻的液体粒子位置。
本实施例中,通过借助MLS-MPM算法模拟液体对象的运动,可以实现各种符合物理规则、视觉效果较为真实的液体运动特效,且还可以加快设备的运行速度。
在一示例性实施例中,预设的动画模拟算法运行在移动终端的图形处理器GPU中。
其中,GPU(Graphics Processing Unit),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。GPU提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算。并行计算与串行计算是相对的概念,它是一种一次可执行多个指令的算法,可以提高计算速度,以及通过扩大问题求解规模,解决大型而复杂的计算问题。
具体地,在得到液体粒子的液体作用力信息后,GPU运行预先部署的动画模拟算法。通过动画模拟算法得到液体粒子的目标位置信息。
进一步地,在得到液体粒子的目标位置信息后,利用GPU上的实时渲染程序等进行计算,按照预设的液体粒子外观在目标位置中渲染每个液体粒子,得到目标位置上的目标液体对象。将目标液体对象和当前时刻的液体图像进行重叠显示,显示出具有合理液体运动形态的效果。其中,液体图像是指液体粒子在运动前的图像。图6示例性示出了两种通过MLS-MPM算法模拟液体运动的示意图。
本实施例中,通过GPU运行动画模拟算法,可以支持高精度物理模拟算法在终端上的实时模拟运算,从而能够得到较为真实的对象、虚拟容器和液体对象的互动特效。
在一示例性实施例中,液体对象还有可能呈现从虚拟容器中洒出的状态。当获取以下情况中的任一种时,则控制相应的液体对象从虚拟容器中洒出:
(1)液体对象的目标位置可能在虚拟容器内,也可能在虚拟容器外。若客户端在得到液体对象的目标位置信息后,将目标位置信息与虚拟容器的位置信息进行比较,得到存在液体对象的目标位置位于虚拟容器的外部,且为虚拟容器的非正上方位置,那么客户端可以对这部分液体对象呈现洒出且自由落体式下落的效果。
(2)若客户端根据当前时刻虚拟容器内液体对象的体积,以及容器的容器运动角度计算得到存在液体对象在虚拟容器外,那么可以对这部分液体对象呈现洒出且自由落体式下落的效果。
本实施例中,通过液体对象洒出的特效表现,使得液体对象的运动状态更加全面。
在一示例性实施例中,除了在对象的目标部位上晃动,虚拟容器的运动状态还包括从目标部位上滑落。当获取以下情况中的任一种时,则控制虚拟容器从目标部位上滑落:
(1)容器运动角度大于第一阈值。
具体地,当虚拟容器的容器运动角度大于第一阈值,可以判断无法通过目标部位的运动使虚拟容器再在目标部位上保持平衡,客户端可以展示虚拟容器以自由落体式从目标部位上滑落,并展示仍存在于虚拟容器中的液体对象以自由落体式从虚拟容器中流出。
(2)获取虚拟容器和目标部位的距离大于第二阈值。
具体地,当虚拟容器和目标部位的距离大于第二阈值,可以判断目标部位与虚拟容器的距离过大,而使虚拟容器无法呈现在目标部位上,客户端可以展示虚拟容器以自由落体式滑落,并展示仍存在于虚拟容器中的液体对象以自由落体式从虚拟容器中流出。
(3)容器运动加速度大于第三阈值。
具体地,当容器运动加速度大于第三阈值,可以判断对象作用于虚拟容器上的容器作用力过大,虚拟容器无法再在目标部位上保持平衡,客户端可以展示虚拟容器以自由落体式从目标部位上滑落,并展示仍存在于虚拟容器中的液体对象以自由落体式从虚拟容器中流出。
其中,第一阈值、第二阈值和第三阈值可以参照物理规则,并结合多次试验得到。
进一步地,还可以参照物理规则配置更多的滑落条件,使客户端在检测到满足滑落条件时控制虚拟容器滑落。
本实施例中,通过增加滑落特效表现,使得对象和虚拟容器的交互功能更加全面。
在一示例性实施例中,在步骤S240,根据容器运动信息控制虚拟容器中的液体对象进行运动之后,还包括:在预设时间后,获取虚拟容器中的液体对象的剩余体积;根据液体对象的初始体积和剩余体积得到交互评价值;在场景中展示交互评价值。
其中,初始体积为初始化时注入至虚拟容器中的液体对象的体积。预先配置交互停止条件。交互停止条件不限于是虚拟容器从目标部位上滑落;虚拟容器中的液体对象全部洒出;虚拟容器在目标部位上且虚拟容器中存在液体对象,但是交互时长已到达预设时长。在本实施例中,交互停止条件可以配置为交互时长已到达预设时长。
具体地,当客户端获取虚拟容器在目标部位上且虚拟容器中存在液体对象,但是交互时长已到达预设时间长,则客户端可以停止交互,并向用户展示停止提示信息。客户端获取虚拟容器中液体对象的剩余体积。根据液体对象的初始体积和剩余体积计算得到交互评价值。例如,计算剩余体积和初始体积的比值,作为交互评价值。客户端展示所得到的交互评价值。
进一步地,客户端还可以通过网络与服务器进行交互。从服务器中获取其他客户端对应的交互评价值。将所获取的所有交互评价值按照数值大小进行排序。可以理解的是,交互评价值越高,表示对象在交互过程中的表现越好。客户端展示排序后的交互评价值,或者展示预设数量的值最高的交互评价值,以及与每个交互评价值对应的排名、客户端信息等。客户端信息不限于包括账号、名称、头像等。
本实施例中,通过向用户展示对象的交互评价值,使用户能够通过数值直观地了解在交互过程中的表现;通过向用户展示排名信息,使用户能够通过数值直观地了解自己的排位情况。
图7是根据一示例性实施例示出的一种具体的特效渲染方法的流程图。特效渲染方法应用于终端中。在本实施例中,终端可以为用户手持的移动设备图像采集装置可以为移动设备的前置的前置摄像头;对象可以为用户人像;目标部位可以为用户头部;虚拟容器可以为水桶;液体对象可以为水。对象和虚拟容器的交互可以表示为水桶挑战游戏。如图7所示,特效渲染方法包括过以下步骤。
在步骤S702中,响应于用户触发的游戏开始指令,启动移动设备的前置摄像头。
在步骤S704中,通过前置摄像头采集图像,图像中包含用户人像和用户所在的环境图像。
在步骤S706中,对图像进行头部的轮廓检测,得到头部轮廓信息,根据头部轮廓信息,在用户头部上方渲染水桶,并将水渲染至水桶中,完成游戏场景初始化。
在步骤S708中,初始化网格和液体粒子。
具体地,将水桶内部及外部周边的仿真空间剖分为多个网格。预先配置的水物理属性信息(不限于包括水粒子的数量、密度、质量,以及物质的弹性参数)等参数。
在步骤S710中,获取预设的周期性变化的预设水桶运动信息,并根据预设水桶运动信息控制水桶进行运动。
具体地,可以预先配置周期性变化的预设水桶运动信息。在初始化完成后,获取当前时刻的预设水桶运动信息。根据所获取的运动信息控制水桶进行运动。或者,还可以配置随机运动机制,控制水桶进行随机运动。
在步骤S712中,通过前置摄像头实时采集用户的视频数据,并对视频数据中的每帧图像帧进行头部关键点检测或轮廓检测,得到用户的头部关键点信息或者头部轮廓信息。
在步骤S714中,通过用户的头部关键点信息或者头部轮廓信息驱动用户人像,控制用户头部进行运动。
在步骤S716中,获取用户的头部运动信息。头部运动信息包括头部运动方向和头部运动距离。
在步骤S718中,根据头部运动信息生成用户头部作用于水桶的水桶作用力信息,并根据水桶作用力信息控制水桶进行运动。
具体地,用户头部和水桶的相互作用模拟真实世界物体间的相互作用。预先配置用户的用户物理属性信息、水桶物理属性信息。在用户头部接触水桶的瞬间,获取用户头部的头部运动方向和头部运动距离,并结合用户物理属性信息,计算得到用户作用于水桶的水桶作用力信息。进而,根据水桶作用力信息以及水桶物理属性信息,计算得到水桶进行运动的水桶运动方向和水桶运动加速度。根据所得到的水桶运动方向和水桶运动加速度控制水桶进行运动。
进一步地,水桶除了在用户头部上运动,还可以从用户头部上滑落。当获取以下情况中的任一种时,则可以控制水桶从用户头部上滑落,并结束本次游戏:(1)水桶晃动角度大于第一阈值;(2)水桶和用户头部的距离大于第二阈值;(3)水桶运动加速度大于第三阈值。
在步骤S720中,在水桶运动过程中,实时根据当前时刻水桶运动方向、水桶运动加速度,以及预设的水物理属性信息,生成水桶作用于水的水作用力信息。
在步骤S722中,通过图形处理器GPU运行预设的MLS-MPM算法,根据每个水粒子的水作用力信息以及每个水粒子的水物理属性信息,得到每个水粒子在下一个时刻的目标位置信息。
在步骤S724中,按照预设的水粒子外观在目标位置信息中渲染每个水粒子,形成目标水图像,将当前时刻的水图像和目标水图像进行重叠显示,得到运动状态下的水。水的运动状态不限于是晃动、流动、飞溅、下落等。
在步骤S726中,在预设时间后,获取仍存在于水桶中的水的目标体积,并根据水的初始体积和目标体积得到计算得到游戏分数,并在游戏页面中展示游戏分数。初始体积为水还未经任何运动的体积。
进一步地,客户端还可以从服务器中获取其他客户端对应的游戏分数,并将所获取的所有游戏分数按照数值大小进行排序,展示排序后的游戏分数和名次。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图8是根据一示例性实施例示出的一种特效渲染装置800框图。参照图8,该装置包括第一获取模块802、第二获取模块804、容器控制模块806和液体对象控制模块808。
第一获取模块802,被配置为执行获取对象和虚拟容器,虚拟容器被渲染在对象的目标部位上,虚拟容器中包含液体对象,液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的;第二获取模块804,被配置为执行获取目标部位的部位运动信息;容器控制模块806,被配置为执行根据部位运动信息,确定目标部位作用于虚拟容器的容器作用力信息,并基于容器作用力信息得到容器运动信息;液体对象控制模块808,被配置为执行根据容器运动信息控制虚拟容器中的液体对象进行运动。
在一示例性实施例中,第一获取模块802,包括:第一采集单元,被配置为执行采集图像,图像中包含对象;获取单元,被配置为执行获取对象上目标部位的部位轮廓信息;渲染单元,被配置为执行根据部位轮廓信息,在目标部位上渲染虚拟容器,将液体对象渲染至虚拟容器中。
在一示例性实施例中,部位运动信息包括部位运动方向和部位运动距离;容器控制模块806,包括:作用力生成单元,被配置为执行根据部位运动方向和部位运动距离,生成目标部位作用于虚拟容器的容器作用力信息;第一运动信息确定单元,被配置为执行根据容器作用力信息确定虚拟容器的容器运动方向和容器运动加速度。
在一示例性实施例中,液体对象控制模块808,包括:第二运动信息确定单元,被配置为执行根据当前时刻虚拟容器的容器运动方向和容器运动加速度,以及预设的液体对象的液体物理属性信息,生成虚拟容器作用于液体对象的液体作用力信息;位置确定单元,被配置为执行根据液体作用力信息以及液体物理属性信息,得到液体对象在下一个时刻的目标位置信息;液体对象控制单元,被配置为执行根据液体对象在当前时刻的位置信息以及目标位置信息,控制液体对象进行运动。
在一示例性实施例中,液体对象控制单元,被配置为执行:按照预设的液体粒子外观在目标位置信息中渲染液体粒子,形成目标液体图像;将当前时刻的液体图像和目标液体图像进行重叠显示,得到运动状态下的液体对象。
在一示例性实施例中,容器控制模块806,还被配置为执行在获取以下情况中的任一种时,则控制虚拟容器从目标部位上滑落:容器运动角度大于第一阈值;虚拟容器和目标部位的距离大于第二阈值;容器运动加速度大于第三阈值。
在一示例性实施例中,装置800还包括:第三获取模块,被配置为执行周期性获取预先配置的预设容器运动信息;容器控制模块,还被配置为执行根据预设容器运动信息控制虚拟容器进行运动。
在一示例性实施例中,装置800还包括:体积获取模块,被配置为执行在预设时间后,获取虚拟容器中的液体对象的剩余体积;评价值生成模块,被配置为执行根据液体对象的初始体积和剩余体积得到交互评价值;展示模块,被配置为执行展示交互评价值。
在一示例性实施例中,第二获取模块804,包括:第二采集单元,被配置为执行采集对象的视频数据;检测单元,被配置为执行对视频数据中每帧图像帧进行目标部位的关键点检测或轮廓检测,得到部位运动信息。
在一示例性实施例中,对象为用户,目标部位为用户的头部。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种用于特效渲染的电子设备900的框图。例如,电子设备900可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
参照图9,电子设备900可以包括以下一个或多个组件:处理组件902、存储器904、电源组件906、多媒体组件908、音频组件910、输入/输出(I/O)的接口912、传感器组件914以及通信组件916。
处理组件902通常控制电子设备900的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理组件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在电子设备900的操作。这些数据的示例包括用于在电子设备900上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘。
电源组件906为电子设备900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为电子设备900生成、管理和分配电力相关联的组件。
多媒体组件908包括在所述电子设备900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当电子设备900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(MIC),当电子设备900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为电子设备900提供各个方面的状态评估。例如,传感器组件914可以检测到电子设备900的打开/关闭状态,组件的相对定位,例如所述组件为电子设备900的显示器和小键盘,传感器组件914还可以检测电子设备900或电子设备900一个组件的位置改变,用户与电子设备900接触的存在或不存在,电子设备900方位或加速/减速和电子设备900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件916被配置为便于电子设备900和其他设备之间有线或无线方式的通信。电子设备900可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件916还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由电子设备900的处理器920执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算程序产品,包括计算机程序,计算机程序被处理器执行时实现上述任一项实施例所述的特效渲染方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (24)

1.一种特效渲染方法,其特征在于,包括:
获取对象和虚拟容器,所述虚拟容器被渲染在所述对象的目标部位上,所述虚拟容器中包含液体对象,所述液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的;
获取所述目标部位的部位运动信息;
根据所述部位运动信息,确定所述目标部位作用于所述虚拟容器的容器作用力信息,并基于所述容器作用力信息和预先配置的所述虚拟容器的容器物理属性信息,得到容器运动信息;
根据所述容器运动信息得到所述虚拟容器作用于所述虚拟容器中液体对象的液体作用力信息,根据所述液体作用力信息和预先配置的所述液体对象的液体物理属性信息,得到所述液体对象进行运动的液体运动信息,根据所述液体运动信息控制所述虚拟容器中的液体对象进行运动。
2.根据权利要求1所述的特效渲染方法,其特征在于,所述获取对象和虚拟容器,包括:
采集图像,所述图像中包含所述对象;
获取所述对象上目标部位的部位轮廓信息;
根据所述部位轮廓信息,在所述目标部位上渲染所述虚拟容器,将所述液体对象渲染至所述虚拟容器中。
3.根据权利要求1所述的特效渲染方法,其特征在于,所述部位运动信息包括部位运动方向和部位运动距离;
所述根据所述部位运动信息,确定所述目标部位作用于所述虚拟容器的容器作用力信息,并基于所述容器作用力信息和预先配置的所述虚拟容器的容器物理属性信息,得到容器运动信息,包括:
根据所述部位运动方向和所述部位运动距离,生成所述目标部位作用于所述虚拟容器的容器作用力信息;
根据所述容器作用力信息和预先配置的所述虚拟容器的容器物理属性信息,确定所述虚拟容器的容器运动方向和容器运动加速度。
4.根据权利要求3所述的特效渲染方法,其特征在于,所述根据所述容器运动信息得到所述虚拟容器作用于所述虚拟容器中液体对象的液体作用力信息,根据所述液体作用力信息和预先配置的所述液体对象的液体物理属性信息,得到所述液体对象进行运动的液体运动信息,根据所述液体运动信息控制所述虚拟容器中的液体对象进行运动,包括:
根据当前时刻所述虚拟容器的容器运动方向和容器运动加速度,以及预设的所述液体对象的液体物理属性信息,生成所述虚拟容器作用于所述液体对象的液体作用力信息;
根据所述液体作用力信息以及所述液体物理属性信息,得到所述液体对象在下一个时刻的目标位置信息;
根据所述液体对象在所述当前时刻的位置信息以及所述目标位置信息,控制所述液体对象进行运动。
5.根据权利要求4所述的特效渲染方法,其特征在于,所述根据所述液体对象在所述当前时刻的位置信息以及所述目标位置信息,控制所述液体对象进行运动,包括:
按照所述预设的液体粒子外观在所述目标位置信息中渲染所述液体粒子,形成目标液体图像;
将所述当前时刻的液体图像和所述目标液体图像进行重叠显示,得到运动状态下的所述液体对象。
6.根据权利要求4所述的特效渲染方法,其特征在于,所述方法还包括:
当获取以下情况中的任一种时,则控制所述液体对象从所述虚拟容器中洒出:
根据所述液体对象的目标位置信息,确定存在液体对象的目标位置位于所述虚拟容器的外部,且为所述虚拟容器的非正上方位置;
根据所述虚拟容器内液体的体积以及所述虚拟容器的容器运动角度,确定存在液体对象在所述虚拟容器外。
7.根据权利要求3所述的特效渲染方法,其特征在于,所述方法还包括:
当获取以下情况中的任一种时,则控制所述虚拟容器从所述目标部位上滑落:
容器运动角度大于第一阈值;
所述虚拟容器和所述目标部位的距离大于第二阈值;
所述容器运动加速度大于第三阈值。
8.根据权利要求1所述的特效渲染方法,其特征在于,所述方法还包括:
根据预先配置的周期性变化的预设容器运动信息控制所述虚拟容器进行运动。
9.根据权利要求1~8任一项所述的特效渲染方法,其特征在于,在所述控制所述虚拟容器中的液体对象进行运动之后,还包括:
在检测到停止指令后,获取所述虚拟容器中的液体对象的剩余体积;
根据所述液体对象的初始体积和所述剩余体积得到交互评价值;
展示所述交互评价值。
10.根据权利要求1~8任一项所述的特效渲染方法,其特征在于,所述获取所述目标部位的部位运动信息,包括:
采集所述对象的视频数据;
对所述视频数据中每帧图像帧进行所述目标部位的关键点检测或轮廓检测,得到所述部位运动信息。
11.根据权利要求1~8任一项所述的特效渲染方法,其特征在于,所述对象为用户,所述目标部位为所述用户的头部。
12.一种特效渲染装置,其特征在于,包括:
第一获取模块,被配置为执行获取对象和虚拟容器,所述虚拟容器被渲染在所述对象的目标部位上,所述虚拟容器中包含液体对象,所述液体对象为按照预设的液体粒子外观对液体粒子进行渲染得到的;
第二获取模块,被配置为执行获取所述目标部位的部位运动信息;
容器控制模块,被配置为执行根据所述部位运动信息,确定所述目标部位作用于所述虚拟容器的容器作用力信息,并基于所述容器作用力信息和预先配置的所述虚拟容器的容器物理属性信息,得到容器运动信息;
液体对象控制模块,被配置为执行根据所述容器运动信息得到所述虚拟容器作用于所述虚拟容器中液体对象的液体作用力信息,根据所述液体作用力信息和预先配置的所述液体对象的液体物理属性信息,得到所述液体对象进行运动的液体运动信息,根据所述液体运动信息控制所述虚拟容器中的液体对象进行运动。
13.根据权利要求12所述的特效渲染装置,其特征在于,所述第一获取模块,包括:
第一采集单元,被配置为执行采集图像,所述图像中包含所述对象;
获取单元,被配置为执行获取所述对象上目标部位的部位轮廓信息;
渲染单元,被配置为执行根据所述部位轮廓信息,在所述目标部位上渲染所述虚拟容器,将所述液体对象渲染至所述虚拟容器中。
14.根据权利要求12所述的特效渲染装置,其特征在于,所述部位运动信息包括部位运动方向和部位运动距离;所述容器控制模块,包括:
作用力生成单元,被配置为执行根据所述部位运动方向和所述部位运动距离,生成所述目标部位作用于所述虚拟容器的容器作用力信息;
第一运动信息确定单元,被配置为执行根据所述容器作用力信息和预先配置的所述虚拟容器的容器物理属性信息,确定所述虚拟容器的容器运动方向和容器运动加速度。
15.根据权利要求14所述的特效渲染装置,其特征在于,所述液体对象控制模块,包括:
第二运动信息确定单元,被配置为执行根据当前时刻所述虚拟容器的容器运动方向和容器运动加速度,以及预设的所述液体对象的液体物理属性信息,生成所述虚拟容器作用于所述液体对象的液体作用力信息;
位置确定单元,被配置为执行根据所述液体作用力信息以及所述液体物理属性信息,得到所述液体对象在下一个时刻的目标位置信息;
液体对象控制单元,被配置为执行根据所述液体对象在所述当前时刻的位置信息以及所述目标位置信息,控制所述液体对象进行运动。
16.根据权利要求15所述的特效渲染装置,其特征在于,所述液体对象控制单元,被配置为执行:按照所述预设的液体粒子外观在所述目标位置信息中渲染所述液体粒子,形成目标液体图像;将所述当前时刻的液体图像和所述目标液体图像进行重叠显示,得到运动状态下的所述液体对象。
17.根据权利要求15所述的特效渲染装置,其特征在于,所述液体对象控制模块,还被配置为执行在当获取以下情况中的任一种时,则控制所述液体对象从所述虚拟容器中洒出:
根据所述液体对象的目标位置信息,确定存在液体对象的目标位置位于所述虚拟容器的外部,且为所述虚拟容器的非正上方位置;
根据所述虚拟容器内液体的体积以及所述虚拟容器的容器运动角度,确定存在液体对象在所述虚拟容器外。
18.根据权利要求14所述的特效渲染装置,其特征在于,所述容器控制模块,还被配置为执行在获取以下情况中的任一种时,则控制所述虚拟容器从所述目标部位上滑落:
所述容器运动角度大于第一阈值;
所述虚拟容器和所述目标部位的距离大于第二阈值;
所述容器运动加速度大于第三阈值。
19.根据权利要求12所述的特效渲染装置,其特征在于,所述容器控制模块,还被配置为执行根据预先配置的周期性变化的预设容器运动信息控制所述虚拟容器进行运动。
20.根据权利要求12~19任一项所述的特效渲染装置,其特征在于,所述装置还包括:
体积获取模块,被配置为执行在预设时间后,获取所述虚拟容器中的液体对象的剩余体积;
评价值生成模块,被配置为执行根据所述液体对象的初始体积和所述剩余体积得到交互评价值;
展示模块,被配置为执行展示所述交互评价值。
21.根据权利要求12~19任一项所述的特效渲染装置,其特征在于,所述第二获取模块,包括:
第二采集单元,被配置为执行采集所述对象的视频数据;
检测单元,被配置为执行对所述视频数据中每帧图像帧进行所述目标部位的关键点检测或轮廓检测,得到所述部位运动信息。
22.根据权利要求12~19任一项所述的特效渲染装置,其特征在于,所述对象为用户,所述目标部位为所述用户的头部。
23.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至11中任一项所述的特效渲染方法。
24.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至11中任一项所述的特效渲染方法。
CN202011507174.9A 2020-12-18 2020-12-18 特效渲染方法、装置、电子设备、计算机可读存储介质 Active CN112598769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011507174.9A CN112598769B (zh) 2020-12-18 2020-12-18 特效渲染方法、装置、电子设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011507174.9A CN112598769B (zh) 2020-12-18 2020-12-18 特效渲染方法、装置、电子设备、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112598769A CN112598769A (zh) 2021-04-02
CN112598769B true CN112598769B (zh) 2024-03-12

Family

ID=75199417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011507174.9A Active CN112598769B (zh) 2020-12-18 2020-12-18 特效渲染方法、装置、电子设备、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112598769B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113379872A (zh) * 2021-07-13 2021-09-10 重庆云图软件科技有限公司 一种工程图生成方法、装置、系统及计算机可读存储介质
CN113761779B (zh) * 2021-09-09 2024-05-07 西安交通大学 一种基于无网格粒子法的开放边界处理方法、系统及装置
CN114598824B (zh) * 2022-03-09 2024-03-19 北京字跳网络技术有限公司 特效视频的生成方法、装置、设备及存储介质
CN114663553A (zh) * 2022-03-18 2022-06-24 北京字跳网络技术有限公司 特效视频生成方法、装置、设备及存储介质
CN115578277A (zh) * 2022-09-30 2023-01-06 北京字跳网络技术有限公司 液体渲染方法、装置、设备、计算机可读存储介质及产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930583A (zh) * 2012-10-17 2013-02-13 中国科学院自动化研究所 互动式生成液滴效果的方法
WO2017054466A1 (zh) * 2015-09-29 2017-04-06 腾讯科技(深圳)有限公司 一种信息处理方法、终端及计算机存储介质
CN110322540A (zh) * 2019-07-09 2019-10-11 北京电影学院 基于流体力学与gpu优化渲染的可交互水墨模拟方法
CN111757090A (zh) * 2019-03-27 2020-10-09 北京传送科技有限公司 基于注视点信息的实时vr图像过滤方法、系统和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930583A (zh) * 2012-10-17 2013-02-13 中国科学院自动化研究所 互动式生成液滴效果的方法
WO2017054466A1 (zh) * 2015-09-29 2017-04-06 腾讯科技(深圳)有限公司 一种信息处理方法、终端及计算机存储介质
CN111757090A (zh) * 2019-03-27 2020-10-09 北京传送科技有限公司 基于注视点信息的实时vr图像过滤方法、系统和存储介质
CN110322540A (zh) * 2019-07-09 2019-10-11 北京电影学院 基于流体力学与gpu优化渲染的可交互水墨模拟方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
虚拟现实与传播形态——国内外前沿应用案例分析;殷乐,高慧敏;《当代传播》(第第1期期);全文 *

Also Published As

Publication number Publication date
CN112598769A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
CN112598769B (zh) 特效渲染方法、装置、电子设备、计算机可读存储介质
WO2020233464A1 (zh) 模型训练方法、装置、存储介质及设备
CN110930483B (zh) 一种角色控制的方法、模型训练的方法以及相关装置
KR20210123399A (ko) 인공 지능에 기초한 애니메이션 이미지 구동 방법, 및 관련 디바이스
CN112379812B (zh) 仿真3d数字人交互方法、装置、电子设备及存储介质
CN104011788B (zh) 用于增强和虚拟现实的系统和方法
CN110276840B (zh) 多虚拟角色的控制方法、装置、设备及存储介质
KR20180124136A (ko) 포즈들 및 멀티-dof 제어기들을 사용하는 3d 가상 객체들과 상호작용들
KR20180070681A (ko) 3차원 공간에서 가상 객체들 선택
CN109091869A (zh) 虚拟对象的动作控制方法、装置、计算机设备及存储介质
US8749555B2 (en) Method of processing three-dimensional image in mobile device
KR20220027239A (ko) 가상 환경에서 가상 캐릭터를 제어하기 위한 방법 및 장치, 디바이스 그리고 매체
CN113766168A (zh) 一种互动处理方法、装置、终端及介质
WO2023039390A1 (en) Controlling ar games on fashion items
EP4172862A1 (en) Object recognition neural network for amodal center prediction
CN106502401B (zh) 一种图像控制方法及装置
WO2022204674A1 (en) True size eyewear experience in real-time
CN113194329B (zh) 直播互动方法、装置、终端及存储介质
CN109643182A (zh) 信息处理方法、装置、云处理设备及计算机程序产品
CN111292234A (zh) 一种全景图像生成方法及装置
US20220301272A1 (en) True size eyewear in real time
Piekarski et al. Tinmith-mobile outdoor augmented reality modelling demonstration
CN109597480A (zh) 人机交互方法、装置、电子设备及计算机可读存储介质
KR101605740B1 (ko) 스마트폰 사용자의 개인화된 동작인식 방법 및 이를 이용한 게임방법
CN109636898B (zh) 3d模型生成方法及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant