掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请实施例涉及模型渲染技术领域,特别涉及一种纹理压缩方法、装置、设备及存储介质。

背景技术

纹理(texture)是一种用于描述模型表面外观的图像。通过纹理像素与网格之间的UV坐标映射关系将纹理映射在模型表面,使模型表面效果更加真实且具有更多细节。

在开发三维应用过程中,开发人员需要为三维模型设置对应的纹理以及UV图,相应的,三维应用在运行过程中,终端需要加载大量纹理。加载大数据量的纹理时,终端需要面临网络传输速度、渲染算法、GPU带宽以及内容占用等诸多问题,因此如何在保证模型显示效果的前提下,对纹理进行压缩,以降低纹理的数据量成为目前急需解决的问题。

发明内容

本申请实施例提供了一种纹理压缩方法、装置、设备及存储介质。所述技术方案如下:

一方面,本申请实施例提供了一种纹理压缩方法,所述方法包括:

获取原始三维模型的原始纹理以及原始UV图;

对所述原始纹理中的前景区域进行重复内容识别,得到重复前景内容;

对所述原始UV图中所述重复前景内容对应的UV区域进行压缩,得到第一中间UV图;

在所述第一中间UV图的基础上,对所述原始纹理中背景区域对应的UV区域进行压缩,得到第二中间UV图;

基于所述第二中间UV图对原始纹理进行纹理压缩,得到目标纹理,所述目标纹理的分辨率低于所述原始纹理的分辨率。

另一方面,本申请实施例提供了一种纹理压缩装置,所述装置包括:

获取模块,用于获取原始三维模型的原始纹理以及原始UV图;

前景压缩模块,用于对所述原始纹理中的前景区域进行重复内容识别,得到重复前景内容;对所述原始UV图中所述重复前景内容对应的UV区域进行压缩,得到第一中间UV图;

背景压缩模块,用于在所述第一中间UV图的基础上,对所述原始纹理中背景区域对应的UV区域进行压缩,得到第二中间UV图;

纹理压缩模块,用于基于所述第二中间UV图对原始纹理进行纹理压缩,得到目标纹理,所述目标纹理的分辨率低于所述原始纹理的分辨率。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述方面所述的纹理压缩方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述方面所述的纹理压缩方法。

另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品或计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的纹理压缩方法。

本申请实施例中,通过区分原始纹理中的前景区域以及背景区域,针对前景区域中的重复前景内容对原始UV图进行压缩,并进一步针对背景区域对前景压缩得到的第一中间UV图进行二次压缩,得到第二中间UV图,最终基于第二中间UV图对原始纹理进行纹理压缩得到具有更低分辨率的目标纹理;针对重复前景内容进行前景压缩并基于背景区域进行背景压缩,能够在保证模型显示效果的前提下,减少目标纹理中的冗余前景内容以及冗余背景内容,有助于降低纹理的数据量,进而提高纹理应用过程中的性能。

附图说明

图1示出了本申请一个示例性实施例提供的纹理压缩方法的流程图;

图2是本申请一个示例性实施例示出的纹理压缩过程的实施示意图;

图3是本申请一个示例性实施例示出的前景压缩过程的流程图;

图4是本申请一个示例性实施例示出的前景内容识别过程的实施示意图;

图5是本申请一个示例性实施例示出的纹理膨胀过程的实施示意图;

图6是本申请一个示例性实施例示出的网格重建过程的实施示意图;

图7是本申请一个示例性实施例示出的背景压缩过程的流程图;

图8是本申请一个示例性实施例示出的背景压缩过程的实施示意图;

图9是本申请一个示例性实施例示出的纹理压缩过程的流程图;

图10是本申请一个示例性实施例示出的不同采样方案的效果对比图;

图11是本申请一个示例性实施例示出的纹理压缩效果的对比图;

图12是本申请一个示例性实施例示出的不同纹理压缩方案的效果图;

图13是本申请另一个示例性实施例提供的纹理压缩装置的结构框图;

图14示出了本申请一个示例性实施例提供的计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

为了方便理解,下面首先对本申请实施例中涉及的名词进行说明。

UV坐标:一种用于描述三维模型表面纹理映射的二维坐标系统。它是一种将二维纹理映射到三维模型表面的方法,可以使纹理正确地贴在模型表面上,从而实现更加逼真的渲染效果。UV坐标通常由两个浮点数表示,分别表示纹理中的横向和纵向坐标。这些坐标通常被规范化为0到1的范围,其中,(0,0)表示纹理图像的左下角,(1,1)表示纹理图像的右上角。在三维模型中,每个顶点都有一个对应的UV坐标,用于确定该顶点在纹理中的位置。

纹理图集(texture atlas)&UV图集(UV atlas):纹理图集是一种将多个纹理图像区域合并到单张纹理图像的技术,不同的子图将被映射到三维模型表面的不同区域。UV图集是一种将多个UV网格区域合并到单张UV图像的技术,不同的子图对应三维模型表面的不同区域。

前景(foreground)区域&背景(background)区域:本申请实施例中的前景区域指纹理中包含显著特征(Salient Feature)的区域,而背景区域则为纹理中前景区域以外的区域。其中,显著特征区域可以是纹理中跨越多个三角形网格区域,且具有语义的结构区域。

纹理烘焙(texture baking):指将3D网格的几何特征保存到纹理文件的过程。本申请实施例中,采用可微分渲染(differentiable rendering)技术进行纹理烘焙。

本申请实施例提供的纹理压缩方法可以实现对三维模型纹理的自动化有损压缩。在一种可能的应用场景中,开发人员完成三维模型对应纹理以及UV图绘制后,可以采用本申请实施例提供的方案先对UV图进行前景以及背景压缩,然后基于压缩得到的UV图对纹理进行压缩,得到目标纹理。其中,经过压缩处理后的UV图以及纹理可以采用UV图集以及纹理图集的形式,且压缩后纹理的分辨率小于压缩前的分辨率。

在一些实施例中,经过压缩处理的UV图和纹理可以应用于具有三维模型渲染需求的应用程序,比如游戏应用程序。游戏应用程序运行过程中,通过加载三维模型对应的UV图以及纹理,即可将纹理映射到三维模型表面。由于压缩后UV图以及纹理的数据量明显降低,因此能够提高应用程序的三维模型渲染速度以及渲染性能。

在一种可能的实施方式中,本申请实施例提供的方法可以实现成为自动化纹理压缩程序并安装在计算机设备中,将三维模型对应的原始UV图以及原始纹理输入该程序后,即可得到程序输出的目标UV图以及目标纹理。其中,该计算机设备可以为个人计算机、工作站、服务器等等,本申请实施例并不对此进行限定。

图1示出了本申请一个示例性实施例提供的纹理压缩方法的流程图。本实施例以该方法用于计算机设备为例进行说明,该方法包括如下步骤。

步骤101,获取原始三维模型的原始纹理以及原始UV图。

在一些实施例中,原始纹理和原始UV图可以采用图集的形式,即原始三维模型不同UV网格区域或纹理区域被合并在同一张UV图或纹理中。示意性的,如图2所示,原始三维模型21(行李箱模型)具有原始纹理22以及原始UV图23。

步骤102,对原始纹理中的前景区域进行重复内容识别,得到重复前景内容。

本申请实施例中,前景区域指具有显著特征的区域。如图2所示,原始纹理22中的前景区域包括行李箱表面图案。

在一种可能的实施方式中,计算机设备对原始纹理进行前景区域识别,确定位于前景区域的前景内容,然后对前景内容进行重复内容识别,得到重复前景内容。如图2所示,前景区域中的重复前景内容为重复的行李箱表面图案。

步骤103,对原始UV图中重复前景内容对应的UV区域进行压缩,得到第一中间UV图。

为了方便后续对重复前景内容对应的纹理进行压缩,计算机设备确定原始UV图中重复前景内容对应的UV区域,并对该UV区域进行压缩,得到第一中间UV图,其中,第一中间UV图与原始UV图的尺寸一致。

在一些实施例中,对于同一重复前景内容,第一中间UV图中仅保留一处该重复前景内容对应的UV网格,其他处重复前景内容对应的UV网格被去除。

在一些实施例中,为了保证后续重复前景内容能够正常渲染,同一重复前景内容对应的原始UV区域被映射到单个UV区域,该单个UV区域即为第一中间UV图中保留的重复前景内容对应的UV区域。

示意性的,如图2所示,位于前景区域的重复前景内容中包含三处三角形图案241,对进行原始UV图23进行前景区域压缩后,得到的第一中间UV图24中仅包含一处三角形图案241对应的UV网格(图2中的灰色三角区域),其余两处三角形图案241对应的UV网格被去除(图2中的白色三角区域)。

步骤104,在第一中间UV图的基础上,对原始纹理中背景区域对应的UV区域进行压缩,得到第二中间UV图。

与前景区域相对的,背景区域指不具有显著特征的区域。示意性的,如图2所示,原始纹理22中的背景区域包括行李箱图案以外的背景色区域。

在一种可能的实施方式中,计算机设备将原始纹理中前景区域以外的区域确定为背景区域,并确定第一中间UV图中该背景区域对应的UV区域。

由于背景区域的颜色变化通常较小,因此计算机设备可以对具有相同颜色的背景内容进行压缩。在一种可能的实施方式中,计算机设备对第一中间UV图中,具有相同颜色的背景内容对应的UV网格进行压缩,得到第二中间UV图,其中,第二中间UV图与第一中间UV图的尺寸一致。

在一些实施例中,对于具有相同颜色冗余背景内容,第二中间UV图中仅保留一处该冗余背景内容对应的UV网格,其他处冗余前景内容对应的UV网格被去除。

在一些实施例中,为了保证后续冗余背景内容能够正常渲染,具有相同颜色的冗余背景内容对应的原始UV区域被映射到单个UV区域,该单个UV区域可以是第二中间UV图中的三角形网格区域。

示意性的,如图2所示,由于行李箱的背景色较为统一,因此对第一中间UV图24进行背景压缩后,得到的第二中间UV图25中大量背景区域对应的UV网格被去除。

步骤105,基于第二中间UV图对原始纹理进行纹理压缩,得到目标纹理,目标纹理的分辨率低于原始纹理的分辨率。

完成UV图压缩后,计算机设备进一步对原始纹理进行纹理压缩。由于经过前景和背景压缩后的第二中间UV图相较于原始UV图减少了大量UV网格,因此基于第二中间UV图对原始纹理进行压缩时,能够去除大量重复前景内容以及冗余背景内容,使最终压缩得到的目标纹理的分辨率低于原始纹理的分辨率。

在一些实施例中,进行纹理压缩时,仅第二中间UV图中UV区域对应的纹理保留在目标纹理中。

在一种可能的实施方式中,计算机设备首先对第二中间UV图进行处理,得到目标UV图,其中,该目标UV图的尺寸小于原始UV图的尺寸。进一步的,计算机设备基于目标UV图对原始纹理进行纹理压缩,得到与目标UV图尺寸一致的目标纹理。

示意性的,如图2所示,计算机设备基于第二中间UV图25生成目标UV图26,并基于目标UV图26对原始纹理22进行纹理压缩,得到目标纹理27。显然,经过压缩后,纹理的分辨率明显降低。

在一种可能的实施方式中,利用上述经过压缩的目标纹理以及目标UV图进行模型渲染时,计算机设备基于目标UV图所指示的映射关系,将目标纹理中对应的纹理内容映射到模型表面,其中,对于目标纹理中重复前景内容对应的纹理内容,该纹理内容会被映射到模型表面多处前景区域,对于目标纹理中冗余背景内容对应的纹理内容,该纹理内容同样会被映射到模型表面多处背景区域。

综上所述,本申请实施例中,通过区分原始纹理中的前景区域以及背景区域,针对前景区域中的重复前景内容对原始UV图进行压缩,并进一步针对背景区域对前景压缩得到的第一中间UV图进行二次压缩,得到第二中间UV图,最终基于第二中间UV图对原始纹理进行纹理压缩得到具有更低分辨率的目标纹理;针对重复前景内容进行前景压缩并基于背景区域进行背景压缩,能够在保证模型显示效果的前提下,减少目标纹理中的冗余前景内容以及冗余背景内容,有助于降低纹理的数据量,进而提高纹理应用过程中的性能。

下面将采用示例性的实施例分别对前景压缩过程、背景压缩过程以及纹理压缩过程进行说明。

图3示出了本申请一个示例性实施例提供的前景压缩过程的流程图。该过程可以包括如下步骤。

步骤301,对原始纹理进行前景区域分割,得到前景区域中包含的前景内容。

在进行前景压缩前,计算机设备首先从原始纹理中分割出位于前景区域的前景内容,后续即从该前景内容中识别出重复前景内容。

关于进行前景区域分割的方式,在一种可能的实施方式中,计算机设备通过图像分割模型,对原始纹理进行前景区域分割,得到前景区域中的预测前景内容。

可选的,该图像分割模型可以是SAM(Segment Anything Model,分割一切模型)(一种视觉分割基础模型)或其他基于机器视觉的分割模型,本申请实施例对此不作限定。

在一些实施例中,计算机设备将图像分割模型输出的预测前景内容确定为前景内容。

在另一些实施例中,为了提高识别出的前景内容的准确性,需要保证确定的前景内容有一个合适的尺寸,且具有较大的颜色差异。计算机设备确定预测前景内容占原始纹理的比例,并且预测前景内容的色彩种类。在比例属于目标比例范围,且色彩种类大于种类阈值的情况下,计算机设备将该预测前景内容确定为前景内容。

示意性的,在对于预测前景内容M

可选的,对于识别出的前景内容,计算机设备为每一个前景内容生成对应的分割掩膜(segmentation mask),该分割掩膜用于指示显著前景特征中的所有像素点。

示意性的,如图4所示,计算机设备将原始纹理41输入SAM模型,得到SAM模型输出的预测前景内容。其中,由于第一预测前景内容42的色彩种类过少,因此第一预测前景内容42将不会被作为前景内容;由于第二预测前景内容42占原始纹理41的比例过大,因此第二预测前景内容43将不会被作为前景内容。经过筛选后,最终得到前景内容44及各个前景内容对应的分割掩膜45。

UV图的边界区域的纹理内容会存在不连续的问题,可能会导致前景内容部分缺失,影响前景内容识别完整性,进而影响后续重复前景内容的识别以及压缩。

示意性的,如图5所示,三维模型51对应的原始纹理52在UV边界521处存在不连续的问题,导致第一边缘区域522以及第二边缘区域523内的纹理图案(骨头)不完整。若直接基于原始纹理52进行重复前景内容识别,会导致这两处图案被识别为非重复前景内容。

因此,为了提高后续重复前景内容识别准确性,在一种可能的实施方式中,在进行前景区域分割前,计算机设备基于原始UV图的边界信息,对原始纹理进行边缘膨胀处理,其中,该边缘膨胀处理用于在原始纹理的纹理边缘添加跨UV边界的纹理。

在一些实施例中,计算机设备基于原始UV图的边界信息,确定原始纹理中位于同一边界两侧的非连续纹理,然后分别在两侧非连续纹理上进行像素点采样,并将采样得到的像素点添加至对侧非连续纹理的纹理边缘,完成对原始纹理的边缘膨胀处理。

示意性的,如图5所示,分别对第一边缘区域522和第二边缘区域523进行边缘膨胀后,边缘区域内的纹理图案完整。

后续过程中,计算机设备对经过边缘膨胀的原始纹理进行前景区域分割,得到位于前景区域内的前景内容。

步骤302,对前景内容进行配准,得到不同前景内容之间的目标仿射变换关系,目标仿射变换关系下不同前景内容之间的色差最小。

