1.本技术涉及法线模拟技术领域,尤其涉及一种模型法线的确定方法、装置、电子设备及存储介质。
背景技术:
2.本部分旨在为权利要求书中陈述的本技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.法线是现代渲染技术中,不可或缺的模型信息之一。但是,渲染过程中无法从模型信息获得两种材质(纹理)交界处的法线信息。然后应用到混合材质的地方通常会涉及到泥块,雪迹等在现实中边缘会产生很明显的凹凸感的材质。如果为了能达到两种材质边缘处的区分,放弃动态绘制,转而在模型制作中将混合材质信息做死在模型本身的贴图上,会相应的减少模型复用性和可控性。因此,需要提供一种方法来模拟出混合材质的交界处的法线信息。
技术实现要素:
4.针对上述技术问题,亟需一种改进的方法,能够确定具有混合材质的模型的法线信息。
5.本技术示例性实施例提供了一种模型法线的确定方法,包括:
6.获取待渲染的具有混合材质的模型的顶点色遮罩信息图;
7.从所述顶点色遮罩信息图的多个像素点中确定目标像素点,通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,其中,所述第一方向与所述第二方向垂直;
8.基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在切线空间的第一坐标;
9.基于所述目标像素点及所述第一坐标确定所述目标像素点的法线。
10.在一些示例性实施例中,基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在切线空间的第一坐标,具体包括:
11.基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在屏幕空间的第二坐标,并将所述第二坐标转化为所述第一坐标。
12.在一些示例性实施例中,将所述第二坐标转化为所述第一坐标,具体包括:
13.通过第一预设矩阵将所述第二坐标转化为所述目标像素点的法线在世界空间的第三坐标;
14.通过第二预设矩阵将所述第三坐标转化为所述第一坐标。
15.在一些示例性实施例中,将所述第二坐标转化为所述第一坐标,具体包括:
16.通过第一预设矩阵将所述第二坐标转化为所述目标像素点的法线在世界空间的
第三坐标;
17.通过以下公式将所述第三坐标转化为所述第一坐标;
[0018][0019]
l=u-u
′
;
[0020]
其中,u表示所述第三坐标对应的向量,v表示所述模型的法线向量,u
′
表示所述第三坐标对应的向量在所述模型的法线向量上的投影,l表示所述第一坐标对应的向量。
[0021]
在一些示例性实施例中,在基于所述第一像素差值与所述第二像素差值确定所述目标像素点在切线空间的第一坐标之后,所述方法还包括:
[0022]
获取所述目标像素点与虚拟相机的距离;
[0023]
响应于确定所述距离大于预设阈值,基于所述距离确定所述目标像素点的法线的第一衰减系数,并基于所述第一衰减系数调节所述第一坐标。
[0024]
在一些示例性实施例中,在基于所述第一像素差值与所述第二像素差值确定所述目标像素点在切线空间的第一坐标之后,所述方法还包括:
[0025]
获取所述目标像素点在屏幕空间中的视线;
[0026]
基于所述第一坐标确定所述目标像素点的法线,并确定所述目标像素点的法线与所述视线的夹角;
[0027]
响应于确定所述夹角与直角差的绝对值小于预设角度,基于所述夹角确定所述目标像素点的法线的第二衰减系数,并基于所述第二衰减系数调节所述第一坐标。
[0028]
在一些示例性实施例中,在获取待渲染的具有混合材质的模型的顶点色遮罩信息图之后,所述方法还包括:
[0029]
基于预设渐变公式调节所述模型中的顶点色遮罩信息图;
[0030]
其中,所述预设渐变公式为:
[0031]
p=(1-x)*n*x*c x;
[0032]
其中,p表示调节后的所述顶点色遮罩信息图的顶点色,x表示所述顶点色遮罩信息图的顶点色,n表示预设噪音贴图的顶点色,c表示所述预设噪音贴图的精度。
[0033]
在一些示例性实施例中,从所述顶点色遮罩信息图中的多个像素点中确定目标像素点,具体包括:
[0034]
响应于所述顶点色遮罩信息图的多个像素点中的任一像素点与其相邻像素点的第三像素差值大于预设阈值,将该像素点确定为目标像素点。
[0035]
在一些示例性实施例中,所述偏导函数为:ddx/ddy或dfdx/dfdy。
[0036]
基于同一发明构思,本技术示例性实施例还提供了一种模型法线的确定装置,包括:
[0037]
获取模快,获取待渲染的具有混合材质的模型的顶点色遮罩信息图;
[0038]
第一确定模块,从所述顶点色遮罩信息图的多个像素点中确定目标像素点,通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,其中,所述第一方向与所述第二方向垂直;
[0039]
第二确定模块,基于所述第一像素差值与所述第二像素差值确定所述目标像素点
的法线在切线空间的第一坐标;
[0040]
第三确定模块,基于所述目标像素点及所述第一坐标确定所述目标像素点的法线。
[0041]
基于同一发明构思,本技术示例性实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的模型法线的确定方法。
[0042]
基于同一发明构思,本技术示例性实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任意一项所述的模型法线的确定方法。
[0043]
从上面所述可以看出,本技术实施例提供的模型法线的确定方法,先获取待渲染的具有混合材质的模型的顶点色遮罩信息图,从所述顶点色遮罩信息图的多个像素点中确定目标像素点,通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,其中,所述第一方向与所述第二方向垂直;基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在切线空间的第一坐标;基于所述目标像素点及所述第一坐标确定所述目标像素点的法线,从而提供了一种简单有效的确定模型多种材质交界处的法线的方法,进而增加了模型的复用性与可控性。
附图说明
[0044]
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]
图1为本技术示例性实施例中的一种模型法线的确定方法的流程示意图;
[0046]
图2为本技术示例性实施例中的一种具有混合材质的模型的顶点色遮罩信息图的示意图;
[0047]
图3为本技术示例性实施例中的一种模型局部的混合材质的顶点色遮罩信息图的示意图;
[0048]
图4为本技术示例性实施例中的一种噪音贴图的示意图;
[0049]
图5为本技术示例性实施例中的另一种噪音贴图的示意图;
[0050]
图6为本技术示例性实施例中的一种模型局部的混合材质的顶点色遮罩信息图的示意图;
[0051]
图7为本技术示例性实施例中的另一种模型局部的混合材质的交汇处的顶点色遮罩信息图的示意图;
[0052]
图8为本技术示例性实施例中的一种法线向量关系示意图;
[0053]
图9为本技术示例性实施例中的一种模型渲染效果对比示意图;
[0054]
图10为本技术示例性实施例中的一种模型法线的确定装置的结构示意图;
[0055]
图11为本技术示例性实施例中的一种具体电子设备的结构示意图。
具体实施方式
[0056]
下面将参考若干示例性实施方式来描述本技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本技术,而并非以任何方式限制本技术的范围。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
[0057]
根据本技术的实施方式,提出了一种模型法线的确定方法、装置、电子设备及存储介质。
[0058]
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
[0059]
下面参考本技术的若干代表性实施方式,详细阐释本技术的原理和精神。
[0060]
发明概述
[0061]
现有技术中,渲染过程中无法从模型信息获得两种及两种材质(纹理)交界处的法线信息。如果想要在两种混合材质交接处中展现法线信息,第一种做法是可以通过顶点偏移,将目标区域的顶点进行方向上的偏移,从而达到交界处的凹凸感。第二种方案是在模型制作的过程中,在模型制作软件中将纹理直接绘制到模型上。将想要混合的材质贴图直接应用到模型本身的贴图中,烘焙模型法线信息的时候也将其囊括在内。
[0062]
第一种的做法在模型面数很低的时候不会达到很好的效果,在原本低顶点数量的情况下对顶点进行偏移,偏移的区域会很受局限。比如在一块岩石上进行绘制青苔纹理的时候,模型并不需要很多顶点来展现一块岩石的细节。但是绘制青苔却只能依据顶点的位置来进行绘制,青苔只能依附在模型的整个面上,在低顶点数的时候会显得非常的不自然。如果需要应用曲面细分的来增加顶点数量从而增加细节的话,就会增加面数增加gpu的消耗。
[0063]
第二种做法的确能更精准的对模型法线信息进行诠释,但是其局限性也是很明显的。缺乏通用性,模型只能拥有一种形态的纹理且纹理的存在位置也是固定的。需要展现不一样的纹理时只能重新烘焙,增加贴图数量,增加美术制作流程并增加包体大小。同时混合材质的贴图精度可能也无法到达到理想状态,通常纹理信息需要更高的精度才能表现出纹理表面的质感,运用此方法得话纹理精度只能跟着模型自己的贴图精度走。
[0064]
为了解决上述问题,本技术提供了一种模型法线的确定方法,具体包括:
[0065]
获取待渲染的具有混合材质的模型的顶点色遮罩信息图;从所述顶点色遮罩信息图的多个像素点中确定目标像素点,通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,其中,所述第一方向与所述第二方向垂直;基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在切线空间的第一坐标;基于所述目标像素点及所述第一坐标确定所述目标像素点的法线,从而提供了一种简单有效的确定模型多种材质交界处的法线的方法,进而增加了模型的复用性与可控性。
[0066]
在介绍了本技术的基本原理之后,下面具体介绍本技术的各种非限制性实施方式。
[0067]
应用场景总览
[0068]
在一些具体的应用场景中,本技术的模型法线的确定方法可以直接应用于涉及到
模型制作的软件系统中,可选的,本技术的模型法线的确定方法可以使用unity引擎,以及其shader语言进行实现。
[0069]
在一些具体的应用场景中,本技术的模型法线的确定方法可以直接应用在本地运行,也可以在云端服务器中运行。当在云端服务器运行时,将获取的待处理数据通过网络发送到云端服务器,由服务器对待处理数据通过本技术的模型法线的确定方法进行处理,并将处理结果通过网络发送到本地。
[0070]
下面结合具体的应用场景,来描述根据本技术示例性实施方式的模型法线的确定方法。需要注意的是,上述应用场景仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。相反,本技术的实施方式可以应用于适用的任何场景。
[0071]
示例性方法
[0072]
参考图1,本技术实施例提供了一种模型法线的确定方法,包括以下步骤:
[0073]
s101,获取待渲染的具有混合材质的模型的顶点色遮罩信息图。
[0074]
具体实施时,混合材质是一种将两种或者多种材质在同一个模型上通过遮罩信息混合在一起的材质。通过遮罩信息使同一个模型可以展现出两种甚至更多的表面纹理(材质)。想要模型展示出混合材质一般通过对模型顶点色的绘制来在引擎中动态的产生模型的顶点色遮罩信息图,该顶点色遮罩信息图用于确定当前模型展示出的混合材质哪些区域对应哪种材质。例如图2,表示了一种挖掘机的顶点色遮罩信息图,其中,挖掘机中的白色部分表示一种材质(水泥),黑色部分表示另一种材质(金属)。在确定模型的混合材质的交界处的法线之前,需要先获取待渲染的具有混合材质的模型的顶点色遮罩信息图。
[0075]
一些示例性实施例中,在获取待渲染的具有混合材质的模型的顶点色遮罩信息图之后,所述方法还包括:
[0076]
基于预设渐变公式调节所述具有混合材质的模型中的顶点色遮罩信息图;
[0077]
其中,所述预设渐变公式为:
[0078]
p=(1-x)*n*x*c x;
[0079]
其中,p表示调节后的所述顶点色遮罩信息图的顶点色,x表示所述顶点色遮罩信息图的顶点色,n表示预设噪音贴图的顶点色,c表示所述预设噪音贴图的精度。
[0080]
具体实施时,图像处理系统,如gpu一般会对所有的顶点与顶点之间的信息作线性插值,所以在具有混合材质的模型的顶点色遮罩信息图中的两种材质的交界处,会表现出两种材质缓和的渐变过程。参考图3,其中,在白色矩形框中包括黑白两种材质,在两种材质交汇处颜色的过度是线性平缓的,但是这种平缓的颜色过度与显示并不相符,例如,用金属材质的挖掘机去搅拌水泥,那挖掘机上会沾上部分水泥,从而在挖掘机表面形成了水泥和金属的混合材质,但是在水泥和金属的连接处一般不可能是这种十分规则的过度,这时为了可以使模型可以更贴近现实,需要混合材质在交汇处展现更多细节,从而可以进一步提高后续确定法线的准确度。因此,本技术在获取到顶点色遮罩信息图后通过预设渐变公式调节所述具有混合材质的模型中的顶点色遮罩信息图,其中,所述预设渐变公式中n表示预设噪音贴图的顶点色,该预设噪音贴图可以根据需要来进行选择,在此不做限定。参考图4,为一种噪音贴图。需要说的是噪音贴图中的黑色与白色像素是随机分布的,这种随机分布可以给两种材质的混合处增加更多的细节,进而使最后生成的效果图更加真实。c表示所述预设噪音贴图的精度,该精度可以调节噪音贴图中白色像素点的密度,参考图5,为另一种
噪音贴图,由于图5的精度大于图4的精度,因此,图5中,白色像素点分布的更密。
[0081]
上述预设渐变公式中的(1-x)*n*x*c表示通过噪音贴图对原顶点色遮罩信息图中两种材质交汇处的像素分布进行调节,参考图6,为该部分对应的调节结果。在完成两种材质交汇处的像素分布调节后,用调节后的该部分与原来的顶点色遮罩信息图合并在一起就可以得到调节后的所述顶点色遮罩信息图(p)。参考图7,为一种调节后的所述顶点色遮罩信息图的示意图,可以看到图7与图3比,明显在两种材质的交汇处增加了更多的细节,进而通过该调节后的顶点色遮罩信息图确定的法线的精确度更高。
[0082]
在一些实施例中,所述预设渐变公式还可以为:
[0083]
p=saturate((1-x)*n*x*c x);
[0084]
其中,p表示调节后的所述顶点色遮罩信息图的顶点色,x表示所述顶点色遮罩信息图的顶点色,n表示预设噪音贴图的顶点色,c表示所述预设噪音贴图的精度。saturate表示归一化函数,用于将输入其中的数值的范围调整为0-1的范围。由于顶点色遮罩信息图中顶点色的范围在0-1之间,所以为了避免(1-x)*n*x*c x计算出的数值大于1或者小于0,通过saturate函数将其调节到0-1的范围。
[0085]
s102,从所述顶点色遮罩信息图的多个像素点中确定目标像素点,通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,其中,所述第一方向与所述第二方向垂直。
[0086]
具体实施时,所述目标像素点可以是顶点色遮罩信息图的每一个像素点,也可以根据需要选择顶点色遮罩信息图的部分像素点作为目标像素点,在此不做限定。对于所述顶点色遮罩信息图的目标像素点,先通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,然后通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,该偏导函数可以根据需要进行选择,可选的,该偏导函数可以是ddx/ddy或dfdx/dfdy,在此不做限定。该偏导函数用于确定顶点色遮罩信息图中相邻两个像素点的像素差。可选的,该第一方向表示屏幕空间中x轴的方向,该第二方向表示屏幕空间中y轴的方向。
[0087]
在一些实施例中,从所述顶点色遮罩信息图中的多个像素点中确定目标像素点,具体包括:
[0088]
响应于所述顶点色遮罩信息图的多个像素点中的任一像素点与其相邻像素点的第三像素差值大于预设阈值,将该像素点确定为目标像素点。
[0089]
具体实施时,由于顶点色遮罩信息图中,一般在混合材质交界的区域像素点之间的像素差值比较大,而那些分布在同一种材质的像素点之间的差值很小,甚至为0,同时,本技术想要确定的是混合材质交界处的法线,因此,通过先预设阈值来筛选出处于混合材质交界处的目标像素点,然后只确定这些目标像素点的法线,从而可以提高确定法线的效率。该预设阈值可以根据需要进行设置,具体数值不做限定,可选的,可以将该预设阈值设置为0。
[0090]
s103,基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在切线空间的第一坐标。
[0091]
一些示例性实施例中,基于所述第一像素差值与所述第二像素差值确定所述目标
像素点的法线在切线空间的第一坐标,具体包括:
[0092]
基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在屏幕空间的第二坐标,并将所述第二坐标转化为所述第一坐标。
[0093]
在获取到所述第一像素差值与所述第二像素差值后,就可以直接用该第一像素差值作为像素点x轴的坐标,用该第二像素差值作为像素点y轴的坐标,并令像素点z轴的坐标为0,从而可以直接获取到目标像素点在屏幕空间中的第二坐标。由于屏幕空间的坐标无法直接使用,因为屏幕空间参照于相机坐标系,会根据虚拟相机的位置而变化,需要转换到切线空间才能正常使用。所以在获取到目标像素点在屏幕空间中的第二坐标后,需要将该第二坐标转化为目标像素点在切线空间的第一坐标。
[0094]
一些示例性实施例中,将所述第二坐标转化为所述第一坐标,具体包括:
[0095]
通过第一预设矩阵将所述第二坐标转化为所述目标像素点的法线在世界空间的第三坐标;
[0096]
通过第二预设矩阵将所述第三坐标转化为所述第一坐标。
[0097]
具体实施时,先用第二坐标与第一预设矩阵相乘得到像素点在世界空间的第三坐标,然后将第三坐标与第二预设矩阵相乘就可以得到第一坐标。可选的,也可以先将第一预设矩阵和第二预设矩阵相乘得到合并矩阵,然后用合并矩阵直接与第二坐标相乘,就可以得到第一坐标。
[0098]
需要说明的是,上述第一预设矩阵和第二预设矩阵可以根据需要进行设置,在此不做限定,可选的,第一预设矩阵和第二预设矩阵均为3*3的矩阵。
[0099]
一些示例性实施例中,将所述第二坐标转化为所述第一坐标,具体包括:
[0100]
通过第一预设矩阵将所述第二坐标转化为所述目标像素点的法线在世界空间的第三坐标;
[0101]
通过以下公式将所述第三坐标转化为所述第一坐标;
[0102][0103]
l=u-u
′
;
[0104]
其中,u表示所述第三坐标对应的向量,v表示所述模型的法线向量,u
′
表示所述第三坐标对应的向量在所述模型的法线向量上的投影,l表示所述第一坐标对应的向量,|v|表示所述模型的法线向量的长度。
[0105]
具体实施时,为了进一步提高法线坐标空间转化的效率,在得到第三坐标后,不再使用预设矩阵进行空间坐标转化,而是先将第三坐标转化为其对应的向量,然后计算第三坐标对应的向量在模型的法线向量上的投影,然后通过该投影和第三坐标对应的向量做向量差,就可以得到第一坐标对应的向量,进而通过将该第一坐标对应的向量可以直接获得第一坐标,提高了运算效率。参考图8,其中,u表示所述第三坐标对应的向量,v表示所述模型的法线向量,u'表示所述第三坐标对应的向量在所述模型的法线向量上的投影,l表示所述第一坐标对应的向量。
[0106]
需要说明的是,上述l与通过第二预设矩阵得到的所述第一坐标对应的向量并不完全相同,二者只是方向相同。由于本技术确定的法线主要用于图形处理,所以本技术主要想确定法线的方向,对于得到的法线的长度并不关心,因此,通过上述公式和第二预设矩阵
两种方法得到的目标像素点的法线在切线空间的第一坐标均可以应用于本技术中。
[0107]
s104,基于所述目标像素点及所述第一坐标确定所述目标像素点的法线。
[0108]
具体实施时,在确定所述第一坐标后,以所述目标像素点为原点,以所述第一坐标为终点就可以确定出所述目标像素点的法线。该目标像素点的法线即为模型在该目标像素点的位置的法线。可选的,将所有目标像素点的法线添加到该模型的原有法线信息中,就可以确定出具有混合材质的模型在混合材质交界处的所有法线。参考图9,其中,左边的图为未采用本技术的方法确定出混合材质的法线的渲染效果图,右边的图为通过本技术的方法确定出混合材质的法线后的渲染效果图,可以看出,右图中由于确定出了混合材质交汇处的法线,明显在这些混合材质交汇处增加了一些凹凸不平的纹理细节。
[0109]
当像素点的数量剧烈变化时,通过本技术的方法确定出的法线会发生抖动。原因是当像素点数量变少时,通过偏导函数确定所述目标像素点与其相邻像素点沿第一方向的第一像素差值以及沿第二方向的第二像素差值的精度也随着下降。即当像素点数量变少时,相邻两个像素点的距离也会变得较远,从而导致相邻两个像素点的像素差值会很大。而像素点的数量较少一般发生在像素点距离虚拟相机的位置太远,或者像素点在屏幕空间中的视线与法线的夹角越趋近于垂直时。
[0110]
考虑到以上因素,一些示例性实施例中,在基于所述第一像素差值与所述第二像素差值确定所述目标像素点在切线空间的第一坐标之后,所述方法还包括:
[0111]
获取所述目标像素点与虚拟相机的距离;
[0112]
响应于确定所述距离大于预设阈值,基于所述距离确定所述目标像素点的法线的第一衰减系数,并基于所述第一衰减系数调节所述第一坐标,以使所述目标像素点距离虚拟相机较远的时,法线强度可以进行相应的衰弱,从而缓解法线的抖动问题。
[0113]
一些示例性实施例中,在基于所述第一像素差值与所述第二像素差值确定所述目标像素点在切线空间的第一坐标之后,所述方法还包括:
[0114]
获取所述目标像素点在屏幕空间中的视线;
[0115]
基于所述第一坐标确定所述目标像素点的法线,并确定所述目标像素点的法线与所述视线的夹角;
[0116]
响应于确定所述夹角与直角差的绝对值小于预设角度,基于所述夹角确定所述目标像素点的法线的第二衰减系数,并基于所述第二衰减系数调节所述第一坐标,从而在所述夹角趋近于垂直时,法线强度可以进行相应的衰弱,从而缓解法线的抖动问题。
[0117]
需要说明的是,上述两个实施例中基于衰减系数调节所述第一坐标的过程,可以直接用衰减系数与所述第一坐标相乘,也可以用第一坐标中的每个分坐标减去衰减系数,在此不做限定。
[0118]
本技术实施例提供的模型法线的确定方法,先获取待渲染的具有混合材质的模型的顶点色遮罩信息图,从所述顶点色遮罩信息图的多个像素点中确定目标像素点,通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,其中,所述第一方向与所述第二方向垂直;基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在切线空间的第一坐标;基于所述目标像素点及所述第一坐标确定所述目标像素点的法线,从而提供了一种简单有效的确定模型多种材质交界处的法线的方法,进而增加了模
型的复用性与可控性。
[0119]
示例性设备
[0120]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种模型法线的确定装置。
[0121]
参考图10,该模型法线的确定装置包括:
[0122]
获取模快201,获取待渲染的具有混合材质的模型的顶点色遮罩信息图;
[0123]
第一确定模块202,从所述顶点色遮罩信息图的多个像素点中确定目标像素点,通过偏导函数沿第一方向确定所述目标像素点与其相邻像素点的第一像素差值,通过所述偏导函数沿第二方向确定所述目标像素点与其相邻像素点的第二像素差值,其中,所述第一方向与所述第二方向垂直;
[0124]
第二确定模块203,基于所述第一像素差值与所述第二像素差值确定所述目标像素点的法线在切线空间的第一坐标;
[0125]
第三确定模块204,基于所述目标像素点及所述第一坐标确定所述目标像素点的法线。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0126]
上述实施例的装置用于实现前述示例性方法部分中任一实施例中相应的模型法线的确定方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0127]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一实施例所述的模型法线的确定方法。
[0128]
图11示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
[0129]
处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0130]
存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0131]
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0132]
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0133]
总线1050包括多个通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0134]
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0135]
上述实施例的电子设备用于实现前述示例性方法部分中任一实施例中相应的模型法线的确定方法。并且具有相应的方法实施例的有益效果,在此不再赘述。
[0136]
示例性程序产品
[0137]
基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例的模型法线的确定方法。
[0138]
上述非暂态计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
[0139]
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上示例性方法部分中任一实施例所述的模型法线的确定方法。并且具有相应的方法实施例的有益效果,在此不再赘述。
[0140]
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本技术可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,一些示例性实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0141]
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0142]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0143]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0144]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0145]
应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0146]
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
[0147]
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0148]
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0149]
申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
[0150]
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
转载请注明原文地址:https://tc.8miu.com/read-3736.html