专利名称:用于绘制在图像装置上显示的图像的装置、方法和分发介质的制作方法
技术领域:
本发明相关于绘图装置和绘图方法,以及分发介质,更详细地说,相关于能够在例如三维图形计算机(采用计算机的图像装置)或特殊效果装置(反映器)、视频游戏机等类似装置上显示高质量图象的绘图装置、绘图方法和分发介质。
处理器和存储器的高度集成化和高速度使原来很困难的事情,即实时产生三维图像成为可能,使在游戏机上产生的三维图像具有身临其境之感。如果要显示一个三维图像,在许多情况下要将该三维图像分成若干多边形(单元图形),通过绘制这些多边形的每一个,最后将该三维图像整体绘制出来。因此可以说以该方式绘制的三维图像是多边形的组合。
例如,三维图像的显示要经过如下步骤对组成图像的多边形的数据进行坐标转换,进行诸如剪取和照明处理,然后对经过该处理后获得的数据进行透视和投影转换,从而将三维空间的数据转换为二维平面的象素数据,然后将图像绘制出来。但是,在该绘图过程中,一直由浮点或固定点表示的多边形的位置被转换为与屏幕上固定位置的象素相关的整数,这导致假信号和“锯齿”状的阶梯型边缘,从而使该图像比由摄像机摄取的图像质量差。
此外,另一个问题是假信号以图像的闪烁形式出现,使观看屏幕者心烦。
假信号并不仅仅限于图像,当用有限数目的点采样信号时,这是由于采样点数太少而引起的采样误差。
消除由于假信号产生的图像质量降低的一个方法,是实际将每个象素分为称为子象素的更小单元,当对这些子象素进行光线跟踪或某些其他计算后,将计算结果与最近的一个象素单元求平均。但是,光线跟踪计算很费时间,尽管处理器、存储器和其它硬件的速度加快,但目前还不可能对移动的物体进行实时光线跟踪计算。也就是说,一个移动物体通常包括每秒20-30帧,以目前按合理价格买到的硬件来说,不可能在子象素中进行每秒20-30倍的光线跟踪计算。
另一个方法进行排除假信号处理(antialiasing)(消除由于假信号产生的图像质量降低),即通过产生高分辨率图像,对其滤波以减少象素的数量。但通过该方法显示移动物体需要快速、高容量的帧缓冲器或Z缓冲器来存储高分辨率的图像,从而使设备既笨重又昂贵。
排除假信号的另一个方法是称为α混合(blending)的一项技术,当要显示某个图形时,确定图形占据的象素的比例,根据该比例对图形和背景进行α混合。该方法用于处理图形的边缘,但对加在图形上的纹理闪烁或当三维形状相互交叉(交叉线)(例如,当一个球体嵌入另一个时,两个球相互交叉的部分)所产生的假信号并不太有效。
由于上述几点原因,本发明的目的是减小由于假信号造成的图形质量降低,同时尽可能避免费用增加和设备过大。
权利要求1所述的绘图设备包括一个位移量设定装置,用于在象素数据要被绘制于象素数据存储装置中时,以比一个象素更精确的精度,设定移动绘图位置的多个位移量,还包括在该象素数据存储装置中的一个绘图装置,通过在相应于位移量设定装置设定的多个位移量的每个位置绘制象素数据,将图像绘在其上。
权利要求43所述的绘图方法包括一个位移量设定步骤,用于在象素数据要被绘制于该绘图设备的象素数据存储装置中时,以比一个象素更精确的精度,设定移动绘图位置的多个位移量,还包括一个绘图步骤,通过在相应于多个位移量的象素数据存储器装置的每个位置绘制象素数据,将图像绘在其上。
权利要求75所述的分发介质提供一个计算机程序,该程序有一个位移量设定步骤,用于在象素数据要被绘制于存储器中时,以比一个象素更精确的精度,设定移动绘图位置的多个位移量,还包括一个绘图步骤,通过相应于多个位移量在存储器的每个位置绘制象素数据,将图像绘在其上。
在权利要求1所述的绘图设备中,位移量设定装置在象素数据要被绘制于象素数据存储装置中时,以比一个象素更精确的精度,设定移动绘图位置的多个位移量,在象素数据存储装置中的绘图装置,通过在相应于位移量设定装置设定的多个位移量的每个位置绘制象素数据,将图像绘在其上。
在权利要求43所述的绘图方法中,在象素数据要被绘制于象素数据存储装置中时,以比一个象素更精确的精度,设定移动绘图位置的多个位移量,并通过在相应于多个位移量的象素数据存储器的每个位置绘制象素数据,将图像绘在其上。
在权利要求75所述的分发介质中,提供一个计算机程序,使计算机在象素数据要被绘制于存储器中时,以比一个象素更精确的精度,设定移动绘图位置的多个位移量,并通过相应于多个位移量在存储器的每个位置绘制象素数据,执行将图像绘在其上的处理。
图1示出了使用本发明绘图装置和方法的一个游戏机实施例的顶视图;图2示出了图1游戏机的正视图;图3示出了图1游戏机的侧视图;图4是显示CD-ROM51的一个顶视图;图5的方框图显示了图1游戏机主单元电路组成的一个例子;图6的方框图显示了图5单元中图形存储器的详细构成;图7(A)-7(D)是解释重写一个点的示意图;图8的示意图示出了重写一个点的结果;图9的示意图示出了包括2×2个子象素的一个象素;图10的示意图示出了当一个点只绘制一次而不重写的绘图结果;图11(A)-11(D)是解释重写一个点的示意图;图12的示意图示出了重写一个点的结果;图13(A)-13(D)的示意图用于解释绘制点的位置与重写结果的关系;图14(A)-14(D)是解释重写一条直线的示意图;图15的示意图示出了重写一条线的结果;图16(A)-16(D)是解释重写一条直线的示意图;图17(A)和17(B)的示意图示出了重写一条直线的结果;图18的流程图用于解释在图5所示的游戏机主单元中多边形的绘图处理;图19(A)和19(B)是用于解释从离视点最近的多边形开始,按次序绘图的原因的示意图;图20(A)和20(B)是用于解释从离视点最远的多边形开始,按次序进行绘图的情况的示意图;图21(A)和21(B)是用于解释从离视点最近的多边形开始,按次序进行绘图的情况的示意图;图22的流程图用于详细解释图18中所示的步骤S14的处理过程。
下面解释本发明的实施例。为了使实施例与权利要求书中所述的本发明引用的每个装置之间的相互关系清楚起见,在每个装置旁用括号标上相应实施例(只是例子)。以下对本发明的特征进行描述。
如权利要求1所述的绘图设备包括一个存储象素数据的象素数据存储器装置,该象素数据被输出到输出图像的两维输出装置(如图6的帧缓冲器141);一个位移量设定装置,用于在象素数据要被绘制于象素数据存储装置中时,以比一个象素更精确的精度,设定移动绘图位置的多个位移量(如图18的程序处理步骤S6);还包括在该象素数据存储装置中的一个绘图装置,通过在相应于位移量设定装置设定的多个位移量的每个位置绘制象素数据,将图像绘在其上(如图18的程序处理步骤S14)。
权利要求3、14、25和35所述的绘图设备进一步包括一个记数确定装置,确定绘图装置应该重写图像的重写次数(如图18的程序处理步骤S5)。
权利要求4、15、26和36所述的绘图设备可以进一步包括一个估算装置,估算向象素数据存储装置绘制一屏幕的象素数据所需要的绘制时间(如图18的程序处理步骤S4),记数确定装置根据估算装置估计的绘图时间确定重写次数。
如果图像是移动图像,权利要求6、17、28和38所述的绘图设备进一步包括一个校正装置,根据移动图像的移动校正位移量(如图18的程序处理步骤S10)。
如果图像是三维图像,权利要求8和9所述的绘图设备还包括一个分类装置,将单元图形按其深度方向次序排列(如图18的程序处理步骤S7),绘图装置从离视线最近的那些开始,按次序绘制单元图形。
权利要求12所述的绘图装置可以进一步包括一个操作装置,当规定的输入被给定时执行操作(如图1中的操作装置17);一个算术运行装置,读入在存储介质中存储的数据,根据操作装置(如图5中的主CPU111)的输入,用该数据执行规定的算术运算;以及一个例如GPU的象素数据产生装置,根据算术运算装置产生的算术运算的结果确定象素数据(如图5中的GPU115)。
在权利要求23所述的绘图设备中,如果图像是由单元图形组合而成的三维图像,则提供一个转换装置,根据视点将组成三维图像的单元图形转换为两维输出设备(如图5的主CPU111)的坐标系中的单元图形;一个分类装置,将由转换装置转换的单元图形按其深度方向次序排列(如图18的程序处理步骤S7);和一个深度存储装置,记录代表单元图形在其深度方向的位置的值(如图6中的Z缓冲器),利用该深度存储装置,绘图装置从靠近视点的那些开始,按次序绘制单元图形。
在权利要求33所述的绘图设备中,如果图像是由单元图形组合而成的三维图像,可以进一步包括一个操作装置,当规定的输入被给定时执行操作(如图1中的操作设备17);一个算术运行装置,读入在存储介质中存储的数据,根据操作装置(如图5中的主CPU11)的输入,用该数据执行规定的算术运算;一个转换装置,将作为由算术运算装置产生的结果所得到的单元图形转换为两维输出设备的坐标系中的单元图形;一个分类装置,将由转换装置转换的单元图形按其深度方向次序排列(如图18的程序处理步骤S7);和一个深度存储装置,记录代表单元图形在其深度方向的位置的值(如图6中的Z缓冲器142),利用该深度存储装置,绘图装置从靠近视点的那些开始,按次序绘制单元图形。
本说明并不仅仅限于上面所述的每个装置。
现在详细参看附图,图1是使用本发明的游戏机的一个实施例的顶视图,图2示出了图1游戏机的正视图(从图1的下面看到的视图),图3示出了图1游戏机的侧视图(从图1的右侧看到的视图)。
游戏机包括一个游戏机主单元2,一个操作设备(操作装置)17,该操作装置有一个近似于长方型的连接终端单元26与游戏机主单元2连接,一个记录设备38,同样与游戏机主单元2连接。
游戏机主单元2大体可以是长方型,其中心有一个盘安装单元3,其中可以安装存储了计算机程序(包括用于绘图处理的程序,后面将对此进行介绍)和游戏数据的游戏记录介质。在该实施例中,图4中示出的CD-ROM(密致盘-只读存储器)51可以被安装到盘安装单元3上或从中移开。不过游戏记录介质并不仅限于盘。
在盘安装单元3的左侧是一个复位开关4和电源开关5,当要复位游戏时操作复位开关,当要打开或切断电源时操作电源开关,右侧是一个盘操作开关6,当盘安装单元3要被打开或关上时操作该开关。在游戏机主单元2的前方是连接器7(A)和7(B),将操作设备17和记录设备38连接成一组。在该实施例中,连接器7(A)和7(B)可以连接两组操作设备17和记录设备38。然而,也可以根据需要采用多个连接器来连接两组或多组操作设备17和记录设备38。此外,通过给连接器7(A)或7(B)安上一个适配器,使其中一个连接器能够连接操作设备17和记录设备38的连接器数目扩充,就可以连接更多的操作设备和记录设备。
如图2和图3所示,连接器7(A)和7(B)是两级结构,其上面一级是与记录设备38连接的记录插入部分8,下面一级是与操作设备17的连接终端部分26连接的连接终端部分12。
记录插入部分8的插入孔呈水平长方形,在其较低一侧的两端的转角比较高一侧的两端转角要园,从而形成一种结构,使记录设备38不能由上向下插入。记录插入部分8还有活门9,保护进行电连接的内部连接端(没有示出)。
活门9的安装使得它时刻都被由例如弹簧线圈之类的弹性物体(没有示出)强迫向外打开。因此,当记录设备38被插入时,活门9被记录设备38插入部分的前端向内打开,当记录设备38被拔出后,它被弹性物体的强迫力恢复到原来的位置并自动关闭,从而防止灰尘进入内部连接终端,并使其不受外部冲击。
如图2和图3所示,连接终端插入部分12有一个水平方向呈长方形的插头孔,其中,在其较低一侧的两端的转角比较高一侧的两端转角要园,从而形成一种结构,使操作设备17的连接终端部分26不能由上向下插入,还有一种插入孔具有不同形状的结构,从而记录设备38不能由上向下插入。因此,记录设备38和操作设备17具有不同大小和形状的插入孔,从而不会将它们相互混淆。
如图1所示,操作设备17可以握在两手的手掌之间,用五个手指自由操作。它包括第一和第二操作部件18和19,它们为圆形,并且左右对称排列;第一和第二支撑部件20和21,它们与第一和第二操作部件18和19成一个角度伸出;一个选择开关22和一个启动开关23,它们在位于第一和第二操作部件18和19之间的狭窄部分;第三和第四操作部件24和25,它们从第一和第二操作部件18和19的前面伸出,还有连接终端部分26和电缆27,用于与游戏机主单元2进行电连接。
操作设备17也可以与游戏机主单元2用例如红外线直接电连接,而不需要中间连接终端部分26和电缆27。
可以在操作设备17中安装一部电机以使其振动。通过使操作设备17与游戏场景协调振动,用户可以有身临其境的参与感。当在操作设备17中内置电机时,可以采用具有不同转速的多个电机,这样用户可以有小振动、大振动和组合振动,与游戏的场景相适应。
连接终端部分26被接在电缆27的末端上,用于与游戏机主单元2产生电连接。并且如图3所示,它在其左右两侧各有一个进行过防滑脱处理(如压印凸边)的采用具有凸脊及凹槽的波纹图案的握持部件。另外,在连接终端部分26上的握持部件形成所谓的可缩回部件,并且其大小,即宽度W和长度L与下面描述的记录设备38的握持部件的大小相同。
记录设备38有一个内置的非易失性存储器,例如快速存储器,并且在其两侧有握持部件(图3),其构造与连接终端部分26的情况相同,从而方便将其接到游戏机主单元2和移开。此外,记录设备38的构造使得在例如游戏被暂时中断时,可以将该时的状态存储(记录)下来,从而可以在重新起动时通过从中读出该数据,从相应于该数据的状态开始,即从中断时的状态开始恢复该游戏。
如果用上面描述的游戏机玩游戏,用户例如将操作设备17与游戏机主单元2相连,并且在需要时,也将记录设备38与游戏机主单元2相连。通过操作盘操作开关6,用户将作为游戏记录介质的CD-ROM51放在盘安装单元3上,并操作电源开关5接通游戏机主单元2的电源。这样,在游戏机主单元2上回放游戏的图像和声音,从而用户可以通过运行操作设备17来玩游戏。
接下来,图5示出了图1的游戏机主单元2的电路构成。
该游戏机主单元2有两类总线,即主总线101和子总线102,用于在各模块之间交换数据,主总线101和子总线102由总线控制器116相连。
与主总线101相连的除了总线控制器116外,还有一个主CPU(中央处理器)111,如微处理器等,一个主存储器112,如RAM(随机存取存储器),一个主DMAC(直接存储器存取控制器)113,一个MDEC(MPEG(移动图形专家组)译码器)114和一个GPU(图形处理单元)115。
与子总线102相连的除了总线控制器116外,还有一个子CPU121,它例如与CPU111的构造相同,一个子存储器122,它例如与主存储器112的构造相同,一个子DMAC123,一个ROM(只读存储器)124,它例如保存操作系统,一个SPU(声音处理单元)125,一个ATM(异步传输模式)通信单元126,一个辅助存储装置127和一个输入装置接口I/F128。
在这里,数据由主总线101高速交换,由子总线102以低速交换,也就是说,通过将子总线102用于可以低速交换的数据,保证了主总线101的高速运行。
总线控制器116可以连接或断开主总线101和子总线102。如果主总线101与子总线102断开,那么从主总线101只能访问与主总线101相连的装置,从子总线102只能访问与子总线102相连的装置。如果子总线102与主总线101连接,那么任何装置都可以从主总线101或子总线102访问。在起始状态,如刚接通设备的电源的时刻,总线控制器116处于打开状态(主总线101与子总线102被连接的状态)。
主CPU111根据主存储器112中存储的程序执行各种处理。也就是说,当例如装置被启动时,主CPU111经由总线控制器116从ROM124(连接到子总线102)读取引导程序,并予以执行。这样,主CPU111使应用程序(即游戏程序和下面描述的执行绘图处理的程序)和必要的数据从辅助存储器127装入到主存储器112和子存储器122,然后主CPU111执行装载到主存储器112中的程序。
主CPU111有一个内置的GTE(几何变换引擎)117,GTE117具有例如并行操作机构,可以并行执行多个操作,并且根据主CPU的请求为该几何处理执行高速算术运算,如坐标系转换、光源计算、矩阵运算和矢量运算。通过根据主CPU111的请求进行处理(几何处理),GTE117产生并向主CPU111提供构成要显示的三维图像的多边形(在本说明书中,除了有三个或多个顶点的多边形外,还包括直线(线段)和点)的数据(以下简称为“多边形数据”)。当主CPU111从GTE117收到多边形数据后,它将该数据通过透视和投影变换转换为二维平面数据,并经由主总线101传送到GPU115。
主CPU111也有一个内置的高速缓冲存储器119,通过访问高速缓冲存储器119而不是主存储器112可以提高处理速度。
如上所述,主存储器112除了存储程序等外,还存储主CPU111处理所需要的数据。主DMAC113控制DMA传送到主总线101上的装置。但是,当总线控制器116处于打开状态时,主DMAC113也控制子总线102上的装置。可以与主CPU111并行操作的I/O装置的MDEC114起图像扩展引擎的作用,也就是说,MDEC114对由MPEG编码压缩的图像数据解码。
GPU115起描绘处理器的作用。也就是说,GPU115接收主CPU111发送的多边形数据,根据例如多边形顶点的色彩数据和指示深度(从视点的深度)的Z值,计算构成多边形的象素数据,并执行将其写入(画到)图形存储器118中的描绘处理。GPU115将写入图形存储器118中的象素数据读出来,并作为视频信号输出。另外,GPU115在必要时也从主DMAC113或子总线102上的装置中接收多边形数据,并根据该多边形数据执行描绘处理。
如图6所示,图形存储器118包括例如DRAM,并有一个帧存储器141,一个Z缓冲器142和一个纹理存储器143。帧存储器141以例如每次一帧的方式存储要在屏幕上显示的象素数据。Z缓冲器142存储在屏幕上要显示的图像中最靠近观察者的多边形的Z值,例如它有足够的存储容量存储一帧的Z值。纹理存储器143存储要附加到多边形上的纹理数据。
GPU115采用帧存储器141、Z缓冲器142和纹理存储器143执行描绘处理。也就是说,GPU115使构成最靠近观察者的三维图像的多边形的Z值存储起来,并根据存储在Z缓冲器142中的值,决定是否将象素数据绘制到帧缓冲器141。如果要绘制象素数据,那么从纹理存储器143读出纹理数据,并用该数据确定要绘制的象素数据,从而将图像绘制到帧存储器141。
GPU115还执行Z分类,即根据其深度的顺序将多边形分类,然后从最靠近观察者的多边形开始,按次序描绘。
再参看图5,子CPU121通过读出并执行存储在子存储器122中的程序执行各种处理。与主存储器112一样,子存储器122中存储了程序和需要的数据。子DMAC123控制到子总线102上的装置的DMA传送。同样,子DMAC123只有在总线控制器116处于闭合状态(当主总线101与子总线102断开)时取得总线使用权。ROM124,如上所述,存储引导程序和操作系统等等。ROM124中还存储了主CPU111和子CPU121的程序。ROM124具有较低的存取速度,因此它在子总线102上。
SPU125接收从子CPU121或子DMAC123发送的信息包,并根据这些包中的声音命令从声音存储器129读出音频数据。然后SPU125输出该读出的音频数据到图中没有示出的扬声器。ATM通信单元126执行对经由图中没有示出的公共通信线路进行的通信的控制(ATM通信控制)。这样,游戏机用户可以通过直接或经由因特网或所谓的个人计算机通信中心交换数据,与其它游戏机用户竞赛。
辅助存储器127通过例如盘驱动器回放存储在CD-ROM51(图1,图4)中的信息(程序和数据)。辅助存储器127也向记录设备38(图1)记录信息或从中读取信息。输入装置接口128是接收作为控制板或外部输入设备的相应于操作设备17(图1)的操作的信号(例如由其他装置产生的图像和音频信号)的接口,它向子总线102输出响应来自外部的输入产生的信号。声音存储器129存储音频数据。
在如上所述结构的游戏机主单元2中,当电源接通后,从ROM124读出启动程序并在主CPU111中执行,从而程序和数据从安装在辅助存储器127上的CD-ROM51(图4)中读出,并扩展到主存储器112和子存储器122中,主CPU111或子CPU121分别执行扩展到主存储器112或子存储器122中的程序,从而回放游戏图像(这里假定为移动图像)和声音。
也就是说,例如,在主存储器111中,根据存储在主存储器112中的数据产生用于绘制构成所述的三维图像的多边形的多边形数据。该多边形数据被打成信息包并经由主总线101提供给GPU115。
当从主CPU111接收到一个信息包时,GPU115从最接近观察者的多边形开始,进行Z分类并使用Z缓冲器142向帧存储器141绘图。向帧存储器141绘图的结果被相应地读入GPU115,并以视频信号输出。这样,游戏的三维图像被显示在例如未示出的显示器上作为二维输出装置的二维屏幕上。
与此同时,在子CPU121中,根据存储在子存储器122中的数据产生指示音频发生的声音命令,这些声音命令被处理成信息包并经由子总线102提供给SPU125。SPU125从声音存储器129读取音频数据,并根据子CPU121的声音命令输出该音频数据,由此输出了游戏的背景音乐和其它声音。
接下来对在图5中游戏机主单元2进行的多边形绘图处理作详细描述。
如上所述,多边形象素数据由游戏机主单元2的GPU115绘制到帧缓冲器141。然而,当该操作完成时,以比一个象素更精确的精度,如子象素精度,移动象素数据的绘图位置的多个位移量被设定,并且象素数据被相应于这些多个位移量绘制到帧缓冲器141的每个位置(存储单元),由此,多边形,以及由该多边形构成的三维图像被重写。
也就是说,假定要绘制在三维空间坐标为(x,y,z)的一个点,在主CPU111中该点(x,y,z)被根据视点和其它信息进行几何处理,并透视转换为屏幕坐标系(与要显示三维图像的显示器的屏幕相应的坐标系)中的点(X,Y,Z),该屏幕坐标系是一个二维平面。这里,x,y,z,X,Y,Z是用浮点或定点表示的值。平面坐标系中点(X,Y,Z)的Z代表从视点看到的点在深度方向的位置。
同样,GPU115从视点的角度,为点(X,Y,Z)确定作为色彩信息的R、G、B信号(Ri,Gi,Bi)和其它信息、光源、纹理等等。Ri,Gi,Bi中的i指示它是一个整数,在该实施例中,Ri,Gi,Bi每个例如由8位表示,因此是0-255之间的值。
现在假定例如重写次数被设定为4次,每个象素被水平和垂直分成4部份,从而对每个象素产生16(=4×4)个子象素,如图7(A)-7(D)所示,当从第一至第四次绘制点(X,Y,Z)时,GPU115对屏幕坐标系的绘图位置设定每个位移量(dX,dY),例如,为(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5),这是两倍子象素的精度(这里是象素的1/2)。在图7(A)-7(D)(以及后面的图8-17)中,X或Y坐标轴的正方向分别朝右或朝上。
随后,CPU115通过根据位移量(dX,dY)移动绘图位置来绘制点。
也就是说,在第一次绘图时,GPU115用坐标(0.0,0.0)移动点(X,Y,Z),并将移位后的点(X,Y,Z)转换为子象素精度的点(Xs,Ys,Zs)(以下,为方便起见,将之称为子象素精度)。Xs,Ys,Zs中的s指示它是具有子象素精度的一个值;在图7(A)-7(D)中,由于一个象素被水平和垂直分为四等分,子象素精度是0.25(=1/4)。也就是说,在图7中,在左下角的子象素坐标被设定为(0.0,0.0),当向右或向上移动时,子象素坐标每次增加0.25。
然后,相应于点(Xs,Ys,Zs)的色彩信息(Ri,Gi,Bi)被写入包括相应于点(Xs,Ys,Zs)的子象素的象素的位置。对色彩信息来说(象素信息),由重写次数划分而得到的值被写入。详细地说,由于这里重写次数是4次,(Ri/4,Gi/4,Bi/4)被作为色彩信息写入。
这里假定要绘制的点(X,Y,Z)的X或Y坐标分别为1.6或1.3,在第一次绘图时,点(1.6,1.3,Z)被(0.0,0.0)位移,并且如图7(A)所示,正确地说要被写入的色彩信息的1/4(在图7(A)中用垂直的虚线表示的部分)被写入到包括相应于点(1.5,1.25,Zs)的子象素的象素的位置(1,1),点(1.5,1.25,Zs)是通过对这一位移的点(1.6,1.3,Z)作子象素精度转换得到的(由图7(A)中的黑圈表示)。
在第二次绘制时,GPU115用(0.5,0.0)位移点(X,Y,Z),并且将该位移的点子象素精度转换为点(Xs,Ys,Zs)。然后色彩信息(Ri,Gi,Bi)的1/4被重写到包含与点(Xs,Ys,Zs)相应的子象素的象素位置。
也就是说,如上所述,假定要绘制的点(X,Y,Z)的X或Y坐标分别为1.6或1.3,在第二次绘图时,点(1.6,1.3,Z)被位移(0.5,0.0),并且如图7(B)所示,正确地说要写入的色彩信息的1/4(在图7(B)中用水平的虚线表示的部分)被写入到包括相应于点(2.0,1.25,Zs)的子象素的象素的位置(2,1),点(2.0,1.25,Zs)是通过对位移后的点(2.1,1.3,Z)作子象素精度转换得到的(由图7(B)中的黑圈表示)。详细地说,在象素(2,1)中,正确地说要被写入的色彩信息的1/4被加到已经写入的色彩信息上,并且其和被写入象素(2,1)。
在第三次和第四次绘图时也采取同样的步骤。也就是说,假定例如要绘制的点(X,Y,Z)的X或Y坐标分别为1.6或1.3,在第三次绘图时,点(1.6,1.3,Z)被位移(0.5,0.5),并且如图7(C)所示,适当地说要被写入的色彩信息的1/4(在图7(C)中用斜虚线表示的部分)被写入到包括相应于点(2.0,1.75,Zs)的子象素的象素的位置(2,1),点(2.0,1.75,Zs)是通过对位移后的点(2.1,1.8,Z)作子象素精度转换得到的(由图7(C)中的黑圈表示)。详细地说,在象素(2,1)中,适当地说要被写入的色彩信息的1/4被加到已经写入的色彩信息上,并且其和被写入象素(2,1)。
在第四次绘图时,点(1.6,1.3,Z)被位移(0.0,0.5),并且如图7(D)所示,适当地说要被写入的色彩信息的1/4(在图7(D)中用斜虚线表示的部分)被写入到包括相应于点(1.5,1.75,Zs)的子象素的象素的位置(1,1),点(1.5,1.75,Zs)是通过对所位移的点(1.6,1.8,Z)作子象素精度转换得到的(由图7(D)中的黑圈表示)。详细地说,在象素(1,1)中,适当地说要被写入的色彩信息的1/4被加到已经写入的色彩信息上,并且其和被写入象素(1,1)。
上面所述的绘图点(1.6,1.3,Z)的结果(重写的结果)示于图8。
通过进行如上所述的重写,分辨率基本上可以增加4倍,从而可以达到排除假信号。
如果要进行重写,当每次绘图的位移量(dX,dY)如上所述被设置为(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5)时,绘图点的位置有时被位移到其适当位置的右上角,因此,为了防止这种位移,位移量(dX,dY)可以设置到例如(-0.25,-0.25),(0.25,-0.25),(0.25,0.25),(-0.25,0.25)(从而每次位移量dX或dY的平均值为零)。
接下来,尽管对图7(A)-7(D)和图8中的每个象素假定了16个子象素,但如果例如每个象素被划分为如图9所示在水平和垂直方向的两个相等部分时,也就是假定每个象素有4(=2×2)子象素时,也可以进行同样的重写操作。
如图10所示,如果要绘制点(1.6,2.2,Z)(为简便起见,下面省略Z坐标),然后,适当地讲,对点(1.6,2.2)作子象素精度转换,并被设置到如图10中的黑圈所示的点(1.5,2.0),然后,适当地说要被写入的色彩信息被写入到包括相应于点(1.5,2.0)的子象素的象素位置(1,2)。
图11(A)-11(D)示出了解释点的重写的示意图。图11(A)示出了当位移量为dX=0.0,dY=0.0时的一个显示象素(第一次),图11(B)示出了当位移量为dX=0.5,dY=0.0时的一个显示象素(第二次),图11(C)示出了当位移量为dX=0.0,dY=0.5时显示的象素(第三次),图11(D)示出了当位移量为dX=0.5,dY=0.5时显示的象素(第四次)。
基于如上所述,对图5所示的游戏机主单元2,在起始阶段,当从第一次到第四次开始绘图时,GPU115为屏幕坐标系中的绘图位置分别设置每个位移量(dX,dY),例如为(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5),它们被做了子象素精度处理(这里是象素的1/2)。然后,在第一次绘图时,点(1.6,2.2)被移位(0.0,0.0),对移位后的点(1.6,2.2)进行子象素精度处理,并设置为点(1.5,2.0),如图11(A)中的黑圈所示。然后,只是适当地说要被写入的色彩信息的1/4的色彩信息,被写入包括相应于点(1.5,2.0)的子象素的象素的位置(1,2),如图11(A)中垂直虚线所示。
在第二次绘图时,点(1.6,2.2)被移位(0.5,0.0),对移位后的点(2.1,2.2)进行子象素精度处理,并设置为点(2.0,2.0),如图11(B)中的黑圈所示。然后,只是适当地说要被写入的色彩信息的1/4的色彩信息,被写入包括相应于点(2.0,2.0)的子象素的象素的位置(2,2),如图11(B)中水平虚线所示。
在第三次绘图时,点(1.6,2.2)被移位(0.0,0.5),然后,对移位后的点(1.6,2.7)进行子象素精度处理,并设置为点(1.5,2.5),如图11(C)中的黑圈所示。然后,只是适当地说要被写入的色彩信息的1/4的色彩信息,被写入包括相应于点(1.5,2.5)的子象素的象素的位置(1,2),如图11(C)中左下斜虚线所示。
在第四次绘图时,点(1.6,2.2)被移位(0.5,0.5),然后,对移位后的点(2.1,2.7)进行子象素精度处理,并设置为点(2.0,2.5),如图11(D)中的黑圈所示。然后,只是适当地说要被写入的色彩信息的1/4的色彩信息,被写入包括相应于点(2.0,2.5)的子象素的象素的位置(2,2),如图11(D)中右下斜虚线所示。
如上所述的绘图点(1.6,2.2)的结果如图12中的虚线所示,通过比较图10和图12,可以清楚地看到,通过重写处理达到了消除假信号的效果。
这里,无论是图7(A)-7(D)的情况,还是图11(A)-11(D)的情况,位移量都采用了(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)。然而,在四次绘图中使用位移量的次序是不同的(图7中的次序是(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5),图11的次序是(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5))。但位移量的使用次序对重写的图形质量没有影响。
同样,在图7(A)-7(D)的情况下进行的子象素精度处理也与图11(A)-11(D)的情况不同(在图7(A)-7(D),它是一个象素精度的1/16,而在图11(A)-11(D)中是一个象素精度的1/4)。但这对重写图形的质量也没有影响(如果进行四次重写,无论子象素精度是1/4还是1/16,对“重写导致”的图形质量改进都没有影响,但如果考虑重写,那么较高的子象素精度会导致较好的图形质量)。
图13(A)-13(D)是解释重写过程的示意图。图13(A)的直线示出了当1.5=<X<2.0,2.5=<Y<3.0(象素值=64)时的重写结果。图13(B)示出了当1.5=<X<2.0,2.0=<Y<2.5(象素值=128)时的重写结果。图13(C)示出了当1.0=<X<1.5,2.5=<Y<3.0(象素值=128)时的重写结果。图13(D)示出了当1.0=<X<1.5,2.0=<Y<2.5(象素值=255)时的重写结果。
同样,如上所述,如果重写次数设置为4次,在进行四次绘图时的位移量被设置为(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5),当点(X,Y)的X坐标大于等于1.5并小于2.0,Y坐标大于等于2.5并小于3.0,那么,当如图13(A)所示进行第一至第四次绘图时,分别绘制由坐标(1,2),(2,2),(1,3),(2,3)表示的象素。由于在进行每次绘图时,被重写的色彩信息确切地说是要绘制的色彩信息的1/4,如果现在亮度由8位表示(0至255),并且点(X,Y)的亮度被设置为最大值255,那么由坐标(1,2),(2,2),(1,3),(2,3)表示的每个象素的亮度是64,即255的1/4(这里假定小数部分被入到下一个最大的整数)。
当点(X,Y)的X坐标例如大于等于1.5并小于2.0,Y坐标大于等于2.0并小于2.5,那么,当如图13(B)所示进行第一至第四次绘图时,分别绘制由坐标(1,2),(2,2),(1,2),(2,2)表示的象素。在这种情况下,只是确切地说要写入的色彩信息的1/4的色彩信息对由坐标(1,2)和(2,2)表示的象素各重写一次,如果现在亮度由8位表示,并且点(X,Y)的亮度被设置为最大值255,那么由坐标(1,2)和(2,2)表示的每个象素的亮度为128。也就是说,根据如上所述,第一次绘图亮度是64,从而第二次绘图的象素亮度是128(=64+64)。
当点(X,Y)的X坐标例如大于等于1.0并小于1.5,Y坐标大于等于2.5并小于3.0,那么,当如图1 3(C)所示进行第一至第四次绘图时,分别绘制由坐标(1,2),(1,3),(1,2),(1,3)表示的象素。在这种情况下,只是确切地说要写入的色彩信息的1/4的色彩信息对由坐标(1,2)和(1,3)表示的象素各重写一次,如果现在亮度由8位表示,并且点(X,Y)的亮度被设置为最大值255,那么由坐标(1,2)和(1,3)表示的每个象素的亮度为128。与图13(B)的情况相同。
当点(X,Y)的X坐标例如大于等于1.0并小于1.5,Y坐标大于等于2.0并小于2.5,那么,当如图13(D)所示进行第一至第四次绘图时,绘制由坐标(1,2)表示的象素。在这种情况下,由于只是确切地说要写入的色彩信息的1/4的色彩信息要重写四次,对由坐标(1,2)表示的象素各重写一次,如果现在亮度由8位表示,并且点(X,Y)的亮度被设置为最大值255,那么由坐标(1,2)表示的象素的亮度为255。也就是说,根据如上所述,第一次绘图亮度是64,从而第四次绘图的象素亮度确切地说应该是256(=64+64+64+64)。但由于这里亮度的最大值被设置为155,比255大的256被削减为最大值255。
前面介绍了绘制点的情况,接下来将参考图14(A)-14(D)详细介绍绘制线段的情况,其中,图14(A)示出了第一次绘图的情况,图14(B)示出了第二次绘图的情况,图14(C)示出了第三次绘图的情况,图14(D)示出了第四次绘图的情况。
要绘制的线段的起点或终点分别由(x1,y1,z1)或(x2,y2,z2)表示。并且进一步规定起点和终点是经过透视转换(透视和投影转换)后屏幕坐标系中的点。
假定例如重写次数被设定为4次,并且每个象素被水平和垂直各分为4等分,从而对每个象素产生16个子象素,如图14所示,当线段被绘制第一至第四次时,GPU115对屏幕坐标系中的每个绘图位置设置每个位移量为例如(0.0,0.0),(0.5,0.0),(0.5,0.5),(0.0,0.5),它们是两倍的子象素(这里为象素的1/2)精度。
此后,CPU114通过根据位移量(dX,dY)移动绘图位置来绘制线段。
也就是说,在第一次绘图时,GPU115将起点(x1,y1,z1)和终点(x2,y2,z2)分别移位(0.0,0.0),并在这些点用DDA(数字差分分析)操作(稍后讨论)和色彩信息等等确定在位移的起点和终点之间用子象素精度插值的点。然后,用点(X1s,Y1s,Z1s)至(Xns,Yns,Zns)指示这组子象素精度点,色彩信息(即如上所述,确切地说是色彩信息的1/4的色彩信息)被写入包括相应于这些点(X1s,Y1s,Z1s)至(Xns,Yns,Zns)的子象素的象素的位置。
这时,例如绘制包括相应于构成线段的子象素精度点的两个或多个子象素的象素,并且作为色彩信息,将例如包括在该象素中的子象素的色彩信息的平均值(的1/4),写入将要绘制的象素中。
第二至第四次绘图方式与第一次相同,不过这时的位移量被分别设置为(0.5,0.0),(0.5,0.5),(0.0,0.5)。
这里,假定要绘制的线段的起点或终点分别是例如点(1.6,1.3,z1)或点(4.6,4.3,z2),在第一次绘图时,绘制由图14(A)的垂直虚线示出部分的象素;在第二次绘图时,绘制由图14(B)的水平虚线示出部分的象素;在第三次绘图时,绘制由图14(C)的左下斜虚线示出部分的象素;在第四次绘图时,绘制由图14(D)的右下斜虚线示出部分的象素。由此绘制的线段的结果由图15的虚线所示。
接下来,尽管对图14(A)-14(D)和图15中每个象素假定16个子象素,但如果如图16(A)-16(D)所示将每个象素水平和垂直均分为相同的两部分,从而每个象素产生4个子象素,也可以进行同样的重写操作。
图16(A)示出了当位移量为dX=0.0,dY=0.0时的显示象素。图16(B)示出了当位移量为dX=0.5,dY=0.0时的显示象素。图16(C)示出了当位移量为dX=0.0,dY=0.5时的显示象素。图16(D)示出了当位移量为dX=0.5,dY=0.5时的显示象素。
也就是说,如果要如上所述通过四次重写绘制起点或终点分别为点(1.6,1.3,z1)或点(4.6,4.3,z2)的一条线段,然后,在第一至第四次绘图时,分别设置子象素精度(象素的1/2的精度)点(0.0,0.0),(0.5,0.0),(0.0,0.5),(0.5,0.5)作为屏幕坐标系中绘图位置的位移量(dX,dY),那么在第一次绘图时,绘制由图16(A)的垂直虚线示出部分的象素;在第二次绘图时,绘制由图16(B)的水平虚线示出部分的象素;在第三次绘图时,绘制由图16(C)的左下斜虚线示出部分的象素;在第四次绘图时,绘制由图16(D)的右下斜虚线示出部分的象素。
这时,绘制例如包括相应于构成线段的子象素精度点的两个或多个子象素的象素,并且作为色彩信息,将例如包括在该象素中的子象素的色彩信息的平均值(的1/4),写入将要绘制的象素中。
如上所述通过重写绘制线段的结果由图17(A)的虚线所示。
在图17(A)中,消除假信号的直线被产生了四次。图中示出了子象素DDA结果和包括有效子象素的显示象素。
反之,如果通过一次绘图来绘制同一线段,绘图的结果将如图17(B)中的左下斜虚线所示。从图17(A)-17(B)可以清楚地看到,通过重写可以减少假信号。
接下来,参考图18所示的流程图,来描述图5的游戏机主单元2中进行的多边形绘图处理。这里,假定绘制多边形所需要的数据,包括形状数据和光源数据,已经由主CPU111从CD-ROM51读出,并存储在主存储器112中。
在绘图过程中,首先,在步骤S1,主CPU111经由主总线101读出例如绘制包括一个三维图像的一帧的多边形的数据,并提供给GTE117。采用GTE117,在步骤S2,根据视点对三维空间中每个多边形进行几何处理,并对几何处理后的数据进行透视转换。这里视点是由例如用户运行操作设备17(图1)来给出的。
之后进行到步骤S3,通过对已经透视转换后的屏幕坐标系中的多边形执行亮度计算和纹理地址计算,在主CPU111中确定多边形数据,并将其经由主总线101提供给GPU15。
这里多边形数据包括例如X,Y,Z,R,G,B,α,S,T,Q,F。
在多边形数据X,Y,Z,R,G,B,α,S,T,Q,F中,数据X,Y,Z分别代表三角形的三个顶点的X,Y,Z坐标,R,G,B分别代表三个顶点的红、绿、蓝亮度值。
同样,α代表一个混合因子,该因子表示当要绘制象素的RGB值,并且要与已经绘制的象素的RGB值进行α混合时,该混合的比率。α是一个例如大于或等于0并小于或等于1的实数,当要绘制的象素的象素值(RGB值)由Fc表示,已经绘制的象素的象素值用Bc表示时,通过α混合得到的象素值Cc由例如下面的算式得到Cc=αFc+(1-α)BcS,T,Q分别代表三角形的三个顶点的纹理坐标(纹理的同一坐标(homogeneous coordinate))。也就是说,通过纹理映射将花纹(纹理)加到一个物体的表面,并且S,T,Q被用于该纹理映射。用纹理大小分别乘以S/Q,T/Q得到的值为纹理地址。
F是表示要将绘制的象素变得模糊时的模糊程度,例如,该值越大,显示的影像越模糊。
在多边形数据被确定之后,我们进行到步骤S4,在主CPU111中估算绘制一帧图像的时间。也就是说,主CPU111由多边形的数目,也就是在一帧中要绘制的多边形的数目(在步骤S1中读出的数据),估算例如一次绘制一帧需要的时间。然后,在步骤S5,主CPU111确定根据在步骤S4中估算的绘图时间确定重写次数N,并将其经由主总线101提供给GPU115。
这里,在图7(A)-7(D)至图17(A)-17(B)的情况下,重写次数被设定为一个固定值,四次。但是,如果重写次数被设定为一个固定值,如果构成一帧的多边形的数目庞大,那么绘图可能不能在一帧的时间内完成,从而处理将会失败。另一方面,如果忽视RGB值的动态范围和子象素精度,重写次数越大,分辩率就越好。因此,在本实施例中,重写次数N是根据一帧的绘图时间自适应确定的,从而可以在一定范围内进行尽可能多次重写,以保证处理不会失败(这里,该范围是可以保持帧速率的一个范围)。
但是,如果构成一帧的多边形数目有限,那么重写次数可以被设定为一个能够保证处理不会失败的固定值。如果重写次数可以与构成一个象素的子象素的数目一样多,从理论上讲,这样的重写对改进图像质量的效果最大,并且重写次数超出该数目并不能获得额外的效果。因此,在设备的处理能力足够,并且既使重写次数被设定为大于构成一个象素的子象素的数目,处理也不会失败,理想情况是要求将重写次数设定为构成一个象素的子象素数目,从而避免处理“浪费”。基于同样的原因,既使重写次数是自适应确定的,理想情况是当重写次数大于构成一个象素的子象素数目时,要求将其限制到构成一个象素的子象素数目。
当重写次数N被确定后,我们进入步骤S6,在该步骤,主CPU111在进行与重写次数N一样的多次绘图的情况下,对每次绘图设定位移量(dX,dY),并将其提供给GPU115.理想情况是要求位移量被设定为子象素精度或更好,而小于一个象素的精度。
当GPU115接收到如上所述由CPU111提供的一帧的多边形数据、重写次数N、和重写次数的位移量时,在步骤S7进行Z分类,将包括一帧的多边形按其深度方向的次序分类。Z分类的详细描述可参考例如未审查专利申请H7-114654(1995)。
然后,在步骤S8,GPU115将帧缓冲器141清空,并进行到步骤S9,将记录绘图次数的变量n初始化为例如1。接着进行到步骤S10,GPU115在第n次绘制每个多边形时,根据其移动校正位移量。
除了上面所述的以外,多边形数据还包括多边形运动矢量。现在假定一个给定的多边形的运动矢量是(vx,vy),并且(dXn,dYn)被设定为用于第n次绘制多边形的位移量,该位移量(dXn,dYn)被校正为例如(dXn+vx/N,dYn+vy/N)。通过用这样校正的位移量绘图,可以得到运动模糊效果。
在对位移量校正之后,我们进行到步骤S11,在该步骤GPU115用校正的位移量对每个多边形的顶点的坐标移位,然后,进行到步骤S12。在步骤S12,Z缓冲器142在GPU115中被初始化为例如+∞(这里假定点在屏幕内的位置越深,Z值就越大),接着进入步骤S13。在步骤S13,对多边形顶点的坐标作子象素精度转换,通过以子象素精度执行DDA算法运算,确定构成多边形的边和内部的子象素的RGB值等等。
这里,DDA算法运算指在两个点之间通过线性插值确定构成两点之间的线段的象素的每个值(RGB值等等)的算术运算。也就是说,例如当两点之间的一点被作为起点,另一点被作为终点,并给起点和终点指定一定的值,然后,通过用在起点和终点之间的象素数目去除起点值和终点值之间的差,确定赋给起点和终点的值的比例变化(变化率),在起点和终点之间的每个象素的值,是在从起点进行到终点时,通过将变化率连续加到(积分)指定给起点的值确定的。
例如,假定象素p1,p2,p3是一个三角形的三个顶点,用子象素精度相应于子象素p1和p2、子象素p2和p3、子象素p1和p3执行DDA算术运算,从而将X,Y坐标作为变量,确定沿多边形三边的子象素的多边形数据Z,R,G,B,α,S,T,Q,以及位于多边形内部的子象素的多边形数据Z,R,G,B,α,S,T,Q。
进行到步骤S14作重写处理,由此,在GPU115中,采用Z缓冲器142将构成多边形的象素的RGB值写入到帧缓冲器141。
这里,在步骤S14中最终被写入到帧缓冲器141的RGB值,在GPU115中以例如下面的方式确定。
也就是说,GPU115根据构成多边形的子象素的多边形数据X,Y,Z,R,G,B,α,S,T,Q进行纹理映射,该多边形数据是DDA算术运算的结果。详细地说,CPU115通过例如用Q去除S、T,计算纹理地址U(S/Q),V(T/Q),以及根据需要进行各种滤波处理,计算在每个子象素的X、Y坐标位置的纹理色彩。也就是说,GPU115从纹理存储器143读出相应于纹理地址U、V的纹理数据(纹理色彩数据)。另外,GPU115对作为这个纹理数据的RGB值和作为DDA算术运算结果的RGB值执行各种滤波处理,也就是说,它将两者按一定的比例混合,根据模糊值F混合预先设定的色彩,并计算构成多边形的每个子象素的最终RGB值。
在步骤S14,如上所述确定的RGB值被写入帧缓冲器141。
按照一般规则,对在步骤S7中根据深度方向进行Z分类的多边形,对帧缓冲器141的写入是按次序进行的,从最接近视点到最远点。其理由介绍如下。
如果只绘制构成一个象素的子象素中的一个,那个子象素的RGB值被写入到相应于包括该子象素的一个象素的帧缓冲器141中的地址,但是,如果要绘制构成一个象素的子象素中的多个,那么多个子象素的RGB值,例如其平均值,被写入。
在步骤S14,当向帧缓冲器141写入一帧的RGB值的操作完成后,控制过程进行到步骤S15,在该步骤确定变量n是否大于写入次数N,如果不大于,那么控制进行到步骤S16,在其中将变量n增1,然后控制返回到步骤S10。在步骤S10,GPU115校正用于第n次绘制每个多边形的位移量,校正依据是多边形的移动,之后重复步骤S10至S16,直到在步骤S15确定变量n大于重写次数N为止。由此完成重写。
另一方面,如果在步骤S15确定了变量n大于重写次数N,即对一帧已经做了N次重写,GPU115读出存储在帧缓冲器141中的一帧的RGB值,将其输出到显示器,并返回步骤S1。然后,在步骤S1,主CPU111经由主总线101从主存储器112读出绘制构成下一帧的三维图像的多边形的数据,之后重复同样的处理,从而显示一个运动图像。
接着,对于根据其深度方向进行Z分类的多边形,对帧缓冲器141的写入是按次序进行的,从最接近视点到最远点。这是因为如下所述是通过重写操作将RGB值写入帧缓冲器141的,在其中它们与原先写到帧缓冲器141中的RGB值相加。
也就是说,现在,考虑图19(A)中的情况,其中包括多边形A和B的帧C已经被写入到帧缓冲器141中,并且包括多边形A和B的另一帧C将以这种状态被重写到帧缓冲器141。同样还假定多边形A比多边形B的位置更深,并且多边形A和B部分重叠。
在这种情况下,由于如图18的流程图所述,在步骤S14进行重写处理之前,Z缓冲器142在步骤S12中被清零,等全部的帧C被写入到帧缓冲器141之后,Z缓冲器142处于这样一种状态,即相应于无限远(最深处)的一个值被作为Z值写入,如图19(B)所示。
在多边形A或B之间,如果例如位于深度侧的多边形B被首先写入,位于观察者一侧的多边形A在其后写入,那么当绘制多边形B时,记录在Z缓冲器142中的Z值代表无限距离,因此,通过采用Z缓冲器142绘制多边形B,也就是说,通过将多边形B的RGB值加到已经存储在帧缓冲器141中的RGB值上,已经绘制到帧缓冲器141中的帧C的多边形B部分被重写,如图20(A)所示。在这种情况下,多边形B的Z值被写入到Z缓冲器中相应于多边形B的部分。
如果在此之后采用Z缓冲器142将多边形A写入到帧缓冲器141,位于多边形B的这一侧的多边形A的绘制不受Z缓冲器142的阻止,从而整个多边形A被写入帧缓冲器141。也就是说,多边形B的所有RGB值被加到帧缓冲器141中已经存储的RGB值中。由此,多边形A和B的重叠部分(图20中的阴影部分)受到绘制多边形B的影响,既使确切地说只应该绘制多边形A。
如果如上所述进行重写(其中一个多边形的RGB值被加到原先已经写到帧缓冲器141中的RGB值上),那么当位于较远处的一个多边形在位于较近处的多边形之前绘制时,它们的重叠部分将受到位于较远处的多边形的影响,并且该位于较远处的多边形,原本应该由位于较近处的多边形将其隐藏表面消除,现在仍然可见。
因此,为了防止这种执行隐藏面消除的失败,如图18所述,在这个实施例中,绘制多边形是对已经根据其深度作了Z分类的多边形进行的,并且绘图是从最接近视点的次序开始。
也就是说,例如在上面所述的情况下,在多边形A和B之间,先绘制较近的多边形A,然后绘制较远的多边形B。在这种情况下,在多边形A的绘图时刻,存储在Z缓冲器142中的Z值代表无限距离,因此,通过采用Z缓冲器142绘制多边形A,也就是说,通过将多边形A的RGB值加到已经存储在帧缓冲器141中的RGB值上,已经绘制在帧缓冲器141中的帧C的多边形A部分被重写。在这种情况下,多边形A的Z值被写入到Z缓冲器142中相应于多边形A的部分。
在此之后如果多边形B被采用Z缓冲器142写入到帧缓冲器141,对相比于多边形A而言,位于较远处的多边形B的绘制,其与多边形A重叠的部分将受到Z缓冲器142的阻止,从而多边形B中不与多边形A重叠的部分被重写到帧缓冲器141,但与多边形A重叠的部分没有重写到帧缓冲器141中(没有示出)。其结果是对多边形A和B的重叠部分,只有较近的多边形A被绘制,从而避免了由于多边形B造成的任何影响。也就是说,可以保证隐藏表面的消除。
在进行重写时隐藏表面的消除,除了可以通过如上所述的Z分类和Z缓冲器142的结合来实现外,也可以通过用与帧缓冲器141类似的一个缓冲器(为了简单起见,在下面称为第二帧缓冲器)实现。也就是说,只要采用Z缓冲器142向第二帧缓冲器绘图,并将第二帧缓冲器的结果重写到帧缓冲器141中即可。然而,在这种情况下,不再需要进行Z分类,但第二帧缓冲器必须与帧缓冲器141具有相同的容量。
Z分类与Z缓冲器142的组合,除了用于进行重写之外,也可以用于在利用α混合进行绘图时,例如在绘制半透明的多边形时,或在绘制阴影时,产生自然图像(例如,对半透明多边形利用Z分类和Z缓冲器的组合,在本申请人的一份先申请H8-158145(1996)中作了公开)。但是,在重写时消除隐藏线的情况和与绘制半透明多边形的情况相比,采用Z分类和Z缓冲器组合处理是不同的,因此必须根据特定的情况进行处理算法转换。
接着,参考图22的流程图,我们在步骤S14描述重写过程的细节。这里,为了简化说明起见,我们假定Z值和RGB值已经被指派给象素单元,而不必考虑子象素。同样,用p(x,y)指示从左起算的x单元和从底部起算的y单元位置处的象素,用Z(x,y)表示该象素p(x,y)的Z值,用depth(x,y)表示与存储在Z缓冲器142的象素p(x,y)相应的存储值,还用n(x,y)表示在帧缓冲器141中相应于象素p(x,y)的位置的存储值。
在重写过程中,首先,在步骤S21,在构成现在要绘制的帧的所有象素中的一个规定的象素p(x,y)被作为感兴趣的象素,并确定所关心的p(x,y)的该象素的Z值Z(x,y)是否小于或等于存储在Z缓冲器142中的depth(x,y)值。在步骤S21,如果确定Z值Z(x,y)不小于存储的depth(x,y)值,也就是说,如果有一个多边形比包括感兴趣的象素p(x,y)的这个多边形更靠近,并且它还没有被写入到帧缓冲器141,那么控制返回步骤S21,将一个没作为感兴趣的象素的象素作为新的感兴趣的象素,之后重复同样的处理过程。
同样,在步骤S21,如果确定Z值Z(x,y)小于或等于存储的depth(x,y)值,那么控制进行到步骤S22,进行亮度降低处理。也就是说,如果感兴趣的象素p(x,y)的RGB值用M(x,y)表示,用重写次数N除RGB值M(x,y),其商(这里忽略小数部分)被确定为要重写的RGB值m(x,y)。
如果小于或等于x/y的最大整数由INT[x/y]表示,在亮度降低处理中,用算式m(x,y)=INT[M(x,y)/N]进行计算。
如果M(x,y)/N为整数,那么没有问题,但如果它包括一个分数部分,那么亮度降低就会发生。也就是说,如果例如最大亮度值是255,如果考虑以这个最大亮度值255通过四次重写来绘图,那么通过亮度降低处理,每次绘图时的亮度值为63(=INT[255/4])。因此,既使以亮度值63绘图四次,也就是说,如果将63加上4次,结果只是252,小于原来的亮度值255。
因此,如果通过亮度降低操作得到的值INT[M(X,Y)/N]的N倍小于原来的RGB值M(x,y),要重写的RGB值m(x,y)可以被设置为将预定的校正值D与值INT[M(X,Y)/N]相加的和。
校正值D必须被设置为使值INT[M(X,Y)/N]与该校正值D的和的N倍大于或等于原来的RGB值M(x,y)。详细地说,如果如上所述,以最大亮度值255通过四次重写来绘图,那么校正值D被设置为例如1。在这种情况下,每次绘图的亮度为64(=63+1),如果以亮度值64绘图4次,结果将为256.这里最大亮度值是255,因此超过这个值的值被剪切为该最大值255.
在亮度降低处理之后,在步骤S23将相应于感兴趣的象素p(x,y)的存储值n(x,y)从帧缓冲器141中读出,控制进行到步骤S24,通过将存储值与亮度降低处理后得到的RGB值m(x,y)相加,进行重写处理。这里相加的结果用v(x,y)表示。
在步骤S25,步骤S24中的相加结果,即重写结果v(x,y)被写入到存储n(x,y)的帧缓冲器141中的单元中(相应于感兴趣的象素p(x,y)的单元)。在下一次绘制象素p(x,y)时,v(x,y)这个值作为记录值n(x,y)读出。
同样,在步骤S25,在Z缓冲器142中的存储值深度(x,y)被重写到Z值Z(x,y),控制进行到步骤S26,在其中决定是否所有包括要绘图的帧的象素都已经作为感兴趣的象素进行了处理。在步骤S26,如果确定不是所有包括要绘图的帧的象素都已经作为感兴趣的象素进行了处理,那么控制返回到步骤S21,还没有被作为感兴趣的象素的一个象素被新作为感兴趣的象素,此后重复同样的处理。
如果另一方面在步骤S26中确定所有包括要绘图的帧的象素都已经作为感兴趣的象素进行了处理,那么执行返回操作。
亮度降低处理可以采用α混合来进行。也就是说,可以通过设定混合系数α为1/N,并计算算式m(x,y)=INT[α×M(x,y)],来确定m(x,y)。也就是说,混合系数α使得1.0相应于例如128(=27),它是由公式α=A→7实现的,其中A是在0-128范围内的一个整数,A→7代表A的7位右移。
在这种情况下,为了例如如上所述通过四次重写在最大亮度值255下绘图,将A设定为32即可,它相应于1/4,然后计算算式m(x,y)=INT[α×M(x,y)]。
但是,既使在这种情况下,如上所述那样,有时也会发生亮度降低。也就是说,如果通过重写四次以最大亮度值255绘图,如果A被设置为32,相应于1/4,并计算算式m(x,y)=INT[α×M(x,y)],得到m(x,y)等于63(=INT[(255×32)哆7]),既使以亮度值63绘图四次,结果也只有252,小于原来的亮度值255.
因此,如果N倍的INT[α×M(x,y)]小于原来的RGB值M(x,y),那么对A进行校正,使得N倍的INT[α×M(x,y)]大于或等于原来的RGB值M(x,y)。更详细地说,只要将A校正为33即可,它比相应于1/4的32大1。这样,绘图1次的亮度值成为65(=INT[(255×33)哆7)],如果以亮度值65绘图4次,结果为260,超出最大亮度值255的部分被剪切为该最大值255。
如上所述,图像重写是通过在要将每个象素的RGB值绘制到帧缓冲器141中时,以高于一个象素的精度,设置移动其绘图位置的位移量,并通过将RGB值绘制到帧缓冲器141中的相应位置完成的,从而即使不采用高容量、高速度的帧缓冲器或Z缓冲器,也可以达到有效的消除假信号效果。
也就是说,通过上面所述的重写取得的消除假信号效果不仅扩展到多边形的边,还扩展到其内部和三维形状彼此交叉的部分,从而不仅减少了直线中的锯齿,也改进了图像的整体质量。
由于移动多边形可以有移动模糊效果,可以显示没有任何闪烁的平滑的移动图像。
前面是针对本发明应用于游戏机的情况描述的,但本发明也可以用于产生特殊图像效果的特效机,或用于执行计算机图形处理的CAD和其他装置。另外,本发明也可以用于例如记录和回送装置或发射装置,这些装置对用摄像机摄取的自然图像编码,并对该图像进行记录和回放,或发射与接收。也就是说,如果将来用摄像机摄取的自然图像被译码为用多边形表示,当它们被回放时,可以采用本发明的技术回放高质量的自然图像。
在这个实施例中,绘图处理是以帧为单位进行的,但也可以以字段为单位进行。
本发明可以用于绘制移动图像或静止图像。
该实施例是针对三维图形绘制进行描述的,但本发明也可以用于绘制例如二维图形。
位移量也并不局限于子象素精度,而是可以更大或更小。
同样,在本实施例中,执行上述绘图处理的计算机程序被记录在CD-ROM51中。然而,除了CD-ROM以外,也可以采用光磁记录盘或其他记录介质,计算机程序也可以由例如因特网,卫星线路或其他传输介质提供。
绘图处理也不需要由处理器执行计算机程序来完成,而是可以用特定的硬件来实现。
在这个实施例中,三维图像被显示在监视器显示屏上,但该发明也可以用于其他情况,例如在打印机(二维输出装置)上打印三维图像。
在该实施例中,绘制一个一帧图像要在X和Y方向都进行位移,但也可以只在其中一个方向上进行移位。也就是说,位移量(dX,dY)可以被设置为例如(0.0,-0.2),(0.0,-0.1),((0.0,0.1))(0.0,0.2)。
同样,对每个重写次数,位移量(dX,dY)可以预先确定。
如上所述,重写次数越多,分辩率的改进越大,但随着重写次数的增大,绘制RGB值一次的位数会由于亮度降低处理而减小,但这会使图像的灰度恶化。因此,设置重写次数时不能只考虑分辩率,还应该考虑灰度。
采用本发明的绘图装置和绘制方法,在要将象素数据绘制到象素数据存储装置中时,以高于一个象素的精度,设置移动其绘图位置的多个位移量,并通过将象素数据绘制到相应于多个位移量的象素数据存储装置中的每个单元来完成图像的重写。同样,采用本发明的分发介质,提供用于重写图像的程序,该重写过程是通过以高于一个象素的精度,设置多个位移量,并通过将象素数据绘制到相应于多个位移量的每个存储单元来完成的。由此可以降低图像中出现的假信号。
如上所述,在例如三维图形计算机中,该三维图形计算机是利用一个计算机、或者特殊效果设备(特效器)、视频游戏机等等的图象设备,根据本发明的绘图设备、绘图方法和分发介质,消除假信号的效应不仅延伸到多边形的边,也延伸到他们的内部以及三维形状相互交叉的部分,其不仅减少了在直线中出现的锯齿,而且改善了整个图象的图形质量。因此本发明适用于高图形质量的图象显示。
权利要求
1.用于绘制一个显示在图像装置上的图像的绘图设备,包括一个存储象素数据的象素数据存储器装置,该象素数据被输出到输出所述图像的两维输出设备;一个位移量设定装置,用于设定多个位移量,并且在所述象素数据要被绘制于所述象素数据存储装置中时,以比一个象素更细小的精度,移动绘图位置;在所述象素数据存储装置中的一个绘图装置,通过在相应于由所述位移量设定装置设定的多个位移量的每个位置绘制所述象素,进行所述图像的重写。
2.权利要求1所述的绘图设备,其特征在于如果在子象素单元中需要所述象素,所述位移量设定装置用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
3.权利要求1所述的绘图设备,其特征在于所述绘图装置包括一个记数确定装置,确定重写所述图像的重写次数。
4.权利要求3所述的绘图设备,其特征在于所述绘图装置进一步包括一个估算装置,估算向所述象素数据存储装置绘制一屏幕的所述象素数据所需要的绘制时间,所述记数确定装置根据所述估算装置估计的所述绘图时间确定所述重写次数。
5.权利要求3所述的绘图设备,其特征在于如果在子象素单元中需要所述象素,所述记数确定装置根据构成一个象素的子象素数量确定所述重写次数。
6.权利要求1所述的绘图设备,其特征在于如果所述图像是一个运动图像,绘图装置进一步包括一个校正装置,根据所述运动图像的运动校正所述位移量。
7.权利要求1所述的绘图设备,其特征在于如果所述图像由单元图形的组合定义,所述校正装置根据所述单元图形的运动校正所述位移量。
8.权利要求1所述的绘图设备,其特征在于如果所述图像是由单元图形的组合定义的三维图像,绘图装置还包括一个分类装置,将所述单元图形按其深度方向次序排列,所述绘图装置从离视点最近的那些开始,按次序绘制所述单元图形。
9.权利要求1所述的绘图设备,其特征在于所述绘图装置根据一个值绘图一次,该值是用相应与所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
10.权利要求9所述的绘图设备,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,对第一次绘图,所述绘图装置向所述象素数据存储装置写入将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
11.权利要求10所述的绘图设备,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值就是使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M的值。
12.权利要求1所述的绘图设备,其特征在于进一步包括一个操作装置,当规定的输入被给定时执行操作;一个算术运算装置,读入在一个存储介质中存储的数据,根据所述操作装置的输入,用所述存储数据执行规定的算术运算;以及一个象素数据产生装置,根据所述算术运算装置产生的结果确定所述象素数据。
13.权利要求12所述的绘图设备,其特征在于如果所述象素数据是在子象素单元中确定的,所述位移量设定装置用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
14.权利要求12所述的绘图设备,其特征在于所述绘图装置还包括一个记数确定装置,确定重写所述图像的重写次数。
15.权利要求14所述的绘图设备,其特征在于所述绘图装置进一步包括一个估算装置,估算向所述象素数据存储装置绘制一屏幕的象素数据所需要的绘制时间,所述记数确定装置根据所述估算装置估计的所述绘图时间确定所述重写次数。
16.权利要求14所述的绘图设备,其特征在于如果在子象素单元中需要所述象素,所述记数确定装置根据构成一个象素的子象素数量确定所述重写次数。
17.权利要求12所述的绘图设备,其特征在于如果所述图像是一个运动图像,绘图装置进一步包括一个校正装置,根据所述运动图像的运动校正所述位移量。
18.权利要求17所述的绘图设备,其特征在于如果所述图像由单元图形的组合定义,所述校正装置根据所述单元图形的运动校正所述位移量。
19.权利要求12所述的绘图设备,其特征在于如果所述图像是由单元图形的组合定义的三维图像,绘图装置还包括一个分类装置,将所述单元图形按其深度方向次序排列,所述绘图装置从离视点近的单元图形开始,按次序绘制所述单元图形。
20.权利要求12所述的绘图设备,其特征在于所述绘图装置根据一个值绘图一次,该值是用相应与所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
21.权利要求20所述的绘图设备,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,对第一次绘图,所述绘图装置向所述象素数据存储装置写入将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
22.权利要求21所述的绘图设备,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值就是使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M的值。
23.权利要求1所述的绘图设备,其特征在于如果所述图像是由图形单元的组合定义的三维图像,所述绘图装置进一步包括一个转换装置,根据视点,将构成所述三维图像的所述单元图形转换为所述二维输出设备中的坐标系中的单元图形,一个分类装置,用于将由所述转换装置转换的所述单元图形按其深度方向次序分类,一个深度存储装置,用于记录代表所述单元图形在其深度方向的位置的值;采用所述深度存储装置,所述绘图装置从靠近视点的单元图形开始,按次序绘制所述单元图形。
24.权利要求23所述的绘图设备,其特征在于如果在子象素单元中需要所述象素,所述位移量设定装置用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
25.权利要求23所述的绘图设备,其特征在于所述绘图装置包括一个记数确定装置,确定重写所述图像的重写次数。
26.权利要求25所述的绘图设备,其特征在于绘图装置进一步包括一个估算装置,估算向所述象素数据存储装置绘制一屏幕的所述象素数据所需要的绘制时间,所述记数确定装置根据所述估算装置估计的所述绘图时间确定所述重写次数。
27.权利要求25所述的绘图设备,其特征在于如果在子象素单元中需要所述象素,所述记数确定装置根据构成一个象素的子象素数量确定所述重写次数。
28.权利要求23所述的绘图设备,其特征在于如果所述图像是一个运动图像,绘图装置进一步包括一个校正装置,根据所述运动图像的运动校正所述位移量。
29.权利要求28所述的绘图设备,其特征在于所述校正装置根据所述单元图形的运动校正所述位移量。
30.权利要求23所述的绘图设备,其特征在于所述绘图装置根据一个值绘图一次,该值是用相应与所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
31.权利要求30所述的绘图设备,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,对一次绘图,所述绘图装置向所述象素数据存储装置写入将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
32.权利要求31所述的绘图设备,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值就是使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M的值。
33.权利要求1所述的绘图设备,其特征在于如果所述图像是由图形单元的组合定义的三维图像,绘图设备进一步包括一个操作装置,当规定的输入被给定时执行操作;一个算术运算装置,读入在一个存储介质中存储的数据,根据所述操作装置的输入,用所述存储数据执行规定的算术运算;一个转换装置,将由所述算术运算装置计算产生的所述单元图形转换为所述二维输出设备中的坐标系中的单元图形,一个分类装置,用于将由所述转换装置转换的所述单元图形按其深度方向次序分类,一个深度存储装置,用于记录代表所述单元图形在其深度方向的位置的值;以及其中采用所述深度存储装置,所述绘图装置从靠近视点的单元图形开始,按次序绘制所述单元图形。
34.权利要求33所述的绘图设备,其特征在于如果在子象素单元中需要所述象素,所述位移量设定装置用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
35.权利要求33所述的绘图设备,其特征在于所述绘图装置还包括一个记数确定装置,确定重写所述图像的重写次数。
36.权利要求35所述的绘图设备,其特征在于所述绘图装置进一步包括一个估算装置,估算向所述象素数据存储装置绘制一屏幕的所述象素数据所需要的绘制时间,所述记数确定装置根据所述估算装置估计的绘图时间确定重写次数。
37.权利要求35所述的绘图设备,其特征在于如果在子象素单元中需要所述象素数据,所述记数确定装置根据构成一个象素的子象素数量确定所述重写次数。
38.权利要求33所述的绘图设备,其特征在于如果所述图像是一个运动图像,绘图装置进一步包括一个校正装置,根据所述运动图像的运动校正所述位移量。
39.权利要求38所述的绘图设备,其特征在于所述校正装置根据所述单元图形的运动校正所述位移量。
40.权利要求33所述的绘图设备,其特征在于所述绘图装置根据一个值绘图一次,该值是用相应于所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
41.权利要求40所述的绘图设备,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,对一次绘图,所述绘图装置向所述象素数据存储装置写入将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
42.权利要求41所述的绘图设备,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值就是使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M的值。
43.在用于绘制图像的绘图设备中的一个绘图方法,所述绘图设备包括一个存储象素数据的象素数据存储器装置,该象素数据被输出到输出所述图像的两维输出设备,该绘图方法包括一个位移量设定步骤,用于在所述象素数据要被绘制于所述象素数据存储装置中时,以比一个象素更细小的精度,设定移动一个绘图位置的多个位移量;一个绘图步骤,通过在相应于该多个位移量的所述象素数据存储装置的每个位置绘制所述象素数据,进行所述图像的重写。
44.权利要求43所述的绘图方法,其特征在于如果在子象素单元中需要所述象素数据,在所述位移量设定步骤,用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
45.权利要求43所述的绘图方法,其特征在于所述绘图步骤还包括一个记数确定步骤,确定重写所述图像的重写次数。
46.权利要求45所述的绘图方法,其特征在于所述绘图步骤进一步包括一个估算步骤,估算向所述象素数据存储装置绘制一屏幕的象素数据所需要的绘制时间,在所述记数确定步骤中,根据在所述估算步骤中估计的所述绘图时间确定所述重写次数。
47.权利要求45所述的绘图方法,其特征在于如果在子象素单元中需要所述象素数据,在所述记数确定步骤中,根据构成一个象素的子象素数量确定所述重写次数。
48.权利要求43所述的绘图方法,其特征在于如果所述图像是一个运动图像,绘图方法进一步包括一个校正步骤,根据所述运动图像的运动校正所述位移量。
49.权利要求48所述的绘图方法,其特征在于如果所述图像由单元图形的组合定义,在所述校正步骤中,根据所述单元图形的移动校正所述位移量。
50.权利要求43所述的绘图方法,其特征在于如果所述图像是由单元图形的组合定义的三维图像,该绘图方法进一步包括一个分类步骤,将所述单元图形按其深度方向次序排列,在所述绘图步骤中,从离视点近的单元图形开始,按次序绘制所述单元图形。
51.权利要求43所述的绘图方法,其特征在于在所述绘图步骤中,根据一个值绘图一次,该值是用相应与所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
52.权利要求51所述的绘图方法,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,对一次绘图,在所述绘图步骤中,向所述象素数据存储装置写入将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
53.权利要求52所述的绘图方法,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M。
54.权利要求43所述的绘图方法,其特征在于所述绘图装置有一个操作装置,当规定的输入被给定时执行操作;该方法进一步包括一个算术运算步骤,读入在一个存储介质中存储的数据,根据所述操作装置的输入,用所述存储数据执行规定的算术运算;以及一个象素数据产生步骤,根据在所述算术运算步骤中该算术运算的结果确定所述象素数据。
55.权利要求54所述的绘图方法,其特征在于如果所述象素数据是在子象素单元确定的,在所述位移量设定步骤中,用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
56.权利要求54所述的绘图方法,其特征在于所述绘图步骤进一步包括一个记数确定步骤,确定重写所述图像的重写次数。
57.权利要求56所述的绘图方法,其特征在于所述绘图步骤进一步包括一个估算步骤,估算向所述象素数据存储装置绘制一屏幕的象素数据所需要的绘制时间,以及其中在所述记数确定步骤,根据所述估算步骤中估计的所述绘图时间确定所述重写次数。
58.权利要求56所述的绘图方法,其特征在于如果在子象素单元中需要所述象素数据,在所述记数确定步骤,根据构成一个象素的子象素数量确定所述重写次数。
59.权利要求54所述的绘图方法,其特征在于如果所述图像是一个运动图像,该绘图方法进一步包括一个校正步骤,根据所述运动图像的运动校正所述位移量。
60.权利要求59所述的绘图方法,其特征在于如果所述图像由单元图形的组合定义,在所述校正步骤中,根据所述单元图形的移动校正所述位移量。
61.权利要求54所述的绘图方法,其特征在于如果所述图像是由单元图形的组合定义的三维图像,该绘图方法还包括一个分类步骤,将所述单元图形按其深度方向次序排列,在所述绘图步骤,从离视点最近的单元图形开始,按次序绘制所述单元图形。
62.权利要求54所述的绘图方法,其特征在于在所述绘图步骤中,根据一个值绘图一次,该值是用相应于所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
63.权利要求62所述的绘图方法,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,对一次绘图,所述绘图步骤向所述象素数据存储装置写入将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
64.权利要求63所述的绘图方法,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M。
65.权利要求43所述的绘图方法,其特征在于如果所述图像是由图形单元的组合定义的三维图像,所述绘图装置有一个深度存储装置,用于记录代表所述单元图形在其深度方向的位置的值;该方法进一步包括一个转换步骤,根据视点,将构成所述三维图像的所述单元图形转换为所述二维输出设备中的坐标系中的单元图形,在所述绘图步骤中,采用所述深度存储装置,从靠近视点的单元图形开始,按次序绘制所述单元图形。
66.权利要求65所述的绘图方法,其特征在于如果在子象素单元中需要所述象素数据,在所述位移量设定步骤中,用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
67.权利要求65所述的绘图方法,其特征在于所述绘图步骤进一步包括一个记数确定装置,确定重写所述图像的重写次数。
68.权利要求67所述的绘图方法,其特征在于所述绘图步骤进一步包括一个估算步骤,估算向所述象素数据存储装置绘制一屏幕的象素数据所需要的绘制时间,在所述记数确定步骤,根据所述估算步骤中估计的所述绘图时间确定所述重写次数。
69.权利要求67所述的绘图步骤,其特征在于如果在子象素单元中需要所述象素数据,在所述记数确定步骤,根据构成一个象素的子象素数量确定所述重写次数。
70.权利要求65所述的绘图步骤,其特征在于如果所述图像是一个运动图像,该绘图方法进一步包括一个校正步骤,根据所述运动图像的运动校正所述位移量。
71.权利要求70所述的绘图方法,其特征在于在所述校正步骤,根据所述单元图形的运动校正所述位移量。
72.权利要求65所述的绘图方法,其特征在于在所述绘图步骤中,根据一个值绘图一次,该值是用相应于所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
73.权利要求72所述的绘图方法,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,在所述绘图步骤中,对一次绘图,绘制将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
74.权利要求73所述的绘图方法,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M。
75.用于向计算机提供计算机程序、使该计算机执行绘图操作的分发介质,其特征在于所提供的计算机程序包括一个位移量设定步骤,用于在将要输出到输出所述图象的一个二维输出设备的所述象素数据被绘制于所述象素数据存储装置中时,以比一个象素更细小的精度,设定移动一个绘图位置的多个位移量;一个绘图步骤,通过在相应于该多个位移量的所述存储器的每个位置绘制所述象素数据,进行所述图像的重写。
76.权利要求75所述的分发介质,其特征在于如果在子象素单元中需要所述象素数据,在所述位移量设定步骤,用子象素精度设定移位所述象素数据的所述绘图位置的多个位移量。
77.权利要求75所述的分发介质,其特征在于所述计算机程序在所述的绘图步骤还包括一个记数确定步骤,确定在所述绘图步骤中重写所述图像的重写次数。
78.权利要求77所述的分发介质,其特征在于所述计算机程序在所述的绘图步骤进一步包括一个估算步骤,估算向所述象素数据存储装置绘制一屏幕的象素数据所需要的绘制时间,在所述记数确定步骤中,根据在所述估算步骤中估计的所述绘图时间确定所述重写次数。
79.权利要求77所述的分发介质,其特征在于如果在子象素单元中需要所述象素数据,在所述记数确定步骤中,根据构成一个象素的子象素数量确定所述重写次数。
80.权利要求75所述的分发介质,其特征在于如果所述图像是一个运动图像,所述计算机程序进一步包括一个校正步骤,根据所述运动图像的运动校正所述位移量。
81.权利要求80所述的分发介质,其特征在于如果所述图像由单元图形的组合定义,在所述校正步骤中,根据所述单元图形的运动校正所述位移量。
82.权利要求75所述的分发介质,其特征在于如果所述图像是由单元图形的组合定义的三维图像,所述计算机程序进一步包括一个分类步骤,将单元图形按其深度方向次序排列,在所述绘图步骤中,从离视点近的单元图形开始,按次序绘制所述单元图形。
83.权利要求75所述的分发介质,其特征在于在所述绘图步骤中,根据一个值绘图一次,该值是用相应于所述象素数据存储装置的所述图象的重写次数去除所述象素数据得到的。
84.权利要求83所述的分发介质,其特征在于如果所述象素数据或重写次数分别用M或N表示,并且小于或等于x/y的最大整数值用INT[x/y]表示,在所述绘图步骤中,对一次绘图,绘制将一个预定的校正值与由INT[M/N]表示的值相加得到的值。
85.权利要求84所述的分发介质,其特征在于如果由INT[M/N]×N表示的值小于M,所述校正值使得将该校正值与INT[M/N]相加得到的值的N倍大于或等于M。
全文摘要
在一个绘图设备和方法中,当每个象素的RGB值要被绘制到一个帧缓冲器中时,设定以比一个象素更细小的精度位移该绘图位置的多个位移量,通过将RGB值绘制到相应于多个位移量的帧缓冲器单元,进行图像重写。这样,当第一次绘图时,一个坐标点被写入第一个象素,第二次绘图时被写入第二个象素,第三次绘图时被写入第三个象素,第四次绘图时被写入第四个象素。
文档编号G06T13/20GK1272194SQ99800868
公开日2000年11月1日 申请日期1999年3月31日 优先权日1998年3月31日
发明者佐佐木伸夫 申请人:株式会社索尼电脑娱乐