由于重复前景内容在显示角度或者尺寸存在差异,因此在识别前景内容中的重复内容前,需要先对前景内容进行配准,以此确定不同前景内容之间的仿射变换关系。

在一种可能的实施方式中,对于前景内容集合中的任意两个前景内容,计算机设备采用KLT(Kanade-Lucas-Tomasi,稀疏光流)匹配。其中,KLT匹配的目标为计算两个前景内容之间的目标仿射变化关系,使经过仿射变换前后纹素之间的色差最小。

在一个示意性的例子中,对于一组待配准的前景内容M

其中,x表示前景内容中的纹素,T

当然,除了使用KLT算法确定前景内容之间的目标仿射变换关系外,计算机设备还可以通过其他图像配准算法确定目标仿射变换关系,本申请实施例对此不作限定。

步骤303,基于目标仿射变换关系确定前景内容中的重复前景内容。

确定出不同前景内容之间的目标仿射变换关系后,计算机设备进一步基于目标仿射变换关系确定前景内容在该目标仿射变换关系下的最小色差,并基于该最小色差确定两者是否为重复前景内容。

由于不同前景内容在目标仿射变换关系下的最小色差与前景内容所包含像素的数量相关,因此在一种可能的实施方式中,对于第一前景内容和第二前景内容,在第一前景内容与第二前景内容在目标仿射变换关系下的色差小于色差阈值的情况下,计算机设备确定第一前景内容和第二前景内容互为重复前景内容,其中,色差阈值与第一前景内容中像素数量呈正相关关系。

在一个示意性的例子中,对于一组前景内容M

步骤304,对原始UV图中重复前景内容对应的UV区域进行UV网格重建,其中,重建后重复前景内容具有相同的UV网格。

对于成功配准的重复前景内容,计算机设备需要对重复前景内容对应的局部网格进行重建,使UV图中重复前景内容对应的UV网格具有相同的网络拓扑。

可选的,UV网格的重建分为内部UV区域的网格重建以及局部UV区域的网格重建。其中,内部UV区域指位于重复前景内容内部的UV区域,而局部UV区域则是指包含重复前景内容的最小外部UV区域。

在一种可能的实施方中,本步骤可以包括如下子步骤:

1、对原始UV图中重复前景内容对应的内部UV区域进行UV网格重建,得到内部重建UV网格。

关于内部UV网格区域重建的方式,在一些实施例中,计算机设备首先对重复前景内容进行膨胀处理(可以通过对分割掩膜进行边缘膨胀处理),然后在膨胀后的重复前景内容的边缘以及内部进行采样,得到若干边缘采样点以及内部采样点。

其中,内部采样点为原始UV图中位于膨胀后重复前景内容内部的UV网格点,外部采样点为按照采样间隔在膨胀后重复前景内容的边缘采样得到的点,该采样间隔与重复前景内容内部的三角形网格的网格长度相关。比如,该采样间隔为三角形网格的平均网格长度的二分之一。

进一步的,计算机设备基于内部采样点和外部采样点进行内部UV区域的UV网格重建,得到内部重建UV网格。

在一些实施例中,计算机设备基于内部采样点和外部采样点,采用CDT(Constrained Delaunay Triangulation,受约束的三角剖分)算法进行UV网格重建。

示意性的,如图6所示,对于重复前景内容

2、在内部重建UV网格的基础上,对原始UV图中重复前景内容对应的局部UV区域进行UV网格重建,得到外部重建UV网格,重复前景内容位于局部UV区域的内部。

关于局部UV网格区域重建的方式,在一些实施例中,计算机设备确定膨胀后重复前景内容对应的局部UV区域,并基于局部UV区域上的UV网格点以及采样得到的位于重复前景内容边缘的外部采样点进行外部UV网格重建,得到外部重建UV网格。

在一些实施例中,计算机设备基于局部UV区域上的UV网格点和外部采样点,采用CDT算法进行UV网格重建。

示意性的,如图6所示,计算机设备确定包含膨胀后重复前景内容的局部UV区域(图6中的(c)),并基于局部UV区域的UV网格点以及外部采样点,通过CDT算法进行内部网格重建(图6中的(e)),得到外部重建UV网格

需要说明的是,对于第一重复前景内容和第二重复前景内容,通过上述步骤的对第一重复前景内容进行UV网格重建后,对于第二重复前景内容,计算机设备可以基于重复前景内容之间的目标仿射变换关系,对重建完成的内部重建UV网格进行仿射变换,并将仿射变换后的UV网格替换第二重复前景内容的原始UV网格,进一步的,计算机设备基于替换后的UV网格以及第二重复前景内容对应局部UV区域的UV网格点,对第二重复前景内容对应的局部UV区域进行UV网格重建,得到第二重复前景内容的外部重建UV网格。

示意性的,如图6所示,对于重复前景内容

步骤305,对重复前景内容对应的重建UV网格进行压缩,得到第一中间UV图。

通过上述步骤对重复前景内容进行UV网格重建后,由于同一重复前景内容对应相同的内部UV网格,因此在一种可能的压缩方式,计算机设备对重复前景内容对应的内部重建UV网格进行去重,得到第一中间UV图,其中,重复前景内容共享第一中间UV图中的同一内部重建UV网格,即后续进行渲染时,同一重复前景内容基于同一内部重建UV网络将纹理中的重复纹理内容渲染至三维模型表面。

