CN112802134A - 一种三维模型的编码方法、装置和终端 - Google Patents

一种三维模型的编码方法、装置和终端 Download PDF

Info

Publication number
CN112802134A
CN112802134A CN202110028342.4A CN202110028342A CN112802134A CN 112802134 A CN112802134 A CN 112802134A CN 202110028342 A CN202110028342 A CN 202110028342A CN 112802134 A CN112802134 A CN 112802134A
Authority
CN
China
Prior art keywords
texture
coordinate
data
coordinate data
vertex
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
Application number
CN202110028342.4A
Other languages
English (en)
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.)
Nanjing Zhengfan Information Technology Co ltd
Original Assignee
Nanjing Zhengfan Information Technology 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 Nanjing Zhengfan Information Technology Co ltd filed Critical Nanjing Zhengfan Information Technology Co ltd
Priority to CN202110028342.4A priority Critical patent/CN112802134A/zh
Publication of CN112802134A publication Critical patent/CN112802134A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture

Abstract

本发明公开了一种三维模型的编码方法、系统和终端,属于3D模型信息技术领域。针对现有技术中的obj格式的3D模型文件大、编码慢、解码慢、文件多等导致无法适用于移动互联网传输的问题。本发明提供一种三维模型的编码方法、系统和终端。对3D模型的obj格式进行重新抽象,将三维模型数据中第一坐标数据合并储存得到压缩后的三维模型数据,形成了一种全新的码格式,这种新格式文件小、编码快、解码快、文件少,在网络传输过程不仅大大地减少的带宽,而且编解码速度更快更加适用于移动设备渲染。

Description

