首页> 中国专利> 绘图处理器中的保护带剪切系统、保护带剪切方法

绘图处理器中的保护带剪切系统、保护带剪切方法

摘要

本发明揭露了一种绘图处理器中的保护带剪切系统、保护带剪切方法。在一个系统实施例中,本系统包含一顶点处理器,将转换的顶点数据转换至整数显示空间并将该转换的顶点数据向绘图管道的下游传送;一保护带剪切模块,耦接到该顶点处理器;一保护带计算逻辑单元,耦接到该保护带剪切模块,该保护带剪切模块判断与该转换的顶点数据相应的基本图元是否需要执行剪切;以及基于此判断,将该基本图元传送至该保护带计算逻辑单元以执行保护带剪切。本发明所述的绘图处理器中的保护带剪切系统、保护带剪切方法,提供了高效、高速的计算,减少了复杂性。

著录项

  • 公开/公告号CN101261744A

    专利类型发明专利

  • 公开/公告日2008-09-10

    原文格式PDF

  • 申请/专利权人 威盛电子股份有限公司;

    申请/专利号CN200810084828.4

  • 发明设计人 翁国尹;许云杰;

    申请日2008-03-27

  • 分类号

  • 代理机构北京林达刘知识产权代理事务所;

  • 代理人刘新宇

  • 地址 中国台湾台北县

  • 入库时间 2023-12-17 20:45:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-10-13

    授权

    授权

  • 2008-10-29

    实质审查的生效

    实质审查的生效

  • 2008-09-10

    公开

    公开

说明书

技术领域

本发明涉及一种数据处理系统,尤其设计一种计算机图形系统和方法。

背景技术

计算机图形学是一门用计算机产生图形,图像或者其它绘画或者图示信息的科学和艺术。图形或者图像的产生通常被称为渲染。通常,在计算机三维绘图中,一个场景中代表对象表面(或者体积)的几何图形被翻译为像素(图像基本图元),存贮在帧缓存器中,然后显示于显示设备上。

一幅图形或者图像渲染时,当通过多种并行系统处理的时候,对象通过管道的多个阶段经历多种处理,这通常称为空间。请见图1,渲染过程10一般显示为从模型空间102到世界空间104,再到观察空间106,再到剪切空间108,再到显示空间110。在某些执行过程中,这个过程可能包含世界空间104,并且直接从模型空间102跳到观察空间106。简单地说,模型空间102代表原始的调整系统,因此那些将被包含在现实场景中的特定的对象尚未被转换。模型空间102为用户提供了一个通过使用模型转换以在显示器上处理对象的平台。通过计算机显示器的用户界面,用户可以尝试用各种态样、形状和/或尺寸对对象进行寻找方向或排序。更详细的说,通过用户界面,用户能够经由各种为对象或模型提供的模型转换来指挥主处理器执行修改,结果使模型空间102变为世界空间104。

更多转换(例如观察转换)从世界空间104提供给转换的对象的顶点,以促进发射和剪切,从而发展为观察空间106。在观察空间106(也称为拍摄空间)中,产生各种功能——例如添加、修改亮度和/或阴影,微小拒绝,创建观察册等,这形成一个判断:什么对象能被照相机拍到以及什么对象不能被照相机拍到。例如,一个具有近距离和远距离剪切面的平面截体的观察被典型的创建。渲染过的三维场景的对象,如果近距离和远距离剪切面和平面截体的边缘不相匹配,则忽略处理,以此减少剪切操作。

在剪切空间108中,在观察空间106中创建的平面截体的坐标被格式化(例如,通过透视划分)以简化剪切的复杂性,然后执行剪切。

一旦剪切执行,观察量中的基本图元就被影射到显示空间110并被渲染到显示设备上。请注意,在有些情况下,各种如前所述的处理都可以在不同的和/或其他的空间发生。

现在请见剪切空间108,应用了各种技术来减少需要剪切的基本图元的数量(比如三角)。常用的其中一个技术为保护带剪切技术。在保护带剪切中,观察空间106中创建的近距离和远距离剪切面维持不变,但是平面截体被拉伸,超过期望的视口。换句话说,共两个平面截体被创建:一个是保护带平面截体,另一个是较小视口平面截体。渲染和剪切的环境可以按照如下步骤来实现。如果三角位于视口之外,则完全丢弃。如果三角位于视口内,则不需剪切,直接渲染。而如果三角与视口和保护带平面截体交叉或者如果三角与近距离和远距离剪切面交叉,则执行剪切。

尽管保护带剪切提供了一个渲染的保守方法(例如,比起需要剪切的三角来,更多的三角直接通过),这种保守方法仍然要与剪切操作的减少相平衡。也就是说,大多数情况下,保护带剪切减少的时间间隔取决于主处理器(例如中央处理器,或者说CPU)通过接收部分位于显示屏之外的三角来执行的剪切、允许主处理器执行更为简单和快速的选择和剪切测试的时间间隔。然而,当三角将要被剪切时,处理是很费力和费时的。在传统的系统中,典型的做法是:通过在主处理器上执行多个不同算法中的一个算法来做剪切,比如科恩-萨瑟兰都算法(Cohen-Sutherland),萨瑟兰都-霍德格曼算法(Sutherland-Hodgman),威勒-阿瑟顿算法(Weiler-Atherton),帕特里克吉尔斯美勒特算法(Patrick Gilles Maillot)等等。这些算法通常需要完整地分类(比如,观察平面截体剪切码),与观察量剪切平面的交叉判断和顶点的每个参数(比如阿尔法参数、福戈参数等)的插补,这些都需要很强的计算步骤,对硬件的映射不太好。

发明内容

本发明提供了保护带剪切的系统与方法。简要地说,在架构中,本发明的其中一个方法的实施例包含:将转换后的顶点数据向绘图管道的下游传送;保护带剪切模块判断与转换后的顶点数据相应的基本图元是否需要剪切,以及基于上述判断执行保护保护带剪切和重心插补,以便保护带剪切计算逻辑单元定义新顶点的坐标。

本发明的其中一个保护带剪切系统的实施例包含:一顶点处理器,将转换后的顶点数据转换至整数显示空间数据,计算剪切码并将转换后的顶点数据传输至绘图管道的下游;以及一保护带剪切模块耦接到顶点处理器,一保护带计算逻辑单元耦接到该保护带剪切模块,该保护带剪切模块用来判断与该转换后的顶点数据相应的基本图元是否需要剪切,依据该判断,将该基本图元传输至该保护带计算逻辑单元,以执行保护带剪切。

本发明的其中一个保护带剪切系统的实施例包含:一状态机,接收状态数据和转换的顶点;一顶点索引缓冲器,耦接至该状态机;一顶点缓冲器,由该顶点索引缓冲器索引,该顶点缓冲器存储该转换的顶点;一顶点处理器,耦接至该顶点索引缓冲器,该顶点处理器产生顶点的剪切码,并对剪切后的基本图元的结果相应的顶点坐标的属性执行透视画法校正;一微小拒绝模块,依据该剪切码的值执行微小拒绝;一保护带剪切模块,依据该剪切码的值判断基本图元是否需要执行保护带剪切;以及一保护带剪切计算逻辑单元,响应于需要剪切的判断而剪切该基本图元;该保护带剪切计算逻辑单元还用来执行插补,以定义新剪切的顶点的坐标。

本发明所揭露的绘图处理器中的保护带剪切系统(简称为GB剪切系统)、保护带剪切方法,提供了一种快速、便捷、基于硬件的保护带剪切。在一个实施例中,由一个或多个固定点的计算逻辑单元(ALU)执行剪切,无须主处理器工作,与传统技术相比,加快了剪切处理速度。在这样的实施例中,剪切在显示空间执行,微小拒绝在剪切空间或显示空间执行。因为以专用硬件实现,本发明各个不使用主处理器的GB剪切系统的实施例提供了高效、高速的计算,减少了复杂性。

附图说明

图1为描述绘图处理系统中渲染图像的各种等同系统或空间的一个概念性的框图;

