CN103366401B - 多层次虚拟服饰试穿的快速显示方法 - Google Patents

多层次虚拟服饰试穿的快速显示方法 Download PDF

Info

Publication number
CN103366401B
CN103366401B CN201310338389.6A CN201310338389A CN103366401B CN 103366401 B CN103366401 B CN 103366401B CN 201310338389 A CN201310338389 A CN 201310338389A CN 103366401 B CN103366401 B CN 103366401B
Authority
CN
China
Prior art keywords
triangle
summit
model
grid
dress ornament
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.)
Active
Application number
CN201310338389.6A
Other languages
English (en)
Other versions
CN103366401A (zh
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.)
Jinjiang Wujie Brand Management Co.,Ltd.
Original Assignee
Shanghai Quda Network 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 Shanghai Quda Network Technology Co ltd filed Critical Shanghai Quda Network Technology Co ltd
Priority to CN201310338389.6A priority Critical patent/CN103366401B/zh
Publication of CN103366401A publication Critical patent/CN103366401A/zh
Application granted granted Critical
Publication of CN103366401B publication Critical patent/CN103366401B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)

Abstract

本发明涉及一种多层次虚拟服饰试穿的快速显示方法,对多层虚拟服饰模型按照从内到外的顺序对每一层网格虚拟服饰模型的网格的顶点进行遮挡检测,修正被遮挡的顶点的法向,判断被遮挡的顶点与当前层之外的层的相交结果,根据相交结果对当前层的顶点进行消隐或挤压,并显示处理结果。在这一过程中,还引用了每一层网格虚拟服饰模型的网格的顶点的一阶邻域表以及每一层网格虚拟服饰模型的网格的顶点的体素化Hash表,加速遮挡检测及获取被遮挡的顶点的相邻网格。本发明所述的多层次虚拟服饰试穿的快速显示方法,效率较高,执行显示结果的时间较短。

Description

