用于后排序体系结构的紧凑深度平面表示的制作方法

文档序号:9217887阅读:331来源:国知局
用于后排序体系结构的紧凑深度平面表示的制作方法
【技术领域】
[0001] 本发明一般涉及图形处理,具体涉及遮挡剔除(occlusionculling)。
【背景技术】
[0002] 剔除(culling)是指"从群集中去除",在图形学中,其归结为去除不改变最终图 像的工作。这包括例如视域剔除,即不对在视域之外的对象进行进一步处理,因为它们不会 影响最终图像。
[0003]在最大深度剔除中,即通常所谓的分层遮挡剔除中,对于每个瓦片(tile),存储和 维持瓦片的最大深度z_。如果瓦片内三角形的估计的保守最小深度大于瓦片的Z_,则该 三角形在该瓦片内被完全遮挡。在这种情况下,无需从存储器读取每个样本深度值,并且无 需在瓦片内对该三角形进行进一步处理。该技术有时称为z_剔除。另外,还可以将深度 的最小深度zmin存储在瓦片中,如果三角形完全覆盖瓦片则避免进行深度读取,三角形的估 计的保守最大深度小于zmin,在该情况下,三角形将覆写瓦片中全部深度(假设没有阿尔法 /模板测试等)。
[0004] 根据瓦片内每个样本深度来计算Z_。理想地,每当覆写值为2_的深度时,都应 重新计算瓦片的Zmjl。
[0005] 深度剔除单元存储z_表示,其可以通过例如高速缓存来存取。瓦片可以保存来 自覆盖瓦片的三角形的平面等式,对于后续三角形,能够比照该表示来立即进行剔除(或 者比照根据平面等式评估的深度,或者通过计算瓦片内的平面等式的z_)。当瓦片不能再 维持该表示时,由于存储要求或其他标准,对于整个瓦片或者对于瓦片的子瓦片区域,可以 将平面等式替换成一个或多个的zmin值和z_值。例如,对于4x8子瓦片区域中的每一个, 8x8瓦片可以保存两个zmin和两个z_。除非使用反馈,否则将计算出的值从深度缓冲 单元发送回到分层遮挡剔除单元,2_值需要保守地更新且通常将保持不变,除非整个子瓦 片被三角形完全覆盖。
[0006] 多采样反锯齿(MSAA)是一种超级采样。通常,渲染器评估片段程序,每个像素进 行一次,并且仅真正地对深度和模板值进行超级采样。通常,多采样是指超级采样的一种特 殊情况,即,仅仅不对最终图像的一些分量进行完全地超级采样。
[0007] 反锯齿是任何抵抗采样信号中的锯齿以平滑计算机生成的影像所渲染的图像的 技术。试图克服本应为平滑的呈现为阶梯状线的锯齿感。
【附图说明】
[0008] 参考下面的图来描述一些实施例:
[0009] 图1是示出根据一个实施例如何由平面等式重新创建深度值的示意图;
[0010] 图2是一个实施例的平面等式的图;
[0011] 图3是一个实施例的流程图;
[0012] 图4是一个实施例的示意图;
[0013] 图5是另一实施例的流程图;
[0014] 图6是根据一个实施例的系统示意图;以及
[0015] 图7是一个实施例的正视图。
【具体实施方式】
[0016] 根据一些实施例,当存储部分覆盖瓦片的深度平面值时可以使用降低的精度,而 对于全部覆盖的瓦片使用全精度。然而,在一个实施例中,如果重构的深度值与使用全精度 深度平面生成的深度值相同,则仅使用降低的精度。这在大多数情况下允许使用具有极少 位的深度平面表示,从而释放位用于存储如覆盖掩码的附加信息或附加的深度平面。在一 些实施例中,这允许在深度剔除单元中表示更多的瓦片,从而减小深度缓冲带宽。
[0017] 可以用高精度浮点格式来表示深度平面等式(Ref,Dx,Dy)。当样本的深度值被评 估时,平面等式被评估为z(x,y)=Ref+x?Dx+y?Dy,其中(x,y)是样本坐标。所有计算 都是用类似于IEEE双精度浮点的内部高精度格式来进行的,最后将结果舍入成单精度(32 位)IEEE浮点值。如果判定瓦片(通常是像素的8x4矩形)被三角形完全覆盖,则可以将 该瓦片存储为平面等式形式。由于平面等式足以用来精确地重新创建全部样本的深度值, 所以不对深度缓冲器进行更新,每次用平面模式存储瓦片时节约带宽。可以使用可替代的 较低精度平面等式,只要在舍入成单精度浮点深度之后对于全部(覆盖的)样本所评估的 深度值与通过较高精度平面等式使用的深度值相同即可。图l(A-C)是如何计算深度值的 示例。
[0018] 在平面等式中,差量(Dx,Dy)通常以32位单精度存储,参考值通常以较高精度存 储,如图1A所示。然后,将差量转换成较高精度格式,如图1B所示。最后,当合成深度值时, 通过将尾数移位将参考值和差量正规化成相同指数,如图1C所示,最后相加在一起以合成 最终深度值。在最终转换成浮点之后仅保留较高的23位,其余的位仅用来确保正确的舍 入。在紧凑平面表示中,除了存储较高的23位之外,使用多个保护位来确保舍入后的正确 结果。确保正确舍入所需的保护位的数量基于每样本深度数据而变化且难以计算。作为优 化方法,可以从压缩瓦片的容许位预算开始,减去所有其他数据所需的存储。这直接使得保 护位可用在当前预算内,然后可以测试紧凑表示是否确保舍入后的正确结果。通常,差量比 参考值具有小得多的指数,因此,可以省略落在保护位范围之外的差量的尾数位。在图1C 中示出了一个例子。
[0019] 图1示出了如何由平面等式来重新创建深度值。该示例图示出重新创建深度值 z(l,l) =Ref+Dx+Dy。图1A显示出原始平面等式。差量(Dx,Dy)以32位单精度存储,参考 值以较高精度(例如,64位)存储。在图1B中,差量值转换成与参考值相同的高精度格式。 在图1C中,将指数正规化。所有值以相同指数表示,相应地将尾数移位。在最后转换成单 精度浮点之后,仅保留较高的23位。另外,存储多个额外保护位以确保舍入后的正确结果。 能够移除落到保护位界限右边的位,在该示例中共节约37位。
[0020] 能用6-12个保护位来表示大部分瓦片。所节约的实际位数取决于Ref、匕和Dy的 相对指数,通常对于相关的工作负荷在10和60之间变化。所节约的位可用来存储附加数 据,包括但不限于:使用压缩覆盖掩码,对重叠单个瓦片的两个平面进行编码,存储帮助剔 除三角形未覆盖的区域的附加的最小/最大值或数据。
[0021] 对从光栅器接收到的平面等式的值进行评估以确定符号和指数值的紧凑表示。然 后,判定是否能够利用水平或垂直断裂(break)来压缩每样本覆盖掩码,水平或垂直断裂 是压缩位掩码表示,下面将进行详细说明。由于位预算通常很紧张,所以可以使用具有一个 或两个像素水平断裂或一个像素垂直断裂的配置。在存储符号、指数和压缩的每样本覆盖 掩码之后,可以使用其余的位来对深度平面等式的较低精度尾数位进行编码。求解简单等 式来确定在Ref、匕和Dy的尾数上耗费多少保护位。然后,通过将它们舍入到所允许的位数 来降低精度,类似于图1C,得到较低精度值Uf、和5;。
[0022] 在给定样本处对精确的平面等式(图2中的线G)进行评估,并舍入成浮点(图2 中的叉)。计算出均将舍入成给定样本的32位深度值的全精度值的间隔5 = [z,r|。利用降 低精度的差量将这些间隔反投影到参考点(X= 0),以获得可能的参考值的间隔其中 反投影是由下式给出的
[0023] 可以通过取上至较低精度表示(通过能够承受多少保护位来表征)的最近量化值 的所有样本的最大值Re/和下至最近量化值的最小值^7,来计算最终可能的间隔。如 果间隔不为空,W<^7,则能够表示瓦片,在该情况下,可以取I?/作为if?/中的任 意量化值。如果瓦片不可压缩,则可以使用诸如模式的其他一些表示,并将全部深度值 发送到后端Z用于进一步处理。本文所描述的用于修改(adapt)平面等式的方法仅修改 liff值。然而,可以在平面等式中调整所有的值彳ftef,,有可能允许压缩更多的 瓦片,但是以计算量更大为代价。
[0024] 参考图3,紧凑平面等式序列10可用软件、固件和/或硬件来实现。在软件和固件 实施例中,可以通过存储
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1