一种任意人头与任意人体的3d结合方法

文档序号:6535204阅读:484来源:国知局
一种任意人头与任意人体的3d结合方法
【专利摘要】本发明涉及三维人体建模【技术领域】,具体的说是一种任意人头与任意人体的3D结合方法,步骤1:在三维建模软件中导出任意三维人头模型文件和任意三维人体模型文件,采用OBJ文件格式,通过解析模块对OBJ文件格式进行解析,获取任意三维人头/人体模型的参数;步骤2:对结合处的顶点参数逐一进行命名,建立选取点的索引;步骤3:根据步骤2中得到的索引,定位至待结合的顶点参数的对应坐标,一一进行重合,即完成任意三维人头与任意三维人体模型的3D结合。本发明提供的方法,通过利用OBJ文件格式的文本优势,提取人体模型的顶点参数速度快;利用插值计算法获得了变形函数公式,实现输入任意人头和任意人体进行结合。
【专利说明】一种任意人头与任意人体的3D结合方法
[【技术领域】]
[0001]本发明涉及三维人体建模【技术领域】,具体的说是一种任意人头与任意人体的3D
结合方法。
[【背景技术】]
[0002]随着虚拟现实技术的发展,虚拟人在工程领域的应用越来越广泛,但是虚拟人模型的实时性和逼真性之间的矛盾一直是虚拟人应用中亟待解决的问题。
[0003]总结现有三维人体还原技术,主要方法如下:
[0004](I)在3维软件中建立人体模型
[0005](2)扫描人体建模方式
[0006]方法(I)虽然可以很高的还原但制作太麻烦需要大量时间和成本方法,而(2)虽然精确速度快但成本高,操作难。
[
【发明内容】
]
[0007]本发明的目的在现有技术的基础上进行改进,提供一种可以输入任意人头和人体进行结合的方法。
[0008]本发明的任意人头与任意人体的3D结合方法,通过以下技术方案实现,由解析标准三维人头和人体模型文件和人头人体进行结合来实现,包含以下步骤:
[0009]步骤1:在三维建模软件中导出任意三维人头模型文件和任意三维人体模型文件,所述三维人头模型文件和三维人体模型文件采用OBJ文件格式,通过解析模块对OBJ文件格式进行解析,获取任意三维人头/人体模型的参数;
[0010]导出前手动调整三维人头模型与三维人体模型的中心点归0,即x:0,y:不变,
z:0o
[0011 ] OBJ文件有的有上万行信息,所述OBJ文件格式以纯文本形式存储三维人头/人体模型的顶点、法线和纹理坐标和材质使用信息,OBJ文件格式中:
[0012]V表示指定的一个顶点,此前缀后跟着3个单精度浮点数,分别表示该点的X、y、z轴坐标;
[0013]Vt表示指定的一个纹理坐标,此前缀后跟着2个单精度浮点数,分别表示此纹理坐标的U、V值;
[0014]vn表示指定的一个法线向量,此前缀后跟着3个单精度浮点数,分别表示此法线向量的X、1、Z轴坐标;
[0015]f表示指定的一个表面,即一个三角形图元。
[0016]为了方便和效率我们用软件的方式一行一行的解析。解析步骤如下:所述解析模块将OBJ文件格式用写字板打开,所述人头/人体参数以若干行显示,用正则表达式进行批量读取,逐行提取OBJ文件格式中的人头/人体参数,所述人头/人体参数包括顶点参数V,面参数f,uv参数vt,法线参数vn,再根据JS代码得到顶点信息。[0017]所述正则表达式用于批量读取顶点参数,正则表达式,又称正规表示法、常规表示法正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,得到如下表达式:
【权利要求】
1.一种任意人头与任意人体的3D结合方法,其特征在于:所述方法由解析标准三维人头和人体模型文件和人头人体进行结合来实现,包含以下步骤, (1)步骤1:在三维建模软件中导出任意三维人头模型文件和任意三维人体模型文件,所述三维人头模型文件和三维人体模型文件采用OBJ文件格式,通过解析模块对OBJ文件格式进行解析,获取任意三维人头/人体模型的参数; (2)步骤2:在三维建模软件中手动选取三维人头模型和是三维人体模型结合处的顶点参数逐一进行命名,建立选取点的索引,所述索引与结合处顶点参数的X、1、Z轴坐标--对应; (3)步骤3:根据步骤2中得到的索引,定位至待结合的顶点参数的对应坐标,并将三维人头模型和三维人体模型结合处对应的顶点一一进行重合,即完成任意三维人头与任意三维人体模型的3D结合。
2.如权利要求1所述的一种任意人头与任意人体的3D结合方法,其特征在于:导出前手动调整三维人头模型与三维人体模型的中心点归0,即x:0,y:不变,z:0o
3.如权利要求1所述的一种任意人头与任意人体的3D结合方法,其特征在于:所述OBJ文件格式以纯文本形式存储人头/人体参数,包括三维人头/人体模型的顶点、法线和纹理坐标和材质使用信息,解析步骤如下:所述解析模块将OBJ文件格式用写字板打开,所述人头/人体参数以若干行显示,用正则表达式进行批量读取,逐行提取OBJ文件格式中的人头/人体参数,所述人头/人体参数包括顶点参数V,面参数f,uv参数Vt,法线参数vn,再根据JS代码得到顶点信息。
4.如权利要求3所述的一种任意人头与任意人体的3D结合方法,其特征在于:0BJ文件格式: V表示指定的一个顶点,此前缀后跟着3`个单精度浮点数,分别表示该点的x、y、z轴坐标; Vt表示指定的一个纹理坐标,此前缀后跟着2个单精度浮点数,分别表示此纹理坐标的U、V值; vn表示指定的一个法线向量,此前缀后跟着3个单精度浮点数,分别表示此法线向量的X、Y、Z轴坐标; f表示指定的一个表面,即一个三角形图元。
5.如权利要求3所述的一种任意人头与任意人体的3D结合方法,其特征在于:所述JS代石马为 resultl=vertex_pattern.exec (line);其中 resultl 为顶点;vertex_pattern 为顶点正则表达式;line为要解析的行。
6.如权利要求3所述的一种任意人头与任意人体的3D结合方法,其特征在于:所述正则表达式用于批量读取顶点参数,所述正则表达式表达式如下: Var vertex_pattern*/v(+[\d|\_|\+|\_|e]+) (+ [\d \_|\+|\_|e]+)(+[\dI\_I\+I\_Ie]+)/;//vn float float float Var normal_pattern*/vn(+[\dI\_I\+I\-1e]+) (+[\d|\_|\+|\-|e]+)(+[\dI\_I\+I\_Ie]+)/;//vt float float float Var uv_pattern*/vt(+[\d|\」\+|\-|e]+) (+[\d|\_|\+|\-|e]+)/;//f vertexvertex vertexVar face-patternl*f(+\d+)(+\d+)(+\d+)(+\d+)(+\d+)?/。
【文档编号】G06T13/40GK103700129SQ201410007532
【公开日】2014年4月2日 申请日期:2014年1月8日 优先权日:2014年1月8日
【发明者】徐小明, 徐宇, 夏敏 申请人:上海明穆电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1