CN110782516A - 一种三维模型数据的纹理合并方法及相关装置 - Google Patents
一种三维模型数据的纹理合并方法及相关装置 Download PDFInfo
- Publication number
- CN110782516A CN110782516A CN201911026022.4A CN201911026022A CN110782516A CN 110782516 A CN110782516 A CN 110782516A CN 201911026022 A CN201911026022 A CN 201911026022A CN 110782516 A CN110782516 A CN 110782516A
- Authority
- CN
- China
- Prior art keywords
- texture
- textures
- dimensional model
- model data
- redundancy
- 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
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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
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
本申请公开了一种三维模型数据的纹理合并方法,包括:根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中;根据所有所述纹理集进行纹理映射处理,得到目标三维模型数据。通过对三维模型数据进行去冗余处理,降低了三维模型数据中的数据量,提高了模型数据的处理效率,同时避免了对超出坐标范围的异常纹理打包造成纹理错误映射的问题。本申请还公开了一种三维模型数据的纹理合并装置、计算机设备以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及三维数据处理领域,特别涉及一种三维模型数据的纹理合并方法、纹理合并装置、计算机设备以及计算机可读存储介质。
背景技术
随着三维模型技术的不断发展,常用三维模型对实际的物理空间进行建模,得到对应的三维模型,并将该三维模型作为进行规划建设的关键基础信息,提升了规划模拟等流程的效率。通常得到的三维模型对其进行加工处理,以及进行展示操作,均是通过计算机完成。而三维模型相较于图像数据,增加了一个维度,带来的新数据量以指数递增。因此,在处理和展示三维模型时通常采用性能更好,硬件资源更多的计算机进行处理。
目前,随着建模技术中的细节处理方式不断提升,获取到的三维模型的规模以及精细程度得到了极大的提升。并且,当该三维模型的对象是城市时,精细的建筑物模型结构复杂,其中的三维格网被分割成小面片,造成大量极度碎片化的离散纹理,需要更多的计算机性能进行处理。可见,三维模型的精细化程度提升,虽然可以提高展示的效果,但是也会降低模型数据的加载效率,更会明显降低模型的实时渲染效率,制约大规模城市三维模型集成的应用。
因此,如何提高三维模型的加载效率以及实时渲染效率,是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种三维模型数据的纹理合并方法、纹理合并装置、计算机设备以及计算机可读存储介质,通过对三维模型数据进行去冗余处理,降低了三维模型数据中的数据量,提高了模型数据的处理效率,同时避免了对超出坐标范围的异常纹理打包造成纹理错误映射的问题。
为解决上述技术问题,本申请提供一种三维模型数据的纹理合并方法,包括:
根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;
根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中;
根据所有所述纹理集进行纹理映射处理,得到目标三维模型数据。
可选的,根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理,包括:
对所述三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理;
将所述三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理;
将所述多个去冗余异常纹理和所述多个去冗余正常纹理作为所述多个待合并纹理。
可选的,对所述三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理,包括:
将所述三维模型数据中大于纹理坐标阈值的纹理作为异常纹理;
根据纹理面片数量对所述异常纹理中小于等于预设纹理坐标范围的纹理进行纹理更新处理,得到多个已更新异常纹理;
将所述异常纹理中大于预设纹理坐标的纹理和所述多个已更新异常纹理作为所述多个去冗余异常纹理。
可选的,将所述三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理,包括:
将所述三维模型数据中小于等于纹理坐标阈值的纹理作为正常纹理;
根据纹理面片数量对所述正常纹理进行纹理更新处理,得到所述多个去冗余正常纹理。
可选的,根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中,包括:
对所述多个待合并纹理进行预处理,得到多个已处理待合并纹理;
根据降采样算法、所述剩余区域分割算法以及所述自由矩形选择算法对所述多个已处理待合并纹理中可降采样的纹理进行有损纹理合并处理,得到多个有损的纹理集;
或根据所述剩余区域分割算法和所述自由矩形选择算法对所述多个已处理待合并纹理中不可降采样的纹理进行无损纹理合并处理,得到多个无损的纹理集。
本申请还提供一种三维模型数据的纹理合并装置,包括:
纹理去冗余模块,用于根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;
纹理合并模块,用于根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中;
纹理映射模块,用于根据所有所述纹理集进行纹理映射处理,得到目标三维模型数据。
可选的,所述纹理去冗余模块,包括:
异常纹理处理单元,用于对所述三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理;
正常纹理处理单元,用于将所述三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理;
待合并纹理获取单元,用于将所述多个去冗余异常纹理和所述多个去冗余正常纹理作为所述多个待合并纹理。
可选的,所述纹理合并模块,包括:
纹理预处理单元、有损纹理合并单元或无损纹理合并单元;
其中,纹理预处理单元,用于对所述多个待合并纹理进行预处理,得到多个已处理待合并纹理;
其中,有损纹理合并单元,用于根据降采样算法、所述剩余区域分割算法以及所述自由矩形选择算法对所述多个已处理待合并纹理中可降采样的纹理进行有损纹理合并处理,得到多个有损的纹理集;
其中,无损纹理合并单元,用于根据所述剩余区域分割算法和所述自由矩形选择算法对所述多个已处理待合并纹理中不可降采样的纹理进行无损纹理合并处理,得到多个无损的纹理集。
本申请还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的纹理合并方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行实现如上所述的纹理合并方法的步骤。
本申请所提供的一种三维模型数据的纹理合并方法,包括:根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中;根据所有所述纹理集进行纹理映射处理,得到目标三维模型数据。
通过预定的纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到待合并纹理,实现将三维模型数据中不符合纹理打包条件的纹理坐标阈值的纹理数量降低,然后再根据剩余区域分割算法和自由矩阵选择算法将多个待合并纹理插入至预设尺寸的纹理集,实现将多个待合并纹理合并至纹理集中,相较于现有技术中将原生的纹理直接合并至纹理集中,去除了纹理中的部分冗余数据,减少了纹理的整体数据量,使得计算机设备在合并处理或者是加载过程中可以采用较少的数据量就完成,当数据量减少时计算机设备就可以通过更快的速度进行处理,提高了三维模型数据的加载效率以及实时渲染效率。
本申请还提供一种三维模型数据的纹理合并装置、计算机设备以及计算机可读存储介质,具有以上有益效果,在此不作赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种三维模型数据的纹理合并方法的流程图;
图2为本申请实施例所提供的一种三维模型数据的纹理合并方法的流程图;
图3为本申请实施例所提供的一种三维模型数据的纹理合并装置的结构示意图。
具体实施方式
本申请的核心是提供一种三维模型数据的纹理合并方法、纹理合并装置、计算机设备以及计算机可读存储介质,通过对三维模型数据进行去冗余处理,降低了三维模型数据中的数据量,提高了模型数据的处理效率,同时避免了对超出[0,1]范围的异常纹理打包造成纹理错误映射的问题。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,随着建模技术中的细节处理方式不断提升,获取到的三维模型的规模以及精细程度得到了极大的提升。并且,当该三维模型的对象是城市时,精细的建筑物模型结构复杂,其中的三维格网被分割成小面片,造成大量极度碎片化的离散纹理,需要更多的计算机性能进行处理。可见,三维模型的精细化程度提成,虽然可以提高展示的效果,但是也会降低模型数据的加载效率,更会明显降低模型的实时渲染效率,制约大规模城市三维模型集成的应用。
因此,本申请提供了一种三维模型数据的纹理合并方法,通过预定的纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到待合并纹理,实现将三维模型数据中不符合打包条件的纹理坐标阈值的纹理数量降低,然后再根据剩余区域分割算法和自由矩阵选择算法将多个待合并纹理插入至预设尺寸的纹理集,实现将多个待合并纹理合并至纹理集中,相较于现有技术中将原生的纹理直接合并至纹理集中,去除了纹理中的部分冗余数据,减少了纹理的整体数据量,使得计算机设备在合并处理或者是加载过程中可以采用较少的数据量就完成,当数据量减少时计算机设备就可以通过更快的速度进行处理,提高了三维模型数据的加载效率以及实时渲染效率。
请参考图1,图1为本申请实施例所提供的一种三维模型数据的纹理合并方法的流程图。
本实施例中,该方法可以包括:
S101,根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;
本步骤旨在对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理,以便降低三维模型数据中的数据量,提高合并处理效率,以及后期加载的效率。具体的,在三维模型数据中存在部分纹理坐标数据处于不正常状态的数据纹理,会带来较多的数据量,影响设备处理三维模型数据的效率,以及动态加载的效率。其中,采用纹理坐标阈值的主要作用是在三维模型数据中筛选出需要进行去冗余处理的纹理。具体来说,采用纹理坐标阈值对三维模型数据中的纹理进行筛选,将符合纹理坐标阈值的纹理作为正常纹理,将不符合纹理坐标阈值的纹理作为异常纹理。然后,针对正常纹理和异常纹理实施不同的去冗余处理,得到待合并纹理。
因此,本步骤中进行的去冗余处理操作可以包括:步骤一,对三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理;步骤二,将三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理;步骤三,将多个去冗余异常纹理和多个去冗余正常纹理作为多个待合并纹理。
可见,本可选方案中将去冗余处理分为了异常纹理去冗余处理以及正常纹理去冗余处理。
具体的,该异常纹理去冗余处理的操作可以包括:将三维模型数据中大于纹理坐标阈值的纹理作为异常纹理;根据纹理面片数量对异常纹理中小于等于预设纹理坐标范围的纹理进行纹理更新处理,得到多个已更新异常纹理;将异常纹理中多个已更新异常纹理作为多个去冗余异常纹理。
需要说明的是,本可选步骤中依旧根据纹理的纹理坐标以及纹理面片数量将异常纹理分为三类纹理。其中,预设纹理坐标大于纹理坐标阈值。因此,将纹理坐标大于该预设纹理坐标的纹理作为重复纹理。将纹理坐标在纹理坐标阈值和预设纹理坐标之间的纹理按照纹理面片数量分为单独纹理和共用纹理,其中,纹理面片数量大于1的纹理为共用纹理,纹理面片数量为1的纹理为单独纹理。最后,针对不同的纹理进行不同的纹理更新操作,得到待合并纹理。
该正常纹理去冗余处理的操作可以包括:将三维模型数据中小于等于纹理坐标阈值的纹理作为正常纹理;根据纹理面片数量对正常纹理进行纹理更新处理,得到多个去冗余正常纹理。
同样的,在本可选方案中将正常纹理区分为共用纹理以及单独纹理。具体的,也是通过正常纹理中的面片数量将正常纹理区分为单独纹理和共用纹理。然后,对共用纹理和单独纹理执行不同的纹理更新操作。
S102,根据剩余区域分割算法和自由矩形选择算法将多个待合并纹理插入至预设尺寸的纹理集中;
在S101的基础上,本步骤旨在将得到的待合并纹理插入至纹理集中,也就是将多个待合并纹理执行合并操作,得到多个纹理集。其中,本步骤为了提高纹理插入的空间利用率,使用剩余区域分割算法和自由矩阵选择算法进行纹理的合并操作。
进一步的,为了降低纹理集中的数据量,可以对待合并纹理中的部分纹理进行降采样处理。因此,具体的,本步骤中将多个待合并纹理插入纹理集的过程可以包括:
对多个待合并纹理进行预处理,得到多个已处理待合并纹理;
根据降采样算法、剩余区域分割算法以及自由矩形选择算法对多个已处理待合并纹理中可降采样的纹理进行有损纹理合并处理,得到多个有损的纹理集;或者根据剩余区域分割算法和自由矩形选择算法对多个已处理待合并纹理中不可降采样的纹理进行无损纹理合并处理,得到多个无损的纹理集。
可见,通过本可选方案中的方法主要是将待合并纹理中筛选出可降采样的纹理和不可降采样的纹理。针对可降采样的纹理进行有损纹理合并处理,降低该纹理的数据量,也就是进行压缩处理。针对不可降采样的纹理进行无损纹理合并处理,保证该纹理的正确性。其中,具体是执行有损纹理合并处理还是无损纹理合并处理,可以通过用户的需求进行选择,在此不作具体限定。
S103,根据所有纹理集进行纹理映射处理,得到目标三维模型数据。
在S102的基础上,本步骤旨在根据得到的所有纹理集进行纹理映射处理,得到目标三维模型数据,也就是进行纹理合并后的三维模型数据。其中,由于对纹理进行了去冗余处理,降低了该冗余的数据量,使得合并处理和计算机加载目标三维模型数据的数据量减少,从而提高了处理时的效率以及加载效率。
综上,本实施例通过预定的纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到待合并纹理,实现将三维模型数据中不符合纹理打包条件的纹理坐标阈值的纹理数量降低,然后再根据剩余区域分割算法和自由矩阵选择算法将多个待合并纹理插入至预设尺寸的纹理集,实现将多个待合并纹理合并至纹理集中,相较于现有技术中将原生的纹理直接合并至纹理集中,去除了纹理中的部分冗余数据,减少了纹理的整体数据量,使得计算机设备在合并处理或者是加载过程中可以采用较少的数据量就完成,当数据量减少时计算机设备就可以通过更快的速度进行处理,提高了三维模型数据的加载效率以及实时渲染效率。
以下通过另一个实施例,对本申请提供的一种三维模型数据的纹理合并方法做进一步说明。
请参考图2,图2为本申请实施例所提供的一种三维模型数据的纹理合并方法的流程图。
本实施例中,将上一实施例中的纹理合并方法应用在三维建筑物精细模型中,以便提高加载三维建筑物精细模型的效率。其中,该方法可以包括:
S200,根据纹理坐标是否超出[0,1]范围,将三维建筑物精细模型中的纹理分为异常纹理和正常纹理两类,分别进行去冗余处理;
S300,将去冗余后的纹理合并到一张或多张纹理集中,最后进行纹理重映射,得到合并后的三维建筑物模型。
可见,本实施例的S200主要是将纹理坐标阈值设定为[0,1],在这个范围内的为正常纹理,在这个范围之外是异常纹理。
其中,S200具体执行的过程可以包括以下步骤:
S210,提取出三维建筑物精细模型中纹理坐标超出[0,1]范围的异常纹理。
异常纹理指纹理坐标超出[0,1]范围的纹理。因为异常纹理直接打包会导致纹理错误映射,为了避免该问题,首先需要将异常纹理提取出来,单独处理。
在该过程中,根据纹理坐标值的范围对纹理分类。设纹理对应的4个纹理坐标分别为(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3),若纹理坐标不满足下式,则该纹理为异常纹理。
S220,将异常纹理分为重复纹理、共用纹理和单独纹理三类。
其中,重复纹理指纹理坐标范围较大的纹理,共用纹理指纹理对应面片的数量大于1的纹理,单独纹理指纹理对应面片的数量为1的纹理。
在该过程中,将异常纹理中纹理坐标范围超出阈值(可设置为2,或根据经验或实际情况进行修改)的纹理视为重复纹理,将纹理坐标范围在阈值内且对应面片数量大于1的纹理视为共用纹理,将纹理坐标范围在阈值内且对应面片数量等于1的纹理视为单独纹理。
S230,对异常纹理中的单独纹理进行纹理更新。
纹理更新即根据有效纹理区域替代原始纹理图像,并将纹理坐标更新为(0,0)、(1,0)、(1,1)(0,1)。
在该过程中,首先根据单独纹理对应面元矩形四个角点的纹理坐标生成纹理有效区域图像,然后进行纹理更新。
S240,对异常纹理中共用纹理进行纹理更新。
针对共用纹理,首先对纹理对应所有面的纹理坐标进行坐标预处理,然后计算纹理坐标并集,接着根据并集坐标生成纹理有效区域,最后进行纹理更新。
S241,对异常纹理中共用纹理对应所有面的纹理坐标进行坐标预处理。
因为共用纹理对应多个面,多个面之间的纹理坐标可能相差较大,为了便于进行后续纹理坐标并集计算,首先需要进行坐标预处理。
在坐标预处理过程中,对共用纹理对应所有面的纹理坐标,在U、V方向上各加上一个整数量偏移值,使纹理左下角纹理坐标值均在[0,1]范围内。
S242,计算异常纹理中共用纹理对应所有面的纹理坐标的并集。
设计算得到的并集坐标为(u'0,v'0)、(u′1,v′1)、(u'2,v'2)、(u′3,v′3),则:
其中,i=0,1,2,3;j=0,1,...,num(faces),num(faces)为共用纹理对应面片的数量;u′1=u'2,v′1=v'0,u′3=u'0,v′3=v'2。
S243,对异常纹理中的共用纹理进行纹理更新。
根据S242集坐标生成纹理有效区域,然后进行纹理更新。
S250,将异常纹理中的重复纹理直接输出。
由于重复纹理复用量较大,对其进行纹理更新会导致结果纹理数据量增加,为了简化纹理,直接输出重复纹理。
S260,提取出三维建筑物精细模型中纹理坐标在[0,1]范围内的正常纹理。
正常纹理指纹理坐标在[0,1]范围内的纹理。若纹理的纹理坐标满足上述判断公式,则该纹理为正常纹理。
S270,将正常纹理分为共用纹理和单独纹理两类。
在该过程中,将纹理对应面片数量大于1的纹理视为共用纹理,将纹理对应面片数量等于1的纹理视为单独纹理。
S280,对正常纹理中的单独纹理进行纹理更新。
根据纹理坐标生成纹理有效区域,然后进行纹理更新。
S290,对正常纹理中的共用纹理进行纹理更新。
首先计算共用纹理对应所有面片的纹理坐标并集,然后根据并集坐标生成纹理有效区域,最后进行纹理更新。
其中,步骤S300具体执行的过程可以包括以下步骤:
S310,纹理预处理
将S230、S240、S280、S290获取的结果纹理视为待打包纹理,对待打包纹理进行纹理缩放、旋转与排序的预处理,优化装箱算法,以便进行后续的纹理合并工作。
S311,纹理缩放预处理。
在该过程中,设纹理集尺寸为2048×2048(该尺寸可根据经验或实际情况修改),设待打包纹理尺寸为width×height。若待打包纹理尺寸大于纹理集尺寸,即width>2048或height>2048,则将待打包纹理缩放为新尺寸width'×height':
S312,纹理旋转与排序预处理。
在该过程中,首先将所有待打包纹理旋转至长边水平、宽边垂直,然后按长边进行降序排列。
S320,若允许对原始待打包纹理进行降采样,则进行纹理有损合并。
S321,在空白纹理集中,插入第一张待打包纹理。
待打包纹理默认插入到矩形的左下角。
S322,将纹理集中的剩余区域分割为多个自由矩形。
自由矩形是一个水平或垂直放置的最大矩形区域,它要么碰到纹理集的边缘,要么碰到纹理集中已经插入了的子纹理。空白纹理集本身为一个自由矩形。
设插入上一个纹理前的自由矩形集合U={R1,R2,R3,...,Rn},上一个纹理插入后在纹理集中占据矩形区域v为固定矩形,则将纹理集中剩余区域分割为自由矩形。其中,具体的分割过程是首先遍历当前自由矩形集合Ri←U,如果Ri与v不相交,则进入下一次循环,反之则进入第一判断步骤,如果Ri与v在水平方向上相交且v位于上方,则取Ri中未与v重叠的下方矩形部分作为新成员Ri插入集合U;进入第二判断步骤,如果Ri与v在水平方向上相交且v位于Ri下方,则取Ri中未与v重叠的上方矩形部分作为新成员Ri插入集合U;进入第三判断步骤,如果Ri与v在垂直方向上相交且v位于Ri右方,则取Ri中未与v重叠的左方矩形部分作为新成员Ri插入集合U;进入第四判断步骤,如果Ri与v在垂直方向上相交且v位于Ri左方,则取Ri中未与v重叠的右方矩形部分作为新成员Ri插入集合U;若U中成员数量增加,则从U中删除Ri,进入下一次循环,直到遍历完U中的所有成员,算法结束。
S323,将下一张待打包纹理插入合适的自由矩形中。
待打包纹理插入时,需要选择最适合容纳自身的自由矩形进行放置。设纹理集中已插入纹理的固定矩形集合为V={v1,v2,v3,...,vm},自由矩形选择算法包括:首先遍历当前自由矩形集合Ri←U,如果Ri不能容纳r,则进入下一次循环,反之遍历当前固定矩形集合vi←V,计算vi与r接触的长度,遍历完V,得到与纹理集内所有固定矩形的接触长度l;若l大于最大接触长度L,则L=l,遍历完U,得到与容器C内所有固定矩形有最大接触长度L的矩形v′,r插入位置为v′,v′插入V中,重新分割剩余区域,算法结束。
S324,将待打包纹理合并为一张纹理集。
在该过程中,重复S322和S323所有待打包纹理插入到纹理集中为止。若S323执行失败,首先对待打包纹理进行降采样,然后进入S321。降采样方法如下式:
其中,sizen.x为重采样后纹理列数,sizen.y为重采样后纹理行数,sizem.x为原始纹理列数,sizem.y为原始纹理行数。
S330,若不允许对原始纹理进行降采样,则进行纹理无损合并。
S331,在空白纹理集中,插入第一张待打包纹理。
待打包纹理默认插入到矩形的左下角。
S332,将纹理集中的剩余区域分割为多个自由矩形。
S333,遍历当前纹理集集合,将下一张待打包纹理插入合适的自由矩形中。
在该过程中,如果插入失败,则新生成一个空白纹理集加入纹理集集合中,并将当前待打包纹理插入到该空白纹理集中。
S334,将待打包纹理合并为多张纹理集。
在该过程中,重复S332和S333,直到将所有待打包纹理插入到纹理集中为止。
S340,计算纹理被合并到纹理集中后的纹理坐标。
设原始纹理的原纹理坐标为(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3),该纹理被合并到纹理集中后在纹理集影像中的影像坐标为(x0,y0)、(x1,y1)、(x2,y2)、(x3,y3),则该纹理被合并到纹理集中后的新纹理坐标为(u'0,v'0)、(u′1,v′1)、(u'2,v'2)、(u′3,v′3),新纹理坐标的计算公式如下:
其中,W、H分别为纹理集影像数组的总列数和总行数。
S350,最后将得到的纹理集进行纹理重映射处理,得到目标三维模型数据。
可见,本实施例通过预定的纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到待合并纹理,实现将三维模型数据中不符合纹理打包条件的纹理坐标阈值的纹理数量降低,然后再根据剩余区域分割算法和自由矩阵选择算法将多个待合并纹理插入至预设尺寸的纹理集,实现将多个待合并纹理合并至纹理集中,相较于现有技术中将原生的纹理直接合并至纹理集中,去除了纹理中的部分冗余数据,减少了纹理的整体数据量,使得计算机设备在合并处理或者是加载过程中可以采用较少的数据量就完成,当数据量减少时计算机设备就可以通过更快的速度进行处理,提高了三维模型数据的加载效率以及实时渲染效率。
下面对本申请实施例提供的一种三维模型数据的纹理合并装置进行介绍,下文描述的一种三维模型数据的纹理合并装置与上文描述的一种三维模型数据的纹理合并方法可相互对应参照。
请参考图3,图3为本申请实施例所提供的一种三维模型数据的纹理合并装置的结构示意图。
本实施例中,该方法可以包括:
纹理去冗余模块100,用于根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;
纹理合并模块200,用于根据剩余区域分割算法和自由矩形选择算法将多个待合并纹理插入至预设尺寸的纹理集中;
纹理映射模块300,用于根据所有纹理集进行纹理映射处理,得到目标三维模型数据。
可选的,该纹理去冗余模块100,可以包括:
异常纹理处理单元,用于对三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理;
正常纹理处理单元,用于将三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理;
待合并纹理获取单元,用于将多个去冗余异常纹理和多个去冗余正常纹理作为多个待合并纹理。
可选的,该纹理合并模块200,可以包括:
纹理预处理单元、有损纹理合并单元或无损纹理合并单元;
其中,纹理预处理单元,用于对所述多个待合并纹理进行预处理,得到多个已处理待合并纹理;
其中,有损纹理合并单元,用于根据降采样算法、所述剩余区域分割算法以及所述自由矩形选择算法对所述多个已处理待合并纹理中可降采样的纹理进行有损纹理合并处理,得到多个有损的纹理集;
其中,无损纹理合并单元,用于根据所述剩余区域分割算法和所述自由矩形选择算法对所述多个已处理待合并纹理中不可降采样的纹理进行无损纹理合并处理,得到多个无损的纹理集。
本申请实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的纹理合并方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行实现如以上实施例所述的纹理合并方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种三维模型数据的纹理合并方法、纹理合并装置、计算机设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种三维模型数据的纹理合并方法,其特征在于,包括:
根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;
根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中;
根据所有所述纹理集进行纹理映射处理,得到目标三维模型数据。
2.根据权利要求1所述的纹理合并方法,其特征在于,根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理,包括:
对所述三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理;
将所述三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理;
将所述多个去冗余异常纹理和所述多个去冗余正常纹理作为所述多个待合并纹理。
3.根据权利要求2所述的纹理合并方法,其特征在于,对所述三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理,包括:
将所述三维模型数据中大于纹理坐标阈值的纹理作为异常纹理;
根据纹理面片数量对所述异常纹理中小于等于预设纹理坐标范围的纹理进行纹理更新处理,得到多个已更新异常纹理;
将所述异常纹理中所述多个已更新异常纹理作为所述多个去冗余异常纹理。
4.根据权利要求2所述的纹理合并方法,其特征在于,将所述三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理,包括:
将所述三维模型数据中小于等于纹理坐标阈值的纹理作为正常纹理;
根据纹理面片数量对所述正常纹理进行纹理更新处理,得到所述多个去冗余正常纹理。
5.根据权利要求1至4任一项所述的纹理合并方法,其特征在于,根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中,包括:
对所述多个待合并纹理进行预处理,得到多个已处理待合并纹理;
根据降采样算法、所述剩余区域分割算法以及所述自由矩形选择算法对所述多个已处理待合并纹理中可降采样的纹理进行有损纹理合并处理,得到多个有损的纹理集;或根据所述剩余区域分割算法和所述自由矩形选择算法对所述多个已处理待合并纹理中不可降采样的纹理进行无损纹理合并处理,得到多个无损的纹理集。
6.一种三维模型数据的纹理合并装置,其特征在于,包括:
纹理去冗余模块,用于根据纹理坐标阈值对三维模型数据中的纹理进行去冗余处理,得到多个待合并纹理;
纹理合并模块,用于根据剩余区域分割算法和自由矩形选择算法将所述多个待合并纹理插入至预设尺寸的纹理集中;
纹理映射模块,用于根据所有所述纹理集进行纹理映射处理,得到目标三维模型数据。
7.根据权利要求6所述的纹理合并装置,其特征在于,所述纹理去冗余模块,包括:
异常纹理处理单元,用于对所述三维模型数据中大于纹理坐标阈值的纹理进行异常纹理去冗余处理,得到多个去冗余异常纹理;
正常纹理处理单元,用于将所述三维模型数据中小于等于纹理坐标阈值的纹理进行正常纹理去冗余处理,得到多个去冗余正常纹理;
待合并纹理获取单元,用于将所述多个去冗余异常纹理和所述多个去冗余正常纹理作为所述多个待合并纹理。
8.根据权利要求6或7所述的纹理合并装置,其特征在于,所述纹理合并模块,包括:
纹理预处理单元、有损纹理合并单元或无损纹理合并单元;
其中,纹理预处理单元,用于对所述多个待合并纹理进行预处理,得到多个已处理待合并纹理;
其中,有损纹理合并单元,用于根据降采样算法、所述剩余区域分割算法以及所述自由矩形选择算法对所述多个已处理待合并纹理中可降采样的纹理进行有损纹理合并处理,得到多个有损的纹理集;
其中,无损纹理合并单元,用于根据所述剩余区域分割算法和所述自由矩形选择算法对所述多个已处理待合并纹理中不可降采样的纹理进行无损纹理合并处理,得到多个无损的纹理集。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的纹理合并方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行实现如权利要求1至5任一项所述的纹理合并方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911026022.4A CN110782516B (zh) | 2019-10-25 | 2019-10-25 | 一种三维模型数据的纹理合并方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911026022.4A CN110782516B (zh) | 2019-10-25 | 2019-10-25 | 一种三维模型数据的纹理合并方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110782516A true CN110782516A (zh) | 2020-02-11 |
CN110782516B CN110782516B (zh) | 2023-09-05 |
Family
ID=69386638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911026022.4A Active CN110782516B (zh) | 2019-10-25 | 2019-10-25 | 一种三维模型数据的纹理合并方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110782516B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256782A (zh) * | 2021-07-06 | 2021-08-13 | 武汉幻城经纬科技有限公司 | 三维模型的生成方法、装置、存储介质、电子设备 |
CN116340405A (zh) * | 2023-03-29 | 2023-06-27 | 北京科乐园网络科技有限公司 | 基于大数据的企业数据处理方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998024065A1 (en) * | 1996-11-28 | 1998-06-04 | Zeneca Limited | 3d imaging from 2d scans |
US20080246756A1 (en) * | 2006-10-16 | 2008-10-09 | Georg-Friedemann Rust | Pictorial representation of three-dimensional data records |
CN101364310A (zh) * | 2007-08-07 | 2009-02-11 | 北京灵图软件技术有限公司 | 一种三维模型图形的生成方法和装置 |
CN103049896A (zh) * | 2012-12-27 | 2013-04-17 | 浙江大学 | 三维模型的几何数据和纹理数据自动配准算法 |
WO2013142819A1 (en) * | 2012-03-22 | 2013-09-26 | University Of Notre Dame Du Lac | Systems and methods for geometrically mapping two-dimensional images to three-dimensional surfaces |
US20130249901A1 (en) * | 2012-03-22 | 2013-09-26 | Christopher Richard Sweet | Systems and methods for geometrically mapping two-dimensional images to three-dimensional surfaces |
CN106023297A (zh) * | 2016-05-20 | 2016-10-12 | 江苏得得空间信息科技有限公司 | 一种精细三维模型的纹理动态组织方法 |
-
2019
- 2019-10-25 CN CN201911026022.4A patent/CN110782516B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998024065A1 (en) * | 1996-11-28 | 1998-06-04 | Zeneca Limited | 3d imaging from 2d scans |
US20080246756A1 (en) * | 2006-10-16 | 2008-10-09 | Georg-Friedemann Rust | Pictorial representation of three-dimensional data records |
CN101364310A (zh) * | 2007-08-07 | 2009-02-11 | 北京灵图软件技术有限公司 | 一种三维模型图形的生成方法和装置 |
WO2013142819A1 (en) * | 2012-03-22 | 2013-09-26 | University Of Notre Dame Du Lac | Systems and methods for geometrically mapping two-dimensional images to three-dimensional surfaces |
US20130249901A1 (en) * | 2012-03-22 | 2013-09-26 | Christopher Richard Sweet | Systems and methods for geometrically mapping two-dimensional images to three-dimensional surfaces |
CN103049896A (zh) * | 2012-12-27 | 2013-04-17 | 浙江大学 | 三维模型的几何数据和纹理数据自动配准算法 |
CN106023297A (zh) * | 2016-05-20 | 2016-10-12 | 江苏得得空间信息科技有限公司 | 一种精细三维模型的纹理动态组织方法 |
Non-Patent Citations (1)
Title |
---|
朱庆 等: ""基于帧缓存的多角度影像精细纹理映射方法"" * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256782A (zh) * | 2021-07-06 | 2021-08-13 | 武汉幻城经纬科技有限公司 | 三维模型的生成方法、装置、存储介质、电子设备 |
CN113256782B (zh) * | 2021-07-06 | 2021-10-01 | 武汉幻城经纬科技有限公司 | 三维模型的生成方法、装置、存储介质、电子设备 |
CN116340405A (zh) * | 2023-03-29 | 2023-06-27 | 北京科乐园网络科技有限公司 | 基于大数据的企业数据处理方法、装置、设备及存储介质 |
CN116340405B (zh) * | 2023-03-29 | 2023-10-13 | 北京科乐园网络科技有限公司 | 基于大数据的企业数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110782516B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113178014A (zh) | 场景模型渲染方法、装置、电子设备和存储介质 | |
CN110533594B (zh) | 模型训练方法、图像重建方法、存储介质及相关设备 | |
CN108122266B (zh) | 一种缓存骨骼动画渲染纹理的方法、装置和存储介质 | |
CN101231761B (zh) | 一种保持外观特征的网格模型简化方法 | |
CN110782516B (zh) | 一种三维模型数据的纹理合并方法及相关装置 | |
EP3736776A1 (en) | Apparatus, system and method for the generation of polygonal meshes | |
CN108346131A (zh) | 一种数字图像缩放方法、装置及显示设备 | |
CN113077531A (zh) | 在图形处理系统中对基元进行图块化 | |
CN111145356A (zh) | 一种基于Unity3D模型的切割方法 | |
DE19806985A1 (de) | Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht | |
CN112862664A (zh) | 处理图形图元的方法、图形处理系统和存储介质 | |
CN113724401A (zh) | 一种三维模型切割方法、装置、计算机设备和存储介质 | |
CN115330986A (zh) | 一种分块渲染模式图形处理方法及系统 | |
CN114581983A (zh) | 一种目标检测的检测框处理方法及相关装置 | |
JP6970827B2 (ja) | 演算処理装置 | |
CN114781014B (zh) | 对象处理方法、装置、设备及计算机可读存储介质 | |
CN115880436A (zh) | 一种cad模型可见性确定方法、系统及电子设备 | |
CN115423697A (zh) | 图像修复方法、终端及计算机存储介质 | |
CN112686992A (zh) | 用于智慧城市occ树的几何图形视锥体实现方法、装置及存储介质 | |
CN113468469A (zh) | 由计算机执行的特征图的卷积处理方法、装置和电子设备 | |
CN112802175A (zh) | 大规模场景遮挡剔除方法、装置、设备及存储介质 | |
CN116958385B (zh) | 支持海量单体模型的材质纹理动态更新方法、存储介质及设备 | |
CN116091710B (zh) | 一种基于三维重建的自适应空间切分方法及装置 | |
CN113361226B (zh) | 一种减小版图文件大小的方法及电子设备 | |
CN112037065B (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 |