阴影体的建立方法及装置的制造方法

文档序号:9751741阅读:313来源:国知局
阴影体的建立方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机图形渲染领域,更具体地说,涉及一种阴影体的建立方法及装 置。
【背景技术】
[0002] 阴影是指空间中的光线被遮挡了的一定区域。阴影效果可以帮助人们更好地感知 物体之间的距离和相对位置,同时帮助人们获取阴影遮挡物及阴影接收体的几何形状等信 肩、。
[0003] 相关技术中,到目前为止还没有标准的动态阴影渲染技术。为了渲染出逼真的动 态阴影效果,相关研究人员已经做出了很多尝试,也提出了不少真实感阴影渲染算法。在这 些不同的算法中,阴影体算法是一种主流的高效动态阴影算法。
[0004] 阴影体算法的效率始终被两个关键的步骤所限制着:一个是轮廓边的检测,另一 个是阴影体的渲染。由于前一个步骤将很大程度上影响后一个步骤的工作量,因此提高轮 廓边检测效率是提高整体算法效率的一个关键所在。现有算法中为了节省CPU资源通常不 进行轮廓边的检测,而是将所有处在正面的边用于构建阴影体。这样做确实减少了 CPU的 负担,然而大量冗余的边用于构造阴影体,极大增加了 GPU的负担。
[0005] 针对相关技术中构建阴影体的技术方案极大的增加了 GPU的负担问题,目前尚未 提出有效的解决方案。

【发明内容】

[0006] 本发明提供了一种阴影的绘制方法及装置,以至少解决上述问题。
[0007] 根据本发明的一个方面,提供了一种阴影体的建立方法,包括:在待进行阴影绘制 的物体的深度图中,根据哈希算法将所述深度图中所述物体的非轮廓边剔除,并查找到所 述深度图中所述物体的所有轮廓边;根据所述所有轮廓边来建立所述物体的阴影体;
[0008] 优选地,根据哈希算法将所述深度图中物体的非轮廓边剔除,并查找到所述深度 图中所述物体的所有轮廓边之前,还包括:创建用来保存所述物体对应光源的物体正面的 所有边数据的顶点数组。
[0009] 优选地,根据哈希算法查找到所述深度图中所述物体的所有轮廓边,包括:遍历所 述顶点数组中的所有边数据;对于所述所有边数据中的每一边数据,计算所述边数据的键 值,并根据所述键值在预先建立的哈希表中查找所述边数据对应的位置;在所述位置未发 现重复边时,确定所述边数据对应的边为轮廓边,其中,所述重复边所对应的第一哈希表值 与第二哈希表值相同,所述哈希表值根据所述键值确定,其中,所述第二哈希表值为所述边 数据所指示边的哈希表值。。
[0010] 优选地,根据哈希算法将所述深度图中物体的非轮廓边剔除,包括:在所述位置发 现重复边时,判断所述边数据的两个顶点的索引值是否相等;如果是,则剔除所述边数据对 应的边。 toon] 优选地,根据哈希算法查找到所述深度图中所述物体的所有轮廓边,包括:在所述 边数据的两个顶点的索引值不相等时,将所述边数据的键值加2N-1,其中,所述N为冲突循 环的次数,并根据所述键值加2N-1后的值在所述预先建立的哈希表中查找边数据对应的 位置。
[0012] 优选地,根据以下公式计算所述边数据的键值KEY : κtY_(V.X)mod/WM ,其 中,νΑ和VB为所述两个顶点分别对应的索引值,MAX为所述哈希表的大小。
[0013] 根据本发明的另一个方面,还提供了一种阴影体的建立装置,包括:剔除模块,用 于在待进行阴影绘制的物体的深度图中,根据哈希算法将所述深度图中所述物体的非轮廓 边剔除;查找模块,用于根据哈希算法查找到所述深度图中所述物体的所有轮廓边;建立 模块,用于根据所述所有轮廓边来建立所述物体的阴影体。
[0014] 优选地,所述装置,还包括:创建模块,用于创建用来保存所述物体对应光源的物 体正面的所有边数据的顶点数组。
[0015] 优选地,所述查找模块,包括:遍历单元,用于遍历所述顶点数组中的所有边数据; 计算单元,用于对于所述所有边数据中的每一边数据,计算所述边数据的键值;查找单元, 用于根据所述键值在预先建立的哈希表中查找所述边数据对应的位置;确定单元,用于在 所述位置未发现重复边时,确定所述边数据对应的边为轮廓边,其中,所述重复边所对应的 第一哈希表值与第二哈希表值相同,所述哈希表值根据所述键值确定,其中,所述第二哈希 表值为所述边数据所指示边的哈希表值。。
[0016] 优选地,所述剔除模块,包括:判断单元,用于在所述位置发现重复边时,判断所述 边数据的两个顶点的索引值是否相等;剔除单元,用于在所述两个顶点的索引值相等时,剔 除所述边数据对应的边。
[0017] 通过本发明,采用基于哈希算法查找轮廓边,并基于轮廓边确定阴影体的技术方 案,解决了相关技术中构建阴影体的技术方案极大的增加了 GPU的负担问题,实现了在不 增加 CPU负担的情况下,准确检测出了轮廓边,极大提高了效率。
【附图说明】
[0018] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019] 图1为根据本发明实施例的阴影体的建立方法的流程图;
[0020] 图2为根据本发明实施例的在哈希表中加入新的边的示意图;
[0021] 图3为根据本发明实施例的渲染阴影的总流程图;
[0022] 图4为根据本发明实施例的阴影体的建立装置的结构框图;
[0023] 图5为根据本发明实施例的阴影体的建立装置的再一结构框图;
[0024] 图6为根据本发明实施例的阴影算法示意图;
[0025] 图7为根据本发明实施例的Z-pass检测方法示意图。
【具体实施方式】
[0026] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0027] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0028] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0029] 为了解决上述技术问题,本发明实施例提供了一种阴影体的建立方法,图1为根 据本发明实施例的阴影体的建立方法的流程图,如图1所示,该方法包括如下步骤:
[0030] 步骤S102 :在待进行阴影绘制的物体的深度图中,根据哈希算法将上述深度图中 上述物体的非轮廓边剔除,并查找到上述深度图中上述物体的所有轮廓边;
[0031] 步骤S104 :根据上述所有轮廓边来建立上述物体的阴影体。
[0032] 通过上述各个步骤,采用基于哈希算法能够快速的查找到建立阴影体所用的轮廓 边,并基于轮廓边确定阴影体的技术方案,解决了相关技术中构建阴影体的技术方案极大 的增加了 GPU的负担问题,实现了在不增加 CPU负担的情况下,快速准确检测出了轮廓边, 极大提1? 了效率。
[0033] 可选地,根据哈希算法将上述深度图中物体的非轮廓边剔除,并查找到上述深度 图中上述物体的所有轮廓边之前之前,还包括:创建用来保存上
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1