CN114842118A - 三维模型贴图方法、装置、电子设备及存储介质 - Google Patents
三维模型贴图方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114842118A CN114842118A CN202210402617.0A CN202210402617A CN114842118A CN 114842118 A CN114842118 A CN 114842118A CN 202210402617 A CN202210402617 A CN 202210402617A CN 114842118 A CN114842118 A CN 114842118A
- Authority
- CN
- China
- Prior art keywords
- map
- mapping
- coordinates
- visual
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
Abstract
本公开关于一种三维模型贴图方法、装置、电子设备及存储介质,该方法包括:获取目标三维模型的可视面的多个顶点坐标,然后根据可视面的多个顶点坐标,确定可视面的宽高比率,再根据可视面的所述宽高比率、贴图坐标的预设区域范围以及针对贴图坐标的调整参数,确定可视面的贴图区域,贴图坐标为围成贴图区域的多个顶点的坐标,调整参数用于使贴图坐标远离可视面的边缘,并按照可视面的宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图,最后,将目标贴图填充至贴图区域。根据本公开的方案,能够使大小适当的目标贴图填充至三维模型的可视面的合适位置,从而不会对目标贴图造成变形,以便提升用户体验。
Description
技术领域
本公开涉及图像处理技术,尤其涉及一种三维模型贴图方法、装置、电子设备及存储介质。
背景技术
相关技术中,可根据用户拍摄的物体,生成相关的三维模型,并在三维模型的可视面上进行贴图,用以表现奇妙梦幻的景色。但是在拍摄过程中三维模型的可视面是根据实际拍摄的物体动态生成的,可视面的不同形状会造成可视面上的贴图产生变形,影响用户体验。
发明内容
本公开提供一种三维模型贴图方法、装置、电子设备及存储介质,以至少解决相关技术中三维模型的可视面上的贴图产生变形的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种三维模型贴图方法,包括:
获取目标三维模型的可视面的多个顶点坐标;
根据所述可视面的所述多个顶点坐标,确定所述可视面的宽高比率;
根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,所述贴图坐标为围成所述贴图区域的多个顶点的坐标,所述调整参数用于使所述贴图坐标远离所述可视面的边缘;
按照所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图;
将所述目标贴图填充至所述贴图区域。
可选地,所述目标三维模型的所述可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于所述第二可视面的面积,所述根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,包括:
根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标;
根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数,确定所述第二可视面的多个贴图坐标;
将所述第一可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第一可视面的贴图区域,将所述第二可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第二可视面的贴图区域。
可选地,所述目标三维模型的所述可视面包括第三可视面,所述根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,包括:
根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标;
将所述第三可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第三可视面的贴图区域。
可选地,所述根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标的具体计算公式为:
第一左下角贴图坐标=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.max(A-ratio 2,B)×(-1)-C);
第一右下角贴图坐标=A+D,(math.max(A-ratio2,B)×(-1)-C);
第一右上角贴图坐标=A+D,(math.min(ratio2-A,B)×(-1)+E);
第一左上角贴图坐标=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.min(ratio2-A,B)×(-1)+E);
其中,ratio2为所述第一可视面的宽高比率,A和B分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,A和B分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,A大于B,C、D和E为针对所述第一可视面的所述贴图坐标的调整参数。
可选地,所述根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数的具体计算公式为:
第二左下角贴图坐标=b+d,(math.max(a-ratio3,b)×(-1)-c)×textureScale;
第二右下角贴图坐标=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.max(a-ratio3,b)×(-1)-c)×textureScale;
第二右上角贴图坐标=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.min(ratio3-a,b)×(-1)+e)×textureScale;
第二左上角贴图坐标=b+d,(math.min(ratio3-a,b)×(-1)+e)×textureScale;
其中,ratio3为所述第二可视面的所述宽高比率,textureScale为所述第一可视面的所述宽高比率和所述第二可视面的所述宽高比率中的较小值,a和b分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,a和b分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,a大于b,c、d和e为针对所述第二可视面的所述贴图坐标的调整参数。
可选地,根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标的具体计算公式为:
第三左下角贴图坐标=math.max(ratio1-H,M)×(-1)-F,math.max(H-ratio1,M)×(-1)-F;
第三右下角贴图坐标=math.min(H-ratio1,M)×(-1)+G,math.max(H-ratio1,M)×(-1)-F;
第三右上角贴图坐标=math.min(H-ratio1,M)×(-1)+G,math.min(ratio1-H,M)×(-1)+G;
第三左上角贴图坐标=math.max(ratio1-H,M)×(-1)-F,math.min(ratio1-H,M)×(-1)+G;
其中,ratio1为所述第三可视面的宽高比率,H和M分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,H和M分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,H大于M,F和G为针对所述第三可视面的所述贴图坐标的调整参数。
可选地,所述目标三维模型的所述可视面有多个,所述按照所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图,包括:
将多个可视面的宽高比率中的最小宽高比率,确定为所述原始贴图的缩放参数;
按照所述缩放参数,对所述原始贴图的长和宽进行缩放,以得到所述目标贴图;
将所述目标贴图填充至所述贴图区域,包括:
将所述目标贴图填充至所述目标三维模型的多个可视面各自的贴图区域。
可选地,在所述将所述目标贴图填充至所述贴图区域的步骤之前,所述方法还包括:
当所述可视面的所述宽高比率大于预设阈值时,确定所述可视面的贴图方式为重复横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次;
根据所述可视面的所述贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述可视面的所述贴图区域的长度方向上的重复填充次数;
所述将所述目标贴图填充至所述贴图区域,包括:
根据所述重复填充次数,将所述目标贴图重复横向填充至所述贴图区域。
可选地,在所述将所述目标贴图填充至所述贴图区域的步骤之前,所述方法还包括:
当所述可视面的所述宽高比率小于预设阈值时,则确定所述可视面的贴图方式为单一横向填充,所述单一横向填充为将所述目标贴图在所述贴图区域填充一次;
所述将所述目标贴图填充至所述贴图区域,包括:
将所述目标贴图单一横向填充至所述贴图区域的中部。
可选地,所述目标三维模型的可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于第二可视面,在所述将所述目标贴图填充至所述贴图区域的步骤之前,所述方法还包括:
当所述第一可视面的所述宽高比率和所述第二可视面的所述宽高比率均大于预设阈值时,将所述第一可视面的贴图方式确定为重复横向填充,将所述第二可视面的贴图方式确定为单一横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次,所述单一横向填充为将所述目标贴图在所述贴图区域的中部填充一次;
根据所述第一可视面的贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述第一可视面的贴图区域的长度方向上的重复填充次数;
所述将所述目标贴图填充至所述贴图区域,包括:
根据所述重复填充次数,将所述目标贴图重复横向填充至所述第一可视面的贴图区域,将所述目标贴图单一横向填充至所述第二可视面的贴图区域。
根据本公开实施例的第二方面,提供一种三维模型贴图装置,包括:
获取模块,被配置为获取目标三维模型的可视面的多个顶点坐标;
第一确定模块,被配置为根据所述可视面的所述多个顶点坐标,确定所述可视面的宽高比率;
第二确定模块,被配置为根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,所述贴图坐标为围成所述贴图区域的多个顶点的坐标,所述调整参数用于使所述贴图坐标远离所述可视面的边缘;
缩放模块,被配置为按照所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图;
填充模块,被配置为将所述目标贴图填充至所述贴图区域。
可选地,所述目标三维模型的所述可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于所述第二可视面的面积,所述第二确定模块,包括:
第一确定子模块,被配置为根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标;
第二确定子模块,被配置为根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数,确定所述第二可视面的多个贴图坐标;
第三确定子模块,被配置为将所述第一可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第一可视面的贴图区域,将所述第二可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第二可视面的贴图区域。
可选地,所述第二确定模块,包括:
第五确定子模块,被配置为根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标;
第六确定子模块,被配置为将所述第三可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第三可视面的贴图区域。
可选地,所述根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标的具体计算公式为:
第一左下角贴图坐标=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.max(A-ratio 2,B)×(-1)-C);
第一右下角贴图坐标=A+D,(math.max(A-ratio2,B)×(-1)-C);
第一右上角贴图坐标=A+D,(math.min(ratio2-A,B)×(-1)+E);
第一左上角贴图坐标=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.min(ratio2-A,B)×(-1)+E);
其中,ratio2为所述第一可视面的宽高比率,A和B分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,A和B分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,A大于B,C、D和E为针对所述第一可视面的所述贴图坐标的调整参数。
可选地,所述根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数的具体计算公式为:
第二左下角贴图坐标=b+d,(math.max(a-ratio3,b)×(-1)-c)×textureScale;
第二右下角贴图坐标=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.max(a-ratio3,b)×(-
1)-c)×textureScale;
第二右上角贴图坐标=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.min(ratio3-a,b)×(-
1)+e)×textureScale;
第二左上角贴图坐标=b+d,(math.min(ratio3-a,b)×(-1)+e)×textureScale;
其中,ratio3为所述第二可视面的所述宽高比率,textureScale为所述第一可视面的所述宽高比率和所述第二可视面的所述宽高比率中的较小值,a和b分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,a和b分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,a大于b,c、d和e为针对所述第二可视面的所述贴图坐标的调整参数。
可选地,根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标的具体计算公式为:
第三左下角贴图坐标=math.max(ratio1-H,M)×(-1)-F,math.max(H-ratio1,M)×(-1)-F;
第三右下角贴图坐标=math.min(H-ratio1,M)×(-1)+G,math.max(H-ratio1,M)×(-1)-F;
第三右上角贴图坐标=math.min(H-ratio1,M)×(-1)+G,math.min(ratio1-H,M)×(-1)+G;
第三左上角贴图坐标=math.max(ratio1-H,M)×(-1)-F,math.min(ratio1-H,M)×(-1)+G;
其中,ratio1为所述第三可视面的宽高比率,H和M分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,H和M分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,H大于M,F和G为针对所述第三可视面的所述贴图坐标的调整参数。
可选地,所述目标三维模型的所述可视面有多个,所述缩放模块,包括:
第四确定子模块,被配置为将多个可视面的宽高比率中的最小宽高比率,确定为所述原始贴图的缩放参数;
缩放子模块,被配置为按照所述缩放参数,对所述原始贴图的长和宽进行缩放,以得到所述目标贴图;
所述填充模块,包括:
第一填充子模块,被配置为将所述目标贴图填充至所述目标三维模型的多个可视面各自的贴图区域。
可选地,所述装置还包括:
第三确定模块,被配置为当所述可视面的所述宽高比率大于预设阈值时,确定所述可视面的贴图方式为重复横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次;
第四确定模块,被配置为根据所述可视面的所述贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述可视面的所述贴图区域的长度方向上的重复填充次数;
所述填充模块,包括:
第二填充子模块,被配置为根据所述重复填充次数,将所述目标贴图重复横向填充至所述贴图区域。
可选地,所述装置还包括:
第五确定模块,被配置为当所述可视面的所述宽高比率小于预设阈值时,则确定所述可视面的贴图方式为单一横向填充,所述单一横向填充为将所述目标贴图在所述贴图区域填充一次;
所述填充模块,包括:
第三填充子模块,被配置为将所述目标贴图单一横向填充至所述贴图区域的中部。
可选地,所述目标三维模型的可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于第二可视面,所述装置还包括:
第六确定模块,被配置为当所述第一可视面的所述宽高比率和所述第二可视面的所述宽高比率均大于预设阈值时,将所述第一可视面的贴图方式确定为重复横向填充,将所述第二可视面的贴图方式确定为单一横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次,所述单一横向填充为将所述目标贴图在所述贴图区域的中部填充一次;
第七确定模块,被配置为根据所述第一可视面的贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述第一可视面的贴图区域的长度方向上的重复填充次数;
所述填充模块,包括:
第四填充子模块,被配置为根据所述重复填充次数,将所述目标贴图重复横向填充至所述第一可视面的贴图区域,将所述目标贴图单一横向填充至所述第二可视面的贴图区域。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的三维模型贴图方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如第一方面所述的三维模型贴图方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的三维模型贴图方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开通过获取目标三维模型的可视面的多个顶点坐标,然后根据可视面的多个顶点坐标,确定可视面的宽高比率,再根据可视面的所述宽高比率、贴图坐标的预设区域范围以及针对贴图坐标的调整参数,确定可视面的贴图区域,贴图坐标为围成贴图区域的多个顶点的坐标,调整参数用于使贴图坐标远离可视面的边缘,并按照可视面的宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图,最后,将目标贴图填充至贴图区域。根据三维模型的可视面的多个顶点坐标,能够确定可视面的宽高比率,进而通过宽高比率、贴图坐标的预设区域范围以及针对贴图坐标的调整参数,确定可视面的贴图区域,以便将目标贴图填充至合适的位置,并根据可视面的宽高比率,对原始贴图进行调整,以便适配可视面的大小,最终能够根据三维模型的可视面的形状来适配合适的目标贴图,并将目标贴图填充在合适的位置,且在对原始贴图进行调整来获得目标贴图时,采用的是对原始贴图的长和宽进行相同程度的缩放,从而不会对目标贴图造成变形,以便提升用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种三维模型贴图方法的流程图;
图2是根据一示例性实施例示出的一种确定贴图区域的方法的流程图;
图3是根据一示例性实施例示出的一种贴图效果示意图;
图4是根据一示例性实施例示出的三维模型贴图装置的框图;
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种三维模型贴图方法的流程图,如图1所示,包括以下步骤:
在步骤S11中,获取目标三维模型的可视面的多个顶点坐标。
目标三维模型为用户拍摄目标物体时,根据目标物体而生成的与目标物体所对应的三维模型,在拍摄的视角中,目标三维模型能够向用户展示一个或者多个可视面,根据三维建模时的坐标系,即可得到目标三维模型的一个或多个可视面的多个顶点坐标,顶点的个数根据可视面的形状确定。
在步骤S12中,根据所述可视面的多个顶点坐标,确定所述可视面的宽高比率。
在本方法中,可获取可视面的多个顶点坐标中表征每个展示面的宽度的顶点坐标对和表征每个展示面的高度的顶点坐标对,以便得到可视面的宽度和高度,然后,将可视面的宽度和高度的比值确定为可视面的宽高比率。
在步骤S13中,根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,所述贴图坐标为围成所述贴图区域的多个顶点的坐标,所述调整参数用于使所述贴图坐标远离所述可视面的边缘。
在本实施方式中,由于三维模型可能是不规则的模型,导致可视面也是一个不规则的多边形,而原始贴图通常为矩形,为了便于在可视面上进行贴图,需要在可视面上得到一个矩形的贴图区域,可根据可视面的宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,采用预设的计算公式计算得到可视面的贴图区域。
具体地,当可视面只有一个时,根据可视面的宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定可视面的贴图区域的方法为:
根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标;
将所述第三可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第三可视面的贴图区域。
在上述方法中,先根据可视面的宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,贴图坐标为围成所述贴图区域的多个顶点的坐标,从而根据预设计算公式确定可视面的多个贴图顶点坐标,再根据多个贴图顶点坐标确定贴图区域,具体地,贴图区域可为矩形,此时的贴图顶点为四个,分别为左下角顶点、右下角顶点、右上角顶点和左上角顶点,具体多个贴图顶点的计算公式可为:
第三左下角贴图坐标(左下角顶点坐标)=math.max(ratio1-H,M)×(-1)-F,math.max(H-ratio1,M)×(-1)-F;
第三右下角贴图坐标(右下角顶点坐标)=math.min(H-ratio1,M)×(-1)+G,math.max(H-ratio1,M)×(-1)-F;
第三右上角贴图坐标(右上角顶点坐标)=math.min(H-ratio1,M)×(-1)+G,math.min(ratio1-H,M)×(-1)+G;
第三左上角贴图坐标(左上角顶点坐标)=math.max(ratio1-H,M)×(-1)-F,math.min(ratio1-H,M)×(-1)+G;
其中,ratio1为可视面的宽高比率,H和M分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,H和M分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,通常情况下,可视面的贴图坐标的预设区域范围中横坐标和纵坐标的预设区间均为0至1,其中,H大于M,即,H的取值可为1,M的取值可为0,F和G为针对可视面的所述贴图坐标的调整参数,该调整参数为预先设定的值,其取值范围可为0至2,用于调整贴图坐标向可视面的中心靠近,以避免当可视面的形状不规则时,由多个贴图坐标得到的贴图区域不完全在可视面之内,例如F的取值可为0.2,G的取值可为1.2。
在步骤S14中,根据所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图。
由于可视面的形状不一,造成最终得到的贴图区域的大小也不同,若原始贴图过大,直接将原始贴图填充在可视面上,会造成贴图超出贴图区域或者超出可视面的区域,若原始贴图过小,会造成贴图在可视面上的填充范围过小而影响用户的体验,所以,可根据可视面的宽高比率,对原始贴图的长和宽进行相同程度的缩放,以得到与可视面或者贴图区域相适应的目标贴图,且等比缩放能够避免目标贴图变形,以便提升用户体验。
在步骤S15中,将所述目标贴图填充至所述贴图区域。
在可视面上得到合适的贴图区域以及得到与可视面或贴图区域相适应的目标贴图后,直接将目标贴图填充至贴图区域,以便根据可视面的面积自动适配贴图的大小和贴图的位置。目标贴图填充至贴图区域后,可将目标贴图进行边缘羽化,以便使目标贴图与可视面之间的过渡较为流畅。
根据三维模型的可视面的多个顶点坐标,能够确定可视面的宽高比率、贴图坐标的预设区域范围以及针对贴图坐标的调整参数,进而通过宽高比率确定可视面的贴图区域,以便将目标贴图填充至合适的位置,并根据可视面的宽高比率,对原始贴图进行调整,以便适配可视面的大小,最终能够根据三维模型的可视面的形状来适配合适的目标贴图,并将目标贴图填充在合适的位置,且在对原始贴图进行调整来获得目标贴图时,采用的是对原始贴图的长和宽进行相同程度的缩放,从而不会对目标贴图造成变形,以便提升用户体验。
图2是根据一示例性实施例示出的一种确定贴图区域的方法的流程图,如图2所示,在上述技术方案的基础上,目标三维模型可能包括多个可视面,具体可包括第一可视面和第二可视面,且第一可视面的面积大于第二可视面的面积,此时,需要分别计算不同的可视面的贴图区域,具体为:
在步骤S21中,根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标。
当可视面有两个时,较大面积的可视面(即第一可视面)的多个贴图顶点分别为第一左下角顶点、第一右下角顶点、第一右上角顶点和第一左上角顶点,具体第一可视面的多个贴图顶点的计算公式为:
第一左下角贴图坐标(第一左下角顶点)=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.max(A-ratio 2,B)×(-1)-C);
第一右下角贴图坐标(第一右下角顶点)=A+D,(math.max(A-ratio2,B)×(-1)-C);
第一右上角贴图坐标(第一右上角顶点)=A+D,(math.min(ratio2-A,B)×(-1)+E);
第一左上角贴图坐标(第一左上角顶点)=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.min(ratio2-A,B)×(-1)+E);
其中,ratio2为所述第一可视面的宽高比率,A和B分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,A和B分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,通常情况下,第一可视面的贴图坐标的预设区域范围中横坐标和纵坐标的预设区间均为0至1,其中,A大于B,C、D和E为针对所述第一可视面的所述贴图坐标的调整参数,该调整参数为预先设定的值,其取值范围可为0至2,用于调整贴图坐标向第一可视面的中心靠近,以避免当第一可视面的形状不规则时,由多个贴图坐标得到的贴图区域不完全在第一可视面之内。
例如,A的取值可为1,B的取值可为0,C的取值可为0.2,D的取值可为0,E的取值可为1.2,此时,第一可视面的多个贴图顶点的计算公式可为:
第一左下角顶点=(math.max(ratio2-1,0)×(-1)-0.2+math.min(1-ratio2,0)),(math.max(1-ratio2,0)×(-1)-0.2);
第一右下角顶点=(math.max(1-ratio2,0)×(-1)-0.2);
第一右上角顶点=1,(math.min(ratio2-1,0)×(-1)+1.2);
第一左上角顶点=(math.max(ratio2-1,0)×(-1)-0.2+math.min(1-ratio2,0)),(math.min(ratio2-1,0)×(-1)+1.2)
通过上述计算公式,通过第一可视面的宽高比率和第一可视面的贴图坐标的预设区域范围,即可得到粗略的多个贴图顶点坐标,再根据针对第一可视面的贴图坐标的调整参数,对初略的多个顶点坐标进行调整,调整多个贴图坐标向第一可视面的中心靠近,以避免当第一可视面的形状不规则时,由多个贴图坐标得到的贴图区域不完全在第一可视面之内,可得到较为合理的多个顶点坐标,以便得到针对第一可视面的较为合理的贴图区域。
在步骤S22中,根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数,确定所述第二可视面的多个贴图坐标。
具体地,先根据第一可视面的宽高比率和所述第二可视面的宽高比率,确定出其中较小的宽高比率作为缩放参数,然后,根据缩放参数和第二可视面的宽高比率、第二可视面的贴图坐标的预设区域范围以及针对第二可视面的贴图坐标的调整参数,确定第二可视面的多个贴图顶点的坐标。
当可视面有两个时,较小面积的可视面(即第二可视面)的多个贴图顶点分别为第二左下角顶点、第二右下角顶点、第二右上角顶点和第二左上角顶点,具体第二可视面的多个贴图顶点的计算公式为:
第二左下角贴图坐标(第二左下角顶点)=b,(math.max(a-ratio3,b)×(-1)-c)×textureScale;
第二右下角贴图坐标(第二右下角顶点)=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.max(a-ratio3,b)×(-1)-c)×textureScale;
第二右上角贴图坐标(第二右上角顶点)=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.min(ratio3-a,b)×(-1)+e)×textureScale;
第二左上角贴图坐标(第二左上角顶点)=b,(math.min(ratio3-a,b)×(-1)+e)×textureScale;
其中,ratio3为所述第二可视面的所述宽高比率,textureScale为所述第一可视面的所述宽高比率和所述第二可视面的所述宽高比率中的较小值,a和b分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,a和b分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,通常情况下,第二可视面的贴图坐标的预设区域范围中横坐标和纵坐标的预设区间均为0至1,其中,a大于b,c、d和e为针对所述第二可视面的所述贴图坐标的调整参数,该调整参数为预先设定的值,其取值范围可为0至2,用于调整贴图坐标向第二可视面的中心靠近,以避免当第二可视面的形状不规则时,由多个贴图坐标得到的贴图区域不完全在第二可视面之内。
例如,a的取值可为1,b的取值可为0,c的取值可为0.2,d的取值可为0,e的取值可为1.2,此时,第二可视面的多个贴图顶点的计算公式可为:
第二左下角顶点=0,(math.max(1-ratio3,0)×(-1)-0.2)×textureScale;
第二右下角顶点=(math.min(1-ratio3,0)×(-1)+1.2+math.max(ratio3-1,0))×textureScale,(math.max(1-ratio3,0)×(-1)-0.2)×textureScale;
第二右上角顶点=(math.min(1-ratio3,0)×(-1)+1.2+math.max(ratio3-1,0))×textureScale,(math.min(ratio3-1,0)×(-1)+1.2)×textureScale;
第二左上角顶点=0,(math.min(ratio3-1,0)×(-1)+1.2)×textureScale;
通过上述计算公式,通过第二可视面的宽高比率、第二可视面的贴图坐标的预设区域范围和缩放参数,即可得到粗略的多个贴图顶点坐标,再根据针对第二可视面的贴图坐标的调整参数,对初略的多个顶点坐标进行调整,调整多个贴图坐标向第二可视面的中心靠近,以避免当第二可视面的形状不规则时,由多个贴图坐标得到的贴图区域不完全在第二可视面之内,可得到较为合理的多个顶点坐标,以便得到针对第二可视面的较为合理的贴图区域。
在步骤S23中,将所述第一可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第一可视面的贴图区域,将所述第二可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第二可视面的贴图区域。
得到第一可视面的多个贴图顶点的坐标之后,即可确定第一可视面的多个贴图顶点,通过将第一可视面的多个贴图顶点顺时针或者逆时针的顺序直线连接,围住的区域即为第一可视面的贴图区域。
得到第二可视面的多个贴图顶点的坐标之后,即可确定第二可视面的多个贴图顶点,通过将第二可视面的多个贴图顶点顺时针或者逆时针的顺序直线连接,围住的区域即为第二可视面的贴图区域。
通过上述方法,能够在可视面包括第一可视面和第二可视面时,分别计算得到针对第一可视面和第二可视面的贴图区域,从而能够根据不同的可视面得到不同的贴图区域,使每个可视面所对应的贴图区域能够更加适合其对应的可视面,从而提高贴图效果。
在上述技术方案的基础上,三维模型的可视面可为多个,由于多个可视面上贴的是相同大小的贴图,为了避免因为可视面大小的不同而造成的贴图在可视面上的大小不合适,需要对原始贴图进行适当缩放,以同时适应不同的可视面,具体根据所述可视面的宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图,包括:
将多个可视面的宽高比率中的最小宽高比率,确定为所述原始贴图的缩放参数;
根据所述缩放参数,对所述原始贴图进行等比缩放,以得到所述目标贴图。
通过将多个可视面的宽高比率中的最小宽高比率,确定为原始贴图的缩放参数,对原始贴图进行等比缩放,以便能够得到更加适应多个可视面的目标贴图。具体地,可直接将原始贴图的长度和宽度同时乘以缩放参数,即可得到目标贴图。
将所述目标贴图填充至所述贴图区域,包括:
将所述目标贴图填充至所述目标三维模型的多个可视面各自的贴图区域。
在本实施方式中,多个可视面的贴图相同,均为目标贴图,此时,直接将目标贴图填充至所述目标三维模型的多个可视面各自的贴图区域即可。
在上述技术方案的基础上,在将所述目标贴图填充至所述贴图区域的步骤之前,还可根据可视面的类型,进行可视面的填充方式的确定,具体地,
当所述可视面的宽高比率大于预设阈值时,确定所述可视面的贴图方式为重复横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次;
根据所述可视面的所述贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述可视面的所述贴图区域的长度方向上的重复填充次数;
所述将所述目标贴图填充至所述贴图区域,包括:
根据所述重复填充次数,将所述目标贴图重复横向填充至所述贴图区域。
在本实施方式中,当可视面的宽高比率大于预设阈值时,可视面的类型为矮胖型,此时,可视面的宽度较大,而高度较小,可确定可视面的贴图方式为重复横向填充,通过在可视面的贴图区域的长度方向上重复填充目标贴图,能够尽量将可视面的贴图区域填充完整,且重复横向填充能够使目标贴图的填充纹理比较自然,通过可视面的具体类型来确定对应的贴图填充方式,以便获得更好的贴图填充效果,其中,需要计算贴图的重复填充次数,根据可视面的贴图区域的长度和目标贴图的长度,确定目标贴图在可视面的贴图区域的长度方向上的重复填充次数,具体地,可直接将可视面的贴图区域的长度和目标贴图的长度的比值确定为可视面所对应的贴图重复度,预设阈值可为1。
将所述目标贴图填充至所述贴图区域,包括:
根据所述重复填充次数,将所述目标贴图重复横向填充至所述贴图区域。
在上述技术方案的基础上,在将所述目标贴图填充至所述贴图区域的步骤之前,还可根据可视面的类型,进行可视面的填充方式的确定,具体地,
当所述可视面的所述宽高比率小于预设阈值时,则确定所述可视面的贴图方式为单一横向填充,所述单一横向填充为将所述目标贴图在所述贴图区域填充一次。
所述将所述目标贴图填充至所述贴图区域,包括:
将所述目标贴图单一横向填充至所述贴图区域的中部。
当可视面的宽高比率小于预设阈值时,可认为可视面的类型为高瘦型,此时,可视面的宽度较小,高度较大,确定可视面的贴图方式为单一横向填充,并将目标贴图单一横向填充至贴图区域的中部,其中,预设阈值可为1,可视面的上下不再贴图,此时,由于可视面的宽度较小,无法进行重复横向填充,而在高度方向上重复填充,会导致贴图的纹理不够自然,导致贴图效果较差,直接将目标贴图单一横向填充至贴图区域的中部,能够使贴图更加自然。
在上述技术方案的基础上,在所述目标三维模型的可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于第二可视面的情况下,在将所述目标贴图填充至所述贴图区域的步骤之前,所述方法还包括:
当所述第一可视面和所述第二可视面的宽高比率均大于预设阈值时,将所述第一可视面的贴图方式确定为重复横向填充,将所述第二可视面的贴图方式确定为单一横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次,所述单一横向填充为将所述目标贴图在所述贴图区域的中部填充一次;
根据所述第一可视面的贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述第一可视面的贴图区域的长度方向上的重复填充次数;
所述将所述目标贴图填充至所述贴图区域,包括:
根据所述重复填充次数,将所述目标贴图重复横向填充至所述第一可视面的贴图区域,将所述目标贴图单一横向填充至所述第二可视面的贴图区域。
在上述实施方式中,当第一可视面和第二可视面的宽高比率均大于预设阈值时,第一可视面和第二可视面均为矮胖类型,此处的预设阈值可为1,此时,面积较大的第一可视面可进行重复横向填充,并根据第一可视面的尺寸和目标贴图的尺寸,确定第一可视面所对应的重复填充次数,具体计算方法可参照上述重复填充次数的计算方法,在此不再赘述。对于面积较小的第二可视面,可仅仅进行单一横向填充,以便使贴图更加适应可视面的大小。然后,根据第一可视面所对应的重复填充次数,将目标贴图重复横向填充至第一可视面的贴图区域,将目标贴图单一横向填充至第二可视面的贴图区域,根据第一可视面和第二可视面的宽高比率以及第一可视面和第二可视面的面积的相对大小,来确定对应的填充方式,能够使每一个可视面上的贴图都能够尽量填充完整且贴图纹理更加自然,从而得到更好的贴图填充效果,使贴图能够更加适应可视面的大小。
图3是根据一示例性实施例示出的一种贴图效果示意图,图中的花朵即为目标贴图。
图4是根据一示例性实施例示出的三维模型贴图装置的框图。参照图4,该装置包括获取模块41、第一确定模块42、第二确定模块43、缩放模块44和填充模块45。
该获取模块41,被配置为获取目标三维模型的可视面的多个顶点坐标;
该第一确定模块42,被配置为根据所述可视面的所述多个顶点坐标,确定所述可视面的宽高比率;
该第二确定模块43,被配置为根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,所述贴图坐标为围成所述贴图区域的多个顶点的坐标,所述调整参数用于使所述贴图坐标远离所述可视面的边缘;
该缩放模块44,被配置为按照所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图;
填充模块,被配置为将所述目标贴图填充至所述贴图区域。
可选地,所述目标三维模型的所述可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于所述第二可视面的面积,所述第二确定模块,包括:
第一确定子模块,被配置为根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标;
第二确定子模块,被配置为根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数,确定所述第二可视面的多个贴图坐标;
第三确定子模块,被配置为将所述第一可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第一可视面的贴图区域,将所述第二可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第二可视面的贴图区域。
可选地,所述第二确定模块,包括:
第五确定子模块,被配置为根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标;
第六确定子模块,被配置为将所述第三可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第三可视面的贴图区域。
可选地,所述根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标的具体计算公式为:
第一左下角贴图坐标=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.max(A-ratio 2,B)×(-1)-C);
第一右下角贴图坐标=A+D,(math.max(A-ratio2,B)×(-1)-C);
第一右上角贴图坐标=A+D,(math.min(ratio2-A,B)×(-1)+E);
第一左上角贴图坐标=(math.max(ratio2-A,B)×(-1)-C+math.min(A-ratio2,B)),(math.min(ratio2-A,B)×(-1)+E);
其中,ratio2为所述第一可视面的宽高比率,A和B分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,A和B分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,A大于B,C、D和E为针对所述第一可视面的所述贴图坐标的调整参数。
可选地,所述根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数的具体计算公式为:
第二左下角贴图坐标=b+d,(math.max(a-ratio3,b)×(-1)-c)×textureScale;
第二右下角贴图坐标=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.max(a-ratio3,b)×(-1)-c)×textureScale;
第二右上角贴图坐标=(math.min(a-ratio3,b)×(-1)+e+math.max(ratio3-a,b))×textureScale,(math.min(ratio3-a,b)×(-1)+e)×textureScale;
第二左上角贴图坐标=b+d,(math.min(ratio3-a,b)×(-1)+e)×textureScale;
其中,ratio3为所述第二可视面的所述宽高比率,textureScale为所述第一可视面的所述宽高比率和所述第二可视面的所述宽高比率中的较小值,a和b分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,a和b分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,a大于b,c、d和e为针对所述第二可视面的所述贴图坐标的调整参数。
可选地,根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标的具体计算公式为:
第三左下角贴图坐标=math.max(ratio1-H,M)×(-1)-F,math.max(H-ratio1,M)×(-1)-F;
第三右下角贴图坐标=math.min(H-ratio1,M)×(-1)+G,math.max(H-ratio1,M)×(-1)-F;
第三右上角贴图坐标=math.min(H-ratio1,M)×(-1)+G,math.min(ratio1-H,M)×(-1)+G;
第三左上角贴图坐标=math.max(ratio1-H,M)×(-1)-F,math.min(ratio1-H,M)×(-1)+G;
其中,ratio1为所述第三可视面的宽高比率,H和M分别为所述第一可视面的贴图坐标的预设区域范围中横坐标的预设区间的端点值,或,H和M分别为所述第一可视面的贴图坐标的预设区域范围中纵坐标的预设区间的端点值,其中,H大于M,F和G为针对所述第三可视面的所述贴图坐标的调整参数。
可选地,所述目标三维模型的所述可视面有多个,所述缩放模块,包括:
第四确定子模块,被配置为将多个可视面的宽高比率中的最小宽高比率,确定为所述原始贴图的缩放参数;
缩放子模块,被配置为按照所述缩放参数,对所述原始贴图的长和宽进行缩放,以得到所述目标贴图;
所述填充模块,包括:
第一填充子模块,被配置为将所述目标贴图填充至所述目标三维模型的多个可视面各自的贴图区域。
可选地,所述装置还包括:
第三确定模块,被配置为当所述可视面的所述宽高比率大于预设阈值时,确定所述可视面的贴图方式为重复横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次;
第四确定模块,被配置为根据所述可视面的所述贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述可视面的所述贴图区域的长度方向上的重复填充次数;
所述填充模块,包括:
第二填充子模块,被配置为根据所述重复填充次数,将所述目标贴图重复横向填充至所述贴图区域。
可选地,所述装置还包括:
第五确定模块,被配置为当所述可视面的所述宽高比率小于预设阈值时,则确定所述可视面的贴图方式为单一横向填充,所述单一横向填充为将所述目标贴图在所述贴图区域填充一次;
所述填充模块,包括:
第三填充子模块,被配置为将所述目标贴图单一横向填充至所述贴图区域的中部。
可选地,所述目标三维模型的可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于第二可视面,所述装置还包括:
第六确定模块,被配置为当所述第一可视面的所述宽高比率和所述第二可视面的所述宽高比率均大于预设阈值时,将所述第一可视面的贴图方式确定为重复横向填充,将所述第二可视面的贴图方式确定为单一横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次,所述单一横向填充为将所述目标贴图在所述贴图区域的中部填充一次;
第七确定模块,被配置为根据所述第一可视面的贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述第一可视面的贴图区域的长度方向上的重复填充次数;
所述填充模块,包括:
第四填充子模块,被配置为根据所述重复填充次数,将所述目标贴图重复横向填充至所述第一可视面的贴图区域,将所述目标贴图单一横向填充至所述第二可视面的贴图区域。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电力组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制电子设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在电子设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述电子设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当电子设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如所述组件为电子设备500的显示器和小键盘,传感器组件514还可以检测电子设备500或电子设备500一个组件的位置改变,用户与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、5G或5G),或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述三维模型贴图方法。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器504,上述指令可由电子设备500的处理器520执行以完成上述三维模型贴图方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序可由电子设备500的处理器520执行以完成上述三维模型贴图方法。可选地,该计算机程序可以存储在电子设备500的计算机可读存储介质中,该计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种三维模型贴图方法,其特征在于,所述方法包括:
获取目标三维模型的可视面的多个顶点坐标;
根据所述可视面的所述多个顶点坐标,确定所述可视面的宽高比率;
根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,所述贴图坐标为围成所述贴图区域的多个顶点的坐标,所述调整参数用于使所述贴图坐标远离所述可视面的边缘;
按照所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图;
将所述目标贴图填充至所述贴图区域。
2.根据权利要求1所述的方法,其特征在于,
所述目标三维模型的所述可视面包括第一可视面和第二可视面,且所述第一可视面的面积大于所述第二可视面的面积,所述根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,包括:
根据所述第一可视面的所述宽高比率、所述第一可视面的贴图坐标的预设区域范围以及针对所述第一可视面的所述贴图坐标的调整参数,确定所述第一可视面的多个贴图坐标;
根据所述第一可视面的所述宽高比率、所述第二可视面的所述宽高比率、所述第二可视面的贴图坐标的预设区域范围以及针对所述第二可视面的所述贴图坐标的调整参数,确定所述第二可视面的多个贴图坐标;
将所述第一可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第一可视面的贴图区域,将所述第二可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第二可视面的贴图区域。
3.根据权利要求1所述的方法,其特征在于,
所述目标三维模型的所述可视面包括第三可视面,所述根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,包括:
根据所述第三可视面的所述宽高比率、所述第三可视面的贴图坐标的预设区域范围以及针对所述第三可视面的所述贴图坐标的调整参数,确定所述第三可视面的多个贴图坐标;
将所述第三可视面的每个贴图坐标所确定的贴图顶点顺次相连所围成的矩形区域确定为所述第三可视面的贴图区域。
4.根据权利要求1所述的方法,其特征在于,所述目标三维模型的所述可视面有多个,所述按照所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图,包括:
将多个可视面的宽高比率中的最小宽高比率,确定为所述原始贴图的缩放参数;
按照所述缩放参数,对所述原始贴图的长和宽进行缩放,以得到所述目标贴图;
将所述目标贴图填充至所述贴图区域,包括:
将所述目标贴图填充至所述目标三维模型的多个可视面各自的贴图区域。
5.根据权利要求1所述的方法,其特征在于,在所述将所述目标贴图填充至所述贴图区域的步骤之前,所述方法还包括:
当所述可视面的所述宽高比率大于预设阈值时,确定所述可视面的贴图方式为重复横向填充,所述重复横向填充为将所述目标贴图沿着所述贴图区域的长度方向填充多次;
根据所述可视面的所述贴图区域的长度和所述目标贴图的长度,确定所述目标贴图在所述可视面的所述贴图区域的长度方向上的重复填充次数;
所述将所述目标贴图填充至所述贴图区域,包括:
根据所述重复填充次数,将所述目标贴图重复横向填充至所述贴图区域。
6.根据权利要求1所述的方法,其特征在于,在所述将所述目标贴图填充至所述贴图区域的步骤之前,所述方法还包括:
当所述可视面的所述宽高比率小于预设阈值时,则确定所述可视面的贴图方式为单一横向填充,所述单一横向填充为将所述目标贴图在所述贴图区域填充一次;
所述将所述目标贴图填充至所述贴图区域,包括:
将所述目标贴图单一横向填充至所述贴图区域的中部。
7.一种三维模型贴图装置,其特征在于,所述装置包括:
获取模块,被配置为获取目标三维模型的可视面的多个顶点坐标;
第一确定模块,被配置为根据所述可视面的所述多个顶点坐标,确定所述可视面的宽高比率;
第二确定模块,被配置为根据所述可视面的所述宽高比率、贴图坐标的预设区域范围以及针对所述贴图坐标的调整参数,确定所述可视面的贴图区域,所述贴图坐标为围成所述贴图区域的多个顶点的坐标,所述调整参数用于使所述贴图坐标远离所述可视面的边缘;
缩放模块,被配置为按照所述可视面的所述宽高比率,对原始贴图的长和宽进行缩放,以得到目标贴图;
填充模块,被配置为将所述目标贴图填充至所述贴图区域。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的三维模型贴图方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的三维模型贴图方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的三维模型贴图方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210402617.0A CN114842118A (zh) | 2022-04-18 | 2022-04-18 | 三维模型贴图方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210402617.0A CN114842118A (zh) | 2022-04-18 | 2022-04-18 | 三维模型贴图方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114842118A true CN114842118A (zh) | 2022-08-02 |
Family
ID=82566400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210402617.0A Pending CN114842118A (zh) | 2022-04-18 | 2022-04-18 | 三维模型贴图方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114842118A (zh) |
-
2022
- 2022-04-18 CN CN202210402617.0A patent/CN114842118A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11636653B2 (en) | Method and apparatus for synthesizing virtual and real objects | |
CN107888984B (zh) | 短视频播放方法及装置 | |
CN109087238B (zh) | 图像处理方法和装置、电子设备以及计算机可读存储介质 | |
CN108470322B (zh) | 处理人脸图像的方法、装置及可读存储介质 | |
CN107977934B (zh) | 图像处理方法及装置 | |
CN107330868B (zh) | 图片处理方法及装置 | |
CN108462833B (zh) | 拍摄方法、装置及计算机可读存储介质 | |
EP2927787A1 (en) | Method and device for displaying picture | |
CN109672830B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN110288716B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN106651777B (zh) | 图像处理方法及装置、电子设备 | |
CN110853095A (zh) | 相机定位方法、装置、电子设备及存储介质 | |
EP3770859B1 (en) | Image processing method, image processing apparatus, and storage medium | |
CN110807769B (zh) | 图像显示控制方法及装置 | |
CN114025105A (zh) | 视频处理方法、装置、电子设备、存储介质 | |
US9665925B2 (en) | Method and terminal device for retargeting images | |
CN107563957B (zh) | 眼部图像处理方法及装置 | |
CN109345636B (zh) | 获取虚拟人脸图的方法和装置 | |
CN112565625A (zh) | 视频处理方法、装置及介质 | |
CN114842118A (zh) | 三维模型贴图方法、装置、电子设备及存储介质 | |
CN115100253A (zh) | 图像对比方法、装置、电子设备及存储介质 | |
CN111223114B (zh) | 一种图像区域的分割方法、装置及电子设备 | |
CN111726531B (zh) | 图像拍摄方法、处理方法、装置、电子设备及存储介质 | |
US9619016B2 (en) | Method and device for displaying wallpaper image on screen | |
CN116934823A (zh) | 图像处理方法、装置、电子设备及可读储存介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |