首页> 中国专利> 使用几何着色器的镶嵌引擎的系统、方法及计算机程序产品

使用几何着色器的镶嵌引擎的系统、方法及计算机程序产品

摘要

本发明揭露提供镶嵌化基元数据至几何着色器的系统、方法及计算机程序产品。该方法包含:基于原顶点组及原连结数据组,计算镶嵌化顶点组及经计算连结数据组;基于该原顶点组及该镶嵌化顶点组,产生经计算顶点数据;接收该经计算连结数据组;基于该经计算连结数据组,请求经计算顶点数据的子集;以及处理由该经计算顶点数据的子集定义的基元。本发明揭露之该系统及该产品系完成与上述方法相似的结果。

著录项

  • 公开/公告号CN102047238A

    专利类型发明专利

  • 公开/公告日2011-05-04

    原文格式PDF

  • 申请/专利权人 先进微装置公司;

    申请/专利号CN200980119831.8

  • 发明设计人 V·戈尔;

    申请日2009-05-27

  • 分类号G06F15/16(20060101);

  • 代理机构11314 北京戈程知识产权代理有限公司;

  • 代理人程伟;胡冰

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 02:13:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-10-16

    授权

    授权

  • 2011-06-15

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20090527

    实质审查的生效

  • 2011-05-04

    公开

    公开

说明书

技术领域

一般而言,本发明系有关于绘图处理单元中的最佳化镶嵌化操作。

背景技术

绘图处理单元(GPU)为特定目的之用于绘图处理操作的最佳化集成电路。绘图处理单元通常整合于计算装置(如个人计算机、描绘场(rendering farm)或服务器、手持装置、数字电话等)之中,该计算装置系用于执行具有高难度绘图处理需求之应用程序,例如电视游戏应用程序。

在大部分现今的GPU执行中,绘图操作的处理通常分散成数种功能性单元。典型地,至绘图处理单元的输入的形式为顶点组以及一些连结数据,该连结数据系确认顶点如何彼此互相连接。与顶点组的连结数据耦合的顶点组定义几何基元。通常来说,几何基元的选择为三角形,该三角形由三顶点及三边缘定义,该边缘以连结数据呈现。

如同各几何基元由用于描绘的绘图处理单元处理,各顶点由顶点着色器处理。顶点着色器通常用于进行应用于各顶点的运算。该等运算包含转换运算及光影运算。由于该等运算的结果,关于经计算顶点位置的数据、顶点中的基元颜色,以及用于纹理映像的顶点中的纹理坐标通常能予以计算。

进行对个顶点的控制后,管线的外加阶段可对全体的基元进行运算。该阶段通常关于几何着色器,且应用绘图技术至可能造成外加基元的创造的全部基元。举例来说,几何着色器可以应用再定位顶点组的位移映像,或应用毛皮及鳍技术(fur and fin techniques)。

在几何着色器阶段,输出通常被传送至扫描场解析器以转换成二维图像,以及由像素着色器进行进一步提升。

为了提升待呈现对象的外观之目的,几何着色器进行的技术通常造成外加基元的创造。藉由使用位移映像,例如,产生外加基元以提供外加顶点,该外加顶点接着根据纹理位映像(texture bitmap)予以移动。一般而言,在该技术的执行中使用越多基元,将显示的最终对象会越柔顺及越逼真。然而,提供过多的顶点会压制顶点着色器及几何着色器,而且无法造成显著改善的待呈现对象,尤其是,当呈现的对象配置于距观察平面非常远的距离。

先前的执行系藉由镶嵌引擎以在顶点着色器阶段之前快速增加基元数量。举例来说,Buchner等人共同拥有的美国专利申请公开第2004/0085312号(申请号:10/287,143)的全部于此并入参考,并揭露一种用于进行该镶嵌化的方法及装置。然而,先前的执行仅允许输出从镶嵌引擎至经处理的顶点着色器,接着传输至扫描场解析器以呈现至显示器。若使用先前的执行的开发者欲藉由镶嵌化基元增加基元计数,接着经由几何着色器执行镶嵌化基元,必须将镶嵌化输出储存于内存的某处。开发者接着将需要再执行镶嵌化数据上的绘图处理单元管线,以使进行其对镶嵌化数据的控制。

因此,当处理几何着色器中的镶嵌化数据时,需要改进的技术以降低描镶嵌化造成的绘成本。

发明内容

本发明的具体实施例包含一种提供镶嵌化基元数据至几何着色器的方法。该方法包含:基于原顶点组及原连结数据组,在镶嵌引擎中计算镶嵌化顶点组及经计算连结数据组;基于该原顶点组及该镶嵌化顶点组,在顶点着色器中产生经计算顶点数据;在该几何着色器中接收该经计算连结数据组;基于该经计算连结数据组,在该几何着色器请求该经计算顶点数据的子集;以及处理由该经计算顶点数据的子集定义的基元。

本发明的具体实施例包含一种用于提供镶嵌化基元数据至几何着色器之绘图处理单元。该绘图处理单元包含:镶嵌引擎,基于原顶点组及原连结数据组计算镶嵌化顶点组及经计算连结数据组;顶点着色器,基于该原顶点组及该镶嵌化顶点组产生经计算顶点数据;以及几何着色器,接收该经计算连结数据组,基于该经计算连结数据组请求该经计算顶点数据的子集,以及处理由该经计算顶点数据的子集定义的基元。

本发明的具体实施例包含一种计算机程序产品,该计算机程序产品包含具有计算机程序逻辑之计算机可用媒介,该计算机程序逻辑记录于该计算机可用媒介上,该计算机程序逻辑用于使处理器提供镶嵌化基元数据至几何着色器。该计算机程序逻辑包含数据及/或指令,该数据及指令使该处理器:基于原顶点组及原连结数据组,在镶嵌引擎中计算镶嵌化顶点组及经计算连结数据组;基于该原顶点组及该镶嵌化顶点组,在顶点着色器中产生经计算顶点数据;在几何着色器中接收该经计算连结数据组;基于该经计算连结数据组,在该几何着色器中请求该经计算顶点数据的子集;以及处理由该经计算顶点数据的子集定义的基元。

本发明的详细特性及优点以及本发明的各种具体实施例的结构及操作,配合附图详细说明于下述中。须注意的是:本发明不受限于此处所述的特定实施例。此处呈现的该等具体实施例仅为例示性说明之目的。基于此处包含的教示,其它具体实施例对本技术领域具通常知识者而言为清楚的。

附图说明

此处并入并构成部分的说明之附图、本发明的例示性具体实施例及其叙述,进一步提供以解释本发明的原则及使本技术领域具通常知识者可以制造及使用本发明。

图1为典型的绘图处理器管线之图示;

图2为根据本发明具体实施例的绘图处理器管线与镶嵌引擎的方块图;

图3为根据本发明具体实施例之最佳化绘图处理器管线与该管线内的镶嵌引擎之方块图;

图4为根据本发明实施例之绘图处理器管线的数个阶段之间的通信的图示;

图5为根据本发明实施例之具有镶嵌引擎的绘图处理器管线通过几何着色器提升处理之流程图;

图6绘示本发明实施例可实作的示范计算机系统;

图7本发明实施例可实作之计算机系统中的接口层的例示范例各层的概念的图示。

本发明的详细特性及优点以及本发明的各种具体实施例的结构及操作,配合附图详细说明于下述中。须注意的是:本发明不受限于此处所述的特定实施例。此处呈现的该等具体实施例仅为例示性说明之目的。基于此处包含的教示,其它具体实施例对本技术领域具通常知识者而言为清楚的

具体实施方式

下列本发明的详细说明系配合与本发明一致且绘示例示性实施例之图示。其它实施例亦为可亦可基于不同观点与应用,在不悖离本创作之精神下进行各种修饰与变更。因此,详细说明并不限制本发明。反之,本发明的范围由请求的权利要求定义。

