图形处理中的像素化求和长度的制作方法

文档序号:9732120阅读:461来源:国知局
图形处理中的像素化求和长度的制作方法
【专利说明】
[0001] 本申请案主张2013年8月28日申请的第61/871,260号美国临时申请案的权利,所 述申请案的全部内容在此W引用的方式并入。
技术领域
[0002] 本发明设及图形处理,且更具体地说设及用于路径再现的技术。
【背景技术】
[0003] 路径再现可指代二维(2D)向量图形路径(在本文中替代地被称作"路径")的再现, 所述路径中的每一者可包含一或多个路径片段。当路径包含两个或两个W上路径片段时, 个别路径片段可具有相同类型或不同类型。路径片段的类型可包含(例如)线、楠圆形弧、二 次贝塞尔曲线和S次贝塞尔曲线。在一些实例中,路径片段类型可根据例如开放向量图形 (化enVG)API等标准向量图形应用程序编程接口(API)来定义。
[0004] 路径再现可在中央处理单元(CPU)中实施。然而,此方法可为CPU密集的,且因此可 限制可用于其它CPU任务的CPU处理循环的量。此外,在一些情况下,相对较大量的数据可需 要传送到图形处理单元(GPU) W用所要的细节水平再现路径片段。相对较大量的数据在存 储数据时可消耗大量存储器存储空间,且在将数据传送到GPU时可消耗大量的存储器带宽。

【发明内容】

