1.本公开涉及计算机技术领域,具体而言,涉及一种模型渲染方法、装置、计算机设备及存储介质。
背景技术:2.在对卡通形象等虚拟对象进行渲染时,为了提高渲染显示后虚拟对象的真实性,会在对虚拟对象进行渲染时添加在光照下的次表面散射效果。
3.相关技术中,在进行次表面散射渲染时往往需要实时计算出虚拟对象的厚度信息和曲率信息,并通过实时计算出的厚度信息和曲率信息进行次表面散射渲染,但这种渲染方式增大了终端渲染设备的实时计算量,增加了终端渲染设备的渲染消耗,进而导致虚拟对象的渲染效率较低。
技术实现要素: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.基于所述亮度数值筛选范围对所述初始曲率贴图的亮度值进行筛选,确定所述初始曲率贴图中对应的亮度值位于所述亮度数值筛选范围内的目标像素点;
52.对所述目标像素点的亮度值进行置零处理,得到所述目标曲率贴图。
53.一种可能的实施方式中,所述第二确定模块,在基于所述目标厚度贴图和所述目标曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息时,用于:
54.对所述目标厚度贴图和所述目标曲率贴图进行叠加处理,确定用于表征所述目标对象次表面散射范围的目标渲染信息。
55.第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
56.第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
57.关于上述模型渲染装置、计算机设备、及计算机可读存储介质的效果描述参见上述模型渲染方法的说明,这里不再赘述。
58.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
59.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
60.图1示出了本公开实施例所提供的一种模型渲染方法的流程图;
61.图2示出了本公开实施例提供的一种目标对象的三维模型的示意图;
62.图3a示出了本公开实施例所提供的模型渲染方法中,初始厚度贴图的示意图;
63.图3b示出了本公开实施例所提供的模型渲染方法中,初始曲率贴图的示意图;
64.图3c示出了本公开实施例所提供的模型渲染方法中,反色处理后的初始厚度贴图;
65.图3d示出了本公开实施例所提供的模型渲染方法中,目标厚度贴图的示意图;
66.图3e示出了本公开实施例所提供的模型渲染方法中,目标曲率贴图的示意图;
67.图3f示出了本公开实施例所提供的模型渲染方法中,叠加处理后得到的目标贴图的示意图;
68.图4示出了本公开实施例所提供的一种模型渲染装置的架构示意图;
69.图5示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
70.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
71.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
72.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
73.经研究发现,在进行次表面散射渲染时往往需要实时计算出虚拟对象的厚度信息
和曲率信息,并通过实时计算出的厚度信息和曲率信息进行次表面散射渲染,但这种渲染方式增大了终端渲染设备的实时计算量,增加了终端渲染设备的渲染消耗。
74.具体的,所述次表面散射用于描述光线穿过透明/半透明表面时发生散射的照明现象,是指光从物体表面进入物体后经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。在对虚拟对象进行次表面散射时,次表面散射分布主要在虚拟对象的边缘部分,越往中心便会穿透越少的光线。这是因为虚拟对象的表面往往是不规则的弧形而非完全的平面,因此虚拟对象的表面越往边界处便会相对的越薄,也即虚拟对象表面越弯曲处的地方发生次表面散射的程度往往越大(跟表面的曲率呈正相关);此外,光线的穿透是有能量衰减的,所以需要穿透的物体越厚则穿透后散射的能量也越少,也即虚拟对象越厚的地方发生次表面散射的程度往往越小(跟表面的厚度呈负相关)。
75.基于上述研究,本公开提供了一种模型渲染方法、装置、计算机设备及存储介质,可以预先确定目标对象对应的初始厚度贴图和初始曲率贴图,并基于所述初始厚度贴图和所述初始曲率贴图确定出用于表征所述目标对象次表面散射范围的目标渲染信息,从而可以通过提前计算出的目标渲染信息,在需要进行次表面散射渲染时直接使用,而不需要通过实时计算厚度信息和曲率信息,因此可以提高终端设备进行次表面散射渲染的效率。
76.为便于对本实施例进行理解,首先对本公开实施例所公开的一种模型渲染方法进行详细介绍,本公开实施例所提供的模型渲染方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、可穿戴设备等。在一些可能的实现方式中,该模型渲染方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
77.参见图1所示,为本公开实施例提供的模型渲染方法的流程图,所述方法包括s101~s104,其中:
78.s101:获取目标对象的三维模型。
79.s102:基于所述目标对象的三维模型确定用于表征所述目标对象的厚度信息的初始厚度贴图、以及用于表征所述目标对象的曲率信息的初始曲率贴图。
80.s103:基于所述初始厚度贴图和所述初始曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息。
81.s104:基于所述目标渲染信息对所述三维模型进行渲染,得到目标渲染模型。
82.以下是对上述步骤的详细介绍。
83.针对s101,所述目标对象的三维模型可以是包含目标对象的目标人脸的三维模型,所述目标人脸可以包括二次元对象的面部,由于二次元对象为虚拟对象,并不实际存在,因此可以通过构建二次元对象面部对应的三维模型的方式确定二次元对象的五官位置、五官大小等面部特征,并利用确定的三维模型模拟二次元对象在现实世界中希望呈现出的面部形象。
84.具体的,所述三维模型可以由多个顶点和面片(mesh)构成。
85.示例性的,参见图2所示,为本公开实施例提供的一种目标对象的三维模型的示意图,此处示出的三维模型为人工构建的虚拟模型,针对不同的目标对象可以确定不同的三维模型。
86.s102:基于所述目标对象的三维模型确定用于表征所述目标对象的厚度信息的初始厚度贴图、以及用于表征所述目标对象的曲率信息的初始曲率贴图。
87.这里,生成所述初始厚度贴图和所述初始曲率贴图的过程可以通过三维数字内容创作(digital content creation,ddc)工具完成,所述三维ddc工具例如可以是substance。
88.一种可能的实施方式中,在生成所述初始厚度贴图时,可以通过下述步骤a1~a2:
89.a1:获取与所述三维模型对应的最小遮挡距离和最大遮挡距离。
90.a2:基于所述最小遮挡距离、最大遮挡距离以及所述三维模型,生成与所述三维模型对应的初始厚度贴图。
91.这里,所述最小遮挡距离和所述最大遮挡距离可以是针对所述目标对象预先设置的参数,所述最小遮挡距离和所述最大遮挡距离构成的遮挡距离范围用于表征所述目标对象的厚度,所述遮挡距离范围越大则所述目标对象的三维模型中顶点间的距离差距越小,所述遮挡距离范围越小则所述目标对象的三维模型中顶点间的距离差距越大,所述最大遮挡距离与所述最小遮挡距离与生成的所述初始厚度贴图的黑白对比度相关。
92.示例性的,以使用所述三维ddc工具为substance为例,预先设置的所述最小遮挡距离可以是0.001,所述最大遮挡距离可以是0.1,基于所述substance、所述最大遮挡距离、所述最小遮挡距离以及所述三维模型,即可烘焙出所述三维模型对应的初始厚度贴图。
93.示例性的,所述初始厚度贴图的示意图可以如图3a所示,图3a中,越亮的位置处表示厚度越大(也即越厚),越暗的位置处表示厚度越小(也即越薄)。
94.这样,通过获取所述三维模型对应的最小遮挡距离和最大遮挡距离,可以基于所述最小遮挡距离和所述最大遮挡距离生成初始厚度贴图,从而便于后续基于生成的所述初始厚度贴图生成目标渲染信息。
95.一种可能的实施方式中,在生成所述初始曲率贴图时,可以通过下述步骤b1~b2:
96.b1:获取与所述三维模型对应的取样半径。
97.b2:基于所述取样半径和所述三维模型,生成与所述三维模型对应的初始曲率贴图。
98.这里,所述取样半径可以是针对所述目标对象预先设置的参数,所述取样半径用于表征曲率参考的模型圆周半径,所述取样半径越大则所述模型圆周半径越大,所述目标对象的三维模型中顶点间的曲率差距越大,所述取样半径越小则所述模型圆周半径越小,所述目标对象的三维模型中顶点间的曲率差距越小。
99.示例性的,以使用所述三维ddc工具为substance为例,预先设置的所述取样半径可以是0.001,基于所述substance、所述最大遮挡距离、所述最小遮挡距离以及所述三维模型,即可烘焙出所述三维模型对应的初始厚度贴图。
100.示例性的,所述初始曲率贴图的示意图可以如图3b所示,图3b中,越亮的位置处表示曲率越大,越暗的位置处表示曲率越小。
101.这样,通过获取所述取样半径,可以基于所述取样半径生成初始曲率贴图,从而便于后续基于生成的所述初始曲率贴图生成目标渲染信息。
102.s103:基于所述初始厚度贴图和所述初始曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息。
103.这里,虽然所述初始厚度贴图可以用于表征所述三维模型的厚度信息,所述初始曲率贴图可以用于表征所述三维模型的曲率信息,但是所述目标对象的次表面散射效果与所述目标对象表面的厚度呈负相关,而与所述目标对象表面的曲率呈正相关,如果直接将所述初始曲率贴图和所述初始厚度贴图直接进行合并处理,得到的合并处理后的贴图并不能用于渲染所述目标对象的次表面散射效果,因此需要先分别对所述初始厚度贴图和所述初始曲率贴图进行相应处理。
104.一种可能的实施方式中,在确定用于表征所述目标对象次表面散射范围的目标渲染信息时,可以通过下述步骤c1~c2:
105.c1:对所述初始厚度贴图进行亮度调整处理,得到目标厚度贴图;以及,基于预设的亮度数值筛选范围对所述初始曲率贴图的亮度值进行更新,得到目标曲率贴图。
106.这里,所述亮度调整处理用于调整所述初始厚度贴图中各像素点分别对应的亮度值;所述亮度值可以是归一化处理后的亮度值(范围为0~1),用于表征对应贴图的渲染属性,比如在厚度贴图中可以用于表征厚度,在曲率贴图中可以用于表征曲率。
107.一种可能的实施方式中,在确定所述目标厚度贴图时,可以通过下述步骤c111~c112:
108.c111:对所述初始厚度贴图进行反色处理,得到反色处理后的初始厚度贴图。
109.这里,所述反色处理表示对所述初始厚度贴图中各像素点分别对应的亮度值进行反色处理。
110.示例性的,以所述初始厚度贴图中归一化处理后的亮度值为范围为0~1,像素点a的亮度值为0.1为例,则反色处理后像素点a的亮度值为1-0.1=0.9。
111.示例性的,反色处理后的初始厚度贴图可以如图3c所示,图3c与图3a的图片形状相同,但亮度值表达的含义相反,图3c中越亮的位置处表示厚度越小(也即越薄),越暗的位置处表示厚度越大(也即越厚)。
112.c112:按照预设的亮度值调整比例对反色处理后的初始厚度贴图进行更新,得到所述目标厚度贴图。
113.这里,所述亮度值调整比例用于对所述初始厚度贴图中各像素点的亮度值进行缩小。
114.示例性的,以所述亮度值调整比例为25%,像素点b的亮度值为0.6为例,则所述像素点b更新后的亮度值为0.6*(1-25%)=0.45。
115.示例性的,所示目标厚度贴图可以如图3d所示,图3d与图3a的图片形状相同,但亮度值有所降低,图3d中越亮的位置处表示厚度越小(也即越薄),越暗的位置处表示厚度越大(也即越厚)。
116.此外,在对所述初始厚度贴图中各像素点的亮度值进行调整时,还可以响应针对所述初始厚度贴图的亮度调整指令,根据所述亮度调整指令对反色处理后的初始厚度贴图进行更新,得到所述目标厚度贴图。
117.这样,通过对所述初始厚度贴图进行反色处理,可以使得反色处理后的初始厚度贴图中各像素点的亮度值表征的厚度参数,与所述目标对象的次表面散射效果呈正相关,从而便于与曲率贴图进行合并处理;通过按照预设的亮度值调整比例对反色处理后的初始厚度贴图进行更新,可以使得最终生成的目标厚度贴图中各像素点对应的亮度值的数值范
围缩小,从而便于后续与曲率贴图进行合并处理。
118.一种可能的实施方式中,在确定所述目标曲率贴图时,可以通过下述步骤c121~c122:
119.c121:基于所述亮度数值筛选范围对所述初始曲率贴图的亮度值进行筛选,确定所述初始曲率贴图中对应的亮度值位于所述亮度数值筛选范围内的目标像素点。
120.c122:对所述目标像素点的亮度值进行置零处理,得到所述目标曲率贴图。
121.这里,为了突出所述目标对象的次表面散射效果,可以在所述目标对象对应的三维模型的曲率较大处进行次表面散射渲染,而在曲率较小处不进行次表面渲染。
122.示例性的,以所述初始厚度贴图中归一化处理后的亮度值为范围为0~1,所述亮度数值筛选范围为0~0.4,像素点c的亮度值为0.3为例,可以将所述像素点c对应的亮度值进行置零处理,也即将所述像素点c对应的亮度值调整为0。
123.示例性的,所述目标曲率贴图可以如图3e所示,图3e与图3b的图片形状相同,但亮度值较小的像素点的亮度值均被置零处理(也即图中的黑色部分)。
124.这样,通过将所述初始曲率贴图中,对应的亮度值位于所述亮度数值筛选范围内的目标像素点的亮度值进行置零处理,可以在后续跟厚度贴图进行合并处理后,实现在曲率较小处不进行次表面渲染的效果。
125.c2:基于所述目标厚度贴图和所述目标曲率贴图,生成与所述三维模型对应的初始厚度贴图。
126.一种可能的实施方式中,可以对所述目标厚度贴图和所述目标曲率贴图进行叠加处理,确定用于表征所述目标对象次表面散射范围的目标渲染信息。
127.这里,所述叠加处理例如可以是正片叠底处理等。
128.具体的,通过对所述目标厚度贴图和所述目标曲率贴图进行叠加处理,可以得到叠加处理后的目标贴图,所述目标贴图中各像素点分别对应的亮度值用于表征所述目标渲染信息。
129.示例性的,叠加处理后得到的目标贴图可以如图3f所示,图3f中各像素点的亮度值用于表征进行次表面散射的强度。
130.这样,由于所述目标厚度贴图中各像素点的亮度值与次表面散射呈正相关,所述目标曲率贴图中各像素点的亮度值也与次表面散射呈正相关,因此通过对所述目标厚度贴图和所述目标曲率贴图进行叠加处理,可以得到用于表征所述目标对象次表面散射范围的目标渲染信息。
131.进一步的,在得到所述目标贴图后,还可以响应针对所述目标贴图的目标编辑操作,根据所述目标编辑操作对所述目标贴图进行更新。
132.s104:基于所述目标渲染信息对所述三维模型进行渲染,得到目标渲染模型。
133.这里,在基于所述目标渲染信息对所述三维模型进行渲染时,可以将所述目标渲染信息输入至所述三维模型对应的着色器中,并通过所述着色器对所述三维模型进行渲染以添加次表面散射效果,得到所述目标渲染模型。
134.本公开实施例提供的模型渲染方法,可以预先确定目标对象对应的初始厚度贴图和初始曲率贴图,并基于所述初始厚度贴图和所述初始曲率贴图确定出用于表征所述目标对象次表面散射范围的目标渲染信息,从而可以通过提前计算出的目标渲染信息,在需要
进行次表面散射渲染时直接使用,而不需要通过实时计算厚度信息和曲率信息,因此可以提高终端设备进行次表面散射渲染的效率。
135.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
136.基于同一发明构思,本公开实施例中还提供了与模型渲染方法对应的模型渲染装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述模型渲染方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
137.参照图4所示,为本公开实施例提供的一种模型渲染装置的架构示意图,所述装置包括:获取模块401、第一确定模块402、第二确定模块403、渲染模块404;其中,
138.获取模块401,用于获取目标对象的三维模型;
139.第一确定模块402,用于基于所述目标对象的三维模型确定用于表征所述目标对象的厚度信息的初始厚度贴图、以及用于表征所述目标对象的曲率信息的初始曲率贴图;
140.第二确定模块403,用于基于所述初始厚度贴图和所述初始曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息;
141.渲染模块404,用于基于所述目标渲染信息对所述三维模型进行渲染,得到目标渲染模型。
142.一种可能的实施方式中,所述第一确定模块402用于根据以下步骤生成所述初始厚度贴图:
143.获取与所述三维模型对应的最小遮挡距离和最大遮挡距离;
144.基于所述最小遮挡距离、最大遮挡距离以及所述三维模型,生成与所述三维模型对应的初始厚度贴图。
145.一种可能的实施方式中,所述第一确定模块402用于根据以下步骤生成所述初始曲率贴图:
146.获取与所述三维模型对应的取样半径;
147.基于所述取样半径和所述三维模型,生成与所述三维模型对应的初始曲率贴图。
148.一种可能的实施方式中,所述第二确定模块403,在基于所述初始厚度贴图和所述初始曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息时,用于:
149.对所述初始厚度贴图进行亮度调整处理,得到目标厚度贴图;以及,基于预设的亮度数值筛选范围对所述初始曲率贴图的亮度值进行更新,得到目标曲率贴图;
150.基于所述目标厚度贴图和所述目标曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息。
151.一种可能的实施方式中,所述第二确定模块403,在对所述初始厚度贴图进行亮度调整处理,得到目标厚度贴图时,用于:
152.对所述初始厚度贴图进行反色处理,得到反色处理后的初始厚度贴图;
153.按照预设的亮度值调整比例对反色处理后的初始厚度贴图进行更新,得到所述目标厚度贴图。
154.一种可能的实施方式中,所述第二确定模块403,在基于预设的亮度数值筛选范围对所述初始曲率贴图的亮度值进行更新,得到目标曲率贴图时,用于:
155.基于所述亮度数值筛选范围对所述初始曲率贴图的亮度值进行筛选,确定所述初始曲率贴图中对应的亮度值位于所述亮度数值筛选范围内的目标像素点;
156.对所述目标像素点的亮度值进行置零处理,得到所述目标曲率贴图。
157.一种可能的实施方式中,所述第二确定模块403,在基于所述目标厚度贴图和所述目标曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息时,用于:
158.对所述目标厚度贴图和所述目标曲率贴图进行叠加处理,确定用于表征所述目标对象次表面散射范围的目标渲染信息。
159.本公开实施例提供的模型渲染装置,可以预先确定目标对象对应的初始厚度贴图和初始曲率贴图,并基于所述初始厚度贴图和所述初始曲率贴图确定出用于表征所述目标对象次表面散射范围的目标渲染信息,从而可以通过提前计算出的目标渲染信息,在需要进行次表面散射渲染时直接使用,而不需要通过实时计算厚度信息和曲率信息,因此可以提高终端设备进行次表面散射渲染的效率。
160.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
161.基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图5所示,为本公开实施例提供的计算机设备500的结构示意图,包括处理器501、存储器502、和总线503。其中,存储器502用于存储执行指令,包括内存5021和外部存储器5022;这里的内存5021也称内存储器,用于暂时存放处理器501中的运算数据,以及与硬盘等外部存储器5022交换的数据,处理器501通过内存5021与外部存储器5022进行数据交换,当计算机设备500运行时,处理器501与存储器502之间通过总线503通信,使得处理器501在执行以下指令:
162.获取目标对象的三维模型;
163.基于所述目标对象的三维模型确定用于表征所述目标对象的厚度信息的初始厚度贴图、以及用于表征所述目标对象的曲率信息的初始曲率贴图;
164.基于所述初始厚度贴图和所述初始曲率贴图,确定用于表征所述目标对象次表面散射范围的目标渲染信息;
165.基于所述目标渲染信息对所述三维模型进行渲染,得到目标渲染模型。
166.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的模型渲染方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
167.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的模型渲染方法的步骤,具体可参见上述方法实施例,在此不再赘述。
168.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
169.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实
现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
170.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
171.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
172.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
173.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。