一种基于光栅化渲染的uv映射方法及云端设备

文档序号:1923238 发布日期:2021-12-03 浏览:9次 >En<

阅读说明:本技术 一种基于光栅化渲染的uv映射方法及云端设备 (UV mapping method based on rasterization rendering and cloud equipment ) 是由 赵俊杰 陈健豪 于 2021-08-02 设计创作,主要内容包括:本申请属于计算机技术领域,特别是涉及一种基于光栅化渲染的UV映射方法及云端设备,方法包括:获取规则网格;依据所述规则网格的类型生成多个UV点,每个所述UV点包括UV信息和纹理信息;依据所述规则网格的类型,将每个所述UV点的UV信息映射为实际网格的位置信息;依据所述位置信息与该UV点的所述纹理信息对所述实际网格进行渲染。本申请的有益效果是:与传统的映射方法相比,本申请的方法不但可以减少UV映射方法的计算量,还有利于通过GPU加速运算该方法,充分利用计算机资源,达到实时对UV点进行修改和调整的效果;本申请还提供一种云端设备,以执行本申请的基于光栅化渲染的UV映射方法,以实现利用规则网格的纹理信息对实际网格进行渲染的效果。(The application belongs to the technical field of computers, and particularly relates to a UV mapping method and cloud equipment based on rasterization rendering, wherein the method comprises the following steps: acquiring a regular grid; generating a plurality of UV points according to the type of the regular grid, wherein each UV point comprises UV information and texture information; mapping the UV information of each UV point into position information of an actual grid according to the type of the regular grid; and rendering the actual grid according to the position information and the texture information of the UV point. The beneficial effect of this application is: compared with the traditional mapping method, the method can reduce the calculation amount of the UV mapping method, is favorable for accelerating the calculation through the GPU, fully utilizes computer resources and achieves the effect of modifying and adjusting the UV points in real time; the application also provides cloud equipment for executing the UV mapping method based on the rasterization rendering, so that the effect of rendering the actual grid by using the texture information of the regular grid is realized.)

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

技术领域

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

背景技术

传统的纹理UV映射操作是依靠光线追踪实现的,基于递归和查找的思想,光线打到实际网格的一个表面点上,根据这个点指向的信息查找中间网格表面的顶点,然后再生成UV信息。

在这种传统的纹理UV操作下,用户需要从3D美术在离线的软件中编辑好模型网格顶点的UV信息,然后交由3D美术工程师交付,若有问题需要打回重改。从制作-验收-修改的流程,需要耗费相当多的时间成本与人力成本。

随着3D美术的业务量越来越大,更多的从业人员希望可以在3D编辑器或3D展示器内实时对UV点进行修改和调整。

发明内容

本申请为了在一定程度上解决现有技术的不足,提供了一种基于光栅化渲染的UV映射方法及云端设备。

本申请提出一种基于光栅化渲染的UV映射方法,包括:获取规则网格;依据所述规则网格的类型生成多个UV点,每个所述UV点包括UV信息和纹理信息;依据所述规则网格的类型,将每个所述UV点的UV信息映射为实际网格的位置信息;依据所述位置信息与该UV点的所述纹理信息对所述实际网格进行渲染。

在该技术方案中,根据网格的类型生成不同的UV点,并对UV点的UV信息进行映射,以实现UV点上的纹理信息对实际网格进行渲染的效果,与传统的映射方法相比,本方法不但可以减少UV映射方法的计算量,还有利于通过GPU加速运算该方法,充分利用计算机资源,达到实时对UV点进行修改和调整的效果。

在上述技术方案中,所述规则网格的类型为球体,所述球体半径为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点映射到所述实际网格的公式为: 其中,为第i’′次更新生成的第二UV点映射到所述实际网格获得的标量x’′,为第i’′次更新生成的第二UV点映射到所述实际网格获得的标量y′’,为第i’′次更新生成的第二UV点映射到所述实际网格获得的标量z’′。

在该技术方案中,在球体类型的规则网格上生成第一UV点和第二UV点,并利用映射公式对上述两种UV点进行映射,并依靠UV点上的纹理信息对实际网格进行渲染,本方法可以减少映射过程的计算量,达到实时对UV点进行修改和调整的效果。

