1.本公开涉及图像处理技术领域,尤其涉及一种图像渲染方法、装置及电子设备。
背景技术:
2.玻璃是日常生活中常见的材料,广泛地用于各类生活必需品、装饰品的制作。在虚拟的三维场景中,玻璃也是高频出现的材质,用于模拟玻璃对物体的折射、反射等效果。
3.相关技术中,通常会利用贴图模拟的方式来实现玻璃效果。例如,材质捕捉(material capture,matcap)贴图,使用法线对matcap贴图进行采样,得到近似玻璃高光反射的效果,并适当的改变采样背景图片时的纹理坐标,达到模拟折射扭曲背景图片的效果,通过透明度透出部分背景图,模拟玻璃通透的质感。然而,通过前述方案得到玻璃效果时,贴图采样的方向是相对固定的,在物体运动时,视觉效果欠佳;并且贴图对设计人员的要求较高,制作贴图也比较复杂。
技术实现要素:
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.图1是根据一示例性实施例示出的一种图像渲染方法的流程图;
34.图2是根据一示例性实施例示出的一种图像渲染方法的光线折射示意图;
35.图3a是根据一示例性实施例示出的一种图像渲染方法的效果示意图;
36.图3b是根据一示例性实施例示出的一种图像渲染方法的另一效果示意图;
37.图4是根据一示例性实施例示出的一种图像渲染装置的框图;
38.图5是根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
39.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
40.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
41.本公开实施例中的图像渲染方法可以应用于各种电子设备,例如:计算机、平板电脑、手机、智能穿戴设备等,本实施例对此不作特殊限定。为了方便描述,后续实施例中以该电子设备为手机举例进行说明。
42.图1是根据一示例性实施例示出的一种图像渲染方法的流程图,如图1所示,该方法可以包括以下步骤。
43.在步骤s11中,获取背景图像对应的玻璃材质的待渲染对象,其中,待渲染对象是要在背景图像上添加的虚拟对象。
44.电子设备如手机上的摄像类应用能够对图像进行渲染,例如在图像中添加滤镜、添加相框、添加表情图片等。魔法表情是拍摄类应用提供的一种渲染效果,用于为图像添加虚拟装饰物。
45.本实施方式中,摄像头采集到的图像为背景图像。待渲染对象为需要添加到背景图像中的虚拟对象,例如虚拟衣服、虚拟饰品等。举例来说,当用户需要对当前拍摄的图像(即背景图像)添加虚拟装饰物时,用户可以选择应用中提供的各种魔法表情,例如虚拟衣服、虚拟帽子等。当用户选择添加的魔法表情为玻璃材质时,例如魔法表情为虚拟玻璃饰品,则该魔法表情为待渲染对象。
46.在步骤s12中,根据待渲染对象的三维模型,确定待渲染对象的虚拟厚度。该虚拟厚度是用于表征待渲染对象从光线入射到光线出射之间的厚度。
47.待渲染对象可以由设计人员建立,并设置其玻璃材质的属性信息,例如玻璃的折射率、玻璃厚度变化强度等。待渲染对象的三维模型是为待渲染对象建立的数学模型。示例性的,三维模型可以包括待渲染对象的顶点位置、纹理坐标、顶点法线方向、屏幕空间纹理坐标。其中,顶点位置指的是待渲染对象的顶点的坐标。纹理坐标指的是纹理贴图中各个像素点的坐标,三维模型的每个顶点可以对应一个纹理坐标,用于指示该顶点在纹理贴图中的位置。顶点法线方向指的是顶点处的法线方向。屏幕空间纹理坐标指的是顶点在屏幕上对应的坐标。此外,待渲染对象还可以包括其他参数,例如光照信息等,本实施方式对此不作特殊限定。
48.图像具备rgba四个通道的信息。其中,rgb三个通道分别存储的是红色(red)、绿色(green)、蓝色(blue),a通道存储的是图像的透明度。
49.通过视线和法线的乘积可以确定模型另一侧的边缘,即,模型的厚度。待渲染对象的三维模型的虚拟厚度可以通过视线与法线来确定。视线为人眼观察方向,即从人眼到三维模型顶点的方向,标记为-v,顶点法线为n,利用人眼观察方向与三维模型本身的法线方向(即顶点法线)可以模拟三维模型的虚拟厚度,简单高效。示例性的,dot函数可以模拟模型的厚度,dot函数可以计算两个向量的点积。通过dot(v,n)可以计算得出三维模型的虚拟厚度。其中,v为-v的反方向。将三维模型的每个顶点的顶点法线代入dot函数中,可以得到三维模型的每个顶点的虚拟厚度。或者,将dot(v,n)计算得到的厚度作为第一厚度,在第一厚度的基础上进行调整得到更加合理的虚拟厚度。举例来说,首先可以计算第一厚度的绝对值,避免第一厚度为负值时导致结果出错。然后将第一厚度的绝对值通过指数函数的方式增大差异,将得到的最终的结果作为三维模型的虚拟厚度。上述过程可以总结为以下公式:thick=pow(abs(dot(v,n)),thicknessstrength),其中,abs函数为计算绝对值的函数,abs(dot(v,n))即为计算第一厚度的绝对值。pow函数为计算上述绝对值的thicknessstrength次方,thicknessstrength为玻璃厚度变化强度,该参数可以由人为预先设置,玻璃厚度变化强度越大则玻璃厚度变化越明显。通过上述公式计算得到的thick可以作为三维模型的虚拟厚度。
50.待渲染对象可以是空心的形状,例如水杯;也可以是实心的形状,例如玻璃球。如果待渲染对象是实心的,光线通过待渲染对象时只需要经历一次入射出射的过程,则上述通过dot函数计算的人眼观察方向与顶点法线的点积可以为实心的待渲染对象的虚拟厚度。如果待渲染对象是空心的,则光线通过待渲染对象时至少要经历两次入射到出射的过
程。将光线第一次出射的面作为待渲染对象的正面,将光线第二次出射的面作为待渲染对象的背面。对于空心的待渲染对象来说,虚拟厚度需要混合三维模型正面和背面两个面的厚度。示例性的,当三维模型为空心模型时,获取三维模型的背景轮廓贴图;采样三维模型的背面轮廓贴图得到三维模型的背面法线;针对三维模型上的每个顶点,根据每个顶点处的顶点法线以及每个顶点对应的背面法线确定空心的三维模型的每个顶点的混合法线;再结合空心的三维模型的混合法线以及人眼观察方向计算空心模型的每个顶点的虚拟厚度。
51.上述实施方式中,计算虚拟厚度结合了三维模型的背面轮廓,将背面法线与正面法线(即顶点法线)进行了混合,可以使得计算的等效法线同时具有正面和背面特点,从而模拟空心模型透过正面看到背面轮廓的效果,使得虚拟厚度覆盖空心模型的场景,能够丰富渲染效果。
52.具体的,计算背面的厚度需要三维模型的背面法线,通过三维模型的背面轮廓贴图中可以采样得到背面法线。背面轮廓贴图为设计人员构建三维模型时预设的数据,用于记录三维模型的背面的图像信息,例如背面的各个像素点的颜色。示例性的,通过texture2d函数可以对背面轮廓贴图进行采样,具体公式为:back=texture2d(inside_color_tex,screen_uv),texture2d函数包括两个输入参数,其中,inside_color_tex表示的是背面轮廓贴图,screen_uv为一顶点的屏幕空间纹理坐标。通过该公式可以得到screen_uv这点在背面轮廓贴图中的信息,用back表示。背面法线即为背面轮廓信息中rgb通道记录的信息,也就是说back中的rgb通道的信息为背面法线。示例性的,通过公式back_n=back.rgb*2-1可以增大背面法线的取值的差异性,得到调整后的背面法线,用back_n表示。其中back.rgb为调整前的背面法线。
53.得到背面法线后,通过混合函数混合每个顶点的背面法线back_n,正面法线(即上述实心的三维模型的顶点法线n),得到混合后的空心模型的每个顶点的混合法线。混合函数为mix(x,y,a),该mix函数能够将x和y进行线性混合,返回x(1-a)+y*a的结果。其中a为混合的系数,可以根据实际情况设置,例如a可以为0,0.5等。示例性的,在混合背面法线、正面法线时,a可以为背面轮廓贴图的透明度,即a通道的信息:back.a。通过公式n=normalize(mix(back_n,n,back.a))可以计算得到空心模型整体的法线,其中,mix函数用于对back_n,n,back.a进行混合,normalize用于对mix得到的值进行归一化,即将法线的取值范围转换为0到1,可以保证法线向量的取值范围正确。混合后的混合法线中综合了正背面的轮廓,能够使渲染时呈现出透过正面看到背面轮廓的效果,从而更加真实地模拟出空心玻璃的效果。
54.得到空心模型的混合法线后,再通过上述计算厚度的方法来计算空心模型的厚度。具体的,通过公式thick_back=pow(inside_info.w,thicknessstrength)来计算空心模型的虚拟厚度,用thick_back表示。其中,inside_info.w为空心模型的混合法线n与人眼观察方向v的点积的绝对值。此外,计算出空心模型的虚拟厚度后,还可以与实心的三维模型的虚拟厚度进行混合,进一步提高空心模型的虚拟厚度的真实性。例如,通过公式thick1=mix(thick,thick+thick_back,thick_back)来计算混合后的空心模块的虚拟厚度think1。其中,thick实心的三维模型的虚拟厚度,thick_back为空心模型的虚拟厚度。
55.在步骤s13中,确定光线通过具有虚拟厚度的三维模型照射在背景图像上时,待渲染对象的渲染颜色。该渲染颜色是背景图像在待渲染对象上呈现的颜色。
56.光线在通过玻璃材质的三维模型时会产生折射、反射等效果,并且玻璃边缘的厚度变化时对光的反射强度也不同。本实施方式中,根据三维模型的虚拟厚度可以依据物理原理来计算三维模型对光线的折射颜色以及边缘颜色;通过三维模型的反射贴图来确定光线通过待渲染对象时对背景图像的反射颜色;从而得到三维模型的折射颜色、边缘颜色、反射颜色,结合这三种颜色效果确定最终的渲染颜色。折射颜色是光线通过待渲染对象的折射后照射在背景图像上时,背景图像在待渲染对象上呈现的颜色。边缘颜色是光线照射在待渲染对象上时,待渲染对象的边缘呈现的颜色。反射颜色是光线照射在待渲染对象上时,待渲染对象对光线进行反射呈现的颜色。渲染颜色中综合了折射、反射以及边缘的效果,能够使得对待渲染对象的渲染更加符合真实玻璃的效果,提高视觉体验。
57.接下来先说明上述根据虚拟厚度确定折射颜色的过程。当三维模型为实心的模型时,光线通过三维模型只经过一次折射。具体的,通过三维模型的折射率,光线进入三维模型时的入射角,以及三维模型的虚拟厚度可以计算光线通过三维模型时的行进长度;根据该行进长度可以确定光线射出三维模型时的出射点;根据出射点可以确定三维模型光线通过出射点与背景图像的交点,称为第一目标像素点;该第一目标像素点的颜色即为光线在三维模型上的折射颜色。
58.其中,光线的行进长度指的是通过光线进行技术计算的光线从三模模型的具有虚拟厚度的面上穿过时,光线前进的长度。光线进行(ray marching)是光线追踪的一种实现方法,用于对光线与物体求交。每次光线前进一定步长,并检测当前光线是否位于物体表面,据此调整光线前进幅度,直到抵达物体表面。
59.将光线到达三维模型的一表面时,与该表面的交点作为入射点。将光线射出三模模型的一表面时,与该表面的交点作为出射点。上述行进长度可以是入射点与出射点之间,光线前进的长度。
60.入射点值得时通过光线追踪技术预设的光线到达三维模型上时的点。光线追踪(ray tracing),是三维计算机图形学中的特殊渲染算法,跟踪从眼睛发出的光线而不是光源发出的光线,将编排好的场景的数学模型显现出来,呈现更为真实符合物理原理的渲染效果。
61.举例来说,参考图2所示,针对三维模型200的人眼观察方向-v,即入射光线;入射光线与三维模型200的交点,即入射点p0。入射光线与法线的夹角θ0为入射角,折射光线v1与法线的夹角θ1为折射角。
62.根据光线折射定律,入射角θ0、折射角θ1、入射光线经过的介质0的折射率n0以及经过的介质1的折射率n1具有如下关系:
63.n0
×
sinθ0=n1
×
sinθ164.示例性的,介质0可以为空气,介质1即为本实施例中的玻璃材质的待渲染对象。当光线从空气中进入待渲染对象中时,根据人眼观察方向-v与法线n可以确定入射角θ0,将入射角、空气的折射率、玻璃材质的折射率代入上述折射定律,可以确定折射角θ1。该折射角θ1的余弦值为玻璃材质的厚度thick与光线在玻璃中的行进长度travel_path的比值,则根据cosθ1可以计算得到光线通过玻璃的行进长度travel_path。
65.具体的,通过以下公式可以得出折射方向:ray_out0=normalize(refract(-v,n,n01))。其中,n01为光线从介质0进入介质1时,介质0的折射率n0与介质1的折射率n1的比
值。refract函数为折射函数,用于根据入射方向,法线,折射率比值来计算出射方向。normalize函数用于归一化处理,将出射方向归一化为单位向量,从而保证方向计算正确。通过公式:theta1=asin(sin(acos(nohv))*n01),可以计算出折射角θ1,其中,nohv为法线与人眼观察方向-v比值,即入射角对应的余弦值;acos函数用于计算出余弦值对应的角度,即入射角;sin(acos(nohv))*n01可以计算出折射角的正弦值,asin函数可以计算出正弦值对应的角度,即折射角θ1。计算出折射角θ1后,通过公式:travel_dis0=refrstretch/cos(theta1),可以计算出光线在三维模型内进行的单位距离。其中,refrstretch为光线步进长度,即光线经过单位厚度的玻璃时的长度。通过公式:travel_path=ray_out0*travel_dis0*thick,可以计算出光线通过虚拟厚度的玻璃时的行进长度。该行进长度为折射光线的方向,折射光线的长度以及虚拟厚度的乘积。
66.根据光线在三维模型内部的行进长度以及入射点位置可以确定出光线射出三维模型时的出射点的位置。示例性的,通过公式:out_p0=worldpos+travel_path,可计算出出射点p1的位置out_p0。其中,worldpos为入射点p0的坐标,travel_path为上述行进长度。计算出光线通过三维模型的出射点后,可以确定出射点与背景图像的交点,作为第一目标像素点。该第一目标像素点即为光线进入三维模型时人眼从入射点能够观察到的第一目标像素点,则可以将该第一目标像素点的颜色渲染到三维模型中入射点p0处。
67.光线从三维模型内部射出后可以进入另一介质,例如空气。将光线射出三维模型后进入的介质作为第一介质,继续参考图2,光线从三维模型的p0点进入三维模型后,从出射点p1进入第一介质,该出射点p1可以作为光线在该第一介质中的入射点。同理地,通过上述计算光线在三维模型内的行进长度的方法,可以计算光线在第一介质中的行进长度。具体的,先计算光线射出三维模型的出射点处的法线;然后根据出射点的法线确定出射方向;进而根据出射方向,第一介质的折射率来计算光线在第二介质中的行进距离,该行进距离的终点即为光线通过出射点与背景图像的交点。通过在具有一定厚度的第一介质与三维模型中进行光线追踪,可以模拟光线经过三维模型与第一介质后对背景图像的折射效果,提高折射效果的真实性。
68.示例性的,三维模型的表面可以是曲面,则出射点p1处的法线方向可以是出射点处圆心到出射点的方向。当三维模型的表面为曲面时,对光线的折射更加强烈,能够使得视觉体验上具有更加明显的折射效果。具体的,首先获取光线在三维模型的入射点,然后根据入射点处的法线确定出射点p1处的对应的曲面的圆心位置,利用该圆心位置和出射点p1可以得到出射点p1处的法线方向。通过公式:origin=worldpos+n*refrstepcount*refrstretch,可计算出出射点的圆心位置origin。其中,worldpos为入射点的坐标,refrstretch为光线步进长度,refrstepcount为光线步进次数,n为三维模型的法线方向。确定圆心位置后可以将从圆心到出射点p1的方向作为出射点处p1的法线方向。通过公式:n0=normalize(origin-out_p0),来得到出射点p1处的法线方向。其中,origin上述圆心位置;out_p0为出射点的位置;normalize函数用于归一化处理。
69.根据出射点p1的法线方向可以确定出射方向。同理的,与上述确定折射方向的方法相同,通过refract函数代入人眼观察方向-v,上述计算出的法线方向n0以及三维模型与第一介质的折射率比值,可以得出光线的出射方向。举例而言,通过公式:ray_out1=normalize(refract(ray_ou.t0,n0,n12)),可以计算出射方向ray_out1;其中,n12为三维
模型的折射率与第一介质的折射率的比值。利用出射方向可以进一步计算出出射角θ2。示例性的,通过公式:theta2=asin(sin(acos(dot(-ray_out0,n0)))*n12),可以得出出射角。其中,-ray_out0为出射方向的反向量;dot函数用于计算第一介质的厚度。
70.计算得到出射角后,通过公式:travel_dis1=refrstretch/cos(theta1),来计算光线在第一介质中的行进的距离。然后根据光线在第一介质中的距离再确定出光线通过出射方向与背景图像的交点p2,即第一目标像素点。示例性的,通过公式:intersect_uv1=getintersectpointuv(ray_out1,travel_dis1*thick,out_p0),来确定第一目标像素点p2的坐标,intersect_uv1。其中,ray_out1为出射方向;travel_dis1*thick为增加了厚度后光线在第一介质中的距离;out_p0为出射点的坐标。getintersectpointuv函数可以计算光线通过出射点p1,以出射方向经过第一介质后到达背景图像上的第一目标像素点p2的坐标。
71.确定第一目标像素点后,对背景图像进行采样可以得到背景图像上该第一目标像素点的颜色。例如,通过公式:refr_clr1=texture2d(photo_tex,intersect_uv1).rgb,可以得到第一目标像素点的颜色,即rgb值。其中,photo_tex表示背景图像;intersect_uv1为第一目标像素点的坐标;计算得到的refr_clr为第一目标像素点的颜色,即rgb值。第一目标像素点p2的颜色可以作为三维模型上入射点p0的折射颜色,同理的,将三维模型上每个像素点均作为一入射点,可以得到三维模型上每个像素点的折射颜色,从而来渲染三维模型。通过上述方式计算得到的折射颜色综合了三维模型的背面轮廓,从而可以真实的模拟三维模型对光线的折射效果。
72.通常在实现真实的玻璃的折射效果时,真实的光线每经历一次入射、反射,反射出的光线又会变为一个入射光线,同时折射后出射的光线也会成为下一个入射光线。因此依据真实物理原理的计算方式涉及的参数复杂且数量庞大,需要反复迭代计算,计算量大,对设备性能要求过高。本实施方式中,虚拟厚度综合了模型背面的轮廓,通过虚拟厚度来计算折射颜色时只需要单次计算就可以得到空心模型的折射效果,简单高效,无需进行多次迭代,复杂度大大降低。并且,能够提高效率,降低对设备性能的要求,可以满足移动端的使用。
73.上述实施例在三维模型为实心的模型的情况下,计算光线通过三维时产生一次折射后与背景图像的交点,即第一目标像素点。为了模拟空心模型对光线的折射效果,假设上述三维模型为空心模型。光线在空心的三维模型内至少要通过两次折射,可以计算两次折射分别对应的折射颜色,综合两次折射的折射颜色来确定三维模型最终的折射颜色。空心模型包括凸面和凹面,如果凸面为正面,凹面为背面,则光线在正面发生一次折射,在背面发生一次折射。将上述第一目标像素点的颜色可作为凸面折射对应的折射颜色。然后,再按照上述确定第一像素点的方法确定第二目标像素点,将第二目标像素点的颜色作为凹面折射对应的折射颜色,即光线最终射出空心的三维模型时的出射点。
74.具体的,当三维模型为空心的模型时,按照光线在三维模型内的行进长度可以分别确定光线在凸面的第一出射点,即上述出射点p1,以及光线在凹面的第二出射点。如公式:out_p0=worldpos+travel_path,所示,第一出射点为入射点与行进长度的和。第二出射点可以为入射点与行进长度的差,如:第二出射点out_p1=worldpos-travel_path,其中,worldpos为入射点p0的坐标,travel_path为上述行进长度。也就是说,空心的三维模型
中,凸面的出射点为入射点与行进长度的和,凹面的出射点为入射点与行进长度的差。本实施方式可以模拟空心模型的折射效果,从而丰富渲染效果。并且,在空心模型时,综合两种不同平面的折射,能够提高折射颜色的准确性。
75.根据第二出射点可以确定与第二出射点对应的第二目标像素点,将第一目标像素点的颜色与第二目标像素点的颜色进行混合,得到的结果作为三维模型的折射颜色。示例性的,通过混合函数mix可以对第一目标像素点的颜色与第二像素点的颜色进行混合,如:混合后的颜色refr_clr=mix(refr_clr1,refr_clr2,doublerefrmix),其中,refr_clr1为第一目标像素点的颜色;refr_clr2为第二目标像素点的颜色;doublerefrmix为双重折射混合系数,该系数可以由设计人员预先确定。混合后的颜色作为三维模型的折射颜色。
76.空心的三维模型中凸面能够放大背景图像,凹面可以缩小背景图像。本实施方式确定的三维模型的折射颜色混合了凹面和凸面的折射效果,能够模拟空心模型的折射效果,增强了渲染的丰富性和真实性。
77.玻璃材质的表面通常十分光滑,对环境光线的反射属于镜面反射,比较强烈,可以再通过反射贴图来表现反射颜色。反射贴图可以包括全景图,也可以包括matcap贴图,可以由设计人员预先设计好。在对待渲染对象进行渲染时,可以对该反射贴图进行采样获得反射贴图中存储的颜色,作为待渲染对象的反射颜色。
78.在一些实施方式中,可以对待渲染对象的三维模型的边缘的颜色进行调整,来增强或减弱边缘的颜色,模拟玻璃材质的边缘处折射以及反射突然增强的效果,使得渲染更加真实。示例性的,先确定三维模型的边缘,然后对边缘处的颜色进行调整。通过dot函数可以确定三维模型的边缘,如:dot(n,v),将三维模型的法线与人眼观察方向作为输入参数,可以得到dot函数的计算结果,即三维模型的边缘。然后对边缘处的颜色的光强度在一定范围内增强,例如设置一增强系数,将边缘处的光强度调整为与该增强系数相乘后的结果,从而得到边缘颜色。
79.综合上述确定的折射颜色、反射颜色和边缘颜色可以得到三维模型最终的渲染颜色。示例性的,将折射颜色、反射颜色与边缘颜色的加和结果可以作为最终的渲染颜色。
80.在步骤s14中,根据渲染颜色渲染待渲染对象,将渲染后的待渲染显示在背景图像上。
81.手机中的着色器可以对待渲染对象进行一层层的渲染,示例性的,着色器可以获取上述确定的边缘颜色,将渲染颜色渲染至待渲染对象上。此外,对待渲染对象还可以进行其他方式的渲染,例如,对待渲染对象进行材质捕捉,从待渲染对象的纹理贴图中获取待渲染对象的材质信息,光源信息,然后将光源、材质渲染至待渲染对象上。
82.渲染后的待渲染对象可以显示在背景图像的对应位置处,模拟对背景图像添加虚拟的待渲染对象的效果。如图3a所示,相机拍摄的背景图像300中可以显示虚拟的待渲染对象301,该待渲染对象301可以为虚拟的玻璃杯。在图3a中,光线通过玻璃杯301时,该玻璃杯301对光线形成折射、反射等效果,使人眼透过玻璃杯301观察到的背景图像呈现出真实的折射、反射等效果。随着人眼观察方向(即相机方向)的变化,背景图像中虚拟的玻璃杯301上呈现的效果也随之变化。当光线通过玻璃杯301照射在背景图像中的卡通玩具302上时,卡通玩具302呈现的效果如图3b所示。可见,在对玻璃材质的待渲染对象进行渲染时,本实施例提供的上述方法能够渲染出比较真实的玻璃折射、反射效果,使得对玻璃材质的渲染
更加真实、准确。并且,本实施例不需要进行多次复杂的物理计算,通过虚拟厚度可以实现一次计算得到光线多次折射的效果,能够降低对设备性能的要求,降低能耗。
83.示例性的,待渲染对象可以在背景图像的一特定位置处,也可以根据背景图像的内容灵活更新位置。以待渲染对象为魔法表情为例,该魔法表情可以固定地显示在背景图像的左边,右边或者上方等特定的位置;或者,可以检测背景图像中一特定对象如人脸的位置,将该魔法表情显示在人脸的周围等;本实施方式对此不作特殊限定。
84.上述实施方式中,针对玻璃材质的待渲染对象,可以依据物理原理确定其折射颜色,并将折射颜色、反射颜色以及边缘颜色进行结合确定最终的渲染颜色,能够使得渲染的效果更加符合真实玻璃对光线的折射,反射效果,使得渲染效果更具有真实性,能够提高用户的视觉体验。
85.图4是根据一示例性实施例示出的一种图像渲染装置的框图。参考图4,该图像渲染装置400包括:场景确定模块410,模型确定模块420,颜色确定模块430以及渲染模块440。该图像渲染装置400可用于执行上述图像渲染方法,例如场景确定模块410可用于执行上述步骤s11,模型确定模块420可用于执行上述步骤s12,颜色确定模块430可用于执行上述步骤s13,渲染模块440可用于执行上述步骤s14。
86.具体的,场景确定模块410用于获取背景图像对应的玻璃材质的待渲染对象。其中,待渲染对象是要在背景图像上添加的虚拟的对象。模型确定模块420用于根据待渲染对象的三维模型,确定待渲染对象的虚拟厚度。其中,虚拟厚度用于表征待渲染对象从光线入射到出射之间的厚度。颜色确定模块用于确定光线通过具有虚拟厚度的三维模型照射在背景图像上时,待渲染对象的渲染颜色。渲染颜色是背景图像在待渲染对象上呈现的颜色。渲染模块440用于根据渲染颜色渲染待渲染对象,将渲染后的待渲染对象显示在背景图像上。
87.在一些实施方式中,模型确定模块420可以用于当待渲染对象实心时,计算三维模型的顶点处的顶点法线和人眼观察方向的点积,将计算的结果作为待渲染对象的顶点处的虚拟厚度。
88.在一些实施方式中,模型确定模块420还包括背面轮廓获取模块、背面法线获取模块、法线混合模块以及厚度确定模块。
89.背面轮廓获取模块用于当三维模型为空心模型时,获取三维模型的背面轮廓贴图。背面法线获取模块用于根据三维模型的背面轮廓贴图提取三维模型的背面法线。法线混合模块用于根据每个顶点的顶点法线、背面法线,确定三维模型的每个顶点的混合法线。厚度确定模块用于通过每个顶点的混合法线和人眼观察方向确定每个顶点的虚拟厚度。
90.在一些实施方式中,颜色确定模块430可以包括折射颜色确定模块、反射颜色确定模块以及渲染颜色确定模块。
91.折射颜色确定模块用于根据三维模型的虚拟厚度计算光线通过待渲染对象时对背景图像的折射颜色,以及边缘颜色。其中,折射颜色是光线通过待渲染对象的折射后照射在背景图像上时,背景图像在待渲染对象上呈现的颜色。边缘颜色是光线照射在待渲染对象上时,待渲染对象的边缘呈现的颜色。反射颜色确定模块用于通过三维模型的反射贴图来确定光线通过待渲染对象时对背景图像的反射颜色。反射颜色是光线照射在待渲染对象上时,待渲染对象对光线进行反射呈现的颜色。渲染颜色确定模块用于结合折射颜色,反射颜色和边缘颜色确定待渲染对象的渲染颜色。
92.在一些实施方式中,颜色确定模块430还包括折射率获取模块、光线行进长度计算模块、出射点确定模块以及出射点颜色确定模块。折射率获取模块,用于获取待渲染对象的折射率。
93.光线行进长度计算模块,用于根据光线进入三维模型时的入射角,折射率以及三维模型的虚拟厚度计算光线通过三维模型时的行进长度。出射点确定模块,用于根据行进长度计算光线通过三维模型时的出射点。出射点颜色确定模块,用于获取出射点对应的背景图像中的第一目标像素点的颜色,作为渲染颜色。
94.在一些实施方式中,出射点颜色确定模块还用于确定出射点处的法线方向;根据出射点处的法线方向确定光线从出射点进入第一介质时的出射方向;根据出射方向、出射点、第一介质的折射率,确定光线经过出射点照射到背景图像上的第一目标像素点,获取第一目标像素点的颜色。
95.在一些实施方式中,三维模型的表面为曲面,出射点颜色确定模块用于获取光线在三维模型的入射点;根据入射点处的法线确定三维模型表面对应的圆心位置;利用圆心位置和出射点,得到出射点处的法线方向。
96.在一些实施方式中,出射点颜色确定模块用于当三维模型为空心模型时,根据行进长度确定光线通过空心模型的凸面的第一出射点,以及光线通过空心模型的凹面的第二出射点,将第二出射点作为光线通过空心的三维模型时的出射点。
97.关于上述实施例中的图像渲染装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
98.其中各个模块执行操作的具体方式已经在有关该图像渲染方法的实施例中进行了详细描述,此处将不做详细阐述说明。
99.本公开还提供一种电子设备,该电子设备可应用于执行上述图像渲染方法。示例性的,图5是本公开提供的一种电子设备500的结构示意图。如图5,该电子设备500可以包括至少一个处理器501以及用于存储处理器501可执行指令的存储器503。其中,处理器501被配置为执行存储器503中的指令,以实现上述实施例中的图像渲染方法。
100.另外,电子设备500还可以包括通信总线502以及至少一个通信接口504。
101.处理器501可以是一个gpu,微处理单元,asic,或一个或多个用于控制本公开方案程序执行的集成电路。
102.通信总线502可包括一通路,在上述组件之间传送信息。
103.通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。
104.存储器503可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起,为gpu中的易失性存储介质。
105.其中,存储器503用于存储执行本公开方案的指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的指令,从而实现本公开图像渲染方法的功能。
106.在具体实现中,作为一种实施例,处理器501可以包括一个或多个gpu,例如图5中的gpu0和gpu1。
107.在具体实现中,作为一种实施例,电子设备500可以包括多个处理器,例如图5中的处理器501和处理器507。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-gpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
108.在具体实现中,作为一种实施例,电子设备500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备,阴极射线管(cathode ray tube,crt)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506可以是鼠标、键盘、触摸屏设备或传感设备等。
109.本领域技术人员可以理解,图5中示出的结构并不构成对电子设备500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
110.本公开还提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,当存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述本公开实施例提供的图像渲染方法。
111.本公开实施例还提供了一种包含指令的计算机程序产品,当其在服务器上运行时,使得服务器执行上述本公开实施例提供的图像渲染方法。
112.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
113.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
技术特征:
1.一种图像渲染方法,其特征在于,包括:获取背景图像对应的玻璃材质的待渲染对象,其中,所述待渲染对象是要在所述背景图像上添加的虚拟的对象;根据所述待渲染对象的三维模型,确定所述待渲染对象的虚拟厚度;其中,所述虚拟厚度用于表征基于光线射入所述待渲染对象至射出所经历的路线所等效模拟出的厚度;确定光线通过具有所述虚拟厚度的所述三维模型照射在所述背景图像上时,所述待渲染对象的渲染颜色;所述渲染颜色是所述背景图像在所述待渲染对象上呈现的颜色;根据所述渲染颜色渲染所述待渲染对象,将渲染后的待渲染对象显示在所述背景图像上。2.根据权利要求1所述的方法,其特征在于,所述根据所述待渲染对象的三维模型确定所述待渲染对象的虚拟厚度,包括:当所述三维模型为空心时,获取所述三维模型的背面轮廓贴图;根据所述三维模型的背面轮廓贴图提取所述三维模型的背面法线;根据每个顶点的所述顶点法线、所述背面法线、确定所述三维模型的每个顶点的混合法线,所述混合法线为根据混合函数将所述顶点法线与所述背面法线进行混合得到的法线;通过每个顶点的所述混合法线和人眼观察方向确定所述每个顶点的虚拟厚度。3.根据权利要求1所述的方法,其特征在于,所述根据所述待渲染对象的三维模型,确定所述待渲染对象的虚拟厚度,包括:当所述待渲染对象为实心时,计算所述三维模型的顶点处的顶点法线和人眼观察方向的点积,将计算的结果作为所述待渲染对象的所述顶点处的虚拟厚度。4.根据权利要求1所述的方法,其特征在于,所述确定光线通过具有所述虚拟厚度的所述三维模型照射在所述背景图像上时,所述待渲染对象的渲染颜色,包括:根据所述待渲染对象的虚拟厚度计算折射颜色以及边缘颜色;其中,所述折射颜色是光线通过所述待渲染对象的折射后照射在所述背景图像上时,所述背景图像在所述待渲染对象上呈现的颜色,所述边缘颜色是光线照射在所述待渲染对象上时,所述待渲染对象的边缘呈现的颜色;通过所述三维模型的反射贴图来确定光线通过所述待渲染对象时对所述背景图像的反射颜色,所述反射颜色是光线照射在所述待渲染对象上时,所述待渲染对象对光线进行反射呈现的颜色;结合所述折射颜色,所述反射颜色和所述边缘颜色确定所述待渲染对象的渲染颜色。5.根据权利要求1所述的方法,其特征在于,所述确定光线通过具有所述虚拟厚度的所述三维模型照射在所述背景图像上时,所述待渲染对象的渲染颜色,包括:获取所述待渲染对象的折射率;根据光线进入所述三维模型时的入射角、所述折射率以及所述三维模型的虚拟厚度计算光线通过所述三维模型时的行进长度;根据所述行进长度计算光线通过所述三维模型时的出射点;获取所述出射点对应的背景图像中的第一目标像素点的颜色,作为所述渲染颜色。6.根据权利要求5所述的方法,其特征在于,所述获取所述出射点对应的背景图像中的
第一目标像素点的颜色,包括:确定所述出射点处的法线方向;根据所述出射点处的法线方向确定光线从所述出射点进入第一介质时的出射方向;根据所述出射方向、所述出射点、所述第一介质的折射率,确定光线经过所述出射点照射到所述背景图像上的第一目标像素点,获取所述第一目标像素点的颜色。7.一种图像渲染装置,其特征在于,包括:场景确定模块,用于获取背景图像对应的玻璃材质的待渲染对象;其中,所述待渲染对象是要在所述背景图像上添加的虚拟的对象;模型确定模块,用于根据所述待渲染对象的三维模型,确定所述待渲染对象的虚拟厚度;其中,虚拟厚度用于表征待渲染对象从光线入射到出射之间的厚度;颜色确定模块,用于确定光线通过具有所述虚拟厚度的所述三维模型照射在所述背景图像上时,所述待渲染对象的渲染颜色;所述渲染颜色是背景图像在待渲染对象上呈现的颜色;渲染模块,用于根据所述渲染颜色渲染所述待渲染对象,将渲染后的待渲染对象显示在所述背景图像上。8.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的图像渲染方法。9.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的图像渲染方法。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的图像渲染方法。
技术总结
本公开关于一种图像渲染方法、装置及电子设备,能够提高图像渲染的真实性,提高视觉体验;涉及图像处理技术领域。该方法包括:获取背景图像对应的玻璃材质的待渲染对象;其中,所述待渲染对象是要在所述背景图像上添加的虚拟的对象;根据所述待渲染对象的三维模型,确定所述待渲染对象的虚拟厚度;其中,虚拟厚度用于表征待渲染对象从光线入射到出射之间的厚度;确定光线通过具有所述虚拟厚度的所述三维模型照射在所述背景图像上时,所述待渲染对象的渲染颜色;所述渲染颜色是背景图像在待渲染对象上呈现的颜色;根据所述渲染颜色渲染所述待渲染对象,将渲染后的待渲染对象显示在所述背景图像上。述背景图像上。述背景图像上。
技术研发人员:李珅
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2021.11.30
技术公布日:2022/3/8