用于表现三维对象的方法和设备的制作方法

文档序号:6414271阅读:131来源:国知局
专利名称:用于表现三维对象的方法和设备的制作方法
技术领域
本发明涉及一种图象处理技术,特别涉及用于表现(render)要在二维屏幕上显示的三维对象的图像处理方法和设备。
背景技术
在诸如使用很多3D图形的计算机游戏和仿真的应用中,由于用户观看3D对象的视点移动以及用户移动3D对象,需要高速计算机图形(CG)处理。具体地说,每当对象或视点移动时,有必要进行高速表现处理。在此处理中,通过透视变换将对象的世界坐标变换为二维坐标。基于此位置信息以及对象表面的纹理特征,如颜色和图案,通过表现处理来逐个像素单元确定颜色信息,然后,该颜色信息被写入帧缓冲存储器,以便在屏幕上显示。
为了实现更高速度的表现处理,存在一种分割处理方法,其中,把要表现的区域分割为小贴片(tile)区域,并按照每个贴片并行地进行表现。利用被称为贴片表现的这一方法,有可能在芯片上(on-chip)存储器上进行大多数处理,所以,对用作帧缓冲器的外部存储器的依赖程度最小。因此,与使用3D管道(pipeline)的现有图形芯片相比,存储器带宽可以更窄。
此外,存在一种并行驱动多个图形处理器的方法。每个处理器具有VRAM,并且,将由各个图形处理器处理的表现数据与z缓冲器同步,然后,将其输出,并在外部将其合并为图像。
由于贴片表现与3D管道处理方法显著不同,因此,存在与应用的兼容性问题,并且,当对象数目增大时,由于分类处理导致其效率降低。在并行驱动图形处理器的方法中,并行性更高,但是,由于它被配置为使用物理上分离的存储器,因此,VRAM的利用较差,而且操作的灵活性难以令人满意。还有一种方法,其中,将空间分割为均匀大小的标准视体(view volume),并且通过标准视体单元并行地进行图象处理。但是,在此方法中,由于在不考虑3D对象的形状和空间位置的情况下分割空间,因此,难以设计出反映每个对象特性的灵活的和最佳的表现策略。
因而,很清楚,实现兼容性和灵活性同时通过增大表现处理的并行性来提高存储器效率和计算消息是艰难的挑战。

发明内容
考虑到上述问题而做出了本发明,并且其目的是提供一种能够灵活处理各种表现策略、并通过并行处理实现更高效率的图像处理技术。
根据本发明的一方面,提供一种图象处理设备。该设备包括分组单元,将输入的三维对象分成组;表现处理单元,其将包含属于相同组的三维对象的子空间导出(derive)为独立的表现单元,并对该子空间单独进行表现处理,并且为每个子空间生成独立的图像数据;以及合并单元,其通过合并为每个子空间生成的图像数据,生成将要显示的最终输出图像数据。
由世界坐标系定义的3D对象被视体剪切(clip),并利用诸如平行投影、透视投影等的投影方法投影到二维投影平面上,然后被显示。可以将视体缩小为适当的有限区域,使得可以限制投影到投影平面上的三维对象的数目。利用平行投影,可以通过限定视体上在投影方向上的深度来获得平行六面视体。另一方面,利用透视投影,可以通过限定离开视点的方向、角度、视体上的深度来获得四边截棱锥视体。表现处理单元可以使用透视投影的这种四边截棱锥视体、或平行投影的这种平行六面体视体作为子空间。
当把多个三维对象分组为一些组,并且把三维空间分割为子空间、每个子空间都包含属于相同组的三维对象时,子空间可能互相重叠,然而,可以允许这种重叠。如果将空间分割为均匀大小的子空间,则可能在子空间的边界上切分三维对象,并且,表现越过边界的对象变得困难。因此,通过将空间分割为允许重叠的不均匀大小的子空间,其中所述子空间包含属于相同组的三维对象,按照分割子空间独立地采用表现策略变得有可能。例如,多分辨率表现变得有可能,其中,选择根据子空间变化的分辨率,并进行散焦处理。此外,由于可以按照子空间独立地进行表现处理,因此,分布式表现处理变得更加容易。
可以基于对象特性或与表现对象时的LOD(细节等级)有关的信息来进行三维对象的分组。LOD信息是根据与视点的距离、指示应当多精确地表现对象的等级。对象特性和LOD信息可以在设计对象的阶段事先设置,或者可以在表现对象的阶段由用户手动设置,或者可以由表现系统自动设置。
表现处理单元可以包括多个表现单元,并且根据子空间单元的表现处理复杂性等级将表现处理分配给所述多个表现单元。表现处理的复杂性等级表示广义的表现处理中的困难,包含施加到对象上的各种类型的表现算法的计算量差别、执行表现算法时计算资源如CPU和存储器上的处理负荷的差别等。所述多个表现单元可以经总线连接,并被作为可并行生成图像数据的并行表现引擎而在一个芯片上实现,其中,每个表现单元具有其专用的存储区域。所述多个表现单元可以是通过网络彼此连接的外部分布式处理单元的组件,其按照子空间单元、以分布的方式执行表现处理。
所述多个表现单元的处理性能可以根据计算能力、存储器容量等而不同,并且,可以将表现处理分配给表现单元,每个表现单元具有对应于子空间单元的表现处理的复杂性等级的适当处理性能。例如,可以分别提供用于简单几何处理的专用处理器和用于复杂表现处理的专用处理器,或者在处理器上提供的存储容量可以不同,使得表现单元可具有不同的处理性能,并且可以根据子空间的表现处理的复杂性等级使用适当的处理器或存储器。
所述设备还可以包括通信单元,其从通过网络与该设备连接的外部分布式表现处理装置接收按照子空间单元表现的图像数据,并且,合并单元可以将从外部分布式表现处理装置接收的图像数据与表现处理单元生成的图像数据合并,并生成要显示的最终输出图像数据。分布式表现处理装置可以具有与根据本发明这一方面的所述设备相同的结构,并且系统可以被这样配置,使得这些设备可以通过互相通信来按照子空间单元交换图像数据,这样,可以在每个设备上生成要显示的最终图像数据。
可以将表现处理分配给多个分布式表现装置,每个分布式表现装置具有对应于按照子空间单元进行表现时的细节等级的不同网络距离。例如,网络上距所述设备更远距离处的分布式表现装置可以用较为粗略的细节等级对要表现的远景进行表现处理,并且所述设备的通信单元可以用相对长的等待时间从分布式表现装置接收表现结果。另一方面,网络上距所述设备较近距离处的分布式表现装置可以用较为精细的细节等级对要表现的近景进行表现处理,并且所述设备的通信单元可以用相对短的等待时间从分布式表现装置接收表现结果。
根据本发明的另一方面,还提供一种图象处理设备。该设备包括图形处理块和控制该图形处理块的中央控制块,并且这些块被一体化到单个装置中。图形处理块包括分组单元,其将输入的三维对象分成组;表现处理单元,其将包含属于相同组的三维对象的子空间导出为独立的表现单元,并对该子空间独立地进行表现处理,并且,为每个子空间生成独立的图像数据;以及合并单元,其通过合并为每个子空间生成的图像数据来生成要显示的最终输出图像数据。这些功能元件根据来自中央控制块的指令进行图形显示处理。中央控制块可以是包括CPU、存储器以及用于控制中断和DMA传输的控制单元的CPU核。
根据本发明的再一方面,提供一种图像处理系统,其包括多个图像处理设备,用于通过网络互相交换信息,并进行分布式表现处理。该系统包括分组单元,其将输入的三维对象分成组;表现处理单元,其将包含属于相同组的三维对象的子空间导出为独立的表现单元,并对子空间单独进行表现处理,并且,为每个子空间生成独立的图像数据;以及合并单元,其通过合并为每个子空间生成的图像数据来生成要显示的最终输出图像,并且,分组单元、表现处理单元和合并单元在功能上被分布在所述多个图像处理设备中。该系统可以被这样配置,使得每个图像处理设备可以包括分组单元、表现处理单元和合并单元的功能结构的至少一个,并且可以由整个系统进行一系列表现处理。
根据本发明的再一方面,可以提供一种图像处理设备,用于通过网络与其它设备交换信息。该设备包括以下功能块的至少一个分组单元,其将输入的三维对象分成组;表现处理单元,其将包含属于相同组的三维对象的子空间导出为独立的表现单元,并对子空间单独地进行表现处理,并且,为每个子空间生成独立的图像数据;以及合并单元,其通过合并为每个子空间生成的图像数据来生成要显示的最终输出图像,并且,从其它设备接收和使用此设备中不包括的功能块的处理结果。例如,该设备可以接收其它设备中的分组单元的分组结果,并在它的表现处理单元中使用该结果。反之,该设备可以将其分组单元和表现处理单元的处理结果发送给其它设备,并且可以在所述其它设备中使用该结果。
根据本发明的再一方面,提供一种图像处理方法。该方法包括将空间分割为彼此重叠的子空间,并按照子空间单元对每个子空间中的三维对象独立地进行表现处理,并且,通过评估深度方向上的距离来合并每个子空间中的三维对象的表现数据。
根据本发明的再一方面,还提供一种图象处理方法。该方法包括将多个三维对象分成组,并对包含属于相同组的三维对象的至少一个的子空问单独进行表现处理,并且通过合并每个子空间的表现数据来生成要显示的最终图像数据。
根据本发明的再一方面,提供一种可由计算机执行的计算机程序。该程序包括读取多个三维对象的阵列(array)数据;将存在于显示区域内的三维对象分成组;将包含属于相同组的三维对象的子空间导出为独立的表现单元;按照子空间单元单独进行表现处理,以便为每个子空间生成图像数据;以及通过合并为每个子空间生成的图像数据,生成要在显示区域中显示的最终图像数据。
此外,上述结构元件和步骤的任何替代或替换,在方法和设备及其附加物之间被部分或整体替代或替换的表达方式,以及被改变的对系统、计算机程序、存储介质、传送介质等的表达方式均对本发明有效、并被本发明包括。
对本发明的这一概述不一定描述了所有需要的特征,使得本发明也可以是所描述的这些特征的子组合。