对本技术领域具通常知识者而言,清楚的是:下述本发明可以软件、硬件、韧体及/或图示中绘示的整体的具体实施例完成。完成本发明的任何以硬件的特定控制的软件编码并不限制本发明。因此,下述本发明的操作方式将附带以下了解:对本文所陈述的具体实施例的修饰、变化皆为可能的。此外,对本技术领域具通常知识者而言,清楚的亦是:各具体实施例的模拟、合成及/或制造可以部分地经由计算机可读取编码(如上述)的使用完成,该计算机可读取编码包含常见的程序语言(如C or C++)、包含Verilog HDL,VHDL,Altera HDL(AHDL)等之硬件描述语言(HDL),或其它市面上的原理图截取工具(如电路图截取工具;circuit capture tools)。计算机可读取编码可配置在任何习知的计算机可用媒介,包含半导体、磁盘、光盘(如CD-ROM、DVD-ROM),以及作为计算机数据信号内嵌在计算机可用(如可读取)传输媒介(如载波或包含数字、光学或模拟型式媒介之任何其它媒介)中。藉此,编码可传输通过包含因特网之通信网路。须了解的是:系统及上述技术完成之功能及/或提供的结构可以再呈现内嵌在程序编码中的核心(如绘图处理器核心)中,并能传输至作为集成电路的部份之硬件。

图1绘示具有至少四个处理阶段之典型的绘图处理器(GPU)管线100。现今的绘图处理器管线100通常具有顶点着色器102阶段、几何着色器104阶段、扫描场解析器106阶段,以及像素着色器108阶段。于处理器管线100的使用中,绘图应用程序提供顶点着色器102一组顶点以及一组连结数据。此外,该组顶点及该组连结数据定义待呈现之对象或场景。

顶点着色器102可用于控制该组顶点以进行顶点运算。该等运算包含,例如,转换运算及光影运算。顶点着色器102使绘图应用程序可控制待呈现之对象,例如,藉由增加位移至各包含对象之顶点以移动场景中的对象。举例来说,若绘图应用程序欲沿x、y、z空间中的x-轴将待呈现之对象移动5单位,会使用顶点着色器计算+5位移量至各包含对象之顶点的x坐标。根据本发明之实施例,此等计算系藉由发布单指令多重数据(SIMD;single-instruction multiple-data)指令至绘图处理器管线100完成。

几何着色器104从顶点着色器获得受控制的顶点组及组连结数据以准备进一步控制。几何着色器104配置以运算简单几何形状,即所谓基元(primitive)。虽然基元可为任意组的顶点数据及该组中顶点间的连结数据时,但大部份几何着色器104执行主要在运算三角形。三角形由三顶点及该等三顶点间的连结数据定义。几何着色器104可用以,例如,应用再定位基元组中的顶点组或应用毛皮及鳍技术(fur and fin techniques)至基元组之位移映像(displacement map)。

应用上述技术几何着色器104的结果可为外加顶点及连结数据的创造,因此形成外加基元。例如,位移映像的应用程序可造成外加顶点及对应连结数据的产生,以移动顶点先前无法配置之对象之区域。

应用于顶点着色器102及几何着色器104的技术易受益于作为至几何着色器104之输入之较高的基元计数,以造成较柔顺、较复杂之对象。因此,有益的是:使用高等级表面(high-order surface)作为至绘图处理器管线100的输入,以从顶点着色器102及几何着色器104中的基元控制技术的应用获得更好的结果。

扫描场解析器106抓取最终顶点组及连结数据组,以及,基于观察平面,决定若从对应点的观点以二维呈现,包含顶点组及连结数据组之场景的表现样貌。典型地包含备用于二维显示装置上显示之图像元素(“像素”)组之待呈现场景,接着被传送至用于每个像素层级上的外加处理之像素着色器108。

如前述,为了图像质量的目的,当进行绘图处理器管线100中的基元的处理时,具有外加基元以共同工作是有益的。

