CN102227752B - 使用三维图形硬件的二维图形渲染期间的顶点丢弃 - Google Patents
使用三维图形硬件的二维图形渲染期间的顶点丢弃 Download PDFInfo
- Publication number
- CN102227752B CN102227752B CN200980148123.7A CN200980148123A CN102227752B CN 102227752 B CN102227752 B CN 102227752B CN 200980148123 A CN200980148123 A CN 200980148123A CN 102227752 B CN102227752 B CN 102227752B
- Authority
- CN
- China
- Prior art keywords
- summit
- position coordinates
- gpu
- vertex
- slope
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000004364 calculation method Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 7
- 238000007620 mathematical function Methods 0.000 claims 3
- 238000005516 engineering process Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000007667 floating Methods 0.000 description 11
- 238000004040 coloring Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000000875 corresponding effect Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000005286 illumination Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 238000000889 atomisation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000002772 conduction electron Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000002159 nanocrystal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明描述用于在使用三维(3D)图形硬件的二维(2D)图形渲染期间移除顶点的技术。根据所描述的技术,可在使用3D图形硬件的2D图形渲染期间移除一个或一个以上顶点。举例来说,所述技术可通过丢弃在显示器坐标空间中具有与先前顶点大体上相同的位置坐标的顶点来移除所述显示器坐标空间中的冗余顶点。或者或另外,所述技术可移除位于直线上的过多顶点。移除所述冗余顶点或位于直线上的顶点允许较高效地利用GPU的硬件资源且增加所述GPU渲染图像以供显示的速度。
Description
技术领域
本发明涉及计算装置,且特定来说涉及计算装置进行的图形渲染。
背景技术
计算装置常常要求将二维(2D)曲线渲染到显示器。计算装置可能要求渲染2D曲线以用于将文档渲染(例如)到便携式文档格式(PDF)。计算装置还可能要求渲染2D曲线以用于各种几何形状(例如,圆形、椭圆形、具有圆角的矩形等)的不依赖于分辨率的表示。此些形状在用户接口菜单和网站中较普及。2D形状经由参数曲线的渲染可用于例如Adobe Flash和Microsoft Silverlight等网页动画格式。
由于例如用于视频游戏、角色动画等的三维(3D)图形中对图形的要求不断增加,计算装置常常包含专用的3D图形硬件。然而常规的3D图形硬件并不为渲染2D曲线提供直接支持。由此,计算装置可包含用于渲染2D和3D曲线的单独图形硬件。必须维持单独的图形硬件这一要求在硅面积和功耗两方面成本较高。在例如个人数字助理(PDA)、无线通信装置、全球定位装置等移动计算装置的情况下,增加的面积或功耗是不合意的,因为其导致装置的大小较大、电池寿命减少等。
发明内容
本发明描述用于使用3D图形硬件来渲染2D曲线的技术。根据所描述的技术,计算装置可在使用3D图形硬件的2D图形渲染期间移除一个或一个以上顶点。作为一个实例,作为专用于执行图形渲染操作以在显示器上显示计算机化图形的图形处理单元(GPU)可移除重复(或冗余)的顶点。重复或冗余的顶点是在显示器坐标空间中具有大体上相同位置坐标的顶点。举例来说,如果两个顶点在彼此的像素的1/8内,即其坐标相差少于0.125,那么所述两个顶点可被视为重复或冗余的顶点。为了从图形管线移除冗余顶点,GPU可将每一顶点的位置坐标中的每一者与先前顶点的位置坐标进行比较,且丢弃在显示器坐标空间中具有与先前顶点大体上相同的位置坐标的顶点。
或者或另外,GPU可选择性地移除位于直线上的一个或一个以上顶点。此情形可(例如)在曲线的由三个或三个以上顶点表示的部分具有极少或无曲率时发生。在此情况下,曲线的直部分可使用从第一顶点(例如,端点)到最后顶点(端点)的直线而不是从第一顶点到最后顶点的一系列直线线段来同样好地表示。为了移除曲线的具有极少或无曲率的部分的第一顶点与最后顶点之间的所述一个或一个以上顶点,GPU可比较所述系列的线段的斜率。GPU可在斜率大体上相同(例如,在可容许阈值内)时移除曲线的具有极少或无曲率的部分的第一顶点与最后顶点之间的一个或一个以上中间顶点。移除冗余顶点或位于直线上的顶点可允许较高效地利用为3D或其它较高维度而设计的GPU的硬件资源,且增加GPU渲染图像以供显示的速度。
在一个方面中,一种方法包括:确定位于待渲染的曲线上的多个顶点中的每一者的位置坐标;分析所述多个顶点中的至少一部分的位置坐标;以及基于所述分析而丢弃所述多个顶点中的至少一者。
在另一方面中,一种装置包括处理单元,所述处理单元:确定位于待渲染的曲线上的多个顶点中的每一者的位置坐标;分析所述多个顶点中的至少一部分的位置坐标;以及基于所述分析而丢弃所述多个顶点中的至少一者。
在另一方面中,一种装置包括:用于确定位于待渲染的曲线上的多个顶点中的每一者的位置坐标的装置;用于分析所述多个顶点中的至少一部分的位置坐标的装置;以及用于基于所述分析而丢弃所述多个顶点中的至少一者的装置。
本发明中所描述的技术可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么软件可在处理器中执行,所述处理器可指代一个或一个以上处理器,例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP)或其它等效集成或离散逻辑电路。包括执行所述技术的指令的软件最初可存储在计算机可读媒体中,且由处理器加载和执行。因此,本发明还预期包含指令的计算机可读媒体,所述指令用以致使处理器执行如本发明中所描述的多种技术中的任一者。
举例来说,在一些方面中,本发明提供一种计算机可读媒体,其包括指令,所述指令在被执行时致使至少一个处理器:确定位于待渲染的曲线上的多个顶点中的每一者的位置坐标;分析所述多个顶点中的至少一部分的位置坐标;以及基于所述分析而丢弃所述多个顶点中的至少一者。
附图和以下描述中陈述本发明中所描述的技术的一个或一个以上方面的细节。从描述和图式,且从权利要求书将明白所述技术的其它特征、目标和优点。
附图说明
图1是说明根据本发明中所描述的技术来执行镶嵌的实例计算装置的框图。
图2是进一步详细说明图形处理单元的框图。
图3是根据本发明技术的丢弃一个或一个以上顶点的实例性顶点着色器的框图。
图4是根据本发明一个方面的输出多个顶点的实例性顶点着色器的框图。
图5是说明丢弃显示器坐标空间中的重复顶点的顶点着色器的实例性操作的流程图。
图6是说明丢弃显示器坐标空间中位于直线上的至少一些顶点的顶点着色器的实例性操作的流程图。
具体实施方式
图1是说明根据本发明中所描述的技术执行镶嵌的实例计算装置2的框图。计算装置2可包括输出图形信息的任何有线或无线装置。举例来说,计算装置2可包括个人计算机、桌上型计算机、膝上型计算机、计算机工作站、视频游戏平台或控制台、蜂窝式或卫星电话、因特网电话、例如便携式视频游戏装置或个人数字助理(PDA)等手持式装置、个人音乐播放器、视频播放器、电视机或另一类型的输出图形信息的装置。
如图1的实例中所说明,计算装置2包含用户输入接口4、CPU 6、装置存储器8、GPU 10、GPU存储器12、显示器接口14和显示器16。用户输入接口4、CPU 6、装置存储器8、GPU 10和显示器接口14可使用总线18来通信。总线18可为多种总线结构中的任一者,例如第三代总线(例如,HyperTransport(超输送)总线或InfiniBand(无限频带)总线)、第二代总线(例如,高级图形端口总线、外围组件互连(PCI)快速总线或高级可扩展接口(AXI)总线)或另一类型的总线或装置互连。
CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可向计算装置2提供输入以致使CPU 6执行一个或一个以上软件应用程序。在CPU 6上执行的软件应用程序可包含文字处理器应用程序、电子数据表应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一最终用户程序。用户可经由通过用户输入接口4耦合到计算装置2的例如键盘、鼠标、麦克风、触摸板或另一输入装置等一个或一个以上输入装置(未图示)向计算装置2提供输入。
装置存储器8可存储可在启动或复位时使用以配置计算装置2的装置配置信息。装置存储器还可存储可由CPU 6立即存取和/或当前正由CPU 6操作的数据和/或程序模块。装置存储器8可另外存储来自计算装置2的其它组件的信息,例如由GPU 10输出的信息。装置存储器8可为一个或一个以上易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
GPU 10可专用于执行图形操作以在显示器16上渲染计算机化图形。因此,当在CPU 6上执行的软件应用程序中的一者需要图形处理时,CPU 6将图形信息提供给GPU10以用于渲染到显示器16。在一些实例中,GPU 10可以并行结构来建置,其提供比CPU 6更高效的对复杂图形相关操作的处理。举例来说,GPU 10可包含多个图形管线,其以完全并行方式对多个顶点进行操作。在一些实例中,GPU 10的高度并行特征可允许GPU 10比通过CPU 6向显示器16直接绘制图形更快地在显示器16上创建复杂的2D或3D图像。在一些实例中,GPU 10可经设计以将3D图形渲染到显示器16。然而GPU10可用以执行对2D曲线的硬件加速的渲染。本发明的技术可用以改进使用3D图形硬件(例如,GPU 10)来渲染2D曲线的效率。
在一些实例中,GPU 10可集成到计算装置2的母板(未图示)中。在其它实例中,GPU 10可存在于安装在计算装置2的母板中的端口中的图形卡上,或可以其它方式并入经配置以与计算装置2互操作的外围装置内。GPU 10可为一个或一个以上处理器,例如一个或一个以上微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效集成或离散逻辑电路。
GPU 10可直接耦合到GPU存储器12。因此,GPU 10可在不使用总线18的情况下从GPU存储器12读取数据和向GPU存储器12写入数据。换句话说,GPU 10可使用本地存储装置而不是芯片外存储器来本地处理数据。这通过消除GPU 10经由总线18读取和写入数据(可能经历繁重的总线业务)的需要而允许GPU 10以更高效的方式操作。然而,在一些实例中,GPU 10可不包含单独的存储器,而是经由总线18利用装置存储器8。GPU存储器12可为一个或一个以上易失性或非易失性存储器或存储装置,例如RAM、SRAM、DRAM、EPROM、EEPROM、快闪存储器、磁性数据媒体或光学存储媒体。
CPU 6和/或GPU 10可将图形信息提供给显示器接口14以用于经由显示器16呈现。在复杂的2D和3D图形的情况下,图形信息通常由GPU 10为显示器16产生。显示器16可包括监视器、电视机、投影装置、液晶显示器(LCD)、等离子显示面板、发光二极管(LED)阵列、阴极射线管显示器、电子纸、表面传导电子发射显示器(SED)、激光电视机显示器、纳米晶体显示器或另一类型的显示单元。显示器16可集成在计算装置2内。举例来说,显示器16可为移动电话或其它无线通信装置的屏幕。或者,显示器16可为经由有线或无线通信链路耦合到计算机装置2的独立装置。举例来说,显示器16可为经由电缆或无线链路连接到个人计算机的计算机监视器或平板显示器。
当在CPU 6上执行的软件应用程序中的一者期望呈现复杂的2D图形图像时,CPU 6和GPU 10可一起操作以将图形渲染到显示器16。举例来说,在文字处理应用程序的情况下,软件应用程序可能期望将参数曲线渲染到文档,例如PDF文档。作为另一实例,软件应用程序可为用于例如根据可缩放向量图形(SVG)标准使用各种几何形状来在显示器16上呈现用户接口的软件应用程序。在又一实例中,软件应用程序可能期望经由用于例如Adobe Flash和Microsoft Silverlight(微软银光)等网页动画格式的参数曲线来渲染2D形状。软件应用程序包含界定形成待显示的图形图像的一个或一个以上2D曲线的命令。举例来说,在PDF文档的情况下,应用程序可包含界定各种字母和/或数字的图形图像的曲线的命令。在用户接口的情况下,应用程序可包含界定圆形、椭圆形、具有圆角的矩形等的图形图像的曲线的命令。举例来说,所述命令可界定若干曲线,所述曲线界定图形图像的边界。换句话说,由命令界定的曲线可近似表示字母、数字或形状的曲率。
在一个实例中,软件应用程序可包含根据如2005年7月28日的文献“开放式VG规范,1.0版”中界定的开放式VG来界定多个路径(即,曲线)的命令。开放式VG界定允许使用一个或一个以上线段命令来指定2D形式的图形图像的一组命令。根据开放式VG规范,线段命令可界定直线线段、贝塞尔(Bezier)曲线线段或椭圆弧线段。开放式VG的扩展可指定其它类型的线段。因此,本发明的技术不限于开放式VG规范中当前界定的线段命令。而且,虽然在开放式VG的上下文中描述本发明的技术,但所述技术可在其它2D图形授权标准(例如SVG、Adobe Illustrator、CorelDRAW、Adobe Flash、Microsoft Silverlight或使用2D图形的任一其它图形操作标准)的上下文中使用。
如上文可针对渲染3D图像设计而描述,为了使用GPU 10将2D曲线渲染到显示器16,CPU 6可向GPU 10提供与曲线相关联的一个或一个以上顶点。特定来说,CPU 6可计算表示曲线的控制点的一个或一个以上顶点。所述顶点中的每一者可由若干顶点属性表示,其可包含表示曲线上的顶点在对象空间中的位置的位置坐标(例如,2D曲线的(x,y)坐标)。CPU 6可(例如)使用对应于特定命令段的数学表示来产生所述一个或一个以上顶点,所述特定命令段可在图形授权规范(例如,开放式VG)中指定。除了控制点外,CPU 6还可向GPU 10指示待渲染的曲线的类型,例如在开放式VG情况下的直线线段、贝塞尔曲线线段或椭圆弧线段,以及在一些情况下的索引号。
CPU 6可使用产生的顶点作为图元的顶点的至少一部分来产生绘制图元列表。CPU6可产生若干绘制图元中的任一者,所述图元包含点、线条、线环、单独的线、三角形条、三角形扇、单独的三角形、四边形条、单独的四边形或其它类型的多边形。CPU 6可将绘制图元列表存储在装置存储器8中。
CPU 6可将绘制图元列表作为一系列顶点或界定顶点的特性的属性传送到GPU 10。举例来说,CPU 6可经由GPU驱动器调用图形应用编程接口(API)以将绘制图元列表传送到GPU 10。图形API可包括提供CPU 6与GPU 10之间的接口的一组软件指令。图形API可致使GPU驱动器制定且发出一个或一个以上命令,所述命令致使GPU 10将绘制图元渲染到可显示的图形信息。所述命令可指定将对图元执行的操作,例如渲染。另外,所述命令可包含图元的顶点的位置坐标、与图元的每一顶点相关联的色彩信息、与图元的每一顶点相关联的纹理信息、图元的按比例缩放信息、图元的旋转信息等。与图元的顶点相关联的信息可称为顶点“属性”代替于在命令内包含顶点属性,命令可在装置存储器8内指定可存储顶点属性的地址。
GPU 10接收来自CPU 6的命令且配置GPU 10的一个或一个以上处理元件以执行命令中指定的操作。GPU 10的图形管线中的每一者可对相应的顶点执行若干图形操作。举例来说,图形管线中的每一者可经配置以计算沿着将在模型空间(也称为用户空间或对象空间)中渲染的曲线的顶点的位置坐标。GPU 10可(例如)经配置以使用与曲线类型和由CPU 6指定的控制点相关联的数学等式来计算模型空间中的顶点。作为另一实例,图形管线中的每一者可经配置以将曲线或曲线上的顶点的位置坐标(或位置属性)变换到不同的坐标系。特定来说,GPU 10可将曲线或曲线上的顶点的位置坐标(或属性)从模型或用户坐标空间变换到显示器或表面坐标空间(有时称为装置坐标空间)。模型坐标空间表示图形图像如何由利用图形处理的软件应用程序的指令界定。通常,输入顶点的位置坐标可在模型坐标空间中使用浮点数来表示。另一方面,显示器坐标空间可表示图形图像将如何在装置(例如,显示器16)上显示。经变换顶点的位置坐标可在显示器坐标空间中使用对应于显示器16上的像素位置的整数来表示。然而,经变换顶点的位置坐标可在显示器坐标空间中使用浮点数来表示。
在一些实例中,两个或两个以上输入顶点在模型坐标空间中的位置坐标可对应于在显示器坐标空间中的大体上相同的位置坐标。由此,GPU 10可在显示器坐标空间中产生重复的顶点。此问题可因GPU 10的并行结构而加剧。换句话说,因为GPU 10完全并行地对多个输入顶点进行操作,所以显示器坐标系中的重复顶点可经由图形管线来处理。这导致可用硬件的低效使用以及图像向显示器16渲染的速度减小。
根据本发明的一个方面,GPU 10可从图形管线移除一个或一个以上顶点,以更高效地利用GPU 10的硬件资源,且增加图像向显示器16渲染的速度。举例来说,GPU 10可移除重复(或冗余)的顶点,例如在显示器坐标空间中具有大体上相同位置坐标的顶点。举例来说,如果两个顶点在彼此的像素的1/8内,即其在显示器坐标空间中的位置坐标相差少于0.125,那么所述两个顶点可被视为重复或冗余的顶点。为了从图形管线移除冗余顶点,GPU 10可将每一顶点的位置坐标中的每一者与先前顶点的位置坐标进行比较,且丢弃在显示器坐标空间中具有与先前顶点大体上相同的位置坐标的顶点,例如当位置坐标之间的差小于阈值(例如0.125)时丢弃顶点。以此方式,GPU 10可省略对于渲染图元来说不必要的冗余信息的处理。
或者或另外,GPU 10可移除在显示器坐标空间中具有位于一直线上的位置坐标的选定顶点。此情形在曲线的由三个或三个以上顶点表示的部分具有极少或无曲率时发生。在此情况下,曲线的直部分可使用从曲线的所述部分的第一顶点到曲线的所述部分的最后顶点的直线而不是沿着曲线的所述部分的每一中间顶点之间的一系列直线线段来同样好地表示。换句话说,可使用线的顶点集合中的仅两个顶点来同样好地建立直线。可移除中间或过多的顶点。
如果曲线的直部分包含三个顶点,那么曲线的直部分可使用从曲线的所述部分的第一顶点到第三顶点的直线来同样好地表示,而不是表示为一系列两个直线线段(例如,从第一顶点到第二顶点的第一直线线段和从第二顶点到第三顶点的第二直线线段)。GPU 10可(例如)比较由连续顶点形成的第一和第二线段的斜率,且在斜率大体上相同(例如,在可容许阈值内)时移除中间(第二)顶点。
在丢弃经变换的顶点之后,GPU 10使用剩余的经变换顶点来形成图元。在一个实例中,GPU 10可就像经丢弃顶点从未可用那样使用剩余的经变换顶点来形成图元。在产生图元之后,GPU 10可对图元执行额外的图形操作以将图像渲染到显示器16。
如上所述,CPU 6和GPU 10可一起作用以将曲线渲染到显示器16。在上述实例中,CPU 6将曲线镶嵌为若干线段,且GPU 10对所述线段执行操作以将线段渲染到显示器16。然而在其它实例中,渲染功能可以不同方式在CPU 6与GPU 10之间分配。举例来说,GPU 10可执行镶嵌以及其它操作。渲染功能可基于CPU 6的处理负荷、GPU 10的处理负荷等而在CPU 6与GPU 10之间分配。
另外,计算装置2可包含若干其它元件。举例来说,计算装置2可包含适当的用于发射和接收经编码的视频的调制、解调、频率转换、滤波和放大器组件,在适用时,包括足以支持无线通信的射频(RF)无线组件和天线。由此,计算装置2可包括手持式无线通信装置。然而,为了便于说明,这些额外的元件未在图1中具体说明。事实上,图1中说明的架构仅是示范性的。本发明中描述的技术可以多种其它架构来实施。
图2是进一步详细说明图1的GPU 10的框图。GPU 10包含图形管线20,其包含控制单元21、顶点着色器22、图元设置单元24和像素着色器26。如上所述,GPU 10可具有高度并行的结构,其提供复杂图形相关的操作的较高效处理。由此,虽然图2中仅说明一个图形管线20,但GPU 10可包含多个类似的图形管线,其并行地对多个顶点集合(例如,图元)进行操作。换句话说,GPU 10可包含多个顶点着色器22、图元设置单元24和像素着色器26,其可完全并行地对若干数据图元进行操作。在一些实例中,GPU 10的高度并行性质允许GPU 10比通过CPU 6向显示器16直接绘制图形图像更快地在显示器16上创建复杂的2D或3D图形图像。在一个实例中,GPU 10可经设计以用于渲染3D图形。
GPU 10可结合CPU 6而操作以渲染2D或3D图形图像以供显示。GPU 10的控制单元21接收来自CPU 6的命令,其指令GPU 10对界定图元的一个或一个以上顶点执行操作。控制单元21对命令进行解码,且配置GPU 10的一个或一个以上处理元件以执行命令中所指定的操作。控制单元21可另外将命令内含有的信息(例如,图元或顶点信息)存储在GPU存储器12(图1)中或GPU 10内的一个或一个以上缓冲器(未图示)内或GPU 10的处理元件内。控制单元21可向GPU 10的处理元件中的每一者中加载致使处理元件执行特定图形处理操作的一组指令。在图2中说明的实例中,GPU 10的处理元件包含顶点着色器22、图元设置单元24和像素着色器26。其它处理元件也可包含于GPU 10中,但为了简单和易于说明而在图2中未具体说明。
顶点着色器22、图元设置单元24和像素着色器26可作为管线而操作。当作为管线操作时,顶点着色器22对第一组输入数据执行第一组一个或一个以上图形操作,且输出第一组中间结果。图元设置单元24对顶点着色器22输出的中间结果执行第二组一个或一个以上图形操作,且输出第二组中间结果。在图元设置单元24执行第二组图形操作时,顶点着色器22对第二组初始输入数据执行第一组图形操作。图形处理以类似方式继续,直到产生图形图像以供显示为止。
顶点着色器22可经配置以获得界定由CPU 6产生的一个或一个以上顶点的顶点属性序列。顶点着色器22可从装置存储器8(图1)检索顶点属性序列。从CPU 6接收到的命令可指示装置存储器8内存储顶点属性的位置。或者,CPU 6可在所述命令内或在一个或一个以上后续命令中包含顶点属性。
顶点属性可包含位置属性、一个或一个以上色彩属性、一个或一个以上纹理属性、一个或一个以上照明属性、一个或一个以上透明度属性等。位置属性可为指示当前顶点在顶点序列中的顺序位置的索引号。当曲线具有(例如)N个顶点时,索引号包括从0到N的整数。或者,顶点的位置属性可为表示位于模型空间中的曲线上的点的位置的位置坐标,例如针对2D的(xo,yo)坐标。顶点的位置属性可(例如)由CPU 6使用对应于特定命令段的数学表示来计算,所述特定命令段可在图形授权规范(例如,开放式VG)中指定。对于使用开放式VG界定为(例如)椭圆弧曲线的曲线,顶点的位置属性可使用以下等式来计算:
xo=-a*cos(θ) (1)
yo=b*sin(θ), (2)
其中(xo,yo)为曲线上的顶点在模型空间中的位置坐标,a是椭圆形的半长轴,b是椭圆形的半短轴,且0≤θ≤2π。CPU 6可将变量a、b和θ连同等式(1)和(2)一起发送到GPU 10。如上所述,模型坐标空间通常使用浮点数来表示图形图像如何由利用图形处理的软件应用程序的指令界定。
基于位置属性,顶点着色器22确定显示器坐标空间中的位置坐标。显示器坐标空间(有时称为用户或装置坐标空间)表示图形图像将如何在装置(例如,显示器)上显示。因为显示器16由整数数目个物理像素的阵列构成,所以装置坐标空间中的位置坐标(x,y)映射到显示器16上的像素位置。顶点着色器22可使用相同的数学等式来计算顶点的位置坐标,所述等式表示由图形软件应用程序界定的曲线,但具有变换到显示器坐标空间中的变量(或控制点),如下文更详细描述。
顶点着色器22可对其它输入顶点属性执行若干其它操作。顶点着色器22可执行一个或一个以上操作以改变顶点的色彩属性、纹理属性、照明属性或透明度属性中的一者或一者以上。为了简单,本发明仅描述顶点的位置坐标的变换。然而,应理解,顶点着色器22可对其它顶点属性执行其它操作。
为了更高效地利用GPU 10的硬件资源且增加图像向显示器16渲染的速度,顶点着色器22可移除一个或一个以上顶点。顶点着色器22可(例如)移除空间上重复(或冗余)的顶点,移除位于直线上的过多顶点,或两者。
因为显示器坐标空间中的位置坐标对应于整数数目个像素位置,所以在一些实例中,两个或两个以上顶点可映射到同一像素位置。换句话说,两个或两个以上顶点可在显示器坐标空间中具有大体上相同的位置坐标。举例来说,模型坐标空间中或由两个连续索引号表示的两个或两个以上顶点在由顶点着色器22变换时可对应于显示器坐标空间中大体上相同的位置坐标。由此,GPU 10可产生与特定像素位置对应的一个以上顶点。以此方式,GPU 10可产生显示器坐标空间中的重复顶点。显示器坐标空间中的顶点可被视为对渲染图元来说不必要的冗余信息。
由于GPU 10的并行结构,GPU 10的处理元件可与渲染图元中所需要的顶点并行地对对于渲染图元来说不必要的顶点进行操作。举例来说,GPU 10可对重复顶点或位于直线上的过多顶点进行操作,从而导致可用硬件的低效使用以及图像向显示器16渲染的速度减小。代替于对重复或另外过多的顶点进行操作,如果GPU 10丢弃重复顶点,例如对应于显示器坐标空间中的大体上相同位置坐标的顶点,因此允许GPU 10将其硬件资源用于对非重复顶点进行操作,那么将是较高效的。
为此,根据本发明的一个方面,顶点着色器22可移除一个或一个以上顶点。在一个实例中,顶点着色器22可从图形管线移除冗余的顶点,例如在显示器坐标空间中具有相同或大体上相同位置坐标的顶点,以较高效地利用GPU 10的硬件资源且增加向显示器16渲染图像的速度。在一个方面中,顶点着色器22可计算当前顶点的位置坐标以及至少一个先前顶点的位置坐标。顶点着色器22比较当前与先前顶点的位置坐标(即,显示器坐标空间中的位置坐标),且在当前与先前顶点的位置坐标大体上相同时丢弃当前顶点。在当前顶点由顶点着色器22丢弃时,顶点着色器22可不提供任何输出。或者,顶点着色器22可输出指示当前顶点已被丢弃的信号。所述信号可允许管线的下一处理级知晓其将不接收顶点且资源将被释放以用于其它操作。
当显示器坐标空间中的当前与先前顶点的位置坐标大体上不相同时,顶点着色器22输出当前顶点的顶点属性,包含在显示器坐标空间中的位置坐标。在此情况下,所述至少一个先前顶点的位置坐标用于确定当前顶点是否是冗余的。GPU 10可针对全部N+1个顶点并行地执行类似过程。
在配置顶点着色器22时,控制单元21可向顶点着色器22中加载致使顶点着色器22执行上文所述功能的一组指令。如下文将更详细描述,顶点着色器22可加载有界定用于计算模型空间和/或显示器坐标空间中的曲线的位置坐标的数学等式以及在计算位置坐标中必要的任何变量的指令。以下是实例伪码,其可加载到顶点着色器22中且用以移除重复顶点。
在以上实例伪码中,顶点着色器22配置有指令,所述指令致使顶点着色器22使用表示索引或序列号的位置属性(index)来获得当前和先前顶点的位置坐标。在实例伪码中,顶点着色器22经配置以计算具有零度开始角度的一个弧度的圆弧的位置坐标。特定来说,顶点着色器22配置有圆弧的半径、最大索引值N、界定由图形软件应用程序界定的曲线在模型空间中的x和y位置坐标的数学等式,即分别为x=radius*cos(t)和y=radius*sin(t)。
顶点着色器22基于位置属性(index)和最大索引值(N)来计算浮点值t。顶点着色器22还将变量t的步长(delta)计算为1/N,其表示均匀步长。在其它实例中,步长可基于曲线的曲率而自适应。使用所计算的浮点值t,顶点着色器22计算显示器坐标空间中的x轴位置坐标(x_curr)和显示器坐标空间中的y轴位置坐标(y_curr)。特定来说,顶点着色器22将x_curr计算为radius*cos(t)的整数值,其中t等于index/N的浮点值。换句话说,顶点着色器22将等式radius*cos(t)输出的值舍入到最近的整数值。同样,顶点着色器22通过将等式radius*sin(t)输出的值舍入到最近的整数值来计算y_curr。以此方式,顶点着色器22通过将模型坐标空间中的位置坐标舍入到最近的整数值来将模型坐标空间中的位置坐标变换到显示器坐标空间中的位置坐标。
另外,顶点着色器22可同样计算先前顶点在显示器坐标空间中的位置坐标(x_prev,y_prev)。特定来说,顶点着色器22通过将等式radius*cos(t-delta)所输出的值舍入到最近的整数值来计算x_prev,且通过将等式radius*sin(t-delta)所输出的值舍入到最近的整数值来计算y_prev。虽然在以上实例伪码中,顶点着色器22通过将模型坐标空间中的位置坐标舍入到最近的整数值来将模型坐标空间中的位置坐标变换到显示器坐标空间中的位置坐标,但顶点着色器22可将显示器坐标空间中的位置坐标保持为浮点数。另外,顶点着色器22可在变换过程期间执行其它变换操作,例如按比例缩放、旋转等。在此情况下,除了将浮点值舍入到最近的整数值以外还可执行其它数学运算。
顶点着色器22将当前顶点的所计算位置坐标与先前顶点的所计算位置坐标进行比较,且当位置坐标在显示器坐标系中相同时丢弃当前顶点。换句话说,顶点着色器22在两个x轴位置坐标相同(x_curr=x_prev)且两个y轴位置坐标相同(y_curr=y_prev)时丢弃当前顶点。gl_Position.x是具有等于顶点的x坐标的位置的值的浮点值,且gl_Position.y是具有等于顶点的y坐标的位置的值的浮点值。gl_Position.x和gl_Position.y允许顶点着色器22指定顶点位置位于其内的特定寄存器。当将显示器坐标空间中的位置坐标表示为浮点数时,当两个顶点的值之间的差在彼此的像素的1/8内(即,其在显示器坐标空间中在两个维度(例如,x和y维度)上的位置坐标相差少于0.125)时丢弃当前顶点。虽然上文描述为在显示器坐标空间中发生,但顶点着色器22可通过在模型或用户坐标空间中执行比较来丢弃顶点。
在以上实例中,顶点着色器22输入当前顶点的索引值作为顶点位置属性。索引值可具有从0到N的整数值,其中每一后续顶点具有序列的下一索引值。换句话说,如果当前顶点的索引值为“2”,那么先前顶点的索引值为“1”,后续顶点的索引值为“3”,依此类推。在本发明的技术的一个方面中,GPU 10可产生此整数序列,而不是从装置存储器8读取此属性或从CPU 6接收包含所述属性的命令。在GPU 10内产生整数序列可减少在总线18上使用的带宽量。
控制单元21可(例如)维持计数器28,其用于从0到N对经处理的顶点进行计数。由此,控制单元21通常在顶点的顶点属性加载到顶点着色器22中时递增计数器28。在一些方面中,控制单元21可使用计数器28作为索引属性的来源。举例来说,控制单元21可提供计数器28的值作为当前顶点的索引属性且在将当前索引值加载到顶点着色器22中之后即刻使计数器28的值递增一。这使得总线18上的传入带宽消耗量减小,因为无需从装置存储器8或CPU 6加载位置顶点属性。
在一些实例中,顶点着色器22可通过移除位于大体上直线上的过多顶点来减少来自从CPU 6接收的顶点集合的顶点的数目。换句话说,顶点着色器22可移除大体上位于使用先前顶点和后续顶点建立的直线上的中间顶点。如本发明中所描述,位于直线上的中间或过多顶点对于渲染图元来说可能是不必要的。顶点着色器22可在不移除冗余顶点的情况下或除了移除冗余顶点外还移除位于大体上直线上的过多或中间顶点。
为了移除直线上的过多或中间顶点,顶点着色器22可计算当前顶点以及先前顶点和在具有三个顶点的直线线段的情况下的后续顶点在显示器坐标空间中的位置坐标。类似技术可结合具有三个以上顶点的直线线段而使用。顶点着色器22可以如上文详细描述的相同方式计算顶点的位置坐标。作为一个实例,顶点着色器22可如以上实例伪码中所描述而计算当前顶点在显示器坐标空间中的位置坐标(x_curr,y_curr)和先前顶点在显示器坐标空间中的位置坐标(x_prev,y_prev),且使用t=t+delta进一步计算后续顶点的经变换位置坐标(x_subs,y_subs)。
在计算先前、当前和后续顶点的经变换位置顶点之后,顶点着色器22确定经变换位置顶点是否位于大体上直线上。为此,顶点着色器22可将连接当前顶点和先前顶点的位置坐标的线段的斜率与连接后续顶点与当前顶点的位置坐标的线段的斜率进行比较。当两个线段的斜率大体上相等(例如,在可容许差或以下等式(3)中的“THR”内)时,顶点着色器22确定顶点位于大体上直线上。顶点着色器22可(例如)在:
((x_curr-x_prev)*(y_curr-y_subs))-((x_curr-x_subs)*((y_curr-y_prev))≤THR
(3)
时确定经变换位置顶点位于直线上。当顶点着色器22确定顶点的经变换位置坐标位于大体上直线上(即,小于或等于THR)时,顶点着色器22丢弃当前顶点。在一些实例中,顶点着色器22在确定顶点是否位于直线上时可容许特定程度的误差。
在一些实例中,GPU 10可计算曲线的较高导数且使用所述较高导数来确定是否丢弃顶点。举例来说,GPU 10可计算表示曲线的曲率(例如,斜率)的二阶导数,且基于曲线在顶点的位置处的曲率来确定是否丢弃顶点。举例来说,GPU 10可在曲线的曲率在顶点的位置处具有高值的情况下确定不丢弃顶点。
当顶点着色器22确定保持当前顶点,例如顶点不是重复或冗余顶点或与不与相邻顶点位于直线上时,顶点着色器22输出经变换顶点或界定经变换顶点的属性。在一个实例中,顶点着色器22可将输出的顶点或界定经变换顶点的属性直接提供到图形管线20中的下一级,例如图元设置单元24。在其它实例中,顶点着色器22可将经变换顶点或界定经变换顶点的属性存储到存储器,例如GPU存储器12或装置存储器8。
在上述实例中,顶点着色器22使用先前和/或后续顶点来做出关于当前顶点的确定。换句话说,顶点着色器22计算先前和/或后续顶点的位置坐标,以便确定顶点是否是先前顶点的重复或是否与先前顶点和后续顶点位于直线上。因此,对于曲线上的每一顶点,顶点着色器22执行两个或两个以上额外“开销”计算以变换当前顶点。举例来说,为了确定当前顶点的位置坐标是否与先前顶点的位置坐标大体上相同,顶点着色器22除了变换当前顶点的位置坐标外还变换先前顶点的位置坐标。假定已执行的仅有操作是变换当前顶点的位置坐标,这可导致开销计算的100%增加(例如,所执行运算的数目的100%增加)。作为另一实例,为了确定当前顶点的位置坐标是否与先前和后续顶点位于直线上,顶点着色器22变换先前顶点、当前顶点和后续顶点的位置坐标。假定已执行的仅有操作是变换当前顶点的位置坐标,这可导致开销计算的200%增加。然而,这些开销计算可能消除稍后在图形管线20中执行的若干其它较复杂的计算。
在一些实例中,顶点着色器22可经配置以通过变换多个顶点来减少此开销计算。作为实例,顶点着色器22可经配置以同时变换四个顶点。在此实例中,顶点着色器22可获得索引值(i)且计算五个顶点的位置坐标,例如对应于索引值i-1、i、i+1、i+2和i+3的顶点。顶点着色器22可将顶点i、i+1、i+2和i+3中的每一者的位置坐标分别与对应于索引值i-1、i、i+1和i+2的先前顶点中的每一者的位置坐标进行比较,以确定顶点中的任一者是否重复。顶点着色器22可输出至多达四个经变换顶点(如果没有顶点重复)。以此方式,顶点着色器22可将计算开销从100%(每输入顶点一次开销计算)减少到25%(每四个输入顶点一次开销计算)。
图元设置单元24使用经变换顶点来产生图元。图元设置单元24可(例如)使用若干由三个经变换顶点组成的集合来产生三角形图元,例如三角形条、三角形扇或单独的三角形。然而在其它实例中,图元设置单元24可使用三个以下经变换顶点或三个以上经变换顶点来产生其它类型的图元。举例来说,图元设置单元24可产生的其它图元包含点、线条、线环、单独的线、四边形条、单独的四边形或其它类型的多边形。为了说明的目的,本发明将图元设置单元24描述为产生三角形扇图元。然而,如本文广义描述的技术不应被限定于三角形扇图元,而是可用于任何类型的图元。
三角形扇是一系列连接的三角形。三角形扇的所连接的三角形中的每一者与每一相邻三角形共享两个共用顶点,即根顶点和至少一个其它顶点。为了产生(例如)三角形扇图元,图元设置单元24界定根顶点。在大多数实例中,图元设置单元24所产生的根顶点不位于界定对象的曲线上。事实上,根顶点可位于邻近于界定对象的曲线的凹入部分处。为了产生三角形扇图元,图元设置单元24将根顶点与位于界定对象的曲线上的两个顶点相连接。以此方式,图元设置单元24所产生的三角形图元中的每一者共享根顶点和位于界定对象的曲线上的至少一个顶点。因此,图元设置单元24可使用仅N+2个顶点来产生具有N个三角形图元的三角形扇。
按照惯例,当丢弃顶点时,图元设置单元24丢弃含有所丢弃顶点的所有图元。在(例如)三角形扇的情况下,图元设置单元24丢弃所丢弃的每一顶点的两个邻近的三角形图元。在一些情况下,例如在因为像素为重复性的或因为当前顶点位于连接相邻顶点的直线上而丢弃像素时,可能不期望丢弃含有所丢弃像素的所有图元。因此,图元设置单元24可不丢弃包含所丢弃顶点的所有图元。相反,图元设置单元24可将图元设置为如同所丢弃顶点从不是顶点那样。在例如三角形扇的情况下,图元设置单元24可使用三角形扇的根顶点、先前未丢弃顶点和在所丢弃顶点之后的第一未丢弃顶点来产生三角形图元。因此,代替于丢弃包含所丢弃顶点的两个邻近三角形图元,图元设置单元24形成单个三角形图元代替两个邻近三角形图元。
像素着色器26基于顶点属性将图元设置单元24输出的图元转换为像素。像素着色器26可(例如)对图元执行剪切操作,且确定屏幕中的哪些像素在对象的几何形状内且因此需要绘制。另外,像素着色器26可执行图元的顶点的顶点属性的内插以产生像素数据。像素着色器26可另外执行每像素纹理化、雾化和染色操作以产生色彩值以在每一像素位置处显示。
图2中说明的架构仅为示范性的,因为本发明中所描述的技术可以多种其它架构实施。举例来说,GPU 10可利用单个着色器核心,其可执行用于顶点着色器22和像素着色器26的功能。单个着色器核心可(例如)由控制单元21基于图形操作处于管线的哪一级来配置以充当顶点着色器22或像素着色器26。而且,图1中说明的特征可由硬件和/或软件组件的任一合适组合来实现。
图3是根据本发明技术的丢弃一个或一个以上顶点的实例性顶点着色器22A的框图。顶点着色器22A可(例如)对应于图2的顶点着色器22。顶点着色器22A包含:位置坐标计算模块30,其计算当前顶点和至少一个额外顶点在显示器坐标空间中的位置坐标;以及顶点丢弃模块32,其确定是否丢弃所计算顶点中的任一者。
位置坐标计算模块30获得表示至少一个顶点的一个或一个以上顶点属性。在图3的实例中,位置坐标计算模块30获得索引属性i,其指示顶点在其它顶点当中的位置。位置坐标计算模块30计算与索引属性相关联的顶点(即,当前顶点)在显示器坐标空间中的位置坐标。位置坐标计算模块30还计算至少一个其它顶点(例如,先前顶点)在显示器坐标空间中的位置坐标。如上文相对于图2详细描述,位置坐标计算模块30可使用表示由图形软件应用程序界定的曲线的数学等式和作为索引属性i的函数而计算的变量来计算位置坐标。当前和先前顶点的位置坐标在图3中分别表示为(x_curr,y_curr)和(x_prev,y_prev)。
顶点丢弃模块32接收当前和先前顶点的所计算的位置坐标。顶点丢弃模块32将当前顶点的所计算的位置坐标与先前顶点的所计算的位置坐标进行比较,且当显示器坐标空间中的位置坐标大体上相同时丢弃当前顶点。换句话说,顶点丢弃模块32在x_curr=x_prev且y_curr=y_prev时丢弃当前顶点。以此方式,顶点着色器22A移除显示器坐标空间中的冗余顶点。
在丢弃当前顶点之后,顶点丢弃模块32可即刻输出指示当前顶点被丢弃的丢弃信号。或者,顶点丢弃模块32可在当前顶点被丢弃时不输出任何信号。当顶点丢弃模块32不丢弃当前顶点时,即当前和先前顶点在显示器坐标空间中的位置坐标不同时,顶点丢弃模块32输出当前顶点的位置坐标(x_curr,y_curr)。
虽然在基于所接收索引属性来计算当前和先前顶点的位置坐标的方面来描述位置坐标计算模块30,但位置坐标计算模块30可接收其它位置属性以用于计算当前和先前顶点在显示器坐标空间中的位置坐标。举例来说,位置坐标计算模块30可接收当前和先前顶点在模型坐标空间中的位置坐标,且使用变换等式来计算当前和先前顶点在显示器坐标空间中的位置坐标。在又一实例中,位置坐标计算模块30可仅计算当前顶点在显示器坐标空间中的位置坐标。在此情况下,位置坐标计算模块30可接收先前计算的先前顶点在显示器坐标空间中的位置坐标用于比较。
图4是根据本发明一个方面的输出多个顶点的实例性顶点着色器22B的框图。顶点着色器22B可(例如)对应于图2的顶点着色器22。顶点着色器22B包含:位置坐标计算模块40,其计算多个顶点在显示器坐标空间中的位置坐标;以及顶点丢弃模块42,其确定是否丢弃所计算顶点中的任一者。
位置坐标计算模块40获得表示至少一个顶点的一个或一个以上顶点属性。在图4的实例中,位置坐标计算模块30获得索引属性i,其指示在顶点序列中的位置。位置坐标计算模块40计算多个顶点在显示器坐标空间中的位置坐标。在图4的实例中,位置坐标计算模块40计算五个顶点的像素坐标:(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)和(x5,y5)。如上文相对于图2详细描述,位置坐标计算模块40可使用表示由图形软件应用程序界定的曲线的数学等式和作为索引属性i的函数而计算的变量来计算位置坐标。
顶点丢弃模块42接收所述多个顶点的所计算的位置坐标且确定是否丢弃顶点中的任一者。顶点丢弃模块42可(例如)将顶点的所计算位置坐标(x2,y2)到(x5,y5)中的每一者分别与先前顶点的位置坐标(x1,y1)到(x4,y4)进行比较。顶点丢弃模块42丢弃在显示器坐标空间中具有与对应的先前顶点大体上相同的位置坐标的顶点。以此方式,顶点着色器22B移除显示器坐标空间中的冗余顶点。
顶点丢弃模块42可另外确定顶点中的至少一些是否与邻近顶点位于直线上。在图4的实例中,顶点丢弃模块42可确定顶点的位置坐标(x2,y2)到(x4,y4)是否位于直线上。为此,顶点丢弃模块42可将连接顶点的位置坐标(x2,y2)和先前顶点的位置坐标(x1,y1)的线段的斜率与连接后续顶点的位置坐标(x3,y3)和顶点的位置坐标(x2,y2)的线段的斜率进行比较。当两个线段的斜率大体上相等(例如,在可容许的差内)时,顶点丢弃模块42确定顶点位于大体上直线上,且丢弃顶点(x2,y2)。顶点丢弃模块42对顶点的位置坐标(x3,y3)和(x4,y4)执行相同分析。顶点丢弃模块42可不对顶点的位置坐标(x1,y1)和(x5,y5)执行线分析,因为对于在(x1,y1)之前的先前顶点且对于在(x5,y5)之后的后续顶点不存在位置坐标用于计算线段的斜率。
顶点丢弃模块42可在未丢弃顶点的情况下输出至多达四个顶点的位置坐标。在图4中说明的实例中,顶点丢弃模块42丢弃顶点(x3,y3)的位置坐标,例如因为其是复制的或与其相邻顶点位于直线上。由此,顶点丢弃模块42输出三个顶点的位置坐标。通过计算和输出多个顶点的位置坐标,顶点着色器22B可减少计算开销。当顶点着色器22B可输出(例如)至多达四个顶点的位置坐标时,顶点着色器22B可将计算开销从100%(每输入顶点一次开销计算)减少到25%(每四个输入顶点一次开销计算)。虽然在图4中描述的实例中顶点着色器22B可输出至多达四个顶点的位置坐标,但顶点着色器22B可经配置以输出任一数目的顶点的位置坐标。举例来说,顶点着色器22B可经配置以输出四个以上或四个以下顶点的位置坐标。
图5是说明顶点着色器22丢弃显示器坐标空间中的重复顶点的实例性操作的流程图。顶点着色器22可获得界定位于待渲染曲线上的至少一个顶点的一个或一个以上顶点属性(50)。顶点属性包含位置属性,例如指示当前顶点在顶点序列中的位置的与当前顶点相关联的索引号。在另一实例中,位置属性可为位置坐标,例如2D曲线的(x,y)坐标或3D曲线的(x,y,z)坐标。顶点属性可另外包含与顶点相关联的其它信息,例如一个或一个以上色彩属性、一个或一个以上纹理属性、一个或一个以上照明属性等。顶点着色器22可从装置存储器8、从来自CPU 6的命令或在索引号的情况下从GPU 10内的计数器28获得顶点属性序列。
顶点着色器22计算当前顶点在显示器坐标空间中的位置坐标(52)。当前顶点是顶点着色器22当前正对其进行操作的顶点。顶点着色器22还计算先前顶点在显示器坐标空间中的位置坐标(54)。先前顶点可为紧在当前顶点之前的顶点。在例如索引属性的情况下,顶点着色器22可使用表示由图形软件应用程序界定的曲线的数学等式和作为索引属性i的函数而计算的变量来计算位置坐标,例如如相对于图2的伪码所展示和描述。当前和先前顶点的位置坐标可表示将用以在显示器上呈现曲线的显示器上的位置,例如像素阵列当中的像素位置。
顶点着色器22确定当前和先前顶点的显示器位置坐标是否大体上相同(56)。举例来说,顶点着色器22可将当前顶点的所计算显示器位置坐标与先前顶点的所计算显示器位置坐标进行比较,以确定所述显示器位置坐标是否大体上相同,例如在可容许阈值内。当显示器位置坐标大体上相同时,顶点着色器22丢弃当前顶点(57)。在一些实例中,顶点着色器22可输出指示当前顶点被丢弃的丢弃信号。或者,顶点着色器22可不输出任何东西,例如在不向其它模块或元件指示顶点被丢弃的情况下丢弃顶点。以此方式,顶点着色器22移除显示器坐标空间中的冗余顶点。
当顶点着色器22确定显示器位置坐标并非大体上相同时,顶点着色器22输出当前顶点在显示器坐标空间中的位置坐标(58)。虽然图5的流程图描述顶点着色器22做出关于是否丢弃单个顶点的确定,但顶点着色器可经配置以同时针对一个以上顶点做出此确定,如上文详细描述。举例来说,顶点着色器22可经配置以通过计算N个顶点的位置坐标以及紧在N个顶点之前的一个顶点的位置坐标来同时确定是否丢弃N个顶点。顶点着色器22可将N个顶点中的每一者的位置坐标与对应的先前顶点的位置坐标进行比较,以确定N个顶点中的任一者是否重复。顶点着色器22可输出至多达N个顶点(如果没有顶点重复)。以此方式,顶点着色器22可将计算开销从100%(每输入顶点一次开销计算)减少到25%(每四个输入顶点一次开销计算)。
图6是说明丢弃显示器坐标空间中的位于直线上的至少一些顶点的顶点着色器22的实例性操作的流程图。顶点着色器22可获得界定位于待渲染曲线上的至少一个顶点的一个或一个以上顶点属性(60)。顶点属性包含位置属性,例如指示当前顶点在顶点序列中的位置的与当前顶点相关联的索引号。在另一实例中,位置属性可为位置坐标,例如2D曲线的(x,y)坐标或3D曲线的(x,y,z)坐标。顶点属性可另外包含与顶点相关联的其它信息,例如正常属性、一个或一个以上色彩属性、一个或一个以上纹理属性、一个或一个以上照明属性等。顶点着色器22可从装置存储器8、从来自CPU 6的命令或在索引号的情况下从GPU 10内获得顶点属性序列。
顶点着色器22计算当前顶点在显示器坐标空间中的位置坐标(62)。当前顶点是顶点着色器22当前正对其进行操作的顶点。顶点着色器22还计算先前顶点在显示器坐标空间中的位置坐标(64)。先前顶点可为紧在当前顶点之前的顶点。顶点着色器22还计算后续顶点在显示器坐标空间中的位置坐标(66)。后续顶点可为紧在当前顶点之后的顶点。在(例如)索引属性的情况下,顶点着色器22可使用表示由图形软件应用程序界定的曲线的数学等式和作为索引属性i的函数而计算的变量来计算位置坐标,例如相对于图2的伪码所展示和描述。
顶点着色器22确定顶点是否位于大体上直线上(68)。举例来说,顶点着色器22可将连接当前顶点和先前顶点的位置坐标的线段的斜率与连接后续顶点和当前顶点的位置坐标的线段的斜率进行比较。当两个线段的斜率大体上相等(例如,在可容许的差内)时,顶点着色器22确定顶点位于大体上直线上。
当顶点着色器22确定顶点位于大体上直线上时,顶点着色器22丢弃当前顶点(70)。丢弃当前顶点不影响向显示器渲染的图像,因为连接先前和后续顶点的线段与连接先前和当前顶点以及连接当前和后续顶点的线段相同。当顶点着色器22确定顶点位于大体上直线上时,顶点着色器22输出当前顶点在显示器坐标空间中的位置坐标(72)。顶点着色器22可在不移除冗余顶点或除了移除冗余顶点外还移除位于大体上直线上的顶点,如相对于图5所述。
本文中所描述的技术可以硬件、软件、固件或其任一组合来实施。被描述为模块或组件的任何特征可共同实施于集成逻辑装置中或单独实施为离散但可互操作的逻辑装置。在一些情况下,可将各种特征实施为集成电路装置,例如,集成电路芯片或芯片组。如果以软件来实施,那么可至少部分由包括当执行时实施上述方法中的一者或一者以上的指令的计算机可读媒体来实现所述技术。所述计算机可读媒体可形成可包含封装材料的计算机程序产品的部分。计算机可读媒体可包括例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体等。另外或或者,所述技术可至少部分由运载或传送呈指令或数据结构的形式的代码且可由计算机存取、读取和/或执行的计算机可读通信媒体来实现。
代码可由一个或一个以上处理器执行,例如一个或一个以上DSP、通用微处理器、ASIC、现场可编程逻辑阵列(FPGA),或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文所描述的功能性可在经配置以用于镶嵌图形图像的专用软件应用程序或硬件模块内提供。因此,本发明还涵盖包含实施本发明中描述的技术中的一者或一者以上的电路的多种集成电路装置中的任一者。此电路可在单个集成电路芯片或在多个可互操作的集成电路芯片中提供。
已描述各种方面。这些及其它方面均在所附权利要求书的范围内。
Claims (31)
1.一种使用三维图形处理单元3D GPU在图形渲染期间丢弃顶点的方法,其包括:
获得指示当前顶点在位于待渲染的二维2D参数曲线上的多个顶点中的顺序位置的索引值,其中,所述索引值是从0到N的整数值;
使用呈现所述待渲染的2D参数曲线的一个或多个数学函数以及作为索引值的函数而计算的一个或多个变量,确定所述多个顶点中的每一者在显示器坐标空间中的位置坐标;
计算第一顶点的位置坐标与第二顶点的位置坐标之间的第一斜率;
计算第二顶点的位置坐标与第三顶点的位置坐标之间的第二斜率;且
在经计算的所述第一斜率和所述第二斜率大体上相同时,丢弃第一顶点、第二顶点、第三顶点中之一。
2.根据权利要求1所述的方法,还包括:
分析所述多个顶点的位置坐标包括将所述多个顶点中的第四顶点的第一位置坐标与所述多个顶点中的第五顶点的第二位置坐标进行比较,其中所述第四顶点紧在所述第五顶点之前;且
在所述第一和第二位置坐标大体上相同时丢弃所述第五顶点。
3.根据权利要求2所述的方法,还包括:
将所述多个顶点中的第六顶点的第三位置坐标与所述第二位置坐标进行比较,其中所述第五顶点紧在所述第六顶点之前;且
在所述第二和第三位置坐标大体上相同时丢弃所述第六顶点。
4.根据权利要求3所述的方法,其进一步包括:
在所述第一和第二位置坐标并不大体上相同时,输出所述第五顶点的位置坐标;以及
在所述第二和第三位置坐标并不大体上相同时,同时输出所述第六顶点的位置坐标。
5.根据权利要求1所述的方法,其中丢弃所述第一顶点、第二顶点、第三顶点中之一包括丢弃大体上位于由先前顶点和后续顶点形成的直线上的至少一个顶点。
6.根据权利要求1所述的方法,其中:
丢弃所述第一定点、第二顶点、第三顶点中之一包括在所述第一和第二所计算斜率大体上相同时丢弃所述第二顶点。
7.根据权利要求6所述的方法,还包括:
将所述第一顶点的所述位置坐标与所述第二顶点的所述位置坐标进行比较;且
在所述第一顶点的位置坐标与所述第二顶点的位置坐标大体上相同时丢弃所述第二顶点。
8.根据权利要求1所述的方法,其中获得所述索引值包括从图形处理电源GPU的计数器获得所述索引值。
9.根据权利要求1所述的方法,还包括渲染所述曲线以将所述曲线呈现到显示器。
10.根据权利要求1所述的方法,还包括丢弃所述多个顶点中映射到与所述多个顶点中的至少一个其它顶点相同的像素位置的至少一个顶点。
11.一种用于在图形渲染期间丢弃顶点的装置,其包括三维图像处理单元3D GPU,所述3D GPU:
获得指示当前顶点在位于待渲染的二维2D参数曲线上的多个顶点中的顺序位置的索引值,其中,所述索引值是从0到N的整数值;
使用呈现所述待渲染的2D参数曲线的一个或多个数学函数以及作为索引值的函数而计算的一个或多个变量,确定所述多个顶点中的每一者在显示器坐标空间中的位置坐标;
计算第一顶点的位置坐标与第二顶点的位置坐标之间的第一斜率;
计算第二顶点的位置坐标与第三顶点的位置坐标之间的第二斜率;且
在经计算的所述第一斜率和所述第二斜率大体上相同时,丢弃第一顶点、第二顶点、第三顶点中之一。
12.根据权利要求11所述的装置,其中所述3D GPU:
将所述多个顶点中的第四顶点的第一位置坐标与所述多个顶点中的第五顶点的第二位置坐标进行比较,其中所述第四顶点紧在所述第五顶点之前;且
在所述第一和第二位置坐标大体上相同时丢弃所述第五顶点。
13.根据权利要求12所述的装置,其中所述3D GPU.
将所述多个顶点中的第六顶点的第三位置坐标与所述第二位置坐标进行比较,其中所述第五顶点紧在所述第六顶点之前;且
在所述第二和第三位置坐标大体上相同时丢弃所述第六顶点。
14.根据权利要求13所述的装置,其中所述3D GPU:
在所述第一和第二位置坐标并不大体上相同时,输出所述第五顶点的位置坐标;以及
在所述第二和第三位置坐标并不大体上相同时,同时输出所述第六顶点的位置坐标。
15.根据权利要求11所述的装置,其中所述3D GPU丢弃大体上位于由先前顶点和后续顶点形成的直线上的所述第一顶点、第二顶点、第三顶点中之一。
16.根据权利要求11所述的装置,其中所述3D GPU:
在所述第一和第二所计算斜率大体上相同时丢弃所述第二顶点。
17.根据权利要求16所述的装置,其中所述3D GPU:
将所述第一顶点的所述位置坐标与所述第二顶点的所述位置坐标进行比较;且
在所述第一顶点的位置坐标与所述第二顶点的位置坐标大体上相同时丢弃所述第二顶点。
18.根据权利要求11所述的装置,其中所述3D GPU包含产生所述索引值的计数器。
19.根据权利要求11所述的装置,其中所述3D GPU渲染所述曲线以将所述曲线呈现到显示器。
20.根据权利要求11所述的装置,其中所述3D GPU包括顶点着色器,所述顶点着色器还包含:
位置坐标计算模块,其确定位于待渲染的曲线上的多个顶点中的每一者在显示器坐标空间中的位置坐标;
顶点丢弃模块,其计算所述第一顶点的位置坐标与所述第二顶点的位置坐标之间的所述第一斜率、计算所述第二顶点的位置坐标与所述第三顶点的位置坐标之间的所述第二斜率、在所述第一斜率与所述第二斜率大体上相同时丢弃所述第一顶点、第二顶点、第三顶点中之一。
21.根据权利要求11所述的装置,其中所述装置包括无线通信装置。
22.根据权利要求11所述的装置,其中所述装置包括集成电路装置。
23.根据权利要求11所述的装置,其中所述3D GPU丢弃所述多个顶点中映射到与所述多个顶点中的至少一个其它顶点相同的像素位置的至少一个顶点。
24.一种使用三维图形处理单元3D GPU在图形渲染期间丢弃顶点的装置,包括:
用于获得指示当前顶点在位于待渲染的二维2D参数曲线上的多个顶点中的顺序位置的索引值的装置,其中,所述索引值是从0到N的整数值;
用于使用呈现所述待渲染的2D参数曲线的一个或多个数学函数以及作为索引值的函数而计算的一个或多个变量,确定所述多个顶点中的每一者在显示器坐标空间中的位置坐标的装置;
用于计算第一顶点的位置坐标与第二顶点的位置坐标之间的第一斜率的装置;
用于计算第二顶点的位置坐标与第三顶点的位置坐标之间的第二斜率的装置;以及
用于在经计算的所述第一斜率和所述第二斜率大体上相同时,丢弃第一顶点、第二顶点、第三顶点中之一的装置。
25.根据权利要求24所述的装置,还包括:
用于将所述多个顶点中的第四顶点的第一位置坐标与所述多个顶点中的第五顶点的第二位置坐标进行比较的装置,其中所述第四顶点紧在所述第五顶点之前;且
用于在所述第一和第二位置坐标大体上相同时丢弃所述第五顶点的装置。
26.根据权利要求25所述的装置,其中:
用于将所述多个顶点中的第六顶点的第三位置坐标与所述第二位置坐标进行比较的装置,其中所述第五顶点紧在所述第六顶点之前;且
用于在所述第二和第三位置坐标大体上相同时丢弃所述第六顶点的装置。
27.根据权利要求26所述的装置,其进一步包括:
用于在所述第一和第二位置坐标并不大体上相同时输出所述第五顶点的位置坐标的装置;且
用于在所述第二和第三位置坐标并不大体上相同时同时输出所述第六顶点的位置坐标的装置。
28.根据权利要求24所述的装置,其中用于丢弃所述第一顶点、第二顶点、第三顶点中之一的装置包括用于丢弃大体上位于由先前顶点和后续顶点形成的直线上的至少一个顶点的装置。
29.根据权利要求24所述的装置,其中用于丢弃所述第一顶点、第二顶点、第三顶点中之一的装置包括:
用于在所述第一和第二所计算斜率大体上相等时丢弃所述第二顶点的装置。
30.根据权利要求29所述的装置,还包括:
用于将所述第一顶点的所述位置坐标与所述第二顶点的所述位置坐标进行比较的装置;且
用于在所述第一和第二位置坐标大体上相同时丢弃所述第二顶点的装置。
31.根据权利要求24所述的装置,还包括用于渲染所述曲线以将所述曲线呈现到显示器的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/331,273 | 2008-12-09 | ||
US12/331,273 US8269775B2 (en) | 2008-12-09 | 2008-12-09 | Discarding of vertex points during two-dimensional graphics rendering using three-dimensional graphics hardware |
PCT/US2009/067000 WO2010077612A2 (en) | 2008-12-09 | 2009-12-07 | Discarding of vertex points during two-dimensional graphics rendering using three-dimensional graphics hardware |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102227752A CN102227752A (zh) | 2011-10-26 |
CN102227752B true CN102227752B (zh) | 2015-07-08 |
Family
ID=42034636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980148123.7A Active CN102227752B (zh) | 2008-12-09 | 2009-12-07 | 使用三维图形硬件的二维图形渲染期间的顶点丢弃 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8269775B2 (zh) |
EP (1) | EP2366173A2 (zh) |
JP (1) | JP5270004B2 (zh) |
KR (1) | KR101337758B1 (zh) |
CN (1) | CN102227752B (zh) |
TW (1) | TW201033937A (zh) |
WO (1) | WO2010077612A2 (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0913170D0 (en) * | 2009-07-28 | 2009-09-02 | Advanced Risc Mach Ltd | Graphics processing systems |
US9324175B2 (en) * | 2009-09-11 | 2016-04-26 | Nvidia Corporation | Memory coherency in graphics command streams and shaders |
EA023320B1 (ru) * | 2010-05-27 | 2016-05-31 | Лэндмарк Графикс Корпорейшн | Способ и система для визуализации значений каротажной диаграммы скважины |
GB201103698D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphics processing |
GB201103699D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphic processing |
US20120293528A1 (en) * | 2011-05-18 | 2012-11-22 | Larsen Eric J | Method and apparatus for rendering a paper representation on an electronic display |
US8976188B1 (en) | 2012-04-20 | 2015-03-10 | Google Inc. | Optimized data communication system and method for an image rendering system |
US9330495B2 (en) * | 2012-08-09 | 2016-05-03 | Qualcomm Incorporated | Extending DX11 GPU for programmable vector graphics |
EP2750109B1 (en) | 2012-12-28 | 2021-07-07 | Dassault Systèmes | Tessellation of a parameterized 3D modeled object |
EP2750108B1 (en) * | 2012-12-28 | 2019-05-01 | Dassault Systèmes | Parameterizing a 3D modeled object for tessellation |
US20140192052A1 (en) * | 2013-01-09 | 2014-07-10 | Advanced Micro Devices, Inc. | 2d rendering on 3d graphics hardware |
US9269179B2 (en) * | 2013-03-15 | 2016-02-23 | Nvidia Corporation | System, method, and computer program product for generating primitive specific attributes |
US9401034B2 (en) | 2013-04-30 | 2016-07-26 | Microsoft Technology Licensing, Llc | Tessellation of two-dimensional curves using a graphics pipeline |
CN103605774A (zh) * | 2013-11-29 | 2014-02-26 | 珠海金山网络游戏科技有限公司 | 一种顶点动画的数据压缩方法 |
US9305326B2 (en) | 2013-12-26 | 2016-04-05 | Industrial Technology Research Institute | Apparatus and method for tile elimination |
US9495767B2 (en) * | 2014-05-15 | 2016-11-15 | Google Inc. | Indexed uniform styles for stroke rendering |
US9721363B2 (en) | 2014-05-19 | 2017-08-01 | Google Inc. | Encoding polygon data for fast retrieval and rendering |
US9858708B2 (en) * | 2014-09-10 | 2018-01-02 | Microsoft Technology Licensing, Llc | Convex polygon clipping during rendering |
US9626733B2 (en) * | 2014-11-24 | 2017-04-18 | Industrial Technology Research Institute | Data-processing apparatus and operation method thereof |
CN106296564B (zh) * | 2015-05-29 | 2019-12-20 | 展讯通信(上海)有限公司 | 嵌入式soc片上系统 |
US10347016B2 (en) * | 2016-01-12 | 2019-07-09 | Monotype Imaging Inc. | Converting font contour curves |
CN105809722B (zh) * | 2016-03-02 | 2018-08-28 | 广东财经大学 | 一种确定二维矢量图形渲染开销质量比的方法 |
CN105787979B (zh) * | 2016-03-02 | 2018-08-28 | 广东财经大学 | 一种优化二维矢量图形渲染性能的方法 |
CN107818069B (zh) * | 2016-09-12 | 2021-10-01 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
WO2018071041A1 (en) * | 2016-10-14 | 2018-04-19 | Hewlett-Packard Development Company, L.P. | Rebuilding three-dimensional models to provide simplified three-dimensional models |
CN107221020B (zh) * | 2017-05-27 | 2021-04-16 | 北京奇艺世纪科技有限公司 | 一种文字纹理绘制方法及装置 |
CN108153305A (zh) * | 2017-12-18 | 2018-06-12 | 深圳市奇虎智能科技有限公司 | 地图轨迹绘制方法及装置 |
US10936792B2 (en) | 2017-12-21 | 2021-03-02 | Monotype Imaging Inc. | Harmonizing font contours |
CN108320315A (zh) * | 2018-02-05 | 2018-07-24 | 世纪龙信息网络有限责任公司 | 视图切换方法、装置、计算机设备和存储介质 |
KR20190117287A (ko) * | 2018-04-06 | 2019-10-16 | 삼성전자주식회사 | 중복 포인트 처리 방법 및 장치 |
CN108874385A (zh) * | 2018-06-28 | 2018-11-23 | 北京酷我科技有限公司 | 一种能量守恒双摆球的动画效果算法 |
CN108845859A (zh) * | 2018-06-28 | 2018-11-20 | 北京酷我科技有限公司 | 一种弧线变速运动的变速值的生成算法 |
CN112419463B (zh) * | 2020-12-04 | 2024-01-30 | Oppo广东移动通信有限公司 | 一种模型数据处理方法、装置、设备及可读存储介质 |
CN113052002B (zh) * | 2021-02-05 | 2024-05-14 | 广州八爪鱼教育科技有限公司 | 筛选笔迹采样点的方法、装置、设备及存储介质 |
CN114187397B (zh) * | 2021-12-06 | 2023-03-21 | 完美世界(北京)软件科技发展有限公司 | 虚拟毛发渲染方法、装置、介质、电子设备及程序产品 |
CN115712580B (zh) * | 2022-11-25 | 2024-01-30 | 格兰菲智能科技有限公司 | 内存地址分配方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101116111A (zh) * | 2004-12-21 | 2008-01-30 | 高通股份有限公司 | 使用3d光栅化算法的2d/3d线条渲染 |
US7412362B2 (en) * | 2005-05-18 | 2008-08-12 | Microsoft Corporation | River modeling |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321770A (en) * | 1991-11-19 | 1994-06-14 | Xerox Corporation | Method for determining boundaries of words in text |
JP2646476B2 (ja) * | 1992-09-11 | 1997-08-27 | 和男 寅市 | ロゴ・イラストデ−タ入力出力装置と入力出力方法 |
JP3075023B2 (ja) * | 1993-07-23 | 2000-08-07 | 松下電器産業株式会社 | 3次元形状データの処理方法 |
US5613052A (en) * | 1993-09-02 | 1997-03-18 | International Business Machines Corporation | Method and apparatus for clipping and determining color factors for polygons |
JP3255549B2 (ja) | 1995-01-31 | 2002-02-12 | 松下電器産業株式会社 | 図形処理方法 |
JPH0922459A (ja) * | 1995-07-06 | 1997-01-21 | Canon Inc | 図形処理方法及び装置 |
US5999189A (en) * | 1995-08-04 | 1999-12-07 | Microsoft Corporation | Image compression to reduce pixel and texture memory requirements in a real-time image generator |
JPH09282080A (ja) * | 1996-04-16 | 1997-10-31 | Canon Inc | 情報入力方法とその装置 |
JPH10191020A (ja) * | 1996-12-20 | 1998-07-21 | Canon Inc | 被写体画像切出し方法及び装置 |
JPH10198333A (ja) * | 1997-01-09 | 1998-07-31 | Fujitsu Ltd | アウトライン文字描画装置 |
JP2957511B2 (ja) | 1997-03-28 | 1999-10-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | グラフィック処理装置 |
US6219070B1 (en) * | 1998-09-30 | 2001-04-17 | Webtv Networks, Inc. | System and method for adjusting pixel parameters by subpixel positioning |
US6483509B1 (en) * | 1999-04-09 | 2002-11-19 | International Business Machines Corp. | Curve contour smoothing |
JP4332934B2 (ja) | 1999-06-17 | 2009-09-16 | 株式会社セガ | アンチエイリアシング方法及びこれを用いた画像処理装置 |
GB9921777D0 (en) | 1999-09-16 | 1999-11-17 | Koninkl Philips Electronics Nv | Method and apparatus for handling translucency in 3d graphics |
US6636218B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Title-based digital differential analyzer rasterization |
US6633297B2 (en) * | 2000-08-18 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | System and method for producing an antialiased image using a merge buffer |
US6819332B2 (en) * | 2001-02-27 | 2004-11-16 | 3Dlabs Inc. Ltd. | Antialias mask generation |
US6731300B2 (en) * | 2001-05-18 | 2004-05-04 | Sun Microsystems, Inc. | Efficient anti-aliased dot rasterization |
US6768491B2 (en) * | 2001-12-21 | 2004-07-27 | Ati Technologies Inc. | Barycentric centroid sampling method and apparatus |
EP1447774B1 (en) * | 2003-02-13 | 2018-03-07 | ATI Technologies Inc. | Method and apparatus for sampling on a non-power-of-two pixel grid |
US7006110B2 (en) * | 2003-04-15 | 2006-02-28 | Nokia Corporation | Determining a coverage mask for a pixel |
JP2006190049A (ja) * | 2005-01-05 | 2006-07-20 | Fujitsu Ltd | 頂点削減図形描画方法および装置 |
JP4327105B2 (ja) | 2005-01-25 | 2009-09-09 | 株式会社ソニー・コンピュータエンタテインメント | 描画方法、画像生成装置、および電子情報機器 |
JP4710029B2 (ja) * | 2005-05-17 | 2011-06-29 | 株式会社国際電気通信基礎技術研究所 | 幾何図形データ処理装置、幾何図形データ処理方法及び幾何図形データ処理プログラム |
US7456846B1 (en) * | 2005-06-03 | 2008-11-25 | Nvidia Corporation | Graphical processing system, graphical pipeline and method for implementing subpixel shifting to anti-alias texture |
US7652677B2 (en) * | 2006-08-03 | 2010-01-26 | Qualcomm Incorporated | Graphics system employing pixel mask |
US7944442B2 (en) * | 2006-09-26 | 2011-05-17 | Qualcomm Incorporated | Graphics system employing shape buffer |
US8203564B2 (en) * | 2007-02-16 | 2012-06-19 | Qualcomm Incorporated | Efficient 2-D and 3-D graphics processing |
-
2008
- 2008-12-09 US US12/331,273 patent/US8269775B2/en not_active Expired - Fee Related
-
2009
- 2009-12-07 EP EP09799787A patent/EP2366173A2/en not_active Withdrawn
- 2009-12-07 KR KR1020117015897A patent/KR101337758B1/ko active IP Right Grant
- 2009-12-07 JP JP2011540806A patent/JP5270004B2/ja not_active Expired - Fee Related
- 2009-12-07 WO PCT/US2009/067000 patent/WO2010077612A2/en active Application Filing
- 2009-12-07 CN CN200980148123.7A patent/CN102227752B/zh active Active
- 2009-12-09 TW TW098142125A patent/TW201033937A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101116111A (zh) * | 2004-12-21 | 2008-01-30 | 高通股份有限公司 | 使用3d光栅化算法的2d/3d线条渲染 |
US7412362B2 (en) * | 2005-05-18 | 2008-08-12 | Microsoft Corporation | River modeling |
Non-Patent Citations (1)
Title |
---|
DAVID H DOUGLAS,THOMAS K PEUCKER.ALGORITHMS FOR THE REDUCTION OF THE NUMBER OF POINTS REQUIRED TO REPRESENT A DIGITIZED LINE OR ITS CARICATURE.《THE CANADIAN CARTOGRAPHER》.1973,第10卷(第2期), * |
Also Published As
Publication number | Publication date |
---|---|
WO2010077612A3 (en) | 2010-10-28 |
TW201033937A (en) | 2010-09-16 |
JP5270004B2 (ja) | 2013-08-21 |
EP2366173A2 (en) | 2011-09-21 |
KR101337758B1 (ko) | 2013-12-06 |
US20100141659A1 (en) | 2010-06-10 |
WO2010077612A2 (en) | 2010-07-08 |
KR20110102450A (ko) | 2011-09-16 |
CN102227752A (zh) | 2011-10-26 |
JP2012511783A (ja) | 2012-05-24 |
US8269775B2 (en) | 2012-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102227752B (zh) | 使用三维图形硬件的二维图形渲染期间的顶点丢弃 | |
KR101240815B1 (ko) | 그래픽 렌더링을 위한 멀티-스테이지 테셀레이션 | |
US9177351B2 (en) | Multi-primitive graphics rendering pipeline | |
TWI552109B (zh) | 一種使用誤差項之保守格柵化基元的方法、非暫時性電腦可讀儲存媒體及系統 | |
US9619853B2 (en) | GPU-accelerated path rendering | |
EP3489907B1 (en) | Shader program execution techniques for use in graphics processing | |
EP3180773B1 (en) | Bandwidth reduction using texture lookup by adaptive shading | |
US20170249779A1 (en) | Start node determination for tree traversal for shadow rays in graphics processing | |
US10540789B2 (en) | Line stylization through graphics processor unit (GPU) textures | |
CN104520901A (zh) | 具有虚线模式的路径的gpu加速再现 | |
CN105830125A (zh) | Gpu加速的路径再现 | |
CN104541305A (zh) | Gpu加速的路径再现 | |
EP3420537B1 (en) | Single pass bounding volume hierarchy rasterization | |
WO2016093990A1 (en) | Processing unaligned block transfer operations | |
CN105144244A (zh) | 用于基于瓦片的渲染器的查询处理 | |
CN113256764A (zh) | 一种光栅化装置、方法及计算机存储介质 | |
CN108604386A (zh) | 用纹理单元中的反馈来进行多步纹理处理 | |
CN111127620B (zh) | 一种生成半球域采样模式的方法、装置及计算机存储介质 | |
CN118229507A (zh) | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |