CN112819939A - 矫正uv坐标的方法、装置、设备和计算机可读存储介质 - Google Patents

矫正uv坐标的方法、装置、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN112819939A
CN112819939A CN202110251233.9A CN202110251233A CN112819939A CN 112819939 A CN112819939 A CN 112819939A CN 202110251233 A CN202110251233 A CN 202110251233A CN 112819939 A CN112819939 A CN 112819939A
Authority
CN
China
Prior art keywords
point
coordinate
coordinates
triangle
rectangle
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.)
Granted
Application number
CN202110251233.9A
Other languages
English (en)
Other versions
CN112819939B (zh
Inventor
孟庆宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110251233.9A priority Critical patent/CN112819939B/zh
Publication of CN112819939A publication Critical patent/CN112819939A/zh
Application granted granted Critical
Publication of CN112819939B publication Critical patent/CN112819939B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

本申请涉及计算机图形学领域,提供了矫正UV坐标的方法、装置、设备和计算机可读存储介质,以减少对计算资源的消耗,并且使得纹理映射的结果为正常效果。所述方法包括:将虚拟模型的表面进行UV平铺,得到若干连续的矩形;通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM);基于第一插值算法,计算点M的UV坐标(UMOri,VMOri)和三角形内与点M在同一直线上的点M0的UV坐标(UM00,VM00);以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,对点M0的UV坐标的UM00或VM00进行矫正。本申请的技术方案对计算资源的消耗比较小,有利于渲染的加速。

Description

