移动游戏应用中的三角形网格细分的方法及装置的制造方法

文档序号:8260095阅读:507来源:国知局
移动游戏应用中的三角形网格细分的方法及装置的制造方法
【技术领域】
[0001]本发明实施例涉及三维模型技术领域,尤其涉及一种移动游戏应用中三角形网格细分的方法及装置。
【背景技术】
[0002]在对三维模型进行光照计算中,逐顶点光照和逐像素光照是两种常用的光照计算算法。
[0003]逐像素光照是在每个像素处进行光照计算,可以获得很好的视觉效果,但是由于移动终端的GPU (Graphic Processing Unit,图形处理器)计算能力有限,这种逐像素计算的开销对移动终端的GPU来说是很大的。逐顶点光照可以很好的克服这一问题。
[0004]逐顶点光照是在顶点着色器中计算光照颜色,为每个顶点计算一次光照颜色,然后通过顶点在多边形所覆盖的区域对像素颜色进行线性插值。对于镶嵌度较高的模型来说,逐顶点光照的性能和效果都足够好。但是对于三角形较少的三角形网格,例如面积较大,边长较长的三角形网格,由于点距较大,在进行颜色线性插值的过程中,无法平滑过渡,导致视觉效果变差。

【发明内容】

[0005]本发明实施例提供一种移动游戏应用中三角形网格细分的方法及装置,以减小三角形网格的面积,缩小点间距,使得在颜色线性插值的过程中平滑过渡,提高视觉效果。
[0006]一方面,本发明实施例提供了一种移动游戏应用中三角形网格细分的方法,包括:
[0007]依次确定各个三角形网格的最长边;
[0008]分别将各个最长边的边长与边长阈值进行比较,将大于所述边长阈值的最长边的边长作为键,将所述键插入红黑二叉树结构中;
[0009]在所述红黑二叉树结构中,选取各个键中的最大键;
[0010]按照预设的细分规则,将与所述最大键对应的最长边划分为若干段,将原始三角形网格内细分若干个三角形网格;
[0011]在所述红黑二叉树中删除所述最大键。
[0012]优选地,按照预设的细分规则,将与所述最大键对应的最长边划分为若干段,将原始三角形网格内细分若干个三角形网格,包括:
[0013]选取所述最长边的中点,将所述最长边划分为等长的两段,将所述原始三角形网格中细分成两个三角形网格;或
[0014]在所述最长边中选取N个点,将所述最长边划分为N+1段,每段长度小于等于所述边长阈值,将所述原始三角形网格细分为N+1个三角形,其中N为正整数。
[0015]优选地,在将大于所述边长阈值的最长边的边长作为键,将所述键插入红黑二叉树结构中的同时,还包括:
[0016]将所述键对应的最长边的两端顶点的集合作为值,将所述值插入红黑二叉树结构中。
[0017]优选地,在所述红黑二叉树结构中,选取各个键中的最大键之前,还包括:
[0018]在所述红黑二叉树结构中,统计各个值对应的所述顶点的集合中的顶点总数;
[0019]将所述顶点总数与顶点阈值进行比较,若所述顶点总数小于所述顶点阈值,则执行在所述红黑二叉树结构中,选取各个键中的最大键的过程。
[0020]优选地,在所述红黑二叉树中删除所述最大键的同时,还包括:
[0021]在所述红黑二叉树中删除所述最大键对应的值。
[0022]另一方面,本发明实施例提供了一种移动游戏应用中三角形网格细分的装置,包括:
[0023]最长边确定模块,用于依次确定各个三角形网格的最长边;
[0024]键插入模块,用于分别将各个最长边的边长与边长阈值进行比较,将大于所述边长阈值的最长边的边长作为键,将所述键插入红黑二叉树结构中;
[0025]最大键选取模块,用于在所述红黑二叉树结构中,选取各个键中的最大键;
[0026]网格细分模块,用于按照预设的细分规则,将与所述最大键对应的最长边划分为若干段,将原始三角形网格内细分若干个三角形网格;
[0027]最大键删除模块,用于在所述红黑二叉树中删除所述最大键。
[0028]优选地,所述网格细分模块,具体用于选取所述最长边的中点,将所述最长边划分为等长的两段,将所述原始三角形网格中细分成两个三角形网格;或
[0029]在所述最长边中选取N个点,将所述最长边划分为N+1段,每段长度小于等于所述边长阈值,将所述原始三角形网格细分为N+1个三角形,其中N为正整数。
[0030]优选地,所述装置还包括:
[0031]值插入模块,用于将所述键对应的最长边的两端顶点的集合作为值,将所述值插入红黑二叉树结构中。
[0032]优选地,所述装置还包括:
[0033]顶点总数统计模块,用于在所述红黑二叉树结构中,统计各个值对应的所述顶点的集合中的顶点总数;
[0034]顶点总数比较模块,用于将所述顶点总数与顶点阈值进行比较,若所述顶点总数小于所述顶点阈值,则执行在所述红黑二叉树结构中,选取各个键中的最大键的过程。
[0035]优选地,所述装置还包括:
[0036]值删除模块,用于在所述红黑二叉树中删除所述最大键对应的值。
[0037]本发明实施例通过一种移动游戏应用中三角形网格细分的方法及装置,可以逐一对三角形网格中最长边的边长超过边长阈值的边进行切分,将原始三角形网格细分为多个三角形网格,直至每个三角形网格网格的最长边长度小于等于边长阈值,使得在颜色线性插值的过程中平滑过渡,提高视觉效果。
【附图说明】
[0038]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本发明实施例提供的一种移动游戏应用中三角形网格细分的方法流程示意图;
[0040]图2为本发明实施例提供二角形网格细分不意图;
[0041]图3为本发明实施例提供三角形网格细分示意图;
[0042]图4为本发明实施例提供的一种移动游戏应用中三角形网格细分的方法流程示意图;
[0043]图5为本发明实施例提供的一种移动游戏应用中三角形网格细分的装置的结构示意图;
[0044]图6为本发明实施例提供的一种移动游戏应用中三角形网格细分的装置的结构示意图。
【具体实施方式】
[0045]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0046]实施例一
[0047]本发明实施例提供了一种移动游戏应用中三角形网格细分的方法,适用于对移动游戏应用中的三角形网格进行逐顶点光照计算的情况下,如图1所示,包括以下步骤。
[0048]步骤SlOl,依次确定各个三角形网格的最长边。
[0049]在步骤SlOl中,获取三角形网格的三边长度,比较三边长度,将长度最长的一边作为最长边。例如三角形网格Λ ABC的AB边长为3,BC边长为4,AC边长为5,则AC为AABC的最长边。
[0050]步骤S102,分别将各个最长边的边长与边长阈值进行比较,将大于边长阈值的最长边的边长作为键,将键插入红黑二叉树结构中。
[0051]其中,边长阈值是满足在颜色线性插值的过程中平滑过渡的点间距。例如,Λ ABC的最长边为AC,长度为5,Δ DEF的最长边为DF,长度为15 ;将AC
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1