好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

渲染多层图像的制作方法.docx

5页
  • 卖家[上传人]:ting****789
  • 文档编号:310011137
  • 上传时间:2022-06-14
  • 文档格式:DOCX
  • 文档大小:23.46KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 渲染多层图像的制作方法专利名称:渲染多层图像的制作方法渲染多层图像背景技术:图像常常被构造在各层中在图像的各层当中,从前到后定义一定顺序,并且可以把每一层与特定不透明度数值相关联,该不透明度数值通常被表示在a通道中因此,从各层建立的最终图像表示不同的各层到背景上的混合,其中给定层对其后方各层以及背景的遮挡数量由该层的不透明度决定此外,可以定义全局a数值,该数值影响各层遮挡背景的累计数量将各个图像层渲染到背景上的处理有时被称作光栅化将各层光栅化到背景上的一种方式是将各层从后到前渲染到中间目标上随后可以用所述全局a数值对所述中间目标的不透明度进行缩放,即把所述中间目标中的各个像素数值乘以所述全局a数值随后可以把所述中间目标光栅化到背景图案或图像上但是这种技术的效率可能较低发明内容 在一个例子中,可以按照下面的方式将各个图像层光栅化到背景上各层要被光栅化到其上的背景缓冲区具有a通道该a通道虽然通常被用来表示背景缓冲区的不透明度,但是也可以被用于存储对于其他数值的计算将a通道清空随后按照从最前到最后的顺序考虑各个图像层的a数值首先检查最前层的a数值随后把剩余待分配给各层的不透明度的数量乘以最前层的a数值,并且把乘积加到背景缓冲区的a通道上。

      随后从前到后对于每一层重复该处理也就是说,对于每一层把剩余待分配的不透明度的数量乘以该层的a数值,并且把乘积加到a通道上这样,所述a通道就充当用于由到目前为止所考虑的所有各层所消耗的不透明度数量的累加器等到考虑过所有各层时,所述a通道存储由各层消耗的不透明度的总数量(将通过全局a数值对其进行缩放)随后将所消耗的不透明度的该总数量乘以所述全局a数值,并且乘积就是由各层消耗的不透明度的最终数量随后把各层所消耗的不透明度的最终数量的补数分配给背景因此,背景被预先暗化的数量等于各层所消耗的不透明度数量的补数随后将各层本身光栅化到经过预先暗化的背景上为了施行该光栅化,再一次清空背景缓冲区的a通道,从而其可以充当用于由各层所消耗的不透明度数量的累加器随后按照从最前到最后的顺序考虑各层对于每一层,把剩余待分配的不透明度数量(即a通道的当前数值的补数)乘以当前层的a数值随后对于每一个像素将该乘积乘以所述像素的颜色,并且将结果加到背景中的相应像素上随后把a通道的当前数值的补数与当前层的a数值的乘积加到a通道上随后按照这种方式从前到后处理每一层,直到考虑过所有各层为止在考虑过所有各层之后,就已经按照考虑到各层的单独a数值和全局不透明度的方式将各层光栅化到背景上了。

      随后可以显示所得到的图像提供本概要是为了以简化形式介绍将在后面的详细描述部分中进一步描述的概念的选集本概要不意图标识出所要求保护的主题内容的关键特征或本质特征,也不意图被用来限制所要求保护的主题内容的范围图I是其中可以将多层图像光栅化到背景上的示例性情形的方框图图2是其中可以将图像的一层或更多层光栅化到背景上的示例性处理的流程图图3是用以计算由各个图像层使用的不透明度数量的示例性处理的流程图图4是用以将各层光栅化到背景上的一种示例性方式的流程图 的实现 的示例性组件的方框图具体实施例方式将要渲染的图像常常被构造在各层中定义一个背景,随后把各个图像层叠加在彼此之上,从而将最后层直接光栅化到背景上;将前面的下一层光栅化在最后层之上;依此类推,直到将最前层光栅化在所有先前各层之上为止可以在任意层集合之间定义一定顺序,从而有可能知道哪一层是最后层,哪一层是下一层,依此类推直到最前层在现今的渲染系统中,有可能对于每一层定义不透明度数值,其通常被表示在a通道中所述a数值规定给定层的不透明程度0.0的a数值表示0%不透明度(完全透明)1.0的a数值表示100%不透明度各层常常具有处于这两个极端数值之间的a数值。

      此外还可以定义全局a数值,其对所有各层的不透明度进行缩放背景以及每一层对最终光栅化图像的贡献数量由单独各层的a数值和全局a数值决定但是将各个a数值纳入考虑会产生一些复杂情况举例来说,假设全局a数值为0.5,并且存在其范围从0.0到1.0的各个a数值的十层将会出现的情况是可以把全局a数值应用于总体图像,这是通过把0.5的全局a数值乘以单独每一层的a数值而实现的但是全局a数值不是分布在各个单独的a数值上相反,在确定了单独各层的相对透明度之后应用全局a数值在考虑到各个a数值的同时渲染各层的一种方式是从后到前将单独各层渲染到一个中间目标上,对所述中间目标应用全局透明度,并且随后将所述中间目标渲染到背景上但是这种技术可能效率较低,这是因为其对于中间目标使用了额外的存储这里所描述的主题内容提供了将各个图像层渲染到背景上的一种高效方式在一个实例中存在背景缓冲区,其保存将各个图像层光栅化到其上的背景所述背景缓冲区具有a通道,其可以按照下面的方式被用作各个a数值的累加器从前到后对各层进行初始遍历,以便确定每一层对最终图像的贡献将有多少在该初始遍历期间,背景的a通道代表由到目前为止所考虑的所有各层所消耗的不透明度数量。

      在其中不透明度从0.0到1.0取值的实例中,可用于分配给各层的不透明度的总数量是1.0因此,在开始所述初始遍历时清空a通道(即设定到0.0);此时还没有考虑任何层,因此还没有可用透明度被分配给任一层随后从前到后遍历各层对于第一层,将可用不透明度的数量(即1.0减去a通道的数值)乘以该层的不透明度该结果是将被该层消耗的不透明度的数量,因此结果被加到a通道上随后从前到后对于后面的每一层重复所述处理举例来说,假设前两层分别具有0. 3和0. 5的a数值当考虑第一层时,a通道具有0. 0的数值,从而剩余待分配的不透明度数量是I. O因此,将1.0的剩余不透明度乘以第一层的a数值0.3,从而等于0.3因此,将0.3加到a通道上当考虑第二层时,剩余待分配的a不透明度是0.7(即I.O减去0.3)因此,将0. 7乘以第二层的a数值0. 5,从而等于0. 35第二层将消耗0.5的剩余不透明度,从而是0. 35的不透明度总数量(这是因为第一层已经消耗了 0.3)因此,在考虑了前两层之后,所消耗的不透明度的总数量是0.65,其在此时是a通道的数值重复该处理,直到考虑了从前到后的所有各层为止在考虑了所有各层之后,所消耗的不透明度的总数量可以是I. 0,或者可以小于I. O。

      在考虑了所有各层之后,应用全局a数值假设在考虑了所有各层之后,背景缓冲区的a通道的数值为0.8,从而表明0.8的a通道已被单独各层消耗进一步假设全局a数值为0. 7在该例中,将0. 7的全局a数值乘以0. 8的a通道数值,从而得到0. 56随后使用该数值的补数来预先暗化背景补数的构成取决于被用来表示不透明度的计数系统如果a数值的范围是从0. 0到I. 0,则某一数值X的补数则是从I. 0减去X在另一个例子中,如果a数值的范围是从0%到100%,则某一数值Y的补数则是100减去Y因此,如果在应用了全局a数值之后的a通道的数值为0. 56,则补数为0. 44,从而利用0. 44的不透明度水平预先暗化背景为了施行该预先暗化,对于背景中的每一个像素,将该像素的颜色乘以0.44,并且把结果写入到背景缓冲区上随后清空背景缓冲区的a通道,从而使其可以被再次使用来对于各层的第二趟遍历累加各个a数值 随后可以从前到后对各层进行另一趟遍历对于最前层中的每一个像素,将a通道的补数乘以该层的a数值和该像素的颜色随后把该乘法的结果加到该像素处的背景缓冲区的颜色上可以回想到利用背景图像对背景缓冲区进行了预先暗化,因此所述操作的结果是将背景与最前层混合。

      随后将背景缓冲区的a通道的补数乘以最前层的a数值,并且将结果加到背景缓冲区的a通道上与第一趟遍历一样,背景缓冲区的a通道充当由各层消耗的不透明度的累计数量的累加器)随后对于向前的下一层重复所述处理,依此类推,直到从前到后考虑了所有各层为止也就是说,对于第二层,将a通道的当前数值的补数乘以第二层的a和每一个像素的颜色;随后对于每一个像素将所述结果加到背景缓冲区中的相应像素的当前数值上随后将a通道的数值的补数乘以第二层的a数值,并且将结果加到a通道上依此类推遍历所有各层,直到所有各层都被光栅化到背景上为止在一个例子中,背景缓冲区可以是内建到图形卡中的存储器的一部分,但是这里的主题内容不限于使用任何特定种类的硬件此外在一个例子中,这里所描述的技术可以避免使用将把各层渲染到其上的中间目标;但是这里的主题内容可以按照任何适当方式来实施,不管是否使用中间目标现在参照附图,图I示出了其中可以将多层图像光栅化到背景上的一种示例性情形层102、104、106和108是将被光栅化的图像的单独各层在图I所示的实例中,这些层当中的每一层中的图像分别是字母A、B、C和D,但是每一层也可以包含任何类型的图像每一层与一个不透明度(a)数值相关联。

      具体来说,在所示实例中,层102具有a数值0.10 ;层104具有a数值0. 25 ;层106具有a数值0. 20 ;层108具有a数值0. 30此外,在各层102 — 108当中定义一定顺序也就是说,层108处于层106 “前方”(或“上方”),层106处于层104上方,层104处于层102上方因此,当将层102 — 108光栅化时,最终图像将是字母A、B、C和D的某种组合各个字母将部分地彼此遮挡,遮挡方式取决于其对应各层的顺序以及这些层的相对不透明度一般来说,更靠近“前方”(或“上方”)的层往往会遮挡更靠近后方的层此外,对于图像的给定顺序位置(即、最前、次最前等等),该层趋向于遮挡后方各层的数量是基于为该层指派的不透明度的大小因此,具有a数值0.30的层108将会在某种程度上遮挡层102 - 106但是如果层108例如具有a数值0. 8,则层108随所述其他各层的遮挡数量将更大相反,如果层108具有a数值0. 1,则层108对其他各层的遮挡数量将更小背景110是对应于层102 - 108的光栅化目标因此,背景110保持某种类型的图像(例如纯色、图案、光栅化照片等等),并且层102 - 108被光栅化到该背景上。

      可以对于整个多层图像定义一个全局a数值112如前所述,各层本身消耗可用总数量的一部分,并且全局a数值112是对各层所消耗的不透明度的总数量进行缩放的一个因数因此,如果由层102 — 108消耗的不透明度的总数量是0.4并且全局a数值112是0. 6,则将0. 6乘以0. 4,从而得到0. 24换句话说,如果各层消耗了 0. 4的可用不透明度并且全局a数值是0.6,则由各层消耗的不透明度的总数量是0.24,从而留下0.76的总的可用不透明度待分配给背景应当提到的是,图I中所示的情形可以按照任何适当方式来实施但是实施该情形的一种方式是在图形卡114上具体来说,图形卡114可以具有存储器116和处理器118处理器118可以被用来施行与视觉图像有关的各种类型的计算存储器116的一部分可以被用作背景缓冲区120背景缓冲区120具有用来存储像素数值的空间图像的光栅化涉及将正确的数值写入到背景缓冲区120的各个像素中因此,背景缓冲区120中的每一个像素可以包括用以存储各个颜色分量(例如RGB系统中的红色、绿色和蓝色分量,HSL系统中的色调、饱和度和亮度等等)的空间,并且还可以包含用以存储不透明度数值的空间。

      用以存储不透明度数值的所述空间就是前面所提到的a通道,其可以是背景缓冲区120的一部分图2示出了其中可以将图像的一个或更多层光栅化到背景上的示例性处理在描述图2之前,应当提到的是包含在这里的流程图(图2以及图3 — 4中)是参照图I中所示的组件以举例的方式来描述的,但是这些处理也可以被实施在任何系统中并且不限于图I中所示的情形此外,图2 - 4中的每一幅流程图示出了其中按照特定顺序(如连接各个。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.