矫正UV坐标的方法、装置、设备和计算机可读存储介质
技术领域
本发明涉及计算机图形学领域,特别涉及一种矫正UV坐标的方法、装置、设备和计算机可读存储介质。
背景技术
在计算机图形学领域,UV坐标是U、V纹理贴图坐标的简称,也可以称为纹理映射坐标,其可以定义二维图像中每个点的位置。在虚拟模型中,UV坐标可以将图像上的每个点精确对应到虚拟模型的表面,从而使虚拟模型可以呈现出相应的视觉效果。
在对虚拟模型渲染时,UV平铺是其中一个必不可少的环节。所谓UV平铺,是指将虚拟模型表面转换为平面表示。一般地,由于UV坐标是以虚拟模型表面上每个面片(例如,三角形面片、四边形面片等)的顶点的UV坐标进行线性插值得到,因此,理想情况下,UV平铺的结果是平铺后的形状与虚拟模型表面形状、面积等能够尽量一致。在一些场景中,考虑到纹理贴图的连续性,UV平铺的结果有时很难与虚拟模型表面的形状保持一致,例如,虚拟模型表面为扇形或由连续扇形拼接而成,而UV平铺的结果需要由四方连续的矩形组成。对于上述的不一致,一种方法是将虚拟模型表面细分为更多的三角形面片或增加顶点数量,另一种方法是强行将UV平铺成与纹理贴图要求的形状一致,例如,上述示例中,强行将UV平铺成矩形。
然而,上述依靠细分更多三角形面片或增加顶点数量的方法将会带来计算资源的严重消耗,而强行将UV平铺成与纹理贴图要求的形状一致的方法,意味着纹理映射到虚拟模型后将发生扭曲。
发明内容
本申请提供一种矫正UV坐标的方法、装置、设备和计算机可读存储介质,以减少对计算资源的消耗,并且使得纹理映射的结果为正常效果。
一方面,本申请提供了一种矫正UV坐标的方法,包括:
将虚拟模型的表面进行UV平铺,得到若干连续的矩形,所述每一个矩形与所述虚拟模型的表面所分割的每一个四边形面片对应;
对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),所述矩形的三个顶点包括以所述对角线为斜边的三角形的三个顶点,所述基本运算仅包括加减乘除运算;
基于第一插值算法,计算所述点M的UV坐标(UMOri,VMOri)和所述三角形内与所述点M在同一直线上的点M0的UV坐标(UM00,VM00);
以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的UM00或VM00进行矫正,或以所述三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到所述点M0的UV坐标(UM0,VM0),所述第二插值算法仅包含所述基本运算。
可选地,所述对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),包括:根据所述三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到所述点M的V坐标VM
按照插值公式
Figure BDA0002966156460000021
计算得到所述点M的U坐标UM,所述r为所述四边形面片的下边长与上边长之比。
可选地,所述以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的UM00进行矫正,包括:若所述点M0与所述点M在同一水平线上,则判断所述点M0是否位于以所述对角线为分界线的上三角形内;若所述点M0位于以所述对角线为分界线的上三角形内,则根据插值公式
Figure BDA0002966156460000031
对所述点M0的UV坐标的UM00进行矫正,得到所述点M0矫正后的U坐标UM0;若所述点M0位于以所述对角线为分界线的下三角形内,则根据插值公式
Figure BDA0002966156460000032
对所述点M0的UV坐标的UM00进行进行矫正,得到所述点M0矫正后的U坐标U'M0,所述U1为所述下三角形的直角顶点的U坐标。
可选地,所述对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),包括:根据所述三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到所述点M的U坐标UM;按照插值公式
Figure BDA0002966156460000033
计算得到所述点M的V坐标VM,所述r为所述四边形面片的下边长与上边长之比
可选地,所述以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的VM00进行矫正,包括:若所述点M0与所述点M在同一水平线上,则判断所述点M0是否位于以所述对角线为分界线的上三角形内;若所述点M0位于以所述对角线为分界线的上三角形内,则根据插值公式
Figure BDA0002966156460000041
对所述点M0的UV坐标的VM00进行矫正,得到所述点M0矫正后的V坐标VM0;若所述点M0位于以所述对角线为分界线的下三角形内,则根据插值公式
Figure BDA0002966156460000042
对所述点M0的UV坐标的VM00进行矫正,得到所述点M0矫正后的V坐标V′M0,所述V1为所述下三角形的直角顶点的V坐标。
可选地,所述插值算法为线性插值算法或非线性插值算法。
可选地,所述以所述三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到所述点M0的UV坐标(UM0,VM0),包括:将所述三角形三个顶点的UV坐标转换为所述虚拟模型的表面对应三角形面片顶点的像素坐标;根据所述三角形面片顶点的像素坐标,构建对所述三角形面片进行最小包围的包围盒;根据所述三角形面片三个顶点的像素坐标,计算所述包围盒内三角形面片每个像素的重心坐标;根据所述重心坐标,计算所述点M0的UV坐标(UM0,VM0)。
可选地,所述根据所述三角形重心坐标,计算所述点M0的UV坐标(UM0,VM0),包括:根据所述重心坐标,识别位于所述三角形面片内与所述点M0对应的点M’0;根据公式UM0=λ1U012U023U03和VM0=λ1V012V023V03,计算所述点M’0在纹理中的UV坐标即为所述点M0的UV坐标,所述(λ1,λ2,λ3)为所述三角形重心坐标,所述(U01,V01)、(U02,V02)和(U03,V03)为所述三角形三个顶点的UV坐标。
可选地,所述虚拟模型的表面为类扇形。
另一方面,本申请提供了一种矫正UV坐标的装置,包括:
平铺模块,用于将虚拟模型的表面进行UV平铺,得到若干连续的矩形,所述每一个矩形与所述虚拟模型的表面所分割的每一个四边形面片对应;
第一纹理坐标计算模块,用于对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),所述矩形的三个顶点包括以所述对角线为斜边的三角形的三个顶点,所述基本运算仅包括加减乘除运算;
第二纹理坐标计算模块,用于基于第一插值算法,计算所述点M的UV坐标(UMOri,VMOri)和所述三角形内与所述点M在同一直线上的点M0的UV坐标(UM00,VM00);
纹理坐标矫正模块,用于以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的UM00或VM00进行矫正,或以所述三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到所述点M0的UV坐标(UM0,VM0),所述第二插值算法仅包含所述基本运算。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的矫正UV坐标的方法中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的矫正UV坐标的方法中的步骤。
从上述本申请提供的技术方案可知,一方面,本申请的技术方案在计算点M的UV坐标(UM,VM)时,考虑到了UV平铺后所得矩形对应于虚拟模型表面的四边形面片的边长比,因此,点M的UV坐标(UM,VM)以及基于此计算所得其他点的UV坐标得到了矫正,纹理映射到虚拟模型后不再发生扭曲;另一方面,对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行的运算以及述第二插值算法都属于仅包含加减乘除的基本运算,因此,对计算资源的消耗比较小,有利于渲染的加速,也有利于在轻量级设备上实现复杂场景中各种模型的渲染。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的矫正UV坐标的方法的流程图;
图2是本申请实施例提供的将虚拟模型的表面进行UV平铺的示意图;
图3a是本申请实施例提供的一个扇形的虚拟模型示意图;
图3b是按照现有技术将图3a的扇形强行UV平铺为矩形的示意图;
图4a是按照现有技术将图3a的扇形强行UV平铺为矩形后纹理映射产生畸变的示意图;
图4b是按照现有技术将扇形强行UV平铺为矩形后纹理映射产生畸变和本申请提供的技术方案将纹理映射到扇形后的效果对比示意图;
图5本申请实施例提供的将梯形面片UV平铺为矩形的示意图;
图6是本申请实施例提供的在图5基础上定义经过点M’平行于梯形面片上下边的一条直线以及定义经过点M平行于矩形上下边的一条直线的示意图;
图7是本申请另一实施例提供的矫正UV坐标的装置的结构示意图;
图8是本申请实施例提供的设备的结构示意图;
图9是本申请实施例提供的包围盒内三角形面片中像素的重心坐标(λ1,λ2,λ3)的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请提出了一种矫正UV坐标的方法,如附图1所示,主要包括步骤S101至S106,详述如下:
步骤S101:将虚拟模型的表面进行UV平铺,得到若干连续的矩形,其中,每一个矩形与虚拟模型的表面所分割的每一个四边形面片对应。
将虚拟模型的表面进行UV平铺是指将虚拟模型表面转换为平面表示,具体而言,在本申请实施例中,是将虚拟模型的表面转换为UV坐标系中的连续的矩形,所谓连续,是指每个矩形之间无缝连接。需要说明的是,将虚拟模型的表面进行UV平铺后,其中的每一个矩形与虚拟模型的表面所分割的每一个四边形面片对应。如图2所示,假设虚拟模型的表面被分割为4个梯形,即梯形T1、梯形T2、梯形T3和梯形T4,则梯形T1、梯形T2、梯形T3和梯形T4分别对应于UV坐标系中的矩形J1、矩形J2、矩形J3和矩形J4
步骤S102:对于每个矩形中一条对角线上任意一点M,通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM),其中,矩形的三个顶点包括以对角线为斜边的三角形的三个顶点,基本运算仅包括加减乘除运算。
此处再对现有技术强行将UV平铺成与纹理贴图要求的形状一致时,后期的纹理映射会受到何种影响进行描述。如图3a所示,是一个扇形的虚拟模型,其表面被分割为若干梯形面片,每个梯形面片又被分割为两个三角形面片,在强行将UV平铺成矩形,如图3b所示。主观上,用户是将扇形的每一个梯形面片展成了矩形,但对于GPU而言,实际上是将两个原本面积不相等的三角形(图3a以a和b示出)强行展成了面积相等、形状相同的两个三角形。由于UV坐标是以三角形面片为单位进行插值计算的,这就意味着纹理映射后将发生拉伸或扭曲。如图4a所示,其左边是四方连续的纹理中的一块,当强行将UV平铺成矩形,纹理映射到扇形后,其效果将如图4a的右图(即图中箭头右边的部分)所示,显然,纹理发生了不同程度的扭曲和/或拉伸。
为了矫正上述这种扭曲和/或拉伸,本申请实施例在计算UV坐标时,引入UV平铺后的每个矩形,其对应于虚拟模型表面被分割的每个四边形面片的边长比。需要说明的是,由于矩形的4个顶点的UV坐标是直接由虚拟模型顶点与矩形的顶点之间的映射关系确定,因此,矩形的4个顶点的UV坐标是准确的,无需矫正;进一步地,矩形四条边中每一条边上点的UV坐标是基于矩形中4个顶点的两个顶点插值计算得到,因此,矩形四条边中每一条边上点的UV坐标亦无需矫正。换言之,矩形中需要矫正UV坐标的点位于矩形内部,其中,又将这些点划分为位于矩形对角线上的点和不在对角线上的点,即位于对角线上部的上三角形内的点和位于对角线下部的下三角形内的点,以下对其矫正方案进行详细描述。
如前所述,由于UV坐标系中每一个矩形与虚拟模型的表面所分割的每一个四边形面片对应,因此,每个矩形一条对角线上任意一点M亦对应于四边形面片对角线上任意一点,此处将该点记为M’。以虚拟模型的表面是类扇形为例,则可以将该虚拟模型的表面分割为若干梯形面片,其每一个梯形面片对应于每一个矩形,梯形面片一条对角线上任意一点M’与该梯形面片对应的矩形一条对角线上任意一点M,如图5所示。作为本申请一个实施例,对于每个矩形中一条对角线上任意一点M,通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM)可通过步骤S1021和步骤S1022实现,说明如下:
步骤S1021:根据三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到点M的V坐标VM
矩形的对角线将矩形分为两个直角三角形,如图5所示,该两个三角形斜边所在两个顶点的UV坐标分别为(U1,V0)和(U0,V1)。需要说明的是,在本申请实施例中,仅需要对矩形内任意一点(该任意一点包括矩形对角线上任意一点和由该对角线分割的两个三角形内任意一点)的UV坐标中的U坐标或V坐标进行矫正,即可解决现有技术在强行将UV平铺为矩形时带来的纹理映射扭曲和/或拉伸。本实施例以只对矩形内任意一点的UV坐标中的U坐标进行矫正来说明,具体可以根据三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到点M的V坐标VM。换言之,点M的V坐标VM是GPU按照现有的插值算法得到,对VM不做矫正,此处,现有的插值算法包括线性插值算法或非线性插值算法,其中,线性插值算法可以是线性差值算法、双线性差值算法,等等,非线性插值算法可以是最近邻差值算法、双信道差值算法,等等。
步骤S1022:按照插值公式
Figure BDA0002966156460000091
计算得到点M的U坐标UM,其中,r为四边形面片的下边长与上边长之比。
请参阅图6,是在图5基础上定义经过点M’平行于梯形面片上下边的一条直线,其与梯形两腰相交的两个交点A’、B’,并且,将M’A’的长度记为a0,将M’B’的长度记为b0,相应地,定义经过点M平行于矩形上下边的一条直线,其与矩形左右两边相交的两个交点A、B,并且,将MA的长度记为a,将M B的长度记为b;进一步地,将梯形面片的上边长记为c1,将梯形面片的下边长记为c0。由于弧长正比于弧长所在圆的半径,因此,将梯形面片的下边长c0与梯形面片的上边长c1之比c0/c1等于扇形的内径r0与外径r1之比r0/r1,记r=c0/c1
若要达到纹理映射后不产生扭曲和/或拉伸等畸变,需要满足b/a=b0/a0。记矩形的4个顶点的UV坐标依次为(U1,V0)、(U0,V0)、(U0,V1)和(U1,V1)。根据几何关系,存在
Figure BDA0002966156460000101
UM=U0+(U1-U0)(a+b)/a=U0+(U1-U0)(1+b/a),又因为b/a=b0/a0,最终得到
Figure BDA0002966156460000102
如前所述,仅需要对矩形内任意一点M的UV坐标中的U坐标或V坐标进行矫正,即可解决现有技术在强行将UV平铺为矩形时带来的纹理映射扭曲和/或拉伸。上述附图5和附图6示例的是对矩形内任意一点的UV坐标中的U坐标进行矫正,以下说明对矩形内任意一点的UV坐标中的V坐标进行矫正的技术方案,具体而言,对于每个矩形中一条对角线上任意一点M,通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM)可通过步骤S’1021和步骤S’1022实现:
步骤S’1021:根据三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到点M的U坐标UM
步骤S’1021中,插值算法包括线性插值算法或非线性插值算法,其中,线性插值算法可以是线性差值算法、双线性差值算法,等等,非线性插值算法可以是最近邻差值算法、双信道差值算法,等等;按照插值算法得到的点M的U坐标UM并没有矫正。
步骤S’1022:按照插值公式
Figure BDA0002966156460000103
计算得到点M的V坐标VM,其中,r为四边形面片的下边长与上边长之比。
如前述实施例对点M的U坐标UM的矫正类似,按照插值公式
Figure BDA0002966156460000104
计算得到点M的V坐标VM其实是对点M的V坐标矫正后的结果。当虚拟模型的表面为类扇形时,四边形面片为梯形面片。由于对于扇形,弧长正比于弧长所在圆的半径,因此,四边形面片的下边长与上边长之比也等于扇形的内径r0与外径r1之比r0/r1
步骤S103:基于第一插值算法,计算点M的UV坐标(UMOri,VMOri)和三角形内与点M在同一直线上的点M0的UV坐标(UM00,VM00)。
此处,计算点M的UV坐标(UMOri,VMOri)和三角形内与点M在同一直线上的点M0的UV坐标(UM00,VM00)可以由GPU自带的插值算法计算得到,即,此时点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)是未经矫正的UV坐标。
步骤S104:以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对点M0的UV坐标的UM00或VM00进行矫正,或以三角形三个顶点的UV坐标为运算对象,基于包围盒内每个像素的三角形重心坐标计算得到对点M0的UV坐标(UM0,VM0),其中,第二插值算法仅包含基本运算。
相应于前述步骤S1021和步骤S1022的实施例,作为本申请一个实施例,以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对点M0的UV坐标的UM00进行矫正可以通过步骤S1041至步骤S1043实现,说明如下:
步骤S1041:若点M0与点M在同一水平线上,则判断点M0是否位于以矩形对角线为分界线的上三角形内。
如前所述,点M0位于矩形内分为点M0是位于以对角线为分界线的上三角形内还是以对角线为分界线的下三角形内,具体判断方法是比较经上述第一插值算法计算所得点M0的U坐标UM00与点M的U坐标UMOri的大小,即当点M0与点M在同一水平线时,若UM00<UMOri,则点M0位于以对角线为分界线的上三角形内,反之,若UM00>UMOri,则点M0位于以对角线为分界线的下三角形内。
步骤S1042:若点M0位于以对角线为分界线的上三角形内,则根据插值公式
Figure BDA0002966156460000121
对点M0的UV坐标的UM00进行矫正,得到点M0矫正后的U坐标UM0
步骤S1043:若点M0位于以对角线为分界线的下三角形内,则根据插值公式
Figure BDA0002966156460000122
对点M0的UV坐标的UM00进行矫正,得到点M0矫正后的U坐标U'M0,其中,U1为下三角形的直角顶点的U坐标。
相应于前述实施例对矩形内任意一点的UV坐标中的V坐标进行矫正的技术方案,本申请实施例也可以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对点M0的UV坐标的VM00进行矫正,具体可以通过步骤S’1041至步骤S’1043实现,说明如下:
步骤S’1041:若点M0与点M在同一水平线上,则判断点M0是否位于以矩形对角线为分界线的上三角形内。
具体判断方法是比较经上述第一插值算法计算所得点M0的V坐标VM00与点M的V坐标VMOri的大小,即当点M0与点M在同一水平线时,若VM00<VMOri,则点M0位于以矩形对角线为分界线的上三角形内,反之,若VM00>VMOri,则点M0位于以对角线为分界线的下三角形内。
步骤S’1042:若点M0位于以矩形对角线为分界线的上三角形内,则根据插值公式
Figure BDA0002966156460000123
对点M0的UV坐标的VM00进行矫正,得到点M0矫正后的V坐标VM0
步骤S’1043:若点M0位于以矩形对角线为分界线的下三角形内,则根据插值公式
Figure BDA0002966156460000131
对点M0的UV坐标的VM00进行矫正,得到点M0矫正后的V坐标V′M0,其中,V1为下三角形的直角顶点的V坐标。
如前所述,由于矩形的4个顶点的UV坐标是经映射关系确定,是准确的坐标。因此,在本申请一个实施例中,以对角线为斜边的三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到点M0的UV坐标(UM0,VM0)可以通过如下步骤S”1041至步骤S”1044实现:
步骤S”1041:将矩形对角线分割而成的其中一个三角形三个顶点的UV坐标转换为虚拟模型的表面对应三角形面片顶点的像素坐标。
如前所述,矩形对角线将矩形一分为二,成为两个三角形。若点M0位于以对角线为分界线的上三角形,则步骤S”1041中的三角形为上三角形,若点M0位于以对角线为分界线的下三角形,则步骤S”1041中的三角形为下三角形。至于三角形顶点的UV坐标,可以从记载于三维模型内置文件中的纹理映射关系中直接读取。一般地,计算机在处理UV坐标时经常使用相对UV坐标代替实际UV坐标,相对UV坐标是根据当前像素位置占实际贴图尺寸大小的百分比定义,即,UV坐标的取值范围在[0,1]内,需根据需求的贴图尺寸大小将其转换为实际的像素坐标。具体地,假设某顶点UV坐标为(u,v),纹理贴图尺寸为w*h,实际像素坐标为(x,y),则x=u*w,y=v*h。
步骤S”1042:根据虚拟模型表面的三角形面片顶点的像素坐标,构建对三角形面片进行最小包围的包围盒。
构建包围盒的具体方法可以是比较虚拟模型表面的三角形面片顶点的像素坐标在x轴方向和y轴方向的大小,分别取x轴方向和y轴方向的最小值(取整数)和最大值(取整数),可以得到xmin、ymin、xmax和ymax四个坐标值,以点J(xmin,ymin)为左上角坐标,点K(xmax,ymax)为右下角坐标构建矩形,如图9所示,该矩形可以将虚拟模型表面的三角形面片包围其中,构成对三角形面片进行最小包围的包围盒。
步骤S”1043:根据虚拟模型表面的三角形面片三个顶点的像素坐标,计算包围盒内三角形面片每个像素的重心坐标。
图9示例的包围盒内三角形面片中像素的重心坐标(λ1,λ2,λ3)计算公式为:
Figure BDA0002966156460000141
Figure BDA0002966156460000142
λ3=1-λ12
上述像素的重心坐标计算公式中,(x1,y1)、(x2,y2)和(x3,y3)分别是图9的三角形面片ABC的三个顶点A、B和C的像素坐标,(x,y)是图9的三角形面片之内任意一点P的像素坐标。进一步地,按照上述重心坐标计算公式,顶点A的重心坐标为(1,0,0),顶点B的重心坐标为(0,1,0),顶点C的重心坐标为(0,0,1)。
步骤S”1044:根据三角形面片每个像素的重心坐标,计算点M0的UV坐标(UM0,VM0)。
具体地,步骤S”1044的实现可以是:根据包围盒内每个像素的重心坐标,识别位于三角形面片内与点M0对应的点M’0,然后,根据公式UM0=λ'1U01+λ'2U02+λ'3U03和VM0=λ'1V01+λ'2V02+λ'3V03,计算点M’0在纹理中的UV坐标即为点M0的UV坐标,其中,(λ1,λ2,λ3)为M’0的重心坐标,(U01,V01)、(U02,V02)和(U03,V03)为三角形三个顶点的UV坐标。以图6为例,(U01,V01)、(U02,V02)和(U03,V03)可分别对应于(U1,V0)、(U0,V0)和(U0,V1),或可分别对应于(U1,V0)、(U1,V1)和(U0,V1)。至于识别点M’0是否位于三角形面片内的具体方法,由于顶点A的重心坐标为(1,0,0),顶点B的重心坐标为(0,1,0),顶点C的重心坐标为(0,0,1),因此,只需要按照前述像素的重心坐标的计算公式,计算点M’0的重心坐标
Figure BDA0002966156460000151
Figure BDA0002966156460000152
Figure BDA0002966156460000153
均成立,则点M’0位于图9示例的三角形面片ABC内。
经过上述实施例提供的技术方案,纹理映射到虚拟模型后将不再发生扭曲,其对比如图4b所示。图4b的左边部分(即箭头左侧的图)为强行将UV平铺成矩形、纹理映射到扇形后的效果示意图,图4b的右边部分(即箭头右侧的图)为通过本申请实施例提供的矫正UV坐标的技术方案、纹理映射到扇形后的效果示意图。
从上述附图1示例的矫正UV坐标的方法可知,一方面,本申请的技术方案在计算点M的UV坐标(UM,VM)时,考虑到了UV平铺后所得矩形对应于虚拟模型表面的四边形面片的边长比,因此,点M的UV坐标(UM,VM)以及基于此计算所得其他点的UV坐标得到了矫正,纹理映射到虚拟模型后不再发生扭曲;另一方面,对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行的运算以及述第二插值算法都属于仅包含加减乘除的基本运算,因此,对计算资源的消耗比较小,有利于渲染的加速,也有利于在轻量级设备上实现复杂场景中各种模型的渲染。
请参阅附图7,是本申请实施例提供的一种矫正UV坐标的装置,该装置可以包括平铺模块701、第一纹理坐标计算模块702、第二纹理坐标计算模块703和纹理坐标矫正模块704,详述如下:
701平铺模块,用于将虚拟模型的表面进行UV平铺,得到若干连续的矩形,其中,每一个矩形与虚拟模型的表面所分割的每一个四边形面片对应;
第一纹理坐标计算模块702,用于对于每个矩形中一条对角线上任意一点M,通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM),其中,矩形的三个顶点包括以对角线为斜边的三角形的三个顶点,基本运算仅包括加减乘除运算;
第二纹理坐标计算模块703,用于基于第一插值算法,计算点M的UV坐标(UMOri,VMOri)和三角形内与点M在同一直线上的点M0的UV坐标(UM00,VM00);
纹理坐标矫正模块704,用于以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对点M0的UV坐标的UM00或VM00进行矫正,或以三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到点M0的UV坐标(UM0,VM0),其中,第二插值算法仅包含基本运算。
可选地,上述附图7示例的装置中,第一纹理坐标计算模块702可包括第一插值单元和第一计算单元,其中:
第一插值单元,用于根据三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到点M的V坐标VM
第一计算单元,用于按照插值公式
Figure BDA0002966156460000161
计算得到点M的U坐标UM,其中,r为四边形面片的下边长与上边长之比。
可选地,上述附图7示例的装置中,纹理坐标矫正模块704可包括第一判断单元、第二插值单元和第三插值单元,其中:
第一判断单元,用于若点M0与点M在同一水平线上,则判断点M0是否位于以对角线为分界线的上三角形内;
第二插值单元,用于若点M0位于以对角线为分界线的上三角形内,则根据插值公式
Figure BDA0002966156460000162
对点M0的UV坐标的UM00进行矫正,得到点M0矫正后的U坐标UM0
第三插值单元,用于若点M0位于以对角线为分界线的下三角形内,则根据插值公式
Figure BDA0002966156460000163
对点M0的UV坐标的UM00进行矫正,得到点M0矫正后的U坐标U'M0,其中,U1为下三角形的直角顶点的U坐标。
可选地,上述附图7示例的装置中,第一纹理坐标计算模块702可包括第四插值单元和第二计算单元,其中:
第四插值单元,用于根据三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到点M的U坐标UM
第二计算单元,用于按照插值公式
Figure BDA0002966156460000171
计算得到点M的V坐标VM,r为四边形面片的下边长与上边长之比。
可选地,上述附图7示例的装置中,纹理坐标矫正模块704可包括第二判断单元、第五插值单元和第六插值单元,其中:
第二判断单元,用于若点M0与点M在同一水平线上,则判断点M0是否位于以对角线为分界线的上三角形内;
第五插值单元,用于若点M0位于以矩形对角线为分界线的上三角形内,则根据插值公式
Figure BDA0002966156460000172
对点M0的UV坐标的VM00进行矫正,得到点M0矫正后的V坐标VM0
第六插值单元,用于若点M0位于以矩形对角线为分界线的下三角形内,则根据插值公式
Figure BDA0002966156460000173
对点M0的UV坐标的VM00进行矫正,得到点M0矫正后的V坐标V′M0,其中,V1为下三角形的直角顶点的V坐标。
可选地,上述附图7示例的装置中,纹理坐标矫正模块704可包括转换单元、包围盒构建单元、第三计算单元和第四计算单元,其中:
转换单元,用于将三角形三个顶点的UV坐标转换为虚拟模型的表面对应三角形面片顶点的像素坐标;
包围盒构建单元,用于根据三角形面片顶点的像素坐标,构建对三角形面片进行最小包围的包围盒;
第三计算单元,用于根据三角形面片三个顶点的像素坐标,计算包围盒内三角形面片每个像素的重心坐标;
第四计算单元,用于根据三角形面片每个像素的重心坐标,计算点M0的UV坐标(UM0,VM0)。
可选地,上述第四计算单元可包括识别单元和第五计算单元,其中:
识别单元,用于根据三角形面片每个像素的重心坐标,识别位于三角形面片内与点M0对应的点M’0
第五计算单元,用于根据公式UM0=λ'1U01+λ'2U02+λ'3U03和VM0=λ'1V01+λ'2V02+λ'3V03,计算点M’0在纹理中的UV坐标即为点M0的UV坐标,(λ'1,λ'2,λ'3)为M’0的重心坐标,其中,(U01,V01)、(U02,V02)和(U03,V03)为三角形三个顶点的UV坐标。
从以上技术方案的描述中可以看出,一方面,本申请的技术方案在计算点M的UV坐标(UM,VM)时,考虑到了UV平铺后所得矩形对应于虚拟模型表面的四边形面片的边长比,因此,点M的UV坐标(UM,VM)以及基于此计算所得其他点的UV坐标得到了矫正,纹理映射到虚拟模型后不再发生扭曲;另一方面,对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行的运算以及述第二插值算法都属于仅包含加减乘除的基本运算,因此,对计算资源的消耗比较小,有利于渲染的加速,也有利于在轻量级设备上实现复杂场景中各种模型的渲染。
图8是本申请一实施例提供的计算机设备的结构示意图。如图8所示,该实施例的计算机设备8主要包括:处理器80、存储器81以及存储在存储器81中并可在处理器80上运行的计算机程序82,例如矫正UV坐标的方法的程序。处理器80执行计算机程序82时实现上述矫正UV坐标的方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,处理器80执行计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图7所示平铺模块701、第一纹理坐标计算模块702、第二纹理坐标计算模块703和纹理坐标矫正模块704的功能。
示例性地,矫正UV坐标的方法的计算机程序82主要包括:将虚拟模型的表面进行UV平铺,得到若干连续的矩形,其中,每一个矩形与虚拟模型的表面所分割的每一个四边形面片对应;对于每个矩形中一条对角线上任意一点M,通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM),其中,矩形的三个顶点包括以对角线为斜边的三角形的三个顶点,基本运算仅包括加减乘除运算;基于第一插值算法,计算点M的UV坐标(UMOri,VMOri)和三角形内与点M在同一直线上的点M0的UV坐标(UM00,VM00);以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对点M0的UV坐标的UM00或VM00进行矫正,或以三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到点M0的UV坐标(UM0,VM0),其中,第二插值算法仅包含基本运算。计算机程序82可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器81中,并由处理器80执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序82在计算机设备8中的执行过程。例如,计算机程序82可以被分割成平铺模块701、第一纹理坐标计算模块702、第二纹理坐标计算模块703和纹理坐标矫正模块704(虚拟装置中的模块)的功能,各模块具体功能如下:701平铺模块,用于将虚拟模型的表面进行UV平铺,得到若干连续的矩形,其中,每一个矩形与虚拟模型的表面所分割的每一个四边形面片对应;第一纹理坐标计算模块702,用于对于每个矩形中一条对角线上任意一点M,通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM),其中,矩形的三个顶点包括以对角线为斜边的三角形的三个顶点,基本运算仅包括加减乘除运算;第二纹理坐标计算模块703,用于基于第一插值算法,计算点M的UV坐标(UMOri,VMOri)和三角形内与点M在同一直线上的点M0的UV坐标(UM00,VM00);纹理坐标矫正模块704,用于以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对点M0的UV坐标的UM00或VM00进行矫正,或以三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到点M0的UV坐标(UM0,VM0),其中,第二插值算法仅包含基本运算。
计算机设备8可包括但不仅限于处理器80、存储器81。本领域技术人员可以理解,图8仅仅是计算机设备8的示例,并不构成对计算机设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算计算机设备还可以包括输入输出计算机设备、网络接入计算机设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器81可以是计算机设备8的内部存储单元,例如计算机设备8的硬盘或内存。存储器81也可以是计算机设备8的外部存储计算机设备,例如计算机设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器81还可以既包括计算机设备8的内部存储单元也包括外部存储计算机设备。存储器81用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,矫正UV坐标的方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,将虚拟模型的表面进行UV平铺,得到若干连续的矩形,其中,每一个矩形与虚拟模型的表面所分割的每一个四边形面片对应;对于每个矩形中一条对角线上任意一点M,通过对矩形的三个顶点的UV坐标和矩形对应四边形面片的边长比进行基本运算,得到点M的UV坐标(UM,VM),其中,矩形的三个顶点包括以对角线为斜边的三角形的三个顶点,基本运算仅包括加减乘除运算;基于第一插值算法,计算点M的UV坐标(UMOri,VMOri)和三角形内与点M在同一直线上的点M0的UV坐标(UM00,VM00);以三角形直角顶点的UV坐标、点M的UV坐标(UMOri,VMOri)和点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对点M0的UV坐标的UM00或VM00进行矫正,或以三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到点M0的UV坐标(UM0,VM0),其中,第二插值算法仅包含基本运算。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种矫正UV坐标的方法,其特征在于,所述方法包括:
将虚拟模型的表面进行UV平铺,得到若干连续的矩形,每一个所述矩形与所述虚拟模型的表面所分割的每一个四边形面片对应;
对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),所述矩形的三个顶点包括以所述对角线为斜边的三角形的三个顶点,所述基本运算仅包括加减乘除运算;
基于第一插值算法,计算所述点M的UV坐标(UMOri,VMOri)和所述三角形内与所述点M在同一直线上的点M0的UV坐标(UM00,VM00);
以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的UM00或VM00进行矫正,或以所述三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到所述点M0的UV坐标(UM0,VM0),所述第二插值算法仅包含所述基本运算。
2.如权利要求1所述矫正UV坐标的方法,其特征在于,所述对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),包括:
根据所述三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到所述点M的V坐标VM
按照插值公式
Figure FDA0002966156450000011
计算得到所述点M的U坐标UM,所述r为所述四边形面片的下边长与上边长之比。
3.如权利要求2所述矫正UV坐标的方法,其特征在于,所述以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的UM00进行矫正,包括:
若所述点M0与所述点M在同一水平线上,则判断所述点M0是否位于以所述对角线为分界线的上三角形内;
若所述点M0位于以所述对角线为分界线的上三角形内,则根据插值公式
Figure FDA0002966156450000021
对所述点M0的UV坐标的UM00进行矫正,得到所述点M0矫正后的U坐标UM0
若所述点M0位于以所述对角线为分界线的下三角形内,则根据插值公式
Figure FDA0002966156450000022
对所述点M0的UV坐标的UM00进行矫正,得到所述点M0矫正后的U坐标U'M0,所述U1为所述下三角形的直角顶点的U坐标。
4.如权利要求1所述矫正UV坐标的方法,其特征在于,所述对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),包括:
根据所述三角形斜边所在两个顶点的UV坐标(U1,V0)和(U0,V1),按照插值算法得到所述点M的U坐标UM
按照插值公式
Figure FDA0002966156450000023
计算得到所述点M的V坐标VM,所述r为所述四边形面片的下边长与上边长之比。
5.如权利要求4所述矫正UV坐标的方法,其特征在于,所述以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的VM00进行矫正,包括:
若所述点M0与所述点M在同一水平线上,则判断所述点M0是否位于以所述对角线为分界线的上三角形内;
若所述点M0位于以所述对角线为分界线的上三角形内,则根据插值公式
Figure FDA0002966156450000031
对所述点M0的UV坐标的VM00进行矫正,得到所述点M0矫正后的V坐标VM0
若所述点M0位于以所述对角线为分界线的下三角形内,则根据插值公式
Figure FDA0002966156450000032
对所述点M0的UV坐标的VM00进行矫正,得到所述点M0矫正后的V坐标V′M0,所述V1为所述下三角形的直角顶点的V坐标。
6.如权利要求2所述矫正UV坐标的方法,其特征在于,所述插值算法为线性插值算法或非线性插值算法。
7.如权利要求1所述矫正UV坐标的方法,其特征在于,所述以所述三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到所述点M0的UV坐标(UM0,VM0),包括:
将所述三角形三个顶点的UV坐标转换为所述虚拟模型的表面对应三角形面片顶点的像素坐标;
根据所述三角形面片顶点的像素坐标,构建对所述三角形面片进行最小包围的包围盒;
根据所述三角形面片三个顶点的像素坐标,计算所述包围盒内三角形面片每个像素的重心坐标;
根据所述重心坐标,计算所述点M0的UV坐标(UM0,VM0)。
8.如权利要求7所述矫正UV坐标的方法,其特征在于,所述根据所述三角形重心坐标,计算所述点M0的UV坐标(UM0,VM0),包括:
根据所述重心坐标,识别位于所述三角形面片内与所述点M0对应的点M’0
根据公式UM0=λ'1U01+λ'2U02+λ'3U03和VM0=λ'1V01+λ'2V02+λ'3V03,计算所述点M’0在纹理中的UV坐标即为所述点M0的UV坐标,所述(λ'1,λ'2,λ'3)为所述M’0的重心坐标,所述(U01,V01)、(U02,V02)和(U03,V03)为所述三角形三个顶点的UV坐标。
9.如权利要求1至8任意一项所述矫正UV坐标的方法,其特征在于,所述虚拟模型的表面为类扇形。
10.一种矫正UV坐标的装置,其特征在于,所述装置包括:
平铺模块,用于将虚拟模型的表面进行UV平铺,得到若干连续的矩形,所述每一个矩形与所述虚拟模型的表面所分割的每一个四边形面片对应;
第一纹理坐标计算模块,用于对于每个所述矩形中一条对角线上任意一点M,通过对所述矩形的三个顶点的UV坐标和所述矩形对应四边形面片的边长比进行基本运算,得到所述点M的UV坐标(UM,VM),所述矩形的三个顶点包括以所述对角线为斜边的三角形的三个顶点,所述基本运算仅包括加减乘除运算;
第二纹理坐标计算模块,用于基于第一插值算法,计算所述点M的UV坐标(UMOri,VMOri)和所述三角形内与所述点M在同一直线上的点M0的UV坐标(UM00,VM00);
纹理坐标矫正模块,用于以所述三角形直角顶点的UV坐标、所述点M的UV坐标(UMOri,VMOri)和所述点M0的UV坐标(UM00,VM00)为运算对象,基于第二插值算法,对所述点M0的UV坐标的UM00或VM00进行矫正,或以所述三角形三个顶点的UV坐标为运算对象,基于包围盒内三角形面片每个像素的重心坐标计算得到所述点M0的UV坐标(UM0,VM0),所述第二插值算法仅包含所述基本运算。
11.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9任意一项所述矫正UV坐标的方法的步骤。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任意一项所述矫正UV坐标的方法的步骤。
CN202110251233.9A 2021-03-08 2021-03-08 矫正uv坐标的方法、装置、设备和计算机可读存储介质 Active CN112819939B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110251233.9A CN112819939B (zh) 2021-03-08 2021-03-08 矫正uv坐标的方法、装置、设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110251233.9A CN112819939B (zh) 2021-03-08 2021-03-08 矫正uv坐标的方法、装置、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112819939A true CN112819939A (zh) 2021-05-18
CN112819939B CN112819939B (zh) 2023-07-07

Family

ID=75862994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110251233.9A Active CN112819939B (zh) 2021-03-08 2021-03-08 矫正uv坐标的方法、装置、设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112819939B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113689536A (zh) * 2021-08-25 2021-11-23 杭州群核信息技术有限公司 纹理铺贴方法、装置和存储介质
CN113791914A (zh) * 2021-11-17 2021-12-14 腾讯科技(深圳)有限公司 对象处理方法、装置、计算机设备、存储介质及产品
CN116168404A (zh) * 2023-01-31 2023-05-26 苏州爱语认知智能科技有限公司 基于空间变换的智能文档处理方法和系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1981306A (zh) * 2004-05-03 2007-06-13 皇家飞利浦电子股份有限公司 用于渲染图形的图形管道
CN107958484A (zh) * 2017-12-06 2018-04-24 北京像素软件科技股份有限公司 纹理坐标计算方法及装置
CN108062784A (zh) * 2018-02-05 2018-05-22 深圳市易尚展示股份有限公司 三维模型纹理贴图转换方法与装置
US20180315222A1 (en) * 2017-05-01 2018-11-01 Lockheed Martin Corporation Real-time image undistortion for incremental 3d reconstruction
CN109544668A (zh) * 2017-09-21 2019-03-29 腾讯科技(深圳)有限公司 纹理坐标处理方法、终端设备及计算机可读存储介质
CN110336987A (zh) * 2019-04-03 2019-10-15 北京小鸟听听科技有限公司 一种投影仪畸变校正方法、装置和投影仪
CN110866875A (zh) * 2019-10-21 2020-03-06 稿定(厦门)科技有限公司 图像纹理矫正的方法及装置
CN111460937A (zh) * 2020-03-19 2020-07-28 深圳市新镜介网络有限公司 脸部特征点的定位方法、装置、终端设备及存储介质
CN112102480A (zh) * 2020-09-22 2020-12-18 腾讯科技(深圳)有限公司 图像数据处理方法、装置、设备以及介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1981306A (zh) * 2004-05-03 2007-06-13 皇家飞利浦电子股份有限公司 用于渲染图形的图形管道
US20180315222A1 (en) * 2017-05-01 2018-11-01 Lockheed Martin Corporation Real-time image undistortion for incremental 3d reconstruction
CN109544668A (zh) * 2017-09-21 2019-03-29 腾讯科技(深圳)有限公司 纹理坐标处理方法、终端设备及计算机可读存储介质
CN107958484A (zh) * 2017-12-06 2018-04-24 北京像素软件科技股份有限公司 纹理坐标计算方法及装置
CN108062784A (zh) * 2018-02-05 2018-05-22 深圳市易尚展示股份有限公司 三维模型纹理贴图转换方法与装置
CN110336987A (zh) * 2019-04-03 2019-10-15 北京小鸟听听科技有限公司 一种投影仪畸变校正方法、装置和投影仪
CN110866875A (zh) * 2019-10-21 2020-03-06 稿定(厦门)科技有限公司 图像纹理矫正的方法及装置
CN111460937A (zh) * 2020-03-19 2020-07-28 深圳市新镜介网络有限公司 脸部特征点的定位方法、装置、终端设备及存储介质
CN112102480A (zh) * 2020-09-22 2020-12-18 腾讯科技(深圳)有限公司 图像数据处理方法、装置、设备以及介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113689536A (zh) * 2021-08-25 2021-11-23 杭州群核信息技术有限公司 纹理铺贴方法、装置和存储介质
CN113791914A (zh) * 2021-11-17 2021-12-14 腾讯科技(深圳)有限公司 对象处理方法、装置、计算机设备、存储介质及产品
CN113791914B (zh) * 2021-11-17 2022-03-11 腾讯科技(深圳)有限公司 对象处理方法、装置、计算机设备、存储介质及产品
CN116168404A (zh) * 2023-01-31 2023-05-26 苏州爱语认知智能科技有限公司 基于空间变换的智能文档处理方法和系统
CN116168404B (zh) * 2023-01-31 2023-12-22 苏州爱语认知智能科技有限公司 基于空间变换的智能文档处理方法和系统

Also Published As

Publication number Publication date
CN112819939B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
CN112819939A (zh) 矫正uv坐标的方法、装置、设备和计算机可读存储介质
JP2018129051A (ja) スクリーンの位置によって異なる解像度のターゲットの複数レンダリングのテクスチャ・マッピングの傾き調整
US10019848B2 (en) Edge preserving color smoothing of 3D models
US9761158B2 (en) Image processing apparatus, image processing method, and storage medium
CN110246081B (zh) 一种图像拼接方法、装置及可读存储介质
CN110415237B (zh) 皮肤瑕疵检测方法、检测装置、终端设备及可读存储介质
US8072464B2 (en) 3-dimensional graphics processing method, medium and apparatus performing perspective correction
CN109840912B (zh) 一种图像中异常像素的修正方法及计算设备
CN109697748B (zh) 模型压缩处理方法、模型贴图处理方法装置、存储介质
CN106875328B (zh) 图像处理方法和装置
JP2019040229A (ja) 画像処理装置、画像処理方法及びプログラム
JPH07182537A (ja) 図形描画装置および図形描画方法
CN111080544A (zh) 基于图像的人脸畸变校正方法、装置及电子设备
EP3175613B1 (en) Projection apparatus, image processing apparatus, and image processing method
CN110140148B (zh) 在从多个相机得到的图像中对接缝进行多频带混合的方法和装置
US9230305B2 (en) Summed area computation using ripmap of partial sums
US10121253B2 (en) Method and apparatus for modeling target object to represent smooth silhouette
CN115127481A (zh) 条纹投影3d测量方法、终端设备及计算机可读存储介质
CN111091083B (zh) 基于图像的人脸尺度计算方法、装置及电子设备
CN110942522B (zh) 一种用于模型间重叠判定的处理方法及装置
CN110704561B (zh) 一种地图贴边方法、终端装置及存储介质
US20210012459A1 (en) Image processing method and apparatus
CN110415351B (zh) 基于单张图像构建三维网格的方法、装置和系统
JP2012230668A (ja) 画像処理装置、画像処理方法、及びプログラム
CN111768353A (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
GR01 Patent grant
GR01 Patent grant