减面方法、设备及显示设备与流程

文档序号:12675796阅读:314来源:国知局
减面方法、设备及显示设备与流程

本发明涉及三维模型减面技术,更具体地,涉及一种用于对三维角色模型进行减面的方法、设备、用于显示三维角色模型的设备和显示设备。



背景技术:

三维模型减面技术是三维图形学中常用的优化技术之一。它是一种层次细节(LOD)技术。层次细节技术是一种在计算机三维图形学中用于提高绘制性能和效果的优化技术。它根据可视物体在屏幕出现的大小而选择不同规格的模型或贴图来绘制。

例如,在三维计算机应用场景中,距离用户越远的物体,在屏幕上占用的范围越小。可以用较低质量的模型和贴图来绘制所述物体。这样可以提高图像的绘制效率和绘制质量。这尤其适用于移动端的游戏。它可以提高一个场景可以载入的模型数量。可选地,它可以提高游戏的帧率和绘制质量。

在层次细节中,需要为同一个三维物体制作具有不同面数的多个模型。通常,首先制作一个面数最高的模型。然后,利用模型自动减面算法,从这个面数最高的模型生成几个面数较低的模型。

在计算机三维技术中,一个模型可以由多个三角形面组成,每个三角形面包括三条边,每条边包括两个顶点。面数是三角形面的数量。面数较多且质量较高的三维模型可以被称为高模。面数较少且质量较低的三维模型可以被称为低模。

在现有技术中,模型减面算法是针对一般的三维模型的,而没有考虑模型的类型和用途。

例如,中国专利申请CN103886635A公开了一种基于面聚类的自适应LOD模型方法,其在此全部引入作为参考。

例如,中国专利申请CN103324783A公开了一种基于边折叠的LOD模型实时生成方法,其在此全部引入作为参考。

例如,Hugues Hoppe的论文“Progressive Meshes”公开了一种渐进式网孔展现方式,其在此全部引入作为参考。

因此,需要提供一种新的技术方案,针对上述现有技术中的至少一个技术问题进行改进。



技术实现要素:

本发明的一个目的是提供一种用于对三维角色模型进行减面的新技术方案。

根据本发明的第一方面,提供了一种用于对三维角色模型进行减面的方法,其中,所述三维角色模型包括多个三角形面,每个三角形面包括三条边,每条边包括两个顶点,所述方法包括:确定所述三维角色模型中位于边缘的第一边;确定位于所述三维角色模型内部的第二边;以及相对于第一边优先减去第二边以减少三角形面数。

可选地或另选地,确定所述三维角色模型中位于边缘的第一边还包括:通过确定位于边缘且共边的两个顶点来确定第一边,其中,对于第一边的两个顶点中的每一个顶点,与该顶点共边的顶点的集合V的数量大于包含该顶点的三角形面的数量T。

可选地或另选地,所述方法还包括:确定被不同贴图坐标共享的第三边;确定未被不同贴图坐标共享的第四边;以及相对于第三边优先减去第四边以减少三角形面数。

可选地或另选地,确定被不同贴图坐标共享的第三边还包括:通过确定第三边的顶点的UV值来确定第三边,其中,第三边的顶点位于多个三角形面中,并且,该顶点在所述多个三角形面中的至少两个三角形面中的UV值不相等。

可选地或另选地,所述方法还包括:确定长度不同的第五边和第六边,其中,第五边的长度大于第六边的长度;以及相对于第五边优先减去第六边以减少三角形面数。

可选地或另选地,所述方法还包括:确定周围三角形面的凹凸度不同的第七边和第八边,其中,第七边的周围三角形面的凹凸度大于第八边的周围三角形面的凹凸度;以及相对于第七边优先减去第八边以减少三角形面数。

可选地或另选地,第七边和第八边中的任何一个边的周围三角形面的凹凸度为:其中,所述任何一个边的两个顶点为I、J,顶点I所在的所有三角形为Ta,同时包含顶点I、J的所有三角形Tc,MAX()表示求最大值,MIN()表示求最小值,NORMAL(t)表示三角形面t的法线。

可选地或另选地,所述方法还包括:为所述三维角色模型中的不同部分设置不同的权重;以及优先减去位于权重较低的部分中的边。

可选地或另选地,为所述三维角色模型中的不同部分设置不同的权重包括:设置三维角色模型的权重坐标曲线W=Weight(h),其中,h表示三维角色模型相对于脚部的高度,W的值从脚部到头部增大,三维角色模型的Y坐标最大值为YMAX,维角色模型的Y坐标最小值为YMIN;以及设置顶点I的权重WI=Weight((YI-YMIN)/(YMAX-YMIN)),其中,顶点I的Y坐标值为YI

可选地或另选地,所述不同部分包括三维角色模型的头部和脚部,以及所述头部的权重大于所述脚部的权重。

可选地或另选地,所述方法还包括:确定要减去的边及其顶点Ir、Jr;删除顶点Ir;以及将包含顶点Ir的三角形面中的顶点I替换为顶点Jr

可选地或另选地,所述顶点Ir相对于顶点Jr更靠近所述角色模型的脚部。

可选地或另选地,所述顶点Ir的周围三角形面的凹凸度小于所述顶点Jr的周围三角形面的凹凸度。

根据本发明的第二方面,提供了一种用于对三维角色模型进行减面的方法,其中,所述三维角色模型包括多个三角形面,每个三角形面包括三条边,每条边包括两个顶点,设置三维角色模型的权重值坐标曲线W=Weight(h),其中,h表示三维角色模型相对于脚部的高度,W的值从脚部到头部增大,三维角色模型的Y坐标最大值为YMAX,维角色模型的Y坐标最小值为YMIN,对于三维角色模型上的所有共边的两个顶点I、J,计算它们的剔除代价值Cost(I,J),包括:计算其中,顶点I所在的所有三角形为Ta,同时包含顶点I、J的所有三角形Tc,MAX()表示求最大值,MIN()表示求最小值,NORMAL(t)表示三角形面t的法线,计算其中,顶点I的坐标为(XI,YI,ZI)以及顶点J的坐标为(XJ,YJ,ZJ),如果与顶点I共边的顶点的集合V的数量大于包含顶点I的三角形面的数量T,如果V的数量大于T的数量,则设置顶点I的边缘计数border=1,否则设置border=0,如果顶点I位于多个三角形面中,并且,顶点I在所述多个三角形面中的至少两个三角形面中的UV值不相等,则设置顶点I的贴图切分值uisplit=1,否则,设置uisplit=0,计算顶点I的权重WI=Weight((YI-YMIN)/(YMAX-YMIN)),其中,顶点I的Y坐标值为YI,以及计算剔除代价值Cost(I,J)=WI*B(I,J)*L(I,J)+M*uvsplit+N*border,其中,M远大于WI,N远大于M;以及基于剔除代价值Cost(I,J)对三维角色模型进行减面,包括:确定剔除代价值Cost(I,J)最小的一对顶点作为要减去的顶点Ir、Jr,删除顶点Ir,以及将包含顶点Ir的三角形面中的顶点I替换为顶点Jr,其中,将三维角色模型中的三角形面(Ir,A,B)修改为(Jr,A,B)。

可选地或另选地,重复执行计算它们的剔除代价值Cost(I,J)和对三维角色模型进行减面,以使得三维角色模型的面数小于等于目标减面面数。

根据本发明的第三方面,提供了一种用于对三维角色模型进行减面的设备,其中,所述三维角色模型包括多个三角形面,每个三角形面包括三条边,每条边包括两个顶点,所述设备包括:用于确定所述三维角色模型中位于边缘的第一边的装置;用于确定位于所述三维角色模型内部的第二边的装置;以及用于相对于第一边优先减去第二边以减少三角形面数的装置。

根据本发明的第四方面,提供了一种用于显示三维角色模型的设备,包括:第一显示装置,用于显示高模的三维角色模型;以及第二显示装置,用于显示低模的三维角色模型,其中,所述低模的三维角色模型是使用根据本发明的用于对三维角色模型进行减面的方法对高模的三维角色模进行减面而获得的三维角色模型。

根据本发明的第五方面,提供了一种显示设备,包括:处理装置、存储器和显示器,其中,所述处理装置对存储器中的数据进行处理,以在显示器上显示高模的三维角色模型和低模的三维角色模型,其中,所述低模的三维角色模型是使用根据本发明的用于对三维角色模型进行减面的方法对高模的三维角色模进行减面而获得的三维角色模型。

根据本发明的一个实施例,可以针对三维角色模型的特点进行减面处理,从而减小减面处理对视觉感知的影响。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1是根据本发明的一个实施例的用于对三维角色模型进行减面的方法的示意性流程图。

图2是根据本发明的另一个实施例的用于对三维角色模型进行减面的方法的示意性流程图。

图3是根据本发明的另一个实施例的用于显示三维角色模型的设备的示意性框图。

图4是根据本发明的另一个实施例的显示设备的示意性框图。

图5、6是用于说明根据本发明的另一个实施例的“顶点I向顶点J坍塌”的方式的示意图。

图7、8示出了一个具有2584个三角形面的三维角色模型的例子。

图9示出了一个三维角色模型的权重值坐标曲线的例子。

图10、11示出了具有1878个三角形面的三维角色模型的例子。

图12、13示出了分别具有2584、2230、1878、1324个三角形面的三维角色模型的例子。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

在本发明的实施例中,针对三维(3D)角色模型进行优化。根据本发明的实施例,考虑三维角色模型的特点,尽可能在减面过程中减掉那些不易被察觉的面。例如,在本发明的实施例中,可以优先保留外形信息。例如,在本发明的实施例中,基于人们对三维角色模型的不同部位的精细度有不同的感知度的特点,对三维角色模型进行减面。现有技术相比,根据本发明的实施例,在同等条件下得到的低模模型看上去更加精细。根据本发明的实施例的技术方案可以适用于游戏应用。

三维模型可以被认为是由点、边、面组成的。通常,所有的面都可以分解成三角形面。因此,三维模型也可以被认为是由三角形面组成的,每个三角形面包括三条边,每条边包括两个顶点。所述三条边被称为“共三角形的边”,所述两个顶点被称为“共边的顶点”。

在本发明的实施例中针对三维角色模型进行处理。所述三维角色模型例如是人物角色、动物角色等。在本发明的实施例,优先减去三维角色模型中人眼感知最小的部分。

在本发明的实施例中,针对三维角色模型中的凹凸度、边的长短、边缘、贴图、不同部位进行考虑,设计用于减面的技术方案。

可以采用迭代的方式,逐步进行减面处理。

下面,参照附图描述根据本发明的各个实施例和例子。

<方法>

图1示出了根据本发明的一个实施例的用于对三维角色模型进行减面的方法的示意性流程图。

所述三维角色模型包括多个三角形面,每个三角形面包括三条边,每条边包括两个顶点。

在步骤S1100,确定所述三维角色模型中位于边缘的第一边。

例如,可以通过确定位于边缘且共边的两个顶点来确定第一边。在一个例子中,对于第一边的两个顶点中的每一个顶点,与该顶点共边的顶点的集合V的数量大于包含该顶点的三角形面的数量T。通过这种方式,可以确定位于边缘的顶点,从而确定位于边缘的第一边。

在步骤S1200,确定位于所述三维角色模型内部的第二边。第二边是三维角色模型中除了第一边之外的边。

在步骤S1300,相对于第一边优先减去第二边以减少三角形面数。

在这里,“优先”指的是,在同等条件下,对相比较的两个对象中的一个先进行处理。例如,在这个实施例中,在第一边和第二边的条件相同的情况下,例如,在第一边和第二边的长度相同等情况下,先从三维角色模型中减去第二边。

这里,优先保持三维角色模型的外形或轮廓。这通常是对人眼感知影响最大的部分。

在一个例子中,还可以包括贴图的情况。例如,确定被不同贴图坐标共享的第三边,以及确定未被不同贴图坐标共享的第四边。相对于第三边优先减去第四边以减少三角形面数。在不同贴图坐标共享的边的两侧,贴图是不同的。这样的边对人眼感知的影响较大。通过这种方式,可以帮助维持三维角色模型的表面纹理贴图的连续性。

例如,可以通过确定第三边的顶点的UV值来确定第三边。第三边的顶点位于多个三角形面中,并且,该顶点在所述多个三角形面中的至少两个三角形面中的UV值不相等。

在计算机三维技术领域,三维模型的一个顶点的贴图坐标通常被称为UV坐标。贴图坐标代表这个顶点在绘制的时候所对应的贴图上的颜色。当该顶点同时处于多个三角形中时,如果它在所有三角形中的贴图坐标不全都是相同的,那么可以称为这个顶点为UV切分点。这表示UV值在该顶点处不连续,周围的三角形面在该顶点被切开。因此,在本领域中,该顶点也可以称为UV切分点。

在另一个例子中,可以确定长度不同的第五边和第六边,其中,第五边的长度大于第六边的长度。相对于第五边优先减去第六边以减少三角形面数。

通常,长度较长的边对人眼感知的影响较大。因此,优先保留长度较长的边。

在另一个例子中,可以确定周围三角形面的凹凸度不同的第七边和第八边。例如,第七边的周围三角形面的凹凸度大于第八边的周围三角形面的凹凸度。相对于第七边优先减去第八边以减少三角形面数。

通常,周围凹凸度较大的边对人眼感知的影响较大。周围凹凸度较小的边处于较平滑的表面。这种边的删除对人眼感知的影响较小。

例如,第七边和第八边中的任何一个边的周围三角形面的凹凸度为:

其中,所述任何一个边的两个顶点为I、J,顶点I所在的所有三角形为Ta,同时包含顶点I、J的所有三角形Tc,MAX()表示求最大值,MIN()表示求最小值,NORMAL(t)表示三角形面t的法线。

本领域技术人员应当理解,尽管上面使用“第一边”至“第八边”来描述各个例子,但是,不同例子中的边可以是不同的或处于包含关系的。例如,第一边可以包含第第二边、第五边、第六边、第七边、第八边等。第二边包括第二边至第八边等。可选地,第五边或第六边包括第一边、第二边、第三边、第四部、第七边、第八边等。本领域技术人员可以根据需要设计这些边的关系。在这里不再详细列举。

在另一个例子中,为所述三维角色模型中的不同部分设置不同的权重。优先减去位于权重较低的部分中的边。

例如,设置三维角色模型的权重坐标曲线W=Weight(h),其中,h表示三维角色模型相对于脚部的高度,W的值从脚部到头部增大,三维角色模型的Y坐标最大值为YMAX,维角色模型的Y坐标最小值为YMIN。设置顶点I的权重WI=Weight((YI-YMIN)/(YMAX-YMIN)),其中,顶点I的Y坐标值为YI

例如,所述不同部分包括三维角色模型的头部和脚部,以及所述头部的权重大于所述脚部的权重。

考虑了三维角色模型部位的权重可以有选择地对不同部位给予不同的简化优先级。在这里,人体头部的权重较高。这使得优先简化身体和腿部,而保留头部的细节。对于具有相同面数的模型来说,头部的精细度更容易让人从视觉上感觉到整体模型的精细度。

在一个例子中,使用“坍塌”的方式来减少三角形面数。例如,确定要减去的边及其顶点Ir、Jr;删除顶点Ir;以及将包含顶点Ir的三角形面中的顶点I替换为顶点Jr。这种方式可以称为“顶点Ir向顶点Jr坍塌”的方式。

下面,参照图5、6来解释根据本发明的另一个实施例的“顶点I向顶点J坍塌”的方式。在图5中示出了顶点A、B、C、I、J。所述顶点构成三角形面IJA、IAB、IBC、IJC。图6示出了“顶点I向顶点J坍塌”后的情况。如图6所示,在使用顶点J代替顶点I之后,上述4个三角形面变成JJA、JAB、JBC、JJC。由于JJA、JJC不构成三角形面,因此,剩下的三角形面为JAB、JBC。通过这种方式,减少了三维角色模型中的三角形面的数量。