图2为绘图处理器管线200的方块图图示。绘图处理器管线200包含顶点着色器203、几何着色器104、扫描场解析器106以及如绘图处理器管线100中的像素着色器108。绘图处理器管线亦包含镶嵌引擎202用于完成导入基于存在基元之外加基元的处理,即为“镶嵌化”之处理。

镶嵌引擎202可用于抓取顶点数据组及连结数据组,以及镶嵌产生之基元,以提供新的顶点数据组及新的连结数据组至顶点着色器102以进一步处理。Buchner等人共同拥有的美国专利申请公开第2004/0085312号(申请号:10/287,143)的全部于此并入参考,并揭露一种用于进行该镶嵌化的方法及装置。如同习知路径之中,镶嵌引擎202的输出接着被传送至顶点着色器203,使顶点着色器203可计算新的顶点组并将之储存于评估着色器204中。扫描场解析器106可接着从评估着色器204取回顶点,并继续先前的运算。

在本执行中,不可能对管线200中的镶嵌化输出几何着色器运算,因为几何着色器104没有任何可以取回镶嵌化输出的手段。因此,为了应用几何着色器104技术至镶嵌化数据,需要将镶嵌化数据储存在内存某处,并重启动使用镶嵌化数据作为至顶点着色器203的输入以通过至几何着色器104的数据之管线200。

具镶嵌化之最佳化绘图处理器管线

图3为根据本发明具体实施例之最佳化绘图处理器管线300之图示。管线300包含镶嵌引擎202、顶点着色器102、评估着色器204、几何着色器104、扫描场解析器106,以及像素着色器108。

根据本发明之实施例,镶嵌引擎202可用于从内存位置(图未示)取回(或接收)的顶点组及连结信息。根据本发明之实施例,如Buchner等人共同拥有的美国专利申请公开第2004/0085312号(申请号:10/287,143)(其全部于此并入参考)所述之一,应用镶嵌化技术可使镶嵌引擎产生镶嵌化基元。

根据本发明之实施例,镶嵌引擎202中的镶嵌化技术的应用造成用于原输入基元的原顶点以及镶嵌化顶点的输出。对应原顶点及镶嵌化顶点的镶嵌引擎产生的新连结信息。于本例示性具体实施例中,镶嵌化顶点作为重心坐标(barycentric coordinate)被输出。

如图3所示,来自镶嵌引擎202的输出被传输至几何着色器104及顶点着色器203两者。根据本发明之实施例,镶嵌引擎202传输经计算的包含原顶点及镶嵌化顶点之顶点组至顶点着色器203。根据本发明之实施例,顶点着色器203可用于计算经计算顶点组的顶点值。根据本发明之又一实施例,顶点着色器203可用于进行经计算顶点组的顶点上的外加顶点运算,例如转换运算。相关领域中熟习技术者应了解到,该顶点着色器的功能包含用于顶点层级运作的已知技术。当该经计算顶点组的所有改变均已实施,该经计算顶点组被写至评估着色器204。根据本发明的实施例,评估着色器204包含环状缓存,该经计算顶点组被写至该环状缓存。

镶嵌引擎202还直接传输全部顶点(原顶点及镶嵌化顶点两着)的连结数据至几何着色器104。根据本发明之实施例,几何着色器104接着可用于使用这连结数据以获得对应于由连结数据子集所定义的基元之顶点。根据本发明之实施例,几何着色器104取回来自评估着色器204的顶点数据,其中,该顶点数据已经藉由顶点着色器102储存。

图4的通信流程图进一步根据本发明之实施例之本过程。流程图400显示镶嵌引擎202、顶点着色器203、评估着色器204,以及几何着色器104之间的通信。于步骤402,在镶嵌化之后,镶嵌引擎202传输原及镶嵌化顶点组至顶点着色器203。于步骤404,计算经计算顶点组后,顶点着色器203将该经计算顶点组储存于评估着色器204中。再者,于步骤406,镶嵌引擎202直接传输全部顶点(原顶点及镶嵌化顶点两者)的经计算连结数据至几何着色器104。

