1.本技术涉及图像处理应用领域,具体涉及一种虚拟对象的特效处理方法、装置及计算机设备。
背景技术:2.如游戏等动画应用中,通常是使用unity引擎中的shader图形化编程工具,对应用场景中的虚拟对象进行渲染处理,以实现虚拟对象随着应用操作而产生的游戏角色死亡、地图烧毁等场景下的消融效果,如游戏怪物死亡后从某一位置开始消失,直至蔓延到全身,达到类似于燃烧现象的消融效果等,从而满足游戏操作效果显示要求,提高玩家玩游戏的沉浸感和乐趣。
3.目前,为了实现虚拟对象的消融效果,unity shader是通过控制虚拟对象的三维模型特定边缘开始,控制其透明度从深变浅直至为零,来达到虚拟对象消失的效果,但这种特效处理方法所达到的消融效果并不理想,影响了游戏玩家体验。
技术实现要素:4.为了解决上述技术问题,本技术实施例提供如下技术方案:
5.一方面,本技术提出了一种虚拟对象的特效处理方法,所述方法包括:
6.获得针对虚拟对象模型的消融特效处理请求;所述消融特效处理请求包含对所述虚拟对象模型的至少一个溶解方向;
7.响应所述消融特效处理请求,获得所述虚拟对象模型的各顶点像素的第一坐标值;所述第一坐标值是指与所述溶解方向一致的坐标轴上的坐标值;
8.依据所述第一坐标值与对应坐标轴上的消融动态阈值之间的比较结果,获得对应顶点像素的消融边缘值;所述消融边缘值的大小能够表征所述对象贴图上对应像素点的消融程度,所述消融动态阈值能够随消融时间的增加而改变;
9.对所述消融边缘值、第一动态控制参数以及针对所述虚拟对象模型的边缘噪声进行处理,得到对应所述溶解方向上的第一特效处理参数;所述第一动态控制参数用于控制对应顶点像素在所述溶解方向上的消融程度;
10.通过片元着色器对所述第一特效处理参数、预设消融阈值、特效背景图以及顶点着色器输出的顶点数据进行特效渲染,以使得所述虚拟对象在所述溶解方向上展示消融特效;所述特效背景图是通过对所述虚拟对象模型的对象贴图处理得到。
11.可选的,所述依据所述第一坐标值与对应坐标轴上的消融动态阈值之间的比较结果,获得对应顶点像素的消融边缘值,包括:
12.从所述溶解方向的第一个顶点像素开始,将各顶点像素的所述第一坐标值与消融动态阈值进行比较,得到当前消融时刻对应顶点像素的消融边缘值;
13.按照预设规则,获得下一消融时刻对应的消融动态阈值;
14.将所述各顶点像素的所述第一坐标值与所述下一消融时刻对应的消融动态阈值
进行比较,得到下一消融时刻对应顶点像素的消融边缘值,直至完成所述溶解方向上的最后一个顶点像素的消融。
15.可选的,所述按照预设规则,获得下一消融时刻对应的消融动态阈值,包括:
16.获取所述虚拟对象模型的对象贴图在所述溶解方向上各顶点像素的第一最大坐标值和第一最小坐标值;
17.通过插值方式,从所述第一最大坐标值到所述第一最小坐标值的范围内,顺次获得对应消融时刻的消融动态阈值。
18.可选的,所述对所述消融边缘值、第一动态控制参数以及针对所述虚拟对象模型的边缘噪声进行处理,得到对应所述溶解方向上的第一特效处理参数,包括:
19.获得针对所述虚拟对象模型的在所述溶解方向上的第一动态控制参数;
20.获取随机噪声,对所述随机噪声进行像素色度偏移处理,得到针对虚拟对象模型的对象贴图的边缘噪声;
21.对所述第一动态控制参数和所述边缘噪声进行相加,得到边缘控制参数;
22.依据阶跃函数,对所述边缘控制参数与所述消融边缘值进行处理,对处理结果进行反向处理,得到对应所述溶解方向上的第一特效处理参数。
23.可选的,所述顶点着色器输出的顶点数据的获取过程包括:
24.获得针对所述虚拟对象模型的各顶点像素的顶点坐标的扰动噪声;
25.利用所述扰动噪声对所述顶点坐标的坐标值进行扰动处理,得到干扰顶点坐标;
26.依据消融控制参数,在原有的所述顶点坐标和所述干扰顶点坐标之间进行线性插值,得到目标顶点坐标;所述消融控制参数至少依据所述第一动态控制参数获得;
27.通过顶点着色器对所述目标顶点坐标进行处理,得到能够表征目标空间下的目标显示位置的顶点数据。
28.可选的,所述至少依据所述第一动态控制参数,获得消融控制参数,包括:
29.对所述第一动态控制参数和预设边缘颜色渐变梯度控制参数进行融合处理,得到边缘控制参数;
30.对所述边缘控制参数、所述第一动态控制参数以及所述第一坐标值进行平滑阶跃运算,得到在所述溶解方向上的消融控制参数。
31.又一方面,本技术还提出了一种虚拟对象的特效处理装置,所述装置包括:
32.消融特效处理请求获得模块,用于获得针对虚拟对象模型的消融特效处理请求;所述消融特效处理请求包含对所述虚拟对象模型的至少一个溶解方向;
33.第一坐标值获得模块,用于响应所述消融特效处理请求,获得所述虚拟对象模型的各顶点像素的第一坐标值;所述第一坐标值是指与所述溶解方向一致的坐标轴上的坐标值;
34.消融边缘值获得模块,用于依据所述第一坐标值与对应坐标轴上的消融动态阈值之间的比较结果,获得对应顶点像素的消融边缘值;所述消融边缘值的大小能够表征所述对象贴图上对应像素点的消融程度,所述消融动态阈值能够随消融时间的增加而改变;
35.第一特效处理参数得到模块,用于对所述消融边缘值、第一动态控制参数以及针对所述虚拟对象模型的边缘噪声进行处理,得到对应所述溶解方向上的第一特效处理参数;所述第一动态控制参数用于控制对应顶点像素在所述溶解方向上的消融程度;
36.特效渲染模块,用于通过片元着色器对所述第一特效处理参数、预设消融阈值、特效背景图以及顶点着色器输出的顶点数据进行特效渲染,以使得所述虚拟对象在所述溶解方向上展示消融特效;所述特效背景图是通过对所述虚拟对象模型的对象贴图处理得到。
37.可选的,所述消融边缘值获得模块包括:
38.第一比较单元,用于从所述溶解方向的第一个顶点像素开始,将各顶点像素的所述第一坐标值与消融动态阈值进行比较,得到当前消融时刻对应顶点像素的消融边缘值;
39.消融动态阈值获得单元,用于按照预设规则,获得下一消融时刻对应的消融动态阈值;
40.第二比较单元,用于将所述各顶点像素的所述第一坐标值与所述下一消融时刻对应的消融动态阈值进行比较,得到下一消融时刻对应顶点像素的消融边缘值,直至完成所述溶解方向上的最后一个顶点像素的消融。
41.可选的,所述消融动态阈值获得单元,包括:
42.坐标值获取单元,用于获取所述虚拟对象模型的对象贴图在所述溶解方向上各顶点像素的第一最大坐标值和第一最小坐标值;
43.插值获得单元,用于通过插值方式,从所述第一最大坐标值到所述第一最小坐标值的范围内,顺次获得对应消融时刻的消融动态阈值。
44.又一方面,本技术还提出了一种计算机设备,所述计算机设备包括:
45.通信模块;
46.存储器,用于存储如上述的虚拟对象的特效处理方法的程序;
47.处理器,用于加载并执行所述存储器存储的所述程序,实现如上述的虚拟对象的特效处理方法的各步骤。
48.又一方面,本技术还提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器加载执行,实现如上述的虚拟对象的特效处理方法。
49.由此可见,基于上述技术方案,本技术获得包含对虚拟对象模型的至少一个溶解方向的消融特效处理请求后,可以获得虚拟对象模型的各顶点像素的与该溶解方向一致的坐标轴上的第一坐标值,将各消融时刻对应的消融动态阈值与顶点像素的第一坐标值进行比较,确定该顶点像素的消融边缘值,之后,对消融边缘值、第一动态控制参数以及针对虚拟对象模型的边缘噪声进行处理,得到对应溶解方向上的第一特效处理参数,从而通过片元着色器对第一特效处理参数、预设消融阈值、特效背景图以及顶点着色器输出的顶点数据进行特效渲染,以使得虚拟对象在溶解方向上展示消融特效,丰富不同虚拟对象的消融特效展示效果。
附图说明
50.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
51.图1为适用于本技术提出的虚拟对象的特效处理方法的计算机设备一可选示例的硬件结构示意图;
52.图2为适用于本技术提出的虚拟对象的特效处理方法的计算机设备又一可选示例的硬件结构示意图;
53.图3为本技术提出的虚拟对象的特效处理方法的一可选示例的流程示意图;
54.图4为适用于本技术提出的虚拟对象的特效处理方法中,unity shader graph创建过程示意图;
55.图5为适用于本技术提出的虚拟对象的特效处理方法中,各像素的消融边缘值的动态获取过程示意图;
56.图6为适用于本技术提出的虚拟对象的特效处理方法中,动态控制参数获取过程示意图;
57.图7为适用于本技术提出的虚拟对象的特效处理方法中,边缘噪声的获取方法示意图;
58.图8为适用于本技术提出的虚拟对象的特效处理方法中,特效处理参数的获取方法示意图;
59.图9为适用于本技术提出的虚拟对象的特效处理方法中,边缘渐变色的获取方法示意图;
60.图10为适用于本技术提出的虚拟对象的特效处理方法中,特效背景图和特效渲染过程示意图;
61.图11为本技术提出的虚拟对象的特效处理方法的又一可选示例的流程示意图;
62.图12为本技术提出的虚拟对象的特效处理方法的又一可选示例的流程示意图;
63.图13为适用于本技术提出的虚拟对象的特效处理方法中,顶点扰动过程示意图;
64.图14为适用于本技术提出的虚拟对象的特效处理方法中,顶点数据获取方法示意图;
65.图15为本技术提出的虚拟对象的特效处理装置的一可选示例的结构示意图。
具体实施方式
66.针对背景技术部分的描述内容,在游戏角色死亡、地图烧毁等场景渲染处理中,希望对应虚拟对象的三维模型经过腐蚀消融消失的效果,同时让粒子以模型的样子出现并消散,变成灰烬粒子消散的效果,可以使得虚拟对象从完整状态的任一端边缘开始,以溶解的形式慢慢变没有;而在召唤游戏角色出现、场景环境变化等过程中,可以以期望虚拟对象的任一端边缘开始,由粒子形式从零开始慢慢出现实体直到整个模型显示出来。
67.其中,在消融显示和隐藏的过程中,由于unity shader采用透明度控制方式所达到的效果无法提现消融的过程,影响虚拟对象特效展示效果。因此,本技术提出以粒子形式从任一端边缘开始体现出消融效果,对此,本技术提出使用alpha clip对虚拟对象的三维模型进行裁切,对切口处做一层随机噪声来控制alpha clip,使用随机噪声对消融区域从任一端开始的边缘进行扰动,从而混合一个颜色,即消融区域与不消融区域之间的过渡色,使得消融的虚拟对象模型碎片作为灰烬飘散,即以粒子的形式从任一边缘开始体现消融效果,且在消融过程中,粒子的颜色还可以叠加渐变色,更好地满足不同特效展示效果,丰富特效展示方式,提高玩家沉浸感。
68.在上述虚拟对象渲染过程中,对于不同虚拟对象的模型构建以及特效实现过程,
可以依据但并不局限于人工智能(artificial intelligence,ai)包含的图形处理技术、机器学习(machine learning,ml)/深度学习技术、计算机视觉技术(computer vision,cv)中的图像识别与处理、三维物体重建、三维技术等实现,本技术对虚拟对象的三维模型构建及渲染实现过程不做详述,可以依据应用需求,结合适合的人工智能技术提高渲染效率及可靠性。
69.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
70.参照图1,为适用于本技术提出的虚拟对象的特效处理方法的计算机设备一可选示例的硬件结构示意图,结合上述分析,该计算机设备可以是服务器和/或电子设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是支持云计算服务的云服务器等。服务器可以通过有线或无线通信方式,实现与如智能手机、平板电脑、笔记本电脑、台式计算机、上网本等电子设备直接或间接地连接,满足电子设备与服务器之间的数据交互需求,具体通信连接方式可视情况而定。
71.如图1所示,本技术实施例提出的计算机设备可以包括但并不局限于:通信模块11、存储器12和处理器13,其中:
72.通信模块11、存储器12和处理器13各自的数量可以为至少一个,且通信模块11、存储器12和处理器13可以均连接通信总线,以实现相互间的数据通信,具体通信过程可视情况而定。
73.通信模块11可以包括gsm模块、gprs模块、wifi模块,和/或实现其他无线通信网络或有线通信网络的通信模块等,还可以包括如usb接口、串/并口等通信模块,以实现计算机设备内部组成部件相互之间的数据传输,本技术对计算机设备所包含的通信模块的类型及其数量不做限制,可以依据应用场景下的数据通信需求确定,本实施例在此不做一一详述。
74.存储器12可以用于存储实现本技术提出的虚拟对象的特效处理方法的程序,处理器13可以用于加载并执行存储器12所存储的程序,以实现本技术实施例提出的虚拟对象的特效处理方法的各步骤,具体实现过程可以参照但并不局限于下文方法实施例相应部分的描述,在此不做详述。
75.在本技术实施例中,存储器12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。处理器13,可以为中央处理器(central processing unit,cpu)、特定应用集成电路(application-specific integrated circuit,asic)、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件等。
76.应该理解的是,图1所示的计算机设备的结构并不构成对本技术实施例中计算机设备的限定,在实际应用中,计算机设备可以包括比图1所示的更多或更少的部件,或者组合某些部件。示例性的,若上述计算机设备为如上文列举的电子设备,该电子设备可以配置有支持应用正常运行的应用引擎,如游戏引擎,此外,从硬件结构来看,参照图2所示,该电子设备还可以包括如显示器、各输入设备、各输出设备、天线、电源模块、传感器模块等,本技术在此不做一一列举。
77.下面将从计算机设备角度,来详细描述本技术提出的虚拟对象的特效处理方法,但并不局限于下文各实施例描述的实现方法,且对于本技术中使用流程图所说明的根据本技术实施例的计算机设备所执行的操作,可以理解,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作,本技术下文实施例并未一一详述,但均属于本技术技术方案的保护范围。
78.参照图3,为本技术提出的虚拟对象的特效处理方法的一可选示例的流程示意图,该方法适用于如上文描述的计算机设备,如图3所示,该方法可以包括但并不局限于以下步骤:
79.步骤s31,获得针对虚拟对象模型的消融特效处理请求;该消融特效处理请求包含对虚拟对象模型的至少一个溶解方向;
80.在本技术实际应用中,可以使用unity引擎中的shader图形化编程工具(即shader graph)实现虚拟对象模型数据的处理,这样,在需要对某虚拟对象模型进行消融特效处理时,由于不需要考虑光照效果,可以创建unity shader graph,如图4所示的unity shader graph创建过程示意图,在启动shader graph编辑器后,可以对输出的编辑界面中的project(项目)窗口右击,输出该项目下级菜单,之后,可以按照create/shader/universal render pipeline/unlit shader graph这一路径,对相应菜单面板中的对象进行触发,以创建unlit shader graph,但并不局限于图4所示的创建实现方式。
81.之后,本技术实施例可以双击所创建的unlit shader graph文件,打开shader graph编辑器,之后,可以使用shader graph编辑器所具有的编程功能,完成本技术提出的虚拟对象的特效处理方法,得到具有处理得到的消融特效的虚拟对象模型数据,存储于所创建的unlit shader graph文件,这样,在玩家对该虚拟对象执行对应操作,可以执行该unlit shader graph文件,控制该虚拟对象呈现预设的消融特效。
82.基于上述分析,在shader graph编辑器的编辑界面,可以选择本次需要特效处理的虚拟对象模型,及其需要展示的特效类型(本技术以粒子形式逐渐溶解的消融特效这一特效类型为例进行说明)、虚拟对象展示该消融特效过程的溶解方向等模型数据,点击确认按钮,获得针对所选择的虚拟对象模型的消融特效处理请求,本技术对该消融特效处理请求包含的内容及其获得方法不做限制,可视情况而定。
83.其中,上述溶解方向可以包括但并不局限于:从上向下、、从下向上、从左往右、从右往左等之中的从任一方位到对应方位(即增加180
°
得到的直线方向)形成的直线方向,也可以是预设曲线或自定义曲线(其可以依据所选择的虚拟对象模型结构确定等)的曲线方向等,本技术对溶解方向所形成的消融路径及其获取方法不做限制,可视情况而定。
84.应该理解的是,上述溶解方向是指所选择的虚拟对象展示消融特效过程中,从虚拟对象的某一方位或多个方位的边缘开始,按照一定方向以粒子形式逐渐溶解,直至虚拟对象消失不见。可见,对于不同的虚拟对象模型所选择的溶解方向不同,从对应边缘开始以粒子形式逐渐消融的特效展示效果也会所有差异,可以该虚拟对象模型需要展示的消融特效,灵活选择一个或多个溶解方向,据此实现该虚拟对象模型的有方向性的溶解。可见,相对于对各虚拟对象都从固定的边缘开始消融的处理方式,本技术提出的具有方向性的消融处理方式,实现了不同虚拟对象的消融特效的个性化展示,提高了不同虚拟对象的消融特
效展示效果。
85.步骤s32,响应该消融特效处理请求,获得虚拟对象模型的各顶点像素的第一坐标值;
86.在实际应用中,虚拟对象模型通常包括一组三角面片,每个三角面片由三个顶点构成,每个顶点通常包括如顶点位置、法线/切线纹理坐标等顶点数据,以便后续可以对顶点数据进行处理,结合其他模型数据,渲染虚拟对象。
87.因此,按照上文描述的方法,确定需要获得虚拟对象模型按照溶解方向的消融特效的场景下,对该虚拟对象模型进行裁切,确定切口处的顶点坐标,如图5所示,可以由position(位置)节点对该虚拟对象模型进行处理,获得各顶点像素的顶点坐标,该顶点坐标通常是世界坐标系下的(x,y,z)三维坐标,根据需要还可以包括法线、颜色和纹理坐标,本技术对顶点坐标包含的坐标属性不做限制,可视情况而定。
88.之后,针对所选择的虚拟对象模型的溶解方向,可以从各顶点坐标中,提取对应分量的第一坐标值,以溶解方向为从上向下为例进行说明,可以将获得的各顶点像素的顶点坐标输入split(分离或分裂)节点,分离顶点坐标中的各分量,如r、g、b和a等分量,本实施例可以提取rgb中的g分量,即顶点坐标的y坐标;若所选择的溶解方向为从左向右消融,按照这种分量提取方式,可以提取r分量,即顶点坐标的x坐标等。可见,本技术预先选择的溶解方向不同,本技术可以提取各顶点像素的多维顶点坐标中,与该溶解方向一致坐标轴上的坐标值记为第一坐标值,用以实现后续处理。
89.需要说明,关于shader graph编辑器中的position节点以及split节点各自对输入数据的处理实现过程,本技术不做详述。
90.步骤s33,依据该第一坐标值与对应坐标轴上的消融动态阈值之间的比较结果,获得对应像素的消融边缘值;
91.本技术实施例中,顶点像素在不同坐标轴上即不同溶解方向上的消融动态阈值start可以不同,初始值往往都比较大,且能够随着消融时间的增加而减少,本技术对不同溶解方向上在不同消融时间对应的消融动态阈值不做限制。
92.基于此,为了让虚拟对象模型的溶解具有方向性,仍以从上向下的溶解方向为例进行说明,其对应的消融动态阈值记为starty,之后,如图5所示,可以将提取出的各顶点像素的第一坐标值与该消融动态阈值进行比较,若第一坐标值相比于消融动态阈值越大,对应顶点像素的消融边缘值越大,由于该消融边缘值(即edge值)的大小能够表征顶点像素在消融过程中的消融程度,消融边缘值越大,说明对应顶点像素的消融程度越大。
93.其中,由于消融动态阈值的数值会随消融时间t的增加而减小,在展示消融特效之前,即t=0时,由于starty往往比较大,虚拟对象模型中各顶点像素的第一坐标值通常都小于当前消融时刻的starty,使得各顶点像素的消融边缘edge值都为零,那么,该虚拟对象模型的对象贴图都没有溶解;随着消融时间t从0递增,starty的取值可以按照预设规则递减(可以由减subtract节点执行),对象贴图从上到下的各顶点像素中,第一坐标值大于对应消融时刻的starty的顶点像素数量逐渐增多,与此同时,从上到下的顶点像素的消融边缘edge值会逐渐增加(其相对于顶点像素自身上一消融时刻的消融边缘edge值来说),最上方的顶点像素的消融边缘edge值最大,其消融程度最大,由此实现了虚拟对象模型的对象贴图的从上向下的逐渐溶解,即实现了有方向性的溶解。
94.关于其他溶解方向上的顶点像素的消融边缘edge值的获取过程,与上文描述的顶点像素从上向下的edge值获取过程类似,本技术不做一一举例详述。需要说明,对于不同溶解方向的消融过程中,顶点像素的消融动态阈值的取值实现方法本技术不做限制。可选的,如图5所示,可以针对虚拟对象模型的对象贴图,确定各顶点像素对应坐标轴上的第一最大坐标值(如图5中max(1)输入的坐标值)和第一最小坐标值(如图5中min(1)输入的坐标值),之后,可以在消融过程中,从第一最大坐标值开始,递减取值得到对应消融时刻的starty。
95.步骤s34,对消融边缘值、第一动态控制参数以及针对虚拟对象模型的边缘噪声进行处理,得到对应溶解方向上的第一特效处理参数;
96.为了动态控制虚拟对象的消融程度,预览处理得到的消融特效,通常可以需要设置相应的动态控制参数,对于不同溶解方向上呈现的消融特效,所设置的动态控制参数的数值可以不同,其可以依据顶点像素对应坐标轴上的坐标值获得,本技术对动态控制参数的获取方法不做限制。本技术实施例仍以展示从上向下溶解方向的消融特效为例进行说明,将其对应配置的动态控制参数即为第一动态控制参数,对于其他溶解方向对应的动态控制参数可以即为第二动态控制参数或第三动态控制参数等,本技术对其获取过程不做一一举例详述。
97.基于此,参照图6所示的动态控制参数获取过程示意图,可以创建一个溶解节点disolve,其为float节点,在0~1之间取值,0可以表示没有消融,1可以表示完全消融,可见,该disolve节点的取值(即消融参数)大小可以表征消融程度,可以将其转为对应顶点坐标的属性,控制类型可以选择滑块slider,将其输出的溶解参数(如图6中remap节点输出参数,输入smoothstep节点的边缘edge(1)端)与各顶点像素的第一坐标值(如顶点坐标的y分量)进行平滑阶跃(如图6所示的smoothstep节点)处理,得到对应顶点像素的第一动态控制参数,具体计算过程本技术不做详述。
98.可选的,在获取动态控制参数后,还可以控制虚拟对象模型的边缘颜色渐变控制梯度,将其与溶解参数求和运算(如图6所示的add节点的运算),将得到的对应渐变控制参数(可以将其输入图6中smoothstep节点的边缘edge(2)端)与上述动态控制参数、第一坐标值进行一次平滑阶跃,得到对应顶点像素的第一坐标值的消融控制参数,用以实现后续的颜色混合和顶点扰动处理。
99.对于虚拟对象模型的边缘扰动,可以采用噪声信号实现,对此,本技术可以创建一个噪声节点,以获得针对虚拟对象模型的边缘噪声。可选的,如图7所示,创建simple noise节点,通过定时器time控制uv中的v分量做偏移,实现对虚拟对象模型边缘的扰动,根据实际需要,可以使用乘运算multiply节点进行噪声信号削弱处理等,以得到虚拟对象模型的边缘噪声,本技术对该边缘噪声的获取方法不做详述。
100.按照但并不局限于上文描述的方法,获得消融边缘值、第一动态控制参数以及针对虚拟对象模型的边缘噪声等多个模型数据后,可以据此实现alphaclip控制,以使虚拟对象模型的边缘颗粒是随机的,为后续按照溶解方向的灰烬飘散效果做准备。因此,如图8所示,本技术可以将边缘噪声与第一动态控制参数(即滑块控制参数)相加(如图8中add节点的运算),将输出参数输入step节点的in(1)端,同时将各顶点像素点的消融边缘值输入step节点的edge(1)端进行一个step阶跃,在溶解方向上得到颗粒感的边界,对阶跃处理结果进行反向运算(图8中的圆形图中黑色表示透明,白色表示不透明),得到该溶解方向上的
第一特效处理参数,作为alphaclip输入参数,即输入片元fragment的alpha clip threshold(1)端,之后,就可以通过该参数与alpha(可以记为预设消融阈值,通常取值为0.5)的大小关系,确定对应顶点像素颜色是否被丢弃,该顶点像素位置处是否为镂空。
101.步骤s35,通过片元着色器对第一特效处理参数、预设消融阈值、特效背景图以及顶点着色器输出的顶点数据进行特效渲染,以使得虚拟对象在溶解方向上展示消融特效。
102.本技术实施例中,该特效背景图可以是通过对虚拟对象模型的对象贴图进行处理得到,具体处理实现方法不做限时。可选的,由于上述第一动态控制参数获取过程中,结合了控制边缘颜色渐变梯度的控制参数,即该第一动态控制参数表征了边缘渐变效果,这样,在获取特效背景图的过程中,如图9所示,可以选择针对虚拟对象模型的对象贴图的背景色,如color节点所选择的颜色,将其与第一动态控制参数进行混合后,再进行倍数加强(如multiply节点的相乘运算),得到一个边缘渐变色。
103.之后,如图10所示,可以将上述边缘渐变色与虚拟对象模型的对象贴图进行处理,如对该对象贴图进行采样,将采样所得到图片与边缘渐变色进行混合,得到特效背景图,即使得虚拟对象模型的对象贴图的边缘颜色渐变,丰富特效效果。需要说明,在不需要边缘颜色渐变的情况下,在上述获取特效背景图的过程中,可以不用执行边缘渐变色获取步骤,同理,在获得上述第一动态控制参数过程中,也可以不同结合边缘渐变梯度的控制参数,这样,可以直接将控制边缘消融程度的第一动态控制参数,与对象贴图的采样图片进行混合,得到所需的特效背景图,即片元着色器的基础色base color。
104.其中,如图10所示,按照上文描述的方法,可以将得到的第一特效处理参数、预设消融阈值和特效背景图输入片元着色器(如图10所示的fragment节点),结合顶点着色器输出的顶点数据,如顶点像素在屏幕输出的空间坐标,本技术对该顶点数据的获取方法不做详述。片元着色器依据获得的多方面数据进行渲染,确定虚拟对象模型中各顶点像素的最终颜色,使得虚拟对象在所选择的溶解方向上以粒子形式展示消融特效,本技术对片元着色器和顶点着色器的工作原理不做详述。
105.综上,在本技术实施例中,在需要虚拟对象以粒子形式展示消融特效时,可以灵活选择展示消融特效的溶解方向,结合所选择的溶解方向,获得虚拟对象模型的各顶点像素的消融边缘值,之后,结合用于控制各顶点像素在该溶解方向上的消融程度的第一动态控制参数,以及用于实现边缘扰动的边缘噪声,获得对应溶解方向上的第一特效处理参数,这样,片元着色器对该第一特效处理参数、预设消融阈值、特效背景图以及顶点数据进行特效渲染,从而使得虚拟对象模型的对象贴图可以按照该溶解方向,以粒子形式从边缘开始逐渐消融,丰富了虚拟对象的溶解特效展示效果。
106.参照图11,为本技术提出的虚拟对象的特效处理方法的又一可选示例的流程示意图,该方法可以是对上文提出的虚拟对象的特效处理方法的一可选细化实现方式进行描述,本实施例可以对上文提出的消融边缘值的获取过程进行细化描述,关于使用该消融边缘值实现虚拟对象的特效处理的其他执行步骤,可以参照上下文对应部分的描述,本实施例不做详述。基于此,参照图5所示的各顶点像素的消融边缘值的获取过程示意图,如图11所示,该消融边缘值的获取过程可以包括:
107.步骤s111,从选择的虚拟对象模型的溶解方向的第一个顶点像素开始,将各顶点像素的第一坐标值与消融动态阈值进行比较,得到当前消融时刻对应像素点的消融边缘
值;
108.关于各顶点像素的第一坐标值的获取过程,可以参照上文描述的position节点和split节点的处理过程,可以获得各顶点像素的顶点坐标中与所选择的溶解方向一致的坐标轴的坐标,如y轴上的坐标值记为第一坐标值,或x轴上的坐标值即为第二坐标值等,对于不同坐标分量的后续处理过程,以及不同溶解方向上的消融特效处理过程类似,本技术不做一一举例详述,仍以提取第一坐标值为例进行说明。
109.按照上述方法,获得每个顶点像素的世界坐标的位置后,可以在shadergraph中按照本技术提出的方法实现edge值的计算。如图5所示,在不同消融时刻,可以将虚拟对象模型的各顶点像素的第一坐标值与对应的消融动态阈值进行比较,获得能够表征对应消融时刻的顶点像素的消融程度的消融边缘值,实现过程不做详述。
110.步骤s112,按照预设规则,获得下一消融时刻对应的消融动态阈值;
111.随着消融时间的增加,会按照预设规则慢慢减小消融动态阈值,由于虚拟对象模型的对象贴图是确定的,其具有的各顶点像素在某一消融方向上的坐标值确定,这样,在消融动态阈值不断减小的过程中,第一坐标值大于该消融动态阈值的顶点像素数量越来越多,且这类顶点像素的第一坐标值与消融动态阈值的差值也越来越大,对应顶点像素的消融程度越来越大,直至其颜色属性变为透明。
112.可选的,步骤s112的实现过程可以包括但并不局限于:获取虚拟对象模型的对象贴图在溶解方向上各顶点像素的第一最大坐标值和第一最小坐标值;通过插值方式,从第一最大坐标值到第一最小坐标值的范围内,顺次获得对应消融时刻的消融动态阈值,也就是说,随着消融时间增加,可以从第一最大坐标值开始,通过插值方式逐渐减小取值,得到小于上一消融时刻的消融动态阈值的当前消融时刻的消融动态阈值。
113.示例性的,以从上向下的溶解方向为例进行说明,假设虚拟对象模型的对象贴图为正方形图片,其高度为4,该对象贴图的顶端像素位置maxy(即第一最大坐标值)=图片中心位置(transform.position.y)+图片高度的一半(即2),同理,该对象贴图的末端像素位置miny(即第一最小坐标值)=图片中心位置(transform.position.y)-图片高度的一半(即2)。应该理解的是,对于其他形状的对象贴图,可以依据相应的数学运算方式,计算得到所选择溶解方向上的最大坐标值和最小坐标值,计算过程本技术不做一一举例详述。
114.基于此,在1秒内从上向下的溶解过程中,消融时间t可以从0递增到1秒,使用lerp插值函数,将动态消融阈值starty值由maxy慢慢减小到miny,相当于是将该starty值从对象贴图的最上方位置移动到最小方位置,starty值每往下移动一点,即starty值每减小一点,starty值以上位置的顶点像素就会慢慢变为透明,直至移动到最底部后全部变为透明(即消失)为止。在该移动过程中,顶点像素位置越靠上,其透明度越高,直至透明度达到100%,即对应顶点像素消失。
115.同理,若所选择的溶解方向是从下向上逐渐消融,starty值的取值过程类似,区别在于starty值由对象贴图最下方移动到最上方时,starty值将由miny开始取值直至增加值maxy,按照上述比较方式,动态调整各像素点的消融边缘值;在所选择的溶解方向是左右方向上的消融,该场景下,可以获得对象贴图的最右端像素位置maxx(即第一最大坐标值)=图片中心位置(transform.position.x)+图片宽度的一半(即2);该对象贴图的最左端像素位置minx(即第一最小坐标值)=图片中心位置(transform.position.x)-图片宽度的一半
(即2),之后,在按照从右向左或从左向右的消融过程中,可以从当前确定的坐标值变化范围内,采用插值方式,动态获得对应时刻的startx,实现过程本技术不做详述。
116.由此可见,在溶解方向为从上向下或从右向左的情况下,在虚拟对象模型的贴图对象的消融过程中,按照插值方式,动态获取的starty或startx会逐渐减小;反之,若溶解方向为从下向上或从左向右,在虚拟对象模型的贴图对象的消融过程中,动态获取的starty或startx会逐渐减大,本技术对步骤s112的实现过程不做限制。
117.步骤s113,将各顶点像素的第一坐标值与该下一消融时刻对应的消融动态阈值进行比较,得到下一消融时刻对应顶点像素的消融边缘值,直至完成该溶解方向上的最后一个顶点像素的消融。
118.如上述分析,为了获得虚拟对象模型的对象贴图在所选择溶解方向上的消融效果,即使得对象贴图的消融具有方向性,可以将各消融时刻对应的消融动态阈值,与顶点像素的对应坐标轴的坐标值进行比较,确定该顶点像素的消融边缘值。由于消融动态阈值会随着消融时间增加而改变,且该改变与溶解方向相关,按照这种处理方式,能够保证对象贴图在该溶解方向上的各顶点像素的消融边缘值逐渐增加,且同一消融时刻越靠近溶解方向开始边缘位置的顶点像素的消融边缘值越大,表征该位置的顶点像素溶解程度越大,越早被溶解消失。
119.参照图12,为本技术提出的虚拟对象的特效处理方法的又一可选示例的流程示意图,该方法可以是对上文提出的虚拟对象的特效处理方法的又一可选细化实现方式进行描述,如图12所示,该方法可以包括:
120.步骤s121,获得针对虚拟对象模型的消融特效处理请求;该消融特效处理请求包含对虚拟对象模型的至少一个溶解方向;
121.步骤s122,响应该消融特效处理请求,获得虚拟对象模型的各顶点像素的顶点坐标,确定与该溶解方向一致的坐标轴上的第一坐标值;
122.步骤s123,依据该第一坐标值与对应坐标轴上的消融动态阈值之间的比较结果,获得对应像素的消融边缘值;
123.关于步骤s121-步骤s123的实现过程,可以参照上文实施例相应部分的描述,包括但并不局限于图5所示的顶点坐标及其不同坐标轴上的坐标值的分离获取方式,以及据此动态更新各顶点像素的消融边缘,得到具有所选择的溶解方向的消融效果。
124.步骤s124,获得针对虚拟对象模型的在该溶解方向上的第一动态控制参数;
125.步骤s125,对第一动态控制参数和预设边缘颜色渐变梯度控制参数进行融合处理,得到边缘控制参数;
126.步骤s126,对边缘控制参数、第一动态控制参数以及第一坐标值进行平滑阶跃运算,得到在溶解方向上的消融控制参数;
127.参照上文图6所示的处理方法,为了动态控制消融程度,可以配置对应的第一动态控制参数,之后,可以配置边缘颜色渐变梯度的预设控制参数,将处理结果作为smoothstep节点的输入,以实现虚拟对象模型的消融方向的边缘的颜色渐变效果,实现过程可以参照上文实施例对应部分的描述,本实施例不做赘述。其中,该smoothstep节点输出的消融控制参数可以用于后续颜色混合和顶点扰动处理的输入参数。
128.步骤s127,获取随机噪声,对该随机噪声进行像素色度偏移处理,得到针对虚拟对
象模型的对象贴图的边缘噪声;
129.本技术提出使用噪声(本技术是指噪声图像)对对象贴图的边缘进行扰动,对此,如图7所示,创建噪声simple noise节点,通过定时器控制uv偏移,得到所需的边缘噪声,具体处理实现过程可以参照上文实施例对应部分的描述,本实施例不做赘述。
130.步骤s128,对第一动态控制参数和边缘噪声进行相加,得到边缘控制参数;
131.步骤s129,依据阶跃函数,对边缘控制参数与消融边缘值进行处理,对处理结果进行反向处理,得到对应溶解方向上的第一特效处理参数;
132.关于步骤s128和步骤s129的实现过程,可以参照图8及其对应部分的描述,本实施例在此不做详述。
133.步骤s1210,获得针对虚拟对象模型的各顶点像素的顶点坐标的扰动噪声;
134.本技术可以对虚拟对象模型中,需要消融的区域的顶点做一个坐标扰动的效果,构造一个坐标扰动的扰动噪声,参照图13所示的顶点坐标扰动处理方法,可以采用simple noise对顶点坐标的x和y轴的坐标值进行扰动,使用梯度渐变噪声gradient noise对y轴(以从上下方向的消融方向为例进行说明,若消融方向是左右方向,此处可以是x轴)坐标值进行扰动,但并不局限于图13所示的顶点坐标扰动处理方法。
135.步骤s1211,利用扰动噪声对顶点坐标的坐标值进行扰动处理,得到干扰顶点坐标;
136.步骤s1212,依据消融控制参数,在原有的顶点坐标和干扰顶点坐标之间进行线性插值,得到目标顶点坐标;
137.步骤s1213,通过顶点着色器对目标顶点坐标进行处理,得到能够表征目标空间下的目标显示位置的顶点数据;
138.结合上文position节点描述的顶点坐标获取方法,在获得虚拟对象模型的各顶点坐标后,如图14所示,可以按照上文描述的方法干扰噪声与顶点坐标进行相加,得到对应的干扰顶点坐标,之后,可以通过滑块控制(如上述得到的消融控制参数)进行线性插值,得到目标顶点坐标,将其输入至顶点着色器vertex的position端,结合目标空间配置参数对该目标顶点坐标进行转换处理,得到其在屏幕上的显示位置,即得到顶点的全局空间坐标,记为顶点数据,本技术对顶点着色器的工作原理不做详述。
139.其中,在上述步骤s1212的实现过程中,在lerp函数中,a是经过干扰的顶点坐标位置,b是未干扰的顶点坐标位置,(t就是一个通过进度条控制的时间参数),插值函数表达的是在a与b之间进行插值计算,得到a与b之间的一个值,经过实时计算,所得到的这个值可以在a与b之间变化,最终体现所有顶点以无次序的形式,透明度由不透明到完全透明的效果。
140.步骤s1214,通过片元着色器对第一特效处理参数、预设消融阈值、特效背景图以及顶点着色器输出的顶点数据进行特效渲染,以使得虚拟对象在溶解方向上展示消融特效。
141.综上,本技术实施例,经过片元着色器对各输入参数的吹,可以确定虚拟对象模型的对象贴图的各像素在最终颜色,使得该虚拟对象在所选择的溶解方向上,以粒子形式展示消融特效,丰富了不同虚拟对象的消融特性的展示效果,提高了用户体验。
142.参照图15,为本技术提出的虚拟对象的特效处理装置的一可选示例的结构示意图,该装置可以包括:
143.消融特效处理请求获得模块151,用于获得针对虚拟对象模型的消融特效处理请求;所述消融特效处理请求包含对所述虚拟对象模型的至少一个溶解方向;
144.第一坐标值获得模块152,用于响应所述消融特效处理请求,获得所述虚拟对象模型的各顶点像素的第一坐标值;所述第一坐标值是指与所述溶解方向一致的坐标轴上的坐标值;
145.消融边缘值获得模块153,用于依据所述第一坐标值与对应坐标轴上的消融动态阈值之间的比较结果,获得对应顶点像素的消融边缘值;所述消融边缘值的大小能够表征所述对象贴图上对应像素点的消融程度,所述消融动态阈值能够随消融时间的增加而改变;
146.第一特效处理参数得到模块154,用于对所述消融边缘值、第一动态控制参数以及针对所述虚拟对象模型的边缘噪声进行处理,得到对应所述溶解方向上的第一特效处理参数;所述第一动态控制参数用于控制对应顶点像素在所述溶解方向上的消融程度;
147.特效渲染模块155,用于通过片元着色器对所述第一特效处理参数、预设消融阈值、特效背景图以及顶点着色器输出的顶点数据进行特效渲染,以使得所述虚拟对象在所述溶解方向上展示消融特效;所述特效背景图是通过对所述虚拟对象模型的对象贴图处理得到。
148.可选的,消融边缘值获得模块153可以包括:
149.第一比较单元,用于从所述溶解方向的第一个顶点像素开始,将各顶点像素的所述第一坐标值与消融动态阈值进行比较,得到当前消融时刻对应顶点像素的消融边缘值;
150.消融动态阈值获得单元,用于按照预设规则,获得下一消融时刻对应的消融动态阈值;
151.第二比较单元,用于将所述各顶点像素的所述第一坐标值与所述下一消融时刻对应的消融动态阈值进行比较,得到下一消融时刻对应顶点像素的消融边缘值,直至完成所述溶解方向上的最后一个顶点像素的消融。
152.可选的,上述消融动态阈值获得单元可以包括:
153.坐标值获取单元,用于获取所述虚拟对象模型的对象贴图在所述溶解方向上各顶点像素的第一最大坐标值和第一最小坐标值;
154.插值获得单元,用于通过插值方式,从所述第一最大坐标值到所述第一最小坐标值的范围内,顺次获得对应消融时刻的消融动态阈值。
155.在一些实施例中,在上述基础上,上述第一特效处理参数得到模块154可以包括:
156.第一动态控制参数获得单元,用于获得针对所述虚拟对象模型的在所述溶解方向上的第一动态控制参数;
157.边缘噪声得到单元,用于获取随机噪声,对所述随机噪声进行像素色度偏移处理,得到针对虚拟对象模型的对象贴图的边缘噪声;
158.边缘控制参数得到单元,用于对所述第一动态控制参数和所述边缘噪声进行相加,得到边缘控制参数;
159.特效处理参数得到单元,用于依据阶跃函数,对所述边缘控制参数与所述消融边缘值进行处理,对处理结果进行反向处理,得到对应所述溶解方向上的第一特效处理参数。
160.可选的,为了获得顶点着色器输出的顶点数据,上述装置还可以包括:
161.扰动噪声获得模块,用于获得针对所述虚拟对象模型的各顶点像素的顶点坐标的扰动噪声;
162.干扰顶点坐标得到模块,用于利用所述扰动噪声对所述顶点坐标的坐标值进行扰动处理,得到干扰顶点坐标;
163.目标顶点坐标得到模块,用于依据消融控制参数,在原有的所述顶点坐标和所述干扰顶点坐标之间进行线性插值,得到目标顶点坐标;所述消融控制参数至少依据所述第一动态控制参数获得;
164.顶点数据得到模块,用于通过顶点着色器对所述目标顶点坐标进行处理,得到能够表征目标空间下的目标显示位置的顶点数据。
165.可选的,上述装置还可以包括:消融控制参数获得模块,用于至少依据所述第一动态控制参数,获得消融控制参数。在一些实施例中,消融控制参数获得模块可以包括:
166.边缘控制参数得到单元,用于对所述第一动态控制参数和预设边缘颜色渐变梯度控制参数进行融合处理,得到边缘控制参数;
167.消融控制参数得到单元,用于对所述边缘控制参数、所述第一动态控制参数以及所述第一坐标值进行平滑阶跃运算,得到在所述溶解方向上的消融控制参数。
168.需要说明的是,关于上述各装置实施例中的各种模块、单元等,均可以作为程序模块存储在存储器中,由处理器执行存储在存储器中的上述程序模块,以实现相应的功能,关于各程序模块及其组合所实现的功能,以及达到的技术效果,可以参照上述方法实施例相应部分的描述,本实施例不再赘述。
169.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器加载并执行,实现上述的虚拟对象的特效处理方法的各步骤,具体实现过程可以参照上述实施例相应部分的描述,本实施例不做赘述。
170.本技术还提出了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述虚拟对象的特效处理方法方面或虚拟对象的特效处理装置方面的各种可选实现方式中所提供方法,具体实现过程可以参照上述相应实施例的描述,不做赘述。
171.最后,需要说明,本说明书中各个实施例采用递进或并列的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、计算机设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
172.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计预设条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
173.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本技术的核心思想或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。