一种屏幕空间模型边缘UV重建的方法、装置和设备与流程

文档序号:31275125发布日期:2022-08-27 00:38阅读:85来源:国知局
一种屏幕空间模型边缘UV重建的方法、装置和设备与流程
一种屏幕空间模型边缘uv重建的方法、装置和设备
技术领域
1.本发明涉及计算机技术领域,尤其涉及一种屏幕空间模型边缘uv重建的方法、装置、介质和设备。


背景技术:

2.在风格化渲染领域,比如卡通渲染、科技渲染等,为了强调模型的边缘,需要制作模型边缘的模型或者在屏幕空间利用卷积核提取模型边缘。但现有的算法只能提取出一条拥有固定像素宽度的边,这条边没有方向,没有uv分布或者uv分布时域空间不连续,无法再基于边制作效果,比如贴图等。
3.为此本领域迫切需要一种能够解决上述技术问题的方法。


技术实现要素:

4.本发明所要解决的技术问题是针对现有技术的不足,提供一种屏幕空间模型边缘uv重建的方法、装置、介质和设备。
5.本发明解决上述技术问题的技术方案如下:
6.一种屏幕空间模型边缘uv重建的方法,所述方法包括:
7.在不同渲染管线中获取世界坐标p、世界法线n与场景深度d;
8.利用索贝尔滤波器提取物体的几何边缘e,并计算边缘e在屏幕空间中的二维方向r;
9.利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r;
10.利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x;
11.利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y;
12.利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局。
13.进一步地,所述在不同渲染管线中获取世界坐标p、世界法线n与场景深度d包括:
14.在延迟渲染管线中通过gbuffer直接从世界坐标缓冲、世界法线缓冲和世界深度缓冲中分别获取到世界坐标p、世界法线n与场景深度d。
15.或者,在正向渲染管线中通过z-prepass处理之后获取场景深度d,根据所述场景深度d重建当前像素的世界坐标p和世界法线n。
16.进一步地,所述在不同渲染管线中获取世界坐标p、世界法线n与场景深度d包括:所述利用索贝尔滤波器提取物体的几何边缘e,并计算边缘e在屏幕空间中的二维方向r包括:
17.利用索贝尔滤波器提取物体的几何边缘e,具体通过x轴与y轴对应的两个卷积核采样当前像素在x轴和y轴上法线变化的幅度分别为gx、gy,当|gx|+|gy|大于阈值h,则提取当前像素作为几何边缘;
18.x轴卷积核:
19.y轴卷积核:
20.利用所述gx、gy计算边缘e在屏幕空间中的二维方向r,具体通过反三角函数进行计算得到二维方向r;
21.r单位为弧度。
22.进一步地,所述利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r包括:
23.利用二维方向r和原始卷积核构造边缘e左右两侧的方向卷积核k
l
和kr;
24.原始左侧卷积核
25.原始右侧卷积核
26.利用二维方向r构造二维旋转矩阵r;
[0027][0028]
利用二维旋转矩阵r变换原始卷积核中的每个元素即可得到新的方向卷积核k
l
和kr:
[0029][0030]
利用方向卷积核k
l
和kr采样世界法线n,分别获取边缘e左侧和右侧的世界法线n
l
和nr,再叉积得到边在世界坐标系下的方向r;
[0031]
r=cross(n
l
,nr)。
[0032]
进一步地,所述利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x包括:
[0033]
利用二维方向r和原始卷积核构造用于采样场景深度d的方向卷积核kd;其中,原始卷积核如下,
[0034]
[0035]
利用kd采样场景深度d,得到连续的uv坐标的横轴值x。
[0036]
进一步地,所述利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y包括:
[0037]
将世界坐标p投影到三维方向r上,并且利用投影算法将世界坐标p投影到三维方向r上得到r轴上的变量r’;
[0038]
r'=dot(p,r)
[0039]
利用变量r’计算出uv坐标中竖轴值y,其中,y=length(r')。
[0040]
进一步地,所述利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局包括:
[0041]
uv=float2(x,y)*t*e。
[0042]
本方法发明的有益效果是:提出了一种屏幕空间模型边缘uv重建的方法,包括在不同渲染管线中获取世界坐标p、世界法线n与场景深度d;利用索贝尔滤波器提取物体的几何边缘e,并计算边缘e在屏幕空间中的二维方向r;利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r;利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x;利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y;利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局。本发明提取边方向和uv重建的方案适用于任何屏幕空间边缘提取的算法,并且重建的uv布局在时域上连续,不会随着相机视角的变化而产生变化。
[0043]
本发明还解决上述技术问题的另一种技术方案如下:
[0044]
一种屏幕空间模型边缘uv重建装置,所述装置包括:
[0045]
获取模块,用于在不同渲染管线中获取世界坐标p、世界法线n与场景深度d;
[0046]
二维方向模块,用于利用索贝尔滤波器提取物体的几何边缘e,并计算边缘e在屏幕空间中的二维方向r;
[0047]
三维方向模块,用于利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r;
[0048]
第一坐标模块,用于利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x;
[0049]
第二坐标模块,用于利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y;
[0050]
构建模块,用于利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局。
[0051]
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的屏幕空间模型边缘uv重建的方法的步骤。
[0052]
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的屏幕空间模型边缘uv重建的方法的步骤。
[0053]
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
[0054]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]
图1为本发明实施例所述的一种屏幕空间模型边缘uv重建的方法的流程示意图;
[0056]
图2为利用索贝尔滤波器提取物体的几何边缘e示意图;
[0057]
图3为重建完成后边缘uv布局示意图;
[0058]
图4为本发明另一实施例所述的一种屏幕空间模型边缘uv重建装置的模块示意图。
具体实施方式
[0059]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0060]
如图1本发明实施例所述的一种屏幕空间模型边缘uv重建的方法所示,包括以下步骤:
[0061]
110、在不同渲染管线中获取世界坐标p、世界法线n与场景深度d;
[0062]
120、利用索贝尔滤波器提取物体的几何边缘e,如图2所示,并计算边缘e在屏幕空间中的二维方向r;
[0063]
130、利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r;
[0064]
140、利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x;
[0065]
150、利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y;
[0066]
160、利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局,如图3所示。
[0067]
基于上述实施例,进一步地,步骤110中在不同渲染管线中获取世界坐标p、世界法线n与场景深度d包括:
[0068]
111、在延迟渲染管线中通过gbuffer直接从世界坐标缓冲、世界法线缓冲和世界深度缓冲中分别获取到世界坐标p、世界法线n与场景深度d。
[0069]
或者,基于上述实施例,进一步地,步骤110中在不同渲染管线中获取世界坐标p、世界法线n与场景深度d还可以包括:
[0070]
112、在正向渲染管线中通过z-prepass处理之后获取场景深度d,根据所述场景深度d重建当前像素的世界坐标p和世界法线n。
[0071]
本发明的屏幕空间模型边缘uv重建的方法在屏幕空间提取模型边缘,分析模型边缘的方向并对模型边缘进行uv重建,还可以同时支持延迟着色渲染管线和正向着色渲染管线。
[0072]
具体地,上述步骤112中在正向渲染管线中通过z-prepass处理之后获取场景深度
d,根据所述场景深度d重建当前像素的世界坐标p和世界法线n具体包括:
[0073]
1121、利用场景深度d、相机世界坐标pcam、相机世界坐标系方向dcam、像素在世界坐标系下的方向dp,重建当前像素世界坐标p;
[0074][0075]
1122、利用世界坐标p重建当前像素的世界法线n,具体是先通过步骤1121中的世界坐标p的计算公式先计算当前像素上、下、左、右四个像素的世界坐标pu,pd,p
l
,pr,然后利用叉积公式获取世界法线n:
[0076]
n=normalize(cross(p
r-p
l
,p
u-pd))。
[0077]
基于上述实施例,进一步地,步骤120中利用索贝尔滤波器提取物体的几何边缘e,并计算边缘e在屏幕空间中的二维方向r包括:
[0078]
121、利用索贝尔滤波器提取物体的几何边缘e,几何边缘可以利用相邻像素法线是否产生变化来提取。具体通过x轴与y轴对应的两个卷积核采样当前像素在x轴和y轴上法线变化的幅度分别为gx、gy,当|gx|+|gy|大于阈值h,则提取当前像素作为几何边缘e,并将当前像素标记为1,否则标记为0。通过卷积核采样是利用当前像素在屏幕空间的uv坐标,结合卷积核中对应的偏移分量得到新的采样坐标。
[0079]
x轴卷积核:
[0080]
y轴卷积核:
[0081]
122、利用所述gx、gy计算边缘e在屏幕空间中的二维方向r,具体通过反三角函数进行计算得到二维方向r;
[0082]
r单位为弧度。
[0083]
基于上述实施例,进一步地,步骤130中利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r包括:
[0084]
131、利用二维方向r和原始卷积核构造边缘e左右两侧的方向卷积核k
l
和kr;
[0085]
原始左侧卷积核
[0086]
原始右侧卷积核
[0087]
利用二维方向r构造二维旋转矩阵r;
[0088][0089]
利用二维旋转矩阵r变换原始卷积核中的每个元素即可得到新的方向卷积核k
l
和kr:
[0090][0091]
132、利用方向卷积核k
l
和kr采样世界法线n,分别获取边缘e左侧和右侧的世界法线n
l
和nr,再叉积得到边在世界坐标系下的方向r;
[0092]
r=cross(n
l
,nr)。
[0093]
步骤132中具体可以利用k
l
和kr从世界法线n中采样左侧三个像素和右侧三个像素的法线,并取均值得到世界法线n
l
和nr,再利用叉积计算得r。
[0094]
基于上述实施例,进一步地,步骤140中利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x包括:
[0095]
141、利用二维方向r和原始卷积核构造用于采样场景深度d的方向卷积核kd;其中,原始卷积核如下,
[0096][0097]
利用二维方向r构造二维旋转矩阵r;
[0098][0099]
利用二维旋转矩阵r变换原始卷积核中的每个元素即可得到新的方向卷积核kd:
[0100][0101]
采样较大的具有梯度的卷积核,并且可以提取出更加容易利用的、并具有梯度的uv横轴值x。
[0102]
142、利用kd采样场景深度d,得到连续的uv坐标的横轴值x。
[0103]
本发明中采样场景深度d的优点是,场景深度d在边缘e的某一层深度总是连续的,这样得到的值在时域上是必定连续的,不会随着相机的变化而产生变化。
[0104]
基于上述实施例,进一步地,步骤150中利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y包括:
[0105]
151、将世界坐标p投影到三维方向r上,并且利用投影算法将世界坐标p投影到三维方向r上得到r轴上的变量r’。其中,r’在世界坐标系下拥有时序连续的优点,所以也不会随着相机变化而变化;
[0106]
r'=dot(p,r)
[0107]
152、利用变量r’计算出uv坐标中竖轴值y,其中,y=length(r'),将r’标量化后依旧拥有时序连续的特点。
[0108]
基于上述实施例,进一步地,步骤160中利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局包括:
[0109]
uv=float2(x,y)*t*e。
[0110]
基于上述实施例所提出的一种屏幕空间模型边缘uv重建的方法,包括在不同渲染管线中获取世界坐标p、世界法线n与场景深度d;利用索贝尔滤波器提取物体的几何边缘e,并计算边缘e在屏幕空间中的二维方向r;利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r;利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x;利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y;利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局。本发明提取边方向和uv重建的方案适用于任何屏幕空间边缘提取的算法,并且重建的uv布局在时域上连续,不会随着相机视角的变化而产生变化。
[0111]
如图4所示,一种屏幕空间模型边缘uv重建装置,所述装置包括:
[0112]
获取模块,用于在不同渲染管线中获取世界坐标p、世界法线n与场景深度d;
[0113]
二维方向模块,用于利用索贝尔滤波器提取物体的几何边缘e,并计算边缘e在屏幕空间中的二维方向r;
[0114]
三维方向模块,用于利用所述屏幕空间中的二维方向r和世界法线n计算边缘e在世界坐标系中的三维方向r;
[0115]
第一坐标模块,用于利用所述屏幕空间中的二维方向r和场景深度d计算uv坐标的横轴值x;
[0116]
第二坐标模块,用于利用所述屏幕空间中的三维方向r和世界坐标p计算uv坐标的竖轴值y;
[0117]
构建模块,用于利用所述边缘e、横轴值x与竖轴值y,并结合坐标缩放系数t重建出边缘uv布局。
[0118]
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的屏幕空间模型边缘uv重建的方法的步骤。
[0119]
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的屏幕空间模型边缘uv重建的方法的步骤。
[0120]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0121]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0122]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另
一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0123]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0124]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0125]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0126]
基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
[0127]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
[0128]
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1