用于记录和信息处理的改进方法和装置及其记录介质的制作方法

文档序号:6584795阅读:117来源:国知局
专利名称:用于记录和信息处理的改进方法和装置及其记录介质的制作方法
技术领域
本发明通常涉及到在记录和信息处理方法和装置及其记录介质方面的改进,特别是,涉及到一种新的和经过改进的记录介质,和在减少成本的情况下有利于高效和高速处理的记录和信息处理系统。
背景技术
最近,以高速执行绘图处理从而使用户欣赏一个游戏等的家庭电视游戏机或个人计算机变得比较便宜并且已经普及到很多的家庭之中。
为了产生一个计算机图形(CG)或开发使用计算机图形的软件,采用了以较高速度执行绘图处理的图形计算机。
上述的这种家庭电视游戏机、个人计算机和图形计算机通常包括由存储器、CPU(中央处理器)和其它操作电路构成的绘图装置。在该绘图装置中,利用CPU产生将在电视接收机的显示部分或专用显示单元上显示的图像数据,即显示数据,且如此产生的数据被提供给用于保持显示部分像素值的一个帧缓冲器,以便利用一个专用绘图电路来执行高速绘图处理。
绘图装置的CPU执行诸如坐标转换、剪裁和光源计算等的几何处理,以便产生某些命令,这些命令用于以具有诸如三角形或四边形的基本平面图案(多边形)相互结合的形式来绘制三维实物的几何图形,并将绘图命令提供给绘图电路。
绘图电路根据从CPU接收的绘图命令并根据多边形顶点的颜色数据计算构成所述多边形的像素值并计算表示在预定显示部分上以两维方式显示的三维空间中在纵深方向上所述多边形位置的Z值,以及将所述值写入帧缓冲器(绘制处理(rendering processing))并绘制所述多边形的图形。
如上所述的这种绘图电路通过一个专用总线直接耦合到CPU上,以避免可能使负载(通过一个总线的数据发射和接收)集中于与不同电路(例如,记录装置或用于保持数据的存储器)共用的总线上。还应当说明,当要例如以近似于15兆个多边形/秒(每秒执行15×106个多边形的绘制处理)的速度执行绘图处理且利用于与不同电路共用的总线时,沿着与不同电路共用的总线通信的数据量达到100MB/sec到200MB/sec(每秒100到200兆字节)。因此,对于共用总线来讲需要大容量的总线。
从CPU输出的数据被一次存储在插入在CPU和绘图电路之间的FIFO(先入先出)缓冲器中,并以记录顺序提供给绘图电路。FIFO缓冲器连续地存储和提供所存储的数据给绘图电路,结果,当CPU提供数据的速度暂时高于绘图电路的处理速度时,它的存储数据量通常要增加,但是,当CPU提供数据的速度低于绘图电路的处理速度时,数据的存储量通常要减少。在这种方式下,FIFO缓冲器缓解了在CPU数据提供速率绘图电路处理速度之间的不平衡。
但是,当CPU的数据提供速率超过绘图电路处理速度很多或当由于向CPU和绘图电路的加载状态而使CPU提供数据的速率高于绘图电路处理速度的状态持续较长时间时,则未处理的数据将会累积在所述FIFO缓冲器中。这样,当这种未处理数据的量超过所述FIFO缓冲器的容量时,数据匹配就失调,并且,随后CPU和绘图电路的操作就停止。因此,这种绘图电路的缺点在于它很难有效地执行处理。
这种绘图电路的另一个缺点是为了以高速度执行绘图处理,当用于绘图的将被处理的数据量增加时,所需存储器的容量和记录介质的容量也将增加,因此,很难实现低成本。
另外,前述的绘图装置还具有如下的缺点,即当需要被处理的数据量增加时,从记录介质上或从存储器上读出数据所需要的时间也增加,并因此很难实现高处理速度。