在这里,三角形面中的边可以是有方向的,即,“顶点Ir向顶点Jr坍塌”与“顶点Jr向顶点Ir坍塌”是不同的。

例如,与考虑三维角色模型的权重坐标曲线的情况类似,所述顶点Ir相对于顶点Jr更靠近所述角色模型的脚部。

例如,与考虑凹凸度的情况类似,所述顶点Ir的周围三角形面的凹凸度小于所述顶点Jr的周围三角形面的凹凸度。

本领域技术人员应当理解,通常来说,可以在其他条件相同或类似的情况下,考虑位置或凹凸度。例如,可以在凹凸度等相同或近似的情况下,考虑所述顶点Ir是否相对于顶点Jr更靠近所述角色模型的脚部。可选地,可以在位置权重相同或类似的情况下,考虑所述顶点Ir的周围三角形面的凹凸度是否小于所述顶点Jr的周围三角形面的凹凸度。在这里,“近似”指的是所比较的两个对象的差别可以忽略。

例如,与考虑边缘的情况类似,所述顶点Ir位于所述三维角色模型内部,而顶点Jr位于所述三维角色模型边缘。

例如,与考虑贴图的情况类似,所述顶点Ir未被不同贴图坐标共享,而顶点Jr被不同贴图坐标共享。

在这种“坍塌”的方式中,考虑了要删除的边的两个顶点对人眼感知的不同影响,可以在一定程度上减小减面处理对人眼感知的影响。

上面的实施例和例子描述了三维角色模型的特点及相应参数,并描述了利用所述参数进行减面的技术方案。所述参数包括:要减去的边是否位于边缘、要减去的边是否被不同贴图坐标共享、要减去的边的长度、要减去的边的周围三角形面的凹凸度、要减去的边的位置。本领域技术人员在本说明书的教导下,可以根据需要对利用所述参数进行减面的技术方案进行组合。例如,可以优先减去位于三维角色模型的内部的、未被不同贴图坐标共享的、长度较短、凹凸度较小且位于脚部的边。当然,基于本说明书的教导,本领域技术人员还可以想到许多其他组合方式,在这里不再详细描述。此外,本领域技术人员人员基于本说明书的教导还可以想到的是,可以单独使用上述各个参数。例如,在一个实施例中,仅使用要减去的边是否位于边缘、要减去的边是否被不同贴图坐标共享、要减去的边的长度、要减去的边的周围三角形面的凹凸度、要减去的边的位置中的至少一个,或者基于现有技术的方式寻找要删除的边,并使用所述“坍塌”的方式删除所述边。

本发明的实施例的技术方案是针对三维角色模型(包括三维人体模型)而设计的。

在本发明的实施例中,可以采用迭代的方式,利用所述参数逐步减少三维角色模型的面数。

在本发明的实施例中,针对三维角色模型的特点进行考虑来设计减面方案。这可以获得视觉感知较好的低模三维角色模型。这尤其适合于人体模型的减面处理。

下面参照图2描述根据本发明的另一个实施例的用于对三维角色模型进行减面的方法的示意性流程图。在图2的实施例中,利用剔除代价值Cost,将上述参数结合起来并对其进行评价,从而确定要减去的边。

在这个实施例中,三维角色模型包括多个三角形面,每个三角形面包括三条边,每条边包括两个顶点。

如图2所示,在步骤S2100,设置三维角色模型的权重值坐标曲线W=Weight(h),其中,h表示三维角色模型相对于脚部的高度。这里,W的值从脚部到头部增大。三维角色模型的Y坐标最大值为YMAX,维角色模型的Y坐标最小值为YMIN

在步骤S2200,对于三维角色模型上的所有共边的两个顶点I、J,计算它们的剔除代价值Cost(I,J)。

Cost(I,J)表示,相对于在顶点I向顶点J坍塌之前的视觉外形相比,在顶点I向顶点J坍塌之后三维角色模型的视觉外形的变化程度。较小的Cost(I,J)表明,将顶点I向顶点J坍塌对原三维角色模型的视觉改变较小。由于边IJ是有方向的,因此,Cost(I,J)通常不等于Cost(J,I)。

