CN104637089A - 三维模型数据处理方法和装置 - Google Patents
三维模型数据处理方法和装置 Download PDFInfo
- Publication number
- CN104637089A CN104637089A CN201510083930.2A CN201510083930A CN104637089A CN 104637089 A CN104637089 A CN 104637089A CN 201510083930 A CN201510083930 A CN 201510083930A CN 104637089 A CN104637089 A CN 104637089A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- texture
- apex
- memory location
- data
- 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
Landscapes
- Image Generation (AREA)
Abstract
一种三维模型数据处理方法,所述方法包括:获取三维模型中的坐标数据,所述坐标数据包括顶点坐标和纹理坐标;对所述顶点坐标和所述纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;将所述压缩后的三维模型数据发送至终端进行渲染。采用本方法能够有效提高三维模型数据的压缩效率。此外还提供一种三维模型数据处理装置。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种三维模型数据处理方法和装置。
背景技术
随着计算机技术的发展,三维地图已然成为互联网业务中的新亮点。当前三维地图主要有手工贴图和实景三维两种方式。其中,采用手工贴图方式制作手工三维模型的效率极低、成本高昂,并且视觉上不真实,但其优点在于三维模型的数据量相对较小。实景三维是指基于计算机视觉三度重叠原理,从一批大重叠度相片上自动生成带有真实纹理贴图的三维模型。这种方式能够以相对较低的成本,快速获取大范围的真实三维模型,但其不足则在于数据量相对较大,不利于互联网发布。对于同一地理区域,采用手工贴图三维模型和实景三维模型来比对,如图1-1所示,为手工贴图三维模型,图1-2为实景三维模型,可以明显看出,实景三维模型能够更真实、更清晰地反映该地理区域的样貌。此外,由于制作成本和效率的优势,实景三维可看作是三维地图的发展方向。
三维模型进行网络发布的传统方式是采用LoD(Level of Details,一种多层次细节的解决方案)技术,对三维模型进行化简、裁切,形成多个细节层次,然后使用压缩算法对三维模型数据进行压缩。由于实景三维模型中存在大量互相连接的三角形,而且随着三维模型精度的提高,三角形组成的网就越密,细节表达越丰富,相应的数据量也就越大。图2-1为在低精度下呈现的三角网,图2-2为在中精度下呈现的三角网,图2-3为在高精度下呈现的三角网。很明显,精度越高,三维模型的数据量就越大。利用传统的方式来处理这些庞大的实景三维模型数据,会导致实景三维模型的压缩时间过长和压缩效率较低。如何通过简单有效的方式来提高三维模型数据的压缩效率成为目前的一个技术难题。
发明内容
基于此,有必要针对上述技术问题,提供一种能有效提高三维模型数据的压缩效率的三维模型数据处理方法和装置。
一种三维模型数据处理方法,所述方法包括:
获取三维模型中的坐标数据,所述坐标数据包括顶点坐标和纹理坐标;
对所述顶点坐标和所述纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;
将所述压缩后的三维模型数据发送至终端进行渲染。
一种三维模型数据处理装置,所述装置包括:
数据获取模块,用于获取三维模型中的坐标数据,所述坐标数据包括顶点坐标和纹理坐标;
数据压缩模块,用于对所述顶点坐标和所述纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;
数据发送模块,用于将所述压缩后的三维模型数据发送至终端进行渲染。
上述三维模型数据处理方法和装置,获取三维模型中的坐标数据,坐标数据包括顶点坐标和纹理坐标;对顶点坐标和纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;将压缩后的三维模型数据发送至终端进行渲染。由于只需要对顶点坐标和纹理坐标的数据类型进行转换,可以将坐标数据由复杂数据类型转换为简单数据类型,减少了坐标数据的数据量,且有效避免了传统三维模型数据压缩方式中大量的复杂运算过程,因此能够有效提高压缩效率。
附图说明
图1-1为手工贴图三维模型图例;
图1-2为实景三维模型图例;
图2-1为低精度下的三角网图例;
图2-2为中精度下的三角网图例;
图2-3为高精度下的三角网图例;
图3为一个实施例中三维模型数据处理方法的应用环境图;
图4为一个实施例中三维模型数据处理方法的流程图;
图5为一个实施例中三维模型的拓扑示意图;
图6为一个实施例中纹理拓扑示意图;
图7为一个实施例中根据顶点索引调用顶点坐标和一一对应的纹理坐标的示意图;
图8为传统三维模型中根据顶点索引调用顶点坐标与根据纹理索引调用纹理坐标的示意图;
图9为一个实施例中三维模型数据处理装置的结构示意图;
图10为一个实施例中数据压缩模块的结构示意图;
图11为又一个实施例中三维模型数据处理装置的结构示意图;
图12为一个实施例中坐标处理模块的结构示意图;
图13为再一个实施例中三维模型数据处理装置的结构示意图;
图14为另一个实施例中三维模型数据处理装置的结构示意图;
图15为还一个实施例中三维模型数据处理装置的结构示意图;
图16为一个实施例中服务器的内部结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的三维模型数据处理方法可应用于如图3所示的应用环境中。参考图3所示,终端302与服务器304通过网络306进行通信。终端302包括但不限于个人计算机、智能手机、平板电脑、个人数字助理等。网络306包括但不限于互联网、3G(3rd-Generation)/4G(the 4th Generation mobilecommunication technology)等移动网络。服务器304上存储有预先制作好的三维模型,如三维地图等。服务器304提取三维模型中的坐标数据,包括顶点坐标和纹理坐标。顶点坐标和纹理坐标可以采用32位浮点型来表示。将顶点坐标和纹理坐标的数据类型进行转换,将转换后的顶点坐标和转换后的纹理坐标采用16位整型进行存储,由此对三维模型数据进行压缩。由于只需通过对顶点坐标和纹理坐标的数据类型进行转换,可以将坐标数据由复杂数据类型转换为简单数据类型,减少了坐标数据的数据量,且有效避免了传统三维模型数据压缩方式中大量的复杂运算过程,因此能够有效提高压缩效率。服务器304将压缩后的三维模型数据通过网络306发送到终端302后,在终端302上可以渲染出相应的三维图像。
在一个实施例中,如图4所示,提供了一种三维模型数据处理方法,该方法以应用于服务器进行举例说明,具体包括:
步骤402,获取三维模型中的坐标数据,坐标数据包括顶点坐标和纹理坐标。
三维模型由一组三维空间的多边形面片组成,每组面片包括多个相互连接的多边形。多边形是指三条或三条以上的线段首尾顺次连接所组成的封闭图形。优选的,三维模型中多边形为三角形。三维模型呈现的可以是真实的物体,也可以是虚构的物体,包括但不限于三维地图、三维设备、三维人物和三维游戏等。
顶点是指多面体中三个或更多的面的连接处,在三维模型中,每个多边形的顶点就是该三维模型的顶点,顶点坐标为三维坐标,比如可用(x,y,z)来表示。纹理是二维空间的图片,实际上是一个二维数组,它的元素是一些颜色值。单个的颜色值被称为纹理元素或纹理像素。每一个纹理像素在纹理中都有一个唯一的地址,也就是纹理坐标,纹理坐标是二维坐标,可以用(u,v)来表示。在三维模型中存在一定数量的顶点坐标被共用的情况,即一个顶点坐标可对应多个纹理坐标。一般是在三维模型的拐点处,多个纹理坐标共用一个顶点坐标。因此在一个三维模型中,纹理坐标的数量要多于顶点坐标的数量。
步骤404,对顶点坐标和纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据。
本实施例中,分别将顶点坐标和纹理坐标与相应的转换系数相乘,以实现数据类型的转换。其中顶点坐标对应的转换系数为第一转换系数,纹理坐标对应的转换系数为第二转换系数。进一步的,第一转换系数根据顶点坐标转换后的数据类型所对应的有效值范围和顶点坐标的坐标值范围来确定。第二转换系数根据纹理坐标转换后的数据类型的有效值的范围来确定。将进行了数据类型转换后的顶点坐标和纹理坐标进行存储,得到压缩后的三维模型数据。
步骤406,将压缩后的三维模型数据发送至终端进行渲染。
在一个实施例中,可在接收到终端发送的三维图像展示请求后,向终端下发压缩后的三维模型数据。终端对接收到的三维模型数据进行解析,并将解析后的三维模型数据从缓冲区中传入到显存中进行渲染,得到相应的三维图像。
本实施例中,获取三维模型中的坐标数据,坐标数据包括顶点坐标和纹理坐标;对顶点坐标和纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;将压缩后的三维模型数据发送至终端进行渲染。由于只需要对顶点坐标和纹理坐标的数据类型进行转换,可以将坐标数据由复杂数据类型转换为简单数据类型,减少了坐标数据的数据量,且有效避免了传统三维模型数据压缩方式中大量的复杂运算过程,因此能够有效提高压缩效率。
在一个实施例中,对顶点坐标和纹理的数据类型坐标分别进行转换,得到压缩后的三维模型数据的步骤包括:分别计算顶点坐标对应的转换系数和纹理坐标对应的转换系数;根据顶点坐标对应的转换系数对顶点坐标的数据类型进行转换;根据纹理坐标对应的转换系数对纹理坐标的数据类型进行转换;将进行了数据类型转换后的顶点坐标和进行了数据类型转换后的纹理坐标进行存储,得到压缩后的三维模型数据。
本实施例中,顶点坐标对应的转换系数(即第一转换系数)根据顶点坐标转换后的数据类型所对应的有效值范围和顶点坐标的坐标值范围来确定。具体的,在转换后的数据类型所对应的有效值范围内选取预设范围的值作为计算顶点坐标转换系数的常量。优选的,选取顶点坐标转换后的数据类型的有效值范围的最大值作为第一转换系数的常量。顶点坐标的坐标值范围可以是顶点坐标在预设范围内的坐标最大值与坐标最小值之间的差值,优选的,将所有顶点坐标中的顶点坐标最大值和顶点坐标最小值分别作为预设范围内的坐标最大值与坐标最小值,所有顶点坐标中的顶点坐标最大值和顶点坐标最小值可以通过对顶点坐标对应的第一数组进行遍历的方式来获得。顶点坐标对应的转换系数可根据常量与预设范围内的坐标最大值与坐标最小值之间的差值的比值来计算,即第一转换系数=常量/(预设范围内的坐标最大值-预设范围内的坐标最小值)。
例如,转换前的顶点坐标采用32位浮点型(即float类型)来表示,转换后的顶点坐标以16位整型(即short类型)进行存储,16位整型的有效值范围为(-32768~32767),从该有效值内选取预设范围的值作为计算第一转换系数的常量。优选的,可以将65535作为常量。将全部顶点坐标中的顶点坐标最大值和顶点坐标最小值分别作为预设范围内的坐标最大值和坐标最小值,即第一转换系数=65535/(顶点坐标最大值-顶点坐标最小值)。
纹理坐标对应的转换系数(即第二转换系数)根据纹理坐标转换后的数据类型的有效值的范围来确定。具体的,在转换后的数据类型所对应的有效值范围内选取预设范围的值作为第二转换系数。优选的,选取顶点坐标转换后的数据类型的有效值范围的最大值作为第二转换系数。
例如,转换前的纹理坐标采用32位浮点型(即float类型)来表示,转换后的顶点坐标以16位整型(即short类型)进行存储,16位整型的有效值范围为(-32768~32767),从该有效值内选取预设范围内的值作为第二转换系数。优选的,将65535作为第二转换系数。
本实施例中,将确定后的第一转换系数和第二转换系数标记在文件头中。文件头是指三维模型数据中承担顶点坐标和纹理坐标数据类型转换任务的数据。进行数据类型转换后的顶点坐标与纹理坐标的数据类型可以相同,例如,顶点坐标和纹理坐标在进行数据类型转换前均为32位浮点型,进行数据类型转换后均为16位整型。进行数据类型转换前的每个顶点坐标为12比特,进行数据类型转换后的每个顶点坐标为6比特,进行数据类型转换前的每个纹理坐标为8比特,进行数据类型转换后的每个纹理坐标为4比特。由此可将三维模型数据压缩至原来的一半,使得三维模型数据得到极大压缩。
在一个实施例中,对顶点坐标和纹理坐标分别进行转换,得到压缩后的三维模型数据的步骤之前,还包括:增加顶点坐标的数量,使得三维模型中的顶点坐标与纹理坐标一一对应。
本实施例中,在三维模型中存在多个纹理坐标共用顶点坐标的情形,也就是一个顶点坐标对应多个纹理坐标的情形。例如三维空间中有3个三角形相互连接共用一个顶点,在将这3个三维空间中的三角形投影到二维空间后,会形成3个独立的三角形。三维空间中的顶点对应顶点坐标,二维空间中的三角形的顶点对应纹理坐标。这个顶点坐标相当于对应了3个纹理坐标,由此导致多个纹理坐标共用一个顶点坐标的情形。
对被多个纹理坐标所共用的顶点坐标进行复制添加,使得增加后的顶点坐标的数量与纹理坐标的数量相同,将三维模型中的顶点坐标与纹理坐标一一对应。例如,5个纹理坐标共用一个顶点坐标,可将该顶点坐标分别复制添加4次。本实施例中,增加顶点坐标的数量,使得三维模型中的顶点坐标与纹理坐标具有一一对应的关系,根据顶点坐标可以直接得到唯一对应的纹理坐标,使得后续在终端渲染过程中可以有效提高终端渲染效率,也使得在三维模型数据的查找过程中能够提高查找效率。
在一个实施例中,增加顶点坐标的数量的步骤包括:将三维模型的拓扑打散并重组为多个二维拓扑;在二维拓扑中根据纹理坐标的数量增加对应的被共用的顶点坐标,直至二维拓扑中顶点坐标增加后的数量与二维拓扑中的纹理坐标的数量相同。
本实施例中,在将三维模型的多边形面片投影到二维空间的过程中,为了减少变形,需要将三维模型的拓扑打散重组成多个二维拓扑系列。三维模型的拓扑用来描述三维模型的多边形面片中的多边形的顶点与多边形的边、多边形的边与边、多边形的边与多边形面片、多边形面片与多边形面片之间的连接关系。如图5所示,为三维模型的拓扑示意图。二维拓扑也就是纹理拓扑,用来描述二维空间中的多边形的顶点与多边形的边、多边形的边与边之间的连接关系。如图6所示,为纹理拓扑的示意图。
可根据LSCM(least squares conformal maps,最小二乘共形映射)算法或者ABF++(Angle-based flattening,保角映射)算法,利用打散要素的预设比重将三维模型的拓扑进行打散。打散要素包括角度、面积比例和距离比例等,其中,角度是指三维空间中的多边形与二维空间水平面的夹角。面积比例是指三维空间中的多边形的面积与投影至二维空间中的投影面积的比例。距离比例是指三维空间中的多边形的边长与投影至二维空间中的投影多边形的边长的比例。
进一步的,每个打散要素具有对应的预设比重,优选的,预设比重可以为角度:面积比例:距离比例=5:3:2。在根据角度打散的过程中,对于在三维空间中相互连接的多边形打散后仍然保持相互连接的关系,有利于减少三维空间中的多边形投影至二维模型后产生的变形。
进一步的,每个打散要素都具有对应的预设阈值。利用打散要素可以将三维模型的拓扑打散后重组的二维拓扑分为多个系列。利用每个打散要素的阈值又可以对多个二维拓扑的系列进行细分。例如,重组的二维拓扑系列包括角度系列、面积比例系列和距离比例系列等。例如,角度这一打散要素的预设阈值可设置为15°,如果角度小于或等于15°,则将三维模型的拓扑打散后重组为一个系列的二维拓扑,如果角度大于15°,则将三维模型的拓扑打散后重组为另一个系列的二维拓扑。
在重组的二维拓扑中根据纹理坐标的数量分别增加对应的被共用的顶点坐标。具体的,首先计算出二维拓扑中被共用的顶点坐标的数量,然后确定每个被共用的顶点坐标所对应的纹理坐标,根据纹理坐标的数量对被每个共用的顶点坐标逐一进行复制添加。采用这种方式使得每个二维拓扑中的顶点坐标的数量和纹理坐标的数量一致。
本实施例中,将三维模型投影到二维空间中,顶点坐标与纹理坐标之间具有对应关系,由于投影到二维空间的多边形之间不能彼此覆盖,因此在重组的二维拓扑中根据纹理坐标的数量分别增加对应的被共用的顶点坐标,能够使得顶点坐标与纹理坐标一一对应。进一步的,可在顶点坐标与纹理坐标一一对应之后,再对所有的顶点坐标与纹理坐标的数据类型分别进行转换。
在一个实施例中,在增加顶点坐标的数量,使得三维模型中的顶点坐标与纹理坐标一一对应的步骤之后,还包括:分别将进行了数据类型转换后的顶点坐标和纹理坐标以数组形式存储;三维模型中的多边形使用顶点坐标在相应数组中的存储位置或纹理坐标在相应数组中的存储位置来描述。
本实施例中,传统的三维模型中的多边形采用顶点坐标与纹理坐标结合的方式来描述。多边形的顶点分别与顶点坐标的存储位置以及对应的纹理坐标的存储位置相对应。顶点坐标的存储位置即顶点坐标在相应数组中的存储位置,纹理坐标的存储位置即纹理坐标在相应数组中的存储位置。由于三维模型中的顶点坐标与纹理坐标一一对应,三维模型中的多边形只需要顶点坐标或者纹理坐标即可进行描述。也就是,三维模型中的多边形的顶点只需要对应顶点坐标的存储位置或者纹理坐标的存储位置即可。由此减少了三维模型中多边形的存储数据,从而进一步减少了三维模型数据的数据量。
以三维模型中的多边形为三角形为例进行说明:其中,顶点坐标v(x,y,z)记录为表一,纹理坐标vt(u,v)记录为表二,三角形f(a,b,c)(a、b、c分别表示三角形的三个顶点)记录为表三。
表一
顶点坐标(v) | x | y | z |
… | … | … | … |
v377 | 3925.068604 | -780.645020 | 13.842497 |
… | … | … | … |
v479 | 3940.914307 | -792.857788 | 5.889281 |
v480 | 3951.037842 | -788.777954 | 12.625427 |
… | … | … | … |
其中,v377表示在顶点坐标相应数组中排列顺序的序号为377的顶点坐标,顶点坐标在相应的数组中的排列顺序的序号即为顶点坐标在相应数组中的存储位置。以表一的形式记录顶点坐标对应的数组,顶点坐标对应的数组中第377个元素v377,也就是表一中的第377行,对应的坐标值为(3925.068604,-780.645020,13.842497)。
表二:
纹理坐标(vt) | u | v |
… | … | … |
vt1110 | 0.61105174 | 0.69410503 |
vt1111 | 0.15533113 | 0.95732313 |
vt1112 | 0.14872913 | 0.9474901 |
… | … | … |
其中,vt1110表示纹理坐标相应的数组中的序号为1110的纹理坐标,纹理坐标在相应的数组中的序号即为纹理坐标在相应数组中的存储位置。以表二的形式记录纹理坐标对应的数组,纹理坐标对应的数组中第1110个元素vt1110,也就是表二中的第1110行,对应的坐标值为(0.61105174,0.69410503)。
表三:
三角形(f) | a | b | c |
… | … | … | … |
f141 | 480/1110 | 479/1111 | 377/1112 |
f142 | 328/1113 | 495/1114 | 329/1115 |
f143 | 163/1116 | 142/1117 | 141/1118 |
… | … | … | … |
其中,f141表示三维模型中第141个三角形。f141对应的三个顶点分别可以用顶点坐标的存储位置与纹理坐标的存储位置来描述,即f141描述为(480/1110,479/1111,377/1112)。其中480、479和377对应顶点坐标在相应数组中的存储位置,即分别对应第480行顶点坐标v480、第479行顶点坐标v479和第377行顶点坐标v377。1110、1111和1112对应于纹理坐标在相应数组中的存储位置,即分别对应第1110行纹理坐标vt1110、第1111行纹理坐标vt1111和第1112行纹理坐标vt1112。由于增加顶点坐标的数量后,使得三维模型中的顶点坐标与纹理坐标一一对应。因此,三角形可以只通过纹理坐标来表达,也就是可以将f141描述为(1110,1111,1112)或者f141描述为(480,479,377)。由此减少了三维模型中多边形的存储数据,从而进一步减少了三维模型数据的数据量。
在一个实施例中,坐标数据还包括顶点索引,顶点索引中记录了顶点坐标的存储位置和一一对应的纹理坐标的存储位置;该方法还包括:根据顶点索引获取顶点坐标的存储位置,根据顶点坐标的存储位置调用顶点坐标;根据顶点索引获取一一对应的纹理坐标的存储位置,根据纹理坐标的存储位置调用纹理坐标。
本实施例中,三维模型的坐标数据中还包括了顶点索引,顶点索引中记录了顶点坐标的存储位置和一一对应的纹理坐标的存储位置。在渲染三维图像时,根据顶点索引调用顶点坐标和一一对应的纹理坐标,如图7所示:顶点索引中的v0对应顶点坐标(x0,y0,z0)在相应数组中的存储位置,根据顶点索引中的v0,即可调用对应的顶点坐标(x0,y0,z0)。顶点索引中的v0还对应纹理坐标(u0,v0)在相应数组中的存储位置,根据顶点索引中的v0,即可调用与顶点坐标(x0,y0,z0)一一对应的纹理坐标(u0,v0)。而传统的三维模型中需要根据顶点索引调用顶点坐标,根据纹理索引调用纹理坐标。如图8所示,根据顶点索引中的v0,调用对应的顶点坐标(x0,y0,z0),根据纹理坐标索引t0,调用对应的纹理坐标(u0,v0)。由此可见,根据顶点索引调用顶点坐标与一一对应的纹理坐标,克服了传统三维模型中索引数据存在一定冗余的问题,有效减少了三维模型数据的数据量。
在另一个实施例中,坐标数据还包括纹理索引,纹理索引中记录了纹理坐标的存储位置和一一对应的顶点坐标的存储位置;该方法还包括:根据纹理索引获取纹理坐标的存储位置,根据纹理坐标的存储位置调用纹理坐标;根据纹理索引获取一一对应的顶点坐标的存储位置,根据顶点坐标的存储位置调用顶点坐标。
本实施例中,三维模型的坐标数据中还包括了纹理索引,纹理索引中记录了纹理坐标的存储位置和一一对应的顶点坐标的存储位置。在渲染三维图像时,根据纹理索引调用纹理坐标和一一对应的顶点坐标。而传统的三维模型中是根据顶点索引调用顶点坐标,根据纹理索引调用纹理坐标。因此,根据纹理索引调用纹理坐标与一一对应的顶点坐标,克服了传统三维模型中索引数据存在一定冗余的问题,有效减少了三维模型数据的数据量。
在一个实施例中,如图9所示,提供了一种三维模型数据处理装置,该系统包括:数据获取模块902、数据压缩模块904、和数据发送模块906,其中:
数据获取模块902,用于获取三维模型中的坐标数据,坐标数据包括顶点坐标和纹理坐标。
数据压缩模块904,用于对顶点坐标和纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;
数据发送模块906,用于将压缩后的三维模型数据发送至终端进行渲染。
在一个实施例中,如图10所示,数据压缩模块904包括:转换系数计算模块904a、第一转换模块904b、第二转换模块904c和坐标存储模块904d,其中:
转换系数计算模块904a,用于分别计算所述顶点坐标对应的转换系数和所述纹理坐标对应的转换系数;
第一转换模块904b,用于根据所述顶点坐标对应的转换系数对所述顶点坐标的数据类型进行转换;
第二转换模块904c,用于根据所述纹理坐标对应的转换系数对所述纹理坐标的数据类型进行转换;
坐标存储模块904d,用于将进行了数据类型转换后的顶点坐标和进行了数据类型转换后的纹理坐标进行存储,得到压缩后的三维模型数据。
在一个实施例中,如图11所示,该装置还包括:坐标处理模块908,用于增加顶点坐标的数量,使得三维模型中的顶点坐标与纹理坐标一一对应。
在一个实施例中,如图12所示,坐标处理模块908包括:打散重组模块908a和坐标增加模块908b,其中:
打散重组模块908a,用于将三维模型的拓扑打散并重组为多个二维拓扑。
坐标增加模块908b,用于在二维拓扑中根据纹理坐标的数量增加对应的被共用的顶点坐标,直至二维拓扑中顶点坐标增加后的数量与所述二维拓扑中的纹理坐标的数量相同。
在一个实施例中,坐标存储模块904d还用于分别将进行了数据类型转换后的顶点坐标和纹理坐标以数组形式存储。如图13所示,该装置还包括:多边形描述模块910,用于三维模型中的多边形使用顶点坐标在相应数组中的存储位置或纹理坐标在相应数组中的存储位置来描述。
在一个实施例中,坐标数据还包括顶点索引,顶点索引中记录了顶点坐标的存储位置和一一对应的纹理坐标的存储位置;如图14所示,该装置还包括:第一调用模块912,用于根据顶点索引获取顶点坐标的存储位置,根据顶点坐标的存储位置调用顶点坐标;第一调用模块912还用于根据顶点索引获取一一对应的纹理坐标的存储位置,根据纹理坐标的存储位置调用纹理坐标。
在一个实施例中,坐标数据还包括纹理索引,纹理索引中记录了纹理坐标的存储位置和一一对应的顶点坐标的存储位置;如图15所示,该装置还包括:第二调用模块914,用于根据纹理索引获取纹理坐标的存储位置,根据纹理坐标的存储位置调用纹理坐标;第二调用模块914还用于根据纹理索引获取一一对应的顶点坐标的存储位置,根据顶点坐标的存储位置调用顶点坐标。
如图16所示,为一个实施例中,服务器的内部结构,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质存储有操作系统、数据库和三维模型数据处理装置,该三维模型数据处理装置用于实现适用于服务器的一种三维模型数据处理方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的三维模型数据处理装置的运行提供环境。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的三维模型展示请求以及向终端返回压缩后的三维模型数据等。服务器可以用独立的服务器或者是多个服务器来实现,比如服务器可以包括三维模型数据处理服务器和存储服务器等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种三维模型数据处理方法,所述方法包括:
获取三维模型中的坐标数据,所述坐标数据包括顶点坐标和纹理坐标;
对所述顶点坐标和所述纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;
将所述压缩后的三维模型数据发送至终端进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述对所述顶点坐标和所述纹理的数据类型坐标分别进行转换,得到压缩后的三维模型数据的步骤包括:
分别计算所述顶点坐标对应的转换系数和所述纹理坐标对应的转换系数;
根据所述顶点坐标对应的转换系数对所述顶点坐标的数据类型进行转换;
根据所述纹理坐标对应的转换系数对所述纹理坐标的数据类型进行转换;
将进行了数据类型转换后的顶点坐标和进行了数据类型转换后的纹理坐标进行存储,得到压缩后的三维模型数据。
3.根据权利要求2所述的方法,其特征在于,所述对所述顶点坐标和所述纹理坐标分别进行转换,得到压缩后的三维模型数据的步骤之前,还包括:
增加顶点坐标的数量,使得三维模型中的顶点坐标与纹理坐标一一对应。
4.根据权利要求3所述的方法,其特征在于,所述增加顶点坐标的数量的步骤包括:
将所述三维模型的拓扑打散并重组为多个二维拓扑;
在所述二维拓扑中根据纹理坐标的数量增加对应的被共用的顶点坐标,直至所述二维拓扑中顶点坐标增加后的数量与所述二维拓扑中的纹理坐标的数量相同。
5.根据权利要求3所述的方法,其特征在于,在增加顶点坐标的数量,使得三维模型中的顶点坐标与纹理坐标一一对应的步骤之后,还包括:
分别将进行了数据类型转换后的顶点坐标和纹理坐标以数组形式存储;
所述三维模型中的多边形使用所述顶点坐标在相应数组中的存储位置或所述纹理坐标在相应数组中的存储位置来描述。
6.根据权利要求3所述的方法,其特征在于,所述坐标数据还包括顶点索引,所述顶点索引中记录了顶点坐标的存储位置和一一对应的纹理坐标的存储位置;所述方法还包括:
根据所述顶点索引获取顶点坐标的存储位置,根据所述顶点坐标的存储位置调用顶点坐标;
根据所述顶点索引获取一一对应的纹理坐标的存储位置,根据所述纹理坐标的存储位置调用纹理坐标。
7.根据权利要求3所述的方法,其特征在于,所述坐标数据还包括纹理索引,所述纹理索引中记录了纹理坐标的存储位置和一一对应的顶点坐标的存储位置;所述方法还包括:
根据所述纹理索引获取纹理坐标的存储位置,根据所述纹理坐标的存储位置调用纹理坐标;
根据所述纹理索引获取一一对应的顶点坐标的存储位置,根据所述顶点坐标的存储位置调用顶点坐标。
8.一种三维模型数据处理装置,其特征在于,所述装置包括:
数据获取模块,用于获取三维模型中的坐标数据,所述坐标数据包括顶点坐标和纹理坐标;
数据压缩模块,用于对所述顶点坐标和所述纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;
数据发送模块,用于将所述压缩后的三维模型数据发送至终端进行渲染。
9.根据权利要求8所述的装置,其特征在于,所述数据压缩模块包括:
转换系数计算模块,用于分别计算所述顶点坐标对应的转换系数和所述纹理坐标对应的转换系数;
第一转换模块,用于根据所述顶点坐标对应的转换系数对所述顶点坐标的数据类型进行转换;
第二转换模块,用于根据所述纹理坐标对应的转换系数对所述纹理坐标的数据类型进行转换;
坐标存储模块,用于将进行了数据类型转换后的顶点坐标和进行了数据类型转换后的纹理坐标进行存储,得到压缩后的三维模型数据。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
坐标处理模块,用于增加顶点坐标的数量,使得三维模型中的顶点坐标与纹理坐标一一对应。
11.根据权利要求10所述的装置,其特征在于,所述坐标处理模块包括:
打散重组模块,用于将所述三维模型的拓扑打散并重组为多个二维拓扑;
坐标增加模块,用于在所述二维拓扑中根据纹理坐标的数量增加对应的被共用的顶点坐标,直至所述二维拓扑中顶点坐标增加后的数量与所述二维拓扑中的纹理坐标的数量相同。
12.根据权利要求10所述的装置,其特征在于,所述坐标存储模块还用于分别将进行了数据类型转换后的顶点坐标和纹理坐标以数组形式存储;
所述装置还包括:
多边形描述模块,用于所述三维模型中的多边形使用所述顶点坐标在相应数组中的存储位置或所述纹理坐标在相应数组中的存储位置来描述。
13.根据权利要求10所述的装置,其特征在于,所述坐标数据还包括顶点索引,所述顶点索引中记录了顶点坐标的存储位置和一一对应的纹理坐标的存储位置;所述装置还包括:
第一调用模块,用于根据所述顶点索引获取顶点坐标的存储位置,根据顶点坐标的存储位置调用顶点坐标;
所述第一调用模块还用于根据所述顶点索引获取一一对应的纹理坐标的存储位置,根据所述纹理坐标的存储位置调用纹理坐标。
14.根据权利要求10所述的装置,其特征在于,所述坐标数据还包括纹理索引,所述纹理索引中记录了纹理坐标的存储位置和一一对应的顶点坐标的存储位置;所述装置还包括:
第二调用模块,用于根据所述纹理索引获取纹理坐标的存储位置,根据所述纹理坐标的存储位置调用纹理坐标;
所述第二调用模块还用于根据所述纹理索引获取一一对应的顶点坐标的存储位置,根据所述顶点坐标的存储位置调用顶点坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510083930.2A CN104637089B (zh) | 2015-02-15 | 2015-02-15 | 三维模型数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510083930.2A CN104637089B (zh) | 2015-02-15 | 2015-02-15 | 三维模型数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104637089A true CN104637089A (zh) | 2015-05-20 |
CN104637089B CN104637089B (zh) | 2020-08-04 |
Family
ID=53215794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510083930.2A Active CN104637089B (zh) | 2015-02-15 | 2015-02-15 | 三维模型数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104637089B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106340062A (zh) * | 2015-07-09 | 2017-01-18 | 长沙维纳斯克信息技术有限公司 | 一种三维纹理模型文件的生成方法和装置 |
CN106345118A (zh) * | 2016-08-24 | 2017-01-25 | 网易(杭州)网络有限公司 | 一种渲染方法及装置 |
CN106600679A (zh) * | 2015-10-20 | 2017-04-26 | 星际空间(天津)科技发展有限公司 | 一种三维模型数据简化的方法 |
CN107958484A (zh) * | 2017-12-06 | 2018-04-24 | 北京像素软件科技股份有限公司 | 纹理坐标计算方法及装置 |
CN107967716A (zh) * | 2017-11-01 | 2018-04-27 | 深圳依偎控股有限公司 | 一种基于立体图片的缩略图显示控制方法及系统 |
CN108055351A (zh) * | 2017-12-29 | 2018-05-18 | 深圳市毕美科技有限公司 | 三维文件的处理方法及装置 |
CN108665538A (zh) * | 2018-05-18 | 2018-10-16 | 天津流形科技有限责任公司 | 一种三维模型拟合方法、装置、计算机设备及介质 |
CN108733045A (zh) * | 2017-09-29 | 2018-11-02 | 北京猎户星空科技有限公司 | 机器人及其避障方法以及计算机可读存储介质 |
CN108921778A (zh) * | 2018-07-06 | 2018-11-30 | 成都品果科技有限公司 | 一种星球效果图生成方法 |
CN109215103A (zh) * | 2018-08-30 | 2019-01-15 | 西安恒歌数码科技有限责任公司 | 一种基于osg的大批量文字渲染方法 |
CN109410314A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 基于三维空间的拓扑结构动态渲染的方法及装置 |
CN110096540A (zh) * | 2019-04-16 | 2019-08-06 | 湖北地信科技集团股份有限公司 | 测绘数据转换方法、设备、存储介质及装置 |
CN110176079A (zh) * | 2019-05-26 | 2019-08-27 | 中北大学 | 一种基于准共形映射的三维模型变形算法 |
CN111324678A (zh) * | 2018-12-14 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 数据处理方法、装置和计算机可读存储介质 |
CN112598770A (zh) * | 2020-12-22 | 2021-04-02 | 福建天晴数码有限公司 | 一种基于模型三维坐标空间的实时贴花渲染方法及其系统 |
CN113689536A (zh) * | 2021-08-25 | 2021-11-23 | 杭州群核信息技术有限公司 | 纹理铺贴方法、装置和存储介质 |
CN114529706A (zh) * | 2022-04-22 | 2022-05-24 | 三一筑工科技股份有限公司 | 三维模型中目标对象的拆分方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010017623A1 (en) * | 1997-10-20 | 2001-08-30 | Baron Robert O. | Real-time three-dimensional weather data processing method and system |
CN101795138A (zh) * | 2010-01-19 | 2010-08-04 | 北京四方继保自动化股份有限公司 | 电力系统广域测量系统高密度时间序列数据的压缩处理方法 |
CN103472484A (zh) * | 2013-09-18 | 2013-12-25 | 西南石油大学 | 基于rs三维敏感地震属性分析的水平井轨迹优化方法 |
CN103500463A (zh) * | 2013-10-17 | 2014-01-08 | 北京大学 | 一种gpu上多层形状特征融合的可视化方法 |
-
2015
- 2015-02-15 CN CN201510083930.2A patent/CN104637089B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010017623A1 (en) * | 1997-10-20 | 2001-08-30 | Baron Robert O. | Real-time three-dimensional weather data processing method and system |
CN101795138A (zh) * | 2010-01-19 | 2010-08-04 | 北京四方继保自动化股份有限公司 | 电力系统广域测量系统高密度时间序列数据的压缩处理方法 |
CN103472484A (zh) * | 2013-09-18 | 2013-12-25 | 西南石油大学 | 基于rs三维敏感地震属性分析的水平井轨迹优化方法 |
CN103500463A (zh) * | 2013-10-17 | 2014-01-08 | 北京大学 | 一种gpu上多层形状特征融合的可视化方法 |
Non-Patent Citations (2)
Title |
---|
SILENCE: "纹理坐标与顶点坐标不是一一对应", 《HTTP://BLOG.SINA.COM.CN/S/BLOG_79B67DFE0100TKNY.HTML》 * |
乔旭东: "3D模型编解码研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106340062B (zh) * | 2015-07-09 | 2019-05-17 | 长沙维纳斯克信息技术有限公司 | 一种三维纹理模型文件的生成方法和装置 |
CN106340062A (zh) * | 2015-07-09 | 2017-01-18 | 长沙维纳斯克信息技术有限公司 | 一种三维纹理模型文件的生成方法和装置 |
CN106600679A (zh) * | 2015-10-20 | 2017-04-26 | 星际空间(天津)科技发展有限公司 | 一种三维模型数据简化的方法 |
CN106600679B (zh) * | 2015-10-20 | 2019-11-08 | 星际空间(天津)科技发展有限公司 | 一种三维模型数据简化的方法 |
CN106345118A (zh) * | 2016-08-24 | 2017-01-25 | 网易(杭州)网络有限公司 | 一种渲染方法及装置 |
CN106345118B (zh) * | 2016-08-24 | 2019-07-30 | 网易(杭州)网络有限公司 | 一种渲染方法及装置 |
CN108733045A (zh) * | 2017-09-29 | 2018-11-02 | 北京猎户星空科技有限公司 | 机器人及其避障方法以及计算机可读存储介质 |
CN107967716A (zh) * | 2017-11-01 | 2018-04-27 | 深圳依偎控股有限公司 | 一种基于立体图片的缩略图显示控制方法及系统 |
CN107967716B (zh) * | 2017-11-01 | 2021-08-06 | 深圳依偎控股有限公司 | 一种基于立体图片的缩略图显示控制方法及系统 |
CN107958484A (zh) * | 2017-12-06 | 2018-04-24 | 北京像素软件科技股份有限公司 | 纹理坐标计算方法及装置 |
CN107958484B (zh) * | 2017-12-06 | 2021-03-30 | 北京像素软件科技股份有限公司 | 纹理坐标计算方法及装置 |
CN108055351A (zh) * | 2017-12-29 | 2018-05-18 | 深圳市毕美科技有限公司 | 三维文件的处理方法及装置 |
CN109410314A (zh) * | 2018-04-28 | 2019-03-01 | 武汉思普崚技术有限公司 | 基于三维空间的拓扑结构动态渲染的方法及装置 |
CN108665538A (zh) * | 2018-05-18 | 2018-10-16 | 天津流形科技有限责任公司 | 一种三维模型拟合方法、装置、计算机设备及介质 |
CN108921778A (zh) * | 2018-07-06 | 2018-11-30 | 成都品果科技有限公司 | 一种星球效果图生成方法 |
CN108921778B (zh) * | 2018-07-06 | 2022-12-30 | 成都品果科技有限公司 | 一种星球效果图生成方法 |
CN109215103A (zh) * | 2018-08-30 | 2019-01-15 | 西安恒歌数码科技有限责任公司 | 一种基于osg的大批量文字渲染方法 |
CN111324678A (zh) * | 2018-12-14 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 数据处理方法、装置和计算机可读存储介质 |
CN111324678B (zh) * | 2018-12-14 | 2024-05-17 | 北京京东尚科信息技术有限公司 | 数据处理方法、装置和计算机可读存储介质 |
CN110096540A (zh) * | 2019-04-16 | 2019-08-06 | 湖北地信科技集团股份有限公司 | 测绘数据转换方法、设备、存储介质及装置 |
CN110176079A (zh) * | 2019-05-26 | 2019-08-27 | 中北大学 | 一种基于准共形映射的三维模型变形算法 |
CN110176079B (zh) * | 2019-05-26 | 2023-03-24 | 中北大学 | 一种基于准共形映射的三维模型变形算法 |
CN112598770A (zh) * | 2020-12-22 | 2021-04-02 | 福建天晴数码有限公司 | 一种基于模型三维坐标空间的实时贴花渲染方法及其系统 |
CN112598770B (zh) * | 2020-12-22 | 2023-08-08 | 福建天晴数码有限公司 | 一种基于模型三维坐标空间的实时贴花渲染方法及其系统 |
CN113689536A (zh) * | 2021-08-25 | 2021-11-23 | 杭州群核信息技术有限公司 | 纹理铺贴方法、装置和存储介质 |
CN114529706A (zh) * | 2022-04-22 | 2022-05-24 | 三一筑工科技股份有限公司 | 三维模型中目标对象的拆分方法、装置、设备及介质 |
CN114529706B (zh) * | 2022-04-22 | 2022-07-08 | 三一筑工科技股份有限公司 | 三维模型中目标对象的拆分方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104637089B (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104637089A (zh) | 三维模型数据处理方法和装置 | |
Cignoni et al. | BDAM—Batched Dynamic Adaptive Meshes for high performance terrain visualization | |
JP4009235B2 (ja) | 三角形メッシュをレンダリングする方法 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
CN113516769B (zh) | 虚拟现实三维场景加载与渲染方法、装置和终端设备 | |
CN101976468B (zh) | 一种多分辨率动态地形可视化方法及系统 | |
WO2022021309A1 (zh) | 建立模型的方法、装置、电子设备及计算机可读存储介质 | |
CN101082934A (zh) | 网络环境下超大规模空间数据的三维可视化方法 | |
WO2012096790A2 (en) | Planetary scale object rendering | |
CN112561788B (zh) | 一种bim模型的二维展开方法及纹理贴图方法、装置 | |
US9224233B2 (en) | Blending 3D model textures by image projection | |
CN112365598B (zh) | 倾斜摄影数据转换三维数据的方法、装置及终端 | |
CN110070616A (zh) | 存储器、基于gis平台的统计数据呈现方法、装置和设备 | |
CN103324783A (zh) | 基于边折叠的lod模型实时生成方法 | |
CN116385672A (zh) | 一种三维地形场景模型数据产品的构建方法 | |
CN115984506A (zh) | 建立模型的方法和相关装置 | |
Ji et al. | Dynamic lod on gpu | |
CN102509344B (zh) | 一种基于非均匀采样三维对象反射的实时绘制方法 | |
CN106887032A (zh) | 三维场景渲染方法和系统以及相关设备 | |
CN115937396A (zh) | 图像渲染方法、装置、终端设备及计算机可读存储介质 | |
CN110321233B (zh) | 基于树形存储结构的模型切片传输方法 | |
Dolonius et al. | UV‐free Texturing using Sparse Voxel DAGs | |
CN116051782B (zh) | 基于正交网格曲线插值的数据处理及重构建模方法、设备和存储介质 | |
CN110096562A (zh) | 存储器、gis平台中三维模型构建方法、装置和设备 | |
Sheng et al. | MCGIM-based model streaming for realtime progressive rendering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |