一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于光栅化渲染的UV映射方法及云端设备与流程

2021-12-04 01:10:00 来源:中国专利 TAG:

一种基于光栅化渲染的uv映射方法及云端设备
技术领域
1.本技术属于计算机技术领域,特别是涉及一种基于光栅化渲染的uv映射方法及云端设备。


背景技术:

2.传统的纹理uv映射操作是依靠光线追踪实现的,基于递归和查找的思想,光线打到实际网格的一个表面点上,根据这个点指向的信息查找中间网格表面的顶点,然后再生成uv信息。
3.在这种传统的纹理uv操作下,用户需要从3d美术在离线的软件中编辑好模型网格顶点的uv信息,然后交由3d美术工程师交付,若有问题需要打回重改。从制作

验收

修改的流程,需要耗费相当多的时间成本与人力成本。
4.随着3d美术的业务量越来越大,更多的从业人员希望可以在3d编辑器或3d展示器内实时对uv点进行修改和调整。


技术实现要素:

5.本技术为了在一定程度上解决现有技术的不足,提供了一种基于光栅化渲染的uv映射方法及云端设备。
6.本技术提出一种基于光栅化渲染的uv映射方法,包括:获取规则网格;依据所述规则网格的类型生成多个uv点,每个所述uv点包括uv信息和纹理信息;依据所述规则网格的类型,将每个所述uv点的uv信息映射为实际网格的位置信息;依据所述位置信息与该uv点的所述纹理信息对所述实际网格进行渲染。
7.在该技术方案中,根据网格的类型生成不同的uv点,并对uv点的uv信息进行映射,以实现uv点上的纹理信息对实际网格进行渲染的效果,与传统的映射方法相比,本方法不但可以减少uv映射方法的计算量,还有利于通过gpu加速运算该方法,充分利用计算机资源,达到实时对uv点进行修改和调整的效果。
8.在上述技术方案中,所述规则网格的类型为球体,所述球体半径为r;所述依据所述规则网格的类型生成uv点,具体为:建立以所述球体的球心为原点的坐标系;以所述球体表面的一点为第一起始点,所述第一起始点的uv信息为(u’,v’),u’和v’为标量;对标量u’更新第一预设次数m,每次更新生成一个第一uv点,其中,第i’次更新生成的第一uv点的标量u

i’,1≤i’≤m,其计算公式为:第i’次更新生成的第一uv点的标量为v

i’,v

i’=v’;以所述球体表面的另一点为第二起始点,所述第二起始点的uv信息为(u”,v”),u”和v”为标量;对标量v”更新第二预设次数n,每次更新生成一个第二uv点,其中,第i”次更新生成的第二uv点的标量,1≤i”≤n,其计算公式为:第i”次更新生成的
第二uv点的标量为所述位置信息包括第一位置信息和第二位置信息,其中,所述第一位置信息为(x

,y

,z

),x

、y

和z

为标量,所述第一uv点映射到所述实际网格的公式为:x’i’=r cos 2πu

i’;y’i’=r sin 2πu

i’cos 2πv

i’;z’i’=r sin 2πu

i’sin 2πv

i’;其中,x’i’为第i’次更新生成的第一uv点映射到所述实际网格获得的标量x

,y’i’为第i’次更新生成的第一uv点映射到所述实际网格获得的标量y

,z’i’为第i’次更新生成的第一uv点映射到所述实际网格获得的标量z

;所述第二位置信息为(x

,y

,z

),x

、y

和z

为标量,所述第二uv点映射到所述实际网格的公式为:为标量,所述第二uv点映射到所述实际网格的公式为:其中,为第i
’′
次更新生成的第二uv点映射到所述实际网格获得的标量x
’′
,为第i
’′
次更新生成的第二uv点映射到所述实际网格获得的标量y
′’
,为第i
’′
次更新生成的第二uv点映射到所述实际网格获得的标量z
’′

