用于执行隐藏面消除的设备和方法以及计算机程序产品的制作方法

文档序号:6649299阅读:132来源:国知局
专利名称:用于执行隐藏面消除的设备和方法以及计算机程序产品的制作方法
技术领域
本发明涉及一种用于执行三维(3D)计算机图形的绘制处理的图像处理设备和图像处理方法,以及用于图像处理的计算机程序产品。
背景技术
在3D计算机图形的绘制处理中,如果当从一个观察点观察时,多个绘制对象重叠,那么比较Z值,所述Z值是沿各个像素的深度方向的坐标值,并且最接近于观察者的绘制对象被绘制,而位于比先前对象更深的点的绘制对象被取消。此处理称作“隐藏面消除(hidden-surface removal)”。
对于隐藏面消除来说,必须提供用于存储一个帧的像素的Z值的Z缓冲器,并且最新绘制的对象的Z值必须与Z缓冲器中存储的Z值进行比较。Z缓冲器的数据通常被放置在诸如动态随机存取存储器(DRAM)之类的存储器中,这种存储器存取速率低,由此在3D计算机图形绘制的处理过程中使对Z缓冲器数据的写/读的存储器存取产生瓶颈。因此,对Z缓冲器的存取频率显著影响了3D计算机图形处理设备的综合性能。
用于通过减少Z缓冲器的存取频率来改善性能的一种常规提供的方法把绘制区域划分为称作块的矩形区域,并且采用用于存储所述块中的像素当中最深像素的Z值的分级Z缓冲器,由此在基于像素-至-像素的隐藏面消除之前实现基于块-至-块的隐藏面消除。
根据所提供的方法,当绘制对象是占据块中某些像素的多边形时,找到最接近观察者的像素的Z值作为Znear值。然后,把Znear值与存储在分级Z缓冲器中的相应块中的先前绘制的多边形的最深像素的Z值进行比较。如果具有Znear值的像素位于比具有存储在分级Z缓冲器中的相应Z值的像素更深的地方,那么完全清除(eliminate)在相应块中最新绘制的多边形中的像素的绘制。然后,与基于像素的隐藏面消除相比较,存储器存取频率可以被减少,由此增强了处理性能。
然而,如果Znear值的计算费时,那么会使性能恶化,由此取消引入基于块的隐藏面消除。因此,Znear值的高速计算是绝对必要的。然而,对于Znear值的精确计算来说,需要识别出块区域和多边形区域之间的交叉点。这种处理要求非常高的计算成本,并且可能会防碍Znear值的高速计算。
因此,对于隐藏面消除来说,可以使用比精确的Znear值的像素更加接近于观察者的像素的Z值。这种Z值比精确的Znear值更加容易并且迅速地找到。
当对于隐藏面消除采用比精确Znear值的像素更加接近于观察者的像素的Z值时,由于所述多边形的实际像素必定位于在比对应于此Z值的像素更深的地方,所以被认为是在先前绘制的多边形前面的像素没有被取消。此外,如果该Z值非常接近精确的Znear值,那么隐藏面消除的精度可以维持在高的水平上。
例如,第6,646,639号美国专利(以下也称为专利文献1)公开了一种使用所述块区域中最新绘制的多边形平面上最接近像素的Z值(块Z值)而不是Znear值的方法。根据专利文献1,基于有关由最新绘制的多边形形成的平面的倾斜度的信息,从位于所述块四角的像素中选择最接近的像素。因此,由于多边形区域和块区域之间的交叉点的识别不是必需的,所以允许高速的隐藏面消除。
然而,根据专利文献1的技术,当从所述块的四角选出的像素位于所述多边形占据的区域的外部时,块Z值和Znear值之间的差异变得显著,并且可能妨碍高效的隐藏面消除。
如果多边形数据较大并且从所述块的四角中选出的像素很可能位于多边形区域中时,对性能效率的负面效果将会是可忽略的。然而,近年来,3D计算机图形处理的图像分辩率不断增加,由此在绘制过程中,所述多边形很可能较小,并且从所述块的四角中选出的像素很可能位于多边形区域外部。故而,难以确保有效的隐藏面消除。

发明内容
根据本发明的一个方面,一种图像处理设备,包括分级Z值存储单元,用于存储分级Z值,所述分级Z值是在块中早已绘制的像素当中位于距离观察点最远点的像素沿深度方向的坐标值,所述块是作为绘制区域的一部分形成的截面,在所述绘制区域中,绘制有三维计算机图形的图像;第一Z值计算器,用于计算多边形Z值,所述多边形Z值是在对应于作为绘制单位的多边形的顶点的像素当中位于距观察点最近点的像素沿深度方向的坐标值;第二Z值计算器,用于计算块Z值,所述块Z值是在由多边形形成的平面中包括的像素当中位于块中距离观察点最近点的像素沿深度方向的坐标值;Z值选择器,用于从多边形Z值和块Z值中选择更接近观察点的像素Z值作为估计Z值,所述估计Z值是位于块中的多边形中距离观察点最近点的像素沿深度方向的坐标值的估计值;以及隐藏面消除单元,用于当对应于估计Z值的像素与对应于分级Z值的像素相比位于距离观察点更远的点时,清除在所述块中多边形的绘制。
依照本发明的另一方面,一种图像处理方法,包括计算多边形Z值,所述多边形Z值是在对应于作为绘制单位的多边形的顶点的像素当中位于距观察点最近点的像素的深度方向的坐标值;计算块Z值,所述块Z值是在由多边形形成的平面中包括的像素当中、位于块中距离观察点最近点的像素沿深度方向的坐标值,其中所述块是作为用于在其中绘制三维计算机图形图像的绘制区域的一部分形成的截面;从多边形Z值和块Z值中选择更接近观察点的像素的Z值,作为估计Z值,所述估计Z值是位于所述块中的多边形中距离观察点最近点的像素沿深度方向的坐标值的估计值;并且当对应于估计Z值的像素位于与对应于分级Z值的像素相比距离观察点更远的点时,清除在所述块中多边形的绘制,所述分级Z值是早已在块中绘制并且存储在存储单元中的像素当中位于距离观察点最远点的像素沿深度方向的坐标值。
依照本发明的又一方面的计算机程序产品使计算机执行根据本发明的图像处理方法。


图1是依照本发明实施例的图像处理设备的结构框图;图2是根据本发明实施例的图像处理设备中绘制的总体处理序列的流程图;图3是多边形和Z值之间的关系的例子的说明性视图;图4是根据本发明实施例的图像处理设备中隐藏面消除的总体处理序列的流程图;图5是在估计的Z值、块以及多边形之间的关系的例子的说明性图表;图6是块Z值、块以及多边形之间的关系的例子的说明性图表;以及图7是Z值、块以及多边形之间的关系的例子的说明性图表。
具体实施例方式
将参照附图详细说明涉及本发明的用于图像处理的图像处理设备、图像处理方法、计算机程序产品的示例性实施例。
根据本发明实施例的图像处理设备通过从块的四角选择块Z值、从绘制的多边形的三个顶点选择多边形Z值、选择相应于出现在更深位置的像素的块Z值以及多边形Z值之一作为估计的Z值(该值是Znear值的估计值),并且把估计的Z值与存储在分级Z缓冲器的分级Z值进行比较,来执行隐藏面消除。
此处,所述“块”是隐藏面消除的单位,并且包括其中作为3D计算机图形绘制图像的区域的截面,即,绘制区域。在所述实施例中,所述块是绘制区域的矩形截面。块的深度从所述截面沿视线方向延伸,并且形成如同三维图形的块。因此,当绘制区域是二维的时,作为绘制区域截面的块可以是二维的,而当将要考虑诸如深度信息的三维信息时,可以将所述块视为三维的。
当从预定观察点看时,分级Z值是早已绘制的像素当中位于最深点的像素的Z值。为每个块在分级Z缓冲器中存储分级Z值,所述分级Z缓冲器是为存储分级Z值而提供的。此处,Z值是相对于观察点沿深度轴的像素的坐标值。通过利用分级Z值而允许对每个块的隐藏面消除。
多边形是具有多边形形状的绘制单位,其也是绘制对象表面的截面,并且用来表示通过3D计算机图形绘制生成的图像中的绘制对象三维图形的形状。一般说来,把三角形用作多边形。在绘制过程中,所述多边形是绘制单位,并且在每个多边形中为每个块执行隐藏面消除。
所述多边形Z值是对应于已绘制多边形的顶点的像素中位于距离观察点最近点的像素的Z值。在隐藏面消除情况下,多边形Z值是基于多边形顶点之一来加以确定的,而不管块如何。
所述块Z值是在隐藏面消除情况下在块中由多边形形成的表面中包括的像素当中、位于距离观察点最近点的像素的Z值。
所述Znear值是在隐藏面消除情况下在块中的已绘制多边形的像素当中、最接近观察点的像素的Z值。为了精确计算Znear值,需要确定多边形和块之间的交叉点,这要求非常高的计算成本。因此,一般说来,通过需要较低计算成本的方式来获得估计值,并且采用所述估计值而不是Znear值。
估计的Z值是Znear值的估计值,并且作为Znear值的替换值来加以利用。换言之,估计的Z值不是精确的Znear值,而是通过各种技术获得的精确Znear值的近似值。
图1是示出了依照本发明实施例的图像处理设备100的结构框图。如图1所示,所述图像处理设备100包括顶点输入单元110、顶点处理器120、光栅化单元130、像素处理器140、紧固在随机存取存储器(RAM)中的顶点数据缓冲器150、分级Z缓冲器160、Z缓冲器170和绘制缓冲器180。
所述顶点输入单元110用来接收待绘制的三角形的顶点数据的输入。此处,所述顶点数据包括顶点坐标以及诸如色彩、模糊(fog)、纹理坐标和法线向量之类的顶点参数。
所述顶点处理器120用来执行对由顶点输入单元110提供的顶点数据的处理。
所述光栅化单元130用来根据顶点处理器120处理之后的顶点数据来生成多边形的像素数据。所述光栅化单元130包括设置(set-up)单元131、隐藏面消除单元132以及横截(traverse)单元133。
所述像素处理器140用来执行诸如隐藏面消除和基于光栅化单元130生成的像素数据为每个像素进行绘制之类的处理。
所述设置单元131用来从顶点数据缓冲器150获取多边形的顶点数据并且生成必需的设置数据以便光栅化,所述顶点数据缓冲器150用于存储顶点数据。
所述隐藏面消除单元132用来在由像素处理器140为每个像素进行隐藏面消除之前、利用存储在分级Z缓冲器160中的分级Z值为每个块执行隐藏面消除,由此取消绘制每块中作为隐藏面的多边形。
所述横截单元133用来使用由设置单元131生成的设置数据来生成隐藏面消除单元132没有清除的块的像素数据。所述图像处理器100可以被如此配置,以至于隐藏面消除单元132和横截单元133使用由设置单元131提供的设置数据并行执行处理,然后根据隐藏面消除单元132的处理结果为每个块清除由横截单元133生成的像素数据,并且把结果输出到像素处理器140。
如图1所示,所述隐藏面消除单元132包括顶点Z值计算器132a、多边形Z值选择器132b、平面公式系数计算器132c、块Z值计算器132d、Z值选择器132e和隐藏面清除(eliminating)单元132f。
所述顶点Z值计算器132a用来计算已绘制多边形的每个顶点的Z值。所述多边形Z值选择器132b从顶点Z值计算器132a计算的顶点的Z值中选择最小的Z值作为多边形Z值。在应用于所述实施例的坐标系中,除非另外描述,否则像素具有越小的Z值,表示像素越接近于观察点。所述坐标系可以如此来配置,以便使像素具有越大的Z值,表示像素越接近于观察点。
所述平面公式系数计算器132c用来使用已绘制多边形的每个顶点的坐标来计算平面公式的系数,其表示由输入的多边形形成的平面。所述块Z值计算器132d用来通过组合由平面公式系数计算器132c计算的平面公式的负系数和正系数来计算所述块Z值。
所述Z值选择器132e用来比较其中存在已绘制多边形的每个块的由多边形Z值选择器132b选择的多边形Z值和由块Z值计算器132d计算的块Z值,以便选择较大的Z值,即,对应于距离观察点更深的多边形的Z值,作为估计的Z值,其是Znear值的估计值。
所述隐藏面清除单元132f用来比较由Z值选择器132e选择的估计Z值和存储在分级Z缓冲器160中的分级Z值,以便当估计的Z值大于分级Z值、即当对应于估计Z值的像素位于比对应于分级Z值的像素更深的点时,清除为每个块的多边形的绘制。
所述顶点数据缓冲器150用来存储作为来自于顶点处理器120的输入提供的顶点数据。所述分级Z缓冲器160用来存储分级Z值,所述分级Z值是为每个块早已绘制的像素当中位于距离观察点最深点的像素的Z值。所述Z缓冲器170用来存储由像素处理器140为每个像素处理的像素数据的Z值。所述绘制缓冲器180用来存储由像素处理器140处理的像素数据的色彩信息。
接下来,描述采用上述结构根据所述实施例由图像处理设备100执行的绘制。图2是根据该实施例的绘制的总体处理序列的流程图。
首先,所述顶点输入单元110接收已绘制多边形的顶点数据作为输入(步骤S201)。然后,所述顶点处理器120对顶点输入单元110提供的顶点数据执行必要的操作,以便由光栅化单元130进行光栅化(步骤S202)。
然后,所述设置单元131获取来自于顶点数据缓冲器150的、由顶点处理器120操作之后的顶点数据,以便根据获取的顶点数据生成光栅化所必需的设置数据(步骤S203)。
所述隐藏面消除单元132为已绘制多边形的每个块执行隐藏面消除(步骤S204)。稍后更加详细地描述隐藏面消除。
在隐藏面消除单元132进行隐藏面消除之后,所述横截单元133使用由设置单元131生成的设置数据来生成没有被隐藏面消除清除的块的像素数据(步骤S205)。
然后,所述像素处理器140利用由横截单元133生成的像素数据为每个像素执行绘制(步骤S206),以便完成所述绘制。此处,所述绘制是对每个多边形的处理。为构成作为绘制对象的三维图形的所有多边形重复绘制处理,由此完成整个对象的绘制。
接下来,描述采用上述结构根据所述实施例由图像处理设备100在步骤204执行的隐藏面消除的概要。图3是每个块的隐藏面消除中多边形和对应于Z值的像素之间的关系的例子的说明性图表。
如图3所示,图3上部示出的箭头方向(垂直方向)是视线方向。在图3中示出的坐标中,图3的上部更接近观察点,而图3的下部更远离观察点。像素304是隐藏面消除情况下的块301中早已绘制的多边形302的像素当中最深的像素。把像素304的Z值存储在分级Z缓冲器160中作为分级Z值。
已绘制多边形303的像素当中与观察点最接近的像素是像素305。当像素305位于比像素304更深的点时,块301中已绘制多边形303的所有像素均位于比早已绘制的像素更深的点。因此,后来的绘制处理可以被清除(隐藏面消除)。
在图3中,在块301中只有一个多边形早已被绘制了。当在块301中有多个多边形早已被绘制时,这些多边形的像素当中位于最深点的像素的Z值被存储在分级Z缓冲器160中。
通过使用分级Z缓冲器160的基于块的隐藏面消除,由像素处理器140对Z缓冲器170或者对绘制缓冲器180进行存储器存取之类的处理的次数可以被减少,以便实现改善的处理性能,其中所述处理次数是吞吐量的瓶颈。
接下来,描述采用上述结构根据所述实施例由图像处理设备100在步骤204执行的隐藏面消除。图4是根据实施例的隐藏面消除的总体处理序列的流程图。
首先,顶点Z值计算器132a计算顶点Z值,其是多边形每个顶点的Z值(步骤S401)。具体来讲,所述顶点Z值计算器132a通过如下序列来计算顶点Z值。
所述顶点Z值计算器132a从设置单元131生成的设置数据中获取已绘制多边形在坐标系中的位置坐标,其中在该坐标系中观察点对应于原点,并且视线方向对应于Z方向。
所述位置坐标在三维空间坐标系中由三维向量(x,y,z)表示,或者在齐次坐标系中由四维向量(x,y,z,w)表示。所述齐次坐标系是通过向三维坐标系增加一维、即一个元素w创建的坐标系。齐次坐标中的四维向量(x,y,z,w)对应于三维空间坐标中的三维向量(x/w,y/w,z/w)。
当获取的位置坐标是三维向量(x,y,z)时,顶点Z值计算器132a基于表达式(1)来计算第n个顶点的Z值数据Z_VnZ_Vn=zn(1)其中zn表示三维向量的z分量,该三维向量表示第n个(n=0,1,2,....)顶点的位置。
当获取的位置坐标是齐次坐标系中的四维向量(x,y,z,w)时,所述顶点Z值计算器132基于表达式(2)来计算第n个顶点的Z值数据Z_VnZ_Vn=zn/Wn(2)其中zn和Wn分别表示三维向量的z分量和w分量,其中该三维向量表示第n个顶点的位置。
上述计算仅仅是一个例子,而且可以使用任意技术来计算多边形各个顶点的Z值。
在步骤S401、顶点Z值计算器132a计算顶点Z值之后,所述多边形Z值选择器132b在计算的顶点Z值当中选择最小值作为多边形Z值(步骤S402)。
具体来讲,可以基于表达式(3)来选择多边形Z值Z_polyZ_poly=min(Z_V0,Z_V1,...,Z_Vn)(3)其中min(A,B,C)表示用于找到A、B和C当中的最小值的操作。
在Z值越大表示像素与观察点越接近的坐标系中,可以基于表达式(4)来选择多边形Z值Z_polyZ_poly=max(Z_V0,Z_V1,...,Z_Vn)(4)其中max(A,B,C)是用于找到A、B和C当中的最大值的操作。
此处,由于多边形Z值是为每个多边形计算的值,所以其计算不是块的每个绘制过程都需要的。当处理从一个多边形转移到另一多边形时,存储所计算的多边形Z值,并且在处理一个多边形期间可以使用存储的值。
由于多边形中的所有像素被确保位于比对应于所计算的多边形Z值的像素更深的点,所以可以采用多边形Z值作为在隐藏面消除时进行比较的基准。
在步骤S402中多边形Z值选择器132b选择多边形Z值之后,所述平面公式系数计算器132c计算由已绘制多边形形成的平面的平面公式系数(步骤S403)。假定平面公式由表达式(5)表示z=ax+by+c (5)因此,系数a和b可以通过把多边形顶点的三个坐标值代入表达式(5)并且找到方程组的解来加以计算。
接下来,所述块Z值计算器132d确定由平面公式系数计算器132c计算的X和y轴方向的平面公式系数是负还是正,并且计算隐藏面消除情况下的块中的平面中的像素当中、最接近观察点的像素的Z值作为块Z值,其中所述平面由平面公式表示(步骤S404)。具体来讲,所述块Z值计算器132d计算在所述块中由平面公式表示的平面形成的矩形的顶点当中、与观察点最接近的顶点的像素Z值作为块Z值。
例如,假定把块设定为两侧分别与X轴和Y轴平行的矩形,在具有沿视线方向的Z轴的坐标系中,X轴沿水平方向朝向右而Y轴沿垂直方向向上。当由表达式(5)表示的平面公式的X和Y方向的系数a和b两个都为正时,块中由平面形成的矩形的左下顶点的Z值是块Z值。类似地,当a是正的而b是负的时,左上顶点的Z值是块Z值,当a是负的而b是正的时,右下顶点的Z值是块Z值,并且当a和b两个都为负时,右上顶点的Z值是块Z值。
在上述描述中,在步骤S401至S402的多边形Z值选择之后是步骤S403至S404的块Z值计算。然而,块Z值计算可以首先执行,或者多边形Z值选择和块Z值计算可以并行执行。
然后,所述Z值选择器132e比较由多边形Z值选择器132b选择的多边形Z值和由块Z值计算器132d计算的块Z值,以便选择较大值作为估计的Z值(步骤S405)。
具体来讲,可以基于表达式(6)来选择估计的Z值Z_estimateZ_estimate=max(Z_block,Z_poly)(6)其中Z_block表示块Z值。
在较大Z值对应于与观察点较近的像素的坐标系中,可以根据表达式(7)来选择估计的Z值Z_estimateZ_estimate=min(Z_block,Z_poly)(7)所述隐藏面清除单元132f比较由Z值选择器132e选择的估计Z值和存储在分级Z缓冲器160中的分级Z值(步骤S406),并且确定估计Z值是否大于分级Z值(步骤S407)。此处,由于把坐标系设置为越小的Z值对应于与观察点越接近的像素,所以关于估计Z值是否大于分级Z值的确定意味着有关对应于估计Z值的像素是否位于比对应于分级Z值的像素更深的点的确定。
在越大的Z值对应于与观察点越接近的像素的坐标系中,关于估计Z值是否小于分级Z值的确定允许有关对应于估计Z值的像素是否位于比对应于分级Z值的像素更深的点的确定。
当在步骤S407确定估计Z值大于分级Z值(在步骤S407中为“是”)时,所述隐藏面清除单元132f清除在隐藏面消除情况下的块中的绘制(步骤S408)。此后,所述处理返回到步骤S404,以便绘制下一个块,并且如上所述重复所述处理。
当在步骤S407确定估计Z值小于分级Z值(在步骤S407中为“否”)时,所述隐藏面清除单元132f完成隐藏面消除而不必清除绘制。此后,所述横截单元133生成像素数据(步骤S205),并且像素处理器140为每个像素执行绘制(步骤S206)。
图5是如上所述在隐藏面消除中计算的估计Z值、块和多边形之间的关系的例子的说明性图表。在图5中,所述块是8像素×8像素的矩形区域,并且Z轴沿视线方向。在图5中,示出了对应于在块502和块503中的多边形501的隐藏面消除时计算的块Z值的像素504和像素505,以及对应于多边形Z值的像素506。
由多边形Z值选择器132b选择的多边形Z值(步骤S402)是多边形的一个顶点、例如像素506的Z值。在所述例子中,所述多边形501是倾斜的,因此其右上侧向前伸出。
当由多边形501形成的平面的右上侧向前伸出时,由平面公式系数计算器132c找到的多边形501形成的平面的平面公式(上述表达式(5))中的X和Y方向的倾斜度系数a和b都是负的(步骤S403)。因此,所述块Z值计算器132d计算位于块502中的块502右上角的像素504的Z值,以及位于块503中的块503右上角的像素505的Z值,将它们作为块Z值(步骤S404)。
所述Z值选择器132e比较每个块的块Z值和多边形Z值,并且选择较大值作为估计Z值(步骤S405)。例如,在块503中,由于对应于块Z值的像素505位于多边形区域内部,所以所述块Z值始终大于多边形Z值。然后,块Z值和多边形Z值之间的比较始终导致选择块Z值作为估计Z值,其中所述块Z值是像素505的Z值。此处,所述估计Z值与Znear值相同,并且在没有降低效率的情况下正确地执行了隐藏面消除。
另一方面,在块502中,由于对应于块Z值的像素504位于多边形区域外部,所以执行块Z值和多边形Z值之间的比较,以便选择较大值作为估计Z值。此处,所述Znear值是例如位于块502和多边形501的交叉点的像素507的Z值。
因此,所述估计Z值等于或者小于Znear值,这暗示着隐藏面消除效率可能会降低。然而,从两个估计值(即,块Z值和多边形Z值)中选择与Znear值更接近的值,可以减少效率降低的频率。
图6是在如图5所示的多边形上根据专利文献1中提议的方法、在隐藏面消除时计算的块Z值、和块以及多边形之间的关系的例子的说明性图表。
在专利文献1提议的方法中,通过对应于实施例中的块Z值计算器132d的单元单独计算Z值(块Z值),并且把所计算的值用于隐藏面消除。换言之,所述块中右上方像素的Z值是如图6所示的块Z值,而且此值始终用于隐藏面消除。例如,在块502中,计算像素504的Z值作为块Z值并且将其用于隐藏面消除。由于没有考虑多边形501和块502的共有区域601,所以对应于像素507的精确Znear值的计算不必与常规方法不同,这样允许实现高速的隐藏面消除。然而,在这种方法中,块Z值和Znear值之间的差异可能会变得较大,以致于会降低隐藏面消除的效率。
特别地,当多边形的尺寸就所述块而论由于数据等的分辩率的增加而相对小时,如同在图6所示出的例子中那样,对应于计算的块Z值的像素很可能存在于多边形区域的外部,由此,很可能发生隐藏面消除的效率下降。
反之,在本发明的实施例中,除块Z值以外,根据多边形每个顶点的Z值找到的多边形Z值被用于选择用于隐藏面消除的精确值。因此,可以防止具有许多小多边形的高分辨率数据的隐藏面消除的效率下降。
图7是与常规方法相比较根据所述实施例当隐藏面消除的效率增加时、每个Z值和块以及多边形之间关系的例子的说明性图表。在图7中,沿不同于图5和6的横向方向示出了表示视线方向的Z轴。在图7的块710中,在块710中的多边形701当中,与观察点最接近的点的Z值是Znear值703。分级Z值720是对应于由图7中的虚线示出的位置的Z值。
在常规的方法中,只基于块Z值704来计算Znear值的估计值,其中所述块Z值704是由多边形形成的平面的延伸702和块710彼此相交的点当中、与观察点最接近的点的Z值。把计算的估计值与分级Z值720进行比较。然后,对应于计算的估计值(块Z值704)的像素被确定为位于比对应于分级Z值720的像素更接近观察点的地方。然后,在隐藏面消除中不能为每个块正确地清除绘制。
然而,在本发明的实施例中,把块Z值704与多边形Z值706进行比较,其中多边形Z值是对应于整个多边形区域705中与观察点最近点的Z值,并且较大值、即多边形Z值706被计算作为Znear值的估计值。把计算的值与分级Z值720进行比较。然后,对应于估计值(多边形Z值706)的像素被确定为位于比对应于分级Z值720的像素距离观察点更深的点。因此,隐藏面消除不能为每个块正确地清除绘制。
因此,根据所述实施例的图像处理设备100把从块的四角中选出的块Z值和从已绘制多边形的三个顶点中选出的多边形Z值进行比较,使用较大值作为估计Z值,其是Znear值的估计值,由此执行隐藏面消除。因此,可以防止具有许多小多边形的高分辨率数据的隐藏面消除的效率下降。此外,由像素处理器140对Z缓冲器170或者对绘制缓冲器180进行的存储器存取之类的处理的次数(在处理中成为瓶颈)可以被减少,借此可以对3D计算机图形实现绘制性能方面的改进。
所述实施例的图像处理设备包括诸如中央处理单元(CPU)之类的控制器、诸如只读存储器(ROM)和随机存取存储器(RAM)之类的存储器、诸如硬盘驱动器(HDD)或者CD驱动器之类的外部存储器、诸如显示监控器之类的显示器以及诸如键盘或者鼠标之类的输入设备,并且可被配置为普通的计算机硬件。
用于在根据所述实施例的图像处理设备中执行的图像处理的计算机程序依照可设置格式或者可执行格式文件的形式被记录在计算机可读记录介质中,所述介质诸如为CD-ROM、软盘(FD)、CD-R以及数字多用途盘(DVD)。
作为选择,由根据所述实施例的图像处理设备执行的图像处理程序可以被存储在计算机中,所述计算机连接至诸如因特网之类的网络,并且所述程序经由所述网络下载。此外,作为选择,由根据所述实施例的图像处理设备执行的图像处理程序可以经由诸如因特网之类的网络被提供或者分发。
此外,根据所述实施例的图像处理程序可以预先被嵌入在ROM等中并且被提供。
由根据所述实施例的图像处理设备执行的图像处理程序被配置为包括上述组件的模块(顶点输入单元、顶点处理器、设置单元、顶点Z值计算器、多边形Z值选择器、平面公式系数计算器、块Z值计算器、Z值选择器、隐藏面消除单元、横截单元和像素处理器)。在实际硬件中,所述CPU(处理器)从记录介质中读出图像处理程序,并且执行它以便把上述列出的组件载入主存储器,以便在主存储器上生成各个组件。
本领域技术人员将很容易想到其他优势和修改。因此,具有较宽方面的本发明不局限于所示出的以及此处描述的具体细节和有表示性的实施例。因此,在不脱离本发明的总体构思的情况下,可以做出各种修改,本发明的范围由所附权利要求书及其等效含义来定义。
权利要求
1.一种图像处理设备,包括分级Z值存储器,用于存储分级Z值,所述分级Z值是在块中已经绘制的像素当中位于距离观察点最远点的像素的沿深度方向的坐标值,所述块是作为绘制区域的一部分形成的截面,其中在所述绘制区域中绘制有三维计算机图形的图像;第一Z值计算器,用于计算多边形Z值,所述多边形Z值是在对应于作为绘制单位的多边形的顶点的像素当中位于距观察点最近点的像素的沿深度方向的坐标值;第二Z值计算器,用于计算块Z值,所述块Z值是在由多边形形成的平面中包括的像素当中位于块中距离观察点最近点的像素的沿深度方向的坐标值;Z值选择器,用于从多边形Z值和块Z值中选择更接近观察点的像素的Z值作为估计Z值,所述估计Z值是位于块中多边形中距离观察点最近点的像素的沿深度方向的坐标值的估计值;以及隐藏面消除单元,用于当对应于估计Z值的像素位于比对应于分级Z值的像素距离观察点更远的点时,清除在所述块中多边形的绘制。
2.如权利要求1所述的图像处理设备,其中所述第一Z值计算器包括顶点Z值计算器,用于计算顶点Z值,所述顶点Z值是多边形每个顶点处的像素的沿深度方向的坐标值,以及多边形Z值选择器,用于在顶点Z值当中选择对应于位于与观察点最近点的顶点的像素的像素Z值,作为多边形Z值。
3.如权利要求1所述的图像处理设备,其中所述第二Z值计算器包括平面公式系数计算器,用于计算平面公式的X方向和Y方向的系数,所述平面公式表示由多边形形成的平面,以及块Z值计算器,用于基于X和Y方向的正负系数的组合,计算由多边形形成的平面中包括的像素当中位于块中距离观察点最近点的像素的沿深度方向的坐标值,作为块Z值。
4.如权利要求1所述的图像处理设备,其中作为绘制单位的多边形是三角形。
5.一种图像处理方法,包括计算多边形Z值,所述多边形Z值是在对应于作为绘制单位的多边形的顶点的像素当中位于距观察点最近点的像素的沿深度方向的坐标值;计算块Z值,所述块Z值是在由多边形形成的平面中包括的像素当中、位于块中距离观察点最近点的像素的沿深度方向的坐标值,其中所述块是作为用于在其中绘制三维计算机图形图像的绘制区域的一部分形成的截面;从多边形Z值和块Z值中选择更接近观察点的像素的Z值,作为估计Z值,所述估计Z值是位于所述块中多边形中距离观察点最近点的像素的沿深度方向的坐标值的估计值;并且当对应于估计Z值的像素位于比对应于分级Z值的像素距离观察点更远的点时,清除在所述块中多边形的绘制,所述分级Z值是早已在块中绘制并且存储在存储单元中的像素当中位于距离观察点最远点的像素的沿深度方向的坐标值。
6.如权利要求5所述的图像处理方法,其中计算多边形Z值包括计算顶点Z值,所述顶点Z值是多边形每个顶点处的像素的沿深度方向的坐标值,并且在顶点Z值当中选择对应于位于与观察点最近点的顶点的像素的像素Z值作为多边形Z值。
7.如权利要求5所述的图像处理方法,其中计算块Z值包括计算平面公式的X方向和Y方向的系数,所述平面公式表示由多边形形成的平面,并且基于X和Y方向的正负系数的组合,计算由多边形形成的平面中包括的像素当中位于块中距离观察点最近点的像素的沿深度方向的坐标值,作为块Z值。
8.如权利要求5所述的图像处理方法,其中作为绘制单位的多边形是三角形。
9.一种图像处理设备,包括用于存储分级Z值的装置,所述分级Z值是在块中早已绘制的像素当中位于距离观察点最远点的像素的沿深度方向的坐标值,所述块是作为绘制区域一部分形成的截面,其中在所述绘制区域中绘制有三维计算机图形的图像;用于计算多边形Z值的装置,所述多边形Z值是在对应于作为绘制单位的多边形的顶点的像素当中位于距观察点最近点的像素的沿深度方向的坐标值;用于计算块Z值的装置,所述块Z值是在由多边形形成的平面中包括的像素当中位于块中距离观察点最近点的像素的沿深度方向的坐标值;用于从多边形Z值和块Z值中选择更接近观察点的像素的Z值作为估计Z值的装置,所述估计Z值是位于块中多边形中距离观察点最近点的像素的沿深度方向的坐标值的估计值;以及用于当对应于估计Z值的像素位于比对应于分级Z值的像素距离观察点更远的点时,清除在所述块中多边形的绘制的装置。
10.如权利要求9所述的图像处理设备,其中用于计算多边形Z值的装置包括用于计算顶点Z值的装置,所述顶点Z值是多边形每个顶点处的像素的沿深度方向的坐标值,以及用于在顶点Z值当中选择对应于位于与观察点最近点的顶点的像素的像素Z值作为多边形Z值的装置。
11.如权利要求9所述的图像处理设备,其中用于计算块Z值的装置包括用于计算平面公式的X方向和Y方向的系数的装置,所述平面公式表示由多边形形成的平面,以及用于基于X和Y方向的正负系数的组合,计算由多边形形成的平面中包括的像素当中位于块中距离观察点最近点的像素的沿深度方向的坐标值,作为块Z值的装置。
12.如权利要求9所述的图像处理设备,其中作为绘制单位的多边形是三角形。
全文摘要
一种图像处理设备,包括第一和第二Z值计算器,用于分别计算多边形Z值和块Z值。所述多边形Z值是位于与观察点最近点的像素的坐标值。所述块Z值是块中位于与观察点最近点的像素的坐标值。所述设备还包括Z值选择器,用于从多边形Z值和块Z值中选择更接近于观察点的像素的Z值作为估计Z值;以及隐藏面消除单元,用于当对应于估计Z值的像素位于比距离观察点最远点的像素距离观察点更远的点时,清除在块中多边形的绘制。
文档编号G06T15/40GK1825357SQ20051010761
公开日2006年8月30日 申请日期2005年9月29日 优先权日2005年2月24日
发明者山本澄彦, 竹本卓, 竹中康晴 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1