在上述技术方案中,所述第一预设次数m满足以下条件:其中,θ为标量u’每次更新的第一增量;所述第二预设次数n满足以下条件:其中,Φ为标量v”每次更新的第二增量。

在该技术方案中,增量与预设次数之间呈一定的关系,可以避免生成重复的UV点,从而减少本方法在映射过程中的计算量,以达到实时对UV点进行修改和调整的效果。

在上述技术方案中,所述规则网格的类型为圆柱体,所述圆柱体的半径为r’,高度为h;所述依据所述规则网格的类型生成UV点,具体为:以所述圆柱体底面圆心为原点,建立坐标系;以所述圆柱体表面的一点为第三起始点,所述第三起始点的UV信息为(u”’,v”’),u”’、v”’为标量;对标量u”’更新第三预设次数l,每次更新生成一个第三UV点,其中,第i”′次更新生成的第三UV点的标量的计算公式为:第i”′次更新生成的第三UV点的标量为所述位置信息为(x″′,y″′,z″′),x″′、y″′和z″′为标量;所述第三UV点映射到所述实际网格的公式为: 其中,为第i”′次更新生成的第三UV点映射到所述实际网格获得的标量x”′,为第i”′次更新生成的第三UV点映射到所述实际网格获得的标量y”′,为第i”′次更新生成的第三UV点映射到所述实际网格获得的标量z”′。

在该技术方案中,通过在圆柱体类型的规则网格上生成第三UV点,利用映射公式对第三UV点进行映射,以实现第三UV点上携带的纹理信息对实际网格进行渲染的效果。

在上述技术方案中,所述第三预设次数1满足以下条件:其中,θ’为标量每次更新的第三增量。

在该技术方案中,第三增量与第三预设次数之间呈一定的关系,可以避免生成重复的UV点,从而减少本方法在映射过程中的计算量,以达到实时对UV点进行修改和调整的效果。

在上述技术方案中,所述规则网格的类型为立方体;所述依据所述规则网格的类型生成UV点,具体为:以所述实际网格的中心为原点,建立坐标系,所述原点也为所述立方体的中心;获取所述立方体的8个顶点作为第四UV点,所述第四UV点的UV信息分别为其中,p=1,2,3……8,为标量;所述位置信息为(u″″,v″″),u″″和v″″为标量;取所述UV信息中较小的两个标量分别除以绝对值最大的标量,得到第一结果和第二结果;将所述第一结果和所述第二结果映射到[0,1]区间,映射后的所述第一结果为标量u″″,映射后的第二结果为标量v″″。

在该技术方案中,通过立方体上的8个顶点作为第四UV点,本方法对第四UV点的映射,以实现第四UV点上携带的纹理信息对实际网格进行渲染的效果。

在上述技术方案中,所述实际网格为球体。

本申请另一方面还提供一种云端设备,包括:获取模块,所述获取模块用于获取规则网格;生成模块,所述生成模块用于依据所述规则网格的类型生成包含有UV信息和纹理信息的UV点;映射模块,所述映射模块用于将所述UV点映射为实际网格的位置信息;渲染模块,所述渲染模块用于依据所述位置信息与对应的所述纹理信息对所述实际网格进行渲染。

通过该云端设备,可以执行本申请的基于光栅化渲染的UV映射方法,以实现利用规则网格的纹理信息对实际网格进行渲染的效果。

本申请的有益效果是:本申请一方面提供一种基于光栅化渲染的UV映射方法,根据网格的类型生成不同的UV点,并对UV点的UV信息进行映射,以实现UV点上的纹理信息对实际网格进行渲染的效果,与传统的映射方法相比,本方法不但可以减少UV映射方法的计算量,还有利于通过GPU加速运算该方法,充分利用计算机资源,达到实时对UV点进行修改和调整的效果;本申请的另一方面提供一种云端设备,通过该云端设备,可以执行本申请的基于光栅化渲染的UV映射方法,以实现利用规则网格的纹理信息对实际网格进行渲染的效果。

附图说明

图1示出了根据本申请的的一个实施例的基于光栅化渲染的UV映射方法的流程图;

图2示出了根据本申请的一个实施例的云端设备的结构示意图。

具体实施方式

为了可以更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节,以便于充分理解本申请,但是本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施例的限制。

下面参照附图描述本申请的一些实施例。

