平码五不中公式规律
  • / 14
  • 下载费用:30 金币  

用于渲染图像的方法和系统.pdf

关 键 ?#21097;?/dt>
用于 渲染 图像 方法 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201410196756.8

申请日:

2014.05.09

公开号:

CN104143171A

公开日:

2014.11.12

当前法律状态:

撤回

有效性:

无权

法?#19978;?#24773;: 发明专利申请公布后的视为撤回IPC(主分类):G06T 1/00申请公布日:20141112|||公开
IPC分类号: G06T1/00 主分类号: G06T1/00
申请人: 正谓有限公司
发明人: 托马斯·沃洛蒂宁; 阿列克谢·弗拉索夫
地址: 芬兰埃斯波
优?#28909;ǎ?/td> 2013.05.10 EP 13167271.9; 2013.05.10 US 13/891,213
专利代理机构: 北京聿宏知识产权代理有限公司 11372 代理人: 吴大建;刘华联
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201410196756.8

授权公告号:

|||

法律状态公告日:

2016.12.28|||2014.11.12

法律状态类型:

发明专利申请公布后的视为撤回|||公开

摘要

本发明总体上涉及用于渲染图像的方法和系统。具体而言,涉及一种对包括在层树中列出的多个不透明和至少部分透明层的图像进行渲染的方法。图像的层树的多个层分为第一列不透明层和第二列至少部分透明层。每一层分配一索引号,并且根据分配的索引号来将列表进行排序。确定每一层是否需要渲染,如果这些层由至少一个不透明层交叠,则对要渲染的每一层或某些层应用掩模。要渲染的层以基于其在各自的?#38597;?#24207;的列表中的位置的顺序进行渲染。

权利要求书

权利要求书
1.  一种对包括多个不透明层和至少部分透明层的图像进行渲染的方法,?#28210;校?#25152;述方法包括以下步骤:
将所述图像的层树的多个层分为第一列不透明层和第二列至少部分透明层;
为每一层分配索引号;
?#36816;?#24341;号的升序方式来对第一列进行排序;
确定每一层是否需要渲染;
若答案是肯定的,则对要渲染的交叠有不透明层的每一层进行掩模;以及
将每一掩模层以及要渲染的每一附加层以基于其在各自的?#38597;?#24207;列表中的位置的顺序进行渲染。

2.  如权利要求1所述的方法,?#28210;校?#22522;于层在图像的层树中的位置将索引号分配到该层。

3.  如权利要求1或2所述的方法,?#28210;校?#20174;图像的层树的顶部开?#21450;?#29031;递增的顺序分配所述索引号。

4.  如上述权利要求中?#25105;?#39033;所述的方法,?#28210;校?#25152;述方法进一步包括根据该列不透明层和透明层生成一列相交的不透明前景层的步骤。

5.  如上述权利要求中?#25105;?#39033;所述的方法,?#28210;校?#23545;每一层进行掩模的步骤包括将模板缓冲器从轴对齐边界矩形的矩形区域清为整数值0。

6.  如权利要求1至4中?#25105;?#39033;所述的方法,?#28210;校?#23545;每一层进行掩模的步骤包括使用深度测试掩模技术。

7.  如上述权利要求中?#25105;?#39033;所述的方法,?#28210;校?#25152;述方法还包括根据该列不透明层和透明层生成一列相交的不透明背景层的步骤。

8.  如上述权利要求中?#25105;?#39033;所述的方法,?#28210;校?#23545;不透明的第一列进行排序的步骤包括用稳定排序法对不透明的第一列进行排序,?#28210;校?#35813;稳定排序法包括插入排序法以使得更高的索引号与列中更早的层关联,?#28210;校?#25353;照与透明的第二列相反的数值顺序对不透明的第一列进行排序。

9.  如上述权利要求中?#25105;?#39033;所述的方法,?#28210;校?#30830;定每一层是否需要渲染的步骤包括确定图像是否已改变。

10.  如上述权利要求中?#25105;?#39033;所述的方法,?#28210;校?#30830;定每一层是否需要渲染 的步骤包括确定层内容是否已改变。

11.  如上述权利要求中?#25105;?#39033;所述的方法,?#28210;校?#30830;定每一层是否需要进行渲染的步骤可包括确定?#25105;?#23618;是否已改变,?#28210;校?#36825;些层在附加层已包括到这些层中时发生改变。

12.  如权利要求11所述的方法,?#28210;校?#25152;述方法包括确定附加层是否是透明的,?#28210;校?#21709;应于附加层是透明的确定,所述方法还包括通知全部相交的下方层需要进行渲染,并通知与该附加层相交的所有透明的前景层。

13.  如权利要求11或12所述的方法,?#28210;校?#25152;述方法还包括确定附加层是否为不透明,?#28210;校?#21709;应于附加层是不透明的确定,通知与该附加层相交的所有下方层,并通知与该附加层相交的所有透明的前景层。

14.  一种用于将具有多个不透明和至少部分透明层的图像进行渲染的系统,?#28210;校?#25152;述系统包括:
索引模块,其可操作用以为每一层分配索引号;
分离模块,其可操作用以将所述图像的层树的多个层分为第一列不透明层和第二列至少部分透明层;
排序模块,其可操作用以依照索引号的升序对第一列进行排序;
查询模块,其可操作用以确定每一层是否需要渲染;
掩模模块,其可操作用以响应于层需要渲染的确定来对交叠有不透明层的要渲染的每一层进行掩模;
渲染模块,其可操作用以将每一掩模层以及要渲染的每一附加层以基于其在各自的?#38597;?#24207;的列表中的位置的顺序进行渲染。

说明书

说明书用于渲染图像的方法和系统
技术领域
本发明总体上涉及用于渲染图像的方法和系统。具体而言,本发明涉及渲染包括多个不透明和至少部分透明层的图像的方法。
背景技术
一般而言,在图形应用中,图?#26410;?#29702;单元(GPU)通常是处理管线中最慢的部分,即瓶颈。例如,在交互式图形应用中,显示在显示屏幕上的内容必须连续更新。在图像改变的情况下,例如,?#35828;?#31383;口关闭,整个?#35828;?#31383;口图像需要在每帧上完全渲染。然而,即使该内容的某些部分并未更新,这种公知的渲染整个内容的方法仍然导致非最优的渲染性能。该方法进一步导致能耗的增加,在实时应用中,尤为如此。另一公知的用于渲染的方法包括使用染色器算法,其从顶部到底部渲染一层树,但该方法也是相对?#25176;?#30340;。
因此,本发明的目的在于提供一种至少部分解决上述问题的用于渲染图像的备选方法及系统。
发明内容
根据本发明的第一方面,提供了一种对包括多个不透明和至少部分透明层的图像进行渲染的方法,所述方法包括以下步骤:
将所述图像层树的多个层分为第一列不透明层和第二列至少部分透明的层;
为每一层分配索引号;
?#36816;?#24341;号的升序方式来对第一列进行排序;
确定每一层是否需要渲染;
若答案是肯定的,则对要渲染的交叠有不透明层的每一层进行掩模;以及
将每一掩模层以及要渲染的每一附加层以基于其在各自的?#38597;?#24207;列表中的位置的顺序进行渲染。
可基于层在图像的层树中的位置将索引号分配到该层。
在优选实施例中,从图像的层树的顶部开?#23478;?#29031;递增的顺序分配所述索引号。
在一实施例中,该方法可包括根据该列不透明层和透明层生成一列相交的不透明前景层。
此外,在该实施例中,该方法可包括根据该列不透明层和透明层生成一列相交的不透明背景层。
对每一层进行掩模的步骤可包括将模板缓冲器从轴对齐边界矩形的矩形区域清为整数值0。在其他实施例中,对每一层进行掩模的步骤可通过各种其他掩模技术来执行,例如深度测试掩模技术。
对第一列进行排序的步骤包括用稳定排序法对第一列排序。优选的,所述稳定排序法包括插入排序法以使得更高的索引号与列中更早的层关联。
可按照与第二列相反的数值顺序对第一列进行排序。
在一实施例中,确定每一层是否需要渲染的步骤包括确定图像是否已改变。
在一实施例中,确定每一层是否需要渲染的步骤包括确定层内容是否已改变。
在一实施例中,确定每一层是否需要进行渲染的步骤包括确定?#25105;?#23618;是否已改变,例如,确定附加层是否已包括到这些层中。
在本实施例中,该方法可包括确定附加层是否是透明层。如果答案是肯定的,则该方法可包括通知全部相交的下方层需要进行渲染。此外,该方法可包括通知与该附加层相交的所有透明的前景层。
在一示例性实施例中,该方法可包括确定附加层是否是不透明的。如果答案是肯定的,则该方法可包括通知与附加层相交的所有透明的前景层。
在一实施例中,确定每一层是否需要渲染的步骤可包括确定位于不透明层前方的?#25105;?#36879;明层是否已改变。
在一实施例中,确定每一层是否需要渲染的步骤可包括确定某层是否已从图像中移除。若答案是肯定的,则该方法可包括通知与已移除层相交的全部下方层的步骤,并且,还通知与已移除层相交的全部透明的前景层。该方法进一步可包括通知与移除层相交的透明的前景层需要进行渲染。
在一实施例中,确定每一层是否需要渲染的步骤包括确定一层是否已从图像中移除。若答案是肯定的,则该方法进一步包括通知与移除层相交的全部下方层。
该方法可包括从不透明的全部相交的前景层生成掩模。
生成掩模的步骤包括将模板缓冲器从一轴对齐边界矩形的矩形区域清为整数值0。
该方法进一步包括将全部相交的前景不透明层渲染到具有数值1的模板缓冲器。
本发明?#22266;?#20379;一种用于将具有多个不透明以及至少部分透明的层的图像进行渲染的系统,所述系统包括:
索引模块,其可操作用以对每一层分配索引号;
分离模块,其可操作用以将所述图像的层树的多个层分为第一列不透明层以及第二列至少部分透明层;
排序模块,其可操作用以依照索引号的升序来对第一列进行排序;
查询模块,其可操作用以确定每一层是否需要渲染;
掩模模块,其可操作用以响应于层需要渲染的确定来对交叠有不透明层的要渲染的每一层进行掩模;
渲染模块,其可操作用以将每一掩模层以及要渲染的每一附加层以基于其在各自的?#38597;?#24207;列表中的位置的顺序进行渲染。
本发明?#22266;?#20379;一?#21046;渲?#23384;储有一系列计算机可读指令的非暂时性的计算机可读介质,该指令用于使处理器对包括多个不透明和至少部分透明层的图像进行渲染,其包括以下计算机实现的步骤:
为每一层分配索引号;
将所述图像的层树的多个层分为第一列不透明层和第二列至少部分透明层;
?#36816;?#24341;号的升序方式将第一列排序;
确定每一层是否需要渲染;
若答案是肯定的,则对交叠有不透明层的要渲染的每一层进行掩模;以及
将每一掩模的层和要渲染的每一附加层以基于其在各自的?#38597;?#24207;列表中的位置的顺序进行渲染。
附图说明
仅以举例的方式并参照附图来描述本发明,附图中:
图1显示了使用时在显示屏幕上显示内容的表示方式;
图2显示了根据本发明的一方面用于渲染图像的系统的模块;
图3显示了根据本发明的另一方面渲染图像方法的流程;
图4显示了根据图2和图3的排序到两个列表的层的示意图;以及
图5a和图5b显示了图3中方法的示例性实施例。
具体实施方式
在以?#28388;?#26126;中,出于解释的目的而阐述了许多具体?#38468;冢?#20197;提供对本发明实施例的彻底理解。然而,对本领域的技术人员来说显而易见的是,本发明可以不用这里的具体?#38468;?#25110;者所描述的特定方式来实施。
在附图的图1中,参考数字10总体表示用于显示装置(未示出)的显示屏幕。?#20849;?#32771;图2,用于渲染图像的系统由参考数字20表示。显示装?#27599;?#20197;?#19988;?#21160;装置或者个人计算机。显示屏幕10包括显示为页面图标13、编辑图标14、撤销图标15和文件图标16的图标12。通过点击图标12中的一个,为用户提供在显示屏幕上显示为对由用户提供的输入动作的确认的可视化显示。因此,无论何时用户点击图标12中的一个,特定的显示屏幕10就得相应更新。例如,在图1中,当用户点击编辑图标14时,显示屏幕被认为是损坏的,因此其应?#21271;?#37325;新绘制。在本示例中,当点击编辑图标14时,显示由参考数字17表示的下拉?#35828;ァ?#24403;下拉?#35828;?7关闭时,?#35828;?#25152;在的区域必须要进行重新绘制,从而产生交叠有?#35828;?#30340;显示屏幕。在使用中,系统20(见图2)和方法28(见图3)渲染?#19978;?#25289;?#35828;?7所描述的图像,以及通过最小化过度绘制来渲染?#19978;?#25289;?#35828;?7的关闭表示的图像。具体来说,系统20和方法28通过确保在渲染特定层之前将图像的层分为不透明层和透明层来以最优的方式渲染图像。
参考附图中的图2,参考数字20总体上表示用于渲染包含多个不透明和至少部分透明层的图像的系统。该系统在下文中称为图像渲染系统20,并且包括图像渲染处理器21,其定义对应于由处理器21执行的功能任务的多个概念模块22、23、24、25、26和27。这些模块包括索引模块22、分离模块23、排序模块24、查询模块25、掩模模块26和渲染模块27。
在多数图形应用中,无论何时显示屏幕的内容有任何改变,显示屏幕就得相应地重绘或者更新。因此,由图像表示的内容需要经过重绘处理。图像首先转化为图形,该图形又由多个层表示。这些层包括不透明层和透明层。系统20通过 其索引模块22将索引号分配到全部的透明和不透明层。分离模块23?#28210;?#20026;将图像的层树的多个层分为不透明层的第一列表和透明层的第二列表。?#32531;螅?#25490;序模块24?#36816;?#24341;号的升序方式对层的不透明列表进行排序。可以理解的是,可以用不同的排序方法对列表进行排序。一旦列表被排序,查询模块25便会询?#35782;?#20010;层,以判断该多个层是否需要渲染。在这些层需要渲染的情况下,掩模模块26对要渲染的交叠有透明层的每一层进行掩模。?#32531;螅?#28210;染模块27将每一掩模层以及要渲染的每一附加层以基于其在各自的?#38597;?#24207;列表中的位置的顺序进行渲染。
参考用?#36816;?#26126;渲染图像的方法28的图3、图4、图5a和图5b,进一步描述模块22、23、24、25、26和27。图4显示了排序为两个列表的层的示意图,而图5a和图5b显示?#31169;?#34892;渲染的图像的示例性实施例。
具体参考图2、图3、图4、图5a和图5b,方法28包括将索引号分配到层树35(见图4)上的每一层的步骤(在框29中)。索引号的分配由索引模块22完成。具体来说,依据层在层树35上的外观来给层树上的每一层分配递增的索引号。索引号按照从图像的层树的顶端到层树的底部递增的顺序分配。例如,如图4所示,第一不透明层35.1(在顶行中)分配有索引号1,并且随后的不透明层35.2分配有索引号2。在树35中由不透明层35.1表示的更高节点分配有更低的索引号,即索引号1。在随后的不透明层35.2之后,存在第一透明层35.3,并且其分配有索引号1而不是3,因为其为新类型的层。
一旦层已分配有索引号,那么方法28就将层划分为第一和第二列表(在框30中)。该划分操作由分离模块23完成。第一和第二列表分别表示不透明列表和透明列表。图4显示了不透明列表由参考数字36表示,透明列表由参考数字37表示。
在本说明书的上下文中,透明层可意味着特定透明层覆盖的区域取决于层的下方像素值。透明层可用下述公式来定义:
Co=αaCA+(1–αa)Cb
?#28210;校?
Co为在特定像素坐标处的输出颜色值;
CA为在特定像素坐标处的要渲染的透明层颜色;
Cb为在特定像素坐标处的现有颜色;
αa为在特定像素坐标处的CA的透明值,其在当前的颜色值和透明层颜色值之间有效地混合。例如,αa=1.0可表示完全不透明像素值,而αa=0.0表示完全透明像素值。因此,透明层定义为根据A的阿尔法信道在A和B之间混合的多个层的复合结果。本领域技术人员可以理解,不透明层不依赖于下方的像素值。
系统可从透明层和不透明层生成(未示出)一列相交的不透明前景层和一列相交的不透明背景层。因此,每一层包括两列:一列针对相交的背景层,而另一列针对相交的前景层。这种相交列表可在从图形转化到层期间生成,使得根据全部下方的前景层完成轴对齐边界矩形测试。
方法28通过排序模块24以降序方式对不透明列表进行排序(在框31中)。也就是说,不透明列表以与透明列表相反的数值顺序排序。在一优选的实施例中,采用称为稳定排序的常用方法对不透明列表36进行排序。具体而言,不透明列表36采用插入式排序方法进行排序,使得已分配有更高的索引号的层设置为不透明列表36中的更早的层。如图4所示,在不透明列表36上显示的第一不透明层显示为不透明数字3。
在框32中,该方法包括确定是否每一层需要渲染的步骤。具体而言,查询模块25询问这些层以确定其是否需要渲染。存在各种特定层需要渲染的原因。在示例性实施例中,可能在图像改变的位置处需要渲染。例如,在图像形式为屏幕上显示的下拉?#35828;?#30340;情况下,图像可通过关闭下拉?#35828;?#32780;发生改变。在其他情况下,如果图像为可点击的方框的形式,那么该图像可在点击方框的时候改变。因此,对图像的任何改变将导致图像的层需要渲染。
在其他情况下,如果图像已发生改变,那么这种层的改变将导致层需要渲染从而更新这种改变。例如,层可在附加层包括在层中时发生改变。附加层可检测其是否为透明的或者不透明的。如果附加层是透明的,将通知全部相交的下方层需要进行渲染。另外,可通知与附加层相交的透明的全部前景层。如果附加层是不透明的,那么可通知全部前景层存在与附加层相交的透明层。
在其他示例性实施例中,确定层是否需要渲染可包括确定设置在不透明层前的?#25105;?#36879;明层是否已改变。在其他备选实施例中,确定层是否需要渲染可包括确定层是否从图像中移除。如果发现层已从图像中移除,那么应通知与已移除层相交的全部下方层需要进行渲染。另外,也应当通知与已移除层相交的透明前景层需要进行渲染。
色彩缓冲器(视频/屏幕存储器)中的数据根据之前的渲染结果而被保存下来。在使用双缓冲器(或者三个缓冲器)来显示从存储器(缓冲器A)到屏幕(缓冲器B)的像素的?#24067;?#19978;,需要将缓冲器的内容从缓冲器A拷贝?#20132;?#20914;器B,而不是将缓冲器反转。这是一种GPU通常支持的交换机制,因为可拷贝缓冲器数据而不是将缓冲器反转。
以?#28388;?#27861;描述了渲染标?#24230;?#20309;针对层列表中的每一层而被触发的,?#28210;校?#20551;设有关相交层的信息?#19988;?#30693;的:


参照上述算法,查询模块25将确定每一层是否需要渲染。在特定层需要渲染的情况下,在所述特定层上设置标识。在层上设定标识用以指示需要渲染的层。标识的状态例如可以是“否”或者“是?#20445;渲校?#21542;?#21271;?#31034;特定层不需要渲染,而“是?#21271;?#31034;特定层需要渲染。
若背景层的标识为“否?#20445;?#21017;该层与独立的不透明层和相交的透明层相交。若独立的不透明层的标识为“否?#20445;?#21017;该独立的不透明层与背景层相交。若相交的透明层的标识指示为“是?#20445;?#21017;该相交的透明层与背景层相交。根据该算法,相交的透明层将触发相交的不透明层以进行渲染,从而?#19981;?#23548;致标识状态的改变。以?#28388;?#26126;该改变。
背景层的标识改变为“是”。独立的不透明层的标识指示“否”的状态,因为独立的不透明层不与透明层相交。在这种情况下,相交的透明层的标识指示为“是”。这意味着背景层相应地应得到渲染。总而言之,应通知与已移除层相交的全部下方层需要进行渲染。
参考图5a,一旦已识别出层需要渲染,则在框33中掩模模块26根据不透明的全部相交的前景层38.1和38.3而生?#19978;?#20132;掩模38.4。在示例性的实施例中,层38.1和38.3均为不透明的,因此,随后由层38.1和38.3二者对层38.2进行掩模。相交掩模通过将模板缓冲器从轴对齐的边界矩形的矩形区域清为整数值0生成。随后,全部相交的前景不透明层渲染到具有数值1的模板缓冲器中。最后,当在屏幕上渲染单个层时,执行接受具有模板数值0的全部片段的模板测试函数。本领域技术人员将会理解,掩模模块26可使用其他不同的掩模技术,以对需要渲染的层进行掩模。在一示例性实施例中,该掩模技术可以为称为深度测试掩模技术的技术。
在图5b中,不透明和透明层表示为参考数字39。具体来说,层39.2用层39.3而不是用层39.1进行掩模,因为层39.2中的像素需要进行渲染以保证层39.1正确地进行渲染。这是由于层39.1对层39.2具有依赖性。通过计算层依赖性并基于层依赖性,仅将必须的层进行渲染,这保证?#31169;?#38024;对帧的子区域执行更新。
所举例说明的本发明的有益效果在于在渲染图像的同时提高性能并减少功率。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定结构、处理步骤或材料,而应当?#30001;?#21040;相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。
说明书中提到的“一个实施例”或“实施例?#24065;庵附?#21512;实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
为了方便,在此使用的多个项目、结构单元、组成单元和/或材料可出现在共同列表中。然而,这些列表应解释为该列表中的每个元素分别识别为单独唯一的成员。因此,该列表中没有一个成员可仅基于它们出现在共同列表中而没有反面指?#39048;?#34987;解释为相同列表的任何其它成员的?#23548;实?#21516;。另外,在此还可以连同针对各元件的替代一起来参照本发明的各种实施例和示例。应当理解的是,这些实施例、示例和替代并不解释为彼此的等同物,而被认为是本发明的单独自主的代表。
此外,所描述的特征、结构或特性可以任何其他合适的方式结?#31995;?#19968;个或多个实施例中。在下面的描述中,提供一些具体的?#38468;冢?#20363;如长度、宽度、形状等,以提供对本发明的实施例的全面理解。然而,相关领域的技术人员将明白,本发明无需上述一个或多个具体的?#38468;?#20415;可实现,或者?#37096;?#37319;用其它方法、组件、材?#31995;?#23454;?#24103;?#22312;其它示例中,周知的结构、材料或操作并未详细示出或描述以免模糊本发明的各个方面。
虽然上述示例用于说明本发明在一个或多个应用中的原理,但对于本领域的技术人员来说,在不背离本发明的原理和思想的情况下,明显可以在形式上、用法及实施的?#38468;?#19978;作各种修改而不用付出创造性劳动。因此,本发明由所附的权利要求书来限定。

关于本文
本文标题:用于渲染图像的方法和系统.pdf
链接地址:http://www.pqiex.tw/p-6124444.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 注册就送彩金的现金棋牌 gta线上能做生意赚钱吗 斗地主玩法规则 被拉进一个炒币群 全是晒单赚钱的 时时彩全天计划 大一 编程赚钱 炸金花赢钱的小方法 网上怎么赌博鱼虾蟹 辽宁快乐12最准预测 网上买快三彩票会坐牢吗