[0005] 本发明包含用于使用路径填充和划短划线产生图形数据的技术。举例来说,在填 充路径时,根据本发明的各方面,GPU可能W-速率执行模板印刷(stenciling)操作,所述 速率不同于为所再现数据(被称作再现目标)分配存储器的速率。也就是说,可独立于用于 存储所再现数据的再现目标参数指定用于执行模板操作的模板参数。
[0006] 另外,关于划短划线,根据本发明的各方面,GPU可在单一再现遍次中确定短划线 特性并执行划短划线。举例来说,所述GPU可在确定片段时计算所述片段中的每一者的长度 并应用所述长度信息来确定每一短划线片段的起始位置(例如,纹理坐标)。
[0007] 在实例中,一种再现图形数据的方法包含:确定模板参数,所述模板参数指示用于 确定图像的路径的每一图形保真像素的覆盖值的取样速率;单独地根据所述模板参数确定 再现目标参数,所述再现目标参数指示用于所述路径的每一图形保真像素的存储器分配; 及使用模板参数和再现目标参数再现路径。
[000引在另一实例中,一种用于再现图形的设备包含图形处理单元(GPU),所述GPU经配 置W确定模板参数,所述模板参数指示用于确定图像的路径的每一图形保真像素的覆盖值 的取样速率;单独地根据模板参数确定再现目标参数,所述再现目标参数指示用于路径的 每一图形保真像素的存储器分配;及使用模板参数和再现目标参数再现路径。
[0009]在另一实例中,一种用于再现图形数据的设备包含:用于确定模板参数的装置,所 述模板参数指示用于确定图像的路径的每一图形保真像素的覆盖值的取样速率;用于单独 地根据模板参数确定再现目标参数的装置,所述再现目标参数指示用于路径的每一图形保 真像素的存储器分配;及用于使用模板参数和再现目标参数再现路径的装置。
[0010] 在另一实例中,一种非暂时性计算机可读媒体上存储有在执行时引起图形处理单 元(GPU)进行W下操作的指令:确定模板参数,所述模板参数指示用于确定图像的路径的每 一图形保真像素的覆盖值的取样速率;单独地根据所述模板参数确定再现目标参数,所述 再现目标参数指示用于路径的每一图形保真像素的存储器分配;及使用模板参数和再现目 标参数再现路径。
[0011] 在另一实例中,一种再现图形数据的方法包含:使用图形处理单元(GPU)确定虚线 的多个经排序片段中的当前片段的纹理偏移,其中所述多个经排序片段中的当前片段的纹 理偏移基于次序先于所述当前片段的片段的长度累加;及像素着色(pixel shading)所述 当前片段,包含应用纹理偏移W确定所述当前片段的位置。
[0012] 在另一实例中,一种用于再现图形数据的设备包含图形处理单元(GPU),所述GPU 经配置W进行W下操作:确定虚线的多个经排序片段中的当前片段的纹理偏移,其中所述 多个经排序片段中的当前片段的纹理偏移基于次序先于当前片段的片段的长度累加;及像 素着色当前片段,包含应用纹理偏移W确定当前片段的位置。
[0013] 在另一实例中,一种再现图形数据的设备包含:用于使用图形处理单元(GPU)确定 虚线的多个经排序片段中的当前片段的纹理偏移的装置,其中所述多个经排序片段中的当 前片段的纹理偏移基于次序先于所述当前片段的片段的长度累加;及用于像素着色所述当 前片段的装置,所述像素着色包含应用纹理偏移W确定所述当前片段的位置。
[0014] 在另一实例中,一种非暂时性计算机可读媒体上存储有在执行时引起图形处理单 元(GPU)经配置W进行W下操作的指令:确定虚线的多个经排序片段中的当前片段的纹理 偏移,其中所述多个经排序片段中的当前片段的纹理偏移基于次序先于所述当前片段的片 段的长度累加;及像素着色所述当前片段,包含应用纹理偏移W确定当前片段的位置。
[0015] 在附图和下文描述中陈述本发明的一或多个实例的细节。本发明的其它特征、目 标和优点将从所述描述和图式W及权利要求书显而易见。
【附图说明】
[0016] 图1为说明可用于实施本发明的技术的实例计算装置的框图。
[0017]图視进一步详细说明图1中的计算装置的CPU、GPU和存储器的框图。
[0018] 图3是说明可用于执行本发明的技术的实例图形管线的概念图。
[0019] 图4是待再现的实例路径的图。
[0020] 图5A至5C是说明用于图4中所展示的路径的填充操作的实例序列的图。
[0021 ]图6是说明模板印刷操作的概念图。
[0022] 图7是说明根据本发明的各方面的实例填充操作的概念图。
[0023] 图8是说明根据本发明的各方面的再现期间的带宽的曲线图。
[0024] 图9A至9D是说明用于图4中所展示的路径的实例划短划线操作的一系列图。
[0025] 图10是说明根据本发明的各方面的用于再现图形数据的实例过程的流程图。
[0026] 图11是说明根据本发明的各方面的用于划短划线的实例过程的流程图。
【具体实施方式】
[0027] 本发明是针对用于执行基于GPU的路径再现的技术。路径再现可指代二维(2D)向 量图形路径(在本文中替代地被称作"路径")的再现,所述路径中的每一者可包含一或多个 路径片段。当路径包含两个或两个W上路径片段时,个别路径片段可具有相同类型或不同 类型。路径片段的类型可包含(例如)线、楠圆形弧、二次贝塞尔曲线和S次贝塞尔曲线。在 一些实例中,路径片段类型可根据例如开放向量图形(OpenVG)API等标准向量图形应用程 序编程接口 (API)来定义。
[0028] GPU通常实施S维(3D)图形管线,其经设计W与一或多个3D图形API顺应。因为当 今在使用的流行的3D图形API并不需要顺应装置支持路径再现命令,所W现代的GPU常常提 供极少甚至不提供用于路径再现命令的硬件加速。举例来说,现代的GPU中实施的典型3D图 形管线可包含光栅化器,其经设计W光栅化低阶非弯曲3D图形基元(例如点、线和=角形), 但不能够直接再现弯曲路径再现基元(例如,楠圆形弧和贝塞尔曲线)。
[0029] 用于路径再现的一个方法可设及使用3D GPU管线来提供部分GP师更件加速W用于 路径再现命令的执行。此方法设及W中央处理单元(CPU)预处理路径片段W便将所述路径 片段转换为可由GPU光栅化的一或多个低阶非弯曲3D图形基元。举例来说,CPU可将弯曲路 径片段(例如,楠圆弧或贝塞尔曲线)曲面细分为接近所述路径片段的曲率的一组相对较小 S角形,且可引起使用GPU再现所述S角形集合。然而,此方法可为CPU密集的,且因此可限 制可用于其它CPU任务的CPU处理循环的量。此外,在一些情况下,可需要相对较大量的S角 形来W所要细节水平再现路径片段。相对较大量的=角形在存储数据时可消耗大量存储器 存储空间,且在将数据传送到GPU时可消耗大量的存储器带宽。
[0030] 用于提供部分到全部GP师更件加速W用于路径再现命令的执行的另一方法可设及 修改GPU的架构W支持专用硬件加速路径再现管线。然而,因为流行的3D图形API(例如, Microsol'促.DirectX 11 (DX)API)并不需要GPU架构包含专用路径再现管线,所W此方法并 不产生将保证由与特定3D图形APK例如,DX 11 API)顺应的全部GPU支持的跨平台硬件加 速路径再现解决方案。
[0031] 在一些实例中,可使用基于GPU的路径再现技术,其中所述GPU经配置W将所接收 路径片段曲面细分为多个线段及使用3D图形管线再现经曲面细分的线段。通过使用GP闲尋 路径片段曲面细分为线段,预处理路径片段的负担从CPU松开,进而释放处理资源W用于其 它CPU任务。此外,在一些实例中,GPU可利用高度平行的现代GPU曲面细分架构来执行曲面 细分操作,其在一些实例中可允许GPUW比CPU更高效的方式再现路径片段。另外,因为曲面 细分在GPU中发生而不是在CPU中发生,所W众多的经曲面细分基元不需要存储于系统存储 器中且不需要从CPU传递到GPU,进而减少用于路径再现需要的存储器占据面积W及用于路 径再现需要的存储器带宽。
[0032] 在一些实例中,GPU可使用多样本图形保真(multi-sample anti-aliasing;MSAA) 技术来执行图形保真。举例来说,像素经均匀地染色且始终具有相同形状,运可导致所再现 的图像的线在外观上变为银齿状。通过MSAA,可对单个像素产生多个样本。可接着组合(例 如,平均化)所述样本W确定最终像素值。
[0033] 因此,在一些情况下,GPU可能W比所显示的解析度高的解析度再现图像。GPU可接 着在显示之前将图像下取样到适当大小。可使结果沿着对象的边缘从一行像素到另一行像 素较平滑地转变。可使用因数4、8、16或其它值来执行MSAA。在执行MSAA时,所述GPU可能W MSAA速率取样深度和模板操作、WMSAA速率分配存储器并WMSAA速率光栅化像素(例如, 16x MSAA包含每像素16x深度/模板样本和每像素16x存储器分配W及每像素16x光栅化样 本)。
[0034] -般来说,"目标"可指代为所再现的像素分配的存储器。通常,关于经图形保真的 图像,用于执行例如光栅化等的图形操作的取样速率和用于所再现的目标的存储器分配彼 此对应,例如,1:1。因此,在出于说明目的的实例中,GPU可使用每像素16x的取样速率用于 光栅化并分配存储器来存储每像素16个样本。然而,在目标独立光栅化(TIR)中,可独立于 为所再现的图像分配的存储器指定光栅化过程的取样速率。举例来说,每像素四个样本的 取样速率可用于光栅化,而用于存储图像的像素的色彩的存储器分配可为在所述图像中每 像素一个色彩。
[0035] 虽然TIR允许独立于为所述目标分配的存储器指定光栅化速率,但其它再现操作 可保持相互关联。举例来说,深度和模板印刷操作(如下文更详细描述)可通常与再现目标 相关联。因此,每像素指定单一再现目标,还可W相同速率(即,Ix取样速率)执行深度和模 板操作。
[0036] 根据本发明的各方面,GPU可在模板印刷操作中充分利用TI財既念。举例来说,GPU 可能W比分配用于特定像素的存储器量高的速率执行模板印刷。也就是说,在超取样模板 操作(例如,每一像素将具有16个样本)的过程中,GPU可通过计算每像素的覆盖值来进行再 现,所述像素的(经超取样像素的)取样基于所述覆盖值通过模板测试(例如,在特定路径内 部)。为了性能改良,再现目标可为Ix取样的,而模板可为16x取样的。GPU可基于每个取样模 板测试为每一像素指派一覆盖值。独立于目标指定模板印刷取样速率和指定光栅化速率在 本文中可被称作经模板印刷TIR。
[0037] 可在路径再现期间应用经模板印刷TIR过程。举例来说,在路径再现时,GPU可通常 执行W下实例功能来填充路径:将路径曲面细分为线段,将线段连接到枢转点W形成=角 形,并将=角形再现到模板缓冲器(在一些情况下,包含执行深度测试),其中所述模板缓冲 器指示所述图像的可见像素。所述填充过程的接下来的和可能的最终步骤为在启用模板测 试的情况下再现限界框和将模板缓冲器的内容复制到帖缓冲器。此方法需要两个再现遍 次,例如,用W再现限界框的一个遍次和用W再现纹理的一个遍次。
[0038] 根据本发明的各方面,GPU可在单一再现遍次中填充路径,而无需预处理限界框。 举例来说,在一些实例中,GPU可并入有限界框单元,所述限界框单元可包含在光栅化器级 处使用的硬件。举例来说,当将基元再现到模板缓冲器时,限界框单元可跟踪给定路径的最 外坐标点(例如,顶部极值、底部极值、左极值和右极值)。在最外坐标点指示路径的最外边 界的意义上来说,所述点也可被称作最大边界点。在完成模板印刷后,限界框单元已基于最 外坐标点确定限界矩形。
[0039] 在W上实例中,由于路径的基元经再现到模板缓冲器(所述基元仅影响模板),所 WGPU并不着色所述基元。所述GPU可接着使用模板缓冲器再现限界框W指派色彩。根据本 发明的各方面,在执行模板印刷和确定限界框后并不需要另一绘图调用。确切地说,所述 GPU在单一遍次中使用经模板印刷TIR光栅化限界框。
[0040] W此方式,所述GPU可在单一遍次中进行填充(例如,执行模板和色彩操作),而不 是(例如)在GPU处确定基元、在CPU处确定限界框并在GPU上执行色彩操作。也就是说,本发 明的技术包括限界框最佳化,其允许GP师角定限界框(例如,在曲面细分期间,GPU可接着将 所述限界框主动分发到光栅化器)W使得可在单一遍次中执行模板和色彩。
[0041] 本发明的其它方面设及划短划线(例如虚线)。举例来说,在用短划线划出所描画 的路径时,所述GPU可依序(被称作片段次序)再现短划线片段,并且可产生一个片段,先前 片段在所述片段处中断。也就是说,所述GPU仅在着色先前片段后确定短划线图案中的每一 片段的起始位置。因为需要处理短划线的每一区段的位置W便确定正确的起始位置,所W 运些计算可降低图形处理的并行度并且需要执行超过一个再现遍次。
[0042] 根据本发明的各方面,所述GPU可在单一遍次(例如单一再现遍次)中确定短划线 特性并执行划短划线。举例来说,(例如)在几何形状着色期间,所述GPU可在确定片段时计 算所述片段中的每一者的长度。也就是说,所述GPU可累加片段(例如,片段次序在当前片段 之前的片段)的长度,W确定当前片段的起始位置。此长度累加在本文中可被称作"前缀长 度"或"前缀求和长度"。所述GPU还可确定线的总长度。
[0043] 在出于说明目的的实例中,所述GPU可确定虚线的第一片段。所述GPU还可确定虚 线的第二片段。所述GPU可基于先前片段的前缀求和长度确定第二片段的起始位置。也就是 说,所述GPU可基于先前片段(即,第一片段)的长度的累加确定第二片段的起始位置。所述 GPU还可确定虚线的第S片段。再次,所述GPU可基于先前片段的前缀求和长度确定第S片 段的起始位置。也就是说,所述GPU可基于先前片段(即,第一片段和第二片段)的长度的累 加确定第S片段的起始位置。所述GPU可W运种方式继续直至已确定线的片段中的每一者 的起始位置为止。
[0044] 在一些实例中,所述虚线可包含可见片段和不可见片段。举例来说,GPU 12可确定 可见的片段(例如,线的短划线)的色彩并舍弃不可见的片段(例如,染色短划线之间的虚线 的部分)dGPU 12可基于被着色的片段的位置确定是否保留一片段(其在本文中可互换地被 称作分段,例如,在像素着色期间)。关于上文作为实例所描述的=个片段,假定虚线的第一 及第S片段,并且第二片段为未染色的分隔第一及第S片段的不可见片段。GPU 12可在像 素着色期间基于片段的位置确定是保留(例如,用色彩着色)还是舍弃片段。也就是说,GPU 12可基于第一片段的位置确定保留第一片段,基于第二片段的位置确定舍弃第二片段,并 基于第=片段的位置确定保留第=片段。
[0045] 根据本发明的各方面,所述GPU可在再现期间应用每一片段的前缀求和长度来作 为纹理偏移。举例来说,在光栅化片段后,所述GPU可将所述片段的前缀求和长度的值馈入 到像素着色器来作为纹理偏移值。所述GPU可将纹理偏移应用到线的开始的纹理坐标来确 定被着色的片段的位置。
[0046] 图1是说明可用于实施本发明的技术的实例计算装置2的框图。计算装置2可包括 个人计算机、桌上型计算机、膝上型计算机、计算机工作站、视频游戏平台或控制台、无线通 信装置(例如,移动电话、蜂窝式电话、卫星电话和/或移动电话手持机)、陆线电话、因特网 电话、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA))、个人音乐播放器、视 频播放器、显示装置、电视、电视机顶盒、服务器、中间网络装置、主机计算机、或处理及/或 显示图形数据的任何其它类型的装置。
[0047] 如图1的实例中所示,计算装置2包含用户接口 4、CPU 6、存储器控制器8、存储器 10、图形处理单元(GPU) 12、GPU高速缓冲存储器14、显示接口 16、显示器18和总线20。用户接 口4、CPU 6、存储器控制器8、GPU 12及显示接口 16可使用总线20彼此通信。应注意,图I中展 示的不同组件之间的总线和通信接口的特定配置仅是示范性的,并且具有相同或不同组件 的计算装置和/或其它图形处理系统的其它配置可用于实
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1