具有虚线模式的路径的gpu加速再现的制作方法_2

文档序号:8207776阅读:来源:国知局
行的3D图形API并不需要顺应装置支持路径再现命令,所以现代的GPU常 常提供极少到不提供用于路径再现命令的硬件加速。举例来说,现代的GPU中实施的典型 3D图形管线可包含光栅化器,其经设计以光栅化低阶非弯曲3D图形基元(例如点、线和三 角形),但不能够直接再现弯曲路径再现基元(例如,椭圆形弧和贝塞尔曲线)。
[0054] 用于路径再现的一个方法使用GPU管线来提供部分GPU硬件加速以用于路径再现 命令的执行。一些实例可完全避免预处理。在一实例实施方案中,路径的第一顶点可用作 用于填充的枢轴点。额外硬件可添加到设置引擎中的GPU以计算路径顶点的最小坐标和最 大坐标。这些最小值和最大值可用以确定限界框形状。
[0055] 用于路径再现的一个方法使用现代的3D GPU管线来提供部分GPU硬件加速以用 于路径再现命令的执行。此方法涉及以中央处理单元(CPU)预处理路径片段以便将所述路 径片段转换为可由GPU光栅化的一或多个低阶非弯曲3D图形基元。举例来说,CPU可将弯 曲路径片段(例如,椭圆弧或贝塞尔曲线)棋盘形布置为接近所述路径片段的曲率的相对 较小三角形的集合,且可致使使用GPU再现所述三角形集合。然而,此方法可为CPU密集的, 且因此可限制可用于其它CPU任务的CPU处理循环的量。此外,在某些情况下,可需要相对 较大量的三角形来以所要细节水平再现路径片段。相对较大量的三角形在存储数据时可消 耗大量存储器存储空间,且在将数据传送到GPU时可消耗大量的存储器带宽。
[0056] 用于提供部分到全部GPU硬件加速以用于路径再现命令的执行的另一方法可涉 及修改GPU的架构以支持专用硬件加速路径再现管线。然而,因为流行的3D图形API (例 如,Microsoft? DirectX 11 API)并不需要GPU架构包含专用路径再现管线,所以此方法并 不得到将保证由与特定3D图形API (例如,DirectX(DX) 11 API)顺应的全部GPU支持的跨 平台硬件加速路径再现解决方案。
[0057] 本发明中的路径再现技术可提供GPU硬件加速路径再现解决方案,其中GPU经配 置以将路径片段的所接收指示棋盘形布置为多个线段且使用3D图形管线再现所述经棋盘 形布置线段。通过使用GPU将路径片段棋盘形布置为线段,预处理路径片段的负担从CPU 松开,进而释放处理资源以用于其它CPU任务。此外,在一些实例中,GPU可利用高度平行的 现代GPU棋盘形布置架构来执行棋盘形布置操作,其在一些实例中可允许GPU以比CPU更 高效的方式棋盘形布置路径片段。另外,因为棋盘形布置在GPU中发生而不是在CPU中发 生,所以众多的经棋盘形布置基元不需要存储于系统存储器中且不需要从CPU传递到GPU, 进而减少用于路径再现需要的存储器占据面积以及用于路径再现需要的存储器带宽。
[0058] 棋盘形布置路径片段可包含使用GPU的固定功能棋盘形布置引擎和在GPU的着色 器单元上执行的域着色器程序来棋盘形布置路径片段。另外,在实例中,可使用单元缓冲 器。所述单元缓冲器可为包含许多单元的存储器。举例来说,所述单元缓冲器可为十六乘 十六子像素栅格。一个单元可表示最终图像中的一个像素。单元缓冲器可含有x*y单元的 矩阵,其中一个单元表示最终图像中的一个像素,单元缓冲器中的每一单元存储卷绕计数 器信息,并且其中单元缓冲器与帧缓冲器是相同大小。
[0059] 在一个实例中,单元缓冲器中的每一单元表示最终图像中的一个像素。每一单元 可存储卷绕计数器信息。单元缓冲器大小可与帧缓冲器大小一样大,但存储器要求可限制 一些实例。因此,帧缓冲器可分裂为数目(x*y)的像素瓦片,其中单元缓冲器大小为x*y单 元。装置可一次绘制一个瓦片,且随后将关于最后列(最右)的卷绕计数器信息载运到下 一瓦片(右边的一个瓦片)。如果当前瓦片是一行中的第一者,那么不存在先前瓦片,因此 不存在载运。对于这些瓦片,可将光栅化线固定到第一列。
[0060] 在一些实例中,GPU可经配置以使用由例如DirectX 11 API等特定3D图形API指 定的图形架构来棋盘形布置且再现路径片段,而不需要任何额外硬件组件和/或对图形架 构的修改。在此等实例中当执行路径再现时通过仅利用很可能或保证由特定3D图形API 呈现的架构特征,可实现跨平台硬件加速路径再现解决方案,其能够在与3D图形API顺应 的任何装置上实施。举例来说,在一些实例中,本发明的技术可提供能够在DirectXll顺应 图形硬件上使用的路径再现解决方案。在一些实例中,可停用一些路径再现技术(例如,划 虚线和尖点处置)以便实施利用DirectX 11架构的DirectX 11路径再现解决方案而无需 任何修改。
[0061] 路径再现可划分成两个主操作:(1)填充路径片段,和(2)来回划动路径片段。在 一些实例中,可执行填充和来回划动操作中的一或两者以完全再现路径。填充操作可经配 置以用指定填充颜色填充路径片段的内部区。来回划动操作可经配置以通过垂直于路径向 外动作而"加宽"路径片段的边缘。除所述主操作之外,路径再现还可涉及将各种类型的末 端盖应用于路径的末端,且应用路径的内部路径片段的端点之间的各种类型的接合以产生 平滑路径。
[0062] 在路径片段已经棋盘形布置之后,实施本发明的路径再现技术的GPU可经配置以 产生对应于所述经棋盘形布置路径片段的3D几何形状,其允许GPU再现用于路径片段的填 充区域和用于路径片段的来回划动区域中的一或两者。3D几何形状可包含能够由现有3D 光栅化引擎光栅化的低阶非弯曲3D图形基元(例如,三角形)。通过基于由GPU从近似于 待再现路径的多个经棋盘形布置线段产生的3D几何形状而再现用于路径片段的填充区域 和/或来回划动区域,3D GPU管线可用以提供用于填充和来回划动操作的执行的100%或 几乎100% GPU解决方案。
[0063] 在一些实例中,(例如)在DirectXll管线架构或其它相似3D图形管线中实施这 些方法可根据本发明的技术而修改以包含许多扩展。举例来说,可修改DirectXll管线以 包含路径基元。路径基元可通过允许直接在实施DirectXll的GPU中的路径再现而无需使 用单独的CPU,来允许DirectXll管线处理向量图形。举例来说,路径基元可允许使用在此 所描述的方法的填充、来回划动或两者。
[0064] 图1是说明可用以实施本发明的路径再现技术的实例计算装置2的框图。计算装 置2可包括个人计算机、桌上型计算机、膝上型计算机、计算机工作站、视频游戏平台或控 制台、无线通信装置(例如,移动电话、蜂窝式电话、卫星电话和/或移动电话手持机)、陆 线电话、因特网电话、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA))、个 人音乐播放器、视频播放器、显示装置、电视、电视机顶盒、服务器、中间网络装置、主机计算 机、或处理及/或显示图形数据的任何其它类型的装置。
[0065] 如图1的实例中所示,计算装置2包含用户接口 4、CPU 6、存储器控制器8、存储器 10、图形处理单元(GPU) 12、GPU高速缓冲存储器14、显示接口 16、显示器18和总线20。用 户接口 4、CPU 6、存储器控制器8、GPU 12和显示接口 16可使用总线20彼此通信。应注意 图1中图解说明的不同组件之间的总线和通信接口的特定配置仅是示范性的,且具有相同 或不同组件的计算装置和/或其它图形处理系统的其它配置可用以实施本发明的技术。
[0066] CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到 计算装置2以致使CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可 包含(例如)操作系统、字处理器应用程序、电子邮件应用程序、电子数据表应用程序、媒体 播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。用户可经由一或 多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户接口 4耦合到计算 装置2的另一输入装置)将输入提供到计算装置2。
[0067] 在CPU 6执行的软件应用程序可包含指示GPU 12致使图形数据到显示器18的 再现的一或多个图形再现指令。在一些实例中,软件指令可符合图形应用程序编程接口 (API),例如开放图形库(OpcnGL K )API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、DirectX API、RenderMan API、WebGL API或任何其它公众或专有标准图形API。为了 处理图形再现指令,CPU 6可将一或多个图形再现命令发出到GPU 12以致使GPU12执行图 形数据的再现的一些或全部。在一些实例中,待再现的图形数据可包含图形基元列表,例如 点、线、三角形、四边形、三角形条带、片等。在其它实例中,待再现的图形数据可包含一或多 个路径再现基元,例如线段、椭圆形弧、二次贝塞尔曲线和三次贝塞尔曲线。
[0068] 本发明提供用于路径再现的系统和方法,包含绘制路径片段、填充路径片段,包含 (1)将路径棋盘形布置为线段,(2)使用单元缓冲器进行光栅化和扫描填充,以及(3)使用 来自单元缓冲器的填充颜色和模板绘制路径的限界框;以及来回划动路径片段,包含(1) 将路径棋盘形布置为线段,(2)根据虚线模式切割线段,以及(3)产生来回划线的三角测量 且光栅化所述来回划线。在一些实例中,这些功能中的一或多者可由GPU 12执行。举例来 说,在各种实施方案中,这些功能中无任一者在CPU中执行。
[0069] 存储器控制器8促使数据进出存储器10的传送。举例来说,存储器控制器8可从 CPU 6和/或GPU 12接收存储器读取请求和存储器写入请求,且相对于存储器10服务此 类请求以便为计算装置2中的组件提供存储器服务。存储器控制器8通信地耦合到存储器 10。虽然存储器控制器8在图1的实例计算装置2中图解说明为与CPU 6和存储器10两 者分开的处理模块,但在其它实例中,存储器控制器8的功能性的一些或全部可在CPU 6、 GPU 12和存储器10中的一或多者上实施。
[0070] 存储器10可存储可存取以用于由CPU 6执行的程序模块和/或指令和/或用于 由CPU6上执行的程序使用的数据。举例来说,存储器10可存储用户应用程序和与所述应 用程序相关联的图形数据。存储器10还可存储用于由计算装置2的其它组件使用和/或 由其产生的信息。举例来说,存储器10可充当用于GPU 12的装置存储器且可存储将由 GPU12操作的数据以及由GPU 12执行的操作产生的数据。举例来说,存储器10可存储路 径数据、路径片段数据、表面、纹理缓冲器、深度缓冲器、单元缓冲器、顶点缓冲器、帧缓冲器 或类似者的任何组合。另外,存储器10可存储用于由GPU 12处理的命令流。举例来说, 存储器10可存储路径再现命令、3D图形再现命令和/或通用GPU计算命令。存储器10 可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态 RAM(SRAM)、动态RAM(DRAM)、同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、可擦除 可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储 媒体。
[0071] GPU 12可经配置以执行由CPU 6发出到GPU 12的命令。由GPU 12执行的命令 可包含图形命令、绘制调用命令、GPU状态编程命令、存储器传送命令、通用计算命令、核心 执行命令等。存储器传送命令可包含例如存储器复制命令、存储器组构命令和块传送(传 图)命令。
[0072] 在一些实例中,GPU 12可经配置以执行图形操作以将一或多个图形基元再现到显 示器18。在此等实例中,当在CPU 6上执行的软件应用程序之一需要图形处理时,CPU6可 将图形数据提供到GPU 12用于向显示器18再现且将一或多个图形命令发出到GPU
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1