在这个步骤中,计算其中,顶点I所在的所有三角形为Ta,同时包含顶点I、J的所有三角形Tc,MAX()表示求最大值,MIN()表示求最小值,NORMAL(t)表示三角形面t的法线。通过这个步骤可以计算该边IJ的周围三角形面的凹凸度。

计算其中,顶点I的坐标为(XI,YI,ZI)以及顶点J的坐标为(XJ,YJ,ZJ)。通过这个步骤,可以计算边IJ的长度。

如果与顶点I共边的顶点的集合V的数量大于包含顶点I的三角形面的数量T,如果V的数量大于T的数量,则设置顶点I的边缘计数border=1;否则设置border=0。通过这个步骤,可以找出位于三维角色模型的边缘的顶点。

如果顶点I位于多个三角形面中,并且,顶点I在所述多个三角形面中的至少两个三角形面中的UV值不相等,则设置顶点I的贴图切分值uisplit=1;否则,设置uisplit=0。通过这个步骤可以确定顶点I是否是贴图坐标共享的边。

计算顶点I的权重WI=Weight((YI-YMIN)/(YMAX-YMIN)),其中,顶点I的Y坐标值为YI

计算剔除代价值Cost(I,J)=WI*B(I,J)*L(I,J)+M*uvsplit+N*border,其中,M远大于WI,N远大于M。由于去除位于边缘的顶点会导致去除位于边缘的边,因此,给N赋予较大的值,从而尽量避免去除位于边缘的边。这里,“N远大于M”指的是,border值的任何一个变化都会导致N*border的变化大于M*uvsplit的任何可能变化。同理,“M远大于WI”指的是,uvsplit值的任何一个变化都会导致M*uvsplit的变化大于WI*B(I,J)*L(I,J)的任何可能变化。

在步骤S2300,基于剔除代价值Cost(I,J)对三维角色模型进行减面。

在这个步骤中,确定剔除代价值Cost(I,J)最小的一对顶点作为要减去的顶点Ir、Jr。这里,可以利用前面所述的“坍塌”方式来减少三角形面。例如,删除顶点Ir,以及将包含顶点Ir的三角形面中的顶点I替换为顶点Jr,其中,将三维角色模型中的三角形面(Ir,A,B)修改为(Jr,A,B)。

在一个例子中,可以设定目标减面面数。这里,可以重复执行计算剔除代价值Cost(I,J)和对三维角色模型进行减面的步骤,以使得三维角色模型的面数小于等于目标减面面数。

<设备>

本领域技术人员应当理解,在电子技术领域中,可以通过软件、硬件以及软件和硬件结合的方式,将上述方法体现在产品中。本领域技术人员很容易基于上面公开的方法,产生一种用于对三维角色模型进行减面的设备,其中,所述三维角色模型包括多个三角形面,每个三角形面包括三条边,每条边包括两个顶点,所述设备包括:用于确定所述三维角色模型中位于边缘的第一边的装置;用于确定位于所述三维角色模型内部的第二边的装置;以及用于相对于第一边优先减去第二边以减少三角形面数的装置。

所述用于对三维角色模型进行减面的设备还可以包括用于执行上面参照图1或图2所述用于对三维角色模型进行减面的方法中的步骤。在这里不再对此进行重复描述。

图3是根据本发明的另一个实施例的用于显示三维角色模型的设备的示意性框图。

如图3所示,用于显示三维角色模型的设备3000包括:第一显示装置3010和第二显示装置3020。

第一显示装置3010用于显示高模的三维角色模型。

第二显示装置3020用于显示低模的三维角色模型。所述低模的三维角色模型是使用根据本发明的实施例的用于对三维角色模型进行减面的方法对高模的三维角色模进行减面而获得的三维角色模型。

所述用于显示三维角色模型的设备例如可以是电子设备上的应用,或者是所述应用中的一个组件。第一显示装置3010和第二显示装置3020可以是所述用于显示三维角色模型的设备中的两个模块。本领域技术人员应当理解,第一显示装置3010和第二显示装置3020也可以被结合在一起。

图4是根据本发明的另一个实施例的显示设备的示意性框图。