如图1所示,本申请提供一种基于光栅化渲染的UV映射方法,包括:101:获取规则网格;102:依据规则网格的类型生成多个UV点,每个UV点包括UV信息和纹理信息;103:依据规则网格的类型,将每个UV点的UV信息映射为实际网格的位置信息;104:依据位置信息与该UV点的纹理信息对实际网格进行渲染。

在本方法中,光栅化描述的是将UV信息映射为实际网格的位置信息的过程,由于UV信息与位置信息之间具有对应的关系,通过光栅化可以将UV点映射到实际网格上,以利用UV点的纹理信息对实际网格进行渲染和着色。

纹理信息可以是规则网格上UV点的颜色信息。

根据网格的类型生成不同的UV点,并对UV点的UV信息进行映射,以实现UV点上的纹理信息对实际网格进行渲染的效果,与传统的映射方法相比,本方法不但可以减少UV映射方法的计算量,还有利于通过GPU加速运算该方法,充分利用计算机资源,达到实时对UV点进行修改和调整的效果。

具体的,在数学中,映射是指两个元素的集之间元素相互“对应”的关系。由于规则网格的UV信息和实际网格的位置信息之间具有对应的关系,所以通过映射的方法,由UV信息获得实际网格中的位置信息,以利用对应的纹理信息对实际网格的渲染。现代GPU都是基于光栅化渲染的原理实现的,而该UV映射方法是在光栅化渲染上提出的,因此是可以直接通过GPU加速运算。

对于本方法而言,在规则网格上的UV点可以为预设数量,再通过三角插值的方法可以将剩下的点转变成UV点,进行后续的映射流程。

以球体为例,介绍本方法的渲染过程。球体半径为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点的标量为 位置信息包括第一位置信息和第二位置信息,其中,第一位置信息为(x′,y′,z′),x′、y′和z′为标量,第一UV点映射到实际网格的公式为:x’i’=r cos2π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点映射到实际

网格获得的标量x′,y’i’为第i’次更新生成的第一UV点映射到实际网格获得的标量y′,z’i’为第i’次更新生成的第一UV点映射到实际网格获得的标量z′;第二位置信息为(x″,y″,z″),x″、y″和z″为标量,第二UV点映射到实际网格的公式为: 其中,为第i’′次更新生成的第二UV点映射到实际网格获得的标量x’′,为第i’′次更新生成的第二UV点映射到实际网格获得的标量y′’,为第i’′次更新生成的第二UV点映射到实际网格获得的标量z’′。

在上述实施例中,第一起始点的UV信息和第二起始点的UV信息获得方式可以为:建立以球心为原点的极坐标系,第一起始点的极坐标为(r,u’,v’),其中,u’为第一起始点在该极坐标系中的方位角信息,v’为第一起始点在该极坐标系中的仰角信息,由于r为已知量,省去,从而获得第一起始点的UV信息;第二起始点的极坐标为(r,u”,v”),其中,u”为第一起始点在该极坐标系中的方位角信息,v”为第一起始点在该极坐标系中的仰角信息,由于r为已知量,省去,从而获得第二起始点的UV信息。

通过设定第一预设次数m,从而控制第一UV点的生成数量,有利于避免处于相同位置的第一UV点的生成,减少计算量。进一步的,第一预设次数m满足以下条件:其中,θ为标量u’每次更新的第一增量。满足上述条件的第一预设次数m,使第一UV点的生成数量为合理的数值,有效减少本方法执行时的计算量。

通过设定第二预设次数n,从而控制第二UV点的生成数量,有利于避免处于相同位置的第二UV点的生成,减少计算量。进一步的,第二预设次数n满足以下条件:其中,Φ为标量v”每次更新的第二增量。满足上述条件的第二预设次数n,使第二UV点的生成数量为合理的数值,可以有效减少本方法执行时的计算量。

通过上述第一UV点和第二UV点的生成和映射,可以将规则网格上的第一UV点的UV信息(u’,v’)映射为实际网格上的位置信息(x′,y′,z′)。将规则网格上的第二UV点的UV信息(u”,v”)映射为实际网格上的位置信息(x″,y″,z″),从而实现利用对应的纹理信息对实际网格进行渲染。通过三角插值的方法可以增加第一UV点和第二UV点的数量,以提高渲染的效果。三角插值的原理为:已知三角形三个顶点的UV信息,根据要插值的点的重心坐标的分量作为权重,然后将这三个权重分别与三个顶点的UV信息相乘,最后将它们叠加到一起,得到新UV点的UV信息。

