在基于扫描线的光栅图像处理器中跟踪深度的方法技术

技术编号:2947973 阅读:557 留言:0更新日期:2012-04-11 18:40
一种成像机器系统(699)利用具有有限计算资源的装置中再现图形目标图像。其中之一改进是使动画序列的一个帧与连续帧之间达到暂时一致。尤其是一些在横贯几个连续帧保持“静态”的图形目标边缘。其实例包括用来绘制图像背景细节的那些边缘。另外在图形目标图像的扫描线渲染过程中进行抗锯齿,其中一次针对有限数目的扫描线,产生子像素分解覆盖位掩模(A缓冲29-34)。优选一次仅针对一像素产生A缓冲。还涉及在扫描线渲染器中针对像素跨距渲染图形目标图像的扫描线,由此保持渲染时存在的深度亚组,该深度亚组存在于跨距上、按深度顺序(590)保持并接受深度去除(相应的深度不再是激活的)。还使将要以扫描线方式渲染的图像层的合成堆栈(6101-6107)得以简化。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术通常涉及渲染图形目标,更具体地说,是涉及为了加速渲染而对图形目标的Z-级进行解析。
技术介绍
光栅图像处理器是计算机图形领域的基本工具。光栅图像处理器(RIP)采集作为输入的几何图素或图元(primitives),并在光栅栅格上产生作为输出的像素(象素)值阵列。在此文件中,将考虑使用2D渲染系统。两类重要的RIP是,基于目标(对象)的RIP和基于扫描线的RIP。这两类RIP的区别在于它们的内环不同,即,其算式迭代在哪一个实体上。基于目标的RIP迭代在它们必须渲染的所有图元上,而基于扫描线的RIP按光栅顺序迭代在将要渲染的每个扫描线上。考虑轮廓、填充(fill)和渲染深度(即Z-级)彼此不同的一组多边形的渲染情形。基于目标的RIP一般按Z-级迭代在这组多边形上,从而依次渲染每个多边形。这就是“Painter’s算式”法。相反,扫描线RIP依次考虑每个扫描线,以便确定每个多边形的边缘在当前扫描线的何处。然后填充与当前扫描线相交的边缘之间的像素跨距。基于扫描线的渲染系统的精彩之处在于,使用激活边缘目录。在这种方法中,扫描线RIP无需考虑每个扫描线上的每个多边形的边缘,而是仅仅保持与当前扫描线相交的那些边缘目录,并且一条扫描线接一条扫描线地跟踪那些边缘。此方法一般采用前向差分技术,其中以Bresenham’s扫描-转换算式的形式来跟踪这些边缘。在开始渲染每个扫描线时,新的边缘可以添加到激活边缘目录中。分类在此处是重要的,因为它戏剧性地削减了需要考虑被添加到激活边缘目录中的边缘数。具体地说,整个这组边缘通常按起点的光栅顺序来分类。关于起点,我们指的是在整个光栅扫描中最先遇到的端点。这使得能够快速确定哪些边缘在扫描线起点变成激活的。在扫描线的终点,如果一个边缘被确定为不与下一个扫描线相交,那么就将该边缘从激活边缘目录中去除。考虑上述RIP下的一般扫描线。如果与该扫描线相交的所有边缘的x-坐标都是已知的,并且需要输出该扫描线的光栅图像数据,则要解决的下一个问题是,确定交叉点之间的像素跨距的光栅数据内容。也就是说,按x-顺序邻接的交叉点之间的跨距,从光栅图像空间映射到图形模型空间中的一组多边形上。此方法允许RIP不处理抗锯齿。此方法隐含的是,重叠的多边形通过其深度来彼此区分。也就是说,在暴露于交叉点之间的跨距的一组多边形中,最上面的多边形如果完全不透明,那么在此跨距之上渲染的仅仅是此多边形。如果最上面的多边形不是完全不透明的(即包含一些透明度),那么下面的多边形将影响到此跨距。扫描线渲染避免了需要屏幕(帧)缓冲器来聚集渲染结果,而这是基于目标(Painter’s算式)的渲染系统的典型特性和缺陷。然而,扫描线渲染系统通过考虑其如何解决上述问题,而具有进一步的特征。具体地说,一些扫描线渲染系统已经减少了从全屏缓冲器向下到扫描线缓冲器的需要,而其它扫描线渲染系统已经无需扫描线缓冲器,且能够直接渲染到下面的输出光栅数据缓冲器上。考虑一些不同的行缓冲器RIP模型是适当的。首先,这些RIP保持光栅图像数据的行缓冲器。边缘按y-坐标(即扫描线)而不是按x-坐标(扫描线内的像素位置)进行分类,跨距以随机图案聚集在缓冲器内。即,跨距渲染的发生顺序与它们的x顺序无关。在这样的系统中,没有Z-级的概念,在Z-级中,当对像素进行写操作时,较高的灰度输出值优先于较低值。在当前扫描线的所有跨距聚集之后,按x-顺序将行缓冲器写到输出缓冲器。在保持交叉点(而不是光栅数据)的基于扫描线的其它RIP中,发现上述RIP模型的变型。再者,边缘按y而不是按x进行分类。对于每个扫描线,确定所有的交叉点,然后利用x进行分类。换言之,保持交叉点的行缓冲器,而不是光栅数据的行缓冲器。然而,还要注意的是,交叉信息的行缓冲器按随机顺序进行聚集。第三类基于扫描线的RIP既没有光栅数据的行缓冲器,也没有交叉信息的行缓冲器。通过在渲染之前对所有边缘进行完全光栅顺序分类,而避免这些情形。也就是说,通过始于x-坐标以及y-坐标,可对所有的边缘进行分类。当考虑扫描线的每个像素时,检查变成激活的边缘的边缘目录。我们现在考虑,确定给定扫描线上的跨距的光栅数据内容的问题-即支持按深度分开的重叠多边形的所有扫描线渲染装置共有的问题。如上所述,一组恒定的多边形进行填充、按深度来排序、潜在地影响跨距。就出现多边形的填充和深度而言来考虑该问题,假设每个多边形具有一个继承多边形深度的填充。在按x-顺序考虑跨距的系统中,当渲染一个跨距一个跨距地进行时,解决此问题意味着保持当前的激活深度表。一个跨距一个跨距的前进发生在与边缘交叉的任一像素上。也就是说,跨距是当前扫描线上的一个间隔,而这组当前的激活深度在当前扫描线上是恒定的。激活(active)意味着,贯穿与跨距相交的所有多边形的概念片段,包括所有激活深度(即影响最后的像素值的所有图形目标)。这组激活深度允许确定一个跨距的光栅输出,如果这组激活深度按深度递减的顺序保持的话。如果不允许填充包括透明度,那么激活深度表头的填充将是最上面的并且是影响到此填充之光栅数据的唯一填充。如果允许包括透明度,那么与表中后面的深度有关的填充也可影响到光栅输出。保持此当前激活深度表的问题的一种解决方案,存在于现有技术中。例如,构建为待渲染的页图像而存在的所有深度的完全状态表。此方法的特征是,深度存在于线性寻址存储器中,在该存储器中,深度被暗示在存储器中储存填充数据的位置,如果填充存在于该深度的话。换言之,有一整组狭槽点击器允许填充信息,每个深度一个,并且狭槽按深度顺序设置。将填充插入此表中是微不足道的,因为对于一个给定深度总有一个狭槽。然而,狭槽占据的图案一般是富余的。实际上,当考虑由边缘交叉点引用的填充和深度时,填充的深度用来给这个整个深度狭槽表作索引。这实质上是一个操作顺序,从而允许RIP以实时速度操作。高速缓冲存储器,可称作总表,用来加速对这样的整个表的查寻。这一般是必需的,因为为一页而存在的深度总数可非常大。例如,一些实际PostScript打印渲染工作具有相当大的深度数。非常大尺寸的整个深度狭槽表的另一个结果是,此RIP模型的硬件实现不能经常将整个表保持在内部。此表因此必须保持在外部存储器中,因此引用起来较慢。如果存在比深度狭槽表所能聚集的深度多的深度,那么就以显著的额外复杂性为代价,来交换这些附表。另外,具有这种模型的RIP不容易适合于动画,即在由填充占据的这组深度一个帧一个帧地改变时不适合应用。而且,如果动画渲染器的输入没有确定性,那么这组所占据的深度就也没有确定性。许多深度狭槽对于在特征帧上发现的填充来说不得不放弃。或者是,填充的深度从一个帧到另一个帧是不同的,但是在当前检查的这类已有技术的RIP中,填充与其相应深度紧密联系在一起。也就是说,填充通过占据某一存储器部位而具有默示深度。接着,重新指派的填充能够承担不需要的实质数据运动。在合成的上下文中保持激活深度表时发现另一缺陷。将新的填充插入总表并不费事,因为它与此页上发现的所有深度狭槽表一样深,并且每个填充具有相应的待用狭槽。然而,当跨距将要合成时,此操作是昂贵的,因为总表非常大且经常稀少,而合成器需要考虑的这组填充通常比较小,并且是压缩的。实际上,在与状态表一样深的深度编码器中本文档来自技高网...

【技术保护点】
一种方法,在扫描线渲染器中针对位于与图形目标图像的扫描线相交的两个相继x-顺序边缘之间的像素跨距渲染所述扫描线,对于每一所述跨距,该方法的特征在于,按深度顺序保持渲染过程中存在的一深度亚组,所述深度亚组是在所述跨距上的按深度顺序保持的那些深度,在相应的深度不再激活的情况下所述深度亚组被去除该相应的深度。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:蒂莫西梅瑞克龙斯高特巴拉德雷斯蒂芬爱德华埃克贝本杰明利弗
申请(专利权)人:佳能株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1