本实施例中,计算机设备利用图像分割模型对原始纹理进行前景区域分割,并基于分割得到的预测前景内容占原始纹理的比例,以及预测前景内容的色彩种类,筛选出最终的前景内容,实现了前景内容的自动化分割,并保证分割出尺寸合理且色彩丰富的前景内容,提高了前景内容分割的准确性。

此外,在进行前景区域分割前,通过对原始纹理进行边缘膨胀处理,消除UV边界处纹理不连续的问题,提高前景区域分割时得到的前景内容的完整度,进而提高后续重复前景内容的识别准确性。

图7示出了本申请一个示例性实施例提供的背景压缩过程的流程图。该过程可以包括如下步骤。

步骤701,从第一中间UV图中,确定出位于原始纹理中背景区域且具有恒定颜色的三角形。

与前景区域中的前景内容可以跨越多个三角形,且具有多种色彩不同,背景区域中的背景内容通常由恒定颜色区域组成。因此可以在三角形元素级别对背景区域进行网格压缩。

在一种可能的实施方式中,计算机设备将前景压缩过程中确定出的前景区域以外的区域确定为背景区域,该背景区域由三角形构成,且每个三角形均占对应一个有一组纹素组成的纹理区域。

对于各个纹理区域,计算机设备在HSV(Hue Saturation Value,色相-饱和度、亮度)颜色空间计算该纹理区域的颜色均值和方差,并对颜色方差小于阈值的三角形进行压缩,而颜色方差大于阈值的三角形则不进行压缩。

进一步的,当色相方差小于第一方差阈值,且饱和度方差小于第二方差阈值,且亮度方差小于第三方差阈值时,计算机设备确定该三角形对应的纹理区域具有恒定颜色。

在一个示意性的例子中,满足以下条件则被认为具有恒定颜色:σ(H)<100ε∧σ(S)<0.5ε∧σ(V)<3ε,其中σ(·)是颜色通道的方差,H∈[0,360],S∈[0,1],V∈[0,1],ε为可控参数。

当然,计算机设备也可以在其他颜色空间下确定背景区域中颜色恒定的三角形,本申请实施例并不对此构成限定。

步骤702,对确定出的三角形进行聚类,得到三角形簇,其中,同一三角形簇中三角形的颜色差异大于不同三角形类簇之间三角形的颜色差异。

对于识别出的颜色恒定的三角形,计算机设备基于颜色对三角形进行聚类,将具有相同(或相似)颜色的三角形聚类到同一类簇中,得到若干个对应不同颜色的三角形类簇。聚类后,背景区域M

在一种可能的实施方式中,计算机设备可以在HSV颜色空间对颜色恒定的三角形进行mean-shift(均值漂移)聚类,本申请实施例并不对聚类的具体算法进行限定。

步骤703,对三角形簇中三角形对应的UV网格进行压缩,得到第二中间UV图。

对于每一个聚类得到的三角形簇,我们认为其中的各个三角形具有相同颜色。与前景压缩类似的,可以将该三角形簇中的所有三角形指向一个具有代表性的三角形,从而实现对背景UV网格的压缩。在一种可能的实施方式中,该过程可以包括如下子步骤:

1、确定三角形簇中的代表三角形。

在一些实施例中,该代表三角形可以为三角形簇中的任意三角形。

与跨越多个三角形的前景区域不同,背景区域的三角形可以随机分布在纹理空间中,若将每个三角形均视作单独的UV补丁,则会创建出许多切割,而切割时额外引入的接缝伪影会影响内存占用。为了减少不必要的切割,当三角形簇中的三角形连接形成一个UV补丁时,则无需对UV补丁进行切割。并且,如果背景区域的三角形连接到前景区域(即三角形与前景内容的相连),连接边也无需进行切割。

在另一些实施例中,基于约束条件,计算机设备通过贪心算法(greedyalgorithm)将三角形簇中对应最短切割路径的三角形确定为代表三角形。其中,该约束规则包括不切割与前景区域相连的三角形,以及不切割三角形簇中连接形成补丁的三角形。

示意性的,如图8所示,计算机设备将纹理区域(a)分割为前景区域

2、从第一中间UV图中去除三角形簇中代表三角形以外的三角形对应的UV网格,得到第二中间UV图,其中,去除的三角形共享代表三角形对应的UV网格。

计算机设备从第一中间UV图中去除三角形簇中代表三角形以外的三角形对应的UV网格,实现对UV图的背景压缩。其中,三角形簇中被去除的三角形与代表三角形共享UV网格,即后续进行渲染时,同一三角形簇中各个三角形均基于代表三角形对应的UV网格将纹理中的纹理区域渲染至三维模型表面。

需要说明的是,在三角形簇中的三角形形成多个不连通区域的情况下,对小面积的不连通区域进行压缩并不会显著降低压缩率,因此,在一种可能的实施方式中,在三角形簇中的三角形形成多个不连通区域,且不连通区域的面积小于面积阈值的情况下,计算机设备不对该不连通区域进行压缩。

在一个示意性的例子中,当不连通区域包含的三角形数量小于5个时,计算机设备则不会对该不连通区域进行压缩。

本实施例中,计算机设备通过识别背景区域中颜色恒定的三角形,并基于颜色对三角形聚类,从而从三角形簇中选取代表三角形,进而基于代表三角形进行背景网格压缩,在保证背景纹理渲染效果的前提下,有助于降低纹理的数据量。

此外,计算机设备以最短切割路径为目标,通过贪心算法选取代表三角形,有助于减少分割,并降低切割时额外引入的接缝伪影所造成的影响。

图9示出了本申请一个示例性实施例提供的纹理压缩过程的流程图。该过程可以包括如下步骤。

步骤901,对第二中间UV图进行分割打包,得到目标UV图。

由于第二中间UV图中包含大量的空隙,因此计算机设备需要对第二中间UV图进行分割打包,以消除其中的空隙,得到分辨率更低,且更加紧凑的目标UV图。

在一种可能的实施方式中,计算机设备采用标准UV图集生成管线(XAtlas)生成目标UV图,其中,该标准UV图集生成管线中包含切割、参数化以及打包流程。由于我们的目标是尽量还原压缩前的视觉外观,因此计算机设备将跳过标准UV图集生成管线的参数化过程,避免UV图失真,即计算机设备在UV打包过程中仅进行刚性变换。

步骤902,基于目标UV图对原始纹理进行纹理压缩,得到目标纹理,目标纹理与目标UV图的尺寸一致。

在一种可能的实施方式中,计算机设备可以基于目标UV图对原始纹理进行纹理抽取,并通过纹理插值算法填充纹理间隙,从而得到与目标UV图尺寸一致的目标纹理。

然而,由于在进行UV网格压缩时沿边界切割了网格,因此简单的纹理插值算法可能会导致目标UV图中UV边界出现不连续颜色,进而影响最终的渲染效果。

如图10中的(a)所示,直接通过纹理插值得到目标纹理,并基于该目标纹理进行模型表面纹理渲染时,UV边界存在大量黑边(接缝伪影)。其中,以PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)和MS-SSIM(Multi-Scale Structural SIMilarity,多尺度结构相似性指数)作为评估指标,直接通过纹理插值得到目标纹理并进行模型表面纹理渲染,渲染效果的PSNR为28.47,MS-SSIM为0.84。

为了提高纹理压缩质量,进而提高后续的渲染效果,在另一种可能的实施方式中,计算机设备采用可微分渲染方式进行全局纹理烘焙,以消除上述问题。

在一种可能的实施方式中,本步骤可以包括如下子步骤:

1、基于目标UV图对原始纹理进行纹理抽取,得到第一中间纹理,第一中间纹理的尺寸与目标UV图的尺寸一致。

首先,计算机设备基于目标UV图中UV网格对应的UV坐标,从原始纹理中抽取对应纹理区域的纹理,从而基于抽取到的纹理生成第一中间纹理。

2、通过纹理插值算法对第一中间纹理进行填充,得到第二中间纹理。

由于第一中间纹理中不同纹理区域之间存在空隙,因此计算机设备可以通过纹理插值算法对第一中间纹理中的空隙区域进行填充,得到第二中间纹理。

3、通过可微分渲染方式对第二中间纹理进行全局纹理烘焙,得到目标纹理。

在一种可能的实施方式中,计算机设备从纹理插值后得到的第二中间纹理开始,执行一定次数的随机梯度下降迭代以优化压缩后的纹理。其中,每一轮迭代的过程可以包括如下步骤:

一、对于全局纹理烘焙过程中的每一轮迭代过程,基于随机选取的三角形的法线方向以及目标采样距离确定采样位置。

在一些实施例中,计算机设备在每轮迭代时,随机选取一个相机位置作为采样位置,从而在该采样位置拍摄渲染得到的原始三维模型以及压缩三维模型,进而基于拍摄图像的像素差异对纹理进行优化。

关于选取采样位置的方式,在一种可能的实施方式中,计算机设备可以在一个球面上随机确定采样位置。