图2为本发明绘图处理系统中保护带剪切系统和方法的实施例;

图3为图2中绘图处理单元和保护带剪切系统实施例的示意图;

图4为图3所示保护带剪切系统实施例的部分组件的示意图;

图5至图7为描述图4所示保护带剪切系统的方法实施例的流程图。

具体实施方式

图2是绘图处理系统100的实施例,其中包含保护带剪切系统200的实施例。在有些情况下,绘图处理系统100可以被配置为一个计算机系统。绘图处理系统100可以包含显示设备202,由显示接口单元(DIU)204和本地存储器206(例如,可以包含显示缓冲器,纹理缓冲器,命令缓冲器等等)。在这里,本地存储器206也可以包含帧缓冲器或存储单元。本地存储器206通过存储接口单元(MIU)210耦接到绘图处理单元(GPU)214。在本实施例中,存储接口单元MIU 210,绘图处理单元GPU 214和显示接口单元DIU 204耦接到总线接口单元(BIU)218。在一个实施例中,总线接口单元BIU218可以兼容PCIE,并且可以使用绘图地址重映射表(GART),虽然会用到其它的存储器映射机制。绘图处理单元GPU 214包含GB剪切系统200,如下所述。虽然只是显示为绘图处理单元GPU214的一个部件,但在一些实施例中,GB剪切系统200可以包含如图所示的一个或者多个绘图处理系统100的其它组件。

总线接口单元BIU 218耦接到芯片组222(比如北桥芯片组)或者转换器。芯片组222包含接口电路,用来增强来自中央处理器(CPU)226(这里也称为主处理器)的信号,并将进出系统存储器224的信号与进出输入输出设备(I/O)(图中未示出)的信号分离出来。尽管在这里描述了PCIE总线协议,在某些实施例中,主处理器226和绘图处理单元GPU214之间可以采用其他一些连接和/或通信方式(比如PCI,专用高速总线等等)。系统存储器224也包含驱动软件250,通过使用CPU226传送通信指令或命令给绘图处理单元GPU214中的寄存器和指令流处理机。

在一些实施例中,还包含其它绘图处理单元,比如通过芯片组222经由PCIE总线协议耦接到图2中显示的组件。在一个实施例中,绘图处理系统100可以包含图2中显示的所有组件,还可以包含其中的几个和/或不同的组件。另外,在一些实施例中,还可以用到其他组件,例如耦接到芯片组222的南桥芯片组。

在某些特定的实施例中,GB剪切系统200用硬件实现,包含如下技术中的任何一个或者其组合,如本领域技术人员所知:一个具有逻辑门来实现数据信号逻辑功能的逻辑分立电路,一个具有相应逻辑门组合的专用集成电路(ASIC),一个可编程门阵列(PGA),一个现场可编程门阵列(FPGA),状态机等等。

图3为图2中绘图处理单元214和保护带(GB)剪切系统200实施例的示意图。在一些实施例中,还可以包含比图3中所示的组件多或者少。比如,每一个如下所述的模块或者单元都可以具有它自己的内部寄存器或者寄存器,图中未示出,可以是模块中独立使用,或者和其他模块共用。在一个实施例中,绘图处理单元214可以设置为管道架构,包含命令流处理器(CSP)302,执行单元池(EU)304,三角结构单元(TSU)306和GB剪切系统200,属性设置单元(ASU)308,范围和瓦片产生单元(STG)310,纹理先进先出单元(TFIFO)312,深度先进先出单元(ZFIFO)314,属性设置单元先进先出单元(ASU FIFO单元(AFIFO))316组成一体。

CSP 302提供状态数据(来自于驱动软件250),执行单元池(EU)304(比如顶点形状功能)提供交换的顶点数据(也可以来自于驱动软件250)给三角结构单元TSU306。在有些实施例中,顶点数据可以由固定功能顶点阴影处理器提供。基于所接收的数据,三角结构单元TSU306整合和设置基本图元(比如线,三角形,如多边形,三角带,扇形的组合基本图元等等)来空白剪切,以及为属性设置单元ASU308重新处理数据。例如,三角结构单元TSU306执行众所周知的任务:视口转换,微小拒绝,范围盒产生和剔除。另外,三角结构单元TSU306通过使用GB剪切系统200执行保护带剪切。

