一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种虚拟角色的处理方法、装置、电子设备及存储介质与流程

2022-04-13 20:00:13 来源:中国专利 TAG:


1.本技术涉及游戏技术领域,具体而言,涉及一种虚拟角色的处理方法、装置、电子设备及存储介质。


背景技术:

2.随着游戏产业的画面计算处理能力日渐进步,需要达到与真实画面愈发接近的时代已经到来,其中,角色皮肤的表现力在各主机端游戏中不断提升。角色皮肤渲染方法可以模拟皮肤的次表面散射,模拟出光线到达皮肤后,除了在表面反射和被吸收的光外,还有一部分光进入了皮肤内部进行散射再从皮肤内射出的光源结果,并且通过在光源上叠加颜色,使得皮肤呈现不同的颜色,例如微微呈现泛红的颜色,使得皮肤更加的趋于真实。
3.现有技术中,在游戏领域存在多种次表面散射渲染技术,如可以通过长时间渲染的方式实现次表面散射效果。例如,传统的屏幕空间模糊方案可通过对贴图进行多次高斯模糊的方式,来获取光在表皮层散射的结果,但是这种方案需要消耗较多的算力,给虚拟角色渲染带来较大压力,对硬件性能的要求也越来越高,难以应用在移动终端;若为了能够应用在移动终端,减少算力同时降低皮肤显示精度,又会影响皮肤质感,使游戏体验较差。因此,目前难以在算力和皮肤呈现效果之间实现平衡。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种虚拟角色的处理方法、装置、电子设备及存储介质,以解决难以在算力和皮肤呈现效果之间实现平衡的技术问题。
5.第一方面,本技术实施例提供了一种虚拟角色的处理方法,应用于移动终端,所述处理方法包括:
6.获取目标虚拟角色在当前虚拟场景中的光源作用下的皮肤明亮区域和皮肤灰暗区域;
7.根据目标虚拟角色的角色皮肤在所述皮肤明亮区域和所述皮肤灰暗区域中的亮度,确定角色高模模型导出的法线贴图在合成所述角色皮肤时的第一权重以及角色低模模型的低模模型法线在合成所述角色皮肤时的第二权重;其中,所述法线贴图携带有角色低模模型所在切线空间内的角色高模模型的高模模型法线,所述第一权重和所述第二权重分别用于表示所述法线贴图和所述低模模型法线在合成所述角色皮肤时的参与度;
8.针对每个低模模型法线,根据与该低模模型法线的位置相对应的法线贴图中的高模模型法线在合成所述角色皮肤时的第一权重以及该低模模型法线在合成所述角色皮肤时的第二权重,计算该低模模型法线对应的合成法线值;
9.利用所述合成法线值以及预先确定的颜色贴图采样结果渲染所述角色低模模型,得到所述目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有所述合成皮肤的目标虚拟角色。
10.在本技术一种可选的实施例中,针对所述皮肤明亮区域,所述第一权重与所述亮
度呈正相关关系,所述第二权重与所述亮度呈负相关关系;针对所述皮肤灰暗区域,所述第一权重和所述第二权重均不随所述亮度变化。
11.在本技术一种可选的实施例中,所述皮肤明亮区域为所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内所对应的区域;所述皮肤灰暗区域为所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内所对应的区域;其中,所述第一角度范围内的任意角度均小于所述第二角度范围内的任意角度。
12.在本技术一种可选的实施例中,在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内时,所述第一权重的值和所述第二权重的值均是根据低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果确定的,其中,所述第一权重的值与所述点乘结果呈正相关关系,所述第二权重的值与所述点乘结果呈负相关关系;在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内时,所述第一权重的值和所述第二权重的值均不变。
13.在本技术一种可选的实施例中,在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内时,所述第一权重的值为低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果,所述第二权重的值为1与所述第一权重的值之间的差值;在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内时,所述第一权重的值均为0,所述第二权重的值均为1。
14.在本技术一种可选的实施例中,针对每个低模模型法线,根据与该低模模型法线的位置相对应的法线贴图中的高模模型法线在合成所述角色皮肤时的第一权重以及该低模模型法线在合成所述角色皮肤时的第二权重,计算该低模模型法线对应的合成法线值的步骤,包括:
15.针对每个低模模型法线,将与该低模模型法线的位置相对应的法线贴图中的高模模型法线与所述高模模型法线在合成所述角色皮肤时的第一权重进行求积处理,得到所述高模模型法线的第一待合成法线;
16.将该低模模型法线与所述低模模型法线在合成所述角色皮肤时的第二权重进行求积处理,得到所述低模模型法线的第二待合成法线;
17.将所述第一待合成法线与所述第二待合成法线进行求和处理,得到该低模模型法线对应的合成法线值。
18.在本技术一种可选的实施例中,通过以下步骤预先确定颜色贴图采样结果:
19.根据目标虚拟角色的角色皮肤在所述皮肤明亮区域和所述皮肤灰暗区域中的亮度,对目标虚拟角色的颜色贴图进行采样,得到颜色贴图采样结果;其中,对所述颜色贴图进行采样的精度与所述亮度呈正相关关系。
20.在本技术一种可选的实施例中,根据目标虚拟角色的角色皮肤在所述皮肤明亮区域和所述皮肤灰暗区域中的亮度,对目标虚拟角色的颜色贴图进行采样,得到颜色贴图采样结果的步骤,包括:
21.根据所述低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果,对目标虚拟角色的颜色贴图进行采样,得到与所述点乘结果相对应的颜色贴图采样结果;其中,所述点乘结果用于确定颜色贴图的分辨率,且所述点乘结果与颜色贴图的分辨率呈正相关关系。
22.在本技术一种可选的实施例中,还通过以下步骤预先确定颜色贴图采样结果:
23.根据获取到的当前处于虚拟场景中的目标虚拟角色与虚拟场景中的摄像机之间的第一距离,对目标虚拟角色的颜色贴图进行采样,得到颜色贴图采样结果;其中,对颜色贴图进行采样的精度与所述第一距离呈负相关关系。
24.第二方面,本技术实施例还提供了一种虚拟角色皮肤的处理装置,应用于移动终端,所述处理装置包括:
25.明暗区域获取模块,用于获取目标虚拟角色在当前虚拟场景中的光源作用下的皮肤明亮区域和皮肤灰暗区域;
26.权重确定模块,用于根据目标虚拟角色的角色皮肤在所述皮肤明亮区域和所述皮肤灰暗区域中的亮度,确定角色高模模型导出的法线贴图在合成所述角色皮肤时的第一权重以及角色低模模型的低模模型法线在合成所述角色皮肤时的第二权重;其中,所述法线贴图携带有角色低模模型所在切线空间内的角色高模模型的高模模型法线,所述第一权重和所述第二权重分别用于表示所述法线贴图和所述低模模型法线在合成所述角色皮肤时的参与度;
27.法线合成模块,用于针对每个低模模型法线,根据与该低模模型法线的位置相对应的法线贴图中的高模模型法线在合成所述角色皮肤时的第一权重以及该低模模型法线在合成所述角色皮肤时的第二权重,计算该低模模型法线对应的合成法线值;
28.皮肤合成模块,用于利用所述合成法线值以及预先确定的颜色贴图采样结果渲染所述角色低模模型,得到所述目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有所述合成皮肤的目标虚拟角色。
29.第三方面,本技术实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上所述虚拟角色的处理方法的步骤。
30.第四方面,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的虚拟角色的处理方法的步骤。
31.本技术实施例提供的一种虚拟角色的处理方法、装置、电子设备及存储介质,获取目标虚拟角色在当前虚拟场景中的光源作用下的皮肤明亮区域和皮肤灰暗区域,针对皮肤明亮区域,角色皮肤的皮肤细节应当多一些,以使皮肤更加真实,针对皮肤灰暗区域,角色皮肤的皮肤细节应当少一些,这时由于光线灰暗,不需要展现过多的皮肤细节,以减少移动终端的算力;进而,根据目标虚拟角色的角色皮肤在皮肤明亮区域和皮肤灰暗区域中的亮度,确定角色高模模型导出的法线贴图在合成角色皮肤时的第一权重以及角色低模模型的低模模型法线在合成角色皮肤时的第二权重;其中,法线贴图携带有角色低模模型所在切线空间内的角色高模模型的高模模型法线,高模模型法线所能展现的皮肤细节较多,而低模模型法线则不带有任何皮肤细节,并且第一权重和第二权重分别用于表示法线贴图和低模模型法线在合成角色皮肤时的参与度,这样,在皮肤明亮区域,第一权重在合成角色皮肤时的参与度较大,虚拟角色展示的皮肤细节也较多,而在皮肤灰暗区域,第二权重在合成角色皮肤时的参与度较大,且虚拟角色展示的皮肤细节较少。在这样的条件下,针对每个低模
模型法线,根据与该低模模型法线的位置相对应的法线贴图中的高模模型法线在合成角色皮肤时的第一权重以及该低模模型法线在合成角色皮肤时的第二权重,计算该低模模型法线对应的合成法线值;利用合成法线值以及预先确定的颜色贴图采样结果渲染角色低模模型,得到目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有合成皮肤的目标虚拟角色。
32.与现有技术中难以在算力和皮肤呈现效果之间实现平衡相比,本技术实施例能够根据光源照射虚拟角色所形成的皮肤明亮区域和皮肤灰暗区域中的不同亮度,调整虚拟角色所展现的皮肤细节。具体地,根据皮肤明亮区域和皮肤灰暗区域中的不同亮度调整参与计算的法线贴图中的高模模型法线和低模模型法线的参与度,以实现移动终端的算力和皮肤呈现效果之间的平衡,进而在保证皮肤真实清晰的情况下,降低皮肤渲染时的计算量,避免了移动终端的性能消耗过大的问题。
33.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
34.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
35.图1为本技术实施例所提供的一种虚拟角色的处理系统的示意图;
36.图2为本技术实施例所提供的一种虚拟角色的处理方法的流程图;
37.图3为本技术实施例所提供的一种改进前和改进后的角色皮肤示意图;
38.图4为本技术实施例所提供的一种虚拟角色的处理装置的结构示意图;
39.图5为本技术实施例所提供的一种电子设备的结构示意图。
具体实施方式
40.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本技术保护的范围。
41.本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
42.应当理解,在本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或者两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,
a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含a、b和/或c”是指包含a、b、c三者中任1个或任2个或3个。
43.应当理解,在本技术实施例中,“与a对应的b”、“与a相对应的b”、“a与b相对应”或者“b与a相对应”,表示b与a相关联,根据a可以确定b。根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其他信息确定b。
44.随着游戏产业的画面计算处理能力日渐进步,需要达到与真实画面愈发接近的时代已经到来,其中,角色皮肤的表现力在各主机端游戏中不断提升。角色皮肤渲染方法可以模拟皮肤的次表面散射,模拟出光线到达皮肤后,除了在表面反射和被吸收的光外,还有一部分光进入了皮肤内部进行散射再从皮肤内射出的光源结果,并且通过在光源上叠加颜色,使得皮肤呈现不同的颜色,例如微微呈现泛红的颜色,使得皮肤更加的趋于真实。
45.现有的皮肤渲染中,为了提高皮肤的真实感,在游戏领域存在多种次表面散射渲染技术,如可以通过长时间渲染的方式实现次表面散射效果。例如,传统的屏幕空间模糊方案可通过对贴图进行多次高斯模糊的方式,来获取光在表皮层散射的结果,但是这种方案需要消耗较多的算力,给虚拟角色渲染带来较大压力,对硬件性能的要求也越来越高,但是难以应用在移动终端。此外,还可以通过光源方向和模型皮肤部位每个像素点的法线方向,获取多个第一索引值集合,根据包含明暗强度渐变的第一贴图与预设的索引值的映射关系,确定第一索引值集合中每个索引值对应的明暗强度,并得到多个明暗强度值集合,将每个明暗强度值集合与其相对应的颜色进行叠加,得到多个光源值集合,将多个光源值集合进行融合,并将融合后的结果作用于模型的皮肤上。由此,通过上述的方法可以模拟出皮肤的次表面散射,模拟出了光线到达皮肤后,除了在表面反射和被吸收的光外,还有一部分光进入了皮肤内部进行散射再从皮肤内射出的光源结果,使得皮肤接近真实的光源表现,并且通过在光源上叠加颜色,使得皮肤呈现不同的颜色,例如微微呈现泛红的颜色,使得皮肤颜色更加的趋于真实。这种方式需要模拟多层反射的次表面散射的结果,使得每层反射具备不同的明暗效果,但是这种方式无疑增加了运算量,虽然皮肤质感真实,但是对终端处理性能的要求极高,难以应用在移动终端。
46.目前,游戏或各类仿真软件中,对于角色皮肤材质的表现一直受到性能的影响,其中,在手机或虚拟仿真设备上尤为突出。现有的技术方案中,移动终端一般使用预积分方法进行皮肤渲染,示例性的,获取待渲染对象的散射图片,该散射图片用于表示曲率与色带之间的对应关系,其中,曲率使用虚拟场景中的光源方向与皮肤表面法线方向之间的点积结果表示,色带使用皮肤的透光程度来表示,皮肤表面法线方向用于表示皮肤上的各个像素点在世界空间坐标系下的法线方向,对该散射图片进行采样,得到预积分贴图采样结果;将得到的预积分贴图采样结果与皮肤基础颜色贴图相乘得到光源结果,该光源结果用于表示皮肤的最终渲染结果。上述技术方案虽然运算量较小,节省计算开销,但是这种方式展现出的角色皮肤质感比较干燥,类似于唐三彩的质感,其红润的感觉依旧停留在模型表层,缺乏真实皮肤该有的透润感。进而,现有的技术方案为了能够应用在移动终端,就需要减少算力,但减少算力的同时会降低皮肤显示精度,又会影响皮肤质感,使游戏体验较差。
47.这样一来,如何保持移动终端的算力和皮肤呈现效果之间的平衡是亟待解决的技术问题。
48.基于此,本技术实施例提供了一种虚拟角色的处理方法、装置、电子设备及存储介质,以解决难以在算力和皮肤呈现效果之间实现平衡的技术问题,在减少算力的同时不影响皮肤的通透感和真实度。
49.在本技术实施例中,在使用少面数的实时游戏数据中,为了达到更加写实、更加快速运算的实时渲染,需要使用法线贴图(normal map)。法线贴图是指将角色高模模型的高模模型法线向量利用rgb颜色表现为贴图(texture),勾勒出光源(light)的方向性,通过光的方向表现凹凸和体感阴影,以合成虚拟角色的角色皮肤。当计算光和阴影的方向以及环境贴图等的时候,便可以使用法线贴图。通过使用法线贴图,可以提升复杂且精致的材质效果,或者在表现类似凹凸、皮肤皱纹一样有精致细节的凹凸等部分,即便没有高面数资源,也可以利用贴图,为实现简单、快速的渲染提供很大的帮助。
50.本技术实施例提供的虚拟角色的处理方法可以在虚拟角色的处理系统中执行。图1是本技术实施例所提供的一种虚拟角色的处理系统的结构示意图,如图1所示,该处理系统1包括:图形处理器(graphics processing unit,gpu)10和显示器(display)20。图形处理器10是接收数据后的一种图像处理装置,用于处理图像的转变(transform)和光源(lighting)。其中,图形处理器10包括:模型数据处理模块101、光源信息预处理模块102、混合模块103、贴图数据处理模块104、以及光源处理模块105。
51.模型数据处理模块101用于对已输入的角色低模模型进行数据采集,包括角色低模模型的低模模型法线信息、低模模型uv信息。其中,低模模型法线信息用于输入至光源信息预处理模块102进行处理,uv信息用于输入至贴图数据处理模块104进行处理。
52.需要说明的是,角色低模模型指的是低精度模型,具有结构简单,面少,细节少的特点。低模模型法线信息指的是角色低模模型的顶点法线信息,该顶点法线信息不带有任何细节;uv信息是u,v纹理贴图坐标的简称,它定义了图片上每个点的位置信息。
53.光源信息预处理模块102根据模型数据处理模块101输出的低模模型法线信息,利用低模模型法线方向与虚拟场景中的光源方向做点积处理,并输出点积结果,并将该点积结果作为光源信息预处理结果,示例性的,光源信息预处理结果为集合[1,-1]中的任意一个值,同时将得到的光源信息预处理结果输入至混合模块103。
[0054]
混合模块103用于对光源信息预处理结果进行重映射,针对颜色贴图和法线贴图分别返回一个权重。其中,针对颜色贴图的权重是将光源信息预处理结果从集合[1,-1]重映射到集合[0,2]。针对法线贴图的混合权重,将光源信息预处理结果从集合[1,-1]重映射到集合[1,0],这里,集合[1,-1]中的集合[0,-1]映射后均为0。
[0055]
贴图数据处理模块104用于对已输入的贴图(包括颜色贴图和法线贴图)进行采样得到采样结果,并在采样过程中根据混合模块针对光源信息预处理结果的重映射结果对采样结果进行干预。然后,贴图数据处理模块104会使用低模模型uv信息对散射图片进行采样,得到皮肤表面每个部位的皮肤通透程度。
[0056]
其中,贴图数据处理模块104针对颜色贴图的采样过程如下:颜色贴图的采样依据为模型数据处理模块101产生的低模模型uv信息和混合模块103产生的光源信息预处理结果的重映射结果,基于上述信息对颜色贴图进行采样,低模模型uv信息用于定位颜色贴图中的具体位置,从而获得颜色贴图上对应位置的颜色值。在利用混合模块产生的光源信息预处理结果的重映射结果的基础上,根据虚拟角色与虚拟场景中的摄像机之间的距离以及
虚拟角色在虚拟场景中的光源作用下所形成的明暗区域大小,来决定使用颜色贴图的哪一级,其中,提前做好不同等级尺寸的颜色贴图,例如,等级可包括1024*1024级、512*512级、256*256级、200*200级等。
[0057]
进一步地,贴图数据处理模块104针对法线贴图的采样过程如下:法线贴图的采样依据是模型数据处理模块101产生的低模模型法线信息,将采集到的法线贴图颜色的rgb值(范围为[0,1])重映射到集合[-1,1]中,作为角色高模模型在低模模型切线空间下的法线方向;再使用混合模块103产生的光源信息预处理结果的重映射结果对角色高模模型在低模模型切线空间下的法线方向和向量(0,0,1)做线性插值,得到的结果通过空间转换矩阵从低模模型切线空间转换到世界空间中,将该结果作为最终参与光源计算的合成法线信息。
[0058]
需要说明的是,角色高模模型指的是高精度模型,具有结构复杂、面多、细节丰富的特点,高模本身就有很多精度和细节,模型性能主要取决于建模本身,但高模的高性能效果往往伴随着更大的运行负担。切线空间是由角色低模模型上每个顶点的切线、副切线和法线方向构成xyz轴,由这个xyz轴构成的笛卡尔坐标系称为当前位置的切线空间。
[0059]
最后,光源处理模块105先使用贴图数据处理模块104中产生的合成法线信息与虚拟场景中的光源方向做点积,将点积的结果从集合[1,-1]重映射到集合[1,0]中,将重映射后的结果作为预积分贴图采样时的横轴依据;使用贴图数据处理模块104中产生的皮肤通透程度作为预积分贴图采样时的纵轴依据;使用这两者对预积分贴图进行采样,得到皮肤的预积分光源结果;在将预积分光源结果与贴图数据处理模块104中得到的皮肤颜色值和场景灯光颜色,三者相乘,可以得到光源处理模块105输出的角色皮肤处理结果。
[0060]
在上述运行环境下,图2为本技术实施例所提供的一种虚拟角色的处理方法的流程图。本技术实施例所提供的虚拟角色的处理方法,应用于移动终端,如图2中所示,该处理方法包括:
[0061]
s210、获取目标虚拟角色在当前虚拟场景中的光源作用下的皮肤明亮区域和皮肤灰暗区域;
[0062]
s220、根据目标虚拟角色的角色皮肤在皮肤明亮区域和皮肤灰暗区域中的亮度,确定角色高模模型导出的法线贴图在合成角色皮肤时的第一权重以及角色低模模型的低模模型法线在合成角色皮肤时的第二权重;其中,法线贴图携带有角色低模模型所在切线空间内的角色高模模型的高模模型法线,第一权重和第二权重分别用于表示法线贴图和低模模型法线在合成角色皮肤时的参与度;
[0063]
s230、针对每个低模模型法线,根据与该低模模型法线的位置相对应的法线贴图中的高模模型法线在合成角色皮肤时的第一权重以及该低模模型法线在合成角色皮肤时的第二权重,计算该低模模型法线对应的合成法线值;
[0064]
s240、利用合成法线值以及预先确定的颜色贴图采样结果渲染角色低模模型,得到目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有合成皮肤的目标虚拟角色。
[0065]
首先,对本技术实施例中涉及的名称进行简单介绍。
[0066]
在本技术实施例中,可以通过移动终端提供图形用户界面,在图形用户界面中显示有至少部分虚拟场景,虚拟场景中包括至少一个虚拟角色,虚拟角色受玩家控制,其中:
[0067]
移动终端主要是指用于提供虚拟场景,并能够对虚拟角色进行控制操作的智能设
备,终端设备可以包括但不限于以下设备中的任意一种:智能手机、笔记本、平板电脑、动态影像专家压缩标准音频层面4(播放器)、游戏机、个人数字助理(pda)、电子书阅读器等。该移动终端中安装和运行有支持游戏的虚拟场景的应用程序,比如支持三维虚拟场景的应用程序。该应用程序可以包括但不限于虚拟现实应用程序、三维地图程序、军事仿真程序、moba游戏、多人枪战类生存游戏、第三人称射击游戏(tps,third-personal三人称射击游戏(景的应用程序)中的任意一种。可选地,该应用程序可以是单机版的应用程序,比如单机版的3d游戏程序,也可以是网络联机版的应用程序。
[0068]
图形用户界面是一种人与移动终端通信的界面显示格式,允许用户使用鼠标或键盘等输入设备操纵屏幕上的图标、标识或菜单选项,也允许用户通过在触控终端的触控屏上执行触摸操作来操纵屏幕上的图标或菜单选项,以选择命令、启动程序或执行其它一些任务等。
[0069]
虚拟场景是应用程序在移动终端或服务器上运行时显示(或提供)的场景,即,在正常进行游戏过程中所使用的场景。也就是说,虚拟场景是指在游戏进行过程中,承载虚拟角色的虚拟游戏控件,虚拟角色可以在虚拟场景中受用户(即,玩家)向移动终端所下达的操作指令的控制而进行移动、技能释放等动作。可选地,虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景和三维虚拟场景中的任意一种,游戏环境可以为天空、陆地、海洋等,其中,该陆地包括沙漠、城市等环境元素。其中,虚拟场景为用户控制虚拟角色完整游戏逻辑的场景。可选地,虚拟场景还可以用于至少两个虚拟角色之间的场景对战,在该虚拟场景中具有可供至少两个虚拟角色使用的虚拟资源。示例性的,虚拟场景可以包括以下元素中的任意一种或多种:游戏背景元素、游戏虚拟角色元素、游戏道具元素等。
[0070]
虚拟角色是指在虚拟环境中的可活动对象,可活动对象可以是虚拟人物、虚拟动物、动漫人物中的至少一种。可选地,当虚拟环境为三维虚拟环境时,虚拟角色可以是三维虚拟模型,每个虚拟角色在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。可选地,虚拟角色是基于三维人体骨骼技术构建的三维角色,该虚拟角色通过穿戴不同的皮肤来实现不同的外在形象。在一些实现方式中,虚拟角色也可以采用2.5维或2维模型来实现,本技术实施例对此不加以限定。
[0071]
在虚拟场景中可以存在有多个虚拟角色,该虚拟角色是玩家操控的虚拟角色(即,玩家通过输入设备进行控制的角色)、或者是通过训练设置在虚拟环境对战中的人工智能(artificial intelligence,ai)、或者设置在虚拟场景对战中的非玩家角色(non-player character,npc)。可选地,该虚拟角色可以是在虚拟场景中进行竞技的虚拟人物。可选地,该虚拟场景对战中的虚拟角色的数量是预设设置的,或者是根据加入对战的客户端的数量动态确定的,本技术实施例对此不作限定。在一种可能实现方式中,用户能够控制虚拟角色在该虚拟场景中进行移动,例如,控制虚拟角色跑动、跳动、爬行等,也能够控制虚拟角色使用应用程序所提供的技能、虚拟道具等与其他虚拟角色进行战斗。
[0072]
在本技术其中一种实施例中,虚拟角色的处理方法可以运行于移动终端或者是服务器。其中,移动终端可以为本地终端设备。当虚拟角色的处理方法运行于服务器时,该处理方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和移动终端。
[0073]
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云
游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,处理方法的储存与运行是在云游戏服务器上完成的,移动终端的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,移动终端可以是靠近用户侧的具有数据传输功能的显示设备,如,智能手机、笔记本、平板电脑、游戏机等;但是进行信息处理的设备为云端的云游戏服务器。在进行游戏时,玩家操作移动终端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过移动终端进行解码并输出游戏画面。
[0074]
在一可选的实施方式中,移动终端可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
[0075]
作为一个具体实施例,本技术实施例可以应用于游戏引擎unity中。unity是实时3d互动内容创作和运营平台,能够让包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助unity将创意变成现实,例如实现三维游戏、建筑可视化、实时三维动画等,是一个全面整合的专业游戏引擎。通过unity中的角色皮肤系统,可以高效地设置处于虚拟场景中的虚拟角色的皮肤材质,是虚拟场景制作中不可或缺的重要工具。
[0076]
在unity中的着色器(shader),是用来表达光线在角色低模模型的表面产生作用的且运行在显卡上的代码片段。在实际应用中,通过编写着色器可以在虚拟场景中实现所需的皮肤质感。示例性的,针对虚拟角色的皮肤,可以将实际的皮肤质感抽象成不同的参数,然后着色器利用参数对虚拟场景中的角色低模模型进行渲染,从而在虚拟场景中实现对应的皮肤质感。具体地,参数可以包括皮肤颜色和皮肤细节(如痘印、纹理)等,其中,皮肤颜色用于表达皮肤的颜色分布,皮肤细节用于表达皮肤表面的细节分布。在unity中,皮肤颜色可以通过颜色贴图记录,皮肤细节可以通过法线贴图记录。其中,法线贴图是可以应用到3d表面的特殊纹理,使角色低模模型的每个平面的各像素具有更多的皮肤细节信息,能够在角色低模模型的表面,创建出更多的立体视觉效果。具体地,法线贴图可以记录角色低模模型和角色高模模型之间的表面法线方向的差异,后期着色器利用法线贴图来处理光线的反射方向,使观看者产生错觉,以此增加角色低模模型表面的细节。
[0077]
进一步地,本技术实施例中的角色皮肤的处理可以在unity urp管线中的universal forward pass完成,与传统物体绘制顺序一致。随着虚拟场景中所有使用universal forward pass绘制的材质球绘制完成后,urp渲染管线会输出一张结果图,本实施例中叫camera opaquetexture。考虑到兼容性的问题,在管线中新增一个专门绘制皮肤的pass,本实施例中起名为:skinhd。在skinhd pass中拿到camera opaquetexture,并对这张图中的皮肤部分进行屏幕空间模糊,使得渲染后的皮肤更加真实通透。这样一来,在屏幕空间中对皮肤漫反射计算结果进行模糊,能够更加准确地模拟次表面散射对于皮肤表面颜色的贡献程度。
[0078]
下面以上述方法应用于服务器为例对本技术实施例提供的上述示例性的各步骤
分别进行说明。
[0079]
在步骤s210中,获取目标虚拟角色在当前虚拟场景中的光源作用下的皮肤明亮区域和皮肤灰暗区域。
[0080]
该步骤中,可以在游戏进行的过程中,实时获取目标虚拟角色在当前虚拟场景中的光源作用下的皮肤明亮区域和皮肤灰暗区域。其中,目标虚拟角色可以为当前虚拟场景中的任意一个虚拟人物或虚拟动物等。
[0081]
这里,由于虚拟场景中的光源以及处于虚拟场景中的虚拟角色的位置在不断变化,当前虚拟场景中的光源作用在目标虚拟角色上的皮肤明亮区域和皮肤灰暗区域也会随着变化。不同的区域对展现的皮肤细节要求不同,因此,本技术实施例需要实时获取虚拟场景中关于皮肤明亮区域和皮肤灰暗区域的相关数据,以实时更新游戏进行过程中的虚拟角色皮肤的呈现效果。
[0082]
一种实施例中,在第三人称视角下,目标虚拟角色在当前虚拟场景中的光源作用下会形成一条明暗交界线,明暗交界线的一侧为皮肤明亮区域,明暗交界线的另一侧为皮肤灰暗区域。皮肤明亮区域越靠近明暗交界线的位置,亮度越小,皮肤灰暗区域越靠近明暗交界线的位置,亮度越大。针对玩家来说,亮度越低,虚拟角色呈现的皮肤细节可以越少。
[0083]
具体地,皮肤明亮区域为低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内所对应的区域;皮肤灰暗区域为低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内所对应的区域;其中,第一角度范围内的任意角度均小于第二角度范围内的任意角度。
[0084]
这里,通过低模模型法线的方向与虚拟场景中的光源方向之间的角度大小来判断皮肤所属的亮度区域。其中,低模模型法线指的是角色低模模型表面的每一个点的法线方向,这里的法线方向以向量的形式保存。示例性的,假设p点是角色低模模型表面的任意点,其中,包括该p点是顶点的情况,p点的法线方向由该点所在三角面的三个顶点的法线方向插值混合得到,主要根据p点和三个顶点之间的距离关系确定,这里,p点的法线方向就可以称为低模模型法线。
[0085]
需要说明的是,p点的法线方向由该点所在三角面的三个顶点的法线方向插值混合得到,由于角色低模模型中的顶点数量较少,且顶点的法线方向不携带皮肤细节,所以通过这三个顶点的法线方向插值混合得到的p点的法线方向也不携带皮肤细节,即该低模模型法线不带有皮肤细节。
[0086]
为了使虚拟场景的物体更为真实,通常需要在虚拟场景中投射光源,该光源可以为点光源,也可以为平行光源。示例性的,可以预先对虚拟场景中设置的每个光源的光源属性进行编辑,然后限定光源个数,如至多只能是3盏光源同时有效,其中,方向光源必须是参与动态光源计算的,其次是特效中所带的点光源,最后是虚拟场景中的点光源。这样,可以在移动端有限的性能下既能具有动态光源的效果,同时又能保证移动终端的性能。这样一来,通过对光源增加一个可编辑的开启/关闭实时光源计算,然后在引擎中的游戏模式下,传入光源类型和光源的此属性值,以实现有限动态光源的实时光源计算。
[0087]
本技术实施例中,第一角度范围所对应的区域均是皮肤明亮区域,第二角度范围所对应的区域均是皮肤灰暗区域,第一角度范围内的任意角度均小于第二角度范围内的任意角度,示例性的,第一角度范围在0至90度之间,第二角度范围在90度至180度之间。当角
色低模模型表面的第一区域的法线方向与虚拟场景中的光源方向之间的角度为0度时,此时的光源正对着这个第一区域,这时,这个第一区域展示的皮肤细节最多。当角色低模模型表面的第二区域的法线方向与虚拟场景中的光源方向之间的角度为90度时,此时的光源侧对着这个第二区域,这时,这个第二区域的出射光线大多来自于其他区域的入射光线经过皮下组织的散射后从这个第二区域射出,这样的出射光线不会拥有太多的皮肤表面细节。其中,第一区域和第二区域为角色低模模型表面上的任意一块区域。第一区域的法线方向与第二区域的法线方向分别由第一区域和第二区域的中心点的法线方向确定。
[0088]
需要说明的是,只要低模模型法线的方向与虚拟场景中的光源方向之间的角度在90度至180度之间,光源都会导致虚拟角色产生阴影区域,且阴影区域的皮肤细节不需要显示。
[0089]
在步骤s220中,根据目标虚拟角色的角色皮肤在皮肤明亮区域和皮肤灰暗区域中的亮度,确定角色高模模型导出的法线贴图在合成角色皮肤时的第一权重以及角色低模模型的低模模型法线在合成角色皮肤时的第二权重;其中,法线贴图携带有角色低模模型所在切线空间内的角色高模模型的高模模型法线,第一权重和第二权重分别用于表示法线贴图和低模模型法线在合成角色皮肤时的参与度。
[0090]
该步骤中,在对虚拟角色进行皮肤渲染时,需要使用角色高模模型导出法线贴图,再将导出的法线贴图贴到角色低模模型上,这样也能使角色皮肤显示的更加精细,进而大大提高效率。其中,由角色高模模型导出的法线贴图携带有至少部分角色低模模型所在切线空间内的角色高模模型的高模模型法线。
[0091]
这里,低模模型法线指的是角色低模模型表面的每一个点的法线方向,该点的法线方向由该点所在三角面的三个顶点的法线方向插值混合得到;高模模型法线指的是角色高模模型表面每一个点的法线方向,该点的法线方向由该点所在三角面的三个顶点的法线方向插值混合得到;其中,角色高模模型的顶点数量远大于角色低模模型的顶点数量。
[0092]
其中,由于角色低模模型中的顶点数量较少,且顶点的法线方向不携带皮肤细节,所以通过角色低模模型中的三个顶点的法线方向插值混合得到的任一点的法线方向也不携带皮肤细节,即该低模模型法线不带有皮肤细节。由于角色高模模型中的顶点数量较多,且每个顶点的法线方向均携带皮肤细节,所以通过角色高模模型中的三个顶点的法线方向插值混合得到的任一点的法线方向也都携带皮肤细节,即该高模模型法线携带有皮肤细节。
[0093]
本技术实施例中,第一权重和第二权重分别用于表示法线贴图和低模模型法线在合成角色皮肤时的参与度;目标虚拟角色的角色皮肤在皮肤明亮区域和皮肤灰暗区域中的亮度不同,法线贴图在合成角色皮肤时的第一权重以及低模模型法线在合成角色皮肤时的第二权重也不同。
[0094]
一种优选的实施方式中,在低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内时,第一权重的值和第二权重的值均是根据低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果确定的,其中,第一权重的值与点乘结果呈正相关关系,第二权重的值与点乘结果呈负相关关系;在低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内时,第一权重的值和第二权重的值均不变。
[0095]
示例性的,在低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角
度范围内时,第一权重的值为低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果,第二权重的值为1与第二权重的值之间的差值;在低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内时,第一权重的值均为0,第二权重的值均为1。此外,可以根据低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果以及第一权重的值在虚拟场景中的变化规律来为第一权重赋值,同时,第一权重的值和第二权重的值的和始终不变。
[0096]
作为本技术的一种优选实施例,针对皮肤明亮区域,第一权重与亮度呈正相关关系,第二权重与亮度呈负相关关系;针对皮肤灰暗区域,第一权重和第二权重均不随亮度变化。
[0097]
其一,针对皮肤明亮区域,第一权重与亮度呈正相关关系,第二权重与亮度呈负相关关系。一种实施例中,利用低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果确定角色皮肤在虚拟场景中的亮度,将计算出的点乘结果按照预定数量级进行划分,找到划分后的每个点乘结果与亮度之间的对应关系,这里,低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果也对应第一权重的值和第二权重的值的取值区间。示例性的,皮肤明亮区域所对应的第一角度范围在0至90度之间,此时的点乘结果在1至0之间,根据第一权重与亮度呈正相关关系,第二权重与亮度呈负相关关系,当角色皮肤的亮度由大变小时,低模模型法线的方向与虚拟场景中的光源方向之间的角度由小变大,则第一权重的值由大变小,而第二权重的值则由小变大。如,由于光源作用在目标虚拟角色上导致虚拟场景中的光源方向与低模模型法线的方向之间的角度在30度的时候,第一权重的值为0.87,第二权重的值为0.13;当虚拟场景中的光源方向与低模模型法线的方向之间的角度在45度的时候,第一权重的值为0.71,第二权重的值为0.29;当虚拟场景中的光源方向与低模模型法线的方向之间的角度在60度的时候,第一权重的值为0.5,第二权重的值为0.5。
[0098]
此外,还可以将点乘结果分成多个区间,如1、(1,0.9]、[0.9,0.8]、[0.8,0.7]、[0.7,0.6]、[0.6,0.5]、[0.5,0.4]、[0.4,0.3]、[0.3,0.2]、[0.2,0.1]、[0.1,0)、0,确定每个区间对应的标定角度范围,1对应的低模模型法线的方向与虚拟场景中的光源方向之间的角度为0度,此时光源正对着目标虚拟角色,亮度最大,皮肤细节展示的最多;0对应的低模模型法线的方向与虚拟场景中的光源方向之间的角度为90度,此时光源侧对着目标虚拟角色,亮度较小,不需要展示皮肤细节;预先为每个区间赋予第一权重的值和第二权重的值,如,1(角度为0度)对应的第一权重的值为1,对应的第二权重的值为0;(1,0.9]对应的第一权重的值为0.95,对应的第二权重的值为0.05;[0.9,0.8]对应的第一权重的值为0.85,对应的第二权重的值为0.15;[0.8,0.7]对应的第一权重的值为0.75,对应的第二权重的值为0.25;[0.7,0.6]对应的第一权重的值为0.65,对应的第二权重的值为0.35;[0.6,0.5]对应的第一权重的值为0.55,对应的第二权重的值为0.45;[0.5,0.4]对应的第一权重的值为0.45,对应的第二权重的值为0.55;[0.4,0.3]对应的第一权重的值为0.35,对应的第二权重的值为0.65;[0.3,0.2]对应的第一权重的值为0.25,对应的第二权重的值为0.75;[0.2,0.1]对应的第一权重的值为0.15,对应的第二权重的值为0.85;[0.1,0]对应的第一权重的值为0.05,对应的第二权重的值为0.95;0(角度为90度)对应的第一权重的值为0,对应的第二权重的值为1。这样一来,判断由于光源作用在目标虚拟角色上导致当前虚拟场景中的光源方向与低模模型法线的方向之间的当前角度,根据当前角度计算点乘结果,找到当前角
度对应的目标区间,根据预先为目标区间设置的第一权重的值和第二权重的值,确定当前第一权重的值和当前第二权重的值。
[0099]
其二,针对皮肤灰暗区域,第一权重和第二权重均不随亮度变化。也就是说,针对皮肤灰暗区域,不需要展示皮肤细节,那么无论角色皮肤在虚拟场景中的亮度是否发生变化,第一权重和第二权重均不发生变化。示例性的,当低模模型法线的方向与虚拟场景中的光源方向之间的角度在90度至180度之间时,第一权重的值始终为0,第二权重的值始终为1。
[0100]
上述步骤根据光源照射角色低模模型所形成的明暗区域调整参与积分计算的法线,即光源照射多的区域,皮肤细节需要多一些,这时所采用的法线贴图多一些(相当于精度高的图片);光线照射少的区域,皮肤细节少一些,这时所采用的法线贴图少一些,选择多一些的低模模型法线(相当于精度低的图片),这样可以使得明暗交界线附近的皮肤细节减少,进一步增加皮肤的柔和程度以及降低处理皮肤细节的计算量。
[0101]
在步骤s230中,针对每个低模模型法线,根据与该低模模型法线的位置相对应的法线贴图中的高模模型法线在合成角色皮肤时的第一权重以及该低模模型法线在合成角色皮肤时的第二权重,计算该低模模型法线对应的合成法线值。
[0102]
该步骤中,基于高模模型法线和高模模型法线在合成角色皮肤时的第一权重,以及低模模型法线和低模模型法线在合成角色皮肤时的第二权重进行插值处理,得到该低模模型法线对应的合成法线值。其中,低模模型法线的数量决定了进行插值处理的次数。
[0103]
示例性的,针对每个低模模型法线,将与该低模模型法线的位置相对应的法线贴图中的高模模型法线与高模模型法线在合成角色皮肤时的第一权重进行求积处理,得到高模模型法线的第一待合成法线;将该低模模型法线与低模模型法线在合成角色皮肤时的第二权重进行求积处理,得到低模模型法线的第二待合成法线;将第一待合成法线与第二待合成法线进行求和处理,得到该低模模型法线对应的合成法线值。
[0104]
在步骤s240中,利用合成法线值以及预先确定的颜色贴图采样结果渲染角色低模模型,得到目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有合成皮肤的目标虚拟角色。
[0105]
在本技术实施例中,通过以下步骤预先确定颜色贴图采样结果:
[0106]
根据目标虚拟角色的角色皮肤在皮肤明亮区域和皮肤灰暗区域中的亮度,对目标虚拟角色的颜色贴图进行采样,得到颜色贴图采样结果;其中,对颜色贴图进行采样的精度与亮度呈正相关关系。
[0107]
这里,采样的精度可以通过颜色贴图的分辨率来展现。具体地,针对皮肤明亮区域,虚拟角色展示的皮肤细节需要多一些,此时,在对颜色贴图进行采样时,可以选择精度较高的颜色贴图,即,使用分辨率较高的颜色贴图进行采样;针对皮肤灰暗区域,虚拟角色展示的皮肤细节需要少一些,此时,在对颜色贴图进行采样时,可以选择精度较低的颜色贴图,即,使用分辨率较低的颜色贴图进行采样,这样,根据虚拟角色在虚拟场景中的光源作用下所形成的明暗区域大小,选择精度不同的颜色贴图进行采样,可以降低移动终端的算力。
[0108]
示例性的,根据低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果,对目标虚拟角色的颜色贴图进行采样,得到与点乘结果相对应的颜色贴图采样结果;其中,
点乘结果用于确定颜色贴图的分辨率,且点乘结果与颜色贴图的分辨率呈正相关关系。
[0109]
这里,点乘结果用于确定颜色贴图的分辨率,也就是说,点乘结果与颜色贴图的分辨率(采样的精度)呈正相关关系。
[0110]
本技术实施例中,针对皮肤明亮区域,低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果可以为[1,0];针对皮肤灰暗区域,低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果可以为[0,-1]。示例性的,可以将皮肤明亮区域对应的点乘结果进行预设数量级的划分,如得到[1,0.9]、[0.9,0.8]、[0.8,0.7]、[0.7,0.6]、[0.6,0.5]、[0.5,0.4]、[0.4,0.3]、[0.3,0.2]、[0.2,0.1]、[0.1,0],针对每个划分区间,可以为其赋予一个采样精度,如针对[1,0.9]赋予采样精度为a*a、针对[0.9,0.8]赋予采样精度为b*b、[0.8,0.7]赋予采样精度为c*c、针对[0.7,0.6]赋予采样精度为d*d、针对[0.6,0.5]赋予采样精度为e*e、针对[0.5,0.4]赋予采样精度为f*f、针对[0.4,0.3]赋予采样精度为g*g、针对[0.3,0.2]赋予采样精度为h*h、针对[0.2,0.1]赋予采样精度为i*i、针对[0.1,0]赋予采样精度为j*j,其中,a、b、c、d、e、f、g、h、i、j的数值依次降低。然后根据低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果,来确定一个采样精度,根据确定的采样精度对颜色贴图进行采样,得到与点乘结果相对应的颜色贴图采样结果。
[0111]
除此之外,还可以通过以下步骤预先确定颜色贴图采样结果:根据获取到的当前处于虚拟场景中的目标虚拟角色与虚拟场景中的摄像机之间的第一距离,对目标虚拟角色的颜色贴图进行采样,得到颜色贴图采样结果;其中,对颜色贴图进行采样的精度与第一距离呈负相关关系。
[0112]
这里,根据虚拟角色与虚拟场景中的摄像机之间的距离来决定使用颜色贴图的哪一级,其中,提前做好不同等级尺寸的颜色贴图,例如,等级可包括1024*1024级、512*512级、256*256级、200*200级等。
[0113]
示例性的,在对颜色贴图进行采样时,当摄像机越来越远的时候,如果还是采集原始图片,会出现闪烁,因为原始图片里面的细节太多了,这时就需要采集一些降低尺寸且相对模糊的图片,这样可以将颜色贴图导入游戏引擎中,游戏引擎会根据这张颜色贴图深层对应的尺寸,如,原始尺寸的1/2,原始尺寸的1/4,原始尺寸的1/8等一系列的图,根据远近不同去采集这些图片等,距离越远,级数越高,图片越模糊,而靠近明暗交界线的部分,也需要采集高等级的模糊图片,其中,若图片的原始尺寸是1024*1024,原始尺寸的1/2则为512*512,原始尺寸的1/4则为256*256等。
[0114]
这样一来,本技术实施例可以根据光源照射角色低模模型所形成的明暗区域调整颜色贴图的采样精度,同时根据虚拟角色与摄像机之间的距离来确定颜色贴图的采样精度。如明亮区域选择精度高的颜色贴图,灰暗区域选择精度低(比较模糊)的颜色贴图,如与摄像机的距离近的虚拟角色选择精度高的颜色贴图这种方式可以使明暗交界线部分的基础颜色变得更加柔和,进而对这样的颜色贴图进行采样,得到颜色贴图采样结果,还可以减少算力。除此之外,还可以缓解后面的屏幕空间模糊采样的压力,使得屏幕空间模糊的采样次数相对较低,这样使得移动终端的性能也可以支持该角色皮肤的处理。
[0115]
进一步地,若在游戏进行的过程中,当前虚拟场景中包括多个虚拟角色时,处理方法还包括:获取当前处于虚拟场景中的多个虚拟角色与虚拟场景中的摄像机之间的第二距离;根据多个虚拟角色与虚拟场景中的摄像机之间的第二距离,确定多个虚拟角色在虚拟
场景中的渲染优先级;其中,渲染优先级与第二距离的长度呈负相关关系;根据多个虚拟角色在虚拟场景中的渲染优先级,利用合成法线值以及预先确定的颜色贴图采样结果渲染角色低模模型,以得到目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有合成皮肤的目标虚拟角色。
[0116]
该步骤中,渲染优先级用于指示多个虚拟角色中优先选择哪个虚拟角色进行渲染。这里,可以根据多个虚拟角色中的每个虚拟角色与摄像机之间的第二距离来确定,第二距离的长度越小,该第二距离对应的虚拟角色的渲染优先级越高,即优先对其渲染,反之相反。
[0117]
除此之外,当利用合成法线值以及预先确定的颜色贴图采样结果渲染角色低模模型前,还可以使用法线贴图进行高光计算,得到的高光计算结果,使用高光计算结果、合成法线值以及预先确定的颜色贴图采样结果一起渲染角色低模模型,得到目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有合成皮肤的目标虚拟角色。
[0118]
需要注意的是,本技术实施例在进行虚拟角色的处理时,可以根据实际情况进行坐标空间的转换,如在世界空间下,虚拟角色的法线方向(角色低模模型的低模模型法线)是会发生变化的,可以通过矩阵转换的方式,将自身的顶点法线方向转换到世界空间下的顶点法线方向。
[0119]
示例性的,请参阅图3,图3为本技术实施例所提供的一种改进前和改进后的角色皮肤示意图,如图3所示,图片(a)为应用在移动终端的改进前的角色皮肤示意图,图片(b)为应用在移动终端的改进后的角色皮肤示意图,根据两张图片的对比可知,本技术实施例提供的虚拟角色的处理方法在减少移动终端算力的同时,增加了皮肤的质感和通透感。
[0120]
本技术实施例提供的虚拟角色的处理方法,与现有技术中难以在算力和皮肤呈现效果之间实现平衡相比,本技术实施例能够根据光源照射虚拟角色所形成的皮肤明亮区域和皮肤灰暗区域中的不同亮度,调整虚拟角色所展现的皮肤细节。具体地,根据皮肤明亮区域和皮肤灰暗区域中的不同亮度调整参与计算的法线贴图中的高模模型法线和低模模型法线的参与度,以实现移动终端的算力和皮肤呈现效果之间的平衡,本技术实施例不仅大大削弱了皮肤表层对光源计算的影响,使得皮肤漫反射结果脱离皮肤表面的细节,拥有了更深层皮下组织散射光线的特性。追加高光计算后,角色皮肤表现出了最表层皮肤的细微、精细的质感。与前面绘制好的漫反射结果形成了表层、皮下层明显的视觉差距,从而增加了皮肤的通透感,进而在保证皮肤真实清晰的情况下,还降低了皮肤渲染时的计算量,避免了移动终端的性能消耗过大的问题。
[0121]
基于同一发明构思,本技术实施例中还提供了与虚拟角色的处理方法对应的虚拟角色的处理装置,由于本技术实施例中的装置解决问题的原理与本技术实施例上述方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
[0122]
请参阅图4,图4为本技术实施例所提供的一种虚拟角色的处理装置的结构示意图。如图4中所示,本技术实施例提供的虚拟角色的处理装置,应用于移动终端,所述处理装置400包括:
[0123]
明暗区域获取模块410,用于获取目标虚拟角色在当前虚拟场景中的光源作用下的皮肤明亮区域和皮肤灰暗区域;
[0124]
权重确定模块420,用于根据目标虚拟角色的角色皮肤在所述皮肤明亮区域和所
述皮肤灰暗区域中的亮度,确定角色高模模型导出的法线贴图在合成所述角色皮肤时的第一权重以及角色低模模型的低模模型法线在合成所述角色皮肤时的第二权重;其中,所述法线贴图携带有角色低模模型所在切线空间内的角色高模模型的高模模型法线,所述第一权重和所述第二权重分别用于表示所述法线贴图和所述低模模型法线在合成所述角色皮肤时的参与度;
[0125]
法线合成模块430,用于针对每个低模模型法线,根据与该低模模型法线的位置相对应的法线贴图中的高模模型法线在合成所述角色皮肤时的第一权重以及该低模模型法线在合成所述角色皮肤时的第二权重,计算该低模模型法线对应的合成法线值;
[0126]
皮肤合成模块440,用于利用所述合成法线值以及预先确定的颜色贴图采样结果渲染所述角色低模模型,得到所述目标虚拟角色的合成皮肤,并在图形用户界面上显示包含有所述合成皮肤的目标虚拟角色。
[0127]
在本技术一种可选的实施例中,针对所述皮肤明亮区域,所述第一权重与所述亮度呈正相关关系,所述第二权重与所述亮度呈负相关关系;针对所述皮肤灰暗区域,所述第一权重和所述第二权重均不随所述亮度变化。
[0128]
在本技术一种可选的实施例中,所述皮肤明亮区域为所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内所对应的区域;所述皮肤灰暗区域为所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内所对应的区域;其中,所述第一角度范围内的任意角度均小于所述第二角度范围内的任意角度。
[0129]
在本技术一种可选的实施例中,在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内时,所述第一权重的值和所述第二权重的值均是根据低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果确定的,其中,所述第一权重的值与所述点乘结果呈正相关关系,所述第二权重的值与所述点乘结果呈负相关关系;在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内时,所述第一权重的值和所述第二权重的值均不变。
[0130]
在本技术一种可选的实施例中,在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第一角度范围内时,所述第一权重的值为低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果,所述第二权重的值为1与所述第一权重的值之间的差值;在所述低模模型法线的方向与虚拟场景中的光源方向之间的角度在第二角度范围内时,所述第一权重的值均为0,所述第二权重的值均为1。
[0131]
在本技术一种可选的实施例中,法线合成模块430具体用于:针对每个低模模型法线,将与该低模模型法线的位置相对应的法线贴图中的高模模型法线与所述高模模型法线在合成所述角色皮肤时的第一权重进行求积处理,得到所述高模模型法线的第一待合成法线;
[0132]
将该低模模型法线与所述低模模型法线在合成所述角色皮肤时的第二权重进行求积处理,得到所述低模模型法线的第二待合成法线;
[0133]
将所述第一待合成法线与所述第二待合成法线进行求和处理,得到该低模模型法线对应的合成法线值。
[0134]
在本技术一种可选的实施例中,皮肤合成模块440用于通过以下步骤预先确定颜色贴图采样结果:
[0135]
根据目标虚拟角色的角色皮肤在所述皮肤明亮区域和所述皮肤灰暗区域中的亮度,对目标虚拟角色的颜色贴图进行采样,得到颜色贴图采样结果;其中,对所述颜色贴图进行采样的精度与所述亮度呈正相关关系。
[0136]
在本技术一种可选的实施例中,皮肤合成模块440具体用于:
[0137]
根据所述低模模型法线的方向与虚拟场景中的光源方向之间的点乘结果,对目标虚拟角色的颜色贴图进行采样,得到与所述点乘结果相对应的颜色贴图采样结果;其中,所述点乘结果用于确定颜色贴图的分辨率,且所述点乘结果与颜色贴图的分辨率呈正相关关系。
[0138]
在本技术一种可选的实施例中,皮肤合成模块440还用于通过以下步骤预先确定颜色贴图采样结果:
[0139]
根据获取到的当前处于虚拟场景中的目标虚拟角色与虚拟场景中的摄像机之间的第一距离,对目标虚拟角色的颜色贴图进行采样,得到颜色贴图采样结果;其中,对颜色贴图进行采样的精度与所述第一距离呈负相关关系。
[0140]
本技术实施例提供了一种虚拟角色的处理装置,能够根据光源照射虚拟角色所形成的皮肤明亮区域和皮肤灰暗区域中的不同亮度,调整虚拟角色所展现的皮肤细节。具体地,根据皮肤明亮区域和皮肤灰暗区域中的不同亮度调整参与计算的法线贴图中的高模模型法线和低模模型法线的参与度,以实现移动终端的算力和皮肤呈现效果之间的平衡,本技术实施例不仅大大削弱了皮肤表层对光源计算的影响,使得皮肤漫反射结果脱离皮肤表面的细节,拥有了更深层皮下组织散射光线的特性。追加高光计算后,角色皮肤表现出了最表层皮肤的细微、精细的质感。与前面绘制好的漫反射结果形成了表层、皮下层明显的视觉差距,从而增加了皮肤的通透感,进而在保证皮肤真实清晰的情况下,还降低了皮肤渲染时的计算量,避免了移动终端的性能消耗过大的问题。
[0141]
请参阅图5,图5为本技术实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。
[0142]
所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图2所示方法实施例中的虚拟角色的处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
[0143]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图2所示方法实施例中的虚拟角色的处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
[0144]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0145]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0146]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0147]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0148]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0149]
最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献