在另一种可能的实施方式中,为了进一步提高优化效果,计算机设备在每轮迭代时,从三维模型上随机选取一个三角形,并基于三角形的法线方向以及目标采样距离(d

二、在采样位置拍摄渲染得到的压缩三维模型以及原始三维模型,压缩三维模型基于上一轮迭代优化后的纹理以及目标UV图渲染得到。

为了使压缩后的三维模型的显示效果趋向于原始三维模型的显示效果,每轮迭代过程中,计算机设备都会基于上一轮迭代优化后的纹理以及目标UV图渲染压缩三维模型,以及基于原始纹理和原始UV图渲染原始三维模型,并在采样位置分别拍摄压缩三维模型和原始三维模型,得到同一采样位置处的压缩模型图像和原始模型图像。

三、基于拍摄得到的图像之间的像素距离,对上一轮迭代优化后的纹理进行优化。

在一种可能的实施方式中,基于拍摄得到的图像,计算机设备计算两者之间的L1像素距离作为目标函数,从而利用该目标函数对纹理进行随机梯度下降优化,得到本轮迭代优化后的纹理。

四、在满足迭代结束条件的情况下,将上一轮迭代优化后的纹理确定为目标纹理。

可选的,该迭代结束条件可以是迭代轮数条件(比如5000轮)或者是收敛条件。当满足迭代结束条件时,计算机设备停止迭代优化,并将上一轮优化的纹理确定为目标纹理。

示意性的,如图10中的(b)所示,采用球面随机采样的方式确定采样位置,并经过5000轮迭代优化后,渲染效果的PSNR为34.07,MS-SSIM为0.91,如图10中的(c)所示,采用本申请实施例提供的采样方式确定采样位置,并经过5000轮迭代优化后,渲染效果的PSNR提升至39.07,MS-SSIM提升至0.96。

本实施例中,计算机设备在每轮迭代优化过程中,基于随机选取的三角形的法线方向以及目标采样距离确定采样位置,使每次采样时尽可能多的捕捉纹理细节,以此提高纹理的细节优化效果,使压缩三维模型的显示效果趋近原始三维模型的显示效果。

为了验证本申请实施例提供的方案的纹理压缩效果,在一个包含100个扫描模型的数据集上进行测试,本申请实施例提供的方法可以将原始模型的纹理平均压缩81.80%,同时保持很高的视觉相似性,与原始模型渲染结果的比较平均的PSNR以及SSIM指标为40.68以及0.97。同时压缩结果可以直接应用于现代渲染管线而不需要进行额外的编解码操作。

对于一个复杂场景中的所有3D模型,原始纹理如图11中的(a)所示,其分辨率为4096×4096。使用本申请实施例提供的方案压缩每个模型的纹理,得到压缩后的纹理如图11中的(b)所示,该压缩后的纹理的分辨率降为1664×1664。

使用Unity引擎渲染场景,通过第一放大视图1101(对应人形玩偶区域)、第二放大视图1102(对应杯子区域)以及第三放大视图1103(对应玩具狗区域)来突出边缘视觉修改。与输入相比,实现了83.5%的纹理压缩率,同时保留了视觉外观,PSNR和MS-SSIM指标分别为43.19和0.987。

此外,如图12所示,与直接对纹理进行降采样相比可以明显看出,对场景a中抱枕1201的纹理进行降采样后,渲染出的抱枕表面的网格模糊,而采用本申请实施例提供的方案进行纹理压缩后,渲染出的抱枕表面的网格边界清晰;对场景b中瓶子1202的纹理进行降采样后,渲染出的瓶子表面的图案模糊,大量图案细节确实,而采用本申请实施例提供的方案进行纹理压缩后,渲染出的瓶子表面的图案清晰,且保留了更多的图案细节。

可见,采用本申请实施例提供的纹理压缩方案能够保持纹理的视觉细节,而不会导致内容模糊。

图13是本申请一个示例性实施例提供的纹理压缩装置的结构框图,该装置包括:

获取模块1301,用于获取原始三维模型的原始纹理以及原始UV图;

前景压缩模块1302,用于对所述原始纹理中的前景区域进行重复内容识别,得到重复前景内容;对所述原始UV图中所述重复前景内容对应的UV区域进行压缩,得到第一中间UV图;

背景压缩模块1303,用于在所述第一中间UV图的基础上,对所述原始纹理中背景区域对应的UV区域进行压缩,得到第二中间UV图;

纹理压缩模块1304,用于基于所述第二中间UV图对原始纹理进行纹理压缩,得到目标纹理,所述目标纹理的分辨率低于所述原始纹理的分辨率。

可选的,所述前景压缩模块1302,用于:

对所述原始纹理进行前景区域分割,得到所述前景区域中包含的前景内容;

对所述前景内容进行配准,得到不同前景内容之间的目标仿射变换关系,所述目标仿射变换关系下不同前景内容之间的色差最小;

基于所述目标仿射变换关系确定所述前景内容中的所述重复前景内容。

可选的,所述前景压缩模块1302,用于:

对于第一前景内容和第二前景内容,在所述第一前景内容与所述第二前景内容在所述目标仿射变换关系下的色差小于色差阈值的情况下,确定所述第一前景内容和所述第二前景内容互为所述重复前景内容,所述色差阈值与所述第一前景内容中像素数量呈正相关关系。

可选的,所述前景压缩模块1302,用于:

通过图像分割模型对所述原始纹理进行前景区域分割,得到所述前景区域中的预测前景内容;

在所述预测前景内容占所述原始纹理的比例属于目标比例范围,且所述预测前景内容的色彩种类大于种类阈值的情况下,将所述预测前景内容确定为所述前景内容。

可选的,所述前景压缩模块1302,还用于:

基于所述原始UV图的边界信息,对所述原始纹理进行边缘膨胀处理,所述边缘膨胀处理用于在所述原始纹理的纹理边缘添加跨UV边界的纹理。

可选的,所述前景压缩模块1302,用于:

对所述原始UV图中所述重复前景内容对应的UV区域进行UV网格重建,其中,重建后所述重复前景内容具有相同的UV网格;

对所述重复前景内容对应的重建UV网格进行压缩,得到所述第一中间UV图。

可选的,所述前景压缩模块1302,用于:

对所述原始UV图中所述重复前景内容对应的内部UV区域进行UV网格重建,得到内部重建UV网格;

在所述内部重建UV网格的基础上,对所述原始UV图中所述重复前景内容对应的局部UV区域进行UV网格重建,得到外部重建UV网格,所述重复前景内容位于所述局部UV区域的内部;

所述对所述重复前景内容对应的重建UV网格进行压缩,得到所述第一中间UV图,包括:

对所述重复前景内容对应的所述内部重建UV网格进行去重,得到所述第一中间UV图,其中,所述重复前景内容共享所述第一中间UV图中的同一内部重建UV网格。

可选的,所述背景压缩模块1303,用于:

从所述第一中间UV图中,确定出位于所述原始纹理中背景区域且具有恒定颜色的三角形;

对确定出的三角形进行聚类,得到三角形簇,其中,同一三角形簇中三角形的颜色差异大于不同三角形类簇之间三角形的颜色差异;

对所述三角形簇中三角形对应的UV网格进行压缩,得到所述第二中间UV图。

可选的,所述背景压缩模块1303,用于:

确定所述三角形簇中的代表三角形;

从所述第一中间UV图中去除所述三角形簇中所述代表三角形以外的三角形对应的UV网格,得到所述第二中间UV图,其中,去除的三角形共享所述代表三角形对应的UV网格。

可选的,所述背景压缩模块1303,用于:

基于约束规则,通过贪心算法将所述三角形簇中对应最短切割路径的三角形确定为所述代表三角形,所述约束规则包括不切割与所述前景区域相连的三角形,以及不切割所述三角形簇中连接形成补丁的三角形。

可选的,所述背景压缩模块1303,还用于:

在所述三角形簇中的三角形形成多个不连通区域,且所述不连通区域的面积小于面积阈值的情况下,不对所述不连通区域进行压缩。

可选的,所述纹理压缩模块1304,用于:

对所述第二中间UV图进行分割打包,得到目标UV图;

基于所述目标UV图对所述原始纹理进行纹理压缩,得到所述目标纹理,所述目标纹理与所述目标UV图的尺寸一致。

可选的,所述纹理压缩模块1304,用于:

基于所述目标UV图对所述原始纹理进行纹理抽取,得到第一中间纹理,所述第一中间纹理的尺寸与所述目标UV图的尺寸一致;

通过纹理插值算法对所述第一中间纹理进行填充,得到第二中间纹理;

通过可微分渲染方式对所述第二中间纹理进行全局纹理烘焙,得到所述目标纹理。

可选的,所述纹理压缩模块1304,用于:

对于全局纹理烘焙过程中的每一轮迭代过程,基于随机选取的三角形的法线方向以及目标采样距离确定采样位置;

在所述采样位置拍摄渲染得到的压缩三维模型以及所述原始三维模型,所述压缩三维模型基于上一轮迭代优化后的纹理以及所述目标UV图渲染得到;

基于拍摄得到的图像之间的像素距离,对上一轮迭代优化后的纹理进行优化;

在满足迭代结束条件的情况下,将上一轮迭代优化后的纹理确定为所述目标纹理。

综上所述,本申请实施例中,通过区分原始纹理中的前景区域以及背景区域,针对前景区域中的重复前景内容对原始UV图进行压缩,并进一步针对背景区域对前景压缩得到的第一中间UV图进行二次压缩,得到第二中间UV图,最终基于第二中间UV图对原始纹理进行纹理压缩得到具有更低分辨率的目标纹理;针对重复前景内容进行前景压缩并基于背景区域进行背景压缩,能够在保证模型显示效果的前提下,减少目标纹理中的冗余前景内容以及冗余背景内容,有助于降低纹理的数据量,进而提高纹理应用过程中的性能。

请参考图14,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1600包括中央处理单元(Central Processing Unit,CPU)1601、包括随机存取存储器1602和只读存储器1603的系统存储器1604,以及连接系统存储器1604和中央处理单元1601的系统总线1605。所述计算机设备1600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1606,和用于存储操作系统1613、应用程序1614和其他程序模块1615的大容量存储设备1607。

所述基本输入/输出系统1606包括有用于显示信息的显示器1608和用于用户输入信息的诸如鼠标、键盘之类的输入设备1609。其中所述显示器1608和输入设备1609都通过连接到系统总线1605的输入输出控制器1610连接到中央处理单元1601。所述基本输入/输出系统1606还可以包括输入输出控制器1610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1610还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1607通过连接到系统总线1605的大容量存储控制器(未示出)连接到中央处理单元1601。所述大容量存储设备1607及其相关联的计算机可读介质为计算机设备1600提供非易失性存储。也就是说,所述大容量存储设备1607可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(RAM,Random Access Memory)、只读存储器(ROM,Read Only Memory)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1604和大容量存储设备1607可以统称为存储器。

存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1601执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1601执行该一个或多个程序实现上述各个方法实施例提供的方法。

根据本申请的各种实施例,所述计算机设备1600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1600可以通过连接在所述系统总线1605上的网络接口单元1611连接到网络1612,或者说,也可以使用网络接口单元1611来连接到其他类型的网络或远程计算机系统(未示出)。

本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述实施例提供的纹理压缩方法。

可选地,该计算机可读存储介质可以包括:ROM、RAM、固态硬盘(SSD,Solid StateDrives)或光盘等。其中,RAM可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例所述的纹理压缩方法。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种后端存储设备的管理方法、装置、设备以及存储介质
  • 存储设备在线检测方法、装置、设备及可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种数据存储方法、调度装置、系统、设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 纹理压缩方法、装置、电子设备及计算机可读存储介质
  • 纹理压缩和解压方法、装置、计算机设备和存储介质
技术分类

06120116502455