移动平台上的皮肤渲染方法及装置与流程
未命名
08-12
阅读:93
评论:0

1.本技术涉及图像渲染技术领域,具体而言,涉及一种移动平台上的皮肤渲染方法及装置。
背景技术:
2.虚拟角色的皮肤渲染技主要是通过计算机图形学技术将虚拟角色的皮肤表现得尽可能逼真、细腻的技术。
3.本技术人于2023年4月21日递交的、申请号为2023104326752、发明名称为虚拟角色的皮肤渲染的方法、装置及系统的中国专利申请中,提供了一种在服务器或者配置较高的计算机设备上渲染虚拟角色的皮肤的方法。在该申请中,对于待渲染的虚拟角色的皮肤上的每个像素点,使用嵌套半球积分来计算所述每个像素点的扩散剖面;基于所述扩散剖面、所述每个像素点的表面反射率、和所述每个像素点的扩散反射颜色,得到每个像素点的交界颜色;基于所述扩散剖面和所述交界颜色,进行模糊处理和透光处理,以对所述虚拟角色的皮肤进行渲染。
4.然而,由于这种渲染方法的计算量相对较大,因此只适用于服务器或高配置计算设备。对于移动设备,例如手机,使用此方法可能会导致虚拟角色渲染速度较慢的问题。
5.针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
6.本发明实施例提供了一种移动平台上的皮肤渲染方法,以至少解决由于移动设备计算能力较弱导致的在移动平台上渲染虚拟形象速度比较慢的技术问题。
7.根据本发明实施例的一个方面,提供了一种移动平台上的皮肤渲染方法,包括:针对待渲染的皮肤上的每一个像素点p,确定半圆上任意一点q的直接光照亮度lq和所述任意一点q到所述每一个像素点p的散射率q(x);基于所述直接光照亮度lq和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到预积分d(θ);利用所述预积分来在所述移动平台上对虚拟形象进行皮肤渲染。
8.根据本发明实施例的另一方面,还提供了一种移动平台上的皮肤渲染装置,包括:光照亮度确定模块,被配置为:针对待渲染的皮肤上的每一个像素点p,确定半圆上任意一点q的直接光照亮度lq和所述任意一点q到所述每一个像素点p的散射率q(x);预积分模块,被配置为基于所述直接光照亮度lq和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到预积分d(θ);渲染模块,被配置为利用所述预积分来在所述移动平台上对虚拟形象进行皮肤渲染。
9.在本发明实施例中,针对待渲染的皮肤上的每一个像素点p,确定半圆上任意一点q的直接光照亮度lq和所述任意一点q到所述每一个像素点p的散射率q(x);基于所述直接光照亮度lq和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到预积分d(θ);利用所述预积分来在所述移动平台上对虚拟形象进行皮肤渲染,进而解决了由于移动
设备计算能力较弱导致的在移动平台上渲染虚拟形象速度比较慢的技术问题。
附图说明
10.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
11.图1是本技术实施例公开的一种移动平台上的皮肤渲染方法的流程图;
12.图2是本技术实施例公开的光照示意图;
13.图3是本技术实施例公开的另一种移动平台上的皮肤渲染方法的流程图;
14.图4是本技术实施例公开的漫反射轮廓的渲染图;
15.图5是本技术实施例公开的质感皮肤的渲染图;
16.图6是本技术实施例公开的一种移动平台上的皮肤渲染装置的结构示意图;
17.图7示出了适于用来实现本公开实施例的电子设备的结构示意图。
18.其中,上述附图包括以下附图标记:
19.1001、cpu;1002、rom;1003、ram;1004、总线;1005、i/o接口;1006、输入部分;1007、输出部分;1008、存储部分;1009、通信部分;1010、驱动器;1011、可拆卸介质;100、皮肤渲染系统;62、光照亮度确定模块;64、预积分模块;66、渲染模块。
具体实施方式
20.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
21.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
22.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本技术的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
23.实施例1
24.本技术实施例提供了一种移动平台上的皮肤渲染方法,如图1所示,该方法包括以下步骤:
25.步骤s102,针对待渲染的皮肤上的每一个像素点p,确定半圆上任意一点q的直接光照亮度lq和所述任意一点q到所述每一个像素点p的散射率q(x)。
26.首先,确定直接光照亮度lq。
27.参考图2,获取所述半圆圆心o至所述半圆上任意一点q的直线与所述半圆圆心
o至所述每一个像素点p的直线之间的夹角x,以及光照方向与法线方向之间的夹角θ;基于所述与所述之间的夹角x以及所述光照方向与所述法线方向之间的夹角θ来确定所述任意一点q的直接光照亮度lq。
28.通过本步骤,可以更准确地计算待渲染皮肤表面每个像素点的亮度值,从而提高渲染质量和真实感。具体来说,本步骤考虑了光线从光源到皮肤表面上的反射和散射,通过计算任意一点q到每一个像素点p的散射率,可以更准确地计算像素点p的亮度值。此外,本步骤还考虑了光源位置和表面法线的影响,因为不同角度的光线照射到表面上会产生不同的亮度值,而法线方向则决定了表面的反射方向。最后,通过本步骤可以更准确地计算每个像素点的亮度值,从而提高渲染质量和真实感。同时,该方案的计算量也比较小,可以在实时渲染中使用。
29.然后,确定散射率q(x)。
30.散射率q(x)是与所述任意一点q到所述每一个像素点p之间的距离d相关的函数,其中,距离所述任意一点q越远的p点的散射率越小。
31.首先,确定用于描述次表面散射特征和所述任意一点q到所述每一个像素点p之间的距离d之间的关系的特性函数r(d)和所述散射率q(x)之间的关系。例如,可以基于所述半圆上散射率的能量守恒约束条件以及所述虚拟形象的皮肤次表面,来确定所述特性函数r(d);基于所述特性函数r(d)来确定所述特性函数r(d)和所述散射率q(x)之间的关系。在一些实施例中,可以通过下式来表述二者之间的关系:q(x)=kr(d),其中,k为常数。
32.本实施例中,通过特性函数r(d)和散射率q(x)之间的关系来描述次表面散射特征。通过使用能量守恒约束条件和虚拟形象的皮肤次表面,可以确定特性函数r(d)。然后,通过将特性函数r(d)与散射率q(x)联系起来,可以更好地理解和分析次表面散射现象。
33.在一些实施例中,还可以使用方程式q(x)=k∫r(||x-y||)dy来描述特性函数r(d)和散射率q(x)之间的关系,其中k为常数。这个方程式可以更好地理解次表面散射现象,并对图像进行更精细的处理和分析。
34.在上面的方程式中,x和y都是表示空间中的位置坐标。具体来说,x表示像素点的位置坐标,而y表示在计算特性函数r(d)时所需的积分变量,表示次表面散射特征中的某一点位置。在方程式q(x)=k∫r(||x-y||)dy中,||x-y||表示像素点x和散射点y之间的距离,r(||x-y||)表示这个距离下的特性函数值,dy则表示对y的积分。
35.步骤s104,基于所述直接光照亮度lq和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到用于表示最终的亮度的预积分d(θ)。
36.例如,基于所述直接光照亮度lq、所述散射率q(x)以及任意一点q所占半圆弧度δx,来确定所述任意一点q散射到p点的亮度;基于所述任意一点q散射到p点的亮度,将所述半球上所有的点进行积分,得到例如如下的预积分d(θ):
[0037][0038]
其中,r为特性函数。
[0039]
本实施例中,预积分d(θ)的计算是基于对半球上所有点的积分,因此可以用来表
示在给定的散射率q(x)和直接光照亮度lq下,半球的总亮度。这对于渲染和光照模拟应用非常有用。具体来说,通过对半圆弧度δx内的点进行积分,可以计算出散射到p点的亮度。然后,通过对整个半球上所有点的积分,可以得到在给定的散射率q(x)和直接光照亮度lq下,半球的总亮度d(θ)。这个预积分可以被用于计算光照场景中的各个部分的光照强度。在实际应用中,预积分d(θ)可以被存储为纹理或预计算的数据,以便在运行时快速地计算光照强度。
[0040]
总之,通过预积分d(θ),可以快速地计算光照场景的各个部分的亮度,这对于实时渲染和光照模拟应用非常有益。
[0041]
步骤s106,利用所述预积分d(θ),来生成光照贴图,并基于所述光照贴图在所述移动平台上对虚拟形象进行皮肤渲染。
[0042]
具体来说,生成光照贴图的过程包括将预积分d(θ)映射到一个纹理中,这个纹理中包含了光照场景中不同位置的亮度值。然后,将这个光照贴图应用于虚拟形象的皮肤渲染中,这样可以实现在不同光照条件下的真实感皮肤渲染。
[0043]
这个过程可以被用于实现高质量的皮肤渲染,因为它可以在移动平台上实现比传统的基于实时计算的方法更高的渲染质量。这是因为预积分d(θ)已经捕捉了光照场景中的各种变化,而且可以被快速地读取和应用于虚拟形象上。这种方法也可以被用于实现其他材质的渲染,例如金属、玻璃等。
[0044]
总之,步骤s106中利用预积分d(θ)生成光照贴图,并将其应用于移动平台上的虚拟形象皮肤渲染中,可以实现高质量的皮肤渲染和其他材质的渲染,这对于游戏、虚拟现实等应用非常有益。
[0045]
本技术提供了一种在移动平台上实现高效皮肤渲染的方法。通过使用预积分技术,避免了在渲染过程中需要进行的复杂光线跟踪计算,从而显著提高了渲染速度。具体的有益效果如下:
[0046]
1)快速渲染。通过使用预积分技术,该方案避免了在渲染过程中需要进行的复杂光线跟踪计算,从而显著提高了渲染速度。因此,该方案可以更快速地渲染出具有逼真皮肤外观的虚拟形象。
[0047]
2)提高性能。由于该方案的渲染速度快,可以在较短的时间内完成皮肤渲染,从而减少了在移动平台上执行渲染任务所需的计算资源。这将有助于提高设备性能和延长电池寿命。
[0048]
3)更加逼真。使用预积分技术,该方案可以更好地模拟光线在皮肤表面的反射和散射效果,从而生成更逼真的皮肤外观。
[0049]
综上所述,本技术实施例在移动平台上实现高效皮肤渲染的同时,还可以提高设备性能和延长电池寿命,从而为移动应用领域提供了更加出色的用户体验。
[0050]
实施例2
[0051]
本技术实施例提供了另一种移动平台上的皮肤渲染方法。移动平台上无法使用大量积分公式,因此,本技术将预积分光照作为基础,如图3所示,该皮肤渲染方法包括以下步骤:
[0052]
步骤s302,计算直接光照亮度。
[0053]
参考图2,p点是皮肤上的一点,由于皮肤具有次表面散射,故p点会受周围其他点
的影响。简单起,假射l方向辐射亮度为1,取半圆上任一点q,q的直接光照亮度为:
[0054][0055]
其中,x是半圆圆心o至所述半圆上任意一点q的直线与所述半圆圆心o至所述每一个像素点p的直线之间的夹角,θ是光线方向l和法线方向n之间的夹角。
[0056]
通过本步骤,可以提高渲染真实感。通过考虑光线在皮肤表面的散射,计算直接光照亮度可以更真实地模拟皮肤表面的光照效果,从而提高渲染真实感。还可以提高图像质量。皮肤表面的光照效果对于人物渲染的图像质量有很大的影响。通过计算直接光照亮度,可以更准确地计算每个像素点的亮度值,从而提高图像的质量。此外,还能够提高渲染效率。计算直接光照亮度可以有效地减少渲染过程中需要计算的光照量,从而提高渲染效率。最后,还可以改善光照效果。通过考虑光线方向和法线方向之间的夹角,可以更准确地计算出每个像素点的光照效果,从而改善渲染结果。
[0057]
步骤s304,确定预积分方程。
[0058]
假设q点对p点散射率为q(x),x是法线方向之间的夹角,设q点所占半圆弧度为δx,则q点散射到p点的亮度为:cos(x+θ)q(x)δx。
[0059]
半球上有无限多的点,将半球上的点积分,最后的亮度即预积分方程为:
[0060][0061]
步骤s304确定预积分方程可以产生以下有益效果:1)提高渲染真实感。预积分方程考虑了半球上的所有点对目标点的贡献,因此可以更真实地模拟光线在半球上的散射和反射效果,从而提高渲染真实感。2)提高渲染效率。预积分方程可以有效地减少渲染过程中需要计算的光照量,因为只需要计算每个像素点的预积分方程值,而不需要对每个点进行计算。这可以提高渲染效率并减少计算成本。3)改善光照效果。通过将半球上所有点对目标点的贡献考虑在内,预积分方程可以更准确地计算每个像素点的光照效果,从而改善渲染结果。4)可适应不同材质。预积分方程中考虑了散射率对光线的影响,因此可以适应不同材质表面的光照计算。
[0062]
步骤s306,确定散射率。
[0063]
上述预积分方程中的未知量只有q(x),根据次表面散射特征,距离q点越远的p的散射率会逐步减小,所以q点对p点的散射率是一个距离相关的函数。
[0064]
设d为qp两点之间的距离,如图2所示,弦长d=2rsin(x/2),又因为对称关系,q点对p点与p点对q点散射率一样。根据能量守恒,半圆上散射率和为1,满足因此,需要寻找一个既符合上述公式,有符合皮肤次表面的特性函数r(d),但不能使q(x)=r(d),因为
[0065]
令q(x)=kr(d),将其代入下式:
[0066][0067]
∵q(x)=kr(d)
[0068]
∴
[0069]
通过步骤s306确定散射率可以产生以下有益效果:1)提高渲染真实感。散射率的确定可以更准确地模拟次表面散射的效果,从而提高渲染真实感。2)提高渲染效率。通过使用一个距离相关的函数来描述散射率,可以在保持真实感的同时减少计算量,从而提高渲染效率。3)改善光照效果。确定合适的散射率可以更准确地计算每个像素点的光照效果,从而改善渲染结果。4)适应不同材质。由于散射率是距离相关的函数,因此可以适应不同材质表面的次表面散射特性。5)确保能量守恒。通过使用能量守恒原理和散射率和为1的条件来确定散射率,可以确保渲染过程中能量守恒,从而提高渲染结果的准确性。
[0070]
步骤s308,确定最终亮度。
[0071]
将上述q(x)代入预积分方程得:
[0072][0073]
其中,k为常数。
[0074]
通过步骤s308确定最终亮度可以产生以下有益效果:1)提高渲染真实感。确定最终亮度可以更准确地模拟光线在材质表面的次表面散射效果,从而提高渲染真实感。2)提高渲染效率。通过使用预积分方程来计算最终亮度,可以减少渲染过程中的计算量,从而提高渲染效率。3)改善光照效果。确定合适的最终亮度可以更准确地计算每个像素点的光照效果,从而改善渲染结果。4)适应不同材质。由于最终亮度是通过散射率计算得到的,因此
可以适应不同材质表面的次表面散射特性。5)确保能量守恒。通过预积分方程计算最终亮度可以确保渲染过程中能量守恒,从而提高渲染结果的准确性。
[0075]
步骤s310,确定贴图。
[0076]
在实践中,为了计算简单,取半圆(-π/2,π/2),而不是整圆(-π,π),整圆r=1省去,而cos()>0,因为光照亮度不能为负数,因此,也可以采用下述公式来计算预积分,得到最终的亮度。
[0077][0078]
基于上面的两个预积分公式,来生成光照贴图,并进一步的基于光照贴图渲染出虚拟角色。图4是基于上述方法渲染出的漫反射的轮廓,图5是基于上述方法渲染出的质感的皮肤。
[0079]
将前面步骤中得到的光照信息转化为实际可用的纹理贴图,便于在渲染时使用。贴图可以存储光照信息的纹理数据,这样就可以在渲染时对每个像素进行采样,获得其对应的光照信息,从而实现高质量的次表面散射效果。贴图的生成可以基于前面的预积分方程和光照模型,通过计算每个像素的亮度值,并将其存储在贴图中。在渲染时,使用这个贴图,可以大大提高渲染效率和图像质量。
[0080]
实施例3
[0081]
本技术实施例提供了一种移动平台上的皮肤渲染装置,如图6所示,包括:光照亮度确定模块62、预积分模块64和渲染模块66。
[0082]
光照亮度确定模块62被配置为:针对待渲染的皮肤上的每一个像素点p,确定半圆上任意一点q的直接光照亮度lq和所述任意一点q到所述每一个像素点p的散射率q(x);预积分模块64被配置为基于所述直接光照亮度lq和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到用于表示最终的亮度的预积分d(θ);渲染模块66被配置为利用所述预积分d(θ),来生成光照贴图,并基于所述光照贴图在所述移动平台上对虚拟形象进行皮肤渲染。。
[0083]
需要说明的是:上述实施例提供的皮肤渲染装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的皮肤渲染装置与皮肤渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,此处赘述。
[0084]
实施例4
[0085]
图7示出了适于用来实现本公开实施例的电子设备的结构示意图。需要说明的是,图7示出的电子设备仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0086]
如图7所示,该电子设备包括中央处理单元(cpu)1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理。在ram 1003中,还存储有系统操作所需的各种程序和数据。cpu1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0087]
以下部件连接至i/o接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
[0088]
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(cpu)1001执行时,执行本技术的方法和装置中限定的各种功能。在一些实施例中,电子设备还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0089]
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0090]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0091]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况
下并不构成对该单元本身的限定。
[0092]
作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0093]
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现上述方法实施例的各个步骤等。
[0094]
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
[0095]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0096]
在本技术所提供的几个实施例中,应该理解到,所揭露的终端设备,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0097]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0098]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0099]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
技术特征:
1.一种移动平台上的皮肤渲染方法,其特征在于,包括:针对待渲染的皮肤上的每一个像素点p,确定以所述每一个像素点p的法线方向构成的半圆上任意一点q的直接光照亮度l
q
和所述任意一点q到所述每一个像素点p的散射率q(x);基于所述直接光照亮度l
q
和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到用于表示最终的亮度的预积分d(θ);利用所述预积分d(θ),来生成光照贴图,并基于所述光照贴图在所述移动平台上对虚拟形象进行皮肤渲染。2.根据权利要求1所述的方法,其特征在于,确定半圆上任意一点q的直接光照亮度l
q
,包括获取所述半圆圆心o至所述半圆上任意一点q的直线与所述半圆圆心o至所述每一个像素点p的直线之间的夹角x,以及光照方向与法线方向之间的夹角θ;基于所述与所述之间的夹角x以及所述光照方向与所述法线方向之间的夹角θ来确定所述任意一点q的直接光照亮度l
q
。3.根据权利要求1所述的方法,其特征在于,基于所述直接光照亮度l
q
和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到预积分d(θ),包括:基于所述直接光照亮度l
q
、所述散射率q(x)以及任意一点q所占半圆弧度δx,来确定所述任意一点q散射到p点的亮度;基于所述任意一点q散射到p点的亮度,将所述半球上所有的点进行积分,得到所述预积分d(θ)。4.根据权利要求1所述的方法,其特征在于,其中,所述散射率q(x)是与所述任意一点q到所述每一个像素点p之间的距离d相关的函数,其中,距离所述任意一点q越远的p点的散射率越小。5.根据权利要求4所述的方法,其特征在于,确定所述任意一点q到所述每一个像素点p的散射率q(x),包括:确定用于描述次表面散射特征和所述任意一点q到所述每一个像素点p之间的距离d之间的关系的特性函数r(d)和所述散射率q(x)之间的关系;基于所确定的关系,来确定所述散射率q(x)。6.根据权利要求5所述的方法,其特征在于,所确定的关系为:q(x)=kr(d),其中,k为常数。7.根据权利要求5所述的方法,其特征在于,基于以下公式来确定所述散射率q(x):8.根据权利要求5所述的方法,其特征在于,确定用于描述次表面散射特征和所述任意一点q到所述每一个像素点p之间的距离d之间的关系的特性函数r(d)和所述散射率q(x)之间的关系,包括:基于所述半圆上散射率的能量守恒约束条件以及所述虚拟形象的皮肤次表面,来确定所述特性函数r(d);
基于所述特性函数r(d)来确定所述特性函数r(d)和所述散射率q(x)之间的关系。9.一种移动平台上的皮肤渲染装置,其特征在于,包括:光照亮度确定模块,被配置为:针对待渲染的皮肤上的每一个像素点p,确定半圆上任意一点q的直接光照亮度l
q
和所述任意一点q到所述每一个像素点p的散射率q(x);预积分模块,被配置为基于所述直接光照亮度l
q
和所述散射率q(x),将所述半圆对应的半球上的所有点进行积分,得到用于表示最终的亮度的预积分d(θ);渲染模块,被配置为利用所述预积分d(θ),来生成光照贴图,并基于所述光照贴图在所述移动平台上对虚拟形象进行皮肤渲染。10.一种计算机可读存储介质,其上存储有程序,其特征在于,在所述程序运行时,使得计算机执行如权利要求1至7中任一项所述的方法。
技术总结
本申请提供了一种移动平台上的皮肤渲染方法及装置,该方法包括:针对待渲染的皮肤上的每一个像素点P,确定半圆上任意一点Q的直接光照亮度L
技术研发人员:王英 陈若含
受保护的技术使用者:世优(北京)科技有限公司
技术研发日:2023.05.06
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/