如图4所示,显示设备4000包括:处理装置4010、存储器4020和显示器4030。

所述处理装置4010对存储器4020中的数据进行处理,以在显示器4030上显示高模的三维角色模型和低模的三维角色模型.所述低模的三维角色模型是使用根据本发明的实施例的用于对三维角色模型进行减面的方法对高模的三维角色模进行减面而获得的三维角色模型。

所述显示设备例如可以是智能电话、平板电脑、笔记本电脑、个人台式电脑等。

本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机系统软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以由硬件来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。因此,根据本说明书的教导,本领域技术人员应当知道,如何实现上面所述的装置和/或设备。

<例子>

图7示出了一个具有2584个三角形面的三维角色模型。图8是图7的三维角色模型的网格表示。从图8可以看出,该三维角色模型由多个三角形面组成。在这个例子中,该三维角色模型包括F0=2584个三角形面,每个三角形面包括三条边,每条边包括两个顶点。

下面描述对图7、8的三维角色模型进行减面的过程。

如图7、8所示,该三维角色模型是三维人物模型。该三维人物模型的人体高度方向为Y轴。设定目标减面面数为F1=1878。

设置三维角色模型的权重值坐标曲线W=Weight(h),其中,h表示三维角色模型相对于脚部的高度。

图9示出了一个三维角色模型的权重值坐标曲线W的例子。这里,W的值从脚部到头部增大。三维角色模型的Y坐标最大值为YMAX,维角色模型的Y坐标最小值为YMIN

对于三维角色模型上的所有共边的两个顶点I、J,计算它们的剔除代价值Cost(I,J)。

在这里,计算其中,顶点I所在的所有三角形为Ta,同时包含顶点I、J的所有三角形Tc,MAX()表示求最大值,MIN()表示求最小值,NORMAL(t)表示三角形面t的法线。通过这个步骤可以计算该边IJ的周围三角形面的凹凸度。

计算其中,顶点I的坐标为(XI,YI,ZI)以及顶点J的坐标为(XJ,YJ,ZJ)。通过这个步骤,可以计算边IJ的长度。

如果与顶点I共边的顶点的集合V的数量大于包含顶点I的三角形面的数量T,如果V的数量大于T的数量,则设置顶点I的边缘计数border=1;否则设置border=0。通过这个步骤,可以找出位于三维角色模型的边缘的顶点。

如果顶点I位于多个三角形面中,并且,顶点I在所述多个三角形面中的至少两个三角形面中的UV值不相等,则设置顶点I的贴图切分值uisplit=1;否则,设置uisplit=0。通过这个步骤可以确定顶点I是否是贴图坐标共享的边。

计算顶点I的权重WI=Weight((YI-YMIN)/(YMAX-YMIN)),其中,顶点I的Y坐标值为YI

计算剔除代价值Cost(I,J)=WI*B(I,J)*L(I,J)+M*uvsplit+N*border。例如,M=100,N=1000。

接着,基于剔除代价值Cost(I,J)对三维角色模型进行减面。

在这里,确定剔除代价值Cost(I,J)最小的一对顶点作为要减去的顶点Ir、Jr。这里,可以利用前面所述的“坍塌”方式来减少三角形面。例如,删除顶点Ir,以及将包含顶点Ir的三角形面中的顶点I替换为顶点Jr,其中,将三维角色模型中的三角形面(Ir,A,B)修改为(Jr,A,B)。

计算所得到的模型的面数。如果所述面数大于1878,则可以重复执行计算剔除代价值Cost(I,J)和对三维角色模型进行减面的步骤。如果所述面数不大于1878,则停止处理,得到最终的低模三维角色模型。

例如,图10示出了所得到的具有1878个三角形面的三维角色模型。图11是图10的三维角色模型的网格表示。

图12示出了分别具有2584、2230、1878、1324个三角形面的三维角色模型的例子12-a、12-b、12-c、12-d。图13是图12的三维角色模型的网格表示13-a、13-b、13-c、13-d。

如图10-13所示,通过使用根据本发明的实施例的技术方案可以得到对人眼感知影响较小的低模三维人物模型。

本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

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