图1A是三维空间中的四边截锥视体的说明图,而图1B是顶视图。
图2A是示出如何将三维空间分割为方块(brick)的说明图,而图2B是顶视图。
图3A是示出如何将三维空间分割为方块的另一说明图,而图3B是顶视图。
图4A是示出如何将空间分割为另外的方块的说明图,而图4B是顶视图。
图5A-5E是概述当如图4所示分割空间时进行的Z融合(merge)表现处理的说明图。
图6是根据本发明实施例的图像处理装置的结构方框图。
图7是示出图6的图象处理装置中的图形处理块功能的方框图。
图8是示出图7的表现处理单元中并行处理的配置示例的说明图。
图9是描述由图7的图形处理块进行的分割表现处理过程和合并处理过程的流程图。
图10A是在B盒阵列中进行分组的示例,而图10B是基于图10A的分组生成的组列表。
图11A是基于图2中的空间分割示例的、示出其中具有属于相同组的B盒的方块的说明图,而图11B是顶视图。
图12A是使用图3中的空间分割示例的、其中具有属于相同组的B盒的方块的说明图,而图12B是顶视图。
图13A是使用图4中的空间分割示例的、其中具有属于相同组的B盒的方块的说明图,而图13B是顶视图。
图14是在分割表现处理中使用的处理过程列表的示例。
图15A是示出利用双线性插值的图像数据生成处理的说明图,而图15B是示出利用双三次插值的图像数据生成处理的说明图。
图16A-16C是Z融合表现处理的说明图。
图17A是其中具有属于相同组的B盒的方块的说明图,而图17B是顶视图。
图18A是示出当另一B盒进入图17A和17B中示出的子空间时的空间分割的说明图,而图18B是顶视图。
图19是示出图9的方块导出过程的改变的流程图。
图20A是其中具有图18A中示出的B盒的方块的另一说明图,而图20B是顶视图。
图21是示出根据本发明实施例的分布式表现处理系统的结构示例的说明图。
图22示出将在图21中示出的PC显示器上显示的图像的示例。
图23A是包含图22中示出的对象的方块的说明图,而图23B是顶视图。
图24A是包含图22中示出的对象的方块的说明图,而图24B是顶视图。
图25A-25C是当对移动对象进行运动模糊处理时的存储区域选择的说明图。
图26A和26B是进行散焦(defocus)处理时的存储区域选择的说明图。
图27是在Z剔除(Z-culling)处理中使用的分级Z缓冲器的说明图。
图28是示出图27的底层(tier)Z缓冲器的Z值的说明图。
图29是示出图27的顶层Z缓冲器的Z值的说明图。
图30是Z剔除处理的说明图。
图31A和31B是Z剔除处理示例的说明图。
图32A和32B是Z剔除处理示例的说明图。
图33A和33B是Z剔除处理示例的说明图。
具体实施例方式
现在,将参考优选实施例描述本发明。这不是要限制本发明的范围,而是例示本发明。
在描述本发明实施例的开始,将描述它的基本概念。利用3D世界坐标绘出3D对象。为了在屏幕上表现这样的对象,有必要在世界坐标系中指定视体(view volume),并根据此视体进行要投影到显示屏上的对象的剪切。作为在二维显示器上显示3D对象的投影方向之一,存在一种透视投彭方法。对于透视投影方法,视体的顶点通常是视点,并且视体是由从视点的方向和角度限定的半无限棱锥。在本发明中,使用四边截棱锥视体将对象空间分割为子空间,其中,通过定义从视点的方向、角度、和半无限棱锥视体上的深度来获得所述四边截棱锥视体。
图1A是三维空间中的四边截棱锥视体的说明图,而图1B是顶视图。在从视点O看到的可见区域内,建立四边截棱锥视体(下文中称为“方块”)。此方块的深度在前面由前剪切平面10限定,而在后面由后剪切平面12限定。投影平面14相交的方块的部分16是显示屏中的表现区域,并且,在此区域内投影和表现所述对象。随后,将深度方向表示为z轴,并且将平行于投影平面14的平面表示为xy平面。前剪切平面10、后剪切平面12、投影平面14和后平面15各自位于离开视点O的各个点Z1、Z2、Z3和Z4。在本实施例中,将这样的方块指定为独立的表现单元。然后,对这样的方块单独进行表现处理。因此,每个方块都生成独立的图像数据。此外,合并按照方块生成的图像数据,以生成要显示的最终图像数据。
图2A是示出如何将三维空间分割为方块的说明图,而图2B是顶视图。由第一剪切平面18和第二剪切平面20剪切的四边截棱锥形的可见区域被分割为互不重叠的4个方块。由第二剪切平面20和第三剪切平面22剪切的四边截棱锥形的可见区域也被分割为互不重叠的4个方块。第一剪切平面18、第二剪切平面20、和第三剪切平面22各自位于离开视点O的各个点Z1、Z2和Z3处。这样,当分割空间使得在x、y方向上没有重叠的方块时,有可能进行类似于拼贴(tiling)的表现处理,并使用小的高速VRAM区生成大尺寸的最终图像。
图3A是示出如何将三维空间分割为方块的另一说明图,而图3B是顶视图。存在4个互不重叠的方块。它们的深度在前面由位于离开视点O的点Z1处的前剪切平面24限定,而在后面由位于Z3处的后剪切平面26限定。它们在z方向上被这样的方块重叠,该方块的深度在前面由位于离开视点O的点Z2处的前剪切平面28限定,而在后面由位于Z4处的后剪切平面30限定。将前面的方块分割为4个方块,而不分割后面的方块。这一分割是因为前面的对象通常需要比后面的对象更详细地表现,并且,为了做到这一点,将前面的方块分割为更小的区域,以进行更高分辨率的表现处理。换句话说,为了使用相同大小的存储器按照方块进行表现处理,将通常需要较低表现细节等级的后面的区域分割为较大的部分,而将需要较高表现细节等级的前面的区域分割为较小的部分。
图4A是示出如何将空间分割为另外的方块的说明图,而图4B是顶视图。在此示例中,在可见区域内建立第一方块32、第二方块34、第三方块36和第四方块38,并且,它们在z方向和x、y方向上均互相重叠。第一方块32的前剪切平面和后剪切平面分别位于Z1和Z3处。第二方块34的前剪切平面和后剪切平面分别位于Z2和Z5处。第三方块36的前剪切平面和后剪切平面分别位于Z4和Z7处。第四方块38的前剪切平面和后剪切平面分别位于Z6和Z8处。这样,当进行分割使得方块互相重叠时,有可能在按照方块进行表现处理之后,通过使用Z融合表现处理来合并图像数据来生成最终显示图像,这将在以后进行描述。
图5A-5E是概述当如图4所示分割空间时进行的Z融合表现处理的说明图。图5A是第四方块38中的表现处理的结果,图5B是第二方块34中的表现处理的结果,图5C是第一方块32中的表现处理的结果,图5D是第三方块36中的表现处理的结果。将各个分割空间中的表现数据相应地放大或缩小。然后,通过比较深度值(在下文中称为Z值)来将它们合并为一幅图像。图5E是通过使用Z融合表现处理合并如图5A-5D所示的各个方块的表现数据而获得的图像。
图6是根据本发明实施例的图像处理装置100的结构方框图。图像处理装置100包括I/O端口108、主CPU 11O、主存储器112、通信单元114、和图形处理块120。这些块的每一个都连接到总线116。
I/O端口108控制诸如鼠标和键盘的输入装置102、诸如CD-ROM和硬盘驱动器的存储装置104、和用于显示图像的显示装置106的数据输入/输出。
主CPU 110具有对图像处理装置100的总控制权,例如,其可以是128位的RISC(精简指令集计算机)-CPU。主CPU 110执行存储在存储装置104中的应用程序。当执行程序时,主CPU 110根据用户的输入控制图形处理块120,并显示图像。主CPU 110利用专门用于图形处理块120的多路径命令控制并行表现(rendering)。
主存储器112存储从存储装置104读出的诸如对象的形状数据和纹理数据的表现数据、表现处理程序、和B盒阵列以及组列表,这将在以后描述。
通信单元114通过网络与其它一些图像处理装置100通信。这样的数据通信使得能够与其它一些图像处理装置100合作而通过分布式处理来进行表现处理。
图形处理块120包括并行表现引擎122、图像存储器126、和存储器接口124。存储器接口124连接并行表现引擎122和图像存储器126。它们被配置为一体,作为ASIC(特定用途集成电路)+DRAM(动态随机存取存储器)。
基于来自主CPU 110的多路径命令,并行表现引擎122将图像存储器126的整个存储区域分为多个区域。使用所述多个分割后的存储区域,按照子空间并行地实现三维对象的表现,并生成各个子空间中的分割图像。此外,并行表现引擎122对被并行表现的每个分割图像进行Z融合处理,以便在分割区域之一中合并图像数据。这样,它生成一个合并后的图像。在表现期间使用Z缓冲器方法、扫描线方法、光线跟踪方法等,以移除隐藏线和隐藏表面。
图像存储器126是被分为多个区域的DRAM。它被分为以下区域帧缓冲器区域,其中存储每个像素的RGB值和指示透明度α的A值;Z缓冲器区域,其中存储指示每个像素的深度值的Z值;以及纹理区域,其中存储用于纹理映射的纹理特征。这些区域的每一个都被独立控制。此外,有可能利用多个通道、通过独立地进行表现而对多个方块单元并行执行表现处理。例如,可以利用4个通道操作由8个4MB区域DRAM组成的并行表现引擎。此外,可以相应地切换表现区域和纹理区域,并且还可以将表现后的图像数据用作纹理数据。
例如,当使用8个分割后的存储区域中的4个作为表现区域、并使用其它4个作为纹理区域时,并行表现引擎122处理分别存储在4个纹理区域中的纹理数据,并分别在4个表现区域中表现具有Z值的分割图像。接下来,基于来自主CPU 110的多路径命令,并行表现引擎122通过Z融合表现处理,在分割后的存储区域之一中将这些分割图像合并为一幅图像。
图7是示出图像处理装置100中的图形处理块120的功能的方框图。该图中示出的功能主要在图形处理块120的并行表现引擎122、主接口124和图像存储器126中实现,并且,根据情况使用主CPU 110和主存储器112。该图是将注意力集中在功能上的方框图,并且可以用诸如只使用硬件或只使用软件或二者的组合的各种方式来实现功能块中标出的功能。
对象存储单元52存储三维对象数据。利用简单结构如球、立方体或多面体来代表单个对象或一组对象,其中,所述简单结构包含一个对象或一组对象占据的空间区域。这样的结构称为B盒(边界盒)。对象存储单元52存储这种B盒的阵列数据和三维对象数据。分组单元44从对象存储单元52中读入B盒阵列,基于对象特性和LOD信息将多个B盒分为多个组,并创建将要存储在对象存储单元52中的组列表。
表现处理单元46包括坐标变换单元42和表现单元43。坐标变换单元42通过透视投影导出作为四边截棱锥的子空间,并进行三维对象的透视变换。表现单元43在四边截棱锥中进行单独的表现处理。坐标变换单元42从对象存储单元52中读入组列表,导出其中具有属于相同组的B盒的方块,并通过透视变换进行对象的剪切处理和诸如坐标变换的几何处理。表现单元43通过按照方块独立地进行表现处理来生成将要存储在图像存储单元54中的图像数据。像素的颜色信息数据和像素的深度值数据作为图像数据被生成。前者被以RGB缓冲器的形式存储,而后者被以Z缓冲器的形式存储。
合并单元48从图像存储单元54读入对每个方块生成的图像数据。在校正图像数据每个像素的深度值的动态范围之后,它通过比较校正后的深度值来合并图像数据,并生成要显示的最终图像。所生成的图像数据被存储在图像存储单元54中。显示单元50从图像存储单元54读出合并后的图像数据,并将其显示在屏幕上。
图8是示出表现处理单元46中的并行处理的配置示例的说明图。利用多个表现管道RP来配置表现处理单元46,利用很多操作数来配置每个表现管道RP。在每个表现管道RP中,输入分别在操作数1到操作数4中指定的存储在缓冲器中的4个纹理的数据T1到T4。此外,每个表现管道RP进行在操作数5中指定的用于RGBA缓冲器的数据D1、和在操作数6中指定的用于Z缓冲器的数据D2的读取和写入。每个表现管道RP输出这样的Z值,其中,利用公式D2=f2(T1、T2、T3和T4)校正了所述Z值的动态范围,这将在以后描述。此外,每个表现管道RP利用公式D1=fl(T1、T2、T3、T4、D1和D2)进行Z融合表现处理,并输出合并后的图像数据。
参考图9到14,将描述由图7的方框图中的图形处理块120进行的分割表现处理过程和合并处理过程。
图9是描述分割表现处理过程和合并处理过程的流程图。进行三维对象的动画(animation)处理(S10)。在动画处理中,根据运动程序进行视点和对象的位置更新以及对象的形状改变。
分组单元44从对象存储单元52中读入用于利用动画处理而处理的对象的B盒阵列(S12),导出视点坐标系中每个B盒的位置,并基于与视点的距离确定剪切信息和LOD(细节等级)信息(S14)。LOD信息是表示应当多精确地表现对象的等级。通常基于离开视点的距离来确定表现等级。例如,对于位置远离视点的对象,规定较低的LOD,而对于位置接近视点的对象,规定较高的LOD。
此外,分组单元44基于剪切信息检查对象特性和确定处于表现区域内的B盒的LOD信息,并基于对象特性和LOD信息将相同或相似的B盒分组到一起,并创建组列表(S16)。
在此情况中,对象特性包括指示诸如背景、人、或建筑的对象类型的信息,以及指示诸如对象是静态还是动态的对象的运动特性的信息。设计者可以事先设置组识别信息,以帮助对象的分组。这样的组识别信息可以用作对象特性。例如,对于将分组到相同组中的对象,设计者可以设置相同的组识别信息。对于将被分组到不同组中的对象,设计者可以设置不同的组识别信息。
图10A是B盒阵列中的分组示例。在B盒阵列的元素中,将表现区域中的那些元素分组。例如,将B盒阵列元素a1、a2和a3分组到组A,而将元素b1和b2分组到组B。图10B是基于10A中的分组生成的组列表。在该列表中,按顺序列出了组A中的元素a1到a3、组B中的元素b1和1b2、组C中的元素c1到c5、以及组D中的元素d1和d2。
回到图9,表现处理单元46基于组列表导出其中具有属于相同组的B盒的方块,并将它们与组列表中的对应组相互关联(S18)。
图11A是基于图2中的空间划分示例、示出了其中具有属于相同组的B盒的方块说明图。图11B是顶视图。B盒62是一个组,其包含由第一剪切平面18和第二剪切平面20剪切的区域中的三维对象60。由前剪切平面18和后剪切平面20剪切的方块63被导出为包含B盒62的子空间。同样,两个B盒64和66属于另一个组,并且由前剪切平面18和后剪切平面20剪切的方块67被导出为包含它们的子空间。
在第二剪切平面20和第三剪切平面22之间的区域中,方块69波导出为包含一个B盒68的子空间,并且方块73被导出为包含两个B盒70和72的子空间,为了简化说明,没有示出其它方块中包含的B盒。
这样,位于离开视点的点Z1和Z2之间的三个B盒62、64和66以及位于点Z2和Z3之间的三个B盒68、70和72,主要由于LOD信息的不同而被分配给在z方向上互不重叠的分离子空间。此外,为了使得能够在更小的区域内进行分割表现处理,将这些子空间的每一个分割为在x、y方向上也互不重叠的4个子空间。这样,当可以将三维对象占据的空间分割为x、y和z方向上不重叠的子空间时,只要在Z边界上没有对象,就有可能独立进行每个方块的表现处理,而不进行Z融合表现处理、以及Z方向上的剪裁处理。然而,如果对象太大,则可能有必要将对象分解,以分配给多个方块。在这种情况中,需要Z方向上的剪裁处理。
图12A是使用图3中的空间分割示例、其中具有属于相同组的B盒的方块的说明图。图12B是顶视图。两个B盒74和76属于一个组,其中,这两个B盒74和76在由位于离开视点O的点Z1处的前剪切平面24和位于Z3处的后剪切平面26剪切的区域中。由前剪切平面24和后剪切平面26剪切的方块77被导出为包含B盒74和76的子空间。同样,其它两个B盒78和80属于另一个组,并且由前剪切平面24和后剪切平面26剪切的方块81被导出为包含它们的子空间。
同时,在由位于离开视点O的点Z2处的前剪切平面28和位于Z4处的后剪切平面30剪切的区域中,存在一个B盒82,并且由前剪切平面28和后剪切平面30剪切的方块83被导出为包含它的子空间。
在此示例中,两个B盒80和82在z方向上互相重叠,并且它们属于不同的组。因此,前面的两个方块77和81在z方向上被后面的方块83重叠。这样,即使由于允许将空间分割为在z方向上彼此重叠的子空间而导致在Z边界上有对象,也有可能通过按照方块单元进行的表现处理来表示对象,而不沿z方向分解该对象。此外,如果对象是凸面对象,则可以跳过Z融合表现处理。此外,在此示例中,由于在x、y方向上没有重叠,因此有可能在使用剪裁处理逐个方块地分解对象之后进行表现处理。
图13A是使用图4的空间分割示例、其中具有属于相同组的B盒的方块的说明图。图13B是顶视图。方块32被导出为包含一个B盒84作为位置最接近视点O的组的子空间。同样,方块34被导出为包含两个B盒86和88作为一组的子空间,并且方块36被导出为包含两个B盒90和92作为一组的子空间。最后,方块38被导出为包含一个B盒94作为位置最远离视点O的一组的子空间。
这样导出的四个方块32、34、36和38在z方向和x、y方向上均互相重叠。由于这是允许子空间在x、y方向上互相重叠的空间分割,因此,甚至有可能在x、y方向上利用对象单元来分割空间。因而,有可能减小由于剪裁处理导致的负担。
回到图9,表现处理单元46基于每个方块中的对象特性和LOD信息,选择每个方块的表现区域,并选择要进行的表现处理,基于方块之间的依赖关系确定并行处理的分配和并行处理的时序安排,并创建处理过程列表(S20)。
图14是处理过程列表的示例,其中列出了将分配给表现管道RP1到RP4的组A到G。表现处理单元46能够按照方块单独地进行表现处理。当按照方块单元确定的LOD信息之间存在差异时,表现处理的复杂性根据方块而变化。此外,可以根据方块中的对象特性和类型使用不同的表现算法。因而,有可能基于每个方块的处理复杂性确定如何分配所述处理,例如,将所述处理分配给需要复杂的和耗时的表现处理的方块、和需要简单表现处理的其它方块。当存在透明对象的时候,在将对象重叠时必须考虑顺序关系。在这种情况中,确定时序安排,使得表现处理根据重叠顺序单独进行。
表现处理单元46基于处理过程列表,按照方块单元进行表现处理(S22)。表现处理单元46可以按照方块单元单独选择表现策略。例如,它可以通过选择根据方块而变化的分辨率来进行多分辨率表现。当进行散焦处理时,利用适当的存储容量,通过为聚焦处理分割空间、并为每个方块选择对应于散焦等级的分辨率,高速散焦处理是有可能的。
此外,在表现处理单元46中,有可能按照方块单元单独应用表现算法。例如,可以相应地选择并应用用于移除用来表现的隐藏线和隐藏表面的方法,如Z缓冲器方法、扫描线方法、或光线跟踪方法。此外,可以有选择地应用用于着色(shading)的方法,如平面着色方法、Gouraud着色方法、平滑着色方法等。
再次参考图9,合并单元48通过利用Z融合表现处理合并每个方块的表现结果来生成最终输出图像(S24)。然后,回到步骤S10,合并单元48进行下一个动画处理,并重复从分割表现处理到合并处理的表现处理。
当把通过分割表现生成的图像数据合并为最终输出图像时,如图5所述,对每个方块的图像数据进行诸如放大和缩小的仿射变换处理。在这一点上,为了使通过分割表现生成的图像数据的分辨率与合并后的图像数据的分辨率相匹配,有必要相应地插值每个方块的图像数据的像素值。为了做到这一点,使用诸如双线性插值和双三次插值的插值方法,其中,双线性插值使用内部分割来逼近像素值,双三次插值使用三次样条函数来逼近像素的变化。
图15A是示出利用双线性插值的图像数据生成处理的说明图。例如,考虑这样的情况,其中,有必要生成点T处的像素数据作为最终输出图像显示。在方块单元的表现数据中,不存在对应于该位置的像素数据,然而,在附近有4个像素数据P、Q、R和S。在这种情况中,通过插值附近的4个像素数据P、Q、R和S的像素值来生成点T处的最终图像的像素数据。在三维空间中,这些像素数据被表示为点,像素值为z方向上的高度,并且在xy平面上的格点上绘出它们的坐标位置。在y=O的平面上,将两个点P和Q内部分割,以获得点A,并且在y=1的平面上,将两个点S和R内部分割,以获得点B。接下来,在通过点T且垂直于x轴的平面上的线上,将从内部分割得到的点,即点A和B本身内部分割,以便获得点T的高度,换句话说,获得像素值。
图15B是示出利用双三次插值的图像数据生成处理的说明图。当生成要显示的最终输出图像的位置是点T的图像数据时,通过插值、使用来自周围区域的16个像素数据导出像素值。在y=0的平面上,利用三次样条函数计算经过4个点P、Q、R和S的曲线。同样,在y=1、y=2和y=3的平面上,分别计算经过x轴方向上的4个点的曲线。接下来,绘出这4条曲线与经过点T且垂直于x轴的平面相交的点。然后,计算经过这4个交点的曲线。该曲线与经过点T且垂直于y轴的平面相遇处的z坐标,换句话说,点T的高度是像素值。
图16A-16C是Z融合表现处理的说明图。如图16A所示,考虑这样的情况,其中,对象空间被分割为彼此重叠的4个方块170a、172a、174a和176a。图16B示出了分别对应于图16A中的4个方块170a、172a、174a和176a的表现数据的Z值分布170b、172b、174b和176b。Z值是在每个方块内局部指定的深度,并且不是用于指示分割前的原空间中的绝对深度。为了合并每个方块的表现数据,有必要将Z值的动态范围校正为原空间的绝对值。
图16C示出校正了每个方块的动态范围后的Z值,以及通过合并上面的Z值获得的原空间中的绝对Z值的分布。对于合并后的表现数据的Z值范围178,校正后的Z值范围170C、172C、174C和176C分别对应于4个方块170a、172a、174a和176a。校正在每个方块内局部指定的Z值的动态范围,以使其符合这些校正后的Z值范围。校正后的Z值分布170d、172d、174d和176d分别对应于图16B中4个表现数据的Z值分布170b、172b、174b和176b。这些校正后的Z值分布170d、172d、174d和176d被合并为最终表现数据的Z值分布180。
这样,在校正了Z值的动态范围之后,利用Z缓冲器方法移除隐藏表面,并表现最终的合并后的图像。当使用Z缓冲器方法按照像素单元进行表现时,有可能通过使用每个像素的A值进行alpha(阿尔法)混合来生成半透明复合图像。
使用线性变换公式Z=(a/A)*z+b,将在方块中局部指定的深度z变换为分割前的原空间的深度z。常数A是在方块中局部指定的最大深度值,而常数a是分割前原空间中的对应方块的最大深度值。常数b是从视点到所述对应方块的剪切平面的距离。
如上所述,在根据本实施例的图像处理装置中,有可能基于三维对象的特性和LOD来进行对三维对象的分组,将空间分割为每一个都包含属于相同组的对象的方块,并按照方块单独地进行表现处理。它除了通过分割空间并且并行地进行处理来实现更高速度的表现处理以外,它还能够依照对象特性施加表现处理。此外,通过将方块的尺寸限制为规定的尺寸,有可能使按照方块单元进行表现处理所需的VRAM的尺寸缩减为固定尺寸。此外,通过将三维对象分组,有可能按照组单元集体地进行与纹理和对象模型有关的数据管理,这容易地实现了表现算法的兼容性,并有助于版本控制。
尽管利用示例实施例描述了本发明,但是应当理解,在不脱离由所附权利要求限定的本发明的范围的情况下,本领域技术人员可以进行多种改变和替换。将一些这样的改变阐述如下。
在本实施例中,将空间分割为由透视投影定义的四边截棱锥。然而,也可以将空间分割为由平行投影定义的平行六面体。这样,本发明中的分割表现处理不限于某种投影方法。
在按照分割空间单元进行的对象的表现处理中,保证了数据的局部性。可以通过使用Z融合表现处理合并每个分割空间的表现数据来处理分割后的空间的相互依赖关系。因此,可以按照以下方式生成最终输出图像将按照分割空间单元进行的表现处理分配给通过网络连接的计算节点,然后,在中央计算节点中合并在每个节点中计算的表现数据。这样的计算网络可以是通过宽带网络来对等连接计算节点的网络。此外,它可以被配置为使得每个计算节点作为单元贡献给整个网络系统,并且这些单元的操作系统一起工作,使得它作为一个巨型计算机操作。本发明中的分割表现处理适于使用这种计算机网络的分布式处理,并因此能够进行需要大规模计算资源的表现处理。
此外,在这种计算机网络的分布式表现处理系统中,有可能基于中央计算节点和分布式计算节点之间的路由跳跃数目和通信等待时间来定义网络距离参数。因此,也有可能按照分割空间单元调整从视点到要表现的对象的距离、和从中央计算节点到分布式计算节点的距离,并将按照分割空间单元的表现处理分配给计算节点。换句话说,由于根据视点或对象本身的移动而频繁地更新位置接近于视点的对象的图像数据,在网络上较近位置处的计算节点中进行表现处理,并以短等待时间在中央节点中合并表现结果。另一方面,由于随着视点或对象本身的移动,位置远离视点的对象的图像数据改变不大,可以在网络上较远位置处的计算节点中进行表现处理,并且即使在表现结果到达中央节点之前的等待时间长也没有问题。
在本实施例中,当基于在z方向上互相重叠的对象的分组导出方块时,进行Z融合表现处理。然而,可以确定对象的分组,使得Z融合表观处理不必要,换句话说,方块在z方向上互不重叠。参考图17到图20,将在下面描述这样的修改示例。
图17A是示出属于相同组的两个B盒200和202的说明图。方块204被导出为包含上面两个B盒的子空间。图17B是顶视图。这两个B盒200和202在其中包含例如以高速在三维空间中移动的对象(在下文中称为“高速对象”)。基于它们的运动特性,将它们分类到相同组中。在上述实施例中,如图所示,将方块204导出为包含这两个B盒200和202的子空间,其中,所述方块204由位于离开视点O的点Z1处的前剪切平面和位于Z2处的后剪切平面剪切。
考虑这样的情况,其中,在如图17A和17B所示确定了方块204、并且进行了表现处理之后,B盒206进入方块204,其中,B盒206是包含具有不同运动特性的对象的另一个B盒。图18A是示出此新情况的空间分割的说明图,而图18B是顶视图。B盒206在其中包含例如以低速在三维空间中移动的对象(在下丈中称为“低速对象”),并且由于运动特性的差异而被分类到与包含高速对象的两个B盒200和202不同的组中。因此,在上述实施例中,如图所示,将方块208新导出为包含具有其低速对象的B盒206的子空间,其中,方块208由位于离开视点O的点Z2处的前剪切平面和位于Z3处的后剪切平面剪切。方块208在z方向上被包含均含有高速对象的两个B盒200和202的方块204重叠。
这样,即使在方块之间在z方向上有重叠,根据上述实施例,也有可能在按照分割空间进行表现处理之后、通过Z融合表现处理来合并图像。然而,如果由于有限的计算性能而不可能进行Z融合表现处理,或者如果希望通过跳过Z融合表现处理来简化表现处理,则可以通过设计B盒的分组导出在z方向上互不重叠的方块,使得Z融合表现处理变得没有必要。图19是示出可消除z方向上的重叠的方块导出过程的流程图。此流程图是对示出分割表现处理过程和合并处理过程的图9中的步骤S18的修改。其余的步骤直到步骤S16以及然后从步骤S20前进均与图9相同。
在步骤S16,在分组单元44将B盒分组之后,表现处理单元46导出其中具有属于相同组的B盒的方块(S30)。表现处理单元46检查以查看那些所导出的方块在z方向上是否互相重叠(S32)。如果在z方向上有重叠(S32的Y),则分组单元44将B盒重新分组,使得消除z方向上的方块的重叠(S34)。
图20A是示出B盒的重新分组的说明图,而图20B是顶视图。每一个都包含高速对象的两个B盒200和202已经被分类为处于相同组中,但是如图18A和18B所述,如果什么都不做,则在方块之间出现z方向上的重叠。然后,为了消除这样的重叠,分组单元44将两个B盒202和204分类到不同的组。结果,回到步骤S30,表现处理单元46再次导出其中具有属于相同组的B盒的方块。如图20A和20B所示,导出两个方块210和212,并且,它们的每一个分别包含属于不同组的B盒200和B盒202。因此,消除了与包含新增加的B盒206的方块208在z方向上的重叠。回到图19,当消除了z方向上方块的重叠时(S32的N),该过程进行到步骤S20,以进行下一个分割表现处理和合并处理。
这样,通过重新分组,进行在z方向上没有重叠的空间分割,从而Z融合表现处理变得没有必要。当决定应当如何按照方块单元进行表现处理时,即图9的步骤S20,可以确定重新分组的必要性。换句话说,在分组单元44将空间分割为方块之后,表现处理单元46可以按照方块确定表现处理的复杂性等级,并基于这些等级来命令分组单元44进行重新分组。例如,如果预期计算成本比指定的成本高,则命令进行重新分组。
此外,作为修改的另一示例,有可能配置这样的分布式表现系统,其中,使用连接到网络的计算节点如个人计算机(PC)作为根据本实施例的图像处理装置100。在多个计算节点中进行对象的表现处理,并且通过经由网络交换图像数据来合并图像数据。
图21是示出分布式表现处理系统的结构示例的说明图。3台个人计算机PC1-PC3和服务器7连接到网络6。服务器7在虚拟空间中提供服务,其使得用户能够登录和控制虚拟人物(character)。PC1-PC3每一个都对应于如上所述的根据本实施例的图像处理装置100。它们与服务器7通信,并且还通过服务器7在虚拟空间中提供的服务来在虚拟空间中进行表现处理。它们还与其它PC通信,并进行分布式表现处理。
在PC1中,用户A登录到虚拟空间中,并控制虚拟空间内的虚拟人物C1,实际生成从用户A的视点看到的虚拟空间中的图像。在PC2中,用户B登录到虚拟空间中,并控制虚拟人物C2,实际生成从用户B的视点看到的虚拟空间中的图像。照相机5连接到PC3,其能够与图像信息一起获得关于离视点的距离的信息。将从照相机5的视点以广视角拍摄的远景图像信息和距离信息输入到PC3中,以便通过表现处理进行处理。
在PC1-PC3的对象存储单元52的每一个中,存储B盒图(map),其中,基于LOD信息,通过使每个PC的视点成为其中心来确定对象的级别。在B盒图中,较高的级别包含关于从较远距离看到的对象的信息,并且用较粗略的细节等级来表现这样的对象。较低的级别包含关于从较近距离看到的对象的信息,并且用较精细的细节等级来表现这样的对象。在单独的PC和服务器处,分别控制B盒图中的对象数据。B盒图包括控制所述单独对象的PC或服务器的地址。根据用户视点的移动来更新B盒图。例如,如果用户的视点后退,则它变为具有更远景的B盒图,而如果用户的视点移动得更近,则它变为具有更近景的B盒图。PC1-PC3各自基于它们的B盒图进行对象的表现处理,并且,它们根据需要交换所生成的图像数据。
PC1将与用户A观察虚拟空间时的视点有关的信息通过网络6传送到PC2和PC3。PC2和PC3的表现处理单元46的每一个通过虚拟人物C2和从用户A的视点观察到的远景的表现处理来生成图像数据,并将该数据传送到PC1。PC1的合并单元48融合从PC2和PC3接收的虚拟人物C2及远景的图像数据、和通过PC1的表现处理生成的虚拟人物C1的图像数据。然后,它将融合后的数据存储在图像存储单元54中。PC1的显示单元50从图像存储单元54读出融合后的图像数据,并将其显示在显示器4上。
此时,如果使用户A的虚拟人物C1和用户B的虚拟人物C2靠近到一起,则将出现诸如对象重叠的干扰和相互作用。因此,在PC1和PC2之间,除了视点信息以外,还交换三维对象数据,以进行受干扰部分的表现处理。
此外,由于用户B的虚拟人物C2并不总是存在于用户A的视野中,因此,只有在虚拟人物C2进入用户A的视野时,PC2才将虚拟人物C2的图像数据传送到PC1。当PC1获得虚拟人物C2的位置信息的时候,只有在虚拟人物C2进入用户A的视野时,它才将用户A的视点信息传送到PC2。然后,PC2生成从用户A的视点看到的虚拟人物C2的表现数据,并将其传送到PC1。
当PC1没有获得虚拟人物C2的位置信息时,它继续将用户A的视点信息传送到PC2。基于此视点信息,PC2判断虚拟人物C2是否存在于用户A的视野中,并且,只有当虚拟人物C2存在于用户A的视野中时,才生成从用户A的视点看到的虚拟人物C2的表现数据,并将其传送到PC1。如果虚拟人物C1和虚拟人物C2互相干扰的可能性很小,则PC1和PC2之间的相互通信,如交换视点信息和三维对象数据,有可能花费长时间间隔。基于包含对象的B盒的大小和B盒之间的距离来确定这种干扰的程度。此外,可以设置第三者服务器或PC,使得它将监控PC1中的用户A的视点信息和虚拟人物C2的位置信息。
图22示出了将在图21中示出的PC1的显示器4上显示的图像示例。在远景中,显示了静止对象如山234和动态对象如云232和飞机230。此远景是由PC3的照相机5拍摄的画面的图像数据,其中,基于PC1的用户A的视点信息、通过表现处理来生成所述图像数据。在近景中,显示由PC1控制的虚拟人物C1和由PC2控制的虚拟人物C2。虚拟人物C1和C2是分别在PC1和PC2中通过表现处理生成的图像数据。
图23A是示出由PC1的表现处理单元46导出的方块的说明图,而图23B是顶视图。基于LOD信息和对象特性,PC1的表现处理单元46将图22中的两个虚拟人物C1和C2分类到相同的组中。然后,由于两个虚拟人物C1和C2靠近到一起,当考虑这些人物之间的干扰程度时,它将包含具有这些对象的B盒230和232的子空间导出为近景的表现单元。换句话说,如在图中看到的,导出由位于离开视点O的点Z1处的前剪切平面和位于Z2处的后剪切平面剪切的方块220。
当考虑其中虚拟人物C1和虚拟人物C2互相干扰的区域时,PC1的合并单元48从PC2实时地接收虚拟人物C2的对象数据,并在方块220中进行表现处理,以生成方块220的最终图像数据。
此外,PC1的表现处理单元46将方块导出为远景的表现单元。图22中的山234、云232、和飞机230是将被合并到远景中的对象。它们具有相似的LOD,但是,对于它们的运动特性,静止对象山234和低速对象云232与高速对象飞机230不同。因此,表现处理单元46将飞机230分类到与山234和云232的组不同的组中。这样,远景中的对象被分类到2个组中。然后,包含具有属于一组的对象的B盒的子空间和包含具有属于另一组的对象的B盒的子空间被导出为远景的表现单元。换句话说,如图所示,导出了由位于离开视点O的点Z3处的前剪切平面和位于点Z4处的后剪切平面剪切的方块222、以及方块222内的另一表现单元一方块224。首先提及的方块222是包含具有山234和云232的B盒的子空间,而其次提及的方块224是包含具有飞机230的B盒的子空间。
PC1的合并单元48接收由PC3的表现处理单元46生成的远景的方块222和方块224的图像数据。然后,它将所接收的数据与近景的方块220的图像数据合并,以生成要显示的最终图像。从PC3获得的远景的图像数据不一定是三维图形数据,而是它也可以是两维图形数据,例如JPEG(联合摄影专家组)。在这样的情况中,PC1的合并单元48将近景的方块220的图像数据简单地拟合到二维背景图像中。
此时,PC3的表现处理单元46需要根据对象的移动速度,频繁地更新具有高速对象的远景的方块224的图像数据,并将这种更新后的图像数据持续传送到PC1。另一方面,不需要如此频繁地将具有静止对象和低速对象的远景的方块222的图像数据更新并传送到PC1。此外,在高速对象经过之后,具有静止对象和低速对象的方块222变为只是远景的方块,所以可以使从PC3到PC1的数据传送时间间隔更长。因此,在表现远景的计算节点和表现近景的计算节点之间,即使通信等待时间长,整个分布式表现处理系统也将令人满意地运行。
当两个虚拟人物C1和C2之间没有干扰时,PC1的表现处理单元46将这样的子空间导出为表现单元,其中,在所述子空间中,一个包含虚拟人物C1,而另一个包含虚拟人物C2。换句话说,如图24A和24B所示,导出了包含具有虚拟人物C1的B盒240的方块226和包含具有虚拟人物C2的B盒242的方块228。
在此情况中,PC1的合并单元48实时地接收由PC2的表现处理单元46生成的具有虚拟人物C2的方块228的图像数据。然后,它将所接收的数据与具有虚拟人物C1的方块226的图像数据合并,以生成近景的图像数据。
这样,通过将PC1的用户A看到的虚拟空间分割为近景的方块和远景的方块,或者基于诸如运动特性的对象性质而分割为多个方块,有可能利用对每个方块灵活策划的表现策略,例如,根据每个方块的LOD要求规格(specification)而在多个计算节点中执行表现处理、或者改变计算节点之间的通信频率,来进行分布式表现处理。
在本发明中,有可能按照方块独立选择表现策略,并通过根据对象特性和LOD要求规格、按照方块单元限定表现算法,来减小表现算法切换成本。换句话说,通过将子空间提取为可应用统一表现策略的方块,有可能通过限制方块中必需的限制程序和数据类型来加快表现处理,并通过分配具有适于表现算法的大小的存储区域来提高存储器的可用性。也就是说,通过使用方块,有可能增大表现策略的自由度,并同时增大计算效率和存储效率,这将在以后利用一些特定示例来进一步描述。
图25A-25C是当对移动对象348进行运动模糊处理时的存储区域选择的说明图。图中,用箭头表示移动对象348的运动方向。通常,如图25A所示来分配表现区域340。然而,为了进行包含移动对象348的方块的表现处理,表现处理单元46通过将已经在移动对象348的速度矢量的方向上压缩了的表现区域342分配给存储器、并减小速度矢量方向上的分辨率,来如图25B所示进行表现处理。当合并到最终输出图像中时,合并单元48在速度矢量方向上拉长表现区域346,如图25C所示。由于在移动对象348的速度矢量方向上高分辨率没有必要,因此,通过选择已经在速度矢量方向上被压缩了的表现区域342,对于包含移动对象348的方块,有可能减小用于所述方块的表现处理的计算量和存储量,并加快表现处理。
图26A和26B是当进行散焦处理时存储区域选择的说明图。如图26A所示,对于包含要散焦的对象的方块,表现处理单元46通过分配低分辨率表现区域360进行表现处理,并生成对象的表现数据364。当合并到最终输出图像中时,如图26B所示,合并单元48扩展表现区域362,并通过插值生成对象的表现数据366。例如,使用表现区域362中所述点周围的格点的像素值,通过插值,如双三次插值,来计算点368处的像素值。这样,由于将通过散焦处理来处理的对象的表现不需要高分辨率,对于包含要经受散焦处理的对象的方块,选择低分辨率表现区域360。由于根据每个方块的聚焦深度而将表现区域的分辨率调整到适当的等级,有可能避免多余的计算和存储器访问,并加快表现处理。
如上所述,通过根据诸如对象的运动速度等的特性、和LOD请求规格适当地选择每个方块的分辨率来进行多分辨率表现,有可能在计算量和存储量方面将表现处理最优化。
作为方块单元的表现策略的另一示例,当方块在z方向上没有被另一个方块重叠并且只包含一个凸面对象时,对于这样的方块,Z融合表现处理是不必要的,并且表现处理单元46可以进行这个方块的表现处理,而不使用Z缓冲器。因此,有可能避免由于Z值引用引起的等待时间,并加快表现处理。不是对整个表现空间使用同类分辨率Z缓冲器,而是按照方块改变Z缓冲器分辨率、或者如此示例中所示,根本不使用Z缓冲器的表现可以被认为是多分辨率表现的方法。
此外,可以将按照方块单元进行的表现处理有效地应用于Z剔除处理。它通过按照方块调整Z剔除处理策略来增大Z剔除处理的自由度,并改善处理效率。在下面,将通过参考图27-33描述按照方块单元进行的Z剔除处理。
在利用Z缓冲器的隐藏表面移除方法中,按照像素单元比较对象的深度,以确定哪个对象位于前面。另一方面,在Z剔除处理中,通常使用分级Z缓冲器来给出每个块单元的代表Z值,其中,所述Z值是一组若干个像素,并且,通过比较这些每个块的Z值来确定对象的深度位置。在Z剔除处理中,在以像素的级别利用Z缓冲器移除隐藏表面之前,利用块单元在矩形区域中逼近对象的外形,以便获得块级别的对象深度信息,并在早期检测到隐藏在前面对象之后的后面对象,以省略对该后面对象的表现。
图27是在Z剔除处理中使用的分级Z缓冲器的说明图。在该图中,示出了三层Z缓冲器的模式图。利用一个上层Z缓冲器252的一个像素258代表底层Z缓冲器250的4个像素256a-256d。较低层的4个像素256a-256d中的最大值被设置为此代表像素258的Z值。此外,以相同的方式,利用一个上层Z缓冲器的一个像素259来代表Z缓冲器252的4个像素。
这样,在分级Z缓冲器中,当层变得更高时,表现区域的分割单元变得更粗略,并且,对于每个分割单元的Z值,给出了下一个较低层的对应区域中固定数目的像素(在此情况中,4个像素)中的最大Z值。因此,在此示例中,顶层的一个Z值代表底层的16个像素的Z值,并且数据量减小为1/16。通常,在Z缓冲器方法中,Z缓冲器需要具有等于屏幕分辨率的分辨率,因此,大容量存储器是有必要的,并且,存储器访问的等待时间影响处理时间。但是,通过将Z缓冲器分级,例如,将顶端的Z缓冲器分为约256个块,可以将该Z缓冲器的Z值存储在高速缓冲存储器中,并且可以在高速缓冲存储器内确定Z值。因此,减小由于Z值引用引起的等待时间和高速处理变得有可能。
为了使Z剔除处理有效,表现处理单元46通过确定时序安排来制订处理过程列表,使得表现处理从包含前面对象的方块开始,并在多个阶段之后进行到包含位于后面的对象的方块。当表现处理单元46结束前面的块的表现处理时,它激活事件,产生用于所述前面的方块的分级Z缓冲器,并将上层Z缓冲器的数据传递到合并单元48。合并单元48通过比较所传递的上层Z缓冲器的Z值、和计划将通过表现处理而处理的后面方块中包括的对象的Z值,确定对象的深度位置,并判断后面方块中包括的对象的表现处理是否有必要。
当完成多个前面方块的表现处理时,表现处理单元46可以产生用于这些多个方块的分级Z缓冲器,并将这些方块的上层Z缓冲器的数据传递到合并单元48。这使得合并单元48能够进行隐藏在多个前面对象之后的后面对象的剔除。这样,通过按照方块单元调整将分级Z缓冲器传递到合并单元48的定时,表现处理单元46可以明确地确定进行剔除处理的定时,使得在已经完成一定数目的前面方块的表现处理之后进行后面方块的剔除处理。此外,表现处理单元46还可以通过选择用于剔除处理的前面方块,例如只选择包含相对大尺寸的对象的前面方块,并将所选择的前面方块的分级Z缓冲器传递到合并单元48,来指定应当使用哪个前面方块来进行哪个后面方块的剔除。这样,通过按照方块单元明确地确定剔除处理策略,有可能增大剔除处理的灵活性。
图28和图29是各自示出如图27所示的底层Z缓冲器250的Z值和顶层Z缓冲器254的Z值的说明图。如图28所示的Z值是在将由表现处理单元46处理的方块内局部指定的深度。对象越近,Z值越小,并且当对象在最前面的位置时,它的Z值为0。在Z缓冲器方法中,利用最大值Zmax来初始化Z值,并且每个像素的最前面的对象的Z值被计算为每个像素的最终的Z值。因此,如果存在所计算的Z值与最大值Zmax保持相同的像素,则意味着没有对象被投影在此像素中。将图29中的顶层Z缓冲器254分为4部分所得的每个块的Z值,由对应于图28中的底层Z缓冲器250的每个块的16个像素中的最大Z值给出。此外,可以说,对象越近,Z值越高,而对象越远,Z值越低。通过使用这样的定义,随后的Z剔除处理将没有本质差别。
图30是合并单元48中的Z剔除处理的说明图。当合并单元48从表现处理单元46接收到如图29所示的顶层Z缓冲器254的值时,合并单元48通过调整Z值的动态范围而将该值校正为原空间中的绝对Z值。该图示出了将Z缓冲器290分为4份所得到的每个块的校正后的Z值和将通过表现处理而处理的两个后面对象280和282之间的关系。
由合并单元48确定的Z剔除条件是后面对象280和282的最小Z值应当高于Z缓冲器290的Z值。Z缓冲器290的Z值是对应块中的前面对象的最大Z值。因此,当满足上面的剔除条件时,后面对象280和282隐藏在前面对象的后面,并且是不可见的。例如,第一后面对象280的最小Z值高于Z缓冲器290的第一块270的Z值,这满足Z剔除条件,因此,第一后面对象280隐藏在第一块270中的前面对象之后,并且是不可见的。以相同的方式,第二后面对象282满足Z剔除条件,并隐藏在第二块272中的前面对象之后,并且是不可见的。另一方面,由于第三块276的Z值取最大值Zmax,即使在此块中存在后面的对象,也不满足上述Z剔除条件。这意味着由于在第三块276中没有前面的对象,因此可以从视点看到此块中的后面对象。合并单元48进行满足Z剔除条件的第一后面对象280和第二后面对象282的剔除,以省略对这些对象的表现处理。这样,通过按照块单元比较Z值的幅度,可以有效地判断不需要表现后面对象的情况,因此可以省略不必要的表现,并且可以增大表现处理的速度。
现在,将描述按照方块单元进行的剔除处理的特定示例。如图31A所示,在从视点O看到的近景中,存在菜单302和两个B盒304和306,而在远景中,存在4个B盒308、309、310和312。这些对象被投影到投影平面300上并被表现。图31B是图31A的顶视图,并且如该图所示,近景中的3个对象302、304和306在前面的方块320中,其中方块320由位于点Z1处的前剪切平面和位于点Z2处的后剪切平面剪切。远景中的4个对象308、309、310和312在分为三部分所得的后面方块322a、322b和322c(在下文中可总称为“后面方块322”’)中,其中后面方块322由位于点Z3处的前剪切平面和位于点Z4处的后剪切平面剪切。
按照从前面方块320到后面方块322的顺序来安排表现处理,并且在进行了前面方块320的表现处理之后,在进行后面方块322的表现处理时,使用前面方块320的分级Z缓冲器的上层Z缓冲器的信息。这样,对于对象或方块进行剔除,这不需要表现处理。
如图31A和31B所示,当从视点O看到菜单320时的视体324不包括远景中的B盒308、309、310、312的任意一个。另一方面,如图32A和32B所示,在用于近景中的B盒304的视体326中,包括远景中的B盒310。此外,如图33A和33B所示,在用于近景中的B盒306的视体328中,包括远景中的另一个B盒312。因此,远景中的这两个B盒310和312受到剔除,并且,对于分别包括B盒310和B盒312的两个后面方块322a和322c,不进行表现处理。
到目前为止,描述了整个方块的剔除示例,并且可以单独剔除方块中的B盒。例如,如果后面方块322不被分割为3部分,而是存在一个方块,那么不是进行整个方块的剔除,而是在方块内的远景中的两个B盒310和312被单独剔除、不会受到表现处理之后,通过表现处理来处理剩余的B盒308和309。此外,可以在B盒中的对象的多边形模型的级别上进行剔除处理,以及在B盒的级别上进行剔除处理。根据方块中的对象特性和处理该方块的表现单元的CPU性能和存储器容量,可以选择在B盒级别上或者在对多边形级别上进行剔除。因而,有可能逐个方块地将剔除处理策略最优化。
此外,作为表现策略的另一示例,可以采用局部光线跟踪,其中,对每个方块使用不同的隐藏表面移除方法,例如,对于近景中的方块,局部地应用需要复杂计算的光线跟踪,而对于其它外面的方块,使用反射映射。在反射映射中,将大的虚拟球或虚拟立方体放置在要表现的对象周围,并将环境纹理事先粘贴到它的内壁上。然后,计算对象与视线相交的交点,此外,通过延伸来自该点的反射矢量,计算与虚拟球或虚拟立方体的交点。该交点处的虚拟球或虚拟立方体的颜色应当被映射为对象的颜色。在光线跟踪和反射映射中,如果将环境信息延伸无限的距离,则计算量增大,并且存储效率变小。因此,可以通过按照方块单元限制环境来减少表现所必需的环境数据。可以将系统配置为使得有可能在方块之间交换相互需要的数据,这使得能够从另一个方块接收表现所必需的环境数据。在这样的系统中,从其它方块接收的环境数据的细节等级可以例如与靠近要表现的方块的方块不同,对象数据被接收到,并且从远处的方块接收到图像数据。
工业适用性如所描述的,可将本发明用于表现将在2维屏幕上显示的三维对象的图像处理方法和设备。
权利要求
1.一种图像处理设备(120),其特征在于包括分组单元(44),其将输入的三维对象分成组;表现处理单元(46),其将包含属于相同组的三维对象的子空间导出为独立的表现单元,并对子空间单独地进行表现处理,并为每个子空间生成独立的图像数据;以及合并单元(48),其通过合并为每个子空间生成的图像数据来生成要显示的最终输出图像数据。
2.如权利要求1所述的设备(120),其特征在于表现处理单元(46)包括坐标变换单元(42),其通过透视投影导出作为四边截棱锥的子空间,并进行三维对象的透视变换;以及表现单元(43),其在四边截棱锥中进行单独的表现处理。
3.如权利要求1-2任意一项所述的设备(120),其特征在于分组单元(44)基于三维对象的运动特性将该三维对象分组。
4.如权利要求1-2任意一项所述的设备(120),其特征在于分组单元(44)基于与表现三维对象时的细节等级有关的信息将该三维对象分组。
5.如权利要求1-4任意一项所述的设备(120),其特征在于合并单元(48)校正为每个子空间生成的图像数据的每个像素的深度值的动态范围,并通过比较校正后的深度值来合并图像数据,并且生成要显示的最终输出图像。
6.如权利要求1-5任意一项所述的设备(120),其特征在于表现处理单元(46)包括多个表现单元(43),并根据子空间单元的表现处理复杂性等级,将表现处理分配给所述多个表现单元(43)。
7.如权利要求1-5任意一项所述的设备(120),其特征在于表现处理单元(46)包括多个具有不同处理性能的表现单元(43),并将表现处理分配给所述多个表现单元(43),每个表现单元(43)具有对应于子空间单元的表现处理复杂性等级的适当处理性能。
8.如权利要求1-5任意一项所述的设备(120),其特征在于,它还包括通信单元,其从通过网络与该设备连接的外部分布式表现处理装置接收按照子空间单元表现的图像数据,并且其中,合并单元(48)将从外部分布式表现处理装置接收的图像数据与由表现处理单元(46)生成的图像数据合并,并生成要显示的最终输出图像数据。
9.如权利要求8所述的设备(120),其特征在于,将表现处理分配给多个分布式表现装置,每个表现装置具有对应于按照子空间单元表现时的细节等级的不同网络距离。
10.一种图像处理系统,包括多个用于通过网络互相交换信息、并进行分布式表现处理的图像处理设备,该系统特征在于其包括分组单元(44),其将输入的三维对象分成组;表现处理单元(46),其将包含属于相同组的三维对象的子空间导出为独立的表现单元,并对子空间单独地进行表现处理,并为每个子空间生成独立的图像数据;以及合并单元(48),其通过合并为每个子空间生成的图像数据来生成要显示的最终输出图像,以及其中,分组单元(44)、表现处理单元(46)和合并单元(48)在功能上分布于所述多个图像处理设备中。
11.一种用于通过网络与其它设备交换信息的图像处理设备(120),其特征在于其包括以下功能块的至少一个分组单元(44),其将输入的三维对象分成组;表现处理单元(46),其将包含属于相同组的三维对象的子空间导出为独立的表现单元,并对子空间单独地进行表现处理,并每个子空间生成独立的图像数据;以及合并单元(48),其通过合并为每个子空间生成的图像数据来生成要显示的最终输出图像,以及其中,从其它设备接收并使用此设备中不包括的功能块的处理结果。
12.一种图像处理方法,特征在于其包括将空间分割为互相重叠的子空间,按照子空间单元对每个子空间中的三维对象独立地进行表现处理,并通过评估深度方向上的距离来合并每个子空间中的三维对象的表现数据。
13.一种图像处理方法,特征在于其包括将多个三维对象分成组,对包含属于相同组的三维对象的至少一个的子空间单独进行表现处理,并通过合并每个子空间的表现数据生成要显示的最终图像数据。
14.一种可由计算机执行的计算机程序,该程序的特征在于其包括读取多个三维对象的阵列数据;将存在于显示区域内的三维对象分成组;将包含属于相同组的三维对象的子空间导出为独立的表现单元;按照子空间单元单独地进行表现处理,以便为每个子空间生成图像数据;以及通过合并为每个子空间生成的图像数据来生成将在显示区域中显示的最终图像数据。
15.如权利要求14所述的程序,其特征在于它还包括计算视点坐标系中每个三维对象的位置,并基于与视点的距离确定与表现每个三维对象时的细节等级有关的信息,并且其中,根据与细节等级有关的信息,将存在于显示区域内的三维对象分成组。
16.如权利要求14-15任意一项所述的程序,其特征在于,按照将每个子空间的表现处理分配到多个表现处理单元(46)的方式来进行表现处理。
全文摘要
提供一种用于进行三维对象的表现处理的图像处理设备(120)。对象存储单元(52)存储对象的三维数据和包括该对象占据的空间区域的B盒的阵列数据。分组单元(44)从对象存储单元(52)读入B盒阵列,基于对象特性和细节等级信息将多个B盒分为组。表现处理单元(46)导出其中具有属于相同组的B盒的方块,并通过按照方块独立地进行表现处理来生成将存储在图像存储单元(54)中的图像数据。合并单元(48)合并存储在图像存储单元(54)中的每个方块的图像数据,并生成要显示的最终输出图像数据。
文档编号G06T15/10GK1802668SQ0381853
公开日2006年7月12日 申请日期2003年8月29日 优先权日2002年9月6日
发明者大场章男 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1