一种三维模型的编码方法、装置和终端
技术领域
本发明属于3D模型信息技术领域,具体地说,涉及一种三维模型的编码方法、装置、终端。
背景技术
3D模型是更接近现实,能够携带更多的信息的图像模型,但同时3D模型的数据量远远超过了视频及图像,并且伴随着3D建模工具以及3D扫描软件的飞速发展,3D模型的精度和细节都得到了巨大的提升,3D模型的数据量更是呈几何指数增长,这些导致了3D模型的规模和复杂程度急剧增长。另一方面,数字化技术和Internet的发展与普及、3D数据的大量涌现和图形处理器的处理能力大大加强,3D电视转播以及在移动互联网上进行3D会话、3D游戏以及3D娱乐等等,己经开始步入大众视野。然而,3D模型的高数据量及高精度,必然对图像处理技术以及存储传输技术提出十分严格甚至苛刻的要求。若仅仅依靠提升硬件设备和网络传输设备,并不能有效的解决问题,因此为了更有效的存储3D模型数据并且降低3D模型数据对传输带宽的需求,十分有必要对3D模型数据进行处理,以降低3D模型数据的数据量。
在当前的3D模型的传输技术,3D模型文件一般由obj、mtl以及本地的纹理图片组成,这种编码格式在单机模式下一般没有太大的问题,当一旦处于互联网技术传输中,尤其是移动互联网技术中,这就要求文件占用存储空间更小以适应网络传输过程中占用带宽小、渲染过程中要求编解码速度更快以适应移动设备软硬件严格等特性,这便导致3D模型的原obj格式不再适用,亟待研发一种更适用于当前移动互联网技术的新的编解码方式。
现有技术中公开了一种方法,所述方法包括:获取三维模型中的坐标数据,所述坐标数据包括顶点坐标和纹理坐标;对所述顶点坐标和所述纹理坐标的数据类型分别进行转换,得到压缩后的三维模型数据;将所述压缩后的三维模型数据发送至终端进行渲染。采用上述方法能够有效提高三维模型数据的压缩效率。但是,该方法压缩后的三维模型数据解码慢、文件多等导致无法适用于移动互联网传输的问题。
发明内容
1、要解决的技术问题
现有技术中的obj格式的3D模型存在文件大、编解码慢等缺陷,导致无法适用于移动互联网传输。本发明提供一种三维模型的编码方法、系统和终端,通过对3D模型的obj格式进行重新抽象,将三维模型数据中第一坐标数据合并储存得到压缩后的第二坐标数据,形成了一种全新的码格式,这种新格式文件小、编码快、解码快、文件少,在网络传输过程不仅大大地减少的带宽,而且编解码速度更快更加适用于移动设备渲染。
2、技术方案
为解决上述问题,本发明采用如下的技术方案:
一种三维模型的编码方法,其步骤包括:
(1)从mtl文件中获取第一纹理数据,将所述第一纹理数据进行重新编码,形成第二纹理数据;
(2)从obj文件中获取三维模型数据,所述三维模型数据包括:第一坐标数据、平面坐标索引组以及第一纹理标识,第一纹理标识的关键字符usemtl,此关键字符是可配置的;
(3)遍历obj文件中所述第一纹理标识关键字符usemtl,得到若干个纹理单元;
(4)将每个纹理单元作为处理单元,获取所述平面坐标索引组的预设参数;
(5)将所述预设参数设为索引,遍历所述每个纹理单元,分别从所述第一坐标数据中选取对应的坐标数据合并储存,获取重新编码的第二坐标数据。
所述第一纹理数据包括:第一纹理标识、第一纹理图片、第一光照数据;其中第一纹理标识的关键字符一般是newmtl,且此关键字符是可配置的;
所述的步骤1中将所述第一纹理数据进行重新编码步骤包括:
将所述第一纹理图片的地址转换为对应的网络图片的URL;
将所述第一光照数据重新编码,生成第二光照数据;
将所述第一纹理标识索引重新生成第二纹理标识索引,此第二纹理标识与第一纹理标识一一对应
所述步骤4中获取所述平面坐标索引组的预设参数步骤包括:
将每个纹理单元作为处理单元,遍历所述平面坐标索引中的标识关键字f,获取对应的平面坐标索引组,其中所述平面坐标索引组均包括第一顶点坐标索引组、第一法向量坐标索引组以及第一纹理标识索引组;
第一顶点坐标索引组、第一法向量坐标索引组以及第一纹理标识索引组分别对应顶点坐标数据、法向量坐标数据、纹理坐标数据的下标数值,通过索引组可以获取对应的坐标数据。
所述步骤2、5中的第一坐标数据包括第一顶点坐标数据、第一法向量坐标数据以及第一纹理坐标数据。
所述步骤5中,获取第二坐标数据步骤包括:
1、根据第一顶点坐标索引组从所述第一顶点坐标数据中选取对应的坐标数据,对其进行合并,并重新编码后形成新的顶点坐标数据,此为第二顶点坐标数据;
2、根据第一法向量坐标索引组从所述第一法向量坐标数据中选取对应的坐标数据,对其进行合并,并重新编码后形成新的法向量坐标数据,此为第二法向量坐标数据;
3、根据第一纹理坐标索引组从所述第一纹理坐标数据中选取对应的坐标数据,对其进行合并,并重新编码后形成新的纹理坐标数据,此为第二纹理坐标数据;
4、所述第二顶点坐标数据、第二法向量坐标数据、第二纹理坐标数据以及第二纹理数据,按第二纹理单元存储,如果相同的纹理单元,可以选择对坐标数据合并存储。
3、有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明提供一种三维模型的编码方法,即对原obj格式的3D模型信息的顶点坐标、法向量坐标、以及纹理坐标进行了重新编码,对其中的冗余信息进行去除,使得重新编码后的新格式的3D模型信息占用存储空间更小,解决了在互联网传输中占用带宽大的问题;且这种新格式文件小、编码快、解码快、文件少,在网络传输过程不仅大大地减少的带宽,而且编解码速度更快更加适用于移动设备渲染;
(2)本发明提供一种三维模型的编码方法,通过将坐标数据按纹理为处理单元以顶点坐标、法向量坐标、纹理坐标进行集中重组与编码使得重新编码后的新格式的3D模型信息只需要一次记取后按一定的存储格式解码即可,不再需要像原obj格式的方式按行逐一记取并解码,这使得对3D模型的编解码的速度有了大大的提升;
(3)本发明提供了一种三维模型的编码方法,通过以纹理单元作为编解码的最小处理单元,并将原obj文件涉及的纹理索引与mtl文件的纹理详情进行搜索并重新编码,最终形成一个新格式文件,这样大大提高了使用端的解码性能,降低了网络传输过程中因多个文件导致出错的概率;
(4)本发明提供了三维模型的编码方法,通过将本地文件向互联网存储与发布,将原mtl中的本地文件名转换为网络图片的URL,这便使得3D模型的纹理图片可以从网络上进行加载,做到3D模型文件与纹理图片分离存储,这便可以使用现有的CDN等网络加速技术对3D模型的纹理图片进行快速加载,也可以使得3D模型文件与纹理图片进行并行异步加载,大大提高了3D模型加载的速率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。附图中:
图1为本发明实施例提供的一种三维模型的编码方法流程示意图;
图2为本发明实施例提供的一种三维模型的编码装置结构示意图;
图3为本发明实施例提供的obj格式中的本地图片的文件名转换为网络图片的URL示意图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
在本申请中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在本发明的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
具体实现中,本发明实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
本发明基本构思如下:通过对原obj格式的3D模型信息的顶点坐标、法向量坐标、以及纹理坐标进行了重新编码,对其的冗余信息进行去除,使得重新编码后的新格式的3D模型信息占用存储空间更小,解决了在互联网传输中占用带宽大的问题。下面结合具体实施例进行阐述。
实施例1
下面是一些技术术语的解释:
三维模型:由一组三维空间的多边形面片组成,每组面片包括多个相互连接的多边形。多边形是指三条或三条以上的线段首尾顺次连接所组成的封闭图形。优选的,三维模型中多边形为三角形。三维模型呈现的可以是真实的物体,也可以是虚构的物体,包括但不限于三维地图、三维设备、三维人物和三维游戏等。
顶点是指多面体中三个或更多的面的连接处,在三维模型中,每个多边形的顶点就是该三维模型的顶点,顶点坐标为三维坐标,比如可用(x,y,z)来表示。
纹理是对空间上的坐标的贴图,实际上是一个数组,它的元素是一些颜色值。单个的颜色值被称为纹理元素或纹理像素。每一个纹理像素(纹理元素)在纹理中都有一个唯一的地址,也就是纹理坐标,纹理坐标一般为:“vt u v w”例如:“vt 0.011 1.000 0.000”;vt后面的三个数值分别表示此顶点三维纹理中的坐标数值,如果纹理是二维图片,则数值w无效,只需要使用数值u和数值v即可。
如图1所示,本实施例提供一种三维模型的编码方法,所述方法步骤包括如下:
S101:从mtl文件中获取第一纹理数据,将第一纹理数据进行重新编码,形成第二纹理数据;
旧格式的纹理信息被称为第一纹理数据,其纹理属性为:
newmtl mtl_1
Ns 15.000
Ni 1.500
d 1.000
Tr 1.000
Tf 1.000 1.000 1.000
illum 2
Ka 0.850 0.850 0.850
Kd 0.850 0.850 0.850
Ks 0.850 0.850 0.850
Ke 0.000 0.000 0.000
map_Ka/maps/bmp_001.jpg
map_Kd/maps/bmp_002.jpg
针对上述信息,第一纹理标识:newmtl mtl_1;第一纹理图片:map_Ka/maps/bmp_001.jpg、map_Kd/maps/bmp_002.jpg;第一光照数据;Ka 0.850 0.850 0.850、Kd 0.8500.850 0.850、Ks 0.850 0.850 0.850、Ke 0.000 0.000 0.000、Ns 15.000等;
所形成的新格式的纹理信息被称为第二纹理数据,其纹理属性如下:
newmtl2 msjj019_1
exponent:AKJhvw3Vl78b
ambient:PxmZmj8ZmZo/GZmaP4AAAA==
diffuse:PxmZmj8ZmZo/GZmaP4AAAA==
speculer:Pwl41T8JeNU/CXjVP4AAAA==
shininess:QgAAAA==
bmp1:http://www.xxx.com/maps/bmp_001.jpg
bmp2:http://www.xxx.com/maps/bmp_001.jpg
exponent是对d、Tr、Tf等进行重新编码
ambient是对Ka的重新编码
diffuse是对Kd的重新编码
speculer是对Ks的重新编码
shininess是对Ns等重新编码
第二纹理标识:newmtl2 msjj019_1;第二纹理图片:bmp1:http://www.xxx.com/maps/b mp_001.jpg、bmp2:http://www.xxx.com/maps/bmp_001.jpg;第二光照数据;exponent:AKJhvw 3Vl78b、ambient:PxmZmj等;
S102:获取obj格式文件的三维模型数据,所述三维模型数据包括:第一坐标数据、平面坐标索引组以及第一纹理标识关键字符usemtl;
其中,第一坐标数据包括第一顶点坐标、第一法向量坐标以及第一纹理坐标。
具体的,对三维模型obj格式文件读取并解码:
首先,需要说明的是,obj格式文件包括obj文件、mtl文件,以及本地图片;对obj格式文件进行读取并解码,编码后的属性包括:第一纹理标识索引、第一顶点坐标、第一法向量坐标、、第一纹理坐标、纹理属性以及本地图片;其中obj文件中包括:第一纹理标识索引、第一顶点坐标、第一法向量坐标、第一纹理坐标;其中mtl文件中包括纹理属性。
具体过程为:
(1)逐行读取obj文件,当发现行首字符串为第一纹理标识关键字时,即关键字为字符串usemtl,则认为是一个新的纹理单元开始;第一纹理标识关键字usemtl后会有一个或多个空格,跳过空格,会有一串字符串,此字符串即为第一纹理标识索引;例如,第一纹理标识索引一般为“usemtl mtl_1”,根据此第一纹理标识索引到mtl文件中查询,可以查询到对应的纹理属性以及对应的本地图片的文件名称:
newmtl mtl_1
Ns 15.000
Ni 1.500
d 1.000
Tr 1.000
Tf 1.000 1.000 1.000
illum 2
Ka 0.850 0.850 0.850
Kd 0.850 0.850 0.850
Ks 0.850 0.850 0.850
Ke 0.000 0.000 0.000
map_Ka maps\bmp_001.jpg
map_Kd maps\bmp_001.jpg
(2)继续下一行遍历,如果发现首字符串为v,则此为第一顶点坐标标识关键字,此关键字后面就是一个顶点的三维坐标,分被三个空格所分隔;此顶点格式一般为:“v x yz”,例如:
v-507.493 70.386 857.811
v-462.717 70.386 813.035
v-462.717 660.527 813.035
v-462.717 660.527 813.035
v后面的三个数值x、y、z分别表示此顶点在X轴、Y轴、Z轴上的坐标,此是顶点在空间中真实的坐标位置。设v_s为第一顶点坐标组,即将每一行的顶点坐标数值以下标递增的方式存储到第一顶点坐标组v_s中,以供按下标数值进行查询对应的顶点坐标;
(3)继续下一行遍历,如果发现首字符串为vn,则此为第一法向量坐标标识关键字,此关键字后面就是一个法向量的三维坐标,分被三个空格所分隔;此法向量格式一般为:“vn x y z”,例如:
vn 0.707 -0.000 0.707
vn -0.000 0.000 -1.000
vn -1.000 -0.000 0.000
vn -0.159 -0.974 -0.159
vn后面的三个数值x、y、z分别表示此顶点在X轴、Y轴、Z轴上的法向量坐标数值。设vn_s为第一法向量坐标组,即将每一行的法向坐标数值以下标递增的方式存储到第一法向量坐标组vn_s中,以供按下标数值进行查询对应的法向量坐标;
(4)继续下一行遍历,如果发现首字符串为vt,则此为第一纹理坐标标识关键字,此关键字后面就是一个纹理的三维坐标,它分被三个空格所分隔;此纹理格式一般为:“vtu v w”例如:
vt 0.260 0.000 0.500
vt 0.500 0.000 0.740
vt 0.500 1.126 0.740
vt 0.260 1.126 0.500
vt后面的三个数值分别表示此顶点三维纹理中的坐标数值,如果纹理是二维图片,则数值w无效,只需要使用数值u和数值v即可。假设vt_s为第一纹理坐标组,即将每一行的纹理坐标数值以下标递增的方式存储到第一纹理坐标组vt_s中,以供按下标数值进行查询对应的纹理坐标;
(5)继续下一行遍历,如果发现首字符串为f,则此为平面坐标索引标识关键字,此关键字后面是此平面所在的各顶点坐标所对应的第一顶点坐标索引、第一纹理坐标索引、第一法向量坐标索引,其被三个空格所分隔;此平面坐标索引格式一般为:“f 16/50/1715/49/17 14/48/17”;假设此其格式为“f v/vt/vn”,其中,v表示第一顶点坐标索引,即在v_s第一顶点坐标组中的索引;vt表示第一纹理坐标索引,即在vt_s第一纹理坐标组中的索引;vn表示第一法向量坐标索引,即在vn_s第一法向量坐标组中的索引;
(6)直到遍历到一个新的纹理标识关键字符串usemtl或obj文件遍历结束,则前一个纹理单元结束;最终形成以首字符串v开头的第一顶点坐标组、以首字符串vn开头的第一法向量坐标组、以首字符串vt开头的第一纹理坐标组,以及首字符串f开头的第一顶点坐标索引组;在此设定第一顶点坐标组为v_s、第一法向量坐标组为vn_s、第一纹理坐标组为vt_s、以及平面坐标索引组为f_s;本领域技术人员应当理解,以上就是对已有的obj文件的读取与编码的过程。
S104:遍历所述第一纹理标识关键字符usemtl,得到若干个纹理单元;
具体的,根据步骤S102获得三维模型的obj文件,并遍历obj格式中所有的第一纹理标识索引信息中标识符,此处标识符为标识关键字符串usemtl,从而得到若干个纹理单元。
S106:将每个纹理单元作为处理单元,获取所述平面坐标索引组的预设参数;
具体的,获取所述平面坐标索引组的预设参数步骤包括:将每个纹理单元作为处理单元,遍历所述平面坐标索引中的标识关键字f,获取对应的平面坐标索引组,其中所述平面坐标索引组均包括第一顶点坐标索引组、第一法向量坐标索引组以及第一纹理标识索引组;根据所述第一顶点坐标索引组、第一法向量坐标索引组以及第一纹理标识索引组分别获取对应的下标数值。
进一步的,所述平面坐标索引组包括三个或四个第一顶点坐标索引组,即步骤S102获得的第一顶点坐标索引组,需要说明的是,这些第一顶点坐标索引组构成了一个多边形的渲染单元,以供3D模型进行渲染。其中,每个顶点坐标索引组包括三个整数,所述三个整数即为对应的下标数值(预设参数)。
S108:遍历所述每个纹理单元,将所述预设参数设为索引,分别从所述第一坐标数据中取对应的坐标合并后进行重新编码,得到第二坐标数据;
步骤为:
(1)根据所述第一顶点坐标、第一法向量坐标以及第一纹理坐标依次对应获得第二顶点坐标组、第二法向量坐标组以及第二纹理坐标组;
(2)将每个纹理单元作为处理单元,分别在所述第二顶点坐标组、第二法向量坐标组以及第二纹理坐标组前分别添加对应的坐标标识关键字;
(3)将所述坐标标识关键字与所述第二顶点坐标组、第二法向量坐标组以及第二纹理坐标组合后进行重新编码,得得第二坐标数据。
具体步骤如下:
首先假设新第一顶点坐标索引组为v_s_index,对三维模型的obj格式作改进如下:
Ⅰ、对于第一顶点坐标来说,将每个纹理单元usemtl中的第一顶点坐标进行合并存储。即从第一顶点坐标索引组v_s_index中获取三个整数,并按此三个整数的作为索引,可以分别从第一顶点坐标组v_s中取三个对应的顶点坐标,每个顶点坐标都是三维的;遍历本纹理单元结束后,对所取到的顶点坐标组重新编码后所得到新的顶点坐标组,即为第二顶点坐标组,假设此第二顶点坐标组为v_s_new,将此顶点坐标组前添加一个顶点坐标标识关键字,此顶点坐标标识关键字只要保证在当前纹理单元usemtl的关键字中唯一即可,假设第二顶点坐标标识关键字为v_new;即在纹理单元usemtl中的合并后的顶点存储格式为:顶点坐标标识关键字为(v_new)、分隔符和第二顶点坐标组(v_s_new)组成。其中分隔符有特殊字符构成,例如可以使用空格。因此,新格式的顶点格式一般表示为:“v_new v_s_new”,例如:“v_new wtA0vECsm6a+rpeNQr/LREC3Z...”。
Ⅱ、对于第一顶点坐标来说,将每个纹理单元usemtl中的第一法向量坐标进行合并存储,即从第一法向量坐标索引组vn_s_index中获取三个整数,并按此三个整数作为索引可以分别从第一法向量坐标组vn_s中取三个对应的法向量坐标,每个法向量坐标都是三维的;遍历本纹理单元结束后,对所取到的法向量坐标组重新编码后所得到新的法向量坐标组,即获取到一个新的法向量坐标组,即为第二法向量坐标组。假设此新的法向量坐标组为vn_s_new,将第二法向量坐标组前添加一个法向量坐标标识关键字,此法向量坐标标识关键字只要保证在当前纹理单元usemtl的关键字中唯一即可,假设第二法向量坐标标识关键字为vn_new;即在纹理单元usemtl中的合并后的法向量存储格式为:法向量坐标标识关键字(vn_new)、分隔符和顶点坐标组(vn_s_new)组成。其中分隔符有特殊字符构成,例如可以使用空格。因此,新格式的顶点格式一般为:“vn_new分隔符vn_s_new”,例如:“vn_newvxRDXz8Umnq/EoeyPtB/fT...”。
Ⅲ、对于第一纹理坐标来说,将每个纹理单元usemtl中的第一纹理坐标进行合并存储,即从第一纹理坐标索引组vt_s_index中获取三个整数,并按此三个整数作为索引可以分别从顶点坐标组vt_s中取三个对应的纹理坐标,每个纹理坐标都是二维的或三维的;遍历本纹理单元结束后,对所取到纹理坐标组重新编码后所得到新的纹理坐标组,即获取到一个新的纹理坐标组,即为第二纹理坐标组,假设第二纹理坐标组为vt_s_new,将此纹理坐标组前添加一个纹理坐标标识关键字,此纹理坐标标识关键字只要保证在当前纹理单元usemtl的关键字中唯一即可,假设此纹理坐标标识关键字为vt_new;即在纹理单元usemtl中的合并后的纹理存储格式为:纹理坐标标识关键字(vt_new)、分隔符和纹理坐标组(vt_s_new)组成。其中,分隔符有特殊字符构成,例如可以使用空格。此新格式的顶点格式一般为:“vt_new分隔符vt_s_new”,例如:“vt_new AAAAADw0OUA/gAAAPDQ...”。
可选的,将所述第一纹理标识索引信息中对应的纹理属性中的本地图片的地址转换为对应的网络图片的URL,生成第二纹理标识索引;将每个纹理单元作为处理单元,在所述第二纹理标识索引前,构建第二纹理标识关键字。
其中第二坐标数据包括第二顶点坐标信息、第二法向理坐标信息、第二纹理坐标信息。
进一步的,第二纹理标识信息由纹理关键字符串usemtl以及纹理标识索引组成;第二顶点坐标信息由顶点坐标标识关键字为v_new和顶点坐标组为v_s_new组成;第二法向理坐标信息由法向量坐标标识关键字为vn_new和法向量坐标组为vn_s_new组成;第二纹理坐标信息由纹理坐标标识关键字为vt_new和纹理坐标组为vt_s_new组成。
具体如下:
usemtl msjj019_1
v_new:-507.493 70.386 857.811 -462.717 70.386 813.035 -462.717660.527 813.035......
vn_new:0.707 -0.000 0.707 -0.000 0.000 -1.000 -1.000 -0.0000.000......
vt_new:0.260 0.000 0.500 0.500 0.000 0.740 0.500 1.126 0.740......
此新格式的处理单元与原格式的处理单元一一对应,其中v_new,vn_new,vt_new,是以三个顶点(9个坐标值)为一个平台进行编码与解码。
如图3所示,将obj格式中的本地图片的文件名转换为网络图片的URL,对原obj格式的3D模型信息的顶点坐标、法向量坐标、以及纹理坐标进行了重新编码,对其的冗余信息进行去除,使得重新编码后的新格式的3D模型信息占用存储空间更小,解决了在互联网传输中占用带宽大的问题;且这种新格式文件小、编码快、解码快、文件少,在网络传输过程不仅大大地减少的带宽,而且编解码速度更快更加适用于移动设备渲染。
实施例2
本实施例提供一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器依次连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行实施例1所述的方法。
实施例3
本实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行实施例1所述的方法。
具体的,所述计算机可读存储介质可以是前述实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
实施例4
如附图2所示,本实施例提供一种三维模型的编码系统,包括:
三维模型数据获取模块10,用于解析并获取三维模型数据,所述三维模型数据包括:第一坐标数据、平面坐标索引组以及第一纹理标识关键字符usemtl;
纹理单元处理模块20,用于遍历所述第一纹理标识索引信息中的关键字符串usemtl,得到若干个纹理单元;
参数生成模块30,将每个纹理单元作为处理单元,获取所述平面坐标索引组的预设参数;
编码模块40,将所述预设参数设为索引,遍历所述每个纹理单元,分别从所述第一坐标数据中选取对应的坐标数据合并储存,获取重新编码的第二坐标数据。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (8)