9.在该技术方案中,在球体类型的规则网格上生成第一uv点和第二uv点,并利用映射公式对上述两种uv点进行映射,并依靠uv点上的纹理信息对实际网格进行渲染,本方法可以减少映射过程的计算量,达到实时对uv点进行修改和调整的效果。
10.在上述技术方案中,所述第一预设次数m满足以下条件:其中,θ为标量u’每次更新的第一增量;所述第二预设次数n满足以下条件:其中,φ为标量v”每次更新的第二增量。
11.在该技术方案中,增量与预设次数之间呈一定的关系,可以避免生成重复的uv点,从而减少本方法在映射过程中的计算量,以达到实时对uv点进行修改和调整的效果。
12.在上述技术方案中,所述规则网格的类型为圆柱体,所述圆柱体的半径为r’,高度为h;所述依据所述规则网格的类型生成uv点,具体为:以所述圆柱体底面圆心为原点,建立坐标系;以所述圆柱体表面的一点为第三起始点,所述第三起始点的uv信息为(u
”’
,v
”’
),u
”’
、v
”’
为标量;对标量u
”’
更新第三预设次数l,每次更新生成一个第三uv点,其中,第i
”′
次更新生成的第三uv点的标量的计算公式为:第i
”′
次更新生成的第三uv点的标量为所述位置信息为(x
″′
,y
″′
,z
″′
),x
″′
、y
″′
和z
″′
为标量;所述第三uv点映射到所述实际网格的公式为:为标量;所述第三uv点映射到所述实际网格的公式为:其中,为第i
”′
次更新生成的第三uv点映射到所述实际网格获得的标量x
”′
,为第i
”′
次更新生成的第三uv点映射到所述
实际网格获得的标量y
”′
,为第i
”′
次更新生成的第三uv点映射到所述实际网格获得的标量z
”′

13.在该技术方案中,通过在圆柱体类型的规则网格上生成第三uv点,利用映射公式对第三uv点进行映射,以实现第三uv点上携带的纹理信息对实际网格进行渲染的效果。
14.在上述技术方案中,所述第三预设次数1满足以下条件:其中,θ’为标量每次更新的第三增量。
15.在该技术方案中,第三增量与第三预设次数之间呈一定的关系,可以避免生成重复的uv点,从而减少本方法在映射过程中的计算量,以达到实时对uv点进行修改和调整的效果。
16.在上述技术方案中,所述规则网格的类型为立方体;所述依据所述规则网格的类型生成uv点,具体为:以所述实际网格的中心为原点,建立坐标系,所述原点也为所述立方体的中心;获取所述立方体的8个顶点作为第四uv点,所述第四uv点的uv信息分别为其中,p=1,2,3
……
8,和为标量;所述位置信息为(u
″″
,v
″″
),u
″″
和v
″″
为标量;取所述uv信息中较小的两个标量分别除以绝对值最大的标量,得到第一结果和第二结果;将所述第一结果和所述第二结果映射到[0,1]区间,映射后的所述第一结果为标量u
″″
,映射后的第二结果为标量v
″″

