CN101103381A - 用于呈现三维图形的方法及装置 - Google Patents

用于呈现三维图形的方法及装置 Download PDF

Info

Publication number
CN101103381A
CN101103381A CNA2005800466532A CN200580046653A CN101103381A CN 101103381 A CN101103381 A CN 101103381A CN A2005800466532 A CNA2005800466532 A CN A2005800466532A CN 200580046653 A CN200580046653 A CN 200580046653A CN 101103381 A CN101103381 A CN 101103381A
Authority
CN
China
Prior art keywords
depth value
zmin
zmax
subregion
minimum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800466532A
Other languages
English (en)
Other versions
CN101103381B (zh
Inventor
J·斯特龙
T·阿克尼恩-莫勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN101103381A publication Critical patent/CN101103381A/zh
Application granted granted Critical
Publication of CN101103381B publication Critical patent/CN101103381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

一种用于更新包含显示器(2)的显示块(102)的值的深度缓冲器(16)的值的方法以及用于实现该方法的装置。显示器分为多个显示区域(101),其中包括多个显示块,并且具有最小区域深度值和最大区域深度值。各显示区域包括多个显示子区域。最小子区域深度值和最大子区域深度值相对于最小区域深度值和最大区域深度值的至少一个来确定。

Description

用于呈现三维图形的方法及装置
技术领域
本发明涉及更新包括用于呈现三维图形的深度值的深度缓冲器的方法。本发明还涉及用于实现该方法的装置。
背景技术
三维图形的实时呈现在便携电子设备、如移动终端上具有许多吸引人的应用。这类应用包括例如游戏人机界面、消息传递和移动商务。由于三维呈现是计算密集的任务,所以往往使用专用硬件来达到足够的性能。
在三维呈现期间,深度缓冲器可用于解决可见性,因为几何图元、如多边形或三角形可按照任何顺序绘制。深度缓冲器存储从眼睛到对象的距离。如果待呈现的新对象比深度缓冲器的内容更远,则它被已经绘制的内容隐藏并且不应当显示,以及深度缓冲器不应当被盖写。
但是,这样一种图形系统不是最佳的,因为像素可能被覆盖绘制若干次。即使像素被覆盖绘制若干次,也只有一个几何图元(多边形)是最后可见的。
减少深度缓冲器访问的一种方式是采用遮挡剔除。屏幕被分为包括例如8×8显示块的显示区域。对于各显示区域,显示区域的最大深度值或z值zmax存储在存储器、如芯片上存储器或高速缓冲存储器中,它是快速且能量效率高的。当新的多边形将在所述区域内部呈现时,那个显示区域内部的多边形的部分的最小z值zmin被计算或估算。如果zmin大于显示区域的zmax,则将呈现的多边形对于那个显示区域被完全遮蔽,并且那个显示区域无需再进行处理。如果多边形未被遮蔽,则显示区域内的像素逐个被处理,以便判定深度缓冲器是否应当采用多边形的值来盖写。
还能够在存储器中存储显示区域的zmin以及zmax。最初,zmin和zmax设置为初始值,zmin=FAR(远)以及zmax=NEAR(近)。当新的多边形将在显示区域中呈现时,对于将以显示块呈现的多边形的那个部分计算或估算zmin和zmax。如果多边形的zmin大于显示区域的zmax,则那个显示区域内的多边形的部分一定不会被呈现,以及深度缓冲器无需更新。如果多边形的zmax小于显示区域的zmin,则深度缓冲器可能只是被盖写而未首先被读取。如果多边形的zmin和zmax定义的范围与显示区域的zmin和zmax定义的范围交迭,则多边形的各z值被计算,并与深度缓冲器中存储的对应z值进行比较。因此,可判定是否应当对于那个像素采用多边形的z值来盖写深度缓冲器。
剔除的有效性取决于显示区域的大小。对于较小的显示区域,可使剔除更为准确。但是,显示区域越小,则需要越多存储器资源。
在便携电子设备中,主存储器的带宽使用应当尽可能减少,因为这类存储器访问消耗能量的相当大部分,能量在便携电子设备中是稀缺资源。
发明内容
本发明的一个目的是提供减少存储器读取的带宽要求的方法及装置。
在第一方面,本发明提供一种用于从深度缓冲器中读取值和/或对深度缓冲器写入值的方法,深度缓冲器包括显示器的显示块的深度值,由此,显示器被分为多个显示区域,其中包括各包含多个所述显示块的多个显示子区域。该方法包括:确定至少一个显示区域的显示块的最小区域深度值和最大区域深度值;以及确定至少一个显示子区域的显示块的最小子区域深度值和最大子区域深度值。
在一个实施例中,最小子区域深度值相对于最小区域深度值来确定,以及最大子区域深度值相对于最大区域深度值来确定。
在另一个实施例中,最小子区域深度值相对于最小和最大区域深度值来确定,以及最大子区域深度值相对于最大和最小区域深度值来确定。
最小子区域深度值可被确定,使得它大于或等于最小区域深度值,以及最大子区域深度值被确定,使得它小于或等于最大区域深度值。此外,最小子区域深度值可被确定,使得它小于或等于所述子区域的所有已存储深度值,以及最大子区域深度值可被确定,使得它大于或等于所述子区域的所有已存储深度值。另外,最小区域深度值可被确定,使得它小于或等于所述区域的所有已存储深度值,以及最大区域深度值可被确定,使得它大于或等于所述区域的所有已存储深度值。
根据另一个实施例,将在特定显示子区域中呈现的几何图元的最小深度值和最大深度值中的至少一个被确定;以及最小深度值和最大深度值中的至少一个与最小子区域深度值和最大子区域深度值中的至少一个进行比较,用于确定对于所述显示子区域是否需要读取深度缓冲器。此外,待呈现的几何图元的最小深度值和最大深度值中的至少一个可在特定显示区域中确定;以及最小深度值和最大深度值中的至少一个与最小区域深度值和最大区域深度值中的至少一个进行比较,用于确定对于所述显示区域是否需要读取深度缓冲器。
可对于所述子区域的至少一个显示块来确定至少一个几何图元深度值。所述至少一个显示块的深度值可与最小子区域深度值和最大子区域深度值中的至少一个进行比较,以便确定对于所述显示块是否需要读取深度缓冲器。所述至少一个显示块的几何图元深度值可与最小区域深度值和最大区域深度值中的至少一个进行比较,以便确定对于所述显示块是否需要读取深度缓冲器。
在一个备选实施例中,最小子区域深度值zminsub可相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定:
zminsub=zminr+(zmaxr-zminr)*k/(2m-1)
其中,k在[0,1,2,...,2n-1]中,
以及最大子区域深度值zmaxsub的值可相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定:
zmaxsub=zmaxr+(zminr-zmaxr)*s/(2n-1)
其中,s在[0,1,2,...,2n-1]中,
相对于最小区域深度值和最大区域深度值,n是用于对zmaxsub进行编码的位的数量,以及m是用于对zminsub进行编码的位的数量。
或者,最小子区域深度值zminsub的值可相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定:
zminsub=zminr+(zmaxr-zminr)*k/2m
其中,k在[0,1,2,...,2n-1]中,
以及最大子区域深度值zmaxsub的值可相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定:
zmaxsub=zmaxr+(zminr-zmaxr)*s/2n
其中,s在[0,1,2,...,2n-1]中,
其中,相对于最小区域深度值和最大区域深度值,m是用于对最小子区域深度值进行编码的位的数量,以及n是用于对最大子区域深度值进行编码的位的数量。
在又一个实施例中,该方法包括首先相对于最小区域深度值和最大区域深度值来确定最小子区域深度值,然后相对于最小子区域深度值和最大区域深度值来确定最大子区域深度值。或者,该方法包括首先相对于最小区域深度值和最大区域深度值来确定最大子区域深度值,然后相对于最大子区域深度值和最小区域深度值来确定最小子区域深度值。
在另一方面,提供一种用于执行如上所述的方法的处理装置。该装置在所附专利权利要求中进一步定义。
在另一方面,提供一种包括如上所述的处理装置的电子设备。该设备可以是移动无线电终端、寻呼机、通信装置、电子组织器、智能电话、个人数字助理、手持装置或计算机。该设备可以是移动电话。在又一个方面,提供一种计算机程序产品,其中包括计算机程序代码部件,当计算机程序代码部件由具有计算机能力的电子装置运行时执行如上所述的方法。计算机程序产品可包含在计算机可读媒体中。
应当强调,在本说明中,术语“包括/包含”用来表示存在所述特征、整数、步骤或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、组件或者它们的组合。
附图说明
通过以下参照附图对本发明的详细说明,会发现本发明的其它目的、特征和优点,附图中:
图1是包括显示器的电子设备的正视图;
图2是用于生成、存储和比较深度值的系统的框图;
图3是包括显示块的显示区域的阵列的示意图解;
图4a-4c是示意图解,说明已呈现对象以及待呈现对象;
图5是显示区域以及显示块的深度值之间的关系的简图;
图6是显示区域以及显示区域和显示子区域的最小与最大深度值之间的关系的简图;
图7是包括显示子区域的显示区域的阵列的示意图;
图8是根据本发明的方法的一个实施例的流程图;
图9是根据本发明的方法的一个备选实施例的流程图。
具体实施方式
图1说明在其中可实现根据本发明的装置及方法的电子设备。电子设备在这个实例中被实施为、但不限于移动电话1。
根据本发明的实施例,对于与特定显示区域关联的最小深度值zmin和最大深度值zmax中的至少一个来测试几何图元的z值或深度值。对象可由一个或数个几何图元、如多边形或者更具体来说为三角形来构建。以下的术语“对象”、“几何图元”和“多边形”用来描述应当呈现的某种东西。已经呈现的几何图元称作“内容”。
根据本发明的一个实施例,对于显示区域的zminr和zmaxr中的至少一个来测试将在显示区域内呈现的几何图元或多边形的已估算或计算的最小值obj-zminr和最大值obj-zmaxr、z值。如果可明确地确定待呈现的多边形的所有显示块在被呈现时是可见的,则在多边形的呈现期间无需读取深度缓冲器,而仅需要写入。如果可明确地确定多边形将被遮蔽,则在呈现期间无需读取或写入深度缓冲器。最后,如果可确定待呈现的多边形可能在被呈现时至少部分可见,则对于各显示块计算多边形的深度值obj-z值。每个显示块的这些所计算深度值可能又与显示块的已存储值进行比较。如果从这个比较中可确定多边形显示块在呈现期间可见,则深度值可直接写入深度缓冲器,并且对于那个显示块无需读取深度缓冲器中存储的值。如果可确定多边形显示块被遮蔽,则也不需要写入深度缓冲器中存储的值。
根据本发明的另一个实施例,各显示区域被分为显示子区域。各显示子区域的最小子区域深度值zminsub和最大子区域深度值zmaxsub已知处于完整显示区域的zminr和zmaxr的范围内。因此,根据本发明,可相对于显示区域的最小和最大深度值来描述各显示子区域的最小和最大深度值,这表示可避免进一步读取深度缓冲器,下面将进行描述。但是,相对值需要被读取。
用于实现本发明的存储器带宽要求比传统的遮挡剔除更低。由于存储器访问比较消耗功率,因此,本发明在其中的存储器和电池容量受到限制的便携电子装置中是有用的,例如在手持装置、移动无线电终端、寻呼机、通信装置、电子组织器、智能电话、蜂窝电话或个人数字助理中。但是,本发明也可在固定电子装置、如计算机中实现。
图1所示的移动电话1包括用于用户与移动电话1之间的交互的人机界面。人机界面包括但不限于显示器2,例如LCD显示器或触摸屏,在其中可显示诸如静止图像、连续图像流、图标、文本等的图形。为了呈现三维对象、如多边形,在呈现期间对于遮挡来测试对象,以便确定是否完全需要访问深度缓冲器,下面将进行说明。
图2是用于确定、比较和存储z值的系统的一个实施例的框图。诸如CPU(中央处理器)、DSP(数字信号处理器)、ASIC(专用集成电路)、FPGA(现场可编程门阵列)、硬连线逻辑等的处理器10通过数据总线12连接到存储器11。处理器可负责移动电话1的整体控制。
处理装置10a、如GPU可作为独立处理器提供,或者通过在处理器10中实现的软件提供,并且配置成产生z值以及各种最大和最小深度值,下面将进行说明。GPU还可设置用于产生对象的色彩数据。存储器11可包括计算机可读指令或代码部件、如应用程序的代码部分,它们由系统运行。应用程序可能是计算机游戏或CAD(计算机辅助设计)程序。
处理器10从存储器11中检索指令,并执行它们以便执行具体任务。处理器10的一个任务可以是为显示控制器13提供与将在显示器14上绘制的内容或图形有关的信息。显示控制器13可作为诸如处理器、DSP、ASIC、FPGA、硬连接逻辑等的独立硬件组件提供。或者,显示控制器13采用软件和硬件的组合来实现,或者可通过软件来提供并由处理器10执行。显示控制器13连接到数据总线12。作为替代或补充,显示处理器13通过分开的数据总线(未示出)连接到处理器10。如果大量信息将在处理器10与显示控制器13之间传递,则数据总线可以是高速数据总线。在这种情况中,分开的数据总线上的数据传递不会干扰普通数据总线12上的数据业务。
显示存储器15连接到数据总线12,并存储从处理器10发送的关于将在显示器14上绘制的内容的信息。显示存储器15包括例如用于存储信息、如所呈现内容的样本值的样本缓冲器以及色彩缓冲器。色彩缓冲器保存所产生的像素值,例如在前一个图像的呈现完成之后将在显示器14上显示的像素的色彩。如同处理器10与显示控制器13之间的互连一样,显示存储器15可通过分开的高速总线17直接连接到显示控制器13,如虚线所示。显示存储器15还可组成存储器11的一部分。由于显示控制器13和显示存储器15通常用于产生连续图像流,所以,如果这两个单元之间的链路尽可能快,并且没有阻塞数据总线12上的常规业务,则可能是一个优点。显示存储器可通过分开的高速总线17a连接到处理装置10a。
显示控制器13可包括VDAC(视频数模转换器),它从显示存储器15中读取信息并将其转换为模拟信号、例如RGB(红、绿、蓝)复合信号,它被提供给显示器14以便在其上绘制各个像素。
显示存储器15中存储的色彩缓冲器或帧缓冲器可存储对应于图形图像的像素信息。像素信息可由像素的网格状阵列表示,其中各像素被分配色彩。色彩缓冲器中的值可表示为与构成图形图像的像素的红色、绿色和蓝色对应的R、G和B值。定义R、G和B值的位的数量取决于要表示的色彩和阴影的数量。可定义其它位。
在处理待显示的三维图形对象时,必须在更新色彩缓冲器中的任何值之前考虑对象的多边形内的样本位置上的深度属性或z值。如果待处理的新对象至少部分位于所显示内容之后并且至少部分被所显示内容遮蔽,则只有新对象的可见部分才应当绘制到色彩和深度缓冲器中。另一方面,如果新对象完全被已经绘制的内容遮蔽,则根本无需更新色彩缓冲器,并且该对象没有被绘制或呈现。
三维对象可由定义多边形表面的顶点集合来表示。各顶点由对应于X、Y和Z轴的x、y和z维定义。X和Y轴定义视平面,以及Z轴表示从视平面到观看者的原点的投影距离。z坐标值表示由特定x和y坐标定义的像素位置上的对象的深度。
用于存储深度值的深度缓冲器16连接到总线12。深度缓冲器16可作为直接连接到总线12的独立存储单元来提供,或者作为存储器15的组成部分。深度缓冲器16提供存储部件,在其中可存储各像素的z值或深度值。当新对象应当在视平面的所显示部分中绘制时,必须对于新对象是否可见以及是否应当被显示、或者新对象是否被已经显示的内容所隐藏进行确定。当z值存储在可能是芯片外设置的深度缓冲器中时,高速总线18(以虚线表示)可设置在处理装置10a与深度缓冲器16之间,因而对深度缓冲器16的访问不干扰总线12上的其它业务。
处理装置10a可包括集成存储部件19、如芯片上存储器或高速缓冲存储器。处理装置10a和存储部件19可设置在相同芯片上,因而不占用总线12的任何存储器带宽。存储部件19可存储与显示器的各显示区域101(图3)关联的最小区域深度值和最大区域深度值。另外,存储部件可存储显示子区域的最小子区域深度值和最大子区域深度值。如果处理装置10a是GPU,则存储部件19可能是芯片上存储器。如果处理装置10a是CPU,则存储部件19可能是高速缓冲存储器或芯片上存储器。
图3说明分为多个显示区域101的显示器100。在这个实施例中,显示器100包括10×10显示区域。但是,按照其它实施例,显示器可分为任何数量的显示区域101、甚至分为单个显示区域。各显示区域分为多个显示块102。各显示块可包括一个像素。在这个实施例中,各显示区域101包括8×8显示块。备选尺寸例如可能是4×4、8×4、16×4、16×8或16×16。这些尺寸只是作为实例,并且其它实施例可在各显示区域101中包括任何数量的显示块102。如果采用具有8×8显示块的显示区域,则具有1024×768像素的分辨率的屏幕将包括128×96显示区域。
显示区域101的最小区域深度值表示所述显示区域101内的显示块的所有深度值中的最小值。相应地,最大区域显示值表示所述显示区域101内的显示块102的所有深度值中的最大值。
在图3中,新三角形103的一部分将在特定显示区域104中呈现。在色彩和深度缓冲器按照三角形103的可能影响被更新之前,必须测试三角形103是否将被已经呈现在显示区域104中的图元遮蔽。
图4a-4c说明对象、如三角形被呈现到显示区域104时可能发生的各种情况。位于比另一个三角形的至少一部分更远处的三角形的那个部分以虚线绘制。
在图4a中,第一三角形120在特定显示区域122中显示。第二三角形121则在所述特定显示区域122中呈现。最小区域深度值zminr与那个显示区域中的第一三角形的最小多边形深度值相同,以及最大区域深度值zmaxr与那个显示区域中的第一三角形的最大多边形深度值相同。假定第二三角形121整个位于比第一三角形120更远处。因此,第二三角形121的zmin大于第一三角形120的zmax,因而大于zmaxr。第一三角形120是在所述显示区域中最接近观看者的对象。通过把第二三角形121的zmin与显示区域的zmaxr进行比较,可以确定,第二三角形应当明确地不盖写所述特定显示区域122的任何缓冲器值(例如z和色彩)。
在图4b中,第一三角形130在特定显示区域132中显示。第二三角形131则在所述特定显示区域132中呈现。最小区域深度值zminr与第一三角形的zmin相同,以及最大区域深度值zmaxr与显示区域132中的第一三角形的zmax相同。第二三角形131比第一三角形130更接近观看者。因此,第二三角形131的zmax比第一三角形130的zmin以及比zminr更小。因此,通过把第二三角形131的zmax与显示区域的zminr进行比较,可以确定,第二三角形应当明确地被呈现,以及对于所述显示区域132可完全避免对深度缓冲器的存储器读取,但是多边形的z值可直接写入深度缓冲器。另外,必要时,存储部件19应当采用与第二三角形131的zmin和/或zmax对应的zminr和zmaxr的新值来更新。
在图4c中,第一三角形140在特定显示区域142中显示。最小区域深度值zminr与第一三角形140的zmin相同,以及最大区域深度值zmaxr与第一三角形140的zmax相同。第二三角形141在所述特定显示区域142中呈现。第二三角形141仅部分位于比第一三角形140更远处,其方式是,第二三角形141的至少一部分(以实线标记)比第一三角形140更近,以及第二三角形141的至少另一部分(以虚线标记)比第一三角形140更远。因此,第二三角形141的zmin小于显示区域142的zmaxr,和/或第二三角形141的zmax大于显示区域的zmaxr。因此,仅通过把第二三角形141的zmin和zmax与显示区域142的zminr和/或zmaxr进行比较,可能不确定第二三角形141应当明确地呈现或者明确地不呈现以及需要进一步处理,在其中将需要读取深度缓冲器16。
可计算或估算新三角形121、131、141的zmin和zmax的值。Zmin和zmax例如可确定为多边形的顶点的zmin和zmax值。或者,如果图形图元是多边形,则可通过评估显示区域的角上的多边形的平面方程,然后取这些值的最小值和最大值,对它们进行估算。此外,可采用这些技术的组合。根据另一个实施例,通过了解显示区域的大小和所述显示区域内的三角形的边界的斜率,来估算新三角形的zmin和zmax。应当保守地估算zmin和zmax的值。
应当注意,图4a-4c所述的情况仅为了说明而提供。其它情况也可能发生,例如当三角形不交迭时。显示区域内的其它数量的三角形也是可行的。此外,显示区域的各显示块可能涉及不同的三角形。
当关于新对象的可见性的明确答案无法通过把新对象的zmin和zmax与显示区域的zminr和zmaxr逐个区域进行比较来给出时,逐个子区域地进行类似的比较。如果仍然不能给出明确答案,则可生成特定显示区域内的对象的所有z值。可通过透视正确内插顶点的z值来产生新三角形的各显示块的z值。
各z值可与子显示区域的zminsub和zmaxsub中的至少一个进行比较,即,不需要把z值同时与zminsub和zmaxsub进行比较。因此,可逐个显示块明确地确定对于各z值是否需要读取深度缓冲器。
如果与特定显示块对应的多边形的z值小于显示区域的zminr,深度缓冲器16不需要被读取,但是它明确地需要被写入,以便采用与新对象的特定显示块对应的z值来更新深度缓冲器。深度缓冲器16可被更新而无需对于那个显示块的任何进一步处理。
如果与特定显示块对应的多边形的z值大于显示区域的zmaxr,则对于那个显示块,深度缓冲器16明确地不需要被读取也不需要被写入。
但是,如果与特定显示块对应的多边形的z值处于显示区域的zminr与zmaxr之间,则无法给出明确答案。然后,深度缓冲器16需要被读取,以便检索与特定显示块关联的已存储z值。对于特定显示块的所生成z值与对应的已存储以及这时已检索z值进行比较。如果所生成z值小于对应的已存储z值,则深度缓冲器采用所生成z值来更新。如果所生成z值大于对应的已存储z值,则深度缓冲器无需被更新。
应当注意,根据其它实施例,可使用其它比较运算符,例如小于或等于、大于、等于、大于或等于对应的已存储z值。
有利的是,不仅把对象的zmin和zmax、而且把对象的各内插z值与子显示区域的zminsub和zmaxsub进行比较,因为可避免对深度缓冲器16的读取。因此,与仅比较对象的zmin和zmax相比,所使用的存储器带宽可以更进一步减少。
图5以横截面来说明显示区域,其中,显示块在Y轴表示,以及深度值之间的关系沿Z轴表示。为了便于说明,显示区域的一列的显示块的数量仅为四个。
第一和第二对象150、151已经在显示区域中呈现。显示区域的zmaxr与第一对象150的最大z值相同。显示区域的zminr与第一对象150的最小z值相同。第三对象152将在显示区域中呈现。当第三对象的obj-zminr和obj-zmaxr与显示区域的zminr和zmaxr进行比较时,无法提供关于第三对象152的可见性的明确答案,因为第三对象的obj-zmaxr处于zminr与zmaxr之间。因此,在显示区域中的各显示块中生成第三对象152的样本点153、154、155上的obj-z值。通过查看样本点153、154、155上的z值,可确定样本点155上的z值小于zminr,其中对于那个显示区域无需读取深度缓冲器。但是,对于样本点155更新zminr的值。在各显示块中确定样本点153和154,由此,在可确定样本点154应当被呈现以及样本点153不应当被呈现之前,需要读取显示缓冲器。
现在来看图8,说明其中最小多边形深度值和最大多边形深度值与最小区域深度值和最大区域深度值中的至少一个进行比较的方法的流程图。
当新对象要被呈现时,参照图8,执行以下过程。
在框200,在特定显示区域中估算新对象的obj-zminr和obj-zmaxr
在框201,显示区域的zminr和zmaxr从存储器16、11或19中检索。
在框202,obj-zmaxr与zminr进行比较。
如果obj-zmaxr小于zminr,则对象整个位于区域中的显示器上已经存在的其它所有内容的前面,并且应当明确地呈现,以及过程按照“是”线路到达框214a。
在框214a,生成区域中包含的显示块中的新对象的z值。在框215a,特定显示块的z缓冲器采用新生成的z值来更新。在框216a,确定是否已经处理特定区域中的所有显示块。如果没有,则过程如框217a所示继续进行下一个显示块,以及过程返回到框214a。如果是,则过程进入框219,在其中,确定是否已经处理所有显示区域,否则,过程在框220进入下一个显示区域,以及返回到框200进行下一个区域。
如果在框202,obj-zmaxr大于zminsub,则过程按照“否”线路到达框203。
在框203,obj-zminr与zmaxr进行比较。
如果obj-zminr大于zmaxr,则对象整个位于显示器上已经存在的其它任何对象的后面,并且应当明确地不呈现,以及过程按照“是”线路到达框219进行下一个区域。
如果obj-zminr小于zmaxsub,则无法得出关于对象的呈现的确定结论,需要进一步调查,按照“否”线路到达框204a。
在框204a,对于子区域中的对象确定obj-zmaxsub和obj-zminsub
在框204b,对于显示子区域检索和/或计算zmaxsub和zminsub
在框205,obj-zmaxsub与zminsub进行比较。
如果obj-zmaxsub小于zminsub,则对象整个位于子区域的显示器上已经存在的其它所有对象的前面,并且应当明确地呈现,以及过程按照“是”线路到达框214b。
在框214b,生成子区域中包含的显示块中的新对象的z值。在框215b,特定显示块的z缓冲器采用新生成的z值来更新。在框216b,确定是否已经处理特定子区域中的所有显示块。如果没有,则过程如框217b所示继续进行下一个显示块,以及过程返回到框214b。如果是,则过程进入框213,在其中,确定是否已经处理所有显示子区域,否则,过程如框218所示进入下一个显示子区域,以及返回到框204a进行下一个子区域。
如果在框205,obj-zmaxsub大于zminsub,则过程按照“否”线路到达框206。
在框206,obj-zminsub与zmaxsub进行比较。
如果obj-zminsub大于zmaxsub,则对象整个位于显示器上已经存在的其它任何内容的后面,并且应当明确地不呈现,以及过程按照“是”线路到达框213进行下一个子区域。
如果obj-zminsub小于zmaxsub,则无法得出关于对象的呈现的确定结论,需要进一步调查,按照“否”线路到达框207。
在框207,对于特定显示块生成新对象的z值。
在框218,对象的z值与zminsub进行比较。
如果z值小于zminsub,则对象位于显示块中已经存在的任何内容的前面,并且应当明确地呈现,以及过程按照“是”线路到达框212。
如果在框218,z值大于zminsub,则过程按照“否”线路到达框219。
在框219,z值与zmaxsub进行比较。
如果z值大于zmaxsub,则对象整个位于显示块中已经存在的任何内容的后面,并且应当明确地不呈现,以及过程按照“是”线路到达框210进行下一个显示块。
如果z值小于zmaxsub,则无法得出关于对象的呈现的确定结论,并且需要进一步调查,按照“否”线路到达框208。
在框208,对于特定显示块从存储器中检索已存储z值。
在框209,对象的所生成z值与已存储和已检索z值进行比较。
如果所生成z值大于已存储z值,则新对象处于先前内容的后面,并且不应当在特定显示块中呈现,以及过程按照“否”线路到达框210。
在框210,确定是否已经处理所有显示块。如果没有,则过程如框211所示进入下一个显示块,以及过程进入框207。
如果已经处理所有显示块,则过程进入框213进行下一个子区域。
如果在框209,所生成z值小于已存储z值,则新对象应当在特定显示块中呈现,以及过程按照“是”线路到达框212。
在框212,用于那个显示块的z缓冲器被更新,以及过程进入框210进行任何新的显示块。
在如框213所确定的已经处理所有显示子区域时,过程进入框219。
在框219,确定是否已经处理所有显示区域。如果是,则过程结束。
注意,色彩缓冲器中的信息可与更新z缓冲器同时更新。或者,色彩缓冲器可在稍后更新。如果若干多边形将被呈现,因而在按照本发明处理若干或所有多边形时更新色彩缓冲器,则情况可能是这样。
根据又一个实施例,能够增加显示区域的zminr和zmaxr的分辨率。对于较小的显示区域,可使剔除更为准确。但是,芯片上存储要求随着减少的显示区域而增加,或者,如果高速缓存用来访问zminr/zmaxr,则那个高速缓存将更频繁地访问存储器11。前者导致芯片面积方面的大成本,后者在带宽使用方面达不到预期效果。例如,从8×8显示块的显示区域大小变为4×4显示块的显示区域大小的成本在带宽使用和存储器要求方面一般将为4倍。
根据一个实施例,提供对这个问题的一个相当廉价的解决方案。假定采用p×p显示块的显示区域大小。为了提高性能,采用p/2×p/2显示块的显示区域大小将是好的,但使芯片上存储器成本增加到四倍是不合需要的。下面,p×p显示区域称作显示区域,而p/2×p/2显示区域则称作显示子区域。
图7说明包括四个显示子区域251、252、253、254的显示区域250。各显示子区域包括4×4显示块。
Zminr和zmaxr存储在用于整个显示区域250的存储部件19中。各子区域区域251、252、253、254的最小子区域深度值zminsub和最大子区域深度值zmaxsub已知处于显示区域的zminr和zmaxr的范围内。因此,根据一个实施例,zminsub和zmaxsub与zminr和zmaxr关联。zminsub和zmaxsub可相对于显示区域的zminr和zmaxr来确定。zminsub和zmaxsub可与显示区域的zminr和zmaxr一起存储在存储部件19中。因此,当新对象将被呈现时,可在新对象的已确定zmin和zmax与各显示子区域的zminsub和zmaxsub中的至少一个之间进行比较。如果在第一比较时无法进行关于可见性的一般确定,则每个所生成z值可与zminsub和/或zmaxsub进行比较。另外,必要时,待呈现的多边形的已确定zmin和/或zmax可与zminr和/或zmaxr进行比较。
zminsub可经过确定,使得它大于或等于zminr,以及zmaxsub可经过确定,使得它小于或等于zmaxr
毫无疑问,zminsub和zmaxsub可确定为子区域中的深度值的实际最小值和最大值。
或者,zminsub经过确定,使得它小于或等于所述特定子区域的所有已存储深度值,以及zmaxsub可经过确定,使得它大于或等于所述特定子区域的所有已存储深度值。
或者,zminsub和zmaxsub可确定为:
zminsub=zminr+(zmaxr-zminr)*k/(2m-1),其中,k在[0,1,2,...,2n-1]内,
zmaxsub=zmaxr+(zminr-zmaxr)*s/(2n-1),其中,s在[0,1,2,...,2n-1]内,
对于每个显示子区域,m是用于对zminsub进行编码的位的数量,以及n是用于对zmaxsub进行编码的位的数量。m和n是大于或等于一的整数。
如果m=n=2,则将执行与三相除,它来自以下事实:2位用于对zminsub和zmaxsub进行编码;22-1=3。与三相除还要求均匀分布zminr与zmaxr之间且包含zminr与zmaxr在内的可能值。zminsub和zmaxsub可取包含zminr和zmaxr在内的可能值的任一个。
从硬件观点来看,与奇数相除是不合需要的,因为硬件变得更复杂。为了顾及这个问题,可改为采用确定zminsub和zmaxsub的下列算法:
zminsub=zminr+(zmaxr-zminr)*k/2m,其中,k在[0,1,2,...,2n-1]内,
zmaxsub=zmaxr+(zminr-zmaxr)*s/2n,其中,s在[0,1,2,...,2n-1]内。
在这个实施例中,zminsub的值大于或等于zminr且小于zmaxr。zmaxsub的值大于zminr且小于或等于zmaxr。这意味着,zminsub不能存储zmaxr的值,以及zmaxsub不能存储zminr的值。但是,这种情况经常出现是不太可能的,因为zminsub和zmaxsub之一始终可存储zminr或zmaxr。此外,只要保守地对每个zmin、zmax、zminsub、zmaxsub、zminr和zmaxr进行编码,即zminsub的最近可能的较低值以及zmaxsub的最近可能的较高值,即使另一个较高值更接近,呈现仍然会正确。
zminr和zmaxr之间的zminsub和zmaxsub的可能值的其它分布也是可行的。例如,可提供更接近zminr而不是zmaxr的更可能的值,或者反之,或者在zminr与zmaxr之间的某个范围内。可在各具体情况中测试实际分布。
因此,zmaxr和zminr的值以任何预期分辨率、采用对应的位数量来存储。zmaxsub和zminsub的值作为上式所示的k数值和s数值采用n位来存储。
图6以横截面来说明显示区域,其中,显示块沿Y轴表示,深度值之间的关系在Z轴表示。为了进行说明,显示子区域的一列的显示块的数量仅为四个。表示各显示区域的zminr和zmaxr以及显示子区域的zminsub和zmaxsub。表示了已经对于将在显示子区域的显示块中呈现的新对象生成的z值270、271、272、273。
通过把新对象的zmin/zmax或者每个所生成z值270、271、272、273与zminr和zmaxr进行比较,不会给出关于可见性的明确答案,因为所述所生成z值处于zminr和zmaxr所定义的范围之内。此外,比较新对象的zmin/zmax将给出以下答案:需要读取深度缓冲器16,因为新对象的zmin小于zmaxr,以及新对象的zmax大于zminr。通过把所生成z值270、271、272、273与zminsub和zmaxsub进行比较,可确定z值270大于zmaxsub,并且当呈现时明确地将被那个显示子区域中先前绘制的内容覆盖,以及无需为这个子区域块更新深度缓冲器16。Z值271和272大于zminsub且小于zmaxsub。因此,深度缓冲器16必须被读取,以便检索与z值271和272对应的显示块的已存储z值。Z值273小于zminsub,其中,可确定在呈现时没有对象将覆盖这个显示块中的新对象,以及深度缓冲器16可为这个显示块更新而没有被读取。
从以上所述中清楚看到,相对于zminr和zmaxr使用编码zminsub和zmaxsub的优点在于,可避免进一步的深度缓冲器读取。在以上所述的实例中,避免了四个中的两个深度缓冲器读取。
在其它实施例中,显示子区域的最小多边形和/或最大多边形深度值或者多边形深度值可与最小子区域深度值、最大子区域深度值、最小区域深度值和/或最大区域深度值的组合进行比较。
在又一个实施例中,显示子区域的zminsub首先相对于显示区域的zminr和zmaxr来确定。然后,相对于显示子区域的所述已确定zminsub和显示区域的zmaxr来对zmaxsub进行编码。或者,显示子区域的zmaxsub首先相对于显示区域的zminr和zmaxr来确定,然后相对于显示区域的zminr和显示子区域的所述已确定zmaxsub来确定所述显示子区域的zminsub。可通过确定显示子区域内的所有z值的zmin和zmax来生成zminsub和zmaxsub,然后如上所述确定zminsub和zmaxsub
在图9中,说明该过程的另一个实施例。
过程在框300开始。
在框301,确定obj-zminr和obj-zmaxr。此外,从存储器中检索zminr和zmaxr
在框302,确定obj-zmaxr是否小于zminr,在这种情况中,新对象处于显示区域中的任何先前内容的前面。
如果在框302中为“是”,则对象在整个区域中被呈现,如框316所示。在框317,确定是否处理了所有区域。如果情况是这样,则过程在框318结束,否则,返回框301,处理新显示区域。
如果在框302为“否”,则过程进入框303,在其中,确定obj-zminr是否大于zmaxr,在这种情况中,新对象处于显示区域中的任何先前对象的后面。
如果在框303中为“是”,则对象不应当被呈现,如框319所示,以及过程进入框317,在其中确定是否处理了所有区域,如上所述。框317还表示在图9的另一个位置上,但只是为了使过程更易于理解。在标有相同参考标号的各框中,过程是相同的。
如果在框303中为“否”,则不能得到关于区域中的对象的呈现的确定判定,以及过程进入框304。
在框304,确定obj-zminsub和obj-zmaxsub,如上所述。
在框305,确定obj-zmaxsub是否小于已经在框301中检索的zminr,并且是可用的而无需任何进一步动作。
如果在框305中为“是”,则对象在整个子区域中被呈现,如框320所示。在框321,确定是否处理了所有子区域。如果情况是这样,则过程进入框317进行下一个区域。否则,过程返回到框304进行新的子区域。
如果在框305为“否”,则过程进入框306,在其中,确定obj-zminsub是否大于zmaxr,在这种情况中,新对象处于子区域中的任何先前对象的后面。zmaxr已经可用。
如果在框306中为“是”,则对象不应当被呈现,如框324所示。
如果在框306中为“否”,则过程进入框307,在其中,从存储器中检索和/或计算显示子区域的zmaxsub和zminsub
在框308,确定obj-zmaxsub是否小于zmaxsub,在这种情况中,对象处于整个子区域中的任何先前内容的前面。
如果在框308中为“是”,则对象在整个子区域中被呈现,如框320所示。
如果在框308中为“否”,则过程进入框309,在其中,确定obj-zminsub是否大于zmaxsub,在这种情况中,新对象处于显示子区域中的任何先前内容的后面。
如果在框309中为“是”,则对象不应当被呈现,如框324所示。
如果在框309中为“否”,则不能得到关于子区域中的对象的呈现的确定判定,以及过程进入框310。
在框310,确定显示块中的对象的z值。
在框311,确定对象的z值是否小于已经在框307中检索的zminsub,并且是可用的而无需任何进一步动作。
如果在框311中为“是”,则对象在显示块中被呈现,如框322所示。在框323,确定是否处理了所有显示块。如果情况是这样,则过程进入框321进行下一个子区域。否则,过程返回到框310进行新的显示块。
如果在框311中为“否”,则过程进入框312,在其中,确定z值是否大于zmaxsub,在这种情况中,新对象处于子区域中的任何先前内容的后面。zmaxsub已经可用。
如果在框312中为“是”,则对象不应当被呈现,如框325所示。
如果在框312中为“否”,则过程进入框313,在其中,从存储器中检索显示块的已存储z。
在框314,确定z值是否小于已存储z,在这种情况中,对象处于显示块中的其它任何内容的前面。
如果在框314中为“是”,则对象在显示块中被呈现,如框322所示。
如果在框314中为“否”,则过程进入框325。
在图9,公开五个步骤,其中包括:框302,303;305,306;308,309;311,312;和314,315。在其它组合中可执行不同于图9所示的步骤。例如,步骤302、303、步骤305、306和步骤311、312可能是可选的。可采用这些步骤中的全部三个、两个、一个或者不采用任一个。此外,不一定始终采用两个框308和309,而仅采用这两个框中的一个仍然是有利的。对于各步骤中的两个框的所有组合,情况也是这样。
“不呈现”的框319、324、325包括不需要z缓冲器和/或显示子区域和区域值的读取,这意味着节省。
框316、320和322包括z缓冲器被更新但无需首先被读取,这也意味着节省。该过程可如针对图8所述。
显示子区域可具有任何大小、如p×q显示块,其中,p>=1以及q>=1。另外,任何数量的位可用于对zminsub和zmaxsub进行编码。假定2×2显示块用于各显示子区域,以及2位用于存储zminsub和zmaxsub的每个的各相对位置,则成本是每个显示区域(2*2)*(2+2)=16位。此外,假定zminr和zmaxr各以16位来存储,则很显然,根据这个实施例的方案比先有技术更有效。例如,采用标准的先有技术方案,从每个显示区域32位(对于zminr+zmaxr,16+16位)变为[n/2]×[n/2]的显示区域大小将花费32*4=128位。根据这个实施例的方案将花费48位(对于zminr+zmaxr+相对位置位,16+16+16位)。
在一个实施例中,确定至少一个显示区域的显示块的zminr和zmaxr中的至少一个。确定zminr和zmaxr中的任一个或两个。因此,另外仅需要确定至少一个显示子区域的显示块的zminsub或zmaxsub其中之一。但是,如果确定了zminr以及zmaxr,则确定了zminsub以及zmaxsub。例如可在zmaxsub或zminsub值中的任一个未使用时采用这个实施例。
zminsub可相对于至少zminr来确定。zmaxsub可相对于至少zmaxr来确定。
设想具有4个显示子区域A、B、C、D的显示区域。各子区域A、B、C、D分别具有最小子区域深度值zminsub_A、zminsub_B、zminsub_C和zminsub_D。对于各显示区域,两个最小深度值zmin_1和zmin_2被确定并存储。zmin_1可确定为min[zminsub_A,zminsub_B,zminsub_C,zminsub_D]。因此,zmin_1可确定为显示区域的zminr。zmin_2是等于或大于zmin_1的值。例如,zmin_2可确定为(zmin_1+max[zminsub_A,zminsub_B,zminsub_C,zminsub_D])/2。另一个实例是把[zminsub_A,zminsub_B,zminsub_C,zminsub_D]的第二最大值作为zmin_2的值。各子区域深度值可相对于zmin_1、即相对于zminr来确定。位值zminsub_bit可用于(设置或清除)各子区域。如果特定子区域的zminsub小于zmin_2,则所述特定子区域的zminsub_bit设置为第一值、例如0。如果特定子区域的zminsub大于或等于zmin_2,则所述特定子区域的zminsub_bit设置为第二值、例如1。第一值引用zmin_1,以及第二值引用zmin_2。这样,确保了正确或保守表示,因为编码值将等于或小于实际值。因此,最小子区域深度值在呈现期间将由zmin_1或zmin_2的任一个来表示。存储显示区域的各子区域的zmin_1、zmin_2和zminsub_bit的值。zmin_1和zmin_2可采用第一数量的位来存储,例如每个值16位。zminsub_bit值可对于每个值采用单个位来存储。
采用zmin_1和z_min2的一个实例可能是:zminsub_A=10,zminsub_B=20,zminsub_C=30,zminsub_D=40,并确定zmin_1=zminsub_A=10,以及zmin_2=(zmin_1+zminsub_D)/2=(10+40)/2=25。位值可确定为zminsub_bit_A=0,zminsub_bit_B=0,zminsub_bit_C=1,zminsub_bit_D=1。在这个实例中,子区域A精确地表示,而子区域B、C和D则保守地表示。如果zmin_2被选作zminsub_A、zminsub_B、zminsub_C和zminsub_D之中的第二最大值,则zmin_2变成30,以及只有B和D保守地表示。如在这个实例中存储子区域A、B、C和D的位值以及zmin_1和zmin_2需要16+16+4*1=36位。采用对于zmin_1和zmin_2相同的分辨率、即16位分开存储各子区域的最小深度值需要4*16=64位。因此,采用zmin_1和zmin_2以及位值表示需要明显更少的存储空间。
在另一个实施例中,zmin_1按照如上所述确定,而zmin_2被选作等于或大于zmin_1的数值,例如显示区域中的显示块(像素)的全部单独深度值的最大值。为了增加子区域深度值的分辨率,显示区域深度值区间被确定,例如区间[zmin_1,zmin_2-1],以zmin_1和zmin_2-1作为区间的最终值。区间分为2N个子区间。N位用来存储各子区域的位值。在对zminsub编码时,包含zminsub的子区间被选取,以及子区间中的最低值用来提供保守编码。
假定N=3,采用zmin_1和zmin_2以及区间的一个实例可能是:把zmin_1确定为zminr,以及把zmin_2确定为显示区域中的显示块(像素)的深度值的最大值。假定zmin_1=128以及zmin_2=256。则显示区域深度值区间确定为[128,255],以及子区间确定为[128,143]、[144,159]、[160,175]、[176,191]、[192,207]、[208,223]、[224,240]和[241,255]。zminsub_bit值如上所述确定,并引用某个子区间。假定zminsub_bit_A=100b=4。则zminsub_bit_A引用第五子区间、即[192,207]。为了具有保守值,子区域A的子区域深度值在呈现期间确定为192。如在这个实例中存储子区域A、B、C和D的位值以及zmin_1和zmin_2需要16+16+3*4=44位,这仍然优于需要64位存储各子区域的深度值。
zminsub例如可采用下式来确定:zminsub=zmin_1+(zmin_2-zmin_1)*k/(2N),k等于zminsub_bit值,因而处于范围0,1,...,2N-1之内。在本例中,N=3且k=4,从而给出4*(256-128)/23+128=192。
在一个备选实施例中,主区间可能是[zmin_1,zmin_2],并且它可通过不同方式划分,使得zminsub将按照公式zminsub=zmin_1+(zmin_2-zmin_1)*k/(2N-1)来计算,其中k=0,1,...,2N-1。但是,这两个公式仅作为实例,以及子区间的起始值可通过其它方式来计算。
以上参照zmin_1和zmin_2所述的内容也适用于zmax值。因此,zmax_1和zmax_2值可通过相应方式来确定,因而以相应方式对zmaxsub进行编码。因此,zmax_1和zmax_2之一将至少相对于zmaxr来确定。被存储的zminsub和zmaxsub值因而通过位值来表示。从以上所述清楚看到,zmin_1可能等于zmaxr。zmin_2可能大于或等于zmin_1。类似地,zmax_2可能等于zmaxr。zmax_可能小于或等于zmax_2。
zmax_2则可计算为max[zmaxsub_A,zmaxsub_B,zmaxsub_C,zmaxsub_D],以及zmax_1可选择为等于或小于zmax_2的值。例如,zmax_2可计算为显示区域中的各个显示元素块的深度值的最小值。此外,区间[zmax_1+1,zmax_2]则可分为2N个子区间,以及这些区间的端值可用作zmaxsub。例如,zmaxsub可采用公式zmaxsub=zmax_2+(zmin_1-zmin_2)*k/(2N)来计算,其中k等于zmaxsub_bit,因而处于范围0,1,...,2N-1之内。或者,区间可能是[zmax_1,zmax_2],  以及端点可计算为zmaxsub=zmax_2+(zmin_1-zmin_2)*k/(2N-1),其中,k=0,1,...,2N-1,zmax_2=zmaxr,zmax_2≥zmax_1。但是,这两个公式仅作为实例,以及子区间的端值可通过其它方式来计算。
与传统的zmin/zmax技术相比,结合把多边形的深度值与显示区域的zminr和zmaxr进行比较的步骤以及把显示区域分为具有更准确的zminsub和zmaxsub的关联编码的显示子区域的步骤,将得到深度缓冲器读取方面的显著节省。节省可提供比传统zmin/zmax技术少1.6-2.9倍的深度缓冲器读取。对于游戏画面,这可包括避免了每帧高达40000次不必要的深度缓冲器读取。换句话说,避免了大约40%的深度缓冲器读取。在30Hz(每秒图像),这提供每秒少120万次存储器访问。
以上已经参照具体实施例描述了本发明。但是,在本发明的范围之内,不同于以上所述的实施例是可行的。在本发明的范围内,可提供通过硬件或软件执行该方法、与以上所述不同的方法步骤。本发明的不同特征和步骤可结合在不同于以上所述的其它组合中。本发明的范围仅受所附专利权利要求的限制。

Claims (41)

1.一种用于从包括显示器的显示块的深度值的深度缓冲器中读出值和/或对其中写入值的方法,
由此,所述显示器分为多个显示区域,其中包括各包含多个所述显示块的多个显示子区域,
所述方法包括:
确定至少一个显示区域的显示块的最小区域深度值和最大区域深度值中的至少一个;以及
确定至少一个显示子区域的显示块的最小子区域深度值和最大子区域深度值中的至少一个。
2.如权利要求1所述的方法,其特征在于,包括相对于最小区域深度值来确定最小子区域深度值。
3.如权利要求1或2所述的方法,其特征在于,包括相对于最大区域深度值来确定最大子区域深度值。
4.如权利要求1所述的方法,其特征在于,包括相对于最小和最大区域深度值来确定最小子区域深度值。
5.如权利要求1或4所述的方法,其特征在于,包括相对于最大和最小区域深度值来确定最大子区域深度值。
6.如以上权利要求中的任一项所述的方法,其特征在于,包括确定最小子区域深度值,使得它大于或等于最小区域深度值,以及确定最大子区域深度值,使得它小于或等于最大区域深度值。
7.如以上权利要求中的任一项所述的方法,其特征在于,包括确定最小子区域深度值,使得它小于或等于所述子区域的所有已存储深度值,以及确定最大子区域深度值,使得它大于或等于所述子区域的所有已存储深度值。
8.如以上权利要求中的任一项所述的方法,其特征在于,包括确定最小区域深度值,使得它小于或等于所述区域的所有已存储深度值,以及确定最大区域深度值,使得它大于或等于所述区域的所有已存储深度值。
9.如以上权利要求中的任一项所述的方法,其特征在于,包括
确定将在特定显示子区域中呈现的几何图元的最小深度值和最大深度值中的至少一个;以及
把最小深度值和最大深度值中的至少一个与最小子区域深度值和最大子区域深度值中的至少一个进行比较,以便确定对于所述显示子区域是否需要读取所述深度缓冲器。
10.如以上权利要求中的任一项所述的方法,其特征在于,包括
确定将在特定显示区域中呈现的几何图元的最小深度值和最大深度值中的至少一个;以及
把最小深度值和最大深度值中的至少一个与最小区域深度值和最大区域深度值中的至少一个进行比较,以便确定对于所述显示区域是否需要读取所述深度缓冲器。
11.如以上权利要求中的任一项所述的方法,其特征在于,包括确定所述子区域的至少一个显示块的至少一个几何图元深度值。
12.如权利要求11所述的方法,其特征在于,包括把所述至少一个显示块上的几何图元的深度值与最小子区域深度值和最大子区域深度值中的至少一个进行比较,以便确定对于所述显示块是否需要读取所述深度缓冲器。
13.如权利要求11或12所述的方法,其特征在于,包括把所述至少一个显示块上的几何图元的深度值与最小区域深度值和最大区域深度值中的至少一个进行比较,以便确定对于所述显示块是否需要读取所述深度缓冲器。
14.如以上权利要求中的任一项所述的方法,其特征在于,包括相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定最小子区域深度值zminsub的值:
zminsub=zminr+(zmaxr-zminr)*k/(2m-1)
其中,k在[0,1,2,...,2m-1]中,
以及相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定最大子区域深度值zmaxsub的值:
zmaxsub=zmaxr+(zminr-zmaxr)*s/(2n-1)
其中,s在[0,1,2,...,2n-1]中,
相对于最小区域深度值和最大区域深度值,n是用于对zmaxsub进行编码的位的数量,以及m是用于对zminsub进行编码的位的数量。
15.如权利要求1至13中的任一项所述的方法,其特征在于,包括相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定最小子区域深度值zminsub的值:
zminsub=zminr+(zmaxr-zminr)*k/2m
其中,k在[0,1,2,...,2n-1]中,
以及相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式确定最大子区域深度值zmaxsub的值:
zmaxsub=zmaxr+(zminr-zmaxr)*s/2n
其中,s在[0,1,2,...,2n-1]中,
其中,相对于最小区域深度值和最大区域深度值,m是用于对最小子区域深度值进行编码的位的数量,以及n是用于对最大子区域深度值进行编码的位的数量。
16.如权利要求1至13中的任一项所述的方法,其特征在于,包括
首先相对于最小区域深度值和最大区域深度值来确定最小子区域深度值,然后相对于最小子区域深度值和最大区域深度值来确定最大子区域深度值,或者
首先相对于最小区域深度值和最大区域深度值来确定最大子区域深度值,然后相对于最大子区域深度值和最小区域深度值来确定最小子区域深度值。
17.如权利要求1至13中的任一项所述的方法,其特征在于,包括相对于最小区域深度值zminr按照下式确定最小子区域深度值zminsub的值:
zminsub=zmin_1+(zmin_2-zmin_1)*k/(2N)或者
zminsub=zmin_1+(zmin_2-zmin_1)*k/(2N-1)
其中,k=0,1,...,2N-1,zmin_1=zminr,zmin_2≥zmin_1,以及N是用于存储各显示子区域的位值的位的数量。
18.如权利要求1至13中的任一项所述的方法,其特征在于,包括相对于最大区域深度值zmaxr按照下式确定最大子区域深度值zmaxsub的值:
zmaxsub=zmax_2+(zmin_1-zmin_2)*k/(2N)或者
zmaxsub=zmax_2+(zmin_1-zmin_2)*k/(2N-1)
其中,k=0,1,...,2N-1,zmax_2=zmaxr,zmax_2≥zmax_1,以及N是用于存储各显示子区域的位值的位的数量。
19.一种用于从包括显示器(2,14)的显示块(102)的深度值的深度缓冲器(16)中读出值或对其中写入值的处理装置(10),
由此,所述显示器分为多个显示区域(101),其中包括各包含多个所述显示块的多个显示子区域,
其中,所述处理装置包括:
存储器,包含至少一个显示区域的显示块的最小区域深度值和最大区域深度值中的至少一个;以及
至少一个显示子区域的显示块的最小子区域深度值和最大子区域深度值中的至少一个。
20.如权利要求19所述的处理装置,其特征在于,最小子区域深度值与最小区域深度值相关。
21.如权利要求19或20所述的处理装置,其特征在于,最大子区域深度值与最大区域深度值相关。
22.如权利要求19所述的处理装置,其特征在于,最小子区域深度值与最小和最大区域深度值相关。
23.如权利要求19或22所述的处理装置,其特征在于,最大子区域深度值与最大和最小区域深度值相关。
24.如权利要求19至23中的任一项所述的处理装置,其特征在于,最小子区域深度值大于或等于最小区域深度值,以及最大子区域深度值小于或等于最大区域深度值。
25.如权利要求19至24中的任一项所述的处理装置,其特征在于,最小子区域深度值小于或等于所述子区域的所有已存储深度值,以及所述最大子区域深度值大于或等于所述子区域的所有已存储深度值。
26.如权利要求19至25中的任一项所述的处理装置,其特征在于,包括:
计算单元,用于确定将在所述特定显示子区域中呈现的几何图元的最小深度值和最大深度值中的至少一个;以及
比较器,用于把最小深度值和最大深度值中的至少一个与最小子区域深度值和最大子区域深度值中的至少一个进行比较,以便确定对于所述显示子区域是否需要访问所述深度缓冲器(16)。
27.如权利要求26所述的处理装置,其特征在于,所述比较器配置成把最小深度值和最大深度值中的至少一个与最小子区域深度值和最大子区域深度值中的至少一个进行比较,以便确定对于所述特定显示子区域是否需要读取所述深度缓冲器(16)。
28.如权利要求26所述的处理装置,其特征在于,所述比较器配置成把最小深度值和最大深度值中的至少一个与最小区域深度值和最大区域深度值中的至少一个进行比较,以便确定对于所述特定显示区域是否需要读取所述深度缓冲器(16)。
29.如权利要求19至26中的任一项所述的处理装置,其特征在于,所述比较器配置成确定所述子区域中的至少一个显示块的至少一个几何图元深度值。
30.如权利要求29所述的处理装置,其特征在于,所述比较器配置成把所述至少一个显示块上的几何图元的深度值与最小子区域深度值和最大子区域深度值中的至少一个进行比较,以便确定对于所述显示块是否需要读取所述深度缓冲器(16)。
31.如权利要求29或28所述的处理装置,其特征在于,所述比较器配置成把所述至少一个显示块上的几何图元的深度值与最小区域深度值和最大区域深度值中的至少一个进行比较,以便确定对于所述显示块是否需要读取所述深度缓冲器(16)。
32.如权利要求19至31中的任一项所述的处理装置,其特征在于,最小子区域深度值zminsub的值相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式相关:
zminsub=zminr+(zmaxr-zminr)*k/(2m-1)
其中,k在[0,1,2,...,2n-1]中,
以及最大子区域深度值zmaxsub的值相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式相关:
zmaxsub=zmaxr+(zminr-zmaxr)*s/(2n-1)
其中,s在[0,1,2,...,2n-1]中,
相对于最小区域深度值和最大区域深度值,n是用于对zmaxsub进行编码的位的数量,以及m是用于对zminsub进行编码的位的数量。
33.如权利要求19至31中的任一项所述的处理装置,其特征在于,最小子区域深度值zminsub的值相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式相关:
zminsub=zminr+(zmaxr-zminr)*k/2m
其中,k在[0,1,2,...,2n-1]中,
以及最大子区域深度值zmaxsub的值相对于最小区域深度值zminr和最大区域深度值zmaxr按照下式相关:
zmaxsub=zmaxr+(zminr-zmaxr)*s/2n
其中,s在[0,1,2,...,2n-1]中,
其中,相对于最小区域深度值和最大区域深度值,m是用于对最小子区域深度值进行编码的位的数量,以及n是用于对最大子区域深度值进行编码的位的数量。
34.如权利要求19至31中的任一项所述的处理装置,其特征在于,所述处理装置配置成
首先相对于最小区域深度值和最大区域深度值来确定最小子区域深度值,然后相对于最小子区域深度值和最大区域深度值来确定最大子区域深度值,或者
首先相对于最小区域深度值和最大区域深度值来确定最大子区域深度值,然后相对于最大子区域深度值和最小区域深度值来确定最小子区域深度值。
35.如权利要求19至31中的任一项所述的处理装置,其特征在于,最小子区域深度值zminsub的值按照下式与最小区域深度值zminr相关:
zminsub=zmin_1+(zmin_2-zmin_1)*k/(2N)或者
zminsub=zmin_1+(zmin_2-zmin_1)*k/(2N-1)
其中,k=0,1,...,2N-1,zmin_1=zminr,zmin_2≥zmin_1,以及N是用于存储各显示子区域的位值的位的数量。
36.如权利要求19至31中的任一项所述的处理装置,其特征在于,最大子区域深度值zmaxsub的值按照下式与最大区域深度值zmaxr相关:
zmaxsub=zmax_2+(zmin_1-zmin_2)*k/(2N)或者
zmaxsub=zmax_2+(zmin_1-zmin_2)*k/(2N-1)
其中,k=0,1,...,2N-1,zmax_2=zmaxr,zmax_2≥zmax_1,以及N是用于存储各显示子区域的位值的位的数量。
37.一种包括如权利要求19至36中的任一项所述的处理装置(10)的电子设备(1)。
38.如权利要求37所述的设备,其特征在于,所述设备是移动无线电终端、寻呼机、通信装置、电子组织器、智能电话、个人数字助理或计算机。
39.如权利要求37所述的设备,其特征在于,所述设备是移动电话(1)。
40.一种计算机程序产品,包括计算机程序代码部件,当所述计算机程序代码部件由具有计算机能力的电子装置(1)运行时执行如权利要求1至18中的任一项所述的方法。
41.如权利要求40所述的计算机程序产品,其特征在于,所述计算机程序代码部件包含在计算机可读媒体(11)中。
CN2005800466532A 2004-11-19 2005-11-18 用于呈现三维图形的方法及装置 Active CN101103381B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP04027592A EP1659538B1 (en) 2004-11-19 2004-11-19 Method and device for rendering three-dimensional graphics
EP04027592.7 2004-11-19
US63105904P 2004-11-24 2004-11-24
US60/631,059 2004-11-24
PCT/EP2005/012377 WO2006053765A1 (en) 2004-11-19 2005-11-18 Method and device for rending three-dimensional graphics

Publications (2)

Publication Number Publication Date
CN101103381A true CN101103381A (zh) 2008-01-09
CN101103381B CN101103381B (zh) 2011-11-23

Family

ID=34927468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800466532A Active CN101103381B (zh) 2004-11-19 2005-11-18 用于呈现三维图形的方法及装置

Country Status (8)

Country Link
US (1) US8471851B2 (zh)
EP (1) EP1659538B1 (zh)
JP (1) JP4763712B2 (zh)
KR (1) KR101255429B1 (zh)
CN (1) CN101103381B (zh)
AT (1) ATE383627T1 (zh)
DE (1) DE602004011234T2 (zh)
WO (1) WO2006053765A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209923A (zh) * 2015-02-10 2017-09-26 高通股份有限公司 图形处理中的混合渲染

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2352078B1 (en) * 2008-10-01 2022-09-07 Sony Interactive Entertainment Inc. Information processing apparatus, information processing method, information recording medium, and program
US8659597B2 (en) * 2010-09-27 2014-02-25 Intel Corporation Multi-view ray tracing using edge detection and shader reuse
ES2834902T3 (es) * 2010-12-06 2021-06-21 Sun Patent Trust Método de decodificación de imagen, y dispositivo de decodificación de imágenes
EP2627093A3 (en) 2012-02-13 2013-10-02 Thomson Licensing Method and device for inserting a 3D graphics animation in a 3D stereo content
US9665973B2 (en) * 2012-11-20 2017-05-30 Intel Corporation Depth buffering
GB201223089D0 (en) 2012-12-20 2013-02-06 Imagination Tech Ltd Hidden culling in tile based computer generated graphics
US20140192158A1 (en) * 2013-01-04 2014-07-10 Microsoft Corporation Stereo Image Matching
US20140267327A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Graphics Processing using Multiple Primitives
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2524120B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237650A (en) * 1989-07-26 1993-08-17 Sun Microsystems, Inc. Method and apparatus for spatial anti-aliased depth cueing
JP2689046B2 (ja) * 1992-03-16 1997-12-10 日本電信電話株式会社 電波伝搬特性推定装置および表示装置
US5509110A (en) * 1993-04-26 1996-04-16 Loral Aerospace Corporation Method for tree-structured hierarchical occlusion in image generators
JP2763499B2 (ja) * 1994-11-30 1998-06-11 株式会社ナムコ 画像合成装置及び画像合成方法
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
DE69927269T2 (de) 1998-06-29 2006-06-29 Honeywell, Inc., Minneapolis Vorrichtung und verfahren zum erkennen und erzeugen grafischer elemente
US6313839B1 (en) * 1998-10-23 2001-11-06 Hewlett-Packard Company Method and apparatus for performing Z buffer depth comparison operations
GB2343598B (en) * 1998-11-06 2003-03-19 Videologic Ltd Image processing apparatus
US6359623B1 (en) * 1998-11-12 2002-03-19 Hewlett-Packard Company Method and apparatus for performing scan conversion in a computer graphics display system
SG108244A1 (en) * 2000-04-13 2005-01-28 Ibm A method and apparatus for search and display of hierarchically organized information of arbitrary depth using graphical user interfaces
US7450114B2 (en) * 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US7301537B2 (en) * 2002-12-20 2007-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal
EP1590769A4 (en) * 2003-01-28 2007-04-04 Lucid Information Technology Ltd METHOD AND SYSTEM FOR COMPOSING THREE-DIMENSIONAL GRAPHICS USING AN ASSOCIATIVE DECISION MECHANISM
US20050219252A1 (en) * 2004-03-30 2005-10-06 Buxton Mark J Two-dimensional buffer, texture and frame buffer decompression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209923A (zh) * 2015-02-10 2017-09-26 高通股份有限公司 图形处理中的混合渲染
CN107209923B (zh) * 2015-02-10 2021-07-06 高通股份有限公司 图形处理中的混合渲染

Also Published As

Publication number Publication date
ATE383627T1 (de) 2008-01-15
JP2008521103A (ja) 2008-06-19
EP1659538A1 (en) 2006-05-24
KR101255429B1 (ko) 2013-04-17
WO2006053765A1 (en) 2006-05-26
EP1659538B1 (en) 2008-01-09
CN101103381B (zh) 2011-11-23
US8471851B2 (en) 2013-06-25
DE602004011234D1 (de) 2008-02-21
DE602004011234T2 (de) 2009-01-02
KR20070086367A (ko) 2007-08-27
JP4763712B2 (ja) 2011-08-31
US20090135193A1 (en) 2009-05-28

Similar Documents

Publication Publication Date Title
CN101103381B (zh) 用于呈现三维图形的方法及装置
CN101496066B (zh) 具有经扩充顶点高速缓冲存储器的图形处理单元
US6492991B1 (en) Method and apparatus for controlling compressed Z information in a video graphics system
US8089486B2 (en) Tiled prefetched and cached depth buffer
US20080259076A1 (en) Tile Based Graphics Rendering
US7218317B2 (en) Mechanism for reducing Z buffer traffic in three-dimensional graphics processing
CN101896941A (zh) 统一的压缩/解压缩图形体系结构
JP2007525768A (ja) テクスチャ要求のためのレジスタベースのキューイング
US8031194B2 (en) Intelligent configurable graphics bandwidth modulator
US20110164038A1 (en) Apparatus and method for tile-based rendering
US8994727B2 (en) Map symbol drawing device
CN104756150A (zh) 深度缓冲
US20110069065A1 (en) Image processing apparatus, computer readable medium and method thereof
JP2882465B2 (ja) 画像生成方法およびその装置
US8411094B2 (en) Rendering module for bidimensional graphics
JP5318202B2 (ja) 画像生成装置、画像生成方法及び集積回路
CN101014982A (zh) 绘制装置
CN114461406A (zh) DMA OpenGL优化方法
US20200364926A1 (en) Methods and apparatus for adaptive object space shading
CN116433862A (zh) 一种3d全球地形的模型架构方法及装置
US11798218B2 (en) Methods and apparatus for pixel packing
US11748933B2 (en) Method for performing shader occupancy for small primitives
US7791612B2 (en) Fully associative texture cache having content addressable memory and method for use thereof
CN109949360A (zh) 一种道路中心线的提取方法、装置、电子设备及存储介质
JP2003196674A (ja) 画像処理方法、画像処理装置及びコンピュータ読み取り可能記憶媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1117258

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1117258

Country of ref document: HK