1.一种三维模型的编码方法,其步骤包括:
(1)从mtl文件中获取第一纹理数据,将所述第一纹理数据进行重新编码,形成第二纹理数据;
(2)从obj文件中获取三维模型数据,所述三维模型数据包括:第一坐标数据、平面坐标索引组以及第一纹理标识,第一纹理标识的关键字符usemtl;
(3)遍历obj文件中所述第一纹理标识关键字符usemtl,得到若干个纹理单元;
(4)将每个纹理单元作为处理单元,获取所述平面坐标索引组的预设参数;
(5)将所述预设参数设为索引,遍历所述每个纹理单元,分别从所述第一坐标数据中选取对应的坐标数据合并储存,获取重新编码的第二坐标数据。
2.根据权利要求1所述的三维模型的编码方法,其特征在于,所述步骤4中获取所述平面坐标索引组的预设参数步骤包括:
将每个纹理单元作为处理单元,遍历所述平面坐标索引中的标识关键字f,获取对应的平面坐标索引组,其中所述平面坐标索引组均包括第一顶点坐标索引组、第一法向量坐标索引组以及第一纹理标识索引组;
第一顶点坐标索引组、第一法向量坐标索引组以及第一纹理标识索引组分别对应顶点坐标数据、法向量坐标数据、纹理坐标数据的下标数值,通过索引组可以获取对应的坐标数据。
3.根据权利要求1所述的三维模型的编码方法,其特征在于,所述步骤2、5中的第一坐标数据包括第一顶点坐标、第一法向量坐标以及第一纹理坐标。
4.根据权利要求1或3所述的三维模型的编码方法,其特征在于,所述步骤5中获取到第二坐标数据步骤包括:
(1)根据第一顶点坐标索引组从所述第一顶点坐标数据中选取对应的坐标数据,对其进行合并,并重新编码后形成新的顶点坐标数据,此为第二顶点坐标数据;
(2)根据第一法向量坐标索引组从所述第一法向量坐标数据中选取对应的坐标数据,对其进行合并,并重新编码后形成新的法向量坐标数据,此为第二法向量坐标数据;
(3)根据第一纹理坐标索引组从所述第一纹理坐标数据中选取对应的坐标数据,对其进行合并,并重新编码后形成新的纹理坐标数据,此为第二纹理坐标数据;
(4)所述第二顶点坐标数据、第二法向量坐标数据、第二纹理坐标数据以及第二纹理数据,按第二纹理单元存储,如果相同的纹理单元,选择对坐标数据合并存储。
5.根据权利要求1所述的三维模型的编码方法,其特征在于,所述的步骤1中将所述第一纹理数据进行重新编码步骤包括:
将所述第一纹理图片的地址转换为对应的网络图片的URL;
将所述第一光照数据重新编码,生成第二光照数据;
将所述第一纹理标识索引重新生成第二纹理标识索引,此第二纹理标识与第一纹理标识一一对应。
6.一种三维模型的编码系统,其特征在于,包括:
三维模型数据获取模块,用于解析并获取三维模型数据,所述三维模型数据包括:第一坐标数据、平面坐标索引组以及第一纹理标识关键字符usemtl;
纹理单元处理模块,用于遍历所述第一纹理标识关键字符usemtl,得到若干个纹理单元;
参数生成模块,将每个纹理单元作为处理单元,获取所述平面坐标索引组的预设参数;
编码模块,将所述预设参数设为索引,遍历所述每个纹理单元,分别从所述第一坐标数据中选取对应的坐标数据合并储存,获取重新编码的第二坐标数据。
7.一种可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的方法。
8.一种终端,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器依次连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-5任一项所述的方法。
CN202110028342.4A 2021-01-11 2021-01-11 一种三维模型的编码方法、装置和终端 Pending CN112802134A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110028342.4A CN112802134A (zh) 2021-01-11 2021-01-11 一种三维模型的编码方法、装置和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110028342.4A CN112802134A (zh) 2021-01-11 2021-01-11 一种三维模型的编码方法、装置和终端