根据本发明之实施例,于步骤408,具有在掌控中连结数据,几何着色器104接着请求对应于由连结数据所定义的基元之顶点组。评估着色器204接着提供被请求的顶点。于步骤410,几何着色器104接着可用于对被取回的顶点上的基元层级进行运算。

根据本发明之实施例,图5为绘示步骤之流程图500,藉由该等步骤图3的绘图处理器管线300可用于提供最佳化的镶嵌化图形。该方法开始于步骤501,并续行至判断是否已经请求镶嵌化的步骤502。

根据本发明之实施例,镶嵌化只在符合特定阀值时才得以应用程序。举例来说,该阀值可为从观察平面至呈现对象的距离、对象的曲率或其它准则。本技术领域具通常知识者将了解到:亦存在有其它阀值可最佳化呈现对象的复杂度,该呈现对象的复杂度系相对于绘图应用程序的使用者的能力所能分辨的复杂度。再者,根据本发明之实施例,基于如特定绘图处理器管线300的控制能力、显示区域及使用者喜好的考虑,调整阀值。于步骤502,若未请求镶嵌化,该法续行至步骤506而不进行镶嵌化。

于步骤504,在镶嵌引擎202中进行镶嵌化,且镶嵌引擎202计算镶嵌化顶点并产生定义全部顶点(原顶点及镶嵌化顶点两者)间的连接的新连结数据。根据本发明之实施例,于步骤506,顶点着色器203计算经调整的顶点数据。如前述,顶点着色器203接收图4的步骤402的来自于镶嵌引擎202的原及镶嵌化顶点组,于该镶嵌引擎202上,顶点着色器203可用于产生步骤404中经计算顶点组。根据本发明的实施例,该经计算顶点组是存储在评着色器204中。

该方法续行至步骤508,其中几何着色器104接收来自镶嵌引擎202的连结数据。于步骤510,几何着色器104确认对应于连结数据的基元,以及取回对应的顶点。根据本发明之实施例,几何着色器104取回来自评估着色器204的顶点,其中储存顶点着色器203已经储存该等顶点。几何着色器104接着进行取回的基元上的基元层级运算,且该方法结束于步骤512。

计算机系统执行

本发明的各种态样可由软件、韧体、硬件或其组合完成。图6绘示例示性的计算机系统600,其中本发明或本发明之部分可以计算机可读取编码方式完成。举例来说,图5的流程图绘示的方法可以在系统600中完成。本发明的各种具体实施例系依据该例示性的计算机系统600说明。在阅读本说明后,对本技术领域具通常知识者而言,如何使用其它计算机系统及/或计算机结构完成将变得清楚。

计算机系统600包含一个或多个处理器,例如处理器604。处理器604可为特定目的或通常目的处理器。处理器604连接至通信基础设施606。

计算机系统600亦包含主存储器608,较佳为随机存取内存(RAM),以及亦包含第二内存610。第二内存610可包含,例如,硬盘驱动器612、可抹除储存驱动器614,及/或记忆卡。可抹除储存驱动器614可包含软盘驱动器、磁带驱动器、光盘驱动器、闪存等。可抹除储存驱动器614以习知方式从可抹除储存单元618读取及/或写入至可抹除储存单元618。可抹除储存单元618包含软盘、磁带、光盘等,该可抹除储存单元618由可抹除储存驱动器614读取且写入至可抹除储存驱动器614。本技术领域具通常知识者将了解到的是,可抹除储存单元618包含其中储存有计算机软件及/或数据之计算机可用储存媒介。

在另一执行中,第二内存610可包含其它类似手段使计算机程序或其它指令可被加载至计算机系统600中。举例来说,该等手段包含可抹除储存单元622及接口620。该等手段的实例包含程序匣(program cartridge)及匣接口(如存在电视游戏器中之匣接口)、可抹除记忆芯片(如EPROM或PROM)及相关插槽,以及使软件及数据可被从可抹除储存单元622传送至计算机系统600之其它可抹除储存单元622及接口620。

计算机系统600亦可包含通信接口624。通信接口624使软件及数据可被传送于计算机系统600及外部装置之间。通信接口624可包含调制解调器、网络接口(如以太网络卡)、通信孔、PCMCIA插槽及卡等。经由通信接口624传送的软件及数据为可被通信接口624接收之电子、电磁、光学或其它信号之形式之信号。该等信号经由通信路径626被提供至通信接口624。通信路径626承载信号,并可用电线(wire)或缆线(cable)、光纤、电话线、行动电话连结、RF连结或其它通信管道执行。

在本文中,所使用的术语“计算机程序媒介”及“计算机可用媒介”通常指如可抹除储存单元618、可抹除储存单元622及设置于硬盘驱动器中的硬盘之媒介。被载送通过通信路径626的信号实行本文所述的逻辑。计算机程序媒介及计算机可用媒介亦可指内存,例如可为半导体(如DRAM等)之主存储器608及第二内存610。该等计算机程序产品为提供软件至计算机系统600的手段。

计算机程序(亦称为计算机控制逻辑或数据及/或指令)储存于主存储器608及第二内存610中。该等计算机程序执行时可使计算机系统600完成此处讨论的本发明。尤其是,计算机程序执行时可使处理器604完成本发明的处理,例如图5的流程图500绘示的方法中的步骤。因此,该等计算机程序代表计算机系统600的控制器。使用软件完成本发明时,软件可被储存于计算机程序产品中并可被加载至使用可抹除储存驱动器614、接口620、硬盘驱动器612或通信接口624的计算机系统600中。

本发明亦关于包含储存于计算机可用媒介上的软件之计算机程序产品。该软件执行于一或更多数据处理装置中时,会使数据处理装置进行此处所述或上述之运算、以及允许计算装置的合成及/或制造(如ASIC,或处理器)以进行此处所述的本发明实施例。本发明的具体实施例实行现今习知或未来的任何计算机可用或可读取媒介。计算机可用媒介的实例包含(但不限于)主储存器(如任何形式的随机存取内存)、第二储存器(如硬盘驱动器、软盘、CD ROMS、ZIP磁盘、磁带、磁式储存器、光学储存器、MEMS、奈米技术储存器等),以及通信媒介(如有线及无线通信网路、局域网络、广域网络、因特网等)。

应用程序层级执行

根据本发明之实施例,图7为绘示各层的概念的图示,藉由该等层的概念绘图应用程序702可用于与此处揭露的绘图硬件互动。应用程序702可发送讯息至数个应用程序接口(“API”),该应用程序接口包含绘图应用程序接口704及操作系统(“OS”)应用程序接口706。举例来说,绘图应用程序接口704包含Microsoft DirectX 10(由位在Washington的Microsoft Corporation ofRedmond开发),或Open Graphics Library(″OpenGL″;由位在Sunnyvale,California的Silicon Graphics,Inc开发)。

各种应用程序接口可进一步与绘图硬件制造商提供的概念层互动,以与特定的绘图硬件(即,绘图硬件驱动器708)互动。操作系统核心710接收各层的通信,接着发送适当讯息至绘图硬件712。

根据本发明之实施例,上述图3的绘图处理器管线300在绘图硬件712中执行。根据本发明之又一实施例,绘图硬件驱动器708及绘图应用程序接口704经最佳化以使用绘图处理器管线300的镶嵌化特性。

结论

虽然本发明的各种实施例已经过上述说明,但须了解到本发明仅由该等实施例方式呈现,但本发明不受限于此。本技术领域具通常知识者将了解到:该等实施例可在不脱离广义发明概念、申请专利范围定义的范围及其均等范围的原则及精神下,加以置换、修改以及变化。须了解的是,本发明不受限于该等实施例。本发明可应用于此处所述的任何组件操作。因此,本发明的广泛及范围不应受限于上述的例示性实施例,但应由如根据以下申请专利范围及其均等定义之。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号