适于创建透明对象的实时阴影的系统和方法

文档序号:6480777阅读:187来源:国知局
专利名称:适于创建透明对象的实时阴影的系统和方法
技术领域
总的来说,本发明涉及诸如电子游戏系统这样的电子娱乐系统,更具体地说,涉及创建透明对象的实时阴影。
背景技术
诸如电子游戏系统这样的电子娱乐系统能够在显示装置(典型的是电视机)上产生高质量的图像。由于处理速度的提高,三维图像越来越逼真。然而,娱乐系统的处理器和其他硬件的能力仍然限制着实时创建逼真的三维图像的软件的发展。
电子娱乐系统必须能够足够块地执行计算,以至于能以每秒接近30或60帧的速度产生新图像。当每个图像包含多个复合对象时,计算量可能超过(tax)系统处理器的能力。因此,诸如电子游戏开发商这样的电子娱乐开发商的目的是创造实时产生图像,并且在现有硬件系统的限制下提供高质量图像的方法。
开发商面临的挑战之一是诸如玻璃对象(object)的还原透明对象,特别是具有复杂形状的对象的逼真的阴影。透明对象的阴影比不透明的对象的阴影更复杂。不透明的对象的阴影一般情况下是全部漆黑,而透明对象的阴影在一般情况下阴影和色彩是不均匀的。诸如射线跟踪这样的技术可以用来产生透明对象的阴影,但这些技术计算起来很费时间,不能产生逼真的效果,因此不适合被用于诸如电子游戏系统这样的电子娱乐系统的基于多边形的三维图形硬件。

发明内容
电子娱乐系统包括主存储器,构造成存储透明对象和接收器对象;通用处理器,构造成执行诸如游戏指令这样的指令;以及图形处理器,构造成执行绘图指令。与向量处理单元相结合的图形处理器计算透明对象的阴影映像,并将该阴影映像施加到接收器对象。
通过确定光向量和光坐标系、将透明对象的顶点转换成光坐标并且在光坐标中取得光向量与该透明对象的每个顶点的点积来计算阴影映像。将阴影映像存储在图形处理器的存储器中,然后作为纹理(texture)映像施加到接收器对象。与向量处理单元相结合的图形处理器最好使用乘法像素混合(multiplicative pixel-blending)技术来将该阴影映像施加到接收器对象。
通用处理器通过查找一从光源到该透明对象的平均方向向量。该平均方向向量最好是从该光源到透明对象的每个顶点的向量的平均值。该平均方向向量也可以是从光源到该透明对象的界定体积的中心。光向量定义了原点在光源的光坐标系统的z轴。通用处理器使用一个或多个转换矩阵将透明对象的顶点转换成光坐标。


图1是根据本发明的电子娱乐系统的一个实施例的方框图;图2A是根据本发明的、图1的主存储器的一个实施例的方框图;图2B是根据本发明的、图1的图形处理单元(GPU)的一个实施例的方框图;图3A是透明圆筒的横截面图;图3B是图3A的透明圆筒的阴影图;图4是根据本发明的光坐标系统和透明模型(blocker)对象的示意图;图5是根据本发明的一个实施例的、用于创建透明对象的阴影的方法步骤的流程图;以及图6是用于执行创建图5的阴影映像的步骤的方法步骤的流程图。
具体实施例方式
图1是根据本发明的电子娱乐系统100的一个实施例的方框图。系统100包括但不限于主存储器110、中央处理单元(CPU)112、向量处理单元VU0111和VU1 113、图形处理单元(GPU)114、输入/输出处理器(IOP)116、IOP存储器118、控制器接口120、存储器卡122、通用串行总线(USB)接口124以及IEEE1394接口126。系统100还包括操作系统只读存储器(OS ROM)128、声音处理单元(SPU)132、光盘控制单元134和硬盘驱动器(HDD)136,它们经由总线146至116相互连接。
CPU 112、VU0 111、VU1 113、GPU 114和IOP 116经由系统总线144通信。CPU 112经由专用总线142与主存储器110通信。VU1 113和GPU 114还可以经由专用总线140通信。CPU 112执行存储在OS ROM 128和主存储器110中的程序。主存储器110可以包括预先存储的程序并且还可以包括经由IOP116使用光盘控制单元134从CD-ROM或DVD-ROM(未图示)传输来的程序。IOP 116控制CPU 112、VU0 111、VU1 113、GPU 114和诸如控制器接口120这样的系统100的其他装置之间的数据交换。
GPU 114执行来自CPU 112和VU0 111的绘图指令,以产生在显示装置(未图示)上显示的图像。VU1 113将对象从三维坐标变换到二维坐标,并将该二维图像发送到GPU 114。SPU 132执行指令来产生在音频装置上输出的声音信号(未图示)。系统100的用户经由控制器接口120向CPU 112提供指令。例如,用户可以命令CPU 112在存储器卡122上存储一定的游戏信息。其他装置可以经由USB接口124和IEEE 1394接口126连接到系统100。
图2A是根据本发明的、图1的主存储器110的一个实施例的方框图。主存储器100包括但不限于游戏指令212、透明对象214和接收器对象218。游戏指令212从CD-ROM经由光盘控制单元134装载到主存储器110。与GPU114和SPU 132相结合的CPU 112使用经由控制器接口120从用户那里接收到输入的执行游戏指令212。
透明对象214包括在三维空间定义透明对象的信息。透明对象214一般包括定义多边形的多个顶点,以及每个顶点的色彩信息。透明对象214的顶点一般作为完全坐标系中的三维点进行存储。透明对象214可以是任何形状和任何色彩的,例如可以是酒杯、塑料管或彩色玻璃窗。虽然在图2A中只图示了一个透明对象214,但主存储器110可以包含任意多个透明对象214。
接收器对象(receiver object)218包括定义多边形的多个顶点,以及每个顶点的色彩信息。接收器对象218的顶点一般作为完全坐标系中的三维点进行存储。接收器对象218是可以容纳透明对象214的阴影的对象。接收器对象218可以是任何类型的对象,包括游戏人物或图像背景。虽然在图2A中只图示了一个接收器对象218,但主存储器110可以包含任意多个接收器对象。
图2B是根据本发明的、图1的图形处理单元114的一个实施例的方框图。GPU 114包括存储器220。存储器220构造成存储阴影映像216。阴影映像216由GPU 114绘制并作为二维纹理图像存储在存储器220中。在图2B的实施例中,阴影映像216与透明对象214有关。阴影映像216将在下面结合图4-6进行进一步讨论。主存储器110可以存储多个透明和不透明的对象,存储器220可以存储这些对象的阴影映像。
图3A是透明圆筒312的横截面图。位于透明圆筒312左边并在纸面稍微上面一点的光源(未图示)产生各种光线,包括穿过圆筒312的光线322、324、326。如图3A所示,穿过圆筒312的边缘的光线322-324必定比穿过圆筒312的一边的光线326更透明地通过。光线322、324、326在穿过圆筒312时发生折射,并在接收被折射的光线322、324、326的对象上产生阴影。
图3B是透明圆筒312的阴影图。如图3B所示,由于诸如光线322和324这样的光线必定更透明地并且出现更强的散射,因此边缘332和334处的阴影较黑。在制作这种阴影的电子图像时,这是透明对象的阴影的应该被注意的一个方面。
在图3B的实施例中,由于象在图3A的描述中所提到的那样,光源在纸面上面,使得诸如光线326这样的一些光线只穿过透明圆筒312的一边,因此阴影的末端336出现椭圆。该阴影的形状和大小依赖于光源相对于透明圆筒312的位置。
图4是根据本发明的一个实施例的光坐标系统400和透明模型对象214的图示。透明模型对象214是中空的透明圆筒。虽然在图4中未图示,但透明模型对象214包括由存储在主存储器110中的顶点定义的多边形。每个顶点包括位置和色彩信息并具有相应的法向向量。图示了示例性的法向向量422、424、426、428。
光向量410是完全坐标系中的单位向量,该向量起点在光源430,方向指向透明对象214。光向量410定义光坐标系统400的z轴,其起点是光源430。光向量410可以通过查找平均方向向量进行确定,所述平均方向向量可以是从光源430指向透明模型对象214的每个顶点的向量的平均。平均方向向量还可以是起于光源止于透明模型对象214的界定体积的中心的向量。然后,根据现有公知技术确定定义光坐标系统400的x轴和y轴的单位向量。
接着将透明模型对象214的顶点转换成光坐标。透明模型对象214的顶点一般在主存储器110中表达成完全坐标系中的三维点。CPU 112使用一个或多个转换矩阵将透明模型对象214的顶点从完全坐标变换成光坐标。
透明模型对象214的阴影映像216通过确定光向量410和透明模型对象214的法向向量422、424、426、428中的每一个的点积来创建。对于拥有实际上平行于诸如法向向量422和428这样的光向量410的法向向量的顶点,这种点积值接近于1。对于拥有实际上垂直于诸如光向量426这样的光向量410的法向向量的顶点,这种点积值接近于0。因此,透明模型对象214的阴影映像216在边界上比在中间更黑,这接近透明对象的实际阴影的效果。
阴影映像216作为二维纹理对象存储在GPU 114的存储器220中。因此可以使用将纹理施加到对象的技术来将阴影映像216施加到接收器对象218。在该优选实施例中,已经施加了阴影映像216的接收器对象218由VU1 113和GPU 114使用利用乘法像素混合的多遍绘制技术进行绘制。这种技术允许也许其他纹理施加到接收器对象218。阴影映像216可以部分地施加到接收器对象218,并且部分地施加到另一个对象或图像背景。同样,多个阴影映像可以施加到单一对象并且可以叠加。
图5是根据本发明的一个实施例的、用于创建透明对象的阴影的方法步骤的流程图。首先,在步骤510中,CPU 112确定光坐标系。光源430在完全坐标系中的位置设置成该光坐标系的原点。如以上结合图4所描述的那样,起始于该光源指向透明模型对象的单位向量定义该光坐标系的z轴。
然后,在步骤512,CPU 112使用一个或多个转换矩阵将透明模型对象的顶点从完全坐标系变换到光坐标系。在步骤514,与VU1 113向结合的GPU 114为该透明模型对象创建一阴影映像。这一步骤将在下面结合图6进一步进行讨论。
在步骤516,VU1 113和GPU 114当在图像中绘制接收器对象时将该阴影映像施加到该接收器对象。使用现有公知技术将该阴影映像作为二维纹理映像进行施加。在该优选实施例中,这个步骤使用利用乘法像素混合的多遍绘制技术。这样,多个阴影映像可以施加到单一接收器对象,并且该阴影映像可以叠加。
图6是用于执行创建图5的阴影映像的步骤514的方法步骤的流程图。首先在步骤612,CPU 112定义一光向量作为沿该光坐标系的z轴的单位向量。然后,在步骤614,VU1 113确定该光向量与透明模型对象的法向向量的所有顶点的点积。
在步骤616,VU1 113经由总线140将关于透明模型对象的点积值发送到GPU 114。然后,在步骤618,GPU 114通过在顶点之间插值来绘制该阴影映像,并将该阴影映像存储在其存储器220中。该点积值是与模型对象的顶点有关的量值。该阴影映像的值指示亮度并且可以指示色彩,使得彩色透明模型对象在接收器对象上投射一彩色阴影。
在上面已经参考一个优选实施理解释了本发明。对于本领域的普通熟练技术人员来说,根据这份公开,其他实施例将是显然的。例如,本发明可以容易地使用上述优选实施例所述的配置以外的其他配置实现。另外,本发明可以有效地与上述作为优选实施里所描述的系统以外的其他系统结合起来使用。因此,关于该优选实施例的这些和其他变型由仅仅被附加权利要求限制的本发明进行覆盖。
权利要求
1.一种用于创建透明对象的阴影的电子娱乐系统,包括存储器,构造成存储透明对象和接收器对象;处理器,构造成执行诸如游戏指令并产生绘图指令;以及图形处理器,构造成根据绘图指令计算关于透明对象的阴影映像并将该阴影映像施加到该接收器对象。
2.如权利要求1的电子娱乐系统,其中该透明对象按照在完全坐标系中确定多边形的顶点存储在存储器中。
3.如权利要求2的电子娱乐系统,其中该处理器确定光向量,确定光坐标系并将透明对象的顶点转换成光坐标,而图形处理器使用光向量与以光坐标表示的透明对象的每个顶点之间的点积计算该阴影映像。
4.如权利要求3的电子娱乐系统,其中用光向量与透明对象的每个顶点之间的点积通过向量处理单元进行计算。
5.如权利要求3的电子娱乐系统,其中该处理器通过确定从光源到透明对象的平均方向向量来确定光向量。
6.如权利要求5的电子娱乐系统,其中该平均方向向量是从光源到透明对象的每个顶点的向量的平均。
7.如权利要求5的电子娱乐系统,其中该平均方向向量是从光源到透明对象的界定体积的中心的向量。
8.如权利要求3的电子娱乐系统,其中该处理器使用按照沿光坐标系的z轴的单位向量的光向量确定光坐标系。
9.如权利要求3的电子娱乐系统,其中该处理器使用转换矩阵将透明对象的顶点转换成光坐标。
10.如权利要求1的电子娱乐系统,其中该接收器对象作为确定完全坐标系中的多边形的顶点存储在存储器中。
11.如权利要求1的电子娱乐系统,其中图形处理器将作为纹理映像的阴影映像施加到该接收器对象。
12.如权利要求11的电子娱乐系统,其中图形处理器使用乘法像素混合来将阴影映像施加到该接收器对象。
13.如权利要求1的电子娱乐系统,其中该阴影映像存储在图像处理器的存储器中。
14.一种用于创建透明对象的阴影的方法,包括步骤在存储器中存储透明对象的顶点;基于光源和光向量确定光坐标系;将透明对象的顶点转换成光坐标;计算该光向量与以光坐标表示的透明对象的每个顶点之间的点积;将该点积存储成阴影映像;以及将该阴影映像施加到接收器对象。
15.如权利要求14的方法,其中该光向量是从光源到透明对象的平均方向向量。
16.如权利要求15的方法,其中该平均方向向量是从光源到透明对象的每个顶点的向量的平均。
17.如权利要求15的方法,其中该平均方向向量是从光源到透明对象的界定体积的中心的向量。
18.如权利要求14的方法,其中该阴影映像被作为纹理映像施加到该接收器对象。
19.如权利要求14的方法,其中该阴影映像通过使用乘法像素混合施加到该接收器对象。
20.如权利要求14的方法,其中使用转换矩阵将透明对象的顶点转换成光坐标。
21.如权利要求14的方法,其中该阴影映像包括色彩信息。
22.一种存储用于让计算机通过执行下列步骤以创建透明对象的阴影的指令的计算机可读介质,该步骤为在存储器中存储透明对象的顶点;基于光源和光向量确定光坐标系;将透明对象的顶点转换成光坐标;计算该光向量与以光坐标表示的透明对象的每个顶点之间的点积;将该点积存储成阴影映像;以及将该阴影映像施加到接收器对象。
23.如权利要求22的计算机可读介质,其中该光向量是从光源到透明对象的平均方向向量。
24.如权利要求23的计算机可读介质,其中该平均方向向量是从光源到透明对象的每个顶点的向量的平均。
25.如权利要求23的计算机可读介质,其中该平均方向向量是从光源到透明对象的界定体积的中心的向量。
26.如权利要求22的计算机可读介质,其中该阴影映像被作为纹理映像施加到该接收器对象。
27.如权利要求22的计算机可读介质,其中该阴影映像通过使用乘法像素混合施加到该接收器对象。
28.如权利要求22的计算机可读介质,其中使用转换矩阵将透明对象的顶点转换成光坐标。
29.如权利要求22的计算机可读介质,其中该阴影映像包括色彩信息。
30.一种创建透明对象的阴影的系统,包括用于存储透明对象的顶点的部件;用于基于光源和光向量确定光坐标系的部件;用于将透明对象的顶点转换成光坐标的部件;用于计算该光向量与以光坐标表示的透明对象的每个顶点之间的点积的部件;用于将该点积存储成阴影映像的部件;以及用于将该阴影映像施加到接收器对象的部件。
全文摘要
一种用于创建复杂透明对象的实时阴影的系统和方法,包括处理器和存储透明模型对象和接收器对象的主存储器。三维游戏环境中的光源确定光坐标系统的原点。从光源到模型对象的单位向量定义该光坐标系的z轴并定义一光向量。处理器将模型对象的顶点从完全坐标转换成光坐标。然后图形处理器通过取采用光向量与模型对象的每个顶点之间的点积计算阴影映像。然后将该阴影映像存储在图形处理器的存储器中,并由图形处理器将其作为纹理映像施加到该接收器对象。
文档编号G06T15/60GK1369849SQ0210352
公开日2002年9月18日 申请日期2002年2月5日 优先权日2001年2月6日
发明者加博·纳吉 申请人:索尼计算机娱乐美国公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1