[发明专利]一种基于活性边表和辅助数组的逆画家消隐算法在审
申请号: | 201210157446.6 | 申请日: | 2012-05-17 |
公开(公告)号: | CN103426197A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 姜军委 | 申请(专利权)人: | 上海闻泰电子科技有限公司 |
主分类号: | G06T13/80 | 分类号: | G06T13/80;G06F17/30 |
代理公司: | 上海元一成知识产权代理事务所(普通合伙) 31268 | 代理人: | 吴桂琴;谭震威 |
地址: | 200001 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 活性 辅助 数组 画家 算法 | ||
技术领域
本发明涉及计算机图形学领域中的图像消隐技术,主要涉及一种基于活性边表和辅助数组的逆画家消隐算法,其主要用于提高手机等手持终端设备中游戏及大量窗口图形程序中的消隐处理的效率。
背景技术
随着手机的迅猛发展,手机娱乐已经成为一种不可阻挡的趋势。而手机游戏在整个领域占有相当大的比重。而说到游戏,对于开发人员不得不面对的一个问题就是图像处理,因为有个游戏运行时,消耗在图像处理上的处理器运算时间往往占到整个运算时间的50%以上,游戏中图像的处理的效率的高低直接影响游戏整体效果。而目前的手机游戏由于发展时间相对较短,目前的相关的图像处理技术(主要是硬件方面)和系统还无法达到PC游戏的水准。而且由于目前手机等手持终端设备在硬件上还存在很多限制,例如:由于处理器及内存的限制,目前主流手机无法处理大量的负责的数据运算。另外由于手机等手持自身的特点:设备的屏幕尺寸相对较小,按键数量、操作性等。
基于以上因素的考虑,目前游戏依然以资源占用和运算量较少的2D游戏为主,而游戏中对于消除隐藏面的处理一般采用简化处理,较多的采用画家算法或列表优先算法。画家算法原理简单,其关键是如何对场景中的物体按深度排序。它的缺点是只能处理互不相交的面,不过由于主要应用在2D图像处理,因此基本涉及到深度问题,因此这个致命的缺陷就避免了。但是还有一个问题是当一个场景存在大量遮挡物体时中就会出现大量的冗余运算,严重运算影响效率。而对于处理器处理速度相对较低的手机等手持设备,这个缺陷有可能是致命的。
发明内容
本发明要解决的技术问题是为了克服现有技术的缺陷,本发明提供了一种基于活性边表和辅助数组的逆画家消隐算法,用活性边表(特别是哈希表,Hashtable)来取得频繁的深度排序处理,用辅助矩阵来避免无效的图像运算。
本发明是通过下述技术方案来解决上述技术问题的:一种基于活性边表和辅助数组的逆画家消隐算法,其特征在于,其包含以下步骤:
S1初始化工作,初始化一个屏幕像素标志辅助数组和一个扫描线辅助数组,初始化场景中所有精灵位置,并以其深度坐标填充到活性边表中,将每个精灵的深度信息填充到活性边表中;
S2若检测到某一精灵发生深度改变事件时,更新活性边表,无此事件全部不更新边表,处理完当前帧内所有逻辑事件后,精灵深度活性边表及为当前精灵位置的最新状态;
S3采用逆画家算法,从最近视角扫描精灵,刷新到屏幕中,即按活性边表深度由浅到深的顺序遍历活性边表中每个精灵节点,将其绘制到屏幕中,并且在绘制每个精灵时同步更新辅助数组;
S4当活性边表中所有节点遍历完毕后,当前帧中图像绘制结束。
本发明的积极进步效果在于:本发明用活性边表(特别是哈希表,Hashtable)来取得频繁的深度排序处理,用辅助矩阵来避免无效的图像运算。
附图说明
图1是本发明方法中的活性边表初始化示意图;
图2是本发明方法中辅助矩阵M的数据示意图;
图3是本发明方法中扫描线辅助数组L的数据示意图;
图4是本发明方法的简要流程示意图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
首先前提假设如下:为便于表述,以240*320屏幕尺寸为例,游戏场景中所有物体都以“精灵”代替(游戏场景中主要涉及到大量的人物、建筑、装饰等),场景的深度由纵坐标表示,屏幕最下方为视点最近区,最上方为视点可见最远区。每个精灵自身在数据上不存在深度(全部2D表示),其先后顺序都有一个基准纵坐标标识,并用此坐标关联到场景中,用以表示物体的先后顺序,并作为消隐的关键依据。
如图4所示,一种基于活性边表和辅助数组的逆画家消隐算法包括如下步骤:
S1初始化工作。初始化一个屏幕像素标志辅助数组M(大小屏幕宽*高),一个扫描线辅助数组L(大小屏幕宽,其作用介绍见S3),初始化场景(或显示区域)中所有精灵位置,并以其深度(即纵坐标)坐标填充到活性边表中,将每个精灵的深度信息填充到活性边表AET中,数据形式如图1;
S2若检测到某一精灵发生深度改变事件时,更新活性边表(需要执行的操作为:一次删除,一次插入),无此事件全部不更新边表。处理完当前帧内所有逻辑事件后,精灵深度活性边表及为当前精灵位置的最新状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海闻泰电子科技有限公司,未经上海闻泰电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210157446.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种LED灯具的整体式光源散热模块
- 下一篇:一种LED灯