一种模型几何空间轮廓线查找的预处理方法技术

技术编号:2946479 阅读:213 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种模型几何空间轮廓线查找的预处理方法。该方法包括:保存模型所有面的所有边信息,并在所有边信息中加入双法线信息,将加入双法线信息的边信息中的第一条边作为当前边;按照下面的步骤遍历所保存的模型的所有边直至结束;判断当前边的信息是否保存在边序列列表中,如果是,舍弃当前边信息;否则,将当前边信息保存在边序列列表中。本发明专利技术提供的方法可以优化模型的结构数据,为几何空间轮廓线的查找提供最精简的数据,从而提高查找几何空间轮廓线的效率和处理速度。

【技术实现步骤摘要】

本专利技术涉及动画制作技术,尤其涉及。
技术介绍
在当前的各种游戏和动画制作中,越来越多地追求特色和风格,逐渐出现的非照片真实级渲染(NPR,Non-Photorealistic Rendering),例如卡通渲染就是其中较为容易实现特色和风格的一个。在这种渲染中,关键技术是模型轮廓线的查找,其中3D几何空间轮廓线的查找对硬件要求很低,易于实现,所以被广泛采用。通常情况下,在3D几何空间轮廓线的查找中,根据具体的情况,可以将需要渲染的模型分成若干个面,每个面都由一个三角形构成,每个三角形都有三条边,相邻的三角形共用一条边,参见图1,图1是模型结构示意图,其中三角形f1和f2共用边AB。模型的轮廓线就是指在某一视点方向上,共用一条边的两个面具有不同的方向性,被共享的这条边就是模型轮廓线的一部分,所有这样的边就组成了模型的轮廓线,参见图2,图2是纸盒模型的轮廓线示意图,图2中的黑线边框就是纸盒在此视点方向上的纸盒模型轮廓线。面的方向性可以由法线信息确定,两个面具有不同的方向性就是具有不同的法线方向。从上面描述的轮廓线定义可知,查找模型的几何空间轮廓线,需要知道组成模型的三角形的边信息、是否有两个三角形共用这条边以及共用这条边的两个三角形的法线信息,对于没有被两个三角形共用的边可以将包含这条边的三角形的法线方向取反,作为其中的一个法线信息,也就是说,无论边是否被共用,边信息中一定包含双法线信息。对于有两个三角形共用一条边的情况来说,双法线信息就是共用本边的两个三角形的法线信息;对于只有一个三角形独享本边的情况来说,双法线信息就是独享本边的三角形的法线信息和将其法线方向取反的信息。于是,为了查找模型的几何空间轮廓线,需要先对模型的结构数据进行预处理,得到包含双法线信息的边序列列表。现有的确定边信息和双法线信息的预处理方法是首先,保存组成模型的所有三角形的边信息,边信息中包括对应三角形的法线信息,然后,从第一个三角形的第一条边开始,依次遍历所有三角形的边,查找共用该边的其它三角形,将共用该边的其它三角形的法线信息加入到边信息中,对于没有找到共用该边的三角形的情况,将独享该边的三角形的法线方向取反的信息加入到边信息中;按照同样的方法,依次遍历完所有三角形的边信息后,输出所获得的包含双法线信息的边序列列表。从上面的描述可以看到,现有的预处理方法是每查找一条边就需要遍历所有的三角形,重复做了大量的工作,效率较低;另外,因为在组成模型的三角形中会存在大量的共用边,例如,图1中的三角形f1和f2就共用边AB,然而,以三角形f1的边AB开始查找其它共用AB的三角形时,会找到三角形f2,于是边AB会保存f1和f2的法线信息,同样地,以三角形f2的边AB开始查找其它共用AB的三角形时,又会找到三角形f1,于是边AB又会保存f1和f2的法线信息,所以在最后输出的包括双法线信息的边序列中会含有大量重复的信息,这无疑会给后续的几何空间轮廓线的查找增加多余的信息,影响几何空间轮廓线的查找效率和处理速度。
技术实现思路
有鉴于此,本专利技术的目的在于提供,应用本专利技术的方法可以提高几何空间轮廓线的查找效率和处理速度。为了实现上述专利技术目的,本专利技术提供,包括A、保存组成模型的所有面的所有边信息,并在所有边信息中加入双法线信息,将加入双法线信息的边信息中的第一条边作为当前边;B、判断当前边的信息是否保存在边序列列表中,如果是,舍弃当前边信息;否则,将当前边信息保存在边序列列表中;C、判断是否遍历过所有保存的边,如果不是,将下一条边作为当前边,返回执行步骤B;否则,输出边序列列表。所述的面可以是三角形平面。步骤A中所述的边信息可以包括按照面索引号的顺序依次保存两个顶点的索引号的第一数组;用于保存顶点被哪些面所有的第二数组;用于记录两个顶点所确定的边是否保存在边序列列表中的布尔数组;步骤B所述判断为判断布尔数组中当前边的两个顶点的布尔变量值是否都是false,如果是,未保存在边序列列表中;否则,已保存在边序列列表中;未保存时,步骤B进一步包括将两个顶点的布尔变量值改为true。步骤A中所述在所有边信息中加入双法线信息,可以包括a11、将边信息中的第一条边作为当前边;a12、查找是否有共用当前边的面,如果有,则将所找到的面的法线信息加入到当前边信息中,否则,将独享当前边的面的法线信息和法线方向取反的信息,加入到当前边信息中;a13、将下一条边作为当前边,返回执行步骤a12,直至查找完所有的边。步骤A中所述在所有边信息中加入双法线信息,可以包括a21、将第一数组中第一条边作为当前边;a22、以当前边的一个顶点的索引号为基准,在第二数组中查找共用该顶点的面,并找到其中共用当前边的另一个顶点的面,将所找到的面的法线信息加入到两个顶点信息中,如果未找到共用当前边的另一个顶点的面,将独享该两个顶点的面的法线信息和法线方向取反的信息加入到两个顶点信息中;a23、将第一数组中的下一条边作为当前边,返回执行步骤a22,直至查找完第一数组中的所有的边。从上述方案可以看到,本专利技术提供的具有以下有益效果1、应用本专利技术提供的方法,通过比较判断,舍弃已经保存的边信息,只输出不含重复边信息的边序列,简化查找几何空间轮廓线所需的信息,优化模型的数据结构,从而提高几何空间轮廓线查找的效率,在极限情况下,对于有N个三角形的模型,采用现有做法提取确定边信息的顶点信息和双法线信息后,几何空间轮廓线查找需要处理6N个顶点,而经过本专利技术的优化后,几何空间轮廓线查找仅需要处理3N个顶点,效率可以提高一倍;2、本专利技术提供的方法不需要每查找一条边就遍历一次模型所有面的所有的边,而是通过确定边的顶点所带有的面的索引号直接定位到共用边的其它面,查找速度非常快,在通过程序运行时,有2万个三角形的模型在不到一秒的时间内就可以优化完毕,不影响几何空间轮廓线的查找,并且经过本专利技术优化后的模型数据,应用在以后的渲染和查找过程中,可以提高效率和处理速度。附图说明图1是模型结构示意图;图2是纸盒模型的轮廓线示意图;图3是根据本专利技术实施例的模型几何空间轮廓线查找的预处理方法流程图。具体实施例方式为了使本专利技术的特征和优点更加清楚明白,下面参照附图结合具体实施例对本专利技术作进一步的描述。本专利技术的主要思想是通过比较判断舍弃已经保存的带双法线信息的边信息,输出不含重复边信息的带双法线信息的边序列。参见图3,图3是根据本专利技术实施例的模型几何空间轮廓线查找的预处理方法流程图,具体操作流程和步骤如下步骤301、遍历模型的每个三角形,存储三角形的每条边的信息,并将三角形的法线信息存储到相应的边信息中,将边信息中的第一条边作为当前边;组成模型的每个三角形都有自己的索引号(index),三角形的每个顶点也都有顶点索引号(vertexcount),这里,为了方便描述,设置数组vTrgledge作为第一数组,用于按照三角形索引号的顺序保存所有三角形的边信息,由于三角形的边是由两个顶点确定的,所以,三角形的每条边都可以通过保存两个顶点来保存,于是,在数组vTrgledge中,按照三角形索引号依次保存顶点信息对,并在每个顶点信息中加入对应三角形的法线信息,于是对于一个三角形来说,就需要保存三对加入该三角形法线信息的顶点信息,参见表1,表1是本文档来自技高网
...

【技术保护点】
一种模型几何空间轮廓线查找的预处理方法,其特征在于,该方法包括:A、保存组成模型的所有面的所有边信息,并在所有边信息中加入双法线信息,将加入双法线信息的边信息中的第一条边作为当前边;B、判断当前边的信息是否保存在边序列列表中 ,如果是,舍弃当前边信息;否则,将当前边信息保存在边序列列表中;C、判断是否遍历过所有保存的边,如果不是,将下一条边作为当前边,返回执行步骤B;否则,输出边序列列表。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘皓
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1