[0017]
在该技术方案中,通过立方体上的8个顶点作为第四uv点,本方法对第四uv点的映射,以实现第四uv点上携带的纹理信息对实际网格进行渲染的效果。
[0018]
在上述技术方案中,所述实际网格为球体。
[0019]
本技术另一方面还提供一种云端设备,包括:获取模块,所述获取模块用于获取规则网格;生成模块,所述生成模块用于依据所述规则网格的类型生成包含有uv信息和纹理信息的uv点;映射模块,所述映射模块用于将所述uv点映射为实际网格的位置信息;渲染模块,所述渲染模块用于依据所述位置信息与对应的所述纹理信息对所述实际网格进行渲染。
[0020]
通过该云端设备,可以执行本技术的基于光栅化渲染的uv映射方法,以实现利用规则网格的纹理信息对实际网格进行渲染的效果。
[0021]
本技术的有益效果是:本技术一方面提供一种基于光栅化渲染的uv映射方法,根据网格的类型生成不同的uv点,并对uv点的uv信息进行映射,以实现uv点上的纹理信息对实际网格进行渲染的效果,与传统的映射方法相比,本方法不但可以减少uv映射方法的计算量,还有利于通过gpu加速运算该方法,充分利用计算机资源,达到实时对uv点进行修改和调整的效果;本技术的另一方面提供一种云端设备,通过该云端设备,可以执行本技术的基于光栅化渲染的uv映射方法,以实现利用规则网格的纹理信息对实际网格进行渲染的效果。
附图说明
[0022]
图1示出了根据本技术的的一个实施例的基于光栅化渲染的uv映射方法的流程
图;
[0023]
图2示出了根据本技术的一个实施例的云端设备的结构示意图。
具体实施方式
[0024]
为了可以更清楚地理解本技术的上述目的、特征和优点,下面结合附图和具体实施方式对本技术进行进一步的详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
[0025]
在下面的描述中阐述了很多具体细节,以便于充分理解本技术,但是本技术还可以采用其他不同于在此描述的其他方式来实施,因此,本技术的保护范围并不受下面公开的具体实施例的限制。
[0026]
下面参照附图描述本技术的一些实施例。
[0027]
如图1所示,本技术提供一种基于光栅化渲染的uv映射方法,包括:101:获取规则网格;102:依据规则网格的类型生成多个uv点,每个uv点包括uv信息和纹理信息;103:依据规则网格的类型,将每个uv点的uv信息映射为实际网格的位置信息;104:依据位置信息与该uv点的纹理信息对实际网格进行渲染。
[0028]
在本方法中,光栅化描述的是将uv信息映射为实际网格的位置信息的过程,由于uv信息与位置信息之间具有对应的关系,通过光栅化可以将uv点映射到实际网格上,以利用uv点的纹理信息对实际网格进行渲染和着色。
[0029]
纹理信息可以是规则网格上uv点的颜色信息。
[0030]
根据网格的类型生成不同的uv点,并对uv点的uv信息进行映射,以实现uv点上的纹理信息对实际网格进行渲染的效果,与传统的映射方法相比,本方法不但可以减少uv映射方法的计算量,还有利于通过gpu加速运算该方法,充分利用计算机资源,达到实时对uv点进行修改和调整的效果。
[0031]
具体的,在数学中,映射是指两个元素的集之间元素相互“对应”的关系。由于规则网格的uv信息和实际网格的位置信息之间具有对应的关系,所以通过映射的方法,由uv信息获得实际网格中的位置信息,以利用对应的纹理信息对实际网格的渲染。现代gpu都是基于光栅化渲染的原理实现的,而该uv映射方法是在光栅化渲染上提出的,因此是可以直接通过gpu加速运算。
[0032]
对于本方法而言,在规则网格上的uv点可以为预设数量,再通过三角插值的方法可以将剩下的点转变成uv点,进行后续的映射流程。
[0033]
以球体为例,介绍本方法的渲染过程。球体半径为r,建立以球体的球心为原点的坐标系;以球体表面的一点为第一起始点,第一起始点的uv信息为(u’,v’),u’和v’为标量;对标量u’更新第一预设次数m,每次更新生成一个第一uv点,其中,第i’次更新生成的第一uv点的标量u

i’,1≤i’≤m,其计算公式为:第i’次更新生成的第一uv点的标量为v

i’,v

i’=v’;以球体表面的另一点为第二起始点,第二起始点的uv信息为(u”,v”),u”和v”为标量;对标量v”更新第二预设次数n,每次更新生成一个第二uv点,其中,第i”次更新生成的第二uv点的标量1≤i”≤n,其计算公式为:第i”次更新生成的
第二uv点的标量为第二uv点的标量为位置信息包括第一位置信息和第二位置信息,其中,第一位置信息为(x

,y

,z

),x

、y

和z

为标量,第一uv点映射到实际网格的公式为:x’i’=r cos 2πu

i’;y’i’=r sin 2πu

i
’ cos 2πv

i’;z’i’=r sin2πu

i
’ sin2πv

i’;其中,x’i’为第i’次更新生成的第一uv点映射到实际
[0034]
网格获得的标量x

,y’i’为第i’次更新生成的第一uv点映射到实际网格获得的标量y

,z’i’为第i’次更新生成的第一uv点映射到实际网格获得的标量z

;第二位置信息为(x

,y

,z

),x

、y

和z

为标量,第二uv点映射到实际网格的公式为:为标量,第二uv点映射到实际网格的公式为:其中,为第i
’′
次更新生成的第二uv点映射到实际网格获得的标量x
’′
,为第i
’′
次更新生成的第二uv点映射到实际网格获得的标量y
′’
,为第i
’′
次更新生成的第二uv点映射到实际网格获得的标量z
’′