多层次虚拟服饰试穿的快速显示方法
技术领域
本发明涉及三维设计领域,具体而言,涉及一种多层次虚拟服饰试穿的快速显示方法。
背景技术
虚拟服饰试穿的显示技术被广泛应用于电子商务的虚拟服饰试穿和展示的应用中。
相关技术中实现虚拟服饰试穿的显示,首先是由美工创建若干个网格人体模特模型,然后基于这些网格人体模特模型,创建与之相适应的网格虚拟服饰模型。当需要进行单件服饰的试穿时,内层为网格人体模特模型,外层为与之相适应的虚拟服饰模型,当网格人体模特模型有造型动作时,可能会出现不正常的显示效果,比如出现内层网格人体模特模型的顶点穿刺出外层虚拟服饰模型。为了消除这种不正常的显示效果,需要根据内层网格人体模特模型的网格的顶点的法向与外层虚拟服饰距离内层网格人体模特模型的最近的顶点的相邻网格的相交结果来判定内层的网格人体模特模型的网格的顶点是否被遮挡,再将判定被遮挡的网格根据相交结果进行显示、消隐或挤压:若不相交,判为未遮挡,对网格人体模特模型的顶点予以显示;若相交于法向的正向,对人体网格被遮挡的顶点以及由被遮挡的顶点组成的网格应用网格不可见面消隐;若相交于法向的负向,沿法向的负向挤压网格人体模特模型网格的顶点;从而正确显示虚拟服饰试穿的效果。
在实际操作中,往往一个网格人体模特模型上会对应创建有成百上千套服饰模型。由于每件服饰模型都是独立创建的,当需要搭配试穿时,以两件服饰为例,如果内穿长裤,外穿长衫时等,将内穿的虚拟服饰模型作为内层人体进行处理,将外层的虚拟服饰模型作为虚拟服饰进行处理,这样将两件独立创建的虚拟服饰模型搭配在一起时,可能会出现如图1所示的产生问题的效果示意图,对比如图2所示的正常的效果示意图,可以看出在A点及B点,会产生从外层虚拟服饰模型中穿刺出来的情况,想要获得正确的效果图,就需要对这些异常情况进行修正,查找异常的原因可以发现,此时裤腰带环的局部网格的顶点的法向如图4所示,在C点与网格人体模特模型自内而外的网格的顶点的法向不同,修正异常情况就需要对内层虚拟服饰模型被遮挡的网格的顶点的法向进行修正;又由于试穿的虚拟服饰模型为多层,多层虚拟服饰试穿的显示需要处理的数据是单层虚拟服饰试穿的显示需要处理的数据的多倍,得到显示结果所需要的耗时较长。因此,相关技术中的虚拟服饰的显示方法用于多层虚拟服饰模型处理时,有可能出现内层虚拟服饰模型的局部网格的顶点的法向不符合网格人体模特模型自内而外的网格的顶点的法向,从而生成错误的显示效果,还会由于多层虚拟服饰的数据量的增加而引起遮挡判断的时间较长,从而效率较低,执行显示结果的时间较长。
发明内容
本发明的目的在于提供一种多层次虚拟服饰试穿的快速显示方法,以解决上述的问题。
在本发明的实施例中提供了一种多层次虚拟服饰试穿的快速显示方法,包括:创建网格人体模特模型并根据所述网格人体模特模型创建多层网格虚拟服饰模型,还包括:
获取每一层所述网格虚拟服饰模型的网格及网格的顶点,生成每一层网格虚拟服饰模型的网格的顶点的一阶邻域表;
将每一层所述网格虚拟服饰模型的网格的顶点按照预定的体素大小voxel size划分体素,生成每一层所述网格虚拟服饰模型的网格的顶点的体素化哈希Hash表;
根据所述每一层网格虚拟服饰模型的网格的顶点的一阶邻域表,以及所述每一层所述网格虚拟服饰模型的网格的顶点的体素化哈希Hash表,按照从内到外的顺序对所述每一层所述网格虚拟服饰模型的网格的顶点进行遮挡检测;
若当前层的网格虚拟服饰模型的网格的顶点中存在被遮挡的顶点,则根据所述网格人体模特模型的网格中对应该被遮挡的顶点的最近点的法向修正所述被遮挡的顶点的法向;
根据造成遮挡的顶点所在层的网格虚拟服饰模型的网格的顶点的一阶邻域表,获取造成遮挡的顶点的相邻网格;
获取修正后的所述被遮挡的顶点的法向与所述造成遮挡的顶点的相邻网格之间的相交结果,根据所述相交结果对当前层的顶点进行消隐或挤压,并显示处理结果。
本发明上述实施例的一种多层次虚拟服饰试穿的快速显示方法,通过使用体素化Hash表和顶点一阶邻域表,以空间换时间,初步对每一层所述网格虚拟服饰模型的网格的顶点是否被外层所遮挡进行检测,减少了数据量,从而提高了遮挡判断的速度;又通过修正法向,使内层虚拟服饰模型的被遮挡的顶点的异常的法向符合自内而外的网格人体模特模型的网格的顶点的法向,得到正确的所述被遮挡的顶点的法向与所述造成遮挡的顶点的相邻网格之间的相交结果,从而根据相交结果得出正确的显示效果,最终得到的效果图示意图如图2所示,是正常的显示效果示意图,对比产生问题的虚拟服饰的效果示意图如图1所示,在A点及B点,不再存在穿刺。因此,本发明的一种多层次虚拟服饰试穿的快速显示方法,如图4及图5所示,在C点修正了虚拟服饰模型内层的被遮挡的顶点的法向使其符合网格人体模特模型自内而外的网格的顶点的法向,从而使当前层的被遮挡的顶点的法向与外层虚拟服饰模型相交的判断正常,最终的显示效果正常,同时提高了检测遮挡的速度,从而提高了效率,执行显示结果的时间较短。
附图说明
图1示出了相关技术中产生问题的多层次虚拟服饰试穿的效果示意图;
图2示出了本发明的正常的多层次虚拟服饰试穿的效果示意图;
图3示出了本发明的多层次虚拟服饰试穿的快速显示方法的一种实施例的示意图;
图4示出了本发明的虚拟服饰模型的被遮挡的局部网格的顶点的修正前的法向的示意图;
图5示出了本发明的虚拟服饰模型的被遮挡的局部网格的顶点的修正后法向的示意图。
具体实施方式
下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。
一种多层次虚拟服饰试穿的快速显示方法,包括:创建网格人体模特模型并根据所述网格人体模特模型创建多层网格虚拟服饰模型,如图3所示,还包括:
S101:获取每一层所述网格虚拟服饰模型的网格及网格的顶点,生成每一层网格虚拟服饰模型的网格的顶点的一阶邻域表;
S102:将每一层所述虚拟服饰模型的网格的顶点按照预定的体素大小voxel size划分体素,生成每一层所述网格虚拟服饰模型的顶点的体素化哈希Hash表;
S103:根据所述每一层网格虚拟服饰模型的网格的顶点的一阶邻域表,以及所述每一层所述网格虚拟服饰模型的网格的顶点的体素化哈希Hash表,按照从内到外的顺序对所述每一层所述网格虚拟服饰模型的网格的顶点进行遮挡检测;
S104:若当前层的网格虚拟服饰模型的网格的顶点中存在被遮挡的顶点,则根据所述网格人体模特模型的网格中对应该被遮挡的顶点的最近点的法向修正所述被遮挡的顶点的法向;
S105:根据造成遮挡的顶点所在层的网格虚拟服饰模型的网格的顶点的一阶邻域表,获取造成遮挡的顶点的相邻网格;
S106:获取修正后的所述被遮挡的顶点的法向与所述造成遮挡的顶点的相邻网格之间的相交结果,根据所述相交结果对当前层的顶点进行消隐或挤压,并显示处理结果。
在上述步骤之前,美工完成网格人体模特模型网格和多套虚拟服饰网格,用户指定该多套服饰的内外层次顺序,这些作为上述步骤的输入。当当前层之外的层为多层时,从离当前层最近至最远的每一层当前层之外的层,对每层都同样处理,剩下每层可见部分,组合出最终的结果。
本发明上述实施例的一种多层次虚拟服饰试穿的快速显示方法,通过使用体素化Hash表和顶点一阶邻域表,以空间换时间,初步对每一层所述网格虚拟服饰模型的网格的顶点是否被外层所遮挡进行检测,减少了数据量,从而提高了遮挡判断的速度;又通过修正法向,使内层虚拟服饰模型的被遮挡的顶点的异常的法向符合自内而外的网格人体模特模型的网格的顶点的法向,得到正确的所述被遮挡的顶点的法向与所述造成遮挡的顶点的相邻网格之间的相交结果,从而根据相交结果得出正确的显示效果,最终得到的效果图示意图如图2所示,是正常的显示效果示意图,对比产生问题的虚拟服饰的效果示意图如图1所示,在A点及B点,不再存在穿刺。因此,本发明的一种多层次虚拟服饰试穿的快速显示方法,如图4及图5所示,在C点修正了虚拟服饰模型内层的被遮挡的顶点的法向使其符合网格人体模特模型自内而外的网格的顶点的法向,从而使当前层的被遮挡的顶点的法向与外层虚拟服饰模型相交的判断正常,最终的显示效果正常,同时提高了检测遮挡的速度,从而提高了效率,执行显示结果的时间较短。
优选的,创建网格人体模特模型并根据网格人体模特模型创建多层网格虚拟服饰模型包括:
创建三角形人体模特模型并根据三角形人体模特模型创建多层三角形虚拟服饰模型;
获取每一层网格虚拟服饰模型的网格及网格的顶点包括:
获取每一层三角形虚拟服饰模型的三角形及三角形的顶点。
通过明确三维人体模特模型及虚拟服饰模型的网格由三角形构成使得三维人体模特模型与虚拟服饰模型的建模更为简单明确,也使与之相关的运算减少了运算量,提高了运算效率。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,生成每一层网格虚拟服饰模型的网格的顶点的一阶邻域表包括:根据三角形虚拟服饰模型的三角形的顶点及三角形虚拟服饰模型的三角形生成与三角形虚拟服饰模型的三角形的顶点相邻的三角形的一阶领域表其中的为三角形虚拟服饰模型的三角形的顶点,为三角形虚拟服饰模型的三角形指向网格虚拟服饰模型的三角形的顶点的索引, 为与三角形虚拟服饰模型的顶点相邻的第x个三角形的索引,其中为三角形虚拟服饰模型的顶点的空间坐标;p为三角形虚拟服饰模型的三角形的顶点总个数;n是三角形数组的长度,且其在数值上等于三角形虚拟服饰模型的三角形总个数的3倍;其中,上述me是一个与变量x不同的变量,表示数组的长度。
其中,从三维模型的表示方法可以容易知晓:{vc}记录网格的顶点空间信息,{tc}记录三角形的顶点之间的拓扑连接关系。由于在以后的计算中,经常碰到两类查询:1)哪些顶点是和指定的顶点有连接关系;2)指定顶点附近的三角形的面片有哪些。理论上,遍历{tc}可以获得查询答案,但会造成性能很差。所以本发明采用“空间换时间”策略,遍历一遍{tc}可以获得顶点一阶邻域表{Nc}。即对于任意顶点可以直接查询获得其中是指三角形的面片的索引index,通过查询{tc}的第 即得到相邻顶点。
例如,对{vc}中的第1个顶点由{tc}={1,2,99,1,10,21,…}可以得到即过顶点的邻近三角形的面片有网格的第0个三角形的面片,第1个三角形的面片等等。由上节所述,第0个三角形的面片的顶点是{tc}中的第0,1,2三位,即{vc}中index分别为{1,2,99}个顶点。第1个三角形的面片顶点是{tc}中的第3,4,5三位,即{vc}中index分别为{1,10,21}三个顶点。
因此,通过建立与虚拟服饰模型的三角形的顶点相邻的三角形的一阶邻域表,使得对于虚拟服饰模型的三角形的面片的定位及寻找更为简单方便,提高了本方法的运算速度。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,将每一层所述网格虚拟服饰模型的网格的顶点按照预定的体素大小voxelsize划分体素,生成每一层所述网格虚拟服饰模型的顶点的体素化哈希Hash表包括:
根据三角形虚拟服饰模型的三角形的顶点生成体素的Hash表{Hc}:将多层三角形虚拟服饰模型的三角形的单个顶点体素化,获得单个顶点的哈希值以及多层三角形虚拟服饰模型的三角形的顶点的体素化哈希Hash表p为三角形虚拟服饰模型的三角形的顶点总个数。
其中,由于本发明对于性能的要求较高,所以需要对算法进行提速,本发明采用了体素化的方法,聚簇的思路来减少不必要的运算量,从而达到提速的目的。
本发明中采用voxel size=5,将三维空间剖分为边长为5的体素(voxel)群空间。(备注:体素可以认为就是一个小立方体,本文中是采用正立方体)。
对于三角形虚拟服饰模型的三角形的单个顶点容易得到
X i d c = f l o o r ( x e c / v o x e l s i z e )
Y i d c = f l o o r ( y e c / v o x e l s i z e )
Z i d c = f l o o r ( z e c / v o x e l s i z e )
即单个顶点落在坐标为的体素内。为了便于后期检索,需对其Hash化,简单的采用int型数据的低三位byte来记录。由于三维人体模特的三角形数据分布(以男性模特来算)坐标Y:0~185,X:-55~55,Z:-15~15,其中的存在负数的情况。为了避免符号位的问题,对其做一定偏移保证其值均为正数。故
X i d c = 128 + f l o o r ( x e c / v o x e l s i z e ) ,
Y i d c = 128 + f l o o r ( y e c / v o x e l s i z e ) ,
Z i d c = 128 + f l o o r ( z e c / v o x e l s i z e ) .
Hash化公式为
H a s h = ( ( X i c c = 128 + f l o o r ( x e c / v o x e l s i z e ) ) < < 16 ) | ( ( Y i d c = 128 + f l o o r ( y e c / v o x e l s i z e ) ) < < 8 ) | ( Z i d c = 128 + f l o o r ( z e c / v o x e l s i z e ) )
利用上述公式,对虚拟服饰模型的三角形中的每个顶点,可以计算得到它所对应的Hash值。综上所述容易知晓:落在同一体素中的顶点具有相同的Hash值。
根据三角形虚拟服饰模型的三角形的顶点生成体素的Hash表{Hc}:将三角形虚拟服饰模型的三角形的单个顶点中的单个顶点体素化,,生成体素的第二Hash表p为三角形虚拟服饰模型的三角形的顶点总个数。
该表给出三角形虚拟服饰模型的三角形的顶点的哈希化结果中的Hash数值共有哪些,每个Hash值对应的三角形顶点是哪些。
因此,通过将网格的顶点按体素做了聚簇,用Hash值来散列化顶点。从原理上来说,减少了运算量,提高了多层虚拟服饰模型的遮挡的判断速度,从而提高整个方法的效率。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,根据每一层网格虚拟服饰模型的网格的顶点的一阶邻域表,以及每一层网格虚拟服饰模型的网格的顶点的体素化哈希Hash表,按照从内到外的顺序对每一层网格虚拟服饰模型的网格的顶点进行遮挡检测包括:
依次遍历当前层的顶点,根据Hash表获取与当前层的顶点相邻的八个体素;
将与当前层的顶点相邻的八个体素与当前层之外的层的顶点的体素化哈希表相对比:
若与当前层的顶点相邻的八个体素中无当前层之外的层的顶点,判断为当前层的顶点未被当前层之外的层的三角形虚拟服饰模型的三角形的顶点所遮挡;
若与当前层的顶点相邻的八个体素中存在当前层之外的层的顶点,判断为当前层的顶点被当前层之外的层的三角形虚拟服饰模型的三角形的顶点所遮挡。
通过体素的对比缩小需要判断的被遮挡的顶点所在的区域,进一步缩短遮挡判断的时间,从而效率较高,执行显示结果的时间缩短。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,若当前层的网格虚拟服饰模型的网格的顶点中存在被遮挡的顶点,则根据网格人体模特模型的网格中对应该被遮挡的顶点的最近点的法向修正被遮挡的顶点的法向包括:
获取与当前层被遮挡的单个顶点距离最近的三角形人体模特模型的三角形中的点作为蒙皮点,遍历被遮挡的顶点,得到被遮挡的当前层三角形虚拟服饰模型的蒙皮点;
获取当前层被遮挡的三角形虚拟服饰模型的三角形的单个顶点的法向及其对应的蒙皮点的法向
根据当前层被遮挡的三角形虚拟服饰模型的三角形的单个顶点的法向及其对应的蒙皮点的法向的点积是否小于阈值,修正被遮挡的当前层三角形虚拟服饰模型的三角形的顶点的法向生成修正法向 其中的阈值大于等于0.5,小于等于0.9。
当前层被遮挡的三角形的顶点的法向方向与其在三角形人体模特模型三角形上的蒙皮点的法向方向大部分情况下较为接近,有时局部也存在较大偏差(如图4所示的裤子的皮带环C处等),所以需对其进行约束,这里的阈值由经验而得,可以在0.5~0.9之间取值。由于修正法向是可见性判断以及后期挤压操作所需的方向,所以取值必须保证其方向按人体方向由内向外。
因此,即使当前层的顶点的法向与三角形人体模特模型法向相差较大,通过对与三角形人体模特模型法向相差较大的法向进行修正,也可以在判断被遮挡之后,顺利的进行相交检测,进而得到正确地相交结果,从而方便对相交结果进行处理,得到正确的多层虚拟服饰试穿的显示效果。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,获取与当前层被遮挡的单个顶点距离最近的三角形人体模特模型的三角形中的点作为蒙皮点,包括:
将三角形人体模特模型的三角形的顶点按照预定的体素大小voxelsize划分体素,生成三角形人体模特模型的三角形的顶点的体素化哈希Hash表{Hm};
获取被遮挡的单个顶点的8个空间顶点的Hash值:
{ x e c - v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c - v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
{ x e c - v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
{ x e c - v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
根据被遮挡的单个顶点的8个空间顶点的Hash值,查询三角形人体模特模型的三角形的顶点的体素化哈希Hash表{Hm}中是否存在与被遮挡的单个顶点的8个空间顶点的Hash值相等的一个或多个三角形人体模特模型的三角形的顶点的Hash值;
若{Hm}中不包含被遮挡的单个顶点的8个空间顶点的Hash值,则将被遮挡的单个顶点的8个空间顶点的Hash值的坐标步长由voxelsize/2逐步扩大,直至在{Hm}中找到与被遮挡的单个顶点的8个空间顶点的Hash值相等的一个或多个Hash值生成被遮挡的单个顶点的近邻体素;
根据近邻体素及{Hm}获取近邻体素中包含的三角形人体模特模型的三角形的顶点;
获取近邻体素中包含的三角形人体模特模型的三角形的顶点与被遮挡的单个顶点的距离;
选取预定数量距离最近的近邻体素中包含的所述三角形人体模特模型的三角形的顶点作为近邻顶点;
获取三角形人体模特模型的三角形及三角形的顶点,生成三角形人体模特模型的三角形的顶点的一阶邻域表;
根据近邻顶点及三角形人体模特模型的三角形的顶点的一阶邻域表获取近邻顶点的相邻三角形;
获取被遮挡的单个顶点与近邻顶点的相邻三角形的距离,选取距离最近的近邻顶点的相邻三角形;
获取被遮挡的单个顶点对距离最近的近邻顶点的相邻三角形垂直投影点若投影点在三角形内部,与距离最近的点为最终的蒙皮点;
若投影点不在三角形内部,获取与投影点距离最近的三角形的边:以投影点对该边做投影得到投影点若投影点在三角形的边上,则投影点为最终的蒙皮点;若投影点在所述三角形的边的延长线上,则三角形靠近投影点的顶点即为为最终的蒙皮点。
通过使用Hash表及顶点一阶邻域表获取与所述被遮挡的单个顶点距离最近的所述近邻顶点的相邻三角形,迅速获取蒙皮点,可以快速准确的对被遮挡的顶点的法向进行修正,以便在遮挡检测之后,顺利的进行相交检测,进而得到正确地相交结果,对相交结果进行处理,最终得到正确的多层虚拟服饰试穿的显示效果。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,所述获取修正后的被遮挡的顶点的法向与造成遮挡的顶点的相邻网格之间的相交结果,根据相交结果对当前层的顶点进行消隐或挤压,并显示处理结果包括:
判断修正后的被遮挡的顶点的法向与造成遮挡的顶点的相邻三角形的相交点是否在三角形的内部;
若相交点在三角形的内部,且相交点位于修正后的被遮挡的顶点的法向的负向或被遮挡的顶点位于造成遮挡的顶点的相邻三角形面上,对被遮挡的顶点进行挤压,并显示挤压后的结果;
若相交点在三角形的内部,且相交点位于修正后的被遮挡的顶点的法向的正向,判断造成遮挡的顶点的相邻三角形是否透明;
若透明,将被遮挡的顶点予以显示;
若不透明,将被遮挡的顶点进行消隐,显示消隐后的结果;遍历当前层的被遮挡的顶点,若由被遮挡的顶点组成的三角形中的单个三角形的三个顶点均与造成遮挡的顶点的相邻三角形面相交于法向的正向,删除此单个不可见三角形网格,显示删除所有不可见三角形网格后的结果。
通过使用这一种处理被遮挡的顶点与造成遮挡的顶点的相邻三角形的相交结果的方法,便于快捷准确的处理遮挡判断的结果,进而显示处理后的结果,快速完成多层虚拟服饰试穿的显示。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,挤压为被遮挡的顶点沿其法向反向移动至与造成遮挡的顶点的相邻三角形相交于被遮挡的顶点的法向的正向。
通过明确如何进行挤压,使得对于相交结果的处理方法更为明确,进一步提高多层虚拟服饰试穿的显示效率。
优选的,在上述的多层次虚拟服饰试穿的快速显示方法中,阈值为0.8。
通过将阈值设为0.8,可以迅速快捷的对被遮挡的当前层三角形虚拟服饰模型的顶点的法向进行修正,从而得到正常的显示结果。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种多层次虚拟服饰试穿的快速显示方法,包括:创建网格人体模特模型并根据所述网格人体模特模型创建多层网格虚拟服饰模型,其特征在于,还包括:
获取每一层所述网格虚拟服饰模型的网格及网格的顶点,生成每一层网格虚拟服饰模型的网格的顶点的一阶邻域表;
将每一层所述网格虚拟服饰模型的网格的顶点按照预定的体素大小voxelsize划分体素,生成每一层所述网格虚拟服饰模型的网格的顶点的体素化Hash表;
根据所述每一层网格虚拟服饰模型的网格的顶点的一阶邻域表,以及所述每一层所述网格虚拟服饰模型的网格的顶点的体素化Hash表,按照从内到外的顺序对所述每一层所述网格虚拟服饰模型的网格的顶点进行遮挡检测;
若当前层的网格虚拟服饰模型的网格的顶点中存在被遮挡的顶点,则根据所述网格人体模特模型的网格中对应该被遮挡的顶点的最近点的法向修正所述被遮挡的顶点的法向;
根据造成遮挡的顶点所在层的网格虚拟服饰模型的网格的顶点的一阶邻域表,获取造成遮挡的顶点的相邻网格;
获取修正后的所述被遮挡的顶点的法向与所述造成遮挡的顶点的相邻网格之间的相交结果,根据所述相交结果对当前层的顶点进行消隐或挤压,并显示处理结果;
其中,所述创建网格人体模特模型并根据所述网格人体模特模型创建多层网格虚拟服饰模型包括:创建三角形人体模特模型并根据所述三角形人体模特模型创建多层三角形虚拟服饰模型;
所述获取每一层所述网格虚拟服饰模型的网格及网格的顶点,包括:获取每一层三角形虚拟服饰模型的三角形及三角形的顶点。
2.根据权利要求1所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,所述生成每一层网格虚拟服饰模型的网格的顶点的一阶邻域表包括:
根据所述三角形虚拟服饰模型的三角形的顶点及所述三角形虚拟服饰模型的三角形生成与所述三角形虚拟服饰模型的三角形的顶点相邻的三角形的一阶邻域表其中的为所述三角形虚拟服饰模型的三角形的顶点,为所述三角形虚拟服饰模型的三角形指向所述三角形虚拟服饰模型的三角形的顶点的索引index, 为与所述三角形虚拟服饰模型的顶点相邻的第x个三角形的索引,其中为所述三角形虚拟服饰模型的顶点的空间坐标;p为三角形虚拟服饰模型的三角形的顶点总个数;n是三角形数组的长度,且其在数值上等于三角形虚拟服饰模型的三角形总个数的3倍;me是一个与变量x不同的变量,其表示数组的长度。
3.根据权利要求1所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,所述将每一层所述网格虚拟服饰模型的网格的顶点按照预定的体素大小voxelsize划分体素,生成每一层所述网格虚拟服饰模型的顶点的体素化Hash表包括:
根据所述三角形虚拟服饰模型的三角形的顶点生成体素的Hash表{Hc}:将多层所述三角形虚拟服饰模型的三角形的单个顶点体素化,获得单个顶点的哈希值以及多层所述三角形虚拟服饰模型的三角形的顶点的体素化Hash表其中,p为三角形虚拟服饰模型的三角形的顶点总个数。
4.根据权利要求1所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,所述根据所述每一层网格虚拟服饰模型的网格的顶点的一阶邻域表,以及所述每一层所述网格虚拟服饰模型的网格的顶点的体素化Hash表,按照从内到外的顺序对所述每一层所述网格虚拟服饰模型的网格的顶点进行遮挡检测包括:
依次遍历当前层的顶点,根据Hash表获取与所述当前层的顶点相邻的八个体素;
将所述与所述当前层的顶点相邻的八个体素与当前层之外的层的顶点的体素化哈希表相对比:
若所述与所述当前层的顶点相邻的八个体素中无所述当前层之外的层的顶点,判断为当前层的顶点未被当前层之外的层的所述三角形虚拟服饰模型的三角形的顶点所遮挡;
若所述与所述当前层的顶点相邻的八个体素中存在当前层之外的层的顶点,判断为当前层的顶点被当前层之外的层的所述三角形虚拟服饰模型的三角形的顶点所遮挡。
5.根据权利要求1所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,若当前层的网格虚拟服饰模型的网格的顶点中存在被遮挡的顶点,则根据所述网格人体模特模型的网格中对应该被遮挡的顶点的最近点的法向修正所述被遮挡的顶点的法向包括:
获取与当前层被遮挡的单个顶点距离最近的所述三角形人体模特模型的三角形中的点作为蒙皮点,遍历被遮挡的顶点,得到当前层被遮挡的三角形虚拟服饰模型的蒙皮点;
获取所述当前层被遮挡的三角形虚拟服饰模型的三角形的单个顶点的法向及其对应的蒙皮点的法向
根据所述当前层被遮挡的三角形虚拟服饰模型的三角形的单个顶点的法向及其对应的所述蒙皮点的法向的点积是否小于阈值,修正被遮挡的当前层三角形虚拟服饰模型的三角形的顶点的法向生成修正法向 其中的阈值大于等于0.5,小于等于0.9。
6.根据权利要求5所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,获取与当前层被遮挡的单个顶点距离最近的所述三角形人体模特模型的三角形中的点作为蒙皮点,包括:
将所述三角形人体模特模型的三角形的顶点按照预定的体素大小voxelsize划分体素,生成三角形人体模特模型的三角形的顶点的体素化Hash表{Hm};
获取被遮挡的单个顶点的8个空间顶点的Hash值:
{ x e c - v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c - v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
{ x e c - v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
{ x e c - v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c - v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c - v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
{ x e c + v o x e l s i z e / 2 , y e c + v o x e l s i z e / 2 , z e c + v o x e l s i z e / 2 } ;
根据所述被遮挡的单个顶点的8个空间顶点的Hash值,查询所述三角形人体模特模型的三角形的顶点的体素化Hash表{Hm}中是否存在与所述被遮挡的单个顶点的8个空间顶点的Hash值相等的一个或多个所述三角形人体模特模型的三角形的顶点的Hash值;
若{Hm}中不包含所述被遮挡的单个顶点的8个空间顶点的Hash值,则将被遮挡的单个顶点的8个空间顶点的Hash值的坐标步长由voxelsize/2逐步扩大,直至在{Hm}中找到与所述被遮挡的单个顶点的8个空间顶点的Hash值相等的一个或多个Hash值生成所述被遮挡的单个顶点的近邻体素;
根据所述近邻体素及{Hm}获取所述近邻体素中包含的所述三角形人体模特模型的三角形的顶点;
获取所述近邻体素中包含的所述三角形人体模特模型的三角形的顶点与所述被遮挡的单个顶点的距离;
选取预定数量距离最近的所述近邻体素中包含的所述三角形人体模特模型的三角形的顶点作为近邻顶点;
获取所述三角形人体模特模型的三角形及三角形的顶点,生成所述三角形人体模特模型的三角形的顶点的一阶邻域表;
根据所述近邻顶点及所述三角形人体模特模型的三角形的顶点的一阶邻域表获取所述近邻顶点的相邻三角形;
获取所述被遮挡的单个顶点与所述近邻顶点的相邻三角形的距离,选取距离最近的所述近邻顶点的相邻三角形;
获取所述被遮挡的单个顶点对所述距离最近的所述近邻顶点的相邻三角形垂直投影点若投影点在三角形内部,与距离最近的点为最终的蒙皮点;
若投影点不在三角形内部,获取与投影点距离最近的三角形的边:以投影点对该边做投影得到投影点若投影点在所述三角形的边上,则投影点为最终的蒙皮点;若投影点在所述三角形的边的延长线上,则所述三角形靠近投影点的顶点即为为最终的蒙皮点。
7.根据权利要求1所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,所述获取修正后的所述被遮挡的顶点的法向与所述造成遮挡的顶点的相邻网格之间的相交结果,根据所述相交结果对当前层的顶点进行消隐或挤压,并显示处理结果包括:
判断所述修正后的所述被遮挡的顶点的法向与所述造成遮挡的顶点的相邻三角形的相交点是否在三角形的内部;
若所述相交点在三角形的内部,且所述相交点位于所述修正后的所述被遮挡的顶点的法向的负向或所述被遮挡的顶点位于造成遮挡的顶点的相邻三角形面上,对所述被遮挡的顶点进行挤压,并显示挤压后的结果;
若所述相交点在三角形的内部,且所述相交点位于所述修正后的所述被遮挡的顶点的法向的正向,判断造成遮挡的顶点的相邻三角形是否透明;
若透明,将所述被遮挡的顶点予以显示;
若不透明,将所述被遮挡的顶点进行消隐,显示消隐后的结果:遍历所述被遮挡的顶点,若由所述被遮挡的顶点组成的三角形中的单个三角形的三个顶点均与造成遮挡的顶点的相邻三角形面相交于法向的正向,删除此单个不可见三角形网格,显示删除所有不可见三角形网格后的结果。
8.根据权利要求7所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,所述挤压为所述被遮挡的顶点沿其法向反向移动至与所述造成遮挡的顶点的相邻三角形相交于所述被遮挡的顶点的法向的正向。
9.根据权利要求5所述的多层次虚拟服饰试穿的快速显示方法,其特征在于,所述阈值为0.8。
CN201310338389.6A 2013-08-05 2013-08-05 多层次虚拟服饰试穿的快速显示方法 Active CN103366401B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310338389.6A CN103366401B (zh) 2013-08-05 2013-08-05 多层次虚拟服饰试穿的快速显示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310338389.6A CN103366401B (zh) 2013-08-05 2013-08-05 多层次虚拟服饰试穿的快速显示方法

Publications (2)

Publication Number Publication Date
CN103366401A CN103366401A (zh) 2013-10-23
CN103366401B true CN103366401B (zh) 2016-08-17

Family

ID=49367666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310338389.6A Active CN103366401B (zh) 2013-08-05 2013-08-05 多层次虚拟服饰试穿的快速显示方法

Country Status (1)

Country Link
CN (1) CN103366401B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870646B2 (en) 2015-06-26 2018-01-16 Virtual Outfits, Llc Three-dimensional model generation based on two-dimensional images
CN106327562A (zh) * 2016-09-09 2017-01-11 武汉布偶猫科技有限公司 一种三维仿真中服装搭配穿透问题解决方法
CN106652010A (zh) * 2016-10-19 2017-05-10 武汉布偶猫科技有限公司 一种基于环形区域的透明贴图方法
CN107292964B (zh) * 2017-05-31 2019-12-10 东华大学 一种三维虚拟服装自穿透补偿方法
CN113065176B (zh) * 2021-04-08 2023-02-28 深圳市格林兄弟科技有限公司 对象附着方法、装置、设备及计算机可读存储介质
CN113554760B (zh) * 2021-08-05 2024-02-13 网易(杭州)网络有限公司 一种换装方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004079652A1 (ja) * 2003-03-07 2004-09-16 Digital Fashion Ltd. 仮想試着表示装置、仮想試着表示方法、仮想試着表示プログラム及び同プログラムを記録したコンピュータ読み取り可能な記録媒体
CN102982525A (zh) * 2011-06-01 2013-03-20 索尼公司 图像处理装置、图像处理方法和程序

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004079652A1 (ja) * 2003-03-07 2004-09-16 Digital Fashion Ltd. 仮想試着表示装置、仮想試着表示方法、仮想試着表示プログラム及び同プログラムを記録したコンピュータ読み取り可能な記録媒体
CN102982525A (zh) * 2011-06-01 2013-03-20 索尼公司 图像处理装置、图像处理方法和程序

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于VR-Platform的三维服装展示系统的实现;陈晨 等;《纺织科技进展》;20100831(第4期);第72-74页 *

Also Published As

Publication number Publication date
CN103366401A (zh) 2013-10-23

Similar Documents

Publication Publication Date Title
CN103366401B (zh) 多层次虚拟服饰试穿的快速显示方法
EP3435336B1 (en) Hybrid hierarchy for ray tracing
CN109360260B (zh) 一种三角网格三维模型的切挖重构方法
CN103985155B (zh) 基于映射法的散乱点云Delaunay三角剖分曲面重构方法
CN103236058B (zh) 获取四维心脏图像感兴趣体积的方法
CN103714577B (zh) 一种适用于带纹理模型的三维模型简化方法
CN105069226A (zh) 一种基于模板的三维造型建模方法
CN105225272B (zh) 一种基于多轮廓线三角网重构的三维实体建模方法
KR20160081828A (ko) 3d 모델링된 어셈블리 상의 바운딩 박스들의 생성
CN105844691A (zh) 无序点云三维重建方法
CN108171793B (zh) 一种探查层叠区域三角网格的方法
CN106875462A (zh) 一种基于元球模型和混合驱动方法的实时数字器官切割方法
CN104715507B (zh) 一种基于曲面片的三维地理实体自动构建方法
CN103366402A (zh) 三维虚拟服饰的快速姿态同步方法
CN101320487B (zh) 一种用于火灾模拟的场景预处理方法
CN106296824B (zh) 一种基于半边数据结构的T-mesh局部细化实现方法
CN102622467A (zh) 包含多种构件的三维有限元网格自动剖分方法
CN103886118B (zh) 一种针对集成电路异质型逻辑单元的重综合方法
CN105069844B (zh) 基于逻辑邻域的地质曲面拟合方法
CN104766367B (zh) 一种计算三维模型处理中三维网格拓扑结构图构造方法
CN109983509A (zh) 一种使用几何面的即时布尔运算方法
CN109472863A (zh) 一种基于笔画交互的实时3d黏土建模方法
CN107767458B (zh) 不规则三角网曲面几何拓扑一致分析方法及系统
CN105787020A (zh) 图数据划分方法及装置
CN110532670A (zh) 一种适分析样条实体模型构建方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170317

Address after: 362700 Fujian City, Shishi Province, Nanyang Road Shishi International Textile City, A District, No. 5, No. 5201, industrial park, No. 377 network (cluster registration)

Patentee after: Quanzhou fusion network technology Co.,Ltd.

Address before: Room 2118 building five layer D537 No. third Shanghai 201111 Minhang District Guanghua Road

Patentee before: SHANGHAI QUDA NETWORK TECHNOLOGY CO.,LTD.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220525

Address after: 361000 unit A-8, unit 03, building D, Xiamen international shipping center, No. 97, Xiangyu Road, Xiamen area, China (Fujian) pilot Free Trade Zone, Xiamen, Fujian

Patentee after: Xiamen Yishang Equity Investment Co.,Ltd.

Address before: 362700 No. 377, e-commerce Industrial Park, 5201, floor 5, zone a, Shishi International Textile City, Nanyang Road, Shishi City, Quanzhou City, Fujian Province (cluster registration)

Patentee before: Quanzhou fusion network technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231228

Address after: Building 2, Cultural and Sports Activity Center, No. 3 Longxiang Road, Jinjing Town, Jinjiang City, Quanzhou City, Fujian Province, 362251

Patentee after: Jinjiang Wujie Brand Management Co.,Ltd.

Address before: 361000 unit A-8, unit 03, building D, Xiamen international shipping center, No. 97, Xiangyu Road, Xiamen area, China (Fujian) pilot Free Trade Zone, Xiamen, Fujian

Patentee before: Xiamen Yishang Equity Investment Co.,Ltd.

TR01 Transfer of patent right