具有折射的图象的重现方法和设备 【技术领域】
本发明涉及用于对图象进行重现从而以一种三维图象的形式高速地表示通过一个物体和从该物体折射的光线(即所谓地折射现象)的方法和设备、存储用于执行这种图象处理的程序和数据的记录介质、以及用于执行这种图象处理的程序。背景技术
近来,各种计算机图形(CG)处理技术,包括隐藏线处理、隐藏表面去除、平滑阴影、组构映象等等,与硬件技术的迅速发展相结合地得到了迅速的发展。
根据一种通常的CG处理方案,多个三维形状(物)通过CAD三维模型而得到产生,且通过对物加色和阴影、给物添加包括镜反射、漫反射、折射、透明等的光学性质、给物加上表面图案、以及根据诸如窗口和场面反射以及背景光的周围情况而绘制图象,而进行重现处理。
如果例如通过一个物并被其折射的光线要以三维图象的形式得到表示,则需要再现这种光学现象,从一个视点发出的光线当进入该物和当离开该物时都得到折射。
为了用一种三维图象来表示上述折射现象,通常的方法是采用光线轨迹描述而不是多边形。
根据光线轨迹描述技术,光线在其中物被放置的一个空间中得到了跟踪,且物用光线与物的交点来表示。换言之,到达一个视点的光线的强度被从该视点向回跟踪,而根据光线的实际行为再现物的表面处的反射和折射。
具体地,寻找来自一个固定视点的一条光线与作为一个被显示的象素的物之间的一个交点,且如果有这样一个交点,则被该物反射或折射的光线得到跟踪。有关交点的信息作为有关被显示的象素的信息而得到存储。相对于各个象素而确定的信息表示了固有的颜色特性(包括色调、饱和、以及亮度)、组构(包括反射、折射、光面)、或阴影和高亮。
然而,这种光线跟踪技术的缺点,在于由于上述信息与各个象素有关,所需的总的信息量很大,且进行光线跟踪所需的计算时间长。本发明的内容
因而本发明的一个目的,是提供用于重现一个图象的一种方法和设备、一种记录介质、以及一种程序,用于表示通过一个物并被该物所折射的光线,从而高速而简单地表达运动的透明的物。
根据本发明,提供了用于重现图象的一种方法,包括从离视点最远的一个表面开始的顺序对造成折射的物的表面进行重现,以及当表面被重现时采用各个表面的一个背景图象作为组构。
根据本发明,还提供了一种用于重现图象的一种设备,包括用于按照里一个视点最远的一个表面开始的顺序对造成折射的一个物的表面进行重现的重现装置,以及当表面被重现时采用这些表面中的每一个的一个背景图象作为组构。
根据本发明,还提供了存储程序和数据的一种记录介质,该程序包括以下步骤:从离视点最远的一个表面开始的顺序对造成折射的物的表面进行重现;以及,当表面被重现时采用各个表面的一个背景图象作为组构。
根据本发明,还提供了一种程序,它可被一个计算机读取和执行,包括以下步骤:从离视点最远的一个表面开始的顺序对造成折射的物的表面进行重现;以及,当表面被重现时采用各个表面的一个背景图象作为组构。
当这样的表面被重现时,由于只有各个表面中的背景图象被用作组构图象,因而图象能够高速地得到处理。因此,通过一个物并被其折射的光线能够借助一个三维图象而高速地得到表示,从而简单而高速地表示运动的透明物。
优选地,借助从视点指向背景图象的矢量的透视投影而得到投影的一个范围内的、并考虑了在表面的顶点处的折射的背景图象的一部分,在表面被重现时被用作组构。
这些矢量至少可以根据在一种视点坐标系中的该表面的法线方向和从视点指向这些顶点的线段的方向而得到确定。
具体地,投影至由背景图象的u轴和视点坐标系的z轴构成的uz平面上的顶点的位置得到确定,且在背景图象的u轴上的顶点的坐标至少根据从视点指向投影位置的线段的方向和uz平面的法线的方向而得到确定。投影到vz平面-它由背景图象的v轴和视点坐标系的z轴构成-上的顶点的位置,至少根据从视点指向这些投影位置的线段的方向和vz平面中的法线的方向,而得到确定。
将要被映射至该表面上的背景图象可简单地得到确定,因而折射现象能够以三维图象的形式高速地得到显示。
从以下结合附图的描述-其中本发明的最佳实施例以示例性的例子的方式得到了显示,本发明的上述和其他的目的、特征和优点将变得显而易见。附图的简要描述
图1是根据本发明的一种娱乐设备的总体设置的框图;
图2显示了作为一种背景图象而基底的山脉画面和诸如在山脉画面前放置的诸如玻璃的材料的立方体的显示图象;
图3显示了一种方式,其中从一个视点发出的光线矢量被该立方体所折射;
图4A显示了用作一个立方的后表面的一种组构图象的范围;
图4B显示了图4A所示的组构图象-它被加到该立方体上-以及用作该立方的前表面的一个组构图象的范围;
图4C显示了加到该立方体上的图4B中所示的组构图象;
图5显示了一种方式,其中立方体的后表面的顶点通过透视投影并根据折射而被投影到背景图象上;
图6显示了一种方式,其中立方体的前表面的技术通过透视投影并根据折射而被投影到背景图象上;
图7显示了作为一个背景图象的山脉画面和在该山脉画面之前放置的诸如玻璃材料的两个立方体的显示图象;
图8是根据本发明的重现装置的功能框图;且
图9和10是图8所示的重现装置的处理流程的流程图。本发明的最佳实施模式
以下结合图1至10,描述作为把重现图象的一种方法和设备应用于进行三维CG处理的一种娱乐设备的一个实施例、以及一种记录介质和程序,该记录介质记录了该娱乐设备所执行的一种程序和数据。
如图1所示,娱乐设备10包括:用于控制娱乐设备10的一个MPU12;用于存储所要执行的各种程序和各种数据的主存储器14;用于进行几何处理所需的浮点矢量运算的矢量运算单元16;一个图象处理器20,用于在MPU12的控制下产生图象数据并把所产生的图象数据输出至一个显示监视器18(例如一个CRT);一个图形界面(GIF)22,用于决定MPU 12、矢量运算单元16、以及图象处理器20之间的传送路径;一个输入/输出端口24,用于把数据送到外部设备和从外部设备接收数据;具有OSD功能的ROM(OSDROM)26,它包括闪烁存储器等,用于控制核等;以及,一个实时时钟28,它具有日历和一个时钟功能。
主存储器14、矢量运算单元16、GIF 22、OSDROM 26、实时时钟28、以及输入/输出端口24经过一条总线30而与MPU 12相连。
至输入/输出端口24,连接有:一个输入/输出设备32,用于把数据(键入数据、坐标数据等)输入至娱乐设备10;以及,一个光盘驱动器36,用于回放一个光盘34-诸如其中存储有各种程序和数据(与物有关的数据、组构数据等)的CD-ROM等。
如图1所示,图象处理器20包括一个重现引擎70、一个存储器接口72、一个图象存储器74、以及诸如可编程CRT控制器等的显示控制器76。
重现引擎70用于根据来自MPU 12的重现命令而经过存储器接口72对图象存储器74中的图象数据进行重现。
一个第一总线78被连接在存储器接口72与重现引擎70之间,且一条第二总线80被连接在存储器接口72与图象存储器74之间。第一和第二总线78和80每一个都具有例如128位的宽度,用于使重现引擎70能够高速地重现图象存储器74中的图象数据。
重现引擎70能够对按照NTSC或PAL系统的320×240象素的图象数据或640×480象素的图象数据进行实时重现,即以1/60秒至1/30秒进行重现,快了十至几十倍。
图象存储器74具有一种统一存储器结构,它能够把一个组构重现区和一个显示重现区指定为相同的区。
图象控制器76把经光盘驱动器36读取的组构数据或主存储器14中产生的组构数据经存储器接口72而写入图象存储器74的组构重现区,并经存储器接口72图象存储器74的显示重现区中的重现的图象数据并把该读出的图象数据输出至显示监视器18以在其显示屏幕上显示一个图象。
以下结合图2至10描述娱乐设备10的特征功能。
根据该特征功能,为了重现造成折射的物,该物的表面从离一个视点最远形成一个表面开始相继地得到重现,且一个表面的背景图象在各个表面被重现时被用作一个组构。
例如,当该表面被被重现时,背景图象的这样一个部分被用作组构-即该部分在借助从该视点指向背景图象的矢量的透视投影而得到投影并考虑了该表面的顶点处的折射的一个范围内。
考虑到了在一个表面的顶点中的每一个处的折射的一个矢量,可根据至少在一个视点坐标系中的该表面的法线的方向以及从该视点指向各个顶点的线段的方向,而得到确定。
以下结合图2至7描述用于执行上述特征功能的一种具体处理。图2显示了作为背景图象100的一个山脉画面和放置在该山脉画面之前的诸如玻璃的材料的立方体102的图象。在所显示的图象中,通过立方体102的光线根据上述特征功能而得到折射。
如图3所示,从视点104发出的光线La当光线La进入立方体102时和当光线La离开立方体102时得到折射。如果假定立方体102之外的空间具有折射率n1,立方体102具有折射率n2,光线La以一个入射角θ1(即光线La与入射表面的法线106之间的夹角)入射到接近视点104的立方体102的一个表面上,且光线La以出射角θ2(即光线La与该表面的法线106之间的夹角)离开光立方体102的该表面,则光线La在该表面的折射由以下的折射定律公式表示:
n1sinθ1=n2sinθ2
上述公式表示的关系在光线La行进至立方体102的离视点104比较远的另一个表面时也是成立的。
根据本发明的用于重现图象的一种方法根据上述关系来确定背景图象中的立方体102的表面的位置。
具体地,如图4A和4B所示,在立方体102的六个表面中,离视点最远的一个表面A1得到选择,且表面A1的顶点a、b、c、d在背景图象100中的位置-更准确地说是表面A在背景图象100中的位置,至少根据在一个视点坐标系中与表面A1垂直的方向和从视点指向顶点a、b、c、d的线段的方向,而得到确定。
表面A1在背景图象100中的位置是在图象存储器74中提供的背景图象100中的一个位置。确定表面A1在背景图象100中的位置相当于确定表面A在具有作为背景图象100的水平轴的u轴和作为背景图象100的纵向轴的v轴的一个uv坐标系中的位置。
投影到由背景图象100的u轴和视点坐标系的z轴构成的uz平面上的顶点a、b、c、d的位置得到确定,且顶点a、b、c、d在背景图象100的u轴上的坐标至少根据从视点104指向投影的位置的线段的方向和与uz平面上的表面A1垂直的方向而得到确定。
例如,如图5所示,从视点104至后表面A1的一个顶点a的线段110得到分析。从顶点a至背景图象100的线段110的方向即出射角θ2根据线段110与法线112之间的夹角(入射角)θ1、立方体102的折射率n2、以及空间的折射率n1,而得到确定。背景图象100中顶点a的u坐标的位置通过借助根据线段114的矢量的透视投影而把顶点a投影到背景100上,而得到确定,其中线段114是由出射角θ2确定的。表面A1的顶点b、c、d在背景图象100中的u坐标的位置以类似方式得到确定。
随后,投影到由背景图象100的v轴和视点坐标系的z轴组成的一个vz平面上的顶点a、b、c、d的位置得到确定,且顶点a、b、c、d在背景图象100的v轴上的坐标至少根据从视点104指向投影位置的线段的方向和与vz平面上的表面A1垂直的方向而得到确定。
例如,虽然未显示,从视点104至顶点a的线段得到分析。从顶点a至背景图象100的线段的方向即出射角θ2根据该线段与法线之间的夹角(入射角)θ1、立方体102的折射率n2、以及空间的折射率n1而得到确定。背景图象100中的顶点a的v坐标的位置,通过把顶点a通过根据由出射角θ2确定的一条线段的矢量的透视投影而投影到背景100上,而得到确定。背景图象100中的其他顶点b、c、d的v坐标类似地得到确定。
以此方式,背景图象100中的后表面A1的顶点a的u和v坐标(u,v)得到确定。类似地,背景图象100中的其他顶点的坐标得到确定。现在,如图4A和4B所示,从视点104经表面A1指向背景图象100的矢量所投影并考虑到在表面A1的顶点a、b、c、d处的折射的一个范围,即所要使用的组构的一个范围120,得到了确定。范围120的组构随后被映射到表面A1上,表面A在图象存储器74中得到提供。
在表面A1已经被提供到图象存储器74中之后,另一个后表面A2得到选择,且随后以上述结合表面A1所述的方式相同的方式得到处理。表面A1至A6-它们构成了立方体102,按照A1→A2→A3→A4→A5→A6的顺序而得到处理。
在三个后表面A1、A2、A3已经在图象存储器74中被提供之后,三个前表面A4、A5、A6得到选择,并随后以与上述相同的方式得到处理。
例如,如图6所示,从视点104至前表面A5的一条线段122得到分析。从顶点a至背景图象100的线段122的方向即出射角θ2,根据线段122与表面A5的一条法线124之间的夹角(入射角)θ1、立方体102的折射率n2、以及空间的折射率n1,而得到确定。背景图象100中的顶点a的一个u坐标的位置,通过借助根据由出射角θ2确定的一条线段126的矢量的透视投影而把该顶点a投影到背景100上,而得到确定。背景图象100中表面A5的其他顶点b、g、h的u坐标的位置类似地得到确定。
随后,以与上述相同的方式确定背景图象100中的顶点a的v坐标的位置。
以此方式,背景图象100中前表面A的顶点a的uv坐标(u,v)得到确定。类似地,背景图象100中的其他顶点b、g、h的uv坐标得到确定。现在,如图4B和4C所示,由从视点104经表面A5指向背景图象100的矢量所投影并考虑到在表面A5的顶点a、b、g、g处的折射的一个范围-即所要使用的组构的一个范围130,得到确定。范围130的组构随后被映射到表面A5上,表面A5在图象存储器74中得到提供。此时,三个后表面A1、A2、A3的图象在前表面A5的背景图象100中得到提供,且前表面A5的组构包括了三个后表面A1、A2、A3的图象。
在已经在图象存储器74中提供了表面A5之后,另一前表面A6得到选择,比随后以与上述的结合表面A5的方式相同的方式得到处理。
在上述例子中,一个立方体102被置于山脉画面中。然而,如图7所示,根据本发明的该方法也可被应用于放置在山脉画面中的多个(图7中是两个)立方体102A、102B。立方体102A、102B按照从离视点104较远的立方体102A的顺序相继得到处理。
以下结合图8至10描述执行上述功能的软件即重现装置200(见图8)的一个例子。
重现装置200被从一种可随机访问的记录介质,诸如CD-ROM或存储卡或经过网络,而被提供至娱乐设备10。在此假定重现装置200从诸如CD-ROM的光盘34被读入娱乐设备10。
重现装置200预先按照一种预定的处理而从借助娱乐设备10回放的光盘34被下载至娱乐设备10的主存储器14中,并被MPU 12所执行。
如图8所示,重现装置200包括:一个对象选择装置206,用于在寄存在一个对象数据文档202中的若干个对象中按照从离视点最远的一个对象开始的顺序选择对象数据204;一个表面选择装置208,用于在选定的对象数据204所表示的对象的多个表面中按照从离视点最远的一个表面开始的顺序选择一个表面;一个法线方向确定装置210,用于确定选定的表面中的uz和vz坐标系中的法线的方向;一个第一投影位置计算装置212,用于确定选定的表面的顶点在uz平面上的投影位置;一个角度计算装置214,用于确定一个入射角θ1和一个出射角θ2;以及,一个第一坐标计算装置216,用于根据顶点在uz平面和投影位置和在顶点处的出射角θ2而确定背景图象100中的u坐标。
重现装置200还具有:一个第二投影位置计算装置218,用于确定选定的表面的一个顶点在vz平面上的投影位置;一个第二坐标计算装置220,用于根据该顶点在vz平面上的投影位置和在该顶点处的出射角θ2而确定背景图象100中的v坐标;一个组构图象确定装置222,用于根据顶点的uv坐标从背景图象100确定所要采用的组构图象;一个组构映象装置224,用于把所确定的组构图象映射到该选定的表面上;以及,一个结束确定装置226,用于确定重现装置200的处理流程是否完成。
以下结合图9和10来描述重现装置200的处理流程。
在图9的步骤S1,重现装置200把一个初始值1存储到用于获取对象的一个索引寄存器m中,从而使索引寄存器m初始化。
在步骤S2,对象选择装置206,在寄存在对象数据文档202中的若干个对象中按照从离视点最远的一个对象开始的顺序,选择一个对象(第m个对象)的对象数据204。
在步骤S3,重现装置200把一个初始值“1”存储到用于获取对象的表面的一个索引寄存器i中,从而使索引寄存器i初始化。
在步骤S4,表面选择装置208,在选定的对象数据204所表示的对象的多个表面中,按照从离视点最远的一个表面开始的顺序,选择一个表面(第i个表面)。
在步骤S5,重现装置200确定第i个表面的顶点的数目N。随后,在步骤S6,法线方向确定装置210确定uz和vz坐标系中的第i个表面的法线的方向。
在步骤S7,重现装置200把一个初始值“1”存储到用于获取顶点的一个索引寄存器j中,从而使索引寄存器j初始化。在步骤S8,第一投影位置计算装置212确定第j个顶点在uz平面上的投影位置(坐标)。
在步骤S9,角度计算装置214确定在uz平面中连接视点与第j个顶点的线段与该法线之间的夹角(入射角)θ1。在步骤S10,角度计算装置214,根据入射介质的折射率、出射介质的折射率、以及入射角θ1,确定一个角度(出射角)θ2。
在步骤S11,第一坐标计算装置216借助沿着由第j个顶点在uz平面上的投影位置(坐标)而确定的方向的透视投影以及出射角θ2而对第j个顶点进行投影,并确定第j个顶点在背景图象100中的位置(u坐标)。
在图10的步骤S12,第二投影位置计算装置218确定第j个顶点在vz平面上的投影位置(坐标)。
在步骤S13,角度计算装置214确定在vz平面中连接视点与第j个顶点的线段与该法线之间的一个角度(入射角)θ1。在步骤S14,角度计算装置214根据入射介质的折射率、出射介质的折射率、以及入射角θ1来确定一个角度(出射角)θ2。
在步骤S14,第二坐标计算装置220,通过沿着由第j个顶点在vz平面上的投影位置(坐标)和出射角θ2而确定的方向的透视投影,对第j个顶点进行投影,并确定第j个顶点在背景图象100中的位置(v坐标)。
在步骤S16,重现装置200把索引寄存器j的值加“1”。在步骤S17,重现装置200,根据索引寄存器j的值是否大于顶点的数目N,判定第i个表面的所有顶点的uv坐标是否都已经被确定。
如果第i个表面的所有顶点还未被确定,则控制返回到步骤S8以确定下一个顶点的uv坐标。如果第i个表面的所有顶点的uv坐标都已经确定,则控制进行到步骤S18。在步骤S18,组构图象确定装置222把第i个表面的顶点的uv坐标所围绕的一个范围中的背景图象100的部分确定为一个组构图象。
在步骤S19,组构映象装置224把所确定的组构图象映射到第i个表面上,并在图象存储器74中用映射的组构图象重现第i个表面。
在步骤S20,重现装置200把索引寄存器i的值加“1”。在步骤S21,结束确定装置226,根据索引寄存器i的值是否大于该对象的表面的数目M,判定对于该对象的所有表面的处理是否都已经完成。
如果所有表面的组构映射还未完成,则控制返回到步骤S4,以处理下一个表面。如果所有表面的组构映射已经完成,则控制进行到步骤S22,在那里重现装置200把索引寄存器m的值加“1”。在步骤S23,结束确定装置226,根据索引寄存器m的值是否大于对象的数目P,判定对所有对象的处理是否已经完成。
如果对所有对象的处理还未完成,则控制返回到步骤S4以处理下一个对象。如果对所有对象的处理都已经完成,则重现装置200的处理流程结束。
如上所述,当根据本实施例的重现装置200重现在其光线被折射的一个对象的各个表面时,重现装置200只采用各个表面中的背景图象100作为组构图象,因而能够对图象进行高速的处理。因此,通过一个对象并被其折射的光线能够以三维图象的形式高速地得到表示,从而简单而快速地表示运动的透明对象。
虽然已经对本发明的一个特定的最佳实施例进行了显示和详细描述,但应该理解的是在不脱离所附权利要求书的范围的前提下可以在其中进行各种改变和修正。