图元预处理和处理方法、图形处理方法及其处理器、装置制造方法及图纸

技术编号:8022234 阅读:186 留言:0更新日期:2012-11-29 04:28
本发明专利技术提供了图元预处理方法及处理方法、图形处理方法、图元预处理器及处理器、图形处理装置各一种。图元预处理方法含:模拟图元实际输出过程,获得该图元各顶点在高速缓存中的索引值,经重排序获得顶点索引序列表,给出该图元的需替换顶点数量。图元处理方法含:输出该图元,替换高速缓存中的顶点数据。图形处理方法含:按照图元串顺序,用图元处理方法依次处理每个图元。图元预处理器有模拟单元、索引值单元、重排序单元及顶点数量单元。图元处理器有输出单元、替换单元。图形处理装置有接收单元、图元预处理器、图元处理器。本发明专利技术无需设置传统高速缓存标示,节省了芯片面积,同时降低了芯片的设计复杂度和功耗。

【技术实现步骤摘要】

本专利技术涉及图形处理,特别涉及一种图元预处理方法及处理方法、一种图形处理以及一种图元预处理器及处理器、一种图形处理装置。
技术介绍
现在的用户对计算机应用程序的视觉效果要求越来越高,尤其是游戏类应用程序,常需要描绘复杂且精美的图形,仅一个场景往往就涉及大量的图形。这势必带来大量不间断的图形运算,相应地,对图形处理芯片的运算能力也要求越来越高。现有技术中使用图元作为图形绘制的基本单位。每个图元包含一个或多个顶点。比如一个点的图元就是一个顶点,一条线段的图元包含两个顶点,一个三角形的图元包含三个顶点,一个四边形的图元包含四个顶点,以此类推。图元可由绘图应用接口 (Application Programming Interface,API)标准定义。常用的绘图应用接口有开放式绘图函数库(Open Graphics Library, OpenGL)、Direct 3D (D3D)等。OpenGL 是一个跨编程语言、跨平台的编程接口,可独立于窗口系统和操作系统开发二维/三维的计算机绘图应用程序,以它为基础开发的应用程序可以十分方便地在各种平台间移植。D3D是微软公司的标准,可与不同的微软系统配合进行二维/三维的图形处理。任意一个复杂的图形都能被拆分成多个相对简单的图元。比如一个人的图形可以被拆成一个圆形代表头,一个大矩形代表躯干,四个小矩形代表四肢,其中圆形又是由无数个三角形图元组合而成的。为了方便绘制,会把一个复杂的图形尽量拆分成简单图元,比如三角形、四边形等。绘制一个图形,就是把组成该图形的各个图元绘制出来。这些图元的信息存储在内存(例如,DDR类型的内存)中。这些图元信息首先包括一张含全部顶点的索引表,该索引表给出各顶点对应数据的实际物理存储地址。其次包括各顶点的数据,另外还会给出图元信息表,表明每个图元是由哪几个顶点组成的。绘制图元的过程就是根据组成该图元的顶点索引信息,按其实际物理存储地址,到内存中读取相应的顶点数据进行图形绘制。由于内存读取速度的局限性,现有的3D图形芯片设计中,均采用顶点高速缓存的方式读取顶点数据,此技术被广泛应用。该技术把最近使用的顶点数据存放在一个高速缓冲存储器(Cache )中。高速缓冲存储器容量比内存小得多,仅能存储有限的数据,但其读取速度也同样比内存迅速许多,常用于存储在下一步很可能为处理器所用的数据。基于图形程序中顶点的空间局部性和时间局部性原理,读取前后的两个图元常会有共用的顶点,将这样的顶点加入高速缓存中,能加快下次读取相同顶点数据的时间。由于高速缓存的容量有限,无法存储所有的顶点数据,在高速缓存已满时,需按一定策略进行数据替换。所以,需要设置标示(Tag),以表明该顶点是否在高速缓存中。每当读取一个新的图元,需要把图元所属的顶点索引与高速缓存中的标示(Tag)做比较,如果相同则表示命中,该顶点数据在高速缓存中,可直接读取高速缓存。否则表示缺失,需要从片外的内存中取进缺失的顶点,替换掉高速缓存中的顶点,之后再读取高速缓存。比如某内存的容量可存储1024个顶点的数据,则每个顶点需要用10个比特表示(因2^=1024)0高速缓存的容量可存储8个顶点的数据,则每个顶点仅需要用3个比特即可表示(因23=8),通常是用最低的3位表示。即顶点0在内存中表示为0000000000,在高速缓存中表示为最低的3位000。顶点I在内存中表示为0000000001,在高速缓存中表示为001。顶点7在内存中表示为0000000111,在高速缓存中表示为111。问题是,顶点8在内存中表示为0000001000,而在高速缓存中用最低的3位表示也同样为000。此时,将无法区分该顶点到底是表示顶点0,还是顶点8。所以,需要为各顶点设置标示(Tag),用来保存各顶点的高位。即顶点0的Tag为0000000,而顶点8的Tag为0000001。通过比较Tag值,能确定某顶点是否已在高速缓存中。所以高速缓存中除了要保存顶点数据外,还要保存顶点的标示(Tag),占用高速缓存的存储空间,同时还要增加大量控制逻辑,增加了芯片设计复杂度、芯片面积和芯片功耗。
技术实现思路
本专利技术所要解决的技术问题是无需设置高速缓存中的标示,就可实现绘制图形, 节省图形处理芯片的面积,并降低图形处理芯片的设计复杂度和功耗。为了解决上述问题,本专利技术提供了一种图元预处理方法,包括模拟该图元的实际输出过程,以获得实际输出该图元时高速缓存中顶点和该图元各顶点进入高速缓存的先后顺序;根据所述实际输出该图元时高速缓存中顶点,获得该图元各顶点在高速缓存中的索引值;所述高速缓存中的索引值与所述高速缓存中顶点之间存在—对应关系;按照所述该图元各顶点进入高速缓存的先后顺序,将该图元的各顶点进行重排序,获得顶点索引序列表;所述顶点索引序列表存储各顶点数据的索引,根据所述索引可得到该顶点数据的实际物理地址,获取该顶点的数据;基于实际输出该图元时高速缓存中的顶点和下一图元的顶点,给出该图元的需替换顶点数量n,n为自然数。可选的,所述的重排序包括取该图元的任一顶点为当前顶点;重复以下步骤,直至该图元各顶点均被处理若顶点索引序列表中的顶点数量小于高速缓存可容纳的顶点数量,则将其加入顶点索引序列表;否则,若当前顶点不在实际输出该图元的上一图元时的高速缓存中,将其加入顶点索引序列表;若加入当前顶点后的顶点索引序列表中的顶点数量大于或等于高速缓存可容纳的顶点数量,则判断实际进行顶点替换时最早存储进高速缓存的顶点是否为该图元的顶点;若是,则将最早存储进高速缓存中的顶点加入顶点索引序列表,将次早存储进高速缓存中的顶点调整为最早存储进高速缓存中的顶点;重复本步骤直至实际进行顶点替换时最早存储进高速缓存的顶点不是该图元的顶点为止。将该图元的下一顶点调整为当前顶点。可选的,所述的加入顶点索引序列表至少包括当顶点索引序列表为空时,该顶点为所述顶点索引序列表的首个顶点;当顶点索引序列表不为空时,将该顶点加到所述顶点索引序列表的末尾。可选的,所述的给出该图元的需替换顶点数量n至少包括该图元的需替换顶点数量n设为初始值;当该图元各顶点重排序后获得的顶点索引序列表中的顶点数量大于或等于高速缓存可容纳的顶点数量时,取下一图元的任一顶点为当前顶点,重复以下步骤,直至按图元读取顺序的下一图元的各顶点均被处理,获得该图元的需替换顶点数量若当前顶点不在实际输出该图元时的高速缓存中,则该图元的需替换顶点数量n加I ;加I之后,判断实际进行顶点替换时最早存储进高速缓存的顶点是否是下一图元 的顶点;若是,则该图元的需替换顶点数量n加1,将次早存储进高速缓存中的顶点调整为最早存储进高速缓存中的顶点;重复本步骤直至实际进行顶点替换时最早存储进高速缓存的顶点不是下一图元的顶点为止;将下一图元的下一顶点调整为当前顶点。可选的,用所述预处理方法对需绘制的图元串中的每一个图元进行预处理。本专利技术还提供了一种图元处理方法,包括根据该图元各顶点在高速缓存中的索引值,从高速缓存中获取各顶点数据,输出该图元;当该图元的需替换顶点数量n不为初始值时,用顶点索引序列表中的n个顶点,替换高速缓存中的n个顶点。可选的,当该图元是首图元时,在所述的输出该图元及所述的替换高速缓存中的n个顶点之前,还包括从顶点索引序列表的首个本文档来自技高网
...

【技术保护点】
一种图元预处理方法,其特征在于,至少包括:模拟该图元的实际输出过程,以获得实际输出该图元时高速缓存中顶点和该图元各顶点进入高速缓存的先后顺序;根据所述实际输出该图元时高速缓存中顶点,获得该图元各顶点在高速缓存中的索引值;所述高速缓存中的索引值与所述高速缓存中顶点之间存在一一对应关系;按照所述该图元各顶点进入高速缓存的先后顺序,将该图元的各顶点进行重排序,获得顶点索引序列表;所述顶点索引序列表存储各顶点数据的索引,根据所述索引可得到该顶点数据的实际物理地址,获取该顶点的数据;基于实际输出该图元时高速缓存中的顶点和下一图元的顶点,给出该图元的需替换顶点数量n,n为自然数。

【技术特征摘要】

【专利技术属性】
技术研发人员:沙力李济川赵波
申请(专利权)人:上海算芯微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1