CN101620743B - 用隐藏面消除的图形处理 - Google Patents
用隐藏面消除的图形处理 Download PDFInfo
- Publication number
- CN101620743B CN101620743B CN200910159424.1A CN200910159424A CN101620743B CN 101620743 B CN101620743 B CN 101620743B CN 200910159424 A CN200910159424 A CN 200910159424A CN 101620743 B CN101620743 B CN 101620743B
- Authority
- CN
- China
- Prior art keywords
- pixel
- group
- pixels
- buffer
- worst case
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
图形处理中的隐藏面消除的快速深度测试可通过对一组像素的代表像素进行深度测试来实现。在一个实施例中,可识别一组像素的最坏情况像素。然后可将最坏情况像素与分级结构Z缓冲器中的最坏情况值进行比较。根据结果,该组像素的整个集合可通过或者未通过深度测试。因此,在一些情况下,没有必要对每个像素进行深度测试。
Description
技术领域
这一般涉及集成电路处理装置的图形处理。
背景技术
在图形处理中,三维对象可表示为一系列具有三个点的三角形。三个点可用于建立表示包含三个点的平面的所谓平面方程。平面方程指明各三角形点相对于显示屏幕平面的取向。
隐藏面消除或Z缓冲跟踪像素的深度,以减少对于隐藏在画面中其它多边形后面的多边形所执行的处理。
识别和挑选多边形的遮挡像素可呈现性能提高的较大可能性。
发明内容
根据本发明一个方面,提供一种方法,包括:使用一组像素中少于所有的像素对所述组的所有像素进行深度测试。
根据本发明另一个方面,提供一种设备,包括:帧缓冲器;以及与所述帧缓冲器耦合的图形处理器,所述图形处理器用于使用一组像素中少于所有的像素对所述组的所有像素进行深度测试。
附图说明
图1是根据一个实施例的基于处理器的装置的示意图示;
图2是根据本发明一个实施例可用的像素块的图示;
图3是根据本发明的一个实施例、用于深度测试的分析的图示;以及
图4是根据一个实施例的深度测试的流程图。
具体实施方式
参照图1,根据本发明的一个实施例,基于处理器的系统能够进行高性能三维图形处理。在一个实施例中,系统包括主处理器1、芯片组核逻辑10、图形处理器12、帧缓冲器14、Z缓冲器16、HZ或分级结构Z缓冲器17、显示屏幕18、键盘/鼠标20和存储器30。存储器30可包括任何适当的存储器存储装置,以及在一个实施例中包括采用随机存取存储器芯片所实现的主存储器32、一个或多个硬盘驱动器34以及例如磁盘或光盘等可移动介质36。
处理器1可经由总线3与芯片组核逻辑耦合。经由总线5与图形处理器12耦合的芯片组核逻辑10可经由总线6与帧缓冲器以及Z缓冲器16和分级结构Z缓冲器17耦合。帧缓冲器14、Z缓冲器16和分级结构Z缓冲器17经由总线7与显示屏幕18耦合,以及显示屏幕18经由总线8与键盘/鼠标20耦合。
例如音频喇叭、话筒、操纵杆、方向盘、打印机、乐器数字接口键盘、虚拟现实罩(hood)、活动座位和环境等的其它用户接口元件可以是处理系统的组成部分,这里例举几种。
图1所示的体系结构是示范性的,并且仅作为根据本发明的一些实施例可利用的许多处理体系结构其中之一。存储器30可构成作为有源或无源的任何装置、包含用于指示处理器的计算机指令或者包含计算机数据的计算机可读介质,例如硬盘、软盘、压缩盘、随机存取存储器、光存储器或者任何半导体存储器。
根据本发明的一些实施例,一组像素中少于所有的像素可经过深度测试,而不是测试该组所有像素。深度测试是特定像素到显示屏幕的距离的测试。深度测试可用于确定被遮挡的像素。多边形的被遮挡的像素无需处理。遮挡像素处理的这种消除可提高图形性能。
参照图2,多个像素可编组为所说的块。块可包括毗邻的多个像素,通常至少四个像素。块可以是矩形,但也可使用其它形状。通过分析块的代表像素的深度,在对于块作为整体的许多情况下,可确定该块是否会被遮挡。因此,可加速深度测试,因为对每一个像素的深度测试不一定在每种情况下进行。同样,在对于块作为整体的许多情况下,可确定该块没有被遮挡,因此该块中的像素没有被遮挡,因而不需要测试每个像素。
因此,参照图2,在一个实施例中,第一组矩形排列的16个像素38可构成跨度0,以及第二组矩形排列的16个像素38构成跨度1。在这个实施例中,在被分析的块构成跨度0和1,其中包括32个像素,它们在一些情况下可作为一组来分析,以便提高深度测试速度。
包括例如数据流经过图形处理器12的图形流水线可提供表示三角形的数据,其中三角形又由三个点表示。各点与深度或Z值关联。
平面方程表征三角形中的各像素的深度,其中Z为深度:
Z=C0+CX(x-Xref)+Cy(y-Yref)。
因此,平面方程定义形成三角形的像素的平面,并且定义那个平面相对于显示屏幕的倾斜。在一些实施例中,系数Cx和Cy、具体来说是它们的符号用于确定在使用矩形像素阵列的块中整个块的最坏情况角。最坏情况角是具有块中的任何像素的最小和最大深度的角。
如图2所示,在这个实施例中,X轴由左至右增加,而Y轴由上到下增加。因此,例如,像素D具有比标记为A、B或C的像素更高的X值。以及像素E具有比像素A更高的Y轴。像素H具有比像素A更高的Y值和更高的X值。
分级结构Z缓冲器或HZ缓冲器17(图1)由Z缓冲器16构成,并且累积在一个实施例中为一个跨度的像素块的所有先前渲染像素位置的最小和最大值。然后,后续像素位置使它们的多边形对照分级结构Z缓冲器17中的值来测试,以便查看那些多边形是否被隐藏。如果它们被隐藏,则它们可被剔除,从而产生处理节省。
当对照分级结构Z缓冲器中的值进行测试时,按常规在图形处理中使用八个不同测试。利用“少于”测试、“少于或等于”测试、“大于”测试、“大于或等于”测试、“等于”测试、“不等于”测试、“始终通过”测试和“从不通过”测试。一般来说,“始终通过”和“从不通过”涉及不进行任何测试,并且在本上下文中不是关注点。
图3示出在一个实施例中如何使用矩形像素阵列来进行深度测试的示例。测试部分地基于各跨度是否为非零。如果该跨度中的至少一个像素实际上被“点亮”或激活,则跨度为非零。如果该跨度中没有像素被点亮,则该跨度在深度测试期间可忽略。
测试还确定平面方程系数CX是否大于或等于0(即为正数)以及平面方向系数CY是否大于或等于0(即为正数)。然后,在最左和最右列中识别由跨度0和跨度1组成的块的最小角和最大角。(本发明的实施例中实际上可以不使用图3所定义的列或结构,但提供它主要是为了理解和说明本发明的实施例)。
因此,图3中的第一水平线是任一个跨度中没有像素被点亮的情形。因此,第一线条不是本上下文中的关注点。
第五水平线是跨度0中没有像素被点亮而跨度1中至少一个像素被点亮的情形。在这种情况下,系数CX和CY均为正数。在这种情况下,给定X和Y如图2所示增加的方式,则最小角为像素C,而最大角显然为像素H。
一旦确定了最小和最大角,则在一个实施例中,下一个步骤是对照分级结构Z缓冲器17中当前存储的值来分析给定组的像素的最小和最大角。例如,如果图形系统的应用使用”少于”测试,则低于分级结构Z缓冲器中的最小深度值的任何深度通过,而大于最大深度的任何深度值未通过。在这种情况下,将最小角与分级结构Z缓冲器中的最大值进行比较。如果最小角大于分级结构Z缓冲器最大值,则块中的每个像素大于分级结构Z缓冲器最大值,并且块中的像素均未通过。然后,将在解决的块中的最大角与分级结构Z缓冲器最小值进行比较。如果最大角的值小于分级结构Z缓冲器最小值,则块中的所有像素均小于分级结构Z缓冲器最小值,并且在这种情况下,该块的所有像素一组通过,而无需分析每个像素。
如果这些比较均不起作用,则对于本发明的实施例是可能的节省不适用,并且按常规将该块中的每个像素的值对照分级结构Z缓冲器中的值逐个进行比较。在这种情况下,不可实现时间节省,但在整体上,由于本文所述的测试往往是成功的,所以在一些实施例中,可实现明显的时间节省。
参照图4,根据一个实施例,用于实现快速深度测试39的序列包括序列。在一个实施例中,该序列可通过软件来实现。在这种情况下,表示序列39的软件可存储在任何适当的存储装置或存储器中,包括主存储器32,如图1所示。在这种情况下,软件序列存储在计算机可执行的计算机可读介质中,其中计算机包括处理器1、处理器12或者计算机或基于处理器的系统的任何其它适当处理器中的一个或多个。
如框40所示,在一个实施例中,块中的最小和最大像素位置使用矩形块来确定。在一些情况下,还可确定块中的像素的任一个或者组成该块的任何跨度中的像素的任一个是否被点亮。如果没有像素被点亮,则可忽略该跨度或块。
然后,对照分级结构Z缓冲器17中的最小和最大值来测试表示块的最小和最大值的所选像素位置,如框42所示。所进行的准确测试取决于适用的应用所实现的系统的类型。在一个示例中,可利用”少于”测试,但是也可利用其它测试。在这类情况下,能够根据一组像素的最小和最大值来推断是否所有像素会通过或者未通过深度测试。
如图4所示,在框44,检查确定作为整体的块是通过还是未通过。如果通过,则进行该块的处理,以及可获取下一个块并且重复进行处理。如果该块既不是通过或也不是未通过,则进行常规深度测试(框46),从而逐个像素地估计块的各像素。在这种情况下,将块作为整体来处理并且消除对测试块中的每个像素的需要的可能性不是可能的。
块的大小和组成跨度经受相当大的变化,但是一般来说,在任何分析中使用至少四个像素看来是有意义的。另外,跨度的数量可自2开始改变,并且可以是一个跨度以上的任何数量。跨度中的一些像素未点亮是无关紧要的。另外,在一个实施例中,可并行分析两个集合的八个像素。
本文所述的图形处理技术可通过各种硬件体系结构来实现。例如,图形功能性可集成在芯片组中。备选地,可使用分立图形处理器。作为又一个实施例,图形功能可通过包括多核处理器的通用处理器来实现。
本说明书中提到“一个实施例”或“实施例”表示结合该实施例所述的具体特征、结构或特性包含在本发明所包含的至少一个实现中。因此,词语“一个实施例”或“在一个实施例中”的出现不一定都表示同一个实施例。此外,具体特征、结构或特性可通过与所示具体实施例不同的其它适当形式来创立,并且所有这类形式均可包含在本申请的权利要求书中。
虽然针对有限数量的实施例描述了本发明,但是本领域的技术人员将会从其中知道大量修改和变更。所附权利要求书意在涵盖落入本发明的真实精神和范围之内的所有这类修改和变更。
Claims (19)
1.一种方法,包括:
使用一组像素中少于所有的像素对所述组的所有像素进行深度测试,
其中,分级结构Z缓冲器累积一个跨度的像素块的所有先前渲染像素位置的最小和最大值,然后,后续像素位置使它们的多边形对照分级结构Z缓冲器中的值来测试,以便查看所述多边形是否被隐藏,如果所述多边形被隐藏,则它们被剔除。
2.如权利要求1所述的方法,包括:使用平面方程的系数来预测所述一组像素中的最坏情况像素。
3.如权利要求2所述的方法,包括:使用所述平面方程的系数来确定所述一组像素中的两个最坏情况像素。
4.如权利要求3所述的方法,其中,所述一组像素是矩形像素阵列,所述最坏情况像素对应于所述矩形像素阵列的角。
5.如权利要求4所述的方法,包括:使用两个矩形像素跨度来确定所述最坏情况。
6.如权利要求2所述的方法,包括:确定所述组中是否至少一个像素被点亮。
7.如权利要求3所述的方法,包括:将所述组中最小和最大深度值像素识别为所述最坏情况像素。
8.如权利要求7所述的方法,包括:将所述一组像素中所述最小和最大深度值与分级结构Z缓冲器中存储的最小和最大值进行比较。
9.如权利要求8所述的方法,包括:对至少两个像素块并行进行深度测试。
10.一种设备,包括:
帧缓冲器;
与所述帧缓冲器耦合的图形处理器,所述图形处理器用于使用一组像素中少于所有的像素对所述组的所有像素进行深度测试;以及
与所述图形处理器耦合的分级结构Z缓冲器,所述图形处理器用于将一组像素中最小和最大深度值与所述分级结构Z缓冲器中存储的最小和最大值进行比较,其中,分级结构Z缓冲器累积一个跨度的像素块的所有先前渲染像素位置的最小和最大值,然后,后续像素位置使它们的多边形对照分级结构Z缓冲器中的值来测试,以便查看所述多边形是否被隐藏,如果所述多边形被隐藏,则它们被剔除。
11.如权利要求10所述的设备,所述图形处理器用于使用平面方程的系数来预测所述一组像素中的最坏情况像素。
12.如权利要求11所述的设备,所述处理器用于使用所述平面方程的系数来确定所述一组像素中的两个最坏情况像素。
13.如权利要求12所述的设备,所述处理器用于使用矩形像素阵列中的一组像素,以及所述最坏情况像素对应于所述矩形像素阵列的角。
14.如权利要求13所述的设备,所述处理器用于使用两个矩形像素跨度来确定所述最坏情况。
15.如权利要求10所述的设备,所述处理器用于确定是否所述组的至少一个像素被点亮。
16.如权利要求12所述的设备,所述处理器用于将所述组的最小和最大深度值像素识别为所述最坏情况像素。
17.如权利要求10所述的设备,所述设备用于对至少两个像素块并行进行深度测试。
18.如权利要求10所述的设备,其中,所述帧缓冲器包括分级结构Z缓冲器。
19.如权利要求10所述的设备,其中,所述图形处理器用于使用矩阵阵列中的一组像素,并且识别所述矩形阵列中具有最大和最小深度值的角像素。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/215,920 US20090322747A1 (en) | 2008-06-30 | 2008-06-30 | Graphics processing with hidden surface removal |
US12/215920 | 2008-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101620743A CN101620743A (zh) | 2010-01-06 |
CN101620743B true CN101620743B (zh) | 2015-06-17 |
Family
ID=40940476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910159424.1A Expired - Fee Related CN101620743B (zh) | 2008-06-30 | 2009-06-30 | 用隐藏面消除的图形处理 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090322747A1 (zh) |
EP (1) | EP2141659B1 (zh) |
CN (1) | CN101620743B (zh) |
AT (1) | ATE520103T1 (zh) |
RU (1) | RU2425420C2 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090322747A1 (en) * | 2008-06-30 | 2009-12-31 | Robert Farrell | Graphics processing with hidden surface removal |
KR102282190B1 (ko) | 2014-09-22 | 2021-07-27 | 삼성전자 주식회사 | 렌더링 장치 및 방법 |
US10002455B2 (en) * | 2015-04-20 | 2018-06-19 | Intel Corporation | Optimized depth buffer cache apparatus and method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579455A (en) * | 1993-07-30 | 1996-11-26 | Apple Computer, Inc. | Rendering of 3D scenes on a display using hierarchical z-buffer visibility |
CN1655192A (zh) * | 2004-02-10 | 2005-08-17 | 三星电子株式会社 | 基于深度图像的三维图形数据的高速显像的装置和方法 |
US7030877B1 (en) * | 2002-03-04 | 2006-04-18 | Advanced Micro Devices, Inc. | Computer graphics processing system, computer memory, and method of use with computer graphics processing system utilizing hierarchical image depth buffer |
US7375727B1 (en) * | 1998-07-22 | 2008-05-20 | Nvidia Corporation | System, method and computer program product for geometrically transforming geometric objects |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5568401A (en) * | 1993-09-20 | 1996-10-22 | International Business Machines Corporation | System and method for transforming program code for efficient pixel processing |
US6636215B1 (en) * | 1998-07-22 | 2003-10-21 | Nvidia Corporation | Hardware-assisted z-pyramid creation for host-based occlusion culling |
US6480205B1 (en) * | 1998-07-22 | 2002-11-12 | Nvidia Corporation | Method and apparatus for occlusion culling in graphics systems |
US6313839B1 (en) * | 1998-10-23 | 2001-11-06 | Hewlett-Packard Company | Method and apparatus for performing Z buffer depth comparison operations |
US6518974B2 (en) * | 1999-07-16 | 2003-02-11 | Intel Corporation | Pixel engine |
US6271851B1 (en) * | 1999-07-26 | 2001-08-07 | Silicon Integrated Systems Corporation | Z-buffer pre-test for 3D graphic performance enhancement |
US6525726B1 (en) * | 1999-11-02 | 2003-02-25 | Intel Corporation | Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture |
US6498605B2 (en) * | 1999-11-18 | 2002-12-24 | Intel Corporation | Pixel span depth buffer |
US6999076B2 (en) * | 2001-10-29 | 2006-02-14 | Ati Technologies, Inc. | System, method, and apparatus for early culling |
US7145565B2 (en) * | 2003-02-27 | 2006-12-05 | Nvidia Corporation | Depth bounds testing |
JP4284285B2 (ja) * | 2005-02-24 | 2009-06-24 | 株式会社東芝 | 画像処理装置、画像処理方法および画像処理プログラム |
JP4142065B2 (ja) * | 2006-05-22 | 2008-08-27 | 株式会社ソニー・コンピュータエンタテインメント | 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法 |
US8184118B2 (en) * | 2007-05-01 | 2012-05-22 | Advanced Micro Devices, Inc. | Depth operations |
US20090322747A1 (en) * | 2008-06-30 | 2009-12-31 | Robert Farrell | Graphics processing with hidden surface removal |
-
2008
- 2008-06-30 US US12/215,920 patent/US20090322747A1/en not_active Abandoned
-
2009
- 2009-06-29 EP EP09251673A patent/EP2141659B1/en not_active Not-in-force
- 2009-06-29 AT AT09251673T patent/ATE520103T1/de not_active IP Right Cessation
- 2009-06-29 RU RU2009124712/09A patent/RU2425420C2/ru not_active IP Right Cessation
- 2009-06-30 CN CN200910159424.1A patent/CN101620743B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579455A (en) * | 1993-07-30 | 1996-11-26 | Apple Computer, Inc. | Rendering of 3D scenes on a display using hierarchical z-buffer visibility |
US7375727B1 (en) * | 1998-07-22 | 2008-05-20 | Nvidia Corporation | System, method and computer program product for geometrically transforming geometric objects |
US7030877B1 (en) * | 2002-03-04 | 2006-04-18 | Advanced Micro Devices, Inc. | Computer graphics processing system, computer memory, and method of use with computer graphics processing system utilizing hierarchical image depth buffer |
CN1655192A (zh) * | 2004-02-10 | 2005-08-17 | 三星电子株式会社 | 基于深度图像的三维图形数据的高速显像的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2141659B1 (en) | 2011-08-10 |
EP2141659A1 (en) | 2010-01-06 |
RU2425420C2 (ru) | 2011-07-27 |
ATE520103T1 (de) | 2011-08-15 |
US20090322747A1 (en) | 2009-12-31 |
RU2009124712A (ru) | 2011-01-10 |
CN101620743A (zh) | 2010-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7079143B2 (en) | Waveform drawing system and method | |
KR100893637B1 (ko) | 가속화된 개시 타일 검색 | |
JP5866457B2 (ja) | オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替 | |
KR101721861B1 (ko) | 타일화 기반 아키텍처들에 대한 최적화된 멀티-패스 렌더링 | |
US7505043B2 (en) | Cache efficient rasterization of graphics data | |
US7898551B2 (en) | Systems and methods for performing a bank swizzle operation to reduce bank collisions | |
JP4280270B2 (ja) | 幾何プリミティブのインデックスを外す方法、ラスタ化装置、コンピュータ可読媒体 | |
US7348988B2 (en) | Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment | |
US8345064B2 (en) | Method and system for tile binning using half-plane edge function | |
US8994727B2 (en) | Map symbol drawing device | |
JP2015531918A (ja) | ヒットテスト方法および装置 | |
JP2006338658A (ja) | グラフィックス処理装置と処理方法、及びその記録媒体 | |
CN106067187B (zh) | 在图形处理系统中对基元分块 | |
WO2022066948A1 (en) | Depth buffer pre-pass | |
CN101620743B (zh) | 用隐藏面消除的图形处理 | |
US20170132832A1 (en) | Hardware accelerated simulation of atmospheric scattering | |
KR20100068603A (ko) | 밉맵 생성 장치 및 방법 | |
US7737981B2 (en) | Information processing apparatus | |
TW201246063A (en) | Stream compaction for rasterization | |
KR100441080B1 (ko) | 3차원 그래픽 가속기에서 픽셀 캐쉬 구조의 동작방법 | |
US20080165208A1 (en) | 3-Dimensional graphic processing apparatus and operating method thereof | |
US9142039B2 (en) | Method and apparatus for improving speed of rasterizing transparent images | |
CN110223369B (zh) | Tbr架构的帧缓存写回方法、装置及计算机存储介质 | |
US11468633B1 (en) | Methods and systems for tile-based graphics processing | |
EP2169623A1 (en) | Semiconductor device, graphics controller, and information processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150617 Termination date: 20210630 |
|
CF01 | Termination of patent right due to non-payment of annual fee |