在图形硬件中细分几何图像的制作方法

文档序号:6353163阅读:350来源:国知局

专利名称::在图形硬件中细分几何图像的制作方法
技术领域
:所要求保护的发明的实现总地可以涉及处理图形图像,更具体地说,涉及处理使用几何图像的图形图像。
背景技术
:图1是图示了典型的图形处理100的流程图。代表图形图像的几何体可以被提交给图形流水线(动作110)。这样的几何体一般可以包括三角形,但是也可以包括四边形以及任何其他类型的几何体。然后,顶点着色器(vertexshader)可以执行以下处理操作来处理几何体,例如变换并且照明(lighting)每个多边形,确定顶点的颜色,在必要的情况下确定法线(normal)等(动作120)。顶点着色器一般包括实施指令集以对与顶点相关的数据进行操作的硬件。这样的数据可以包括顶点位置、顶点法线以及每顶点纹理坐标。这些值也可以随后由着色硬件用来在多边形上内插,以创建着色后的图像。接着,多边形可以被剪贴(clip)到屏幕的适当的位置上(动作130)。然后,像素着色器(Pixelshader)可以着色每个多边形(动作140)。像素着色器一般包括在每一片段被交与屏幕之前,当它通过图形流水线时对其执行一组指令的硬件。像素着色器和顶点着色器可以具有相同或不同的指令集。此外,它们执行的指令集可能不同于显示给程序员的指令。在着色之后,如果某一特定像素位于任何先前绘制的像素之前,则它可以被写入帧缓冲器(动作150)。在一些图形引擎中,可能存在阿尔发混合操作。阿尔发混合操作是便于实现部分透明对象的一种机制,并且可以通过在传统的三维(3D)图形流水线中所使用的颜色通道之外的附加通道来实现。近来,已提出了一种表示图形图像的表面几何体的技术,该技术具有一些优势。这样一种技术可以将任意的图形表面重新编网到一个被称为“几何图像”的完全规则的结构上。几何图像可以捕获图形图像的表面几何体,成为二维OD)阵列(array)的量化点。可以使用与几何图像相同的表面参数化过程,将诸如法线和/或颜色等表面信号存储在类似的2D图像中。有关几何图像的进一步讨论可以在以下文章中找到,例如XianfengGu等人的“几何图像”,SIGGRAPH2002会议论文集,第355-361页;F.Losasso等人的“平滑几何图像”,Eurographics2003,第138-145和273页。为了更好地理解什么是几何体,以及它可以如何表示3D图形对象,将提供简要的解释。图2图示了从3D模型210形成几何图像250的过程(例如参见HughesHoppe,“计算机图形从不规则到完全规则的网格化(IrregulartoCompletelyRegularMeshingInComputerGraphics)"InternationalMeshingRoundtable,2002$9月)。3DHM210可以被概念化为一个在3D空间内弯曲、扭曲以形成3D网格的二维QD)形状。模型210可以包括由顶点及顶点间的边形成的几何形状(例如,三角形、四边形等)网格。在模型210中的顶点可以在3D坐标系统中具有相关联的空间坐标值(例如[X,y,ζ]坐标)。3D模型210可以沿着它的边来切割,以形成一个不同的(例如,非兔子形状的)2D形状。切割线220图示了这样一种切割。这个不同的形状可以使用公知的技术来扭曲或参数化,以形成规则形状230。规则形状230可以包括相互连接的来自模型210的顶点(例如图示为三角形),其中切割线220位于形状230的外边上。因此,规则形状230既保留模型210中顶点的[x,y,z]位置值,又保留这些顶点之间的连接关系。应当注意,虽然规则形状230被图示为方形,但是也可以使用其他类型的规则形状(例如圆形等)。规则形状230中的多边形可以被有规律地采样,以生成采样形状M0。在采样形状240中的每个采样点可以是一个新的顶点,其保留了位置值(例如[X,y,ζ]坐标)并且隐含地连接到采样图像240中的其他顶点。即,在采样图像MO中的顶点可以通过对规则形状230的规则采样,经由边被连接到它们上、下、左、右侧的其他顶点。可以通过将采样图像240中的顶点的三通道[x,y,z]坐标映射到三通道的RGB空间,即[r,g,b]坐标,将采样图像240转换为红/绿/蓝(RGB)(或任何其他颜色空间)色图像,以产生几何图像250。在几何图像250中的每个像素可以代表模型210中的一个采样顶点,其中像素的红、绿、蓝值表示所述采样顶点的[x,y,z]空间位置。利用在几何图像250中的给定像素的相邻像素来确定模型210中的对应采样顶点的相邻顶点。换言之,通过几何图像250中的相邻像素来获知模型210中的相邻顶点,并且通过几何图像250中像素的颜色值来获知这些顶点的位置值。虽然已经关于位置信息解释了几何图像250,但是可以针对与模型210的顶点相关联的任何信息来生成几何图像250。例如,法线也可以由几何图像250来表示,而法线就是指向空间的[x,y,z]向量。同样,颜色值和/或纹理坐标也可以由几何图像250来表示。将模型表示为图像可以允许我们使用现有的图像处理算法,例如图像压缩算法。虽然压缩几何图像是可能的,但是这些几何图像即使被压缩,在一些情况下也可以通过数据总线被发送到图形处理器。在一些情形中,数据总线的带宽可能会限制能够由图形处理器从几何图像中显示出来的分辨率和/或视觉保真度。
发明内容为解决以上问题,本发明提供了用于在图形硬件中细分几何图像的系统、方法和直ο根据本发明的一个方面,提供了一种系统,包括图形存储器;有效连接到所述图形存储器的数据总线;经由所述数据总线向所述图形存储器发送顶点数据的处理器;和顶点着色器,其从所述图形存储器中读取所述顶点数据,将所述顶点数据细分成细分后的顶点数据,并且将所述细分后的顶点数据写入所述图形存储器。其中,所述顶点数据包括几何图像。其中,所述顶点数据还包括颜色数据、纹理数据或法线数据。其中,所述处理器被设置为使用应用编程接口(API)来发送所述顶点数据。其中,所述数据总线具有相关的带宽,并且其中,由所述处理器发送的顶点数据使用所述数据总线的大部分带宽。其中,所述系统还包括像素着色器,所述像素着色器从所述图形存储器中读取所述细分后的顶点数据,并且准备所述细分后的顶点数据用于显示。其中,所述像素着色器光栅化所述细分后的顶点数据。其中,所述系统还包括帧缓冲器,所述帧缓冲器缓冲并输出准备好的细分后顶点数据,所述准备好的细分后顶点数据来自所述像素着色器。其中,所述系统还包括在所述处理器将所述顶点数据发送到所述图形存储器之前存储所述顶点数据的主存储器。根据本发明的另一个方面,提供了一种系统,包括存储具有第一分辨率的第一几何图像的存储器;顶点着色器,其将所述第一几何图像细分成第二几何图像,所述第二几何图像具有高于所述第一分辨率的第二分辨率,并且所述顶点着色器将所述第二几何图像存储在所述存储器中;和准备所述第二几何图像用于显示的像素着色器。其中,所述系统还包括缓冲并输出来自所述像素着色器的数据的帧缓冲器。其中,所述系统还包括获得所述第一几何图像并将所述第一几何图像发送到所述存储器的处理器。其中,所述系统还包括存储供所述处理器访问的第一几何图像的另一个存储器。其中,所述像素着色器光栅化所述第二几何图像。其中,所述第二分辨率大于所述第一分辨率约四倍。根据本发明的又一个方面,提供了一种方法,包括获得具有第一大小的第一几何图像;存储所述第一几何图像;将所述第一几何图像细分成具有第二大小的第二几何图像,所述第二大小大于所述第一大小;并且存储所述第二几何图像。其中,所述获得步骤包括计算所述第一几何图像。其中,所述获得步骤包括从存储器中读取所述第一几何图像。其中,所述第二大小大于所述第一大小约四倍。其中,所述方法还包括将所述第二几何图像细分成具有第三大小的第三几何图像,所述第三大小大于所述第二大小;并且存储所述第三几何图像。其中,所述方法还包括在所述的存储所述第一几何图像的步骤之前,经由数据总线传送所述第一几何图像。其中,所述方法还包括光栅化所述第二几何图像。根据本发明的再一个方面,提供了一种装置,包括存储图形数据的存储器;和顶点着色器,其从所述存储器读取图形数据,由所读取的图形数据生成新的图形数据,并且将所述新的图形数据写入所述存储器。其中,所读取的图形数据包括几何图像。其中,所述顶点着色器被设置为细分所读取的图形数据,以生成所述新的图形数据。根据本发明的再又一个方面,提供了一种方法,包括从存储器中读取具有第一分辨率的顶点数据;从所述存储器中读取具有低于所述第一分辨率的第二分辨率的法线数据;并且使用所述法线数据准备所述顶点数据用于显示。其中,所述方法还包括将具有所述第二分辨率的原始顶点数据细分成具有所述第一分辨率的顶点数据;以及将具有所述第一分辨率的顶点数据写入所述存储器。其中,所述准备步骤包括以所述第一和第二分辨率之比将一个指标换算到具有所述第一分辨率的顶点数据中,以将对应的指标生成到具有所述第二分辨率的法线数据中。附图被包含在说明书中并构成了说明书的一部分,它们图示了与本发明的原理相一致的一种或多种实现方式,并且与文字描述部分一起用于解释这些实现方式。这些图不一定是按比例绘制的,重点在于图示说明本发明的原理。在附图中,图1是图示了典型的图形处理的流程图;图2图示了几何图像的形成过程;图3图示了示例性的系统;以及图4是图示了细分图形数据的过程的流程图。具体实施例方式以下详细的描述参考附图。在不同的图中可以使用相同的标号来标识相同或相似的元件。在以下描述中,出于解释而非限制的目的,阐述了一些具体的细节,例如具体的结构、体系结构、接口、技术等,以提供对所要求保护的发明的各个方面的完整理解。然而,获知本公开内容的本领域技术人员将清楚的是,在偏离这些具体细节的其他实施例中也可以实现所要求保护的发明的各个方面。在一些情况下,省略了对公知的设备、电路和方法的描述,以免因不必要的细节模糊了对本发明的描述。图3图示了示例性的系统300。系统30可以包括主存储器310、处理器320、数据总线330、图形存储器340、一个或多个顶点着色器350、一个或多个像素着色器360以及帧缓冲器370。在一些实现方式中,元件340-370中的一个或多个可以被包括在经由数据总线330与处理器320相连的、物理上独立的图形卡中。在一些实现方式中,元件340-370可以与元件310和320位于公共的电路板(例如主板、子板等)上。在一些实现方式中,元件350和360中的一个或多个可以是某一设备的一部分(例如,该设备的核)中的部件,处理器320可以包括在同一设备的另一部分(例如,另一个核)中。主存储器310可以包括存储几何图像的存储设备。主存储器310可以包括随机访问存储器(RAM)器件,例如动态RAM(DRAM)、双数据率RAM(DDRRAM)等。主存储器310可以存储预先计算的几何图像和/或从中可计算出几何图像的图形数据。处理器320可以包括通用处理器、专用处理器和/或专门配置的逻辑。处理器320可以被设置为经由数据总线330将几何图像从主存储器310分发到图形存储器340。处理器320可以在程序的控制下,经由数据总线330来发送几何图像,所述程序例如是绘制(rendering)、游戏、图形创建或其他类型的与图形相关的程序。在一些实现方式中,处理器320可以由主存储器310中的其他信息来计算几何图像,并将几何图像存储在主存储器310中。在一些实现方式中,处理器320可以在经由数据总线330传输几何图像之前对其进行压缩(例如,利用JPEG2000或其他无损方案)。数据总线330可以将处理器320连接到图形存储器340。数据总线330可以使用典型的互连协议,或者可以使用定制的通信协议。数据总线330可具有相关的带宽,该值定义了在给定的时间内它可以传输的最大数据量。在一些实现方式中,数据总线330的带宽6可能会限制系统300的其他部分(例如着色器350和/或360)的性能。在一些实现方式中,数据总线330的带宽可能不会限制系统300的整体性能。图形存储器340可以包括存储几何图像的存储设备。图形存储器340可以包括随机访问存储器(RAM)器件,例如动态RAM(DRAM)、双数据率RAM(DDRRAM)等。图形存储器340可以接收并存储来自处理器320和顶点着色器350的几何图像。除了经由写操作来存储几何图像外,图形存储器340还可以经由读操作将这些几何图像提供给顶点着色器350和像素着色器360。例如,图形存储器340可以存储与几何图像相关联的各种“每顶点”数据。这样的顶点数据可以包括顶点位置、纹理坐标、颜色坐标或法线向量中的一个或多个。顶点着色器350可以被设置为从图形存储器340中读取顶点数据,并且细分所述顶点数据以生成更高分辨率的顶点数据。顶点着色器350可以具有并行体系结构,并且可以具有例如比像素着色器360更大的指令集。顶点着色器350可以使用各种不同的顶点生成程序和细分方案来增大顶点数据的分辨率,后面将进一步地描述。顶点着色器350也可以将高分辨率的顶点数据写入图形存储器;340。由于访问图形存储器340的带宽比较宽,所以顶点着色器350可以将相对大量的高分辨率数据写入图形存储器340。典型的细分方案可以将几何图像中的数据量增大到四倍(byafactoroffour)。顶点着色器350可以被设置为针对给定的几何图像执行一级或多级的细分,并且存储在图形存储器340中的经过一次细分的顶点数据例如可以被顶点着色器350用来生成第二级的细分数据(例如,以更高/更细的分辨率),以存储在图形存储器340中。像素着色器360可以被设置为从图形存储器340中读取细分后的顶点数据,并准备用于显示。像素着色器360例如可以比顶点着色器350具有更高带宽的到图形存储器340的连接,并且像素着色器360在指令数量和指令集方面可能比顶点着色器350受到更多的限制。例如,像素着色器360可以被设置为从图形存储器340读取新的、高分辨率的几何图像,光栅化(rasterize)所述图像,并且将光栅化的像素数据发送到帧缓冲器370。在一些实现方式中,像素着色器360可以使用来自处理器320的低分辨率的几何图像(这些图像可能保留在图形存储器340中)作为显示图元(primitive)来光栅化新的几何图像。帧缓冲器370可以被设置为接收来自像素着色器360的像素数据,并且在必要时,在显示之前缓冲这些数据。帧缓冲器370还可能在图形处理器(未示出)的控制下,将数据输出到显示器或显示接口。图4是图示了细分图形数据的过程400的流程图。虽然为简单起见,可以相对于系统300来描述过程400,但是所要求保护的发明在这方面不一定受到限制。处理可以开始于处理器320获得用于一幅图像中的顶点位置的纹理、几何图像以及任何其他相关值(动作410)。在一些实现方式中,处理器320可以计算出这些值,而在一些实现方式中,处理器320可以从主存储器310中读取这些值。除了获得几何图像外,处理器320还可以创建纹理坐标映射(map)和颜色坐标映射中的一个或多个。创建几何图像(例如,沿着边路径(edgepath)切割网,并将产生的图参数化到一个方形中)的详细过程例如可以参考以下文章=XianfengGu等人的“几何图像”,SIGGRAPH2002会议论文集,第355-361页。这样的纹理映射、几何图像、和/或颜色映射可以被实现为具有指定宽度和高度的数组(array)。可以用和图2中的顶点映射相同的方式来创建纹理、颜色和/或法线映射。对于纹理而言,tu和tv可以分别存储在红色和绿色通道中。同样,对于颜色而言,r、g和b值可以被存储到用于纹理映射的r、g和b值中。因为纹理一般情况下只是颜色的阵列,所以颜色和纹理映射都使用r、g和b。最后,法线的χ、y和ζ值可以被存储到纹理映射的r、g和b通道中。应当注意,这种映射(mapping)无需局限为2D结构(例如图像)。相反,这里所描述的技术可以通过占用被映射到r、g、b和(必要时)阿尔法中的任意数量的通道,而支持纹理、法线和颜色。如果需要四条通道以上的与顶点相关的信息或数据,那么可以使用额外的纹理映射来获得这一信息。因此,参考图2所描述的技术可以与某种程度上任意的和/或复杂的顶点数据一起使用。同样在动作410中,处理器320可以在纹理、几何图像和颜色被细分一次或多次时为它们创建占位符(placeholder)数组。这种占位符数组可以使用最少的带宽,以简化形式通过数据总线330来发送,以保留图形存储器340中的空间供细分后的纹理、几何图像等使用。在一些实现方式中,可以由顶点着色器350响应于来自处理器320的命令,在本地生成所述占位符数组。在任何情况下,占位符数组都被初始化为0,并被存储在图形存储器340中。处理可以继续,其中由处理器320经由数据总线330将纹理、几何图像和任何其他值(例如,颜色坐标和/或法线向量)发送到图形存储器340(动作420)。在一些实现方式中,处理器320可以将纹理、几何图像以及任何其他值提交给图形应用编程接口(API),该接口可以将纹理和几何图像传输到图形存储器340。在一些实现方式中,纹理、几何图像等可以在通过数据总线330传输之前进行压缩(例如,利用JPEG2000一类的无损方案)。顶点着色器350可以从图形存储器340读取所存储的纹理、几何图像以及任何其他值(统一称为“顶点数据”),并且可以细分顶点数据(动作430)。如前所述,二维图像(例如几何图像)的细分可以将图像的分辨率增大到约四倍。在一些实现方式中,顶点着色器;350可以使用Catmull-Clark技术来实现细分,上述技术概述于EdCatmull和JimClark的“任意拓扑网上递归生成的B-Spline表面(ItecursivelyGeneratedB-SplineSurfacesonArbitraryTopologicalMeshes),,,ComputerAidedGeometricDesign,第10卷,No.6,1978。然而,顶点着色器350也可以采用其他细分技术。在一些实现方式中,顶点着色器350可以使用蝶形技术来细分顶点数据,所述蝶形技术概述于iitephenJunkins的“细分现实性采用细分表面用于实时可缩放照相现实主义(SubdividingRealityEmployingSubdivisionSurfaceforRealTimeScalablephotorealism),,,游戏开发者会议论文集,2000。在一些实现方式中,顶点着色器350可以使用Loop技术来细分顶点数据,所述循环技术概述于C.T.Loop,“基于三角形的平滑细分表面(SmoothSubdivisionSurfacesBasedonTriangles)”,犹他大学数学系的硕士论文,1987年8月。在一些实现方式中,顶点着色器350可以使用Doo-Sabin技术来细分顶点数据,所述技术概述于D.Doo和M.Sabin的“非常点附近的递归分割表面的行为(BehaviorofRecursiveDivisionSurfacesNearExtraordinaryPoints),,,ComputerAidedDesign(计算机辅助设计),第10卷,No.6,1978。顶点着色器350可以将细分并输出后的顶点数据写入图形存储器340(动作440)。在一些实现方式中,顶点着色器350用输出的顶点数据覆写图形存储器340中的一个或多个占位符数组。在一些实现方式中,顶点着色器350可以根据需要,为输出的顶点数据在图形存储器340中创建新的结构。取决于所希望的细分级数,顶点着色器350可以重复动作430和440—次或多次,如图4中的虚线箭头所示。例如,如果需要一次以上的细分操作(例如,为了得到更高的分辨率),顶点着色器350可以读取在前面的动作440中被存储在图形存储器340中的经过一次细分的(如果动作430是重复第二次的话,则是经过两次细分的)输出顶点数据,并进一步细分该数据。因为细分可以依赖于具有前一分辨率的顶点数据(例如,先前细分的输出),所以在一些实现方式中,顶点着色器350可以覆写和/或删除具有更高分辨率的顶点数据,以空出图形存储器340中的空间。例如,当执行第二级(或更高级别的)细分时,从处理器320发送而来的原始顶点数据可以被覆写和/或删除。在细分时也可以采用其他技术来节省图形存储器340中的空间和/或系统300的其他资源。例如,可以通过不像相关几何图像那样完全地细分纹理、法线和/或颜色坐标,从而节省图形存储器340中的空间。在这样的情形中,像素着色器360可以只是引用更低级别的细分(例如,仅一次细分的数据用于两次或更多次细分的分辨率),并且针对每次查找只除以4。作为一个实施例,如果不希望与对应的256x256几何图像一起生成和/或存储256x256的法线映射,则可以由像素着色器360反之使用6虹64分辨率级的法线映射。对于在位置阵列中指标(index)(32,32)处的条目,像素着色器360可以在处理期间引用64x64法线映射中的位置(8,8)。因此,像素着色器360在格式化已经由顶点着色器350细分为更高分辨率的其他顶点数据(例如,几何图像或其他结构)时,可以使用具有较低分辨率的一个或多个映射(例如,法线映射)。在一些实现方式中,可以计算出适当的法线,然后可以在旧的法线映射中查找最靠近的法线。所得到的法线数据可以被存储在任意大小的法线映射中。也可以使用其他技术来避免对于给定的分辨率完全细分图形存储器340中的所有图形数据。可能在某些区域(例如在几何图像内的区域)中不希望进行细分。对于这些区域,现有的几何图像、法线图像和/或纹理映射可以弃之不用。对于希望进行细分的其他区域,可以采用某种细分方案(例如Catmull-Clark)。对于两种区域(例如被细分的以及不被细分的)之间的边界,可以复制一些顶点信息。另一种节省图形存储器340空间的技术可以是利用无损压缩方案来压缩存储其中的数据(例如,原始顶点数据和/或细分后的顶点数据)。一种适于压缩例如细分后几何图像的方案可以是JPEG2000,它可以取得大约2.5到1的压缩比。数据压缩可以取代其他技术,或者与其他技术一起用,以用来减少存储在图形存储器340中的数据量。处理可以继续,其中像素着色器360准备存储在图形存储器340中的细分后顶点数据,以用于显示(动作450)。像素着色器360可以光栅化和/或以其他方式格式化所存储的顶点数据(例如几何图像、颜色映射等),以用于显示。在一些实现方式中,像素着色器360可以使用一个或多个低分辨率的顶点数据集合(例如原始几何图像)作为显示图元,来准备细分后的顶点数据。虽然未在图4中明确示出,但是格式化后的图形图像随后可以从帧缓冲器370中显示。在一些实现方式中,对于给定的数据总线330所承载的数据带宽,利用顶点着色9器350来细分顶点数据的上述系统和方案可以增大显示数据的视觉保真度/分辨率。例如,使用数据总线330的大部分或几乎全部数据带宽的顶点数据可以由顶点着色器350来细分,相对于不这样做而因数据总线330的带宽导致的显示分辨率而言,细分后将使显示分辨率增大。在一些实现方式中,这样一种细分方案可以有助于使用比不进行细分时更少的数据总线330带宽而产生给定的视觉保真度/分辨率。例如,显示分辨率可以与不执行细分时保持相同,但是细分使得前一种情况在分辨率相同时可以使用少得多的数据总线330带宽。为了进一步帮助理解上述系统300和过程400,将给出一个实施例。在这个实施例中,处理器320可以在动作410中创建或从主存储器310中读取三个ηχη(η是一个整数,例如8、16、32等)的数组GO、TO和CO。GO可以是一个几何图像。TO可以是纹理坐标映射,每个位置包含对应的纹理坐标。CO可以是颜色坐标映射,每个位置包含对应的红、绿、蓝色值。GO、TO和CO可以处于原始分辨率(例如8x8,16x16等)。同样在动作410中,对于每种期望的细分级别(例如,两级),处理器320和/或顶点着色器350都可以为具有各自细分分辨率的GO、TO和CO中的每一个创建占位符数组/映射。对于第一级细分,GUTl和Cl可以用4*nx4*n的大小/分辨率来创建,因为细分可以将数组/映射的大小/分辨率增大到四倍。对于第二级细分,G2、T2和C2可以用4*4*nx4*4*n(即16ηχ16η)的大小/分辨率来创建。为方便起见,G1、Tl、Cl、G2、T2和C2可以被初始化为0。在动作420中,处理器320可以经由数据总线330将结构GO、TO、CO、Gl、Tl、Cl、G2、T2和C2发送到图形存储器340。在一些实现方式中,可以使用图形API来完成这种操作。这一操作可以初始化图形存储器340中的空间,以由顶点着色器350随后来填充。然后,顶点着色器350可以在动作430中细分GO、TO和C0,以生成第一细分顶点数据Gl、Tl和Cl。例如,如果所采用的具体细分方案是Catmull-Clark细分方案,那么用于某一面的新面点可以通过对形成该面的旧点求平均而计算出来。新的边点可以通过将旧边的中点与共享一边的面的两个新面点的均值求平均而计算出来。新的顶点可以通过对Q/n+(2*R)/n+(S*(n-3))/n求平均而计算出来,其中Q等于与旧顶点邻接的所有面的新面点的均值;R等于入射在旧顶点上的所有旧边的中点的均值,而S是所述旧顶点。在一些实现方式中可以使用不同于Catmull-Clark的其他细分方案。当G1、T1和Cl中的每一组点被创建时,顶点着色器350可以在动作440中将对应的占位符结构中的值存储在图形存储器340中。当第一次细分全部完成后,顶点着色器350可以在动作430中进一步细分Gl、Tl和Cl,以生成第二次细分后的顶点数据G2、T2和C2。顶点着色器350可以在动作440中将对应的占位符结构G2、T2和C2中被进一步细分后的值存储在图形存储器340中。如前所述,G1、T1或Cl可能在一些实现方式中不会受到第二级细分。像素着色器360可以从图形存储器340中读取最终细分完成的顶点数据(例如,如果全都被两次细分,则是G2、T2和C2),并经由帧缓冲器370准备该数据用于显示。在G0、TO和CO不全被细分两次的实现方式中,像素着色器360可以准备G2以及一个或多个较少细分的结构(例如Tl和/或Cl)用于显示。虽然以上示意性的实施例包括了特定的实现方式,但是所要求保护的发明不一定局限于此。例如,初始顶点数据可以包括与GO、TO和CO不同的图形数据,例如法线数据。10由顶点着色器350执行的细分的次数可以少于或多于两次。类似地,在一些实现方式中可以使用不同于Catmull-Clark的细分方案。上述对一种或多种实现方式的描述提供了图示说明和文字描述,但是不希望是穷尽性的,或者将本发明的范围限制到所公开的精确形式。参照以上教导可以实现多种修改和变化,或者可以从本发明各种实现方式的实施中获得这些修改和变化。例如,虽然这里相对于顶点着色器350描述了细分方案,但是在一些实现方式中,也可以使用其他图形硬件来实现细分。只要这些其他的硬件(例如其他类型的着色器)具有从图形存储器340读取数据并且向其中写入数据的能力,它就是适合的。此外,这里所描述的细分方案可以在一些实现方式中由顶点着色器350根据需要(例如,基本实时地)来执行,并且在一些实现方式中它可以由顶点着色器350预先计算出来。另外,在一些实现方式中,顶点着色器350可以将细分后的顶点数据直接发送到像素着色器360,而不是先写入图形存储器340。此外,图4中的动作不必以示出的顺序来实施;也不是所有的动作都一定要执行。另外,那些不依赖于其他动作的动作可以与其他动作并行执行。另外,这个附图中至少有一部分动作可以实现为指令或者多组指令,这些指令在机器可读介质上实现。在本申请的说明书中所使用的任何元件、动作或指令都不应被解释为对本发明是关键的或必不可少的,除非明确指出。另外,用在这里,冠词“a”想要包括单数或复数项。在本质上偏离本发明的精神和原理的情况下,可以对所要求保护的发明的上述实现方式进行多种修改和改变。这里想要把所有这样的修改和改变都包括在本公开的范围之内,并受所附权利要求书的保护。权利要求1.一种系统,包括图形存储器,所述图形存储器储存具有第一大小的第一几何图像;处理器;将所述图形存储器耦合到所述处理器的数据总线;不同于所述数据总线的第二总线;通过所述第二总线耦合到所述图形存储器的细分装置,所述细分装置将所述第一几何图像细分成具有第二大小的第二几何图像,所述第二大小大于所述第一大小;并且所述图形存储器存储通过所述第二总线来自所述细分装置的所述第二几何图像。2.如权利要求1所述的系统,包括顶点着色器,所述顶点着色器读取包括几何图像的顶点数据。3.如权利要求2所述的系统,其中所述顶点着色器读取还包括颜色数据、纹理数据或法线数据的顶点数据。4.如权利要求2所述的系统,其中所述处理器被调适为使用应用编程接口(API)来发送所述顶点数据。5.如权利要求2所述的系统,其中所述数据总线具有相关的带宽,并且其中,由所述处理器发送的所述顶点数据使用所述数据总线的大部分带宽。6.如权利要求2所述的系统,还包括像素着色器,所述像素着色器从所述图形存储器中读取细分后的顶点数据,并且准备所述细分后的顶点数据用于显示。7.如权利要求6所述的系统,其中所述像素着色器光栅化所述细分后的顶点数据。8.如权利要求6所述的系统,还包括帧缓冲器,所述帧缓冲器缓冲并输出准备好的细分后的顶点数据,所述准备好的细分后的顶点数据来自所述像素着色器。9.如权利要求2所述的系统,还包括在所述处理器将所述顶点数据发送到所述图形存储器之前存储所述顶点数据的主存储器。全文摘要在图形硬件中细分几何图像,一种系统可以包括图形存储器、数据总线、处理器和顶点着色器。数据总线可以有效地(operatively)连接到图形存储器。处理器可以经由数据总线向图形存储器发送顶点数据。顶点着色器可以从图形存储器中读取顶点数据,并且可以将所述顶点数据细分成细分后的顶点数据。顶点着色器还可以将细分后的顶点数据写入图形存储器。文档编号G06T17/20GK102081804SQ20111000780公开日2011年6月1日申请日期2005年8月26日优先权日2004年8月26日发明者亚当·莱克,卡尔·马歇尔申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1