图像绘制装置及图像绘制方法

文档序号:6412859阅读:181来源:国知局

专利名称::图像绘制装置及图像绘制方法
技术领域
:本发明涉及一种图像绘制装置和图像绘制方法,被用于图形计算机、特技设备或视频游戏机等利用计算机的视频设备。在家用TV游戏机、个人计算机或图形计算机中的图像生成装置(用于产生输出到电视接收机、监视器接收机或阴极射线管(CRT)显示装置上以便显示的图像数据)中,为了能高速处理,在中央处理单元(CPU)和帧缓冲器之间提供一专用绘制装置。也就是说,在上述的图像生成装置中,在生成图形时CPU并不直接访问帧缓冲器,而是执行几何处理,如坐标变换、剪切或光源计算,将三维模型定义为基本单元图形如三角形或四边形的组合,以形成绘制三维图形的绘制命令,并把产生的绘制命令送到绘制装置。例如,为了形成一个三维物体,该物体被分成多个多边形,每个多边形的绘制命令从CPU送到绘制装置。绘制装置解释从CPU送来的绘制命令,执行写象素数据到帧缓冲器的成像处理,根据指定顶点的彩色数据和深度的Z值,考虑形成多边形的所有象素的Z值和彩色,以便在帧缓冲器中绘图。Z值表示指定从视点沿深度方向的距离的信息。例如,若一个三维物体被显示在上述图像生成装置中,该物体被分解成多个多边形,与每个多边形有关的绘制命令从CPU发送到绘制装置上。为了更逼真地显示物体,使用了称为纹理映射或MIP映射的技术。还有大家熟知的通过彩色查找表(CLUT)转换图像彩色数据的技术,在查找表中存有为改变显示彩色的彩色转换数据。纹理映射是这样一种技术,单独提供一个作为纹理源图像的二维图像图案附加到组成物体的多边形表面。而MIP映射是内插象素数据的纹理映射技术中的一种,它使附加到多边形上的图案,在三维模型移向视点或离开视点时不会造成不自然感。而且,图像的绘制速度取决于绘制引擎中对每个多边形的纹理映射或MIP映射的处理速度。还有,图像的绘制速度受从绘制引擎到帧缓冲器的写速度的影响,这样如果帧缓冲器存取速度低,则绘制速度亦低。因此,如果为了增加绘制速度,采用昂贵的高速存贮器作为大容量帧缓冲器,则系统成本会过高地增加。而如果用便宜的动态随机存贮器(DRAM),则系统的绘制速度会降低。鉴于上述本
技术领域
的状况,本发明的目的如下面所述。即,本发明的一个目的是提供一种图像绘制装置和图像绘制方法,从而,即使使用便宜的存贮器,如DRAM作为帧缓冲器,也可以维持高绘制速度。本发明的另一个目的是提供一种图像绘制装置和图像绘制方法,从而在通过绘制装置执行纹理映射的图像绘制装置中,绘制处理可以不停顿绘图装置而执行。本发明还有一个目的是提供图像绘制装置和图像绘制方法,可以降低对图像存贮器的访问次数和访问时间而增加整个图像绘制速度。根据本发明的图像绘制设备包括预处理装置,用于根据绘制由单元图形的组合定义的图像模型的绘制命令,在以单元图形为基础的绘制处理之前产生绘制处理所需的数据;图像绘制装置,用于响应在图像存贮器中绘制图像的绘制命令,通过纹理映射处理以单位图形为基础形成像素数据;存贮装置,用于暂时存贮图像绘制装置进行纹理映射所需的纹理数据;以及供给装置,用于响应由预定处理装置输出的数据,把图像绘制装置进行纹理映射所需的纹理数据提供给存贮装置。根据本发明的图像绘制装置中,图像绘制装置具有执行MIP映射的功能,图像绘制装置响应预处理装置输出的数据,选择具有所需分辨率的纹理数据,以提供所选择的纹理数据给存贮装置。根据本发明的图像绘制方法包括以下步骤根据绘制由单元图形的组合定义的图像模型的绘制命令,以单元图形为基础,产生有关图像绘制处理数据;根据该数据,把图像绘制处理中纹理映射所需的纹理数据提供给存贮装置;通过纹理处理产生单元图形的象素数据以便在图像存贮器中绘图,以及在图像存贮器绘制图像。在根据本发明的图像绘制方法中,把纹理数据供给存贮装置的步骤包括下述步骤即响应有关图像绘制处理的数据,提供图像绘制处理中MIP映射所需分辨率的纹理数据。根据本发明的图像绘制装置和方法,图像绘制装置通过预处理装置,在预处理阶段,从纹理存贮器发送纹理映射所需的纹理数据到纹理高速缓存。预处理装置和图像绘制装置以流水线方式工作,使得图像绘制过程中不用停止图像绘制装置。根据本发明的图像绘制装置和方法,图像绘制装置进行MIP映射所需分辨率的数据由预处理装置在预处理阶段从纹理存贮器上的纹理数据中选择,并传送到纹理高速缓存,以降低对纹理存贮器的访问次数和访问的时间,提高整个图像的绘制速度。附图的简要说明图1是显示采用本发明的视频游戏机的结构框图;图2是显示视频游戏机中GPU的详细结构的框图;图3是显示GPU的基本结构的框图;图4显示了在GPU中纹理高速缓存中数据结构的示例;图5是显示在GPU中用预处理器分解第一多边形的处理流程图;图6是显示视频游戏机中第二总线转换器的结构框图;图7说明了视频游戏机中第二总线转换器的结构;图8说明了当对第一多边形形状内部访问时,要被访问的交错图案(interleavingpattern);图9说明了当对第一多边形形状内部访问时,基于地址访问情况下的屏蔽;图10说明了通过屏蔽得到的访问地址;图11说明了用(4×4)交错图案访问绘制于帧缓冲器的存贮体的第二多边形形状的内部;图12说明了用(4×4)交错图案访问绘制于帧缓冲器的存贮体的第二多边形形状的内部时,所访问的交错图案;图13说明了以地址为基础用(4×4)交错图案访问第二多边形形状内部情况下的屏蔽;图14说明了用(8×2)交错图案对第二多边形的内部的访问;图15说明了用(8×2)交错图案访问绘制于帧缓冲器的存贮体的第二多边形形状内部时,所访问的交错图案;图16说明以地址为基础用(8×2)交错图案访问第二多边形形状内部情况下的屏蔽;图17说明了用(16×1)交错图案对第二多边形的内部的访问;图18说明了用(16×1)的交错图案访问绘制于帧缓冲器的存贮体的第二多边形形状的内部时,所访问的交错图案;图19说明了以地址为基础用(16×1)交错图案访问第二多边形形状内部情况下的屏蔽。图20说明了计算绘制于帧缓冲器的存贮体的多边形纵横比的处理。图21显示了具有16个地址的5种交错图案的图案。图22是采用本发明的视频游戏机装置的平面图。图23是该视频游戏装置的后视图。图24是该视频游戏装置的侧视图。图25是装载在该视频游戏装置上的CD-ROM的平面图。参考附图,下面详细说明本发明的优选实施例。根据本发明的绘制装置用于图1所示的视频游戏装置中。根据本发明的绘制方法在该视频游戏装置中被实现。视频游戏机根据用户发出的指令通过读和执行存贮在辅助存贮装置如光盘中的游戏程序执行游戏,其结构如图1所示。具体地,本视频游戏装置具有两类总线,即主总线1和副总线2。主总线1和副总线2经过总线控制器16被互相连接。主总线1上连接有由微处理器组成的中央处理单元(CPU)11,由随机存取存贮器(RAM)组成的主存贮器12,主动态存贮器存取控制器或主DMAC13,MPEG解码器14和图像处理单元或图形处理单元(GPU)15。副总线2上连接有由微处理器组成的辅助中央处理单元或副CPU21,由随机存取存贮器(RAM)组成的辅助存贮器22,辅助动态存贮器存取控制器或副DMAC23,其中存贮有程序例如操作系统的只读存贮器(ROM)24,声音处理单元(SPU)25,通信控制器或异步传送模式(ATM)26,辅助存贮装置27,输入装置28和CD-ROM驱动器30。总线控制器16是主总线1上的一种装置,用于在主总线1和副总线2之间进行转换,并在初始状态是断开的。主CPU11是主总线1上的一种装置,通过主存贮器12上的程序操作。由于总线控制器16在起动时是断开的,所以主CPU11从副总线2上的ROM24中读出引导程序,以在副总线2上从ROM24复制应用程序和所需的数据,加载到主存贮器12或副总线2上的装置中。在主CPU11上加载了一个几何变换引擎(GTE)17,以实现如坐标转换的处理。该GTE17具有并行计算机制,以便并行地执行多个计算处理操作,并对CPU11的计算处理请求作出响应,以使对例如坐标转换、光源计算、矩阵或向量运算实现快速处理运算。根据GTE17计算处理运算的结果,主CPU11把三维模型定义为基本单元图形如三角形或四边形的组合,形成与每个多边形相关的绘制命令以便绘制三维图像,且打包绘制命令,以便把结果命令包传送到GPU15中。主DMAC13是主总线1上的装置,用来实现控制,例如主总线1上各装置的DMA传送。如果总线控制器16是断开的,则主DMAC13也控制副总线2上的装置。GPU15是主总线1上的一装置,起成像处理器的作用。GPU15解释从主CPU11或主DMAC13发送的命令包形式的绘制命令,根据形成多边形的所有象素的指定深度的Z值和彩色值,在帧缓冲器18中实现写象素数据的成像处理。MDEC14是一个同主CPU11可并行操作的I/O连接装置及作为图像扩展引擎的装置。MDEC14解码用正交变换,例如离散余弦变换压缩和编码的图像数据。在副总线2上,副CPU21是在副总线2上的装置,它根据副存贮器22中的程序工作。副DMAC23是副总线2上的装置,用来对例如副总线2上的装置执行控制如DMAC传送。该副DMAC23只在总线控制器16被关闭时能够获取总线权。SPU25是副总线2上起声音处理器作用的装置。SPU25响应来自副CPU21或副DMAC23的作为命令包送出的声音命令,从声音存贮器29读出声音源数据以输出该读出的数据。ATM26是副总线2上的通信装置。辅助存贮装置27是副总线2上的输入输出装置,由非易失性存贮器例如闪速存贮器组成。该辅助存贮装置27用来暂存数据如游戏进展或得分。CD-ROM驱动器30是副总线2上的数据输入装置,用来从CD-ROM上复制应用程序和所需的数据。输入装置28是从其它一些设备输入的装置,如副总线2上的控制板、人-机接口、图像输入或语音输入。也就是,在上面所述的视频游戏机中,几何处理系统执行几何处理,如坐标转换、剪切或光源计算。形成绘制命令,用于将三维模型定义为基本单元图形(多边形)如三角形或四边形的组合,以便绘制三维图形,且把同每个多边形相关的绘制命令作为命令包送到主总线1,该几何处理系统由主总线1上的主CPU11和GTE17形成。另外,在视频游戏机中,成像处理系统由GPU15组成,成像处理系统根据几何处理系统的绘制命令,形成每个多边形的象素数据,用于通过在帧缓冲器18中绘图的成像处理,在帧缓冲器18绘图。上述GPU15将予以详细说明。参考图2,GPU15包括一个连到如图1所示的主总线1上的包引擎31,并且通过预处理器32和绘制引擎33,实现将每个多边形的象素数据写入帧缓冲器18中的成像处理,根据通过主总线1从图1所示的CPU11或主DMAC送到包引擎31的命令包形式的绘制命令,读出在帧缓冲器18中所绘图像的象素数据,并把所读出的象素数据作为视频信号经CRT控制器34提供给电视接收机或监视器接收机(未示出)。包引擎31展开通过主总线1从图1所示的主CPU11或主DMAC13发送到一个寄存器(未示出)的命令包。预处理器32根据按命令包送给包引擎31的绘制命令产生多边形数据,并实现预定的预处理,如在后面将说明的对多边形数据的多边形分割,同时产生各种数据,如绘制引擎33所需的各个多边形的顶点坐标信息、纹理或MIP映射纹理的地址信息,或象素交错的控制信息。绘制引擎33包括连到预处理器32上的N个多边形引擎33A1、33A2、…、33AN,连到多边形引擎33A1、33A2、…、33AN上的N个纹理引擎33B1、33B2、…、33BN;连到纹理引擎33B1、33B2、…、33BN的第一总线转换器33C;连到第一总线转换器33C的M个象素引擎33D1、33D2、…、33DM;连到象素引擎33D1、33D2、…、33DM的第二总线转换器33E;连到第二总线转换器33E的纹理高速缓存33F;和连到纹理高速缓存33F上的CLUT高速缓存33G。在绘制引擎33中,N个多边形引擎33A1、33A2、…、33AN根据由预处理器32预处理的多边形数据,按绘制命令顺序地产生多边形,以便逐个对多边形实现并行阴影处理。N个纹理引擎33B1、33B2、…、33BN,在多边形引擎33A1、33A2、…、33AN产生的每个多边形上,基于经彩色查找表(CLUT)高速缓存33G,从纹理高速缓存33F提供的纹理数据,并行地实现纹理映射或MIP映射。预处理器32预先提供地址信息如附加到由N个纹理引擎33B1、33B2、…、33BN处理的多边形上的纹理或MIP映射纹理给纹理高速缓存33F。根据上面的地址信息,纹理映射所需纹理数据从纹理区传送到帧缓冲器18,同时只有MIP映射所需的分辨率数据从相关的纹理数据中被选择,以便作为MIP映射纹理数据被传送。在纹理绘制期间要参考的CLUT高速缓存33G的CLUT数据从CLUT区传到帧缓冲器18。由N个纹理引擎33B1、33B2、…、33BN通过纹理映射或MIP映射处理的多边形数据,经第一总线转换器33C传到M个象素引擎33D1、33D2、…、33DM。M个象素引擎33D1、33D2、…、33DM执行各种图像处理操作,如并行地进行Z-缓冲器处理或抗混叠处理,以产生M个象素数据。由M个象素引擎33D1、33D2、…、33DM产生的M个象素数据,经第二总线转换器33E被写到帧缓冲器18中。第二总线转换器33E从预处理器32中得到象素交错控制信息。第二总线转换器33E具有下述功能,即,根据上述控制信息,从M个象素引擎33D1、33D2、…、33DM产生的M个象素数据中选择L个象素数据,执行象素交错处理,用符合绘制在帧缓冲器18上的多边形形状的M个存贮地址作为存取单元,写M个象素数据。绘制引擎33根据由预处理器32预处理的多边形数据,在帧缓冲器18中产生和写入每个多边形的全部象素数据,以在帧缓冲器18上绘制由绘制命令定义为多边形的图。因此,在帧缓冲器18绘制的图像的象素数据通过第二总线转换器33E被读出,以便作为视频信号经CRTC34提供给电视接收机或监视器接收机(未示出)。在上面所述的GLUT15结构中,预处理器32根据多边形的顶点坐标[(X0,Y0),(X1,Y1),(X2,Y2)]及纹理坐标[(U0,V0),(U1,V1),(U2,V2)1,产生地址信息,用于预读附加在由N个纹理引擎33B1、33B2、…、33BN处理的多边形上的纹理。此外,GLUT15根据多边形的各边的斜率[(X1-X0)/(Y1-Y0),(X2-X0)/(Y2-Y0),(X1-X2)/(Y1-Y2)],纹理地址的斜率[(U1-U0)/(Y1-Y0),(U2-U0)/(Y2-Y0),(U1-U2)/(Y1-Y2)],[(V1-V0)/(Y1-Y0),(V2-V0)/(Y2-Y0),(V1-V2)/(Y1-Y2)],…或多边形面积重新产生MIP映射选择信息,把信息提供给纹理高速缓存33F。GLUT15按左边缘顶点的顺序[(X0,Y0)→(X1,Y1)→(X2,Y2)]顺序,或按右边沿顶点的顺序[(X2,Y2)→(X1,Y1)→(X0,Y0)]或用扫描二端点或纹理地址的顺序排序多边形顶点坐标[(X0,Y0),(X1,Y1),(X2,Y2)]。预处理器32存贮对应于工作存贮器中预处理的多边形数据的信息(未示出),在绘图引擎33能处理下一个多边形的阶段,能够处理一个多边形的信息可从工作存贮器传送到N个多边形引擎33A1、33A2、…、33AN,这使得绘制引擎33启动对新多边形的绘制处理。也就是用本GPU15,预处理器32和绘制引擎33以流水线处理执行绘制处理,以便绘制由绘制命令定义为多边形的组合的图像。用该流水线处理进行的绘制处理在以后还会说明。预处理器32对前面所述的多边形数据执行预定的预处理,并提供各种数据给绘制引擎33,这些数据如绘制引擎33所需的顶点坐标信息、用于纹理或MIP映射纹理的地址信息、或例如作象素交错的控制信息。绘制引擎33从预处理器32接收数据,以从纹理高速缓存33D中读出所需的纹理数据,产生数据以便在帧缓冲器18中写所产生的象素数据。纹理高速缓存33D,根据预处理器32预处理计算得到的需要的纹理地址,从帧缓冲器18读出纹理区的纹理数据。此纹理数据被读出,以便在利用纹理数据的图像绘制开始之前完成数据的读出。由于只从纹理区读对应于MIP映射所需分辨率的纹理数据,访问纹理区的次数被减少了。如图4中示例,在纹理高速缓存33F中的数据结构包括由纹理地址形成的标签区TAG,存贮所需的纹理数据的存贮区DATA,和指出还未被使用的纹理数据的标志L。为利用标志L复位的项,纹理高速缓存33从帧缓冲器18的纹理区读入纹理数据,置位其标志L。绘制引擎33从标志置位的这个项读出相应纹理数据,以便执行绘制处理,在绘制结束的阶段复位此项的标志L,该纹理数据已不再需要。在绘制设备中,如上所述执行纹理映射处理,预处理器32和绘制引擎33按流水线构成,这样以使绘制引擎33所需的纹理数据从纹理存贮器即帧缓冲器18的纹理区通过预处理器32,在预处理阶段送到高速缓存33F,以便绘制处理能够被执行,无须停止绘制引擎33。此外,由于只从纹理区读取同MIP映射所需分辨率相关的数据,可以减少访问纹理区的次数,从而提高了整个装置的绘制速度。通过预处理器32的多边形分割处理按照图5所示的流程图执行。具体地说,多边形分割处理开始时,指定多边形的数量的多边形计数C设定为1。在第一处理步骤S1,判断是否需要分割多边形。在处理步骤S1的判断处理中,要判断是否现在处理的多边形包含在纹理高速缓存33F的范围内。为了这个判断处理,看是否多边形顶点的纹理坐标[(U0,V0),(U1,V1),(U2,V2)]计算值落在一个纹理页中已足够了。如果在处理步骤S1的判断结果是“否”,即,如果多边形需要分割,处理转到步骤S2,以将多边形分成N份。在处理步骤S2上,多边形的这种N分割通过在中性点上分割多边形的所有边而实现,如下所示X0’=(X0+X1)/2Y0’=(Y0+Y1)/2Z0’=(Z0+Z1)/2X1’=(X1+X2)/2Y1’=(Y1+Y2)/2Z1’=(Z1+Z2)/2X2’=(X2+X0)/2Y2’=(Y2+Y0)/2Z2’=(Z2+Z0)/2U0’=(U0+U1)/2V0’=(V0+V1)/2Z0’=(Z0+Z1)/2U1’=(U1+U2)/2V1’=(V1+V2)/2Z1’=(Z1+Z2)/2U2’=(U2+U0)/2V2’=(V2+V0)/2Z2’=(Z2+Z0)/2R0’=(R0+R1)/2G0’=(G0+G1)/2B0’=(B0+B1)/2R1’=(R1+R2)/2G1’=(G1+G2)/2B1’=(B1+B2)/2R2’=(R2+R0)/2G2’=(G2+G0)/2B2’=(B2+B0)/2即,在处理步骤S2,多边形的N分割中,多边形的所有边在其中点被分割,以将三角形状多边形分割为例如N=4的新多边形。在下一处理步骤S2,通过设置多边形计数C为C=C+N-1而改变多边形的数量。然后,处理回到第一处理步骤S1,以便判断是否新被分割的多边形应该进一步再分割。重复执行处理步骤S1到S3,直到新分割多边形被包括在纹理高速缓存的范围之内。如果在第一处理步骤S1上判定的结果是“是”,也就是如果不需要分割多边形,则处理转到下一处理步骤S4。在处理步骤S4上,一个多边形的预处理信息被提供给多边形引擎33A1、33A2、…、33AN以启动成像处理,然后,不必等待成像处理的结束,处理转到下一个处理步骤S5。在处理步骤S5上,多边形计数C被减量。在下一个处理步骤S6上,判断是否多边形计数C等于‘0’。如果在处理步骤S6处理结果是“否”,C≠0,存在多边形要处理,则处理返回到第一处理步骤S1,进入下一个多边形的处理。如果在处理步骤S6处理结果是“是”,也就是如果所有多边形已完成成像,因此无多边形要分割,处理结束。也就是,预处理器32判断是否在绘制引擎33中,现在处理的多边形包含在纹理高速缓存33F中(判断条件1)。预处理器32根据判断结果执行分割处理,相应于绘制命令分割多边形,以使新分割的多边形被包括在纹理高速缓存33F中。这样允许根据绘制引擎33中从纹理高速缓存33f经过CLUT高速缓存33G读出的纹理数据,可靠而高效率地执行纹理映射处理。用预处理器32的多边形分割处理中,可以检查上述第一处理步骤中是否多边形中的象素数小于规定的值(判断条件2),以检查是否多边形需要被分割及在处理步骤S2按绘制命令把多边形分成多个在二维空间中的多边形,以使新分割的多边形中的象素数不大于规定值。这样,要由绘制引擎处理的多边形的尺寸可以相等。多边形中的象素数的判断亦可以通过寻找多边形顶点的外积值求出面积及检查是否该值小于最佳值。在用预处理器32的多边形分割处理中,在上述处理步骤S2对应于绘制命令的多边形能被分割成多个三维空间中的多边形。在这种情况下,可在第一处理步骤S1中判断是否多边形顶点的Z值的最小值和最大值之间差包括在最佳范围中(判断条件3),以检查是否多边形需要被分割,并在处理步骤S2把对应于绘制命令的多边形分成多个三维空间中的多边形,以使新分的多边形的象素数包括在规定范围内,以限制多边形尺寸,根据从纹理高速缓存33F经CLUT高速缓存33G读出的纹理数据,以仅有很小纹理失真情况,执行纹理映射处理。在这种情况,可在第一处理步骤S1,判断是否多边形顶点的Z值的最小和最大值参考的MIP映射纹理被跨越(判断条件4),并根据判断结果在处理步骤S2,把对应于绘制命令的多边形分成多个在三维空间的多边形,以限制在多边形中参考的MIP映射的参考范围,根据纹理高速缓冲器33F经CLUT高速缓存33G读出的MIP映射纹理数据,进行有效的MIP映射。亦可以根据是否多边形中的象素数不大于预定值,来判断是否多边形需要分割,根据该判断结果,在处理步骤S2把对应于绘制命令的多边形分成多个在三维空间中的多边形,使得分割的新多边形内的象素数小于上述规定值。同样,也可以根据例如多边形的象素数,预测绘制引擎33的绘制处理时间。在处理步骤S1,根据是否预处理器32的预处理时间同绘制引擎33的绘制处理时间平衡(判断条件5)判断是否多边形需要被划分,以及根据判断的结果,在处理步骤S2,对应于绘制命令分割多边形,以使预处理器32的预处理时间同绘制引擎33的绘制处理时间平衡。这使得可平衡预处理器32的预处理时间和绘制引擎33的绘制处理时间彼此间关系,以便用流水线构建预处理器32和绘制引擎33,以有效地实现高速绘图。亦可以在处理步骤S1判断是否处理引擎33所处理的多边形的形状在上述处理步骤S1适合象素交错(判断条件6),并通过处理步骤S2对应于绘图命令把多边形分成形状适合于象素交错的多个新的多边形。这使得可以通过绘制引擎33有效地访问帧缓冲器18,以实现高速绘制处理。同样可以在处理步骤S1,根据上述各种各样判断条件的组合,判断是否多边形需要分割,并通过处理步骤S2对应于绘制命令把多边形分成多个新多边形,使新分割的多边形满足判断条件。具体地说,可以在处理步骤S1,根据判断条件1和2的组合,判断是否多边形需要分割,并通过处理步骤S2对应于绘制命令把多边形分成多个新多边形,使新分割的多边形满足判断条件1和2,以便经绘制引擎33处理的多边形的尺寸相等,及根据从纹理高速缓存33F经CLUT高速缓存33G读出的纹理数据可靠有效地执行纹理映射处理。也可以在处理步骤S1,根据判断条件1和3的组合,判断是否多边形需要分割,并在处理步骤S2,对应于绘制命令把多边形分成多个新多边形,以使新分的多边形满足判断条件1和3。这使得可以根据从纹理高速缓存33F经CLUT高速缓存33G读出的纹理数据,仅以很小的纹理失真可靠有效地实现纹理映射处理。另外,如果判断条件2同上面的组合相组合,可以使由绘制引擎33处理的多边形的尺寸、也就是象素数相等,以便执行纹理映射。也可以在处理步骤S1根据判断条件1和4的组合,判断是否多边形需要分割,且在处理步骤S2,对应于绘制命令把多边形分成多个新的多边形,以使新分割多边形满足判断条件1和4。这使得可以根据从纹理高速缓存33F经CLUT高速缓存33G读出的纹理数据,可靠有效地实现MIP映射处理。另外,如果判断条件2和3与上面的组合相组合,则可能使绘制引擎33处理的多边形尺寸,也就是其象素数相等,且减少纹理失真。亦可以在处理步骤S1,根据判断条件1和5的组合,判断是否多边形需要分割,且在处理步骤S2,对应于绘制命令把多边形分成多个新的多边形,以使新分割多边形满足判断条件1和5,这使得可以保持预处理器32的处理时间同绘制引擎33的处理时间均衡,以用流水线实现有效高速的纹理映射。另外,如果判断条件2和3与上面的组合相组合,则可能使由绘制引擎33处理的多边形尺寸,也就是其象素数相等,且减少纹理失真。判断条件4亦可以同上面的组合相组合,以实现MIP映射。亦可以在处理步骤S1,根据判断条件1和6的组合,判断是否多边形需要分割,并由处理步骤S2对应于绘制命令把多边形分成多个新多边形,以使新分的多边形满足判断条件1和6。这使得可以通过绘制引擎33可靠有效地实现纹理映射,且有效地访问帧缓冲器18以实现高速绘制。另外,如果判断条件2和3同上面的组合相组合,则能使绘制引擎33处理的多边形尺寸,也就是其象素数相等,以减少纹理失真。该判断条件4亦可以同上面的组合相组合以实现MIP映射,或者判断条件5可以同上面的组合相组合,以便用流水线实现高速处理。通过上述第二总线转换器33E进行的象素交错如下所述被实现。参考图6,第二总线转换器33E包括一个控制电路101,由图2所示的预处理器32的输出供给;一个选择器102,由控制电路101的输出供给;以及多个多路转换器/多路分解器(MUX/DMUX)103a、103b、103c、103d、…,它们都由选择器102的输出供给。(MUX/DMUX)103a、103b、103c、103d、…被连到帧缓冲器18及绘制引擎33,如图2所示。帧缓冲器18由多个存贮体[1]、[2]、…、[X]、…、[L]组成,如图2所示。每个存贮体[1]、[2]、…、[X]、…、[L]由被16个地址表示的矩形区(交错图案)组成,所以可同时访问16个地址。因此,例如帧缓冲器18的存贮体[X]具有16个输入/输出端口P0到P15以访问地址A0到A15。MUX/DMUX103a、103b、103c、103d、…中的4个MUX/DMUX103a、103b、103c、103d每个连到16个输入/输出端口P0到P15。另外,4个MUX/DMUX103a、103b、103c、103d被连到绘制引擎33的4个相关象素引擎33DX1、33DX2、33DX3和33DX4。由于存贮体[X]以外的存贮体的构成类似于上面所述的存贮体[X],因此为了简化起见,不对它们作详细说明。由第二总线转换器33E在其它存贮体上执行的访问操作类似于在以后要说明的、在存贮体[X]上由第二总线转换器33E执行的操作。因此,在下面说明中,只解释存贮体[X]上第二总线转换器33E执行的访问操作。首先,解释第二总线转换器33E的一系列操作。如果例如绘制在存贮体[X]上的多边形的形状是三角形TABC(第一多边形的形状),如图7所示,则控制电路101首先用象素交错控制信息由预处理器32馈送。根据预处理器32的象素交错控制信息,控制电路101转换交错图案成为例如(4×4)交错图案,用来访问三角形TABC的内部。在控制电路101中转换交错图案的方法将在后面详述。在存贮体[X]上形成多个交错图案,这种将被访问的交错图案,也就是说,这种允许三角形TABC的内部作为一个整体被访问的交错图案,用(4×4)的交错图案,通过控制电路101被检测。因此,在三角形TABC中,如果在存贮体[X]上的每个交错图案用P(在x方向上的图案索引和在y方向上的图案索引)来表示,用P(x,y)=P(3,1),P(4,1),P(1,2),P(2,2),P(3,2),P(4,2),P(1,3),P(2,3),P(3,3),P(4,3),P(5,3),P(2,4),P(3,4),P(4,4),P(5,4),P(3,5),P(4,5),P(5,5),P(4,6),P(5,6)所指定的总数为20的交错图案被检测,如图8所示。控制电路101把如上所述检测的指定20个交错图案的图案信息,按交错图案送到选择器102。当按地址执行存贮器访问时,控制电路101把对应于三角形TABC形状的屏蔽信息送到选择器102。基于从控制电路101按交错图案提供的图案信息,选择器102指示对应于MUX/DMUX103a、103b、103c和103d所要访问的(4×4)交错图案P的地址。如果从控制电路101得到屏蔽信息,选择器102根据屏蔽信息,以(4×4)交错图案P执行屏蔽的结果得到MUX/DMUX103a到103d的访问地址,如图9所示。因此,在图9所示的P(4,1)所指定的交错图案中,作为屏蔽结果得到的访问地址是A4、A5、A6、A8、A9、A10、A13、A14和A15,如图10中阴影线所示。MUX/DMUX103a、103b、103c和103d访问由选择器102指示的存贮体[X]的地址A0到A15。象素引擎33DX1、33DX2、33DX3和33DX4分别输出象素数据给MUX/DMUX103a、103b、103c和103d,如上所述。因此,MUX/DMUX103a访问选择器102所指示的地址,从象素引擎Xa,经过对应于选择器102所指示地址的输入/输出端口P0到P15中的一个,在由上述地址所指示的存贮体[X]的区域中,写入象素数据。MUX/DMUX103a访问选择器102所指示的地址,以经过对应于上面地址的输入/输出端口P0到P15中的一个,读出写入存贮体[X]上的地址指示的区域中的数据。MUX/DMUX103a对从存贮体[X]读出的数据,执行预定处理。由于MUX/DMUX103b到103d的操作类似于上述MUX/DMUX103a的操作,因此,为了清楚,详细说明被省略。对于在上述控制电路101中交错图案的改变方法,现在作具体的说明。首先,说明以(4×4)交错图案P访问图11所示的绘制在存贮体[X]中的形状为横向拉长的三角形TDEF(第二多边形的形状)的多边形的内部的次数。在这种情况下,要被访问的交错图案是P(x,y)=P(1,1),P(2,1),P(3,1),P(4,1),P(5,1),P(0,2),P(1,2),P(2,2),P(3,2),P(4,2),P(5,2),P(6,2),P(7,2),P(8,2),P(7,3),P(8,3),P(9,3),总数为17,如图12所示。也就是为了用(4×4)交错图案访问三角形TDEF的内部,作为一个整体访问三角形TDEF的内部的访问次数是17。在根据地址存取时,仅要求的存贮器地址可通过执行(4×4)交错图案P的屏蔽而被访问,就像访问上面所述三角形TABC的情况,如图13所示。而如果三角形TDEF的内部用图14所示的(8×2)交错图案被访问,要被访问的交错图案是P1(x,y)=P1(3,1),P1(2,2),P1(0,3),P1(1,3),P1(2,3),P1(0,4),P1(1,4),P1(2,4),P1(3,4),P1(1,5),P1(2,5),P1(3,5),P1(4,5),P1(3,6),P1(4,6)总数为15,如图15所示。也就是如果用(8×2)交错图案访问三角形TDEF的内部,为访问三角形TDEF的整个内部所需的访问次数为15。在按地址访问时,在(8×2)交错图案P1范围实现屏蔽,如上面所述的访问三角形TABC的情况,如图16所示,只访问所需的存贮器地址。而如果如17所示用(16×1)交错图案P2访问三角形TDEF的内部,要被访问的交错图案是P2(x,y)=P2(0,5),P2(1,5),P2(0,6),P2(1,6),P2(0,7),P2(1,7),P2(0,8),P2(1,8),P2(0,9),P2(1,9),P2(0,10),P2(1,10),P2(2,10),P2(1,11),P2(2,11),P2(1,12),P2(2,12),P2(2,13),总数为18,如图18所示。也就是如果用(16×1)交错图案访问三角形TDFF的内部,为访问三角形TDEF的整个内部所需的访问次数为18。在按地址访问时,在(8×2)交错图案P2的范围实现屏蔽,如上面所述,如同访问三角形TABC的情况,如图19中所示,只访问所需的存贮器地址。如上所述,用(4×4)交错图案P访问三角形TDEF内部的次数为17,而用(8×2)交错图案P1访问三角形TDEF内部的次数为15,用(16×1)交错图案P2访问三角形TDEF内部的次数为18。因此,用(8×2)交错图案P1访问三角形TDEF内部的次数为最小访问次数。可以看出,对三角形TDEF最合适的交错图案是(8×2)交错图案P1。因此,为了把用于访问存贮体[X]的交错图案转换成合适的交错图案以满足将被访问的多边形形状,控制电路101执行下述处理操作。例如如果绘制在存贮体[X]的多边形的形状是一个三角形THIJ,如图20所示,用于象素交错的控制信息如上所述从预处理器32提供给控制电路101。例如,用于象素交错的控制信息是三角形THIJ的三个顶点的xy坐标H(Xh,Yh)、I(Xi,Yi)或J(Xj,Yj)这样的信息。而控制电路101利用来自预处理器32用于象素交错的控制信息,用如下计算求三角形THIJ的纵横比RR=dy/dx=(MAXy-MINy)/(MAXx-MINx)这里MAXx和MINx分别为X方向的最大和最小值,而MAXy和MINy分别为Y方向的最大和最小值,如图20所示。在三角形THIJ中MAXx=XjMINx=XiMAXy=YhMINy=Yi根据这样找到的纵横比R,控制电路101选择(1×16)、(2×8)、(4×4)、(8×2)和(16×1)5个交错图案Pa到Pe中的一个,如图21所示,且把访问三角形THIJ内部所用的交错图案转换成所选择的交错图案。控制电路101具有一个关于纵横比R和交错图案的表(表1)。在该表中,有预定的与各种纵横比R值相关的合适的交错图案,也就是最小访问次数的交错图案。于是控制电路101用上述表选择如上获得的同纵横比R相关的合适的交错图案。表1</tables></tables>在第二总线转换器33E中,图21所示的5种交错图案Pa到Pe的合适的一种被选择以响应要绘制在存贮体[X]的多边形形状,该存贮体[X]将用所选择的交错图案访问,以使多边形用最小访问操作次数绘制到存贮体[X]。因此,可以用第二总线转换器33E有效地实现存贮器访问。GPU15通过针对提高存贮器访问效率的第二总线转换器33E来访问帧缓冲器18,用于进行各种数据的处理操作,如上所述,以实现有效数据处理操作。采用本发明的视频游戏机201的构成如图22的平面视图、图23的前视图及图24的侧视图所例示。也就是说,本发明的视频游戏机201基本上由主体部件202、和用电缆227同主体部件202相连接的操作装置217组成,如图22所示。主体部件202上表面的中部安装一盘装载单元203,一个示于图25的CD-ROM251被装载在其中,盘装载单元203的左边装有一个电源开关205,用来操作接通或关闭设备,还装有一个复位开关204,用来操作临时复位游戏。盘装载单元203的右边装有一个盘动作开关206,用来相对于盘装载部件203进行装载或卸载CD-ROM251的操作。在主体部件202的前面装有连接部分207A、207B,如图23所示。这些连接部分207A、207B装有从操作装置217来的电缆227前端提供的连接端子226,还装有一个连接端子插入部分212,用来连接如存贮卡等记录装置228、及记录/插入部分208。也就是说,每组有操作装置217和记录装置218的两组可连到主体部件202。图23的前视图显示了这种状态,其中连接端子部分226和记录装置228被装在右边连接部分207B,既没有连接端子部分226,也没有记录装置228装在左边连接部分207A。用于装记录装置228到其上的记录插入部分208装有门板209,如图23所示。当在主体部件202上装记录装置228时,门板被记录装置228的前端部分推开,以便进行装载。连接端子部分226有一个滚花的把持部分231A起防滑作用。同样地,记录装置228有一个滚花的把持部分242A起防滑作用。参见侧视图24,连接端子部分226具有的长度L基本上等于记录装置228的长度。操作装置227具有可用左右手把持的支持物220、221。支持物220、221的前端部分分别装有操作部件218、219。操作部件224、225用两手的食指操作,而操作部件218、219用两手的拇指操作。在操作部件218和219之间提供一个选择开关222用于在游戏期间执行选择,还提供一个启动开关223用于启动游戏。采用本视频游戏机201,装载在盘装载单元203上的CD-ROM251,用CD-ROM驱动器30再现。操作装置217相当于上面所述的输入装置28,而记录装置228相当于辅助存贮装置27。权利要求1.一种图像绘制装置,包括预处理装置,用于根据绘制由单元图形的组合定义的图像模型的绘制命令,在以单元图形为基础的绘制处理之前产生绘制处理所需的数据;图像绘制装置,用于响应在图像存贮器中绘制图像的所述绘制命令,通过纹理映射处理以单位图形为基础产生像素数据;存贮装置,用于临时存贮图像绘制装置进行纹理映射所需的纹理数据;供给装置,用于响应由上述预处理装置输出的数据,把所述图像绘制装置进行纹理映射所需的纹理数据提供给所述存贮装置。2.根据权利要求1所述的图像绘制装置,其中所述图像绘制装置具有执行MIP映射的功能,所述图像绘制装置响应所述预处理装置输出的数据,选择具有所需分辨率的纹理数据,以提供所选择的纹理数据给所述存贮装置。3.一种图像绘制方法,包括下列步骤根据绘制由单元图形的组合定义的图像模型的绘图命令,以单元图形为基础,产生有关图像绘制处理的数据;根据所述数据,把所述图像绘制处理中纹理映射所需的纹理数据提供给存贮装置;通过纹理处理产生单元图形的象素数据以便在图像存贮器中绘图,并且在图像存贮器中绘制图像。4.根据权利要求3所述的图像绘制方法,其中把所述纹理数据供给所述存贮装置的所述步骤包括下述步骤即响应有关所述图像绘制处理的数据,在所述图像绘制处理中提供MIP映射中所需分辨率的纹理数据。全文摘要一种用于图形计算机、特技设备或视频游戏机中的图像绘制装置和方法。根据绘图命令,通过预处理器32的预处理产生图像绘制所需的数据,根据产生的数据通过纹理映射产生象素数据,绘制引擎33所需的纹理数据在预处理级从帧缓冲器18的纹理区传送到纹理高速缓存33F,预处理器32和绘制引擎33以流水线方式工作。这使纹理映射或MIP映射时不必停止图像绘制装置,降低了访问纹理存贮器的次数和时间,提高了整体图像绘制速度。文档编号G06T15/04GK1183154SQ9719023公开日1998年5月27日申请日期1997年2月6日优先权日1996年2月6日发明者広井聪幸,冈正昭申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1