三角结构单元TSU 306将这些数据从上述的处理器提供给属性设置单元ASU 308,属性设置单元ASU 308为每个将被渲染(例如,通过像素级插补)的基本图元分别设置属性三角值(比如颜色、深度、透明度、模糊等)。这样的属性三角值被送到深度先进先出单元ZFIFO314和AFIFO单元316。例如,如果属性设置单元ASU 308包含Z(深度),属性三角值处理单元(例如ALU等)则与深度先进先出单元ZFIFO 314一起来执行此类计算,如本领域人员所知,在深度先进先出单元ZFIFO 314中写入这些三角值以便后续在Z-test单元中使用。属性设置单元ASU 308与AFIFO单元316协同动作,执行本领域人员所知的像素颜色和纹理属性三角值处理,以便在像素级上的进一步插补。属性设置单元ASU 308也将三角结构单元TSU边缘函数传递给STG 310,STG 310提供瓦片生成功能,使得数据对象分割为瓦片(例如8×8,16×16等),并传递至TFIFO单元312。

图4为图3所示保护带剪切系统200的实施例的部分组件的示意图。如前所述,在其中一个实施例中,GB剪切系统200为三角结构单元TSU 306的一部分,包含输入状态机(ISM)402、寄存器模块404、顶点索引缓冲器(VIB)406、顶点缓冲器(VB)408、顶点处理器410、基本图元汇编/微小拒绝(PATR)模块412(也被称为微小拒绝模块),保护带剪切模块(GBC)414、保护带顶点缓冲器(GBVB)416、保护带计算逻辑单元(GBALU)418、三角处理器(TRIPROC)420以及保护带属性输出状态机(OSM GBA)模块422。保护带属性输出状态机(OSM GBA)模块422输出保护带顶点属性的结果至属性设置单元ASU 308,以便进行进一步设置。图4中显示了属性设置单元ASU 308还可以包含其他组件,属性设置单元计算逻辑单元ASU ALU424将数据传送至STG 310、AFIFO单元316和深度先进先出单元ZFIFO314,如图3中所描述。保护带剪切系统200的有些实施例可以包含更少、更多或不同的组件。

一般来说,保护带剪切是在顶点坐标(和相关属性)依透视画法校正和映射到VP 410中的整数显示坐标后才执行的,使得线性内插匹配显示空间的需求。在一个实施例中,透视画法校正全部属性与XYZ坐标判断同步获得,可以理解为,一些顶点可稍后在GB ALU418中随着新顶点结果的计算值而获得剪切。因此,如随后将进一步讨论的,VP 410为至少两个硬件模块服务,他们称为VIB 406和GBC模块414。在一个实施例中,GBC模块414比设置在VP 410和VIB 406之间的标准阶段有更高的优先级,因此来自GBC模块414的与剪切操作相关的请求能够中断当前来自VIB 406的VP处理。

ISM 402用来同步执行单元池(EU)数据(例如状态、命令、转换的顶点数据)和CSP数据(例如状态、命令)。ISM 402将命令和状态数据传送至寄存器模块404,将转换的顶点数据传送至VIB 406。VIB 406将顶点数据写入到VB 408。VIB 406根据每个顶点在基本图元中的位置(例如带)来判断其参考数。当基本图元被拒绝或完成(若完成则传送至属性设置单元ASU308),在相同或实质相同的时间内,VIB 406更新(自己更新或依下游模块的请求更新)所有特定基本图元的所有顶点的参考数。当VB的任何一个输入释放时(比如,当所有基本图元都被拒绝或者都被传送至属性设置单元ASU 308时),VB 408接收从ISM 402传送来的顶点数据。