[0035]
在上述实施例中,第一起始点的uv信息和第二起始点的uv信息获得方式可以为:建立以球心为原点的极坐标系,第一起始点的极坐标为(r,u’,v’),其中,u’为第一起始点在该极坐标系中的方位角信息,v’为第一起始点在该极坐标系中的仰角信息,由于r为已知量,省去,从而获得第一起始点的uv信息;第二起始点的极坐标为(r,u”,v”),其中,u”为第一起始点在该极坐标系中的方位角信息,v”为第一起始点在该极坐标系中的仰角信息,由于r为已知量,省去,从而获得第二起始点的uv信息。
[0036]
通过设定第一预设次数m,从而控制第一uv点的生成数量,有利于避免处于相同位置的第一uv点的生成,减少计算量。进一步的,第一预设次数m满足以下条件:其中,θ为标量u’每次更新的第一增量。满足上述条件的第一预设次数m,使第一uv点的生成数量为合理的数值,有效减少本方法执行时的计算量。
[0037]
通过设定第二预设次数n,从而控制第二uv点的生成数量,有利于避免处于相同位置的第二uv点的生成,减少计算量。进一步的,第二预设次数n满足以下条件:其中,φ为标量v”每次更新的第二增量。满足上述条件的第二预设次数n,使第二uv点的生成数量为合理的数值,可以有效减少本方法执行时的计算量。
[0038]
通过上述第一uv点和第二uv点的生成和映射,可以将规则网格上的第一uv点的uv信息(u’,v’)映射为实际网格上的位置信息(x

,y

,z

)。将规则网格上的第二uv点的uv信息(u”,v”)映射为实际网格上的位置信息(x

,y

,z

),从而实现利用对应的纹理信息对实际网格进行渲染。通过三角插值的方法可以增加第一uv点和第二uv点的数量,以提高渲染的效果。三角插值的原理为:已知三角形三个顶点的uv信息,根据要插值的点的重心坐标的分量作为权重,然后将这三个权重分别与三个顶点的uv信息相乘,最后将它们叠加到一起,得到新uv点的uv信息。
[0039]
以圆柱体为例,介绍本方法的渲染过程。圆柱体的半径为r’,高度为h;以圆柱体底面圆心为原点,建立坐标系;以圆柱体表面的一点为第三起始点,第三起始点的uv信息为
(u
”’
,v
”’
),u
”’
、v
”’
为标量;对标量u
”’
更新第三预设次数l,每次更新生成一个第三uv点,其中,第i
”′
次更新生成的第三uv点的标量的计算公式为:第i
”′
次更新生成的第三uv点的标量为位置信息为(x
″′
,y
″′
,z
″′
),x
″′
、y
″′
和z
″′
为标量;第三uv点映射到实际网格的公式为:为标量;第三uv点映射到实际网格的公式为:其中,为第i
”′
次更新生成的第三uv点映射到实际网格获得的标量x
”′
,为第i
”′
次更新生成的第三uv点映射到实际网格获得的标量y
”′
,为第i
”′
次更新生成的第三uv点映射到实际网格获得的标量z
”′

[0040]
在上述实施例中,第三起始点的uv信息获得方式可以为:建立以圆柱体底面圆心为原点的圆柱坐标系,第一起始点的坐标为(r’,u’,v’),其中,u’为第一起始点在该坐标系中的方位角信息,v’为第一起始点在该坐标系中的高度信息,由于r’为已知量,省去,从而获得第三起始点的uv信息。
[0041]
通过设定第三预设次数l,从而控制第三uv点的生成数量,有利于避免处于相同位置的第三uv点的生成,减少计算量。进一步的,第三预设次数n满足以下条件:其中,φ为标量v”每次更新的第三增量。
[0042]
通过上述第三uv点的生成和映射,可以将规则网格上的第三uv点的uv信息(u
”’
,v
”’
)映射为实际网格上的位置信息(x
″′
,y
″′
,z
″′
),从而利用对应的纹理信息实现对实际网格进行渲染。
[0043]
以立方体为例,介绍本方法的执行流程。以实际网格的中心为原点,建立坐标系,原点也为立方体的中心;获取立方体的8个顶点作为第四uv点,第四uv点的uv信息分别为其中,i
″″
=1,2,3
……
8,和为标量;位置信息为(u
″″
,v
″″
),u
″″
和v
″″
为标量;取uv信息中较小的两个标量分别除以绝对值最大的标量,得到第一结果和第二结果;将第一结果和第二结果映射到[0,1]区间,映射后的第一结果为标量u
″″
,映射后的第二结果为标量v
″″

[0044]
标量的映射公式可以为其中,为第i
″″
个第四uv点,k
i
″″
为第i
″″
个第四uv点对应的第一结果;标量的映射公式可以为其中,为第j
″″
个第四uv点,j
i
″″
为第i
″″
个第四uv点对应的第二结果。
[0045]
如图2所示,本技术的另一个方面提供一种云端设备,包括:获取模块201,获取模块201用于获取规则网格;生成模块202,生成模块202用于依据规则网格的类型生成包含有uv信息和纹理信息的uv点;映射模块203,映射模块203用于将uv点映射为实际网格的位置
信息;渲染模块204,渲染模块204用于依据位置信息与对应的纹理信息对实际网格进行渲染。
[0046]
通过本技术的云端设备可以执行本技术的基于光栅化渲染的uv映射方法,以实现利用规则网格的纹理信息对实际网格进行渲染的效果。
[0047]
进一步的,获取模块201获取到球体的规则网格时,生成模块202可以以球体表面上的一点作为第一起始点,获取第一起始点的uv信息(u’,v’)和第二起始点的uv信息(u”,v”),对第一起始点更新m次,每次更新生成一个第一uv点,通过公式获取第一uv点的标量u

i’,以第一起始点的标量v’作为该第一uv点的标量v

i’;对第二起始点更新n次,每次更新生成一个第二uv点,通过公式获取第二uv点的标量以第二起始点的标量u”作为该第二uv点的标量
[0048]
获取uv点的uv信息和纹理信息后,映射模块203通过公式x’i’=r cos 2πu

i’、y’i’=r sin 2πu

i
’ cos 2πv

i’和z’i’=r sin 2πu

i
’ sin 2πv

i’将第一uv点转换成实际网格中对应的位置信息(x’i’,y’i’,z’i’)。x’i’为第i’次更新生成的第一uv点映射到实际网格获得的标量x

,y’i’为第i’次更新生成的第一uv点映射到实际网格获得的标量y

,z’i’为第i’次更新生成的第一uv点映射到实际网格获得的标量z


[0049]
映射模块203通过公式映射模块203通过公式和将第二uv点转换成实际网格中对应的位置信息其中,为第i
’′
次更新生成的第二uv点映射到实际网格获得的标量x
’′
,为第i
’′
次更新生成的第二uv点映射到实际网格获得的标量y
′’
,为第i
’′
次更新生成的第二uv点映射到实际网格获得的标量z
’′

[0050]
最后,渲染模块204利用每个uv点上的纹理信息对实际网格进行着色。
[0051]
相应的,生成模块202还可以依据三角插值的原理,在规则网格上生成更多的第一uv点和第二uv点,以提高渲染模块204的着色效果。
[0052]
获取模块201获取到球体的规则网格时,生成模块202以圆柱体底面圆心为原点,建立坐标系;以圆柱体表面的一点为第三起始点,第三起始点的uv信息为(u
”’
,v
”’
),u
”’
、v
”’
为标量;对标量u
”’
更新第三预设次数l,每次更新生成一个第三uv点,其中,第i
”′
次更新生成的第三uv点的标量的计算公式为:第i
”′
次更新生成的第三uv点的标量为映射模块203通过公式
将第三uv点上的uv信息映射为实际网格的位置信息其中,为第i
”′
次更新生成的第三uv点映射到实际网格获得的标量x
”′
,为第i
”′
次更新生成的第三uv点映射到实际网格获得的标量y
”′
,为第i
”′
次更新生成的第三uv点映射到实际网格获得的标量z
”′

[0053]
获取模块201获取到立方体的规则网格时,生成模块202以实际网格的中心为原点,建立坐标系,原点也为立方体的中心;获取立方体的8个顶点作为第四uv点,第四uv点的uv信息分别为其中,p=1,2,3
……
8,和为标量;位置信息为(u
″″
,v
″″
),u
″″
和v
″″
为标量;取uv信息中较小的两个标量分别除以绝对值最大的标量,得到第一结果和第二结果;映射模块203将第一结果和第二结果映射到[0,1]区间,映射后的第一结果为标量u
″″
,映射后的第二结果为标量v
″″

[0054]
所属领域的技术人员可以清楚了解到,为了描述的方便和简洁,上述描述的系统和单元的具体工作过程,可以参考前述申请实施例中的对应过程,在此不再赘述。
[0055]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围,其均应涵盖在本技术的权利要求和说明书的范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献