发明内容
因此,很长时间以来都需要一种新的、经过改进的记录介质以及记录和信息处理系统,以便于在低成本的情况下进行有效和高速的处理。本发明完全满足了这些需要。
简单而概括地说,本发明提供了一种记录介质、记录装置和方法以及信息处理装置和方法,利用这些方法和装置,能够实现有效地数据处理和高的处理速度,并且,能够容易地实现低成本。
特别是,借助于不构成限制的实例,本发明提供了一个记录介质,在该介质上保持有作为在三维空间中预定目标的数据的基本目标的识别信息,所述基本目标制定一个基准和在基本目标顶点座标值和预定目标顶点座标值之间的差值。
对所述记录介质来说,由于它保持了作为三维空间的预定目标数据且设置了一基准和在基本目标的顶点的坐标值和预定目标顶点坐标值之间的差值的基本目标的识别信息,所以,用于每个单独目标的数据量相对较少。因此,所述记录介质能够保持较大数量目标的数据。
根据本发明的再一个方面,提供了一种记录装置,用于将在三维空间中预定目标的数据记录到一个记录介质内。该记录装置包括一个计算装置,用于根据三维空间中的目标计算基本目标的识别信息,所述基本目标设置了一基准和在基本目标顶点的坐标值和预定目标顶点坐标值之间的差值;记录装置,用于记录由所述计算装置计算的识别信息和差值以作为预定目标的数据。
本发明还提供了一种记录方法,用于将三维空间预定目标的数据记录到一个记录介质上,所述方法包括下述步骤根据三维空间的预定目标计算一个基本目标的识别信息,所述基本目标设置一基准和在基本目标顶点的坐标值和预定目标顶点坐标值之间差值,并记录在计算步骤中作为预定目标数据而计算的识别信息和差值。
利用上述的记录装置和记录方法,由于根据三维空间中的预定目标计算了一个基本目标的识别信息,其中所述基本目标设置一个基准和在基本目标顶点坐标值和预定目标顶点坐标值之间的差值,并且,如此计算的基准和差值被作为预定目标的数据进行存储,所以,可以实现其上记录有较大数量目标的数据的介质。
本发明还提供了一个信息处理装置,包括一个读出装置,用于从其上记录有由多个在三维空间中的平面图形组成的三维空间目标数据的记录介质上读出数据;第一转换装置,用于将所述平面图形转换成由一定数量的与在预定显示部分上的显示尺寸对应的平面图形所组成的曲面;第二转换装置,用于将通过第一转换装置转换所获得的曲面数据转换成两维显示数据。
根据本发明的再一个方面,提供了一种信息处理方法,包括如下步骤从其上记录有由多个在三维空间中的平面图形所组成的三维目标数据的一个记录介质中读出数据;将所述平面图形转换成由与在预定显示部分的显示尺寸对应的一定数量平面图形所组成的曲面;和将通过第一转换装置转换所获得的曲面数据转换成两维显示数据。
利用这种信息处理装置和信息处理方法,由于平面图形被转换成由一定数量的和预定显示部分的显示尺寸对应的平面图形所组成的曲面,所以需要被处理数据的数量减少,并且总线的负担也被减少。
根据本发明的再一个方面,提供了一信息处理装置,包括用于从其上记录有由多个在三维空间中的平面图形组成的三维空间目标数据的记录介质上读出数据的读出装置;用于根据在预定显示部分上的显示尺寸分解平面图形的分解装置;用于根据原始平面图形的亮度值计算通过进行分解获得的平面图形的亮度值的计算装置;和用于从通过分解获得的平面图形的亮度值中产生两维显示数据的产生装置。
另外,本发明还提供了一种信息处理方法,包括下述步骤从其上记录有由多个在三维空间中的平面图形组成的一个三维空间目标数据的记录介质上读出数据;根据预定显示部分的显示尺寸分解平面图形;根据原始平面图形的亮度值计算通过进行分解获得的平面图形的亮度值;和从通过分解获得的平面图形的亮度值中产生两维显示数据。
因此,利用本发明的信息处理装置和方法,由于平面图形是根据预定显示部分上的显示尺寸来进行分解,并且通过分解获得的平面图形的亮度值是根据原始平面图形的亮度值来进行计算,所以,需要被处理数据的数量减少且总线的负担减少。
所以,本发明满足了长期以来对一种新的改进的记录介质和在减少成本的情况下能够有效和高速执行处理的记录和信息处理系统的需要。


通过下面结合附图的详细描述和所附权利要求,本发明的上述和其他目的、特性和优点将变的更加明显,附图中,类似的部分或元件使用相同的字符表示。
图1的平面视图示出了一个家庭游戏机,其上提供有本发明的信息处理装置;图2是图1所示游戏机的前视立体图;图3是图1所示游戏机的侧视图;图4是平面视图,示出了能够由图1所示游戏机再现的CD-ROM;图5是图1所示游戏机的系统方框图;图6是图5所示可编程包引擎(Packet engine)的方框图;图7是流程图示出了在图1所示游戏机中多边形图形的绘制处理;图8A的轮廓图示出了由图1所示游戏机处理的多边形;图8B的表给出了所述多边形的数据格式;图9A和9B分别示出了多边形分解的不同阶段;图10的轮廓图示出了多边形的不同分解;图11A到图11D简图分别示出了根据多种Z值所显示的三维目标;图12的流程图详细示出了在图5所示流程的多边形分解步骤中的处理;图13的表给出了由图1所示游戏机处理的多边形的数据格式;图14A到14C分别示出了图13所示多边形的不同类型的分解;图15A的简图示出了通过分解图13所示多边形所获得的多边形;图15B示出了图15A所示多边形的数据;图16的表给出了由图5所示的由可编程包引擎所处理的不同数据量;图17A的简图示出了由图1所示游戏机处理的另一个多边形;图17B的表给出了图17A所示多边形的数据格式;图18A到18C示出了对通过图17A和17B的多边形进行分解获得的一个多边形的亮度值的计算;图19A的简图示出了通过分解图17的多边形获得的另一个多边形;图19B的表给出了图19A的多边形的数据格式;图20A和20B的透视图示出了三维目标和相应的模板;
图21的表给出了表示利用所述模板的三维目标的数据格式;和图22A和22B的方框图示出了作为应用了本发明的记录装置的一个产生装置。
具体实施例方式
下面参考附图,图1到图3示出了一个应用了本发明的家庭TV游戏机的例子。这个家庭游戏机1包括游戏机壳体2、和可以连接到游戏机壳体2上的操作单元17和记录单元38。
游戏机的壳体2是以图1到3所示的基本呈四边形的形状形成的,并且,在该壳体2的中心位置处具有一个盘装载台3,图4所示的光盘CD-ROM40(高密度盘ROM(只读存储器))用做被装载游戏的介质可以装入该盘装载台3中,并且,在游戏机壳体的适当位置处还具有一个用于任意复位游戏的复位开关4、用于使电源接通/关断的电源开关5、用于装载所述盘的盘操作开关6、和用于连接操作单元17和记录单元38的连接部分7A和7B,所述操作单元17用于执行游戏等的操作,所述记录单元38将记录该游戏的设置。
连接部分7A和7B中的每一个是由图2和图3所示的两段形成的。在连接部分7A和7B中每一个的上段处设置了一个用于连接记录单元38的记录插入部分8,在下段处提供了一个用于连接操作单元17的连接端插入部分12。
记录插入部分8具有一个在水平方向延伸的矩形插入开口,并且,在所述插入开口的内部具有一个用于连接记录单元38的存储器连接端构件(未示出)。另外,如图2所示,记录插入部分8中设置有一个用于防止所述存储器连接端构件进入灰尘等的挡板9。还应当说明,记录单元38还具有一个可电重写的ROM,以便使与游戏相关的数据能够被记录。
为了安装记录单元38,用户在记录单元38的一端朝向里面的方向推挡板9,并进一步将记录单元38推进插入开口,直到它与存储器连接端构件相连为止。
如图2所示,连接端插入部分12具有一个在水平方向延伸的矩形插入开口和一个用于连接操作单元17的连接端构件26的连接端12A。
操作单元17的结构如图1所示,它可以利用两手握住,并且五个手指能够随意移动以便手动操作控制器17,同时,它还具有左右对称的操作部分18和19;在操作部分18和19中间部分处的选择开关22和始动开关23;设置在操作部分18和19前表面侧的操作构件24和25;以及用于连接到游戏机壳体2上的连接端构件26和电缆27。
图5示出了上述游戏机壳体2电结构的例子。
游戏机壳体2具有主总线41和辅助总线42的两个总线。总线41和42通过总线控制器43彼此相互连接。
连接到主总线41上的装置包括由微处理器或类似装置构成并用做读出装置和坐标转换装置的主CPU44、由RAM(只读存储器)形成的主存储器45、主直接存储器存取控制器(主DMAC)46、MPEG译码器(MDEC)47、用做第一转换装置、分解装置和计算装置的可编程包引擎(PPP)48、和用做第二转换装置和产生装置的图形处理单元(GPU)49。
同时,连接到辅助总线42上的装置包括由微处理器或类似装置形成的辅助CPU、由RAM形成的辅助存储器51、辅助直接存储器存取控制器(辅助DMAC)52、其中存储有诸如操作系统的ROM53、声音处理单元(SPU)54、通信控制部分(ATM)55、也用做盘装载台3的CD-ROM驱动器56、输入部分57和图形处理单元49。
总线控制器43使主总线41和辅助总线42彼此相互连接,并使数据从主总线41输出到辅助总线42、从辅助总线42输出到主总线41。
一旦启动游戏机壳体2,主CPU44就经过总线控制器43从连接到辅助总线42的ROM53中读入并执行一个开始程序,以便使所述操作系统可以运行。
主CPU44控制CD-ROM驱动器56从装在CD-ROM驱动器56中适当位置处的CD-ROM40中读出一个应用程序或数据,并将读出的应用程序或数据存储到主存储器45中。
主CPU44包括一个几何计算引擎或图形传输引擎(GTE)71,用于执行诸如对由多个基本图形(即多个多边形)形成的三维目标数据(顶点坐标值(表示点)和多边形的坐标值)的坐标转换的几何计算;还包括一个包引擎(PKE)72,用于通过主总线41将作为一个信息包的由图形传输引擎71计算的数据传输给可编程包引擎48。
图形传输引擎71包括多个运算元件,用于计算浮点的实数和并形执行浮点运算。包引擎72将由图形传输引擎71计算的一个多边形数据作为一个包经过主总线41提供给可编程包引擎48。
可编程包引擎48根据包括在从主CPU44的包引擎72提供给它的信息包中的一个多边形信息将所述多边形转换成由多个小多边形组成的曲面并将该曲面数据传输给图形处理单元49。
图6示出了可编程包引擎48的一个结构例。包引擎91接收从主CPU44的包引擎72传输的一个信息包并将该信息包暂存在RAM92中。然后包引擎91在包括在所述信息包中的数据当中将用于指定与一个多边形处理相关的程序的数据(这种数据将在后面描述)存储到指令RAM93中,并将其它数据(多边形顶点的坐标数据)存储到源数据RAM94中。
辅助CPU95根据存储在ROM96中的程序运行。并且,当数据被存储到指令RAM93中时,读出数据,并根据由所述数据指定的程序(该程序总是驻留在辅助CPU95中)从存储在源数据RAM94中一个多边形的数据中(所述多边形顶点的坐标数据等)将所述多边形分成一定数量的与在三维空间纵深方向上的所述多边形的位置(Z值)相对应的多个多边形(子多边形)(特别是,当所述多边形将被显示在预定显示部分上时,该数量对应于显示尺寸)。
在这个例子中,辅助CPU95沿着由包括在从包引擎72提供的信息包中的曲面参数所表示的基准曲面产生子多边形(即产生由多个子多边形组成的一个曲面)。
然后,辅助CPU95将如此产生的多个多边形的顶点坐标值存储到目标数据RAM97中,以便使它们可以被提供给图形处理单元49。
回过来参看图5,图形处理单元49从可编程包引擎48的目标数据RAM97中读出分隔处理等之后的多个多边形坐标值(三维)的数据。然后,图形处理单元49将所述三维坐标值转换成用于预定显示部分的两维坐标值;根据所述数据产生与所述多边形对应的像素数据;将所述像素数据写入帧缓冲存储器58并执行绘制处理。应当注意,在这个例子中,图形处理单元49利用下述表示式根据三维坐标值(X,Y,Z)计算两维坐标值(X,Y)(透视转换)X=x/Z,Y=y/Z主直接存储器存取控制器46执行诸如用于连接到所述主总线41上的各个电路的DMA传输的控制。另外,主直接存储器存取控制器46还能够响应总线控制器43的状态,执行诸如用于连接到辅助总线42上的各个电路的DMA传输的控制。同时,MPEG译码器47与主CPU44并行工作,并对由MPEG系统或JPEG系统压缩的数据进行解压缩。
辅助CPU50根据存储在ROM53中的程序执行各种操作。辅助直接存储器存取控制器52只在总线控制器43使主总线41和辅助总线42彼此脱离连接的情况下时才执行诸如用于连接到辅助总线42上的各种电路的DMA传输的控制。
声音处理单元54响应由辅助CPU50或辅助直接存储器存取控制器52提供的声音命令从声音存储器59中读出声音数据,并将所述声音数据作为音频数据输出。
通信控制部分55(图5中的ATM)被连接到一个公共网络并经过该公共网络执行数据的发送和接收。
输入部分57包括用于与操作单元17连接的连接端12A、用于从不同装置(未示出)接收视频数据的视频输入电路82、和用于从所述不同装置接收音频数据的音频输入电路83。
下面结合图7的流程描述家庭电视游戏机的绘图处理。
首先,在步骤S1,主CPU44接收与用户经过输入部分7来手动操作操作单元17相对应的一个信号。
其次,主CPU44从主存储器45中读出一个多边形的数据(顶点的坐标值、法线矢量、基准曲面(曲面参数))(预先从CD-ROM40中读出),并响应用户的操作由图形传输引擎71对多边形的坐标进行转换。
然后,在步骤S2,主CPU44的包引擎72将多边形顶点的坐标值、所述多边形的法线矢量、将由可编程包引擎48使用的曲面参数、和一个识别符(该识别符指定一个用于产生通过可编程包引擎48来构成多个多边形的曲面的一个程序)作为单一信息包经主总线41传送到可编程包引擎48的包引擎91。
应当注意,所述信息包否则可以利用主直接存储器存取控制器46被传送给可编程包引擎48。
例如,如果利用图形传输引擎71的坐标转换来产生图8A所示具有顶点P0到P3的四边多边形,那么,包引擎72传输一个信息包到可编程包引擎48的包引擎91,该信息包如图8所示包括用于指定一个程序的识别符(图8B中的代码)、一法线矢量(Nx,Ny,Nz如图8B所示)、表示基准曲面的曲面参数、与顶点P0到P3对应的坐标值(Xi,Yi,Zi)(i=0,......3)、与坐标值对应的基准曲面参数(后述)值(ui,vi)(I=0,......3)和颜色数据值RGBi(I=0,......3)。
应当注意,根据所述识别码设置包格式,以便可以对利用所述识别码指定的程序进行处理。
还应当注意,例如,在利用所述识别符代码指定用于对正方形表面的基准表面进行处理的程序的情况下,利用下述表示式的参数u和v表示基准曲面(X,Y,Z)x=fx(u,v)=a01u2+a01v2+a02uv+a03u+a03v+a04y=fy(u,v)=a11u2+a11v2+a12uv+a13u+a13v+a14z=fz(u,v)=a21u2+a21v2+v22uv+a23u+a23v+a24然后,在上述表示式中的常数a01到a24中,预定数量的非零常数aij被作为曲面参数传送给可编程包引擎48。
另外,在利用识别符代码指定用于对作为球面的基准曲面进行处理的一个程序情况下,利用半径为R和由利用参数u和v并由下述表示式表示的中心坐标(xc,yc,zc)的球面来作为基准曲面(x,y,z)x=Rcos v cos u+xcy=Rsin v+ycz=Rcos v sin u+zc然后,球面的半径R和圆点坐标(xc,yc zc)被作为曲面参数传送给可编程包引擎48。
再参看图7,在步骤S3,可编程包引擎48的包引擎91将从主CPU44的包引擎72提供给它的信息包一次存储在RAM92中,并从包括在所述信息包的数据中存储用于指定一个程序的识别符给指令RAM93、以及将多边形顶点的坐标数据、参数值、多边形的法线矢量和曲面参数存储到源数据RAM94中。
在步骤S4,可编程包引擎48的辅助CPU95从指令RAM93中读出识别码。然后,辅助CPU95使用与所述识别码的值对应的一个程序来执行处理。另外,辅助CPU95读出诸如所述多边形顶点的坐标值的数据并计算在深度方向上表示该多边形位置的Z值。
然后在步骤S5,辅助CPU95从源数据RAM94中读出参数u和v以及曲面参数的值;计算在由参数u和v定义的空间((u,v)空间)内所述多边形顶点中的中点;根据所述中点和多边形的顶点产生子多边形,换言之,对所述多边形进行分割。
还应当注意,由于通过使用由曲面参数表示的基准曲面来表示把在所述(u,v)空间中产生的中点映象到(x,y,z)空间中从而使它被设置在所述基准曲面上,因此,由所述多边形的中点和顶点形成沿基准曲面的多个子多边形,即产生由多个子多边形组成的曲面。
然后,辅助CPU95递归分割该子多边形,直到该子多边形的显示尺寸(显示区域A)变的不大于预定基准值D止。
辅助CPU95将以这种方式产生的子多边形的顶点坐标值存储到目标数据RAM97中。
例如,如果图8A和8B所示多边形被提供给可编程包引擎48,则辅助CPU95首先将四方形ABCD分割成三角形ABC和另一个三角形ACD,并计算三角形ABC的显示A区域。然后,如果辩别出所述显示区域A大于基准值D,则如图9A所示产生中点E以便产生子多边形ABE和另一个子多边形BCE。类似的,计算三角形ACD的显示区域A,且如果辩别出该显示区域A大于基准值D,则如图9B所示产生中点E,以便产生子多边形ECD和另一个子多边形AED。
然后,如果这些子多边形(子多边形BCE、子多边形ECD和子多边形AED)被进一步分割,那么,如图10所示,可以产生8个子多边形。利用这种方式,当重复进行分割时,由所述子多边形组成的曲面就达到为基准曲面的球面。
类似的。当需要表示如图11A所示的球状目标时,如果该目标所显示的小于预定显示区域,那么,例如利用如图11B所示的8个顶点(12个多边形)显示一个平行六面体(正方体)。另一方面,如果所述目标被显示的比较大,那么,利用图11C所示的14个顶点(24个多边形)显示比图11B所示目标更接近于球形的目标,但是,如果该目标被显示的更大,那么,例如利用图11D所示的26个顶点(48个多边形)显示比图11C所示目标更接近于球形的一个目标。
反过来看图7,在步骤S6,图形处理单元49从可编程包引擎48的目的数据RAM97中读出子多边形顶点的坐标数据等。然后,图形处理单元49产生所述子多边形的像素数据、并将该像素数据存储到帧缓冲器58中和执行绘制处理。
在这种方式下,根据Z值来分割所述多边形,并绘制经过分割获得的多边形的图形(沿基准曲面的子多边形)。通过绘制预定数量的多边形图形,来显示由这些多边形组成的三维目标。如上所述,由于诸如坐标转换的几何计算是由主CPU44的图形传输引擎71执行的且可编程包引擎48仅执行与多边形相关的局部计算,所以可以减小电路规模,并允许并行配置。
下面结合图12的流程详细描述在步骤5执行的对所述多边形的分割处理。
首先,在步骤S21,将提供给它的四边形分割成两个三角形,并计算所述三角形的区域A(当所述三角形被显示在预定显示部分上时的区域)。
然后,在步骤S22,辅助CPU95分辩所述多边形的区域A是否大于预定基准值D。如果它确定该区域A大于预定基准值D,那么,控制顺序进到步骤S23。另一方面,当它确定区域A小于基准值D时,辅助CPU95结束对所述多边形的分割。
在步骤S23,辅助CPU95产生位于参数u和v定义的空间(u,v空间)中的多边形的两个顶点中间的中点,并将所述多边形分割成具有三个多边形顶点和一个中点的两个子多边形(子多边形A和B)。例如,在图9A中,产生中点E,多边形ABC被分割成子多边形ABE和子多边形BCE。
当在由参数u和v定义的空间(u,v空间)中的多边形ABC的顶点例如是A=(π/4,π/4),B=((3/4)π,π/4)和C=((5/4)π,π/4)时,通过顶点A和B的平均分量,顶点A和B之间的中点E被计算成F=(π/2,π/4)。但是,在求取预定两个顶点((u1,v1),(u2,v2))的u分量平均值((u1+u2)/2)的情况下,由于这个点的u分量不是由上述给定的表示式规定的,所以,所述中点被确定成(0,π/2)。由于顶点A和C的u分量的平均值是((5/4)π-π/4),所以,在顶点A和C之间的中点E的坐标值为(0,π/2)。
应当注意,如果所述基准曲面是例如一个半径R=1、圆心坐标是(xc,yc,zc)=(0,-2,2)的球形表面,那么,根据上面给出的表示式(球面表示式),在三维空间中顶点A的坐标值(x,y,z)是(1/2,1/(21/2)-2,5/2)。类似的,顶点B的坐标值是(x,y,z)=(-1/2,1/(21/2)-2,5/2)。另外,顶点C的坐标值是(x,y,z)=(-1/2,1/(21/2)-2,3/2)中点E的坐标值(x,y,z)=(0,-1,2)。
另外,如果对顶点的坐标进行透视转换以获得用于显示的两维坐标值,那么,根据上面给出的表示式,顶点A的坐标值(X,Y)是(X,Y)=(1/5,((21/2)-4)/5)。类似的,顶点B的坐标值是(-1/5,((21/2)-4)/5)。顶点C的坐标值(XY)是(X,Y)=(-1/3,((21/2)-4)/3)。中点E的坐标值是E=(0,-1/2)。
利用这种方式,当在(u,v)空间中产生一个中点时,所述中点不被设置在用于显示的三维空间或两维空间中点上,而是被设置在基准曲面上(图9A)。
然后在步骤S24,辅助CPU95执行子多边形A的子多边形产生处理。特别是,对子多边形A执行上述的多边形分割处理。例如,从步骤S21开始对在步骤S23产生的子多边形ABE的多边形分割处理。
另外,在步骤S25,辅助CPU95执行与子多边形B相关的子多边形产生处理。特别是,执行对子多边形B的上述多边形分割处理。
通过利用这种方式在步骤S24和S25以递归方式执行这种处理,通过分割获得的每个多边形被进一步分割,并重复上述处理,直到通过所述分割获得的尺寸小于所述基准值的子多边形为止。在这个例子中,由于每个中点都是在由参数u和v定义的(u,v)空间中产生的,所以,利用上述分割获得的多边形形成沿基准曲面的曲面。
应当注意,在上述处理过程中,虽然所述基准曲面是一个球面,然该基准曲面可以是任何一种曲面。例如,由下述表示式给出的参数u和v的多项式可以被用做基准曲面(x,y,z)x=(1-v)((1-u)x0+ux1)+v(1-u)x3+ux2)+Nxf(u,v)y=(1-v)((1-u)y0+uy1)+v(1-u)y3+uy2)+Nyf(u,v)z=(1-v)((1-u)z0+uz1)+v(1-u)z3+uz2)+Nzf(u,v)在这个例子中,在参数u和v在由所述识别码指定的程序中预先被保持固定成四个点(u,v)=(o,o),(1,0),(1,1)和(0,1)的同时,常数xi,yi,zi(i=0,...,3)被作为数据提供给可编程包引擎48,以便计算在三维空间中该四个点的坐标值。
上述表示式的f(u,v)是参数u和v的二次表示式。所述项的系数被作为曲面参数提供给可编程包引擎48。例如,f(u,v)由下述表示式表示f(u,v)=au2+bu+cv2+dv+e系数a到e将被作为曲面参数提供给可编程包引擎48。
因此,在这个例子中,包括与图13的四点对应的识别码、法线矢量Nx,Ny,Nz、曲面参数、常数xi,yi,zi(i=0,...,3)和颜色数据(RGBi)(i=o,...,3)的包被提供给可编程包引擎48。应当注意,通过提供用于可编程包引擎48的数字微分分析器(DDA),可以简单的使用一个递归公式来计算所述基准曲面。
以图13所示数据包的形式所提供的多边形以类似于在基准曲面是球面的情况中的方式根据Z值由可编程包引擎48进行分割。例如,在Z值较高和所述多边形在深度方向上被设置在较远的位置的情况下,即在所述多边形被较小地显示在预定显示部分上的情况下,可编程包引擎48的辅助CPU95不分割所述多边形,或换言之,如图14A所述,分割数被设置成1,且将所述多边形的顶点坐标值存储到目的RAM97中。
另一方面,在所述Z值较低且所述多边形在深度方向上被设置得较近的情况下,即,在所述多边形在预定显示部分上被显示的比较大时,辅助CPU95将所述多边形分割成四个多边形,即,如图14B所示,分割数设为四,以便根据基准曲面产生四个子多边形并将该四个子多边形的顶点坐标值存储到目的数据RAM97中。
但是,在所述Z值很低且多边形被设置得在深度方向上很近的情况下,即,在多边形被很大地显示在预定显示部分上时,辅助CPU95将所述多边形分割成16个多边形,即,分割数量为16,如图14C所示,以便根据基准曲面产生16个子多边形,并将该16个子多边形的顶点坐标存储到所述目的数据RAM97中。
例如,在多边形被分割成如图14A所示的16个多边形时,如图15A所示,该16个多边形具有25个顶点P0到P24。由此,辅助CPU95以图15B所示的方式排列顶点的坐标值和颜色数据值(Xi,Yi,Zi,RGBi)并将这些值存储到目的数据RAM97中。
应当注意,该分割利用四边形(子多边形)。
利用这种方式,当一个目标的形状被显示在所述预定显示部分时,该目标的形状根据尺寸(显示尺寸)改变,并且,当显示尺寸很小时,具有少量顶点的目标被显示成预定目标且显示所需操作的数量被减少,另一方面,在显示尺寸很大的情况下,具有相对较大数量顶点的目标被显示成一个预定目标,以便使用户在原来目标和显示目标之间不感到形状的差别。
另外,通过将相对粗略尺寸的多边形的数据传输给可编程包引擎48和利用可编程包引擎48根据显示区域对所述多边形进行分割,可以减少经过主总线41从主CPU44提供给可编程包引擎48的数量量,进而减少对主总线41的负荷。
从可编程包引擎48输出给图形处理单元49的数据量(输出数据量)根据图16所示多边形的分割量而增加,同时由主CPU44经过主总线41提供给可编程包引擎48的数据量(输入数据量)是固定的(在图13的包中,每一个多边形为6个字),与多边形的分割量无关。这样,对主总线41的负荷是固定的,另外,利用这种方式,数据以图16所示的数据压缩比被进行压缩,且需要处理的数据量(沿主总线41进行通信的数据量)减少。
应当注意,由于在保持每个多边形4个顶点数据的同时,图形处理单元49执行单个多边形的处理,所以,当图形处理单元49再次使用前面4个或多个提供的顶点数据时,可编程包引擎48再次提供顶点的数据。因此,从可编程包引擎48输出的数据量(字数)大于通过分割获得的多边形的顶点的数量。
例如,以如图15所示被分成具有总数为25个顶点P0到P24的16个子多边形的数据需要被提供给图形处理单元49为例。首先,可编程包引擎48将顶点P0到P3的数据提供给图形处理单元49,且图形处理单元49执行对具有顶点P0到P3的多边形的处理。然后,可编程包引擎48提供顶点P4到P5的数据,且图形处理单元49执行对具有顶点P1、P3、P4和P5的多边形的处理。类似的,可编程包引擎48按序提供顶点P6到P9的数据,且图形处理单元49连续执行对具有顶点P4到P7的多边形的处理和具有顶点P6到P9的多边形的处理。
然后,可编程包引擎48向图形处理单元49提供顶点P2、P3、P10和P11的数据,图形处理单元49执行对具有顶点P2、P3、P10和P11的多边形的处理。另外,可编程包引擎48提供顶点P5和P12的数据,并且,图形处理单元49执行具有顶点P3、P5、P11和P12的多边形的处理。类似地,可编程百单元48提供顶点P7、P9、P13和P14的数据,图形处理单元49连续执行对具有顶点P5、P7、P12和P13的多边形和具有顶点P7、P9、P13和P14的多边形的处理。
此后,可编程包引擎48向图形处理单元49提供顶点P10到P24的数据,图形处理单元49以类似方式连续处理各个多边形。
由于可编程包引擎48以如上所述方式向图形处理单元49提供各个多边形顶点的数据,所以包括顶点P2、P3、P7和P9以及顶点P10到P19在内的15个顶点数据被两次地提供给图形处理单元49。因此,由于总数为40(=25+15)的顶点数据被提供给图形处理单元49,所以,当所述多边形被分割成16时从可编程包引擎48输出的数据量是40个字,如图16所示。以这种方式提供的数据被称作为条状格网(stripe mesh)。
在上述的实施例中,在表示基准曲面的曲面参数被提供给可编程包引擎48的同时,表示光源位置的参数可以与多边形顶点坐标值一起被提供给可编程包48,这样,在所述多边形被根据Z值进行分割以后,可以根据表示光源位置的参数计算通过分割获得的多边形(子多边形)的亮度值。
例如,包括表示光源位置的光源参数与图17所示的多边形顶点P0到P3的坐标值(Xi,Yi,Zi)(i=0,...,3)以及法线矢量(Nx,Ny,Nz)和用于指定对所述多边形进行分割处理的一个程序的识别符(图17中的代码)被预先记录在CD-ROM40上,且数据被读出和存储在主存储器45内。然后,在利用图形传输引擎71执行多边形的坐标转换之后,这些数据被作为一个信息包由包引擎72提供给图17B所示的可编程包引擎48。然后,在对多边形进行分割之后,可编程包引擎48根据光源参数计算各个子多边形的亮度值。应当注意,在使用点光源的情况下,点光源的坐标(Lx,Ly,Lz)和该光源的颜色信息(Lr,Lg,Lb)被作为光源参数提供给可编程包引擎48。
可编程包引擎48根据提供给它的光源参数计算在来自所述光源的一个法线(normal)和包括图18A所示多边形的两维平面(p,g)之间的交点坐标(P0,q0),并计算离所述两维平面(p,g)的光源的高度h,还根据各子多边形的顶点坐标值利用下述表示式计算所述子多边形顶点处的亮度值L(该值反比于到光源的距离的平方)L=h2/(h2+(p-p0)2+(q-q0)2)
例如,在一个多边形被分割成8个子多边形的情况下,可编程包引擎48计算每个子多边形顶点的亮度值。然后,图形处理单元49根据所述子多边形顶点的亮度值计算所述子多边形的亮度值,并执行图18B所示的多边形显示。类似的,在所述多边形被分割成32个子多边形的情况下,可编程包引擎48计算所述子多边形各顶点的亮度值。然后,图形处理单元49根据子多边形顶点的亮度值计算所述子多边形的亮度值,并执行图18C所示多边形的显示。通过以这种方式计算预定多边形的各单个多边形的亮度值,一个目标表面的亮度值可以很精细地变化。
然后,以这种方式对例如通过如图19A所示分割成16个部分所产生的子多边形各顶点(在这个例子中是25个顶点)计算的亮度值与来自可编程包引擎48的各顶点的坐标值一起被输出给图18B所示的图形处理单元49(图形处理单元49从可编程包引擎48的目的数据RAM97中读出所述亮度值)。
通过以上述方式分割所述多边形并计算各子多边形的亮度值,亮度值变化的密度(density)可以根据该多边形的显示尺寸进行调节。另外,利用这种方式,由于图形处理单元49仅需要执行诸如发光遮蔽(glow shading)的线性计算,或者,换言之,由于图形处理单元49不需要执行复杂的光源计算,所以可以减少对图形处理单元49的负载。
应当注意,在这个例子中,所述多边形是在图19A所示的三维空间中被进行线形分割的。
另外,在上述的实施例中,在形成三维目标的一个多边形的顶点坐标被从CD-ROM40中读出的同时,还可以将具有三维基本形状(诸如球形、圆柱形、立方体形或平面形)的基本目标(模板(模块))预先存储到可编程包引擎48中以与所述模板和在所述模板相应点处的差值(模板相应点和与相应点对应的三维目标的点之间的偏移)相对应的识别号(模板模式ID)来表示一预定三维目标,以及将它们记录到CD-ROM40中。
例如,利用指定图20B所示圆柱形模板和在所述圆柱形模板相应点pij(i=0,...9)处离所述模板的偏移(差值)nij的模板模式ID来表示如图20A所示的旋转体,即,相对于预定旋转轴对称的一个旋转体的形状。
当利用上述这样一种模板时,主CPU44从CD-ROM40读出模板模式ID、目标的坐标值和模板偏移nij,并将所述数字值与用于指定对图21所示多边形进行处理的程序的一个识别码一起作为一个信息包传送给可编程包引擎48。
然后,在接收该信息包的基础上,可编程包引擎48使用由包括在所述信息包中的识别码所指定的程序对包括在该信息包中的三维目标的数据进行处理,并引用模板模式ID从ROM96中读出与所述模板模式ID对应的模板数据。然后。可编程包引擎48根据来自所述模板的数据和偏移确定三维目标的形状。
通过以这种方式以用于指定一个模板和来自所述模板偏移nij的模板模式ID来表示三维目标,在模板形状对称的基础上,可以减少将被记录在CD-ROM上的数据量或用于坐标转换操作的次数。例如,在如图20B所示的圆柱形模板中,图20A所示的形状可以仅由在半径方向上的偏移(一维)来表示。
图22示出了用于生产CD-ROM40的不同生产装置。图22A所示的生产装置以图13所示多边形为单位的数据格式记录一个预定三维目标。但图22B所示的生产装置是一个应用了本发明的记录装置,该装置的构成使它能够以利用图21所示模板的数据格式记录一个预定三维目标。
在图22A所示的生产装置中,一个模型制造器112从输入装置111接收与一个设计者,即产生一个图像的个人的手动操作相对应的信号,并响应该设计者的手动操作产生三维目标。
模型制造器112将与产生的三维目标的曲面相关的信息提供给运算电路113并将形成所产生三维目标的多边形的顶点坐标值提供给记录装置114。
运算电路113根据由模型制造器112提供的曲面信息计算与各个多边形相对应的曲面参数,并将这些曲面参数提供给记录装置114。
记录装置114将一个激光束照射到母盘上以便记录数据。即,从模型制造器112和运算电路113提供给它的记录数据。应当注意,所述母盘的表面上具有感光保护膜,记录装置114照射该表面以便以和所述记录数据相对应的坑的形状来产生光感应。此后,母盘被显影。然后,在所述母盘表面上形成多个凹坑和突起,并产生一个模子。接着,根据这个模子生产大量的CD-ROM复制品。
在产生CD-ROM模子的基础上,通过利用激光束以这种方式根据记录数据来照射主盘,包括曲面参数和顶点坐标值的记录数据被记录在相应磁道上。然后,通过进一步传送母盘已经被传送了的模子,产生具有与记录数据对应的坑形状的CD-ROM。
然后,在图22B所示的产生装置中,模型制造器112从输入装置111接收与设计者手动操作相对应的信号,并产生与设计者的手动操作相对应的三维目标。
然后,模型制造器112将所产生的三维目标的信息提供给运算电路115并将所产生三维目标的各个点的坐标值提供给记录装置114。
用做计算装置的运算电路115从由模型制造器112提供的三维目标信息中选择与所述三维目标相应的一个模板、计算所述模板的识别号和在所述模板各个点和由模型制造器112产生的三维目标的各个点之间的差值,并将所述识别号和差值提供给记录装置114。
用做记录装置的记录装置114将激光束照射到母盘上,以便将从模型制造器112和运算电路115提供给它的记录数据(模板模式ID和在相应点处的差值)记录到母盘上。然后,以类似于在图22A所示产生装置中的方式由母盘产生大量CD-ROM。
以如上方式产生保持作为记录数据的在相应点差值和模板模式ID的CD-ROM。
因此,本发明满足了对一种新的和经过改进的记录介质和有利于在减低成本的前提下执行有效和高速处理的记录和信息处理系统的需要。
应当注意,在上述的实施例中,CD-ROM被用做一种记录介质,也可以使用任何一种其他适当的记录介质。
很明显通过前面的描述,在示出和描述了本发明特殊形式的同时,可以在不脱离本发明精神和范围的情况下作出多种修改。因此,除了所附权利要求以外,上述说明不作为对本发明的限制。
权利要求
1.一种信息处理装置,包括第一转换装置,用于根据构成三维空间中的三维目标的多个第一平面图形中的每个,沿着一预定基准折曲表面,产生一定数量的第二平面图形,所述数量与一预定显示部分上的所述第一平面图形的显示尺寸相关联;和第二转换装置,用于将所述第二平面图形的数据转换成两维显示数据。
2.如权利要求1所述的信息处理装置,还包括坐标转换装置,用于转换所述第一平面图形的顶点坐标。
3.如权利要求1所述的信息处理装置,其中与所述显示尺寸相关联的所述数量通过下述方法来确定,即沿着所述基准折曲表面递归产生第二平面图形的每一个,直到所述第二平面图形的显示尺寸变得不大于一预定基准值。
4.如权利要求1所述的信息处理装置,其中根据三维空间中沿纵深方向的所述多个第一平面图形的每一个的位置确定与所述显示尺寸相关联的所述数量。
5.如权利要求4所述的信息处理装置,其中当沿纵深方向的所述位置向前靠近时,在数值上增加与所述显示尺寸相关联的所述数量。
6.一种信息处理方法,包括如下步骤根据构成三维空间中的三维目标的多个第一平面图形中的每个,沿着一预定基准折曲表面,产生一定数量的第二平面图形,所述数量与一预定显示部分上的所述第一平面图形的显示尺寸相关联;和将所述第二平面图形的数据转换成两维显示数据。
7.一种信息处理装置,包括读出装置,用于从一个记录介质中读出数据,在所述记录介质上记录有由三维空间中的多个平面图形构成的三维目标的数据;分割装置,用于根据预定显示部分上的显示尺寸分割所述平面图形;计算装置,用于从原始平面图形的亮度值计算通过分割所获得的平面图形的亮度值;和产生装置,用于从通过分割所获得的所述平面图形的亮度值产生两维显示数据。
8.一种信息处理方法,包括如下步骤从一个记录介质中读出在所述记录介质上记录的、由在三维空间中的多个平面图形组成的三维目标的记录数据;根据在预定显示部分上的显示尺寸分割所述平面图形;从原始平面图形的亮度值计算通过分割所获得的平面图形的亮度值;和从通过分割所获得的平面图形的亮度值产生两维显示数据。
9.一种用于记录三维空间中的预定目标的数据的记录装置,所述装置包括模型装置,用于根据由用户提供的所述预定目标的信息,产生由多个平面图形组成的三维目标;计算装置,用于计算对应于所述平面图形的折曲表面参数;和记录装置,用于将所述多个平面图形的每一个的顶点坐标值和所述折曲的表面参数记录在记录介质上。
10.如权利要求9所述的记录装置,其中由用户提供的所述预定目标的所述信息包括指定要被处理的程序的识别代码。
11.一种用于记录三维空间中的预定目标的数据的记录方法,所述方法包括根据由用户提供的所述预定目标的信息,产生由多个平面图形组成的三维目标;计算对应于所述平面图形的折曲表面参数;和将所述多个平面图形的每一个的顶点坐标值和所述折曲表面参数记录在记录介质上。
12.如权利要求11所述的记录方法,其中由用户提供的所述预定目标的所述信息包括指定要被处理的程序的识别代码。
13.一种图形系统,包括用于将一个多边形分割成多个子多边形的装置;用于计算各子多边形的亮度值的装置;和用于根据所述多边形的显示尺寸调节图像的亮度密度的装置。
14.一种图形方法,包括如下步骤将一个多边形分割成多个子多边形;计算各子多边形的亮度值;和根据所述多边形的显示尺寸调节图像的亮度密度。
全文摘要
一种记录介质、记录和信息处理装置和方法,可以在减少成本的情况下实现数据的有效和高速处理。主CPU响应用户的操作来转换一个多边形的坐标,并将该多边形的数据经过主总线传送给可编程包引擎。该包引擎计算表示在深度方向上该多边形位置的Z值、将所述多边形分割成一定数量的子多边形、根据法线矢量和曲面参数转换所述子多边形顶点的坐标值并产生由所述子多边形组成的曲面。图形处理单元将子多边形的数据写入帧缓冲器并执行绘制处理。
文档编号G06T19/00GK1412721SQ0212759
公开日2003年4月23日 申请日期1997年5月10日 优先权日1996年5月10日
发明者铃置雅一 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1