一种基于环形区域的透明贴图方法与流程

文档序号:11145170阅读:574来源:国知局
一种基于环形区域的透明贴图方法与制造工艺

本发明涉及计算机应用技术和虚拟试衣领域,特别是涉及一种基于环形区域的透明贴图方法。



背景技术:

随着虚拟试衣技术和服装电子商务的发展,互联网成为服装业一个重要的销售渠道,更直观、更高效的虚拟试衣技术能够给客户提供更加真实的购物体验。

然而,现有的虚拟试衣技术并不成熟,系统尚不完善。国内的虚拟试衣多为2D系统,通过把服装的平面贴图覆盖到模特的照片上来完成试衣。此类系统缺乏真实性,很难达到理想的效果。3D的虚拟试衣能给用户更直观的感受,但目前,技术上衣服和人体匹配效果不理想,试衣动作限制大。

因此,业界急需一种具有高准确性与鲁棒性的透明贴图方法。



技术实现要素:

为了克服上述技术的不足,本发明提供了一种基于环形区域的透明贴图方法,旨在降低计算量来提升系统的运算效率,同时解决人体模型和衣服模型的网格穿透问题。本方法耗时少,鲁棒性高。

下面对一些概念进行阐述或者定义并阐述技术方案实现:

定义一:透明贴图;透明贴图并不是真正意义上的透明,而是将图层内不需要显示的部分标记为透明状态,显示的部分标记为不透明,在界面展示时只会显示颜色属性为不透明的图层。同理,在试衣系统中可以把和衣服相交的人体区域设置成透明,只显示衣服的颜色,这样就可以避免匹配效果不佳时贴图出现穿透的情况。

定义二:人体环形区域;网格模型导入后在Z轴方向遍历相接的网格,可以得到一圈圈圆环状的网格区间,通过环形区可快速得到粗略的服装覆盖身体的区域。

定义三:变换矩阵;模型坐标系和世界坐标系转换的矩阵。

定义四:UV展开;UV是定位2D纹理的坐标点,UV直接与模型上的定点相对应。模型上的每个UV点依附于模型的每个顶点。

定义五:UV纹理映射三维空间;二维纹理映射就是从二维纹理平面到三维物体表面的映射。一般二维纹理平面是有范围限制的,在这个平面区域内,每点都可用数学函数表达,从而可以离散的分离出每点的灰度值和颜色值,这个平面区域称为纹理空间。

定义六:射线与三角面求交;给定一条射线,其中O射线的起点,D是射线的方向。射线的方程式定义为:

三角形的参数方程如下,其中V0,V1和V2是三角形的三个顶点,u,v,是V1和V2的权重,1-u-v是V0的权重,并且满足,。

联立上面两个方程组,将t,u,v提取出来作为未知数,得到下面的线性方程组。

令E1=V1-V0,E2=V2-V1,T=O-V0,将其代入上面的方程式可化简得:

令P=(D×E2),Q=T×E1并根据混合积公式可得:

通过重用上述公式,实现加快计算过程。

本发明采用的技术方案如下:

基于3D MAX的透明贴图方法,包括3DMAX环境下人体模型环形区域的构建、射线求交方法。

其中,人体环形区域的构建部分,其特征在于:

人体环形区域被划分为六个部分,分别是:左臂、右臂、左腿、右腿、躯干、脖子,人体环形区域默认初始化为不透明状态,构建完毕后将衣服模型和人体环形区域的坐标系都转换成世界坐标系,然后按照衣服Z坐标范围计算覆盖,被选中的区域设置为透明状态。左臂的坐标系是世界坐标系顺时针旋转,右臂是世界坐标系逆时针旋转。人体的覆盖区域选中完毕后排序,根据经验,排序后的边界位置为人体的手臂、腿、脖子的边缘,将处于边界位置的环形区域设置为半透明状态;环形区选取的操作可极大减少后一步射线求交方法的计算量。

射线求交方法的特征在于:

人体模型被展开为256x256的UV像素点,遍历各个像素点,根据像素点的索引值判断其是否属于被选取的环形区域,不是就跳过,是就进入射线求交环节;对于射线求交方法,首先将UV像素点映射到三维空间,计算出其具体坐标值,然后构建人体环形区域内像素点所在的外部法向量,即射线,计算各个区域的射线是否与外部衣服面片相交,如果相交则将射线所在的面片设置为透明。

所有计算过程处理完毕后会得到一张256x256的PNG纹理图片,可以直接通过3DMAX贴入人体模型当中。

与现有技术相比,本发明的有益效果是:

1.过滤掉了非覆盖部分的UV点,极大减少了射线求交的计算量;

2.引入了高效的射线求交方法,无需先判断射线是否与平面相交然后判断点是否在三角面片内;

3.减少了衣服和人体的穿透,提高用户视觉体验。

附图说明

图1为人体环形区域模拟图。

图2为射线求交法生成的人体透明贴图。

具体实施方式

本发明是利用计算机处理得到结果,软件平台基于3dmax 2014 SDK和Visual Studio 2010,使用C++开发语言对系统进行开发。3dsMaxSDK包括一套丰富的C++抽象类(接口)和库,3dsMaxSDK不依靠各种标准 Microsoft Windows API所需的最新的Microsoft Windows操作系统为开发应用程序以外的第三方库,为广大CAD开发者所接受,也适用于虚拟试衣技术的实现。

本发明中提到的方法主要包括两个部分,一是环形区域的构建,二是射线求交部分,两个步骤求出人体模型中被衣服覆盖的区域。

首先程序导入FBX格式的人体和衣服模型,如图1所示,当模型数据初始化完成后,在Z轴方向遍历相接的人体模型网格,可以得到一圈圈圆环状的网格区间,如图2所示,通过环形区可快速得到粗略的服装覆盖身体的区域,人体模型被分割为不同的环形区域标识,分别是左臂、右臂、左腿、右腿、躯干、脖子。本发明中人体手臂呈45o张开状态,所以在计算手臂环形区时需要预先旋转Z轴坐标系,然后再沿着Z轴坐标生成环形区域。

接下来按照衣服网格模型Z轴的ymin和ymax选取人体环形区域所在的面片集,躯干、左腿、右腿区域直接按照衣服Z轴方向选取,左臂、右臂则按照上一个步骤的方法,坐标系旋转45o人体环形区域。

下一步射线求交方法是为了解决衣服网格模型存在V字领口的问题,根据公式:

可以快速求出UV像素点对应的射线是否与衣服面片相交,在上一步环形区域的操作中,有一部分不被衣服覆盖的面片被标记为透明。本方法中人体模型被展开为256x256的UV像素点,遍历各个像素点,根据像素点的索引值判断其是否属于被选取的环形区域,不是就跳过,是就进入射线求交环节;对于射线求交方法,首先将UV像素点映射到三维空间,计算出其具体坐标值,然后构建人体环形区域内像素点所在的外部法向量,即射线,计算各个区域的射线是否与外部衣服面片相交,如果相交则将射线所在的面片设置为透明。通过射线求交即可将这些面片改变为不透明状态。

本发明中,躯干表面的射线可能和外部衣服手臂网格面片相交,为了避免这一状况,本发明提出一种距离经验值,即限定射线与相交面片的空间距离。

人体和衣服网格模型有一定的距离,本发明提出阈值为6,超过这一距离,则判定射线并没有与衣服网格面片相交。所有计算过程处理完毕后会得到一张256x256的PNG纹理图片,可以直接通过3DMAX贴入人体模型当中。

以上展示和描述了本发明的基本原理和主要特征和本发明的优点,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1