VP 410从VB 408(通过VIB406使用索引)接收剪切空间顶点数据,执行透视画法校正和视口转换,转换数据至整数显示空间。VP 410也产生顶点的剪切码,被下游各个模块用来判断是否包含微小拒绝或保护带剪切。并且,VP 410可将转换后的顶点数据传输至绘图管道的下游。在一个实施例中,VP 410包含管道(例如多阶段管道架构)。因此,在标准处理过程中,VP 410处理所有即将到来的VIB 406所需的全部顶点,并将数据传送至PATR模块412和GB C模块414。

由VP 410和VIB 406执行的标准处理一直进行,直到GBC模块414传送信号至VP 410表明收到一个剪切事件。一般地,响应于基于剪切操作的新顶点的产生,GBC模块414请求VP 410从VIB 406的处理中中断,XYZ顶点计算和属性透视画法校正被VP410重做(该VP 410重新计算顶点坐标和该重新计算的顶点坐标的剪切码,对与该重新计算的顶点坐标相应的属性执行一透视画法校正,并将该重新计算的顶点坐标影射至整数显示空间)。如上所示,VP 410通过将所有的当前数据临时存储于顶点缓冲器而完成如上各种任务,并即时服务GBC请求。待处理完GBC请求后,VIB406的处理继续进行。特别地,为了将要进行保护带剪切的基本图元,VP410从VIB406获取剪切空间数据,然后为剪切的基本图元产生新顶点。例如,当保护带剪切事件在后续管道阶段中产生时(比如GBC模块414的信号表明剪切事件产生),VP 410将数据(当前阶段处理所需的数据)从VIB 406中复制出来,临时存储于临时缓冲器,在一个实施例中,是存储于VP 410中。当服务GBC请求之后,VP 410存取此临时存储数据并继续处理VIB 406的数据。

VP 410处理过之后,PATR模块412对所有位于视口之外(由VP 410的剪切码表示)的顶点执行微小拒绝。可以使用一种或多种微小拒绝技术(在显示空间或剪切空间中),包括本领域所公知的:负W,剪切窗,Z近距离,Z远距离,剔除距离测试以及剪切面测试。

基本图元数据被传送至GBC模块414,其基于VP 410产生的剪切码判断是否需要保护带剪切,剪切码还向GBC模块414暗示了以保护带和视口部分为参照,基本图元顶点所处的位置。如果需要剪切,即传送顶点数据至GB VB 416并在GB ALU418中执行剪切计算。剪切后的三角传送至三角处理器420,在这里执行计算,例如决定性计算,范围盒,边缘函数,属性函数等本领域技术人员所知的方法。三角处理器420的输出提供至OSMGBA模块422,如上所述。OSM GBA模块422的输出(顶点属性)输出至属性设置单元计算逻辑单元ASU ALU 424,然后输出至STG 310和各种FIFO,如上所详述。属性设置单元ASUALU 424从OSM GBA模块422接收剪切后的(或称为被保护的)顶点属性(Z,颜色、纹理等),并计算三角值,以便在像素处理阶段执行进一步的插补。这样,属性设置单元计算逻辑单元ASU ALU 424将三角几何设置数据从三角处理器420传送到STG 310。属性三角值和任何状态信息都被写入深度先进先出单元ZFIFO 314和AFIFO单元316。

图5描述了图4所示保护带剪切系统的一个方法实施例的流程图,用200a表示。图6和图7分别详细描述方法200a的相关部分。GB剪切方法200a执行保护带剪切测试502。现进一步参照图6,602步骤,VIB 406从VB 408中存取显示空间数据,并在步骤604提供给VP 410。在其中一个实施例中,此类存取将在GBC模块414的下游模块变为空闲状态后开始。下列公式表示了VP410使用伪码产生剪切码的机制:

wclip_flag=(|w|<wnear)‖(|w|>wfar).

xyclip_flag=x0.exp>=GB_range‖y0.exp>=GB_range‖

x1.exp>=GB_range‖y1.exp>=GB_range‖

x2.exp>=GB_range‖y2.exp>=GB_range