以圆柱体为例,介绍本方法的渲染过程。圆柱体的半径为r’,高度为h;以圆柱体底面圆心为原点,建立坐标系;以圆柱体表面的一点为第三起始点,第三起始点的UV信息为(u”’,v”’),u”’、v”’为标量;对标量u”’更新第三预设次数l,每次更新生成一个第三UV点,其中,第i”′次更新生成的第三UV点的标量的计算公式为:第i”′次更新生成的第三UV点的标量为位置信息为(x″′,y″′,z″′),x″′、y″′和z″′为标量;第三UV点映射到实际网格的公式为: 其中,为第i”′次更新生成的第三UV点映射到实际网格获得的标量x”′,为第i”′次更新生成的第三UV点映射到实际网格获得的标量y”′,为第i”′次更新生成的第三UV点映射到实际网格获得的标量z”′。

在上述实施例中,第三起始点的UV信息获得方式可以为:建立以圆柱体底面圆心为原点的圆柱坐标系,第一起始点的坐标为(r’,u’,v’),其中,u’为第一起始点在该坐标系中的方位角信息,v’为第一起始点在该坐标系中的高度信息,由于r’为已知量,省去,从而获得第三起始点的UV信息。

通过设定第三预设次数l,从而控制第三UV点的生成数量,有利于避免处于相同位置的第三UV点的生成,减少计算量。进一步的,第三预设次数n满足以下条件:其中,Φ为标量v”每次更新的第三增量。

通过上述第三UV点的生成和映射,可以将规则网格上的第三UV点的UV信息(u”’,v”’)映射为实际网格上的位置信息(x″′,y″′,z″′),从而利用对应的纹理信息实现对实际网格进行渲染。

以立方体为例,介绍本方法的执行流程。以实际网格的中心为原点,建立坐标系,原点也为立方体的中心;获取立方体的8个顶点作为第四UV点,第四UV点的UV信息分别为其中,i″″=1,2,3……8,为标量;位置信息为(u″″,v″″),u″″和v″″为标量;取UV信息中较小的两个标量分别除以绝对值最大的标量,得到第一结果和第二结果;将第一结果和第二结果映射到[0,1]区间,映射后的第一结果为标量u″″,映射后的第二结果为标量v″″。

标量的映射公式可以为其中,为第i″″个第四UV点,ki″″为第i″″个第四UV点对应的第一结果;标量的映射公式可以为其中,为第j″″个第四UV点,ji″″为第i″″个第四UV点对应的第二结果。

如图2所示,本申请的另一个方面提供一种云端设备,包括:获取模块201,获取模块201用于获取规则网格;生成模块202,生成模块202用于依据规则网格的类型生成包含有UV信息和纹理信息的UV点;映射模块203,映射模块203用于将UV点映射为实际网格的位置信息;渲染模块204,渲染模块204用于依据位置信息与对应的纹理信息对实际网格进行渲染。

通过本申请的云端设备可以执行本申请的基于光栅化渲染的UV映射方法,以实现利用规则网格的纹理信息对实际网格进行渲染的效果。

进一步的,获取模块201获取到球体的规则网格时,生成模块202可以以球体表面上的一点作为第一起始点,获取第一起始点的UV信息(u’,v’)和第二起始点的UV信息(u”,v”),对第一起始点更新m次,每次更新生成一个第一UV点,通过公式获取第一UV点的标量u′i’,以第一起始点的标量v’作为该第一UV点的标量v′i’;对第二起始点更新n次,每次更新生成一个第二UV点,通过公式获取第二UV点的标量以第二起始点的标量u”作为该第二UV点的标量

获取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′。

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

最后,渲染模块204利用每个UV点上的纹理信息对实际网格进行着色。

相应的,生成模块202还可以依据三角插值的原理,在规则网格上生成更多的第一UV点和第二UV点,以提高渲染模块204的着色效果。

获取模块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”′。

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

所属领域的技术人员可以清楚了解到,为了描述的方便和简洁,上述描述的系统和单元的具体工作过程,可以参考前述申请实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种3D图纸生成系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!