Publications (1)

Publication Number Publication Date
CN112802134A true CN112802134A (zh) 2021-05-14

Family

ID=75809641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110028342.4A Pending CN112802134A (zh) 2021-01-11 2021-01-11 一种三维模型的编码方法、装置和终端

Country Status (1)

Country Link
CN (1) CN112802134A (zh)

Similar Documents

Publication Publication Date Title
CN108492338B (zh) 动画文件的压缩方法、装置、存储介质和电子装置
CN110288710B (zh) 一种三维地图的处理方法、处理装置及终端设备
CN110675479B (zh) 动态光照处理方法、装置、存储介质及电子装置
CN112989482B (zh) Bim模型数据的生成方法及装置和构建方法及装置
WO2023226371A1 (zh) 目标对象交互式重现的控制方法、装置、设备及存储介质
CN111179402B (zh) 一种目标对象的渲染方法、装置及系统
CN111222611B (zh) 一种基于颜色的堆叠式三维码编码方法、编码装置、解码方法、解码装置以及存储介质
CA2603432A1 (en) Rendering 3d computer graphics using 2d computer graphics capabilities
CN110012338A (zh) 一种显示弹幕数据的方法、装置、计算机设备和存储介质
JP2023501640A (ja) 点群処理の方法、コンピュータシステム、プログラム及びコンピュータ可読記憶媒体
KR100901284B1 (ko) 3d 모델 식별자를 이용한 랜더링 시스템 및 방법
CN114491352A (zh) 模型加载方法、装置、电子设备及计算机可读存储介质
CN111246249A (zh) 一种图像编码方法、编码装置、解码方法、解码装置及存储介质
CN112802134A (zh) 一种三维模型的编码方法、装置和终端
EP4084491A1 (en) Dividing an astc texture to a set of sub-images
CN113938667B (zh) 基于视频流数据的视频数据传输方法、装置及存储介质
CN114913277A (zh) 一种物体立体交互展示方法、装置、设备及介质
US11170043B2 (en) Method for providing visualization of progress during media search
CN113992679A (zh) 一种汽车图像显示方法、系统及设备
CN117113302B (zh) 文本水印生成方法和文本验证方法
KR102131190B1 (ko) 온라인 상에서 3d모델을 제공하는 시스템
US11948338B1 (en) 3D volumetric content encoding using 2D videos and simplified 3D meshes
CN116883575B (zh) 建筑群渲染方法、装置、计算机设备和存储介质
CN116897541A (zh) 使用渲染引擎的沉浸式技术媒体格式(itmf)规范的映射架构
CN116029026A (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