简而言之,上述伪码为每一个顶点设置了剪切标志或剪切码,其对GBC模块414表明是否要进行保护带剪切。驱动软件250设置不同的wnear和wfar值,并将剪切空间中的深度范围设置为大于显示空间的z范围(znear,zfar)。GB_range与GB范围指数值(例如13,23)相对应。剪切空间数据(例如x0,y0等)被VIB406从VB 408中存取。请注意,VP 410执行浮点运算,每一个数字具有数值部分和指数部分。

作为保护带剪切测试步骤502的一部分,VIB 406还将显示空间数据传输至PATR模块412,见步骤606。据此,步骤608判断是否执行微小拒绝。PATR模块412通过给定基本图元(例如三角)的顶点的剪切码来判断。剪切码描述了顶点相对于保护带所处的位置,由如上所述的实施例的方法产生。另外,剪切码还对于随后的保留三角(比如没有被剪切处理所碰到)有用,用来控制新顶点的插补。下列伪码描述了PATR模块412执行处理的实施例:

If(wclip_flag|xyclip_flag)

      {

 Jump to GBC Module 414

      }

      Else

      {

Do trivial rejection using screen data from VIB 406

1.Negative W rejection,i.e.,if w0<=0 && w1<=0&& w2<=0

2.X/Y rejection against the viewport boundary

3.znear rejection,i.e.if z0<0 && z1<0 && z2<0

4.zfar rejection,i.e.if z0>zfar && z1>zfar && z2>zfar

   }

从上述伪码的第二部分可见,如果将要执行微小拒绝,在一个实施例中,微小拒绝的执行(步骤610)将基于顶点标志的设置,而顶点标志依据在二维空间的保护带的范围和来自VIB406的Z或W使用的显示空间数据的对比而产生。例如,如果三角的所有三个顶点都位于Z范围之外(Z<0),则此三角被拒绝。也就是说,如果所有的三个顶点均为负Z,即使上述伪码(与VP410的操作相应)所描述的情况为真而且三角位于保护带以内,此三角仍将被拒绝。应该注意的是,三角是不可见的,因为所有的三个顶点均为负Z。在其中一个实施例中,微小拒绝的实现包含:执行Z近距离测试。在Z近距离测试中,对于与各种顶点组合相应的三角段执行下列程序:

设顶点v0v1,v1v2,v2v0,在Z范围上产生剪切标志:

Need_Znear_Clipping=wclip_flag‖Z0<0‖Z1<0‖Z2<0

对于与PATR模块412相对应的上述伪码的第一部分来说,没有被微小拒绝的三角将执行保护带剪切(步骤504)。请见图7,更进一步描述了保护带剪切方法504。总的来说,为了保护带剪切,执行下列操作:

(a)如果全部三个顶点的w<0,则拒绝此三角(例如三角的W均为负W,则此三角为不可见,拒绝此三角。对Z也一样);

(b)执行xy-剪切(依据保护带边缘区域,由-w<x<w,-w<y<w定义,(依据xy-clip码),为每个XY剪切面(x=w,x=-w,y=w,y=-w));以及

(c)执行W-剪切(wnear<w<wfar,为每个W剪切面(w=wnear,w=wfar)。

更进一步说,GBC模块414从VB 408(通过VIB 406)接收顶点数据(将剪切的)(步骤702),在GB ALU 418中执行Z近距离剪切(步骤704)。

在Z近距离剪切中,每个顶点组合(v0v1,v1v2,v2v0)都依次被Z近距离平面所剪切。为了定义新的剪切后顶点的坐标,执行重心插补(由GB ALU 418执行重心插补)。以v1v2为例,下列伪码描述了一个示范性的流程(注意,参考下述输出缓冲器,在一个实施例中,参考GB VB 416,“r”代表源自边缘的两个顶点所产生的新顶点的比率,“r”也被重心插补以为其他属性(例如RGB)所用,包括XYZW):

1)If v1.z>0 && v2.z>0,put v1 into output buffer,goto 4)

If v1.z>0 && v2.z<0,put v1 into output buffer,goto 3)

If v1.z<0 && v2.z>0,goto 2)

If v1.z<0 && v2.z<0,goto 4)

2)swap v1,v2(interpolate from the inside vertex to theoutside vertex)

3)Ratio=v1.z/(v1.z-v2.z)

v.x=v1.x*(1-Ratio)+v2.x*Ratio

v.y=v1.y*(1-Ratio)+v2.y*Ratio

v.w=v1.w*(1-Ratio)+v2.w*Ratio

v.r0=v1.r0*(1-Ratio)+v2.r0*Ratio

v.r1=v1.r1*(1-Ratio)+v2.r1*Ratio

v.r2=v1.r2*(1-Ratio)+v2.r2*Ratio

put v into output buffer

4)Move to the next edge

在一个实施例中,在执行Z近距离剪切的同时,GB ALU 418执行XY剪切和W剪切(步骤706,708)。在执行上述Z近距离剪切的同时,个别剪切后的顶点存储于GB VB 416。如果这些顶点中的至少一个顶点位于视口内,这个顶点则位于保护带中,用以下表达式表示:-w<x<w,-w<y<w。如此一来,对于XY剪切,为每个顶点产生(比如由VP 410产生)剪切码,并产生新顶点(基于剪切程序)。在其中一个实施例中,每个顶点用下列4个位来描述剪切码(比如左,右,底,顶):

Bit0=(x<-w)

Bit1=(x>w)

Bit2=(y<-w)

Bit3=(y>w)

下面继续描述XY剪切程序,在其中一个实施例中,GB ALU418执行左、右、底、顶的剪切。在每个剪切阶段的过程中,使用一个或多个缓冲器(比如包含VB 416)来临时地存储顶点数据。例如,用一个缓冲器存储输入,用另一个缓冲器存储输出。举例来说,GB ALU 418执行下列伪码:

1)Fetch v1,v2 from input buffer in sequence.

2)If v1.Bit0==0 && v2.Bit0==0,put v1into output buffer,goto 5)

If v1.Bit0==0 && v2.Bit0==1,put v1into output buffer,goto 4)

If v1.Bit0==1 && v2.Bit0==0,goto 3)

If v1.Bit0==1 && v2.Bit0==1,goto 5)

3)swap v1,v2(always interpolate from the inside vertex tothe outs ide vertex

4)d1=v1.x+v1.w

d2=v2.x+v2.w

Ratio=d1/(d1-d2)

v.x=v1.x*(1-Ratio)+v2.x*Ratio

v.y=v1.y*(1-Ratio)+v2.y*Ratio

v.w=v1.w*(1-Ratio)+v2.w*Ratio

v.r0=v1.r0*(1-Ratio)+v2.r0*Ratio

v.r1=v1.r1*(1-Ratio)+v2.r1*Ratio

v.r2=v1.r2*(1-Ratio)+v2.r2*Ratio

compute v’s clipcode

put v into output buffer

5)If not swapped(v1,v2),v1move fbrward to v2

6)If v1 is the first one of input buffer,end.

Else v2 move forward to the next vertex in GB VB 416,goto2)

GB VB 416可以存储一系列的顶点(比如8个),这一系列的顶点由v0位于头部,各点连起来组成一个扇形,其伴随着保护带标志输出至三角处理器420。例如,可以用保护带标志来定义剪切后顶点的属性值的插补命令。请注意,虽然在以上描述中伪码为并行处理,但是W剪切和XY剪切可以按顺序执行。随后,执行三角汇编(比如,由GB ALU 418执行)。三角汇编之后,属性设置单元ASU 308的属性设置单元计算逻辑单元ASU ALU424执行属性插补。为了计算新三角的属性值,属性设置单元计算逻辑单元ASU ALU 424向GB VB 416请求比率,向VB 408请求属性。

图5至图7的流程图显示了保护带剪切系统200和相应的方法200a的架构、功能和/或操作的实施例。在这点上,每个方块代表一个或多个模块的各种功能。应当理解的是,其他可替代的装置、元件、功能、流程可以超出图5至图7所描述的范围。例如,图5中用两个方块相连接所表示的流程也可以部分为两个方块而连续的执行,或者有时也可以以倒序执行,这取决于所需的功能。

以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号