JP5483893B2 - Method and apparatus for processing computer graphics - Google Patents

Method and apparatus for processing computer graphics Download PDF

Info

Publication number
JP5483893B2
JP5483893B2 JP2009020019A JP2009020019A JP5483893B2 JP 5483893 B2 JP5483893 B2 JP 5483893B2 JP 2009020019 A JP2009020019 A JP 2009020019A JP 2009020019 A JP2009020019 A JP 2009020019A JP 5483893 B2 JP5483893 B2 JP 5483893B2
Authority
JP
Japan
Prior art keywords
fragment
alpha
fragments
sampling
test
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.)
Active
Application number
JP2009020019A
Other languages
Japanese (ja)
Other versions
JP2009181582A (en
Inventor
ヨーン・ニスタッド
Original Assignee
アーム・ノルウェー・アー・エス
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 アーム・ノルウェー・アー・エス filed Critical アーム・ノルウェー・アー・エス
Publication of JP2009181582A publication Critical patent/JP2009181582A/en
Application granted granted Critical
Publication of JP5483893B2 publication Critical patent/JP5483893B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Description

本発明は、コンピュータグラフィックスの処理に関し、具体的には、コンピュータグラフィックスを処理する時にアンチエイリアシングを実行する方法および装置に関する。   The present invention relates to computer graphics processing and, more particularly, to a method and apparatus for performing anti-aliasing when processing computer graphics.

本発明を、特に3次元グラフィックスの処理に関して説明するが、当業者によって了解されるとおり、本発明は、2次元グラフィックスの処理にも同等に適用可能である。   Although the present invention will be described with particular reference to processing 3D graphics, as will be appreciated by those skilled in the art, the present invention is equally applicable to processing 2D graphics.

当技術分野で既知のとおり、3Dグラフィックス処理は、通常、まず表示されるシーンを複数の類似する基本コンポーネント(いわゆる「プリミティブ(primitive)」)に分割して、3Dグラフィックス処理動作をより簡単に実行できるようにすることによって実行される。これらの「プリミティブ」は、通常、三角形などの単純なポリゴン(多角形)の形であり、通常は、その頂点を定義することによって記述される。   As is known in the art, 3D graphics processing usually simplifies 3D graphics processing operations by first dividing the displayed scene into multiple similar basic components (so-called “primitives”). It is executed by making it possible to execute. These “primitives” are usually in the form of simple polygons (polygons) such as triangles and are usually described by defining their vertices.

表示すべきシーンを複数のグラフィックスプリミティブに分割したならば、それらのグラフィックスプリミティブは、通常、当技術分野で既知のとおり、通常は「フラグメント」と称する別個のグラフィックエンティティまたはグラフィック要素にさらに分割され、これらのフラグメントに対して、実際のグラフィックス処理動作(レンダリング動作など)が実行される。そのようなグラフィックスフラグメントのそれぞれは、プリミティブ内の所定の1つまたは複数の位置を表し、これらに対応し、事実上、当該の1つまたは複数の位置のデータ(色値および深さ値など)のセットを含む。   If the scene to be displayed is divided into multiple graphics primitives, the graphics primitives are further divided into separate graphic entities or graphic elements, usually referred to as "fragments", as is known in the art. Then, an actual graphics processing operation (rendering operation or the like) is performed on these fragments. Each such graphics fragment represents and corresponds to a given one or more positions within the primitive, in effect data for that position or positions (such as color and depth values). ) Set.

各グラフィックスフラグメント(データ要素)は、最終的なディスプレイ内の単一のピクセル(picture element、画素)に対応するものとすることができる(ピクセルは表示される最終的なピクチャ内の特異点なので、3Dグラフィックスプロセッサが操作する「フラグメント」とディスプレイ内のピクセルとの間の1対1写像があり得るので)。しかし、たとえば、特に最終イメージを表示する前にレンダリングされたイメージに対してダウンスケーリングなどの特定の形の後処理が実行される場合に、「フラグメント」と「ピクセル」との間に1対1対応がない場合があり得る。   Each graphics fragment (data element) can correspond to a single picture element in the final display (since a pixel is a singular point in the final picture to be displayed) , Because there can be a one-to-one mapping between the “fragments” operated by the 3D graphics processor and the pixels in the display). However, there is a one-to-one relationship between “fragments” and “pixels”, for example, when certain forms of post-processing, such as downscaling, are performed on the rendered image, especially before displaying the final image. There may be no correspondence.

したがって、通常実行される3Dグラフィックス処理の2つの態様は、グラフィックスフラグメント位置データへのグラフィックス「プリミティブ」(またはポリゴン)位置データの「ラスタ化」(すなわち、表示されるシーン内の各プリミティブを表すのに使用されるグラフィックスフラグメントの(x,y)位置の判定)と、その後の、ディスプレイスクリーンでの表示のための「ラスタ化された」フラグメントの「レンダリング」(すなわち、フラグメントのカラリング、シェーディングなど)とである。   Thus, two aspects of commonly performed 3D graphics processing are the "rasterization" of graphics "primitive" (or polygon) position data into graphics fragment position data (i.e., each primitive in the displayed scene (Determining the (x, y) position of the graphics fragment used to represent the), and then “rendering” the “rasterized” fragment for display on the display screen (ie, fragment coloring) , Shading, etc.).

(3Dグラフィックス文献では、用語「ラスタ化」または「ラスタライゼーション」が、時々、フラグメントへのプリミティブ変換とレンダリングとの両方を意味するのに使用される。しかし、本明細書では、「ラスタ化」は、フラグメントアドレスへのプリミティブデータの変換だけを指すのに使用される。)   (In 3D graphics literature, the term “rasterization” or “rasterization” is sometimes used to mean both primitive conversion to fragment and rendering. However, in this document, “rasterization” "Is used to refer only to the conversion of primitive data to fragment addresses.)

ラスタ化プロセスは、基本的に、事実上表示されるシーンにオーバーレイされるサンプリングポイントのアレイについて、当該のプリミティブがアレイ内のサンプリングポイントのうちのどれをカバーするかを判定することを伴う。次に、適当な(x,y)位置(1つまたは複数)を有するフラグメントが、そのプリミティブによってカバーされることがわかったサンプリングポイントをレンダリングするために生成される。   The rasterization process basically involves determining, for an array of sampling points that are overlaid on the scene to be displayed, which of the sampling points in the array the primitive concerned covers. Next, fragments with the appropriate (x, y) position (s) are generated to render the sampling points found to be covered by the primitive.

レンダリングプロセスは、基本的に、各フラグメントを表示するのに必要なデータを導出することを伴う。そのようなデータは、通常、各フラグメントの赤、緑、および青(RGB)色値(基本的にディスプレイ上のフラグメントの色を決定する)と、各フラグメントのいわゆる「アルファ」(透明度)値とを含む。   The rendering process basically involves deriving the data necessary to display each fragment. Such data typically includes the red, green, and blue (RGB) color values of each fragment (which basically determines the color of the fragment on the display) and the so-called `` alpha '' (transparency) value of each fragment. including.

当技術分野で既知のとおり、このデータは、通常、直線の形またはパイプライン化された形で次々に各フラグメント(すなわち、そのフラグメントのデータ)に対して個々のレンダリングプロセス(ステップ)を実行することによって導出される。したがって、たとえば、各フラグメントは、まず、たとえばフラグメントの(x,y)位置とそのフラグメントが属するプリミティブの頂点について記録された色データおよび透明度データとに基づいて、初期RGB値およびアルファ値を割り当てられる。テクスチャリング、フォギング、およびブレンディングなどの動作が、その後、フラグメントデータに対して連続して実行される。これらの動作は、フラグメントごとにセットされた初期RGB値およびアルファ値を変更し、最後の処理動作の後に、各フラグメントが、そのフラグメントをディスプレイスクリーン上に正しく表示することを可能にするのに適当なRGB値およびアルファ値のセットを有するようにする。   As is known in the art, this data typically performs an individual rendering process (step) for each fragment (i.e., the data for that fragment) one after another in a linear or pipelined form. Is derived by Thus, for example, each fragment is initially assigned an initial RGB value and alpha value, for example based on the (x, y) position of the fragment and the color and transparency data recorded for the vertex of the primitive to which the fragment belongs. . Operations such as texturing, fogging, and blending are then performed sequentially on the fragment data. These actions change the initial RGB and alpha values set for each fragment and are appropriate to allow each fragment to display it correctly on the display screen after the last processing action. Have a set of RGB and alpha values.

表示のためにグラフィックスを処理する時(コンピュータ生成イメージを表示する時)に出会う問題の1つは、表示されるイメージが、使用されるディスプレイ、たとえばモニタまたはプリンタの別個のピクセル位置に量子化されることである。これは、表示されるイメージの解像度を制限し、たとえば出力ディスプレイデバイスの解像度が滑らかな線を表示するのに十分には高くない場合に、望まれない視覚的アーチファクトを作る可能性がある。これらの影響を、一般に「エイリアシング」と称する。   One of the problems encountered when processing graphics for display (when displaying computer-generated images) is that the displayed image is quantized to a separate pixel location on the display being used, for example a monitor or printer It is to be done. This limits the resolution of the displayed image and can create unwanted visual artifacts, for example if the resolution of the output display device is not high enough to display smooth lines. These effects are generally referred to as “aliasing”.

図1に、そのようなエイリアシングの影響を示す。図1の左側に、描かれるべきイメージを示し、右側に、表示される実際のイメージを示す。図からわかるように、白いオブジェクトの所望の滑らかな曲線が、実際にはディスプレイではジグザグの外見を有する。これがエイリアシングである。(図1では、各正方形が、ディスプレイの1ピクセルを表し、十字が、ピクセル位置の色値が決定される(サンプリングされる)各(x,y)ピクセル位置の点を表す。たとえば、図1のピクセルAは、そのピクセル位置での色サンプリングポイントが白オブジェクト内に含まれるので、完全に白として描かれる。図1では、重要なピクセルのサンプル十字だけが描かれているが、実際には、すべてのピクセルがサンプリングされることに留意されたい)。   Figure 1 shows the effect of such aliasing. The left side of FIG. 1 shows the image to be drawn, and the right side shows the actual image to be displayed. As can be seen, the desired smooth curve of the white object actually has a zigzag appearance on the display. This is aliasing. (In FIG. 1, each square represents one pixel of the display, and the cross represents a point at each (x, y) pixel location at which the color value of the pixel location is determined (sampled). Pixel A of is drawn completely white because the color sampling point at that pixel location is contained within the white object, but in Figure 1 only the sample cross of the important pixel is drawn, but in practice Note that all pixels are sampled).

すべてのエイリアシングアーチファクト(裸眼に可視であり得る)は、十分に高解像度のディスプレイを使用することによって除去できるはずである。しかし、電子ディスプレイおよびプリンタの解像度は、通常は限られており、したがって、多数のグラフィックス処理システムは、他の技法を使用して、エイリアシングの影響を除去するか減らすことを試みる。そのような技法を、通常はアンチエイリアシング技法と称する。   All aliasing artifacts (which may be visible to the naked eye) should be able to be removed by using a sufficiently high resolution display. However, the resolution of electronic displays and printers is usually limited, so many graphics processing systems attempt to remove or reduce aliasing effects using other techniques. Such a technique is usually referred to as an anti-aliasing technique.

1つの既知のアンチエイリアシング技法を、スーパーサンプリングまたはオーバーサンプリングと称する。   One known anti-aliasing technique is referred to as supersampling or oversampling.

そのような配置では、最終的なディスプレイの1ピクセルあたりに複数のサンプリングポイント(位置)があり、別々の色サンプルが、(カバーされる)個々のサンプリングポイントごとに(たとえば、別々のフラグメントとして各サンプリングポイントをレンダリングすることによって)とられる。これの効果は、異なる色サンプルが、レンダリングプロセス中に、1プリミティブによってカバーされる1ピクセルのサンプリングポイントごとにとられることである。   In such an arrangement, there are multiple sampling points (positions) per pixel in the final display, and separate color samples can be used for each individual sampling point (covered) (e.g., each as a separate fragment). Taken by rendering sampling points). The effect of this is that a different color sample is taken for each pixel sampling point covered by one primitive during the rendering process.

これは、複数の色サンプルが、ディスプレイのピクセル位置ごとにとられる(ピクセルのサンプリングポイントごとに1つ、というのは、別々の色値が、サンプリングポイントごとにレンダリングされるので)ことを意味する。これらの複数の色サンプルは、ピクセルが表示される時にそのピクセルの単一の色に組み合わされる。これは、当該のピクセル位置でのオリジナルイメージからの色値を平滑化しまたは平均化するという効果を有する。   This means that multiple color samples are taken for each pixel location in the display (one for each pixel sampling point, because separate color values are rendered for each sampling point). . These multiple color samples are combined into a single color for the pixel when the pixel is displayed. This has the effect of smoothing or averaging the color values from the original image at that pixel location.

図2にスーパーサンプリングプロセスを示す。図2に示された例では、4つのサンプルポイントが、ディスプレイ内のピクセルごとに決定され、別々の色サンプルが、レンダリングプロセス中にサンプルポイントごとにとられる(そのような各サンプルは、したがって、効果的に「サブピクセル」とみなすことができ、ディスプレイ内の各ピクセルは、4つのそのようなサブピクセルから構成される)。次に、所定のピクセルの4つの色値サンプル(サブピクセル)が組み合わされ(ダウンフィルタリングされ)、ディスプレイ内のピクセルに使用される最終的な色が、そのピクセルについてとられた4つの色サンプルの色の適当な平均値(ブレンド)になる。   Figure 2 shows the supersampling process. In the example shown in FIG. 2, four sample points are determined for each pixel in the display, and separate color samples are taken for each sample point during the rendering process (each such sample is therefore Can effectively be considered a "sub-pixel", where each pixel in the display is composed of four such sub-pixels). The four color value samples (sub-pixels) for a given pixel are then combined (down-filtered) and the final color used for the pixel in the display is the four color samples taken for that pixel. Appropriate average value (blend) of colors.

これは、表示されるイメージを滑らかにするという効果を有し、たとえば、色の中間の陰影によってエイリアシングアーチファクトを囲むことによって、エイリアシングアーチファクトを目立たなくする。これは、図2に見ることができ、図2では、ピクセルAが、今や2つの「白」サンプルおよび2つの「黒」サンプルを有し、したがって、表示されるイメージでは50%「白」にセットされる。この形で、白いオブジェクトのエッジ付近のピクセルが、たとえば何個のサンプルがエッジの各側に含まれることがわかるかに基づいて、より滑らかなエッジを作るようにぼかされる。   This has the effect of smoothing the displayed image and makes aliasing artifacts less noticeable, for example by surrounding the aliasing artifacts with shades in the middle of the colors. This can be seen in Figure 2, where pixel A now has two "white" samples and two "black" samples, so it is 50% "white" in the displayed image. Set. In this way, the pixels near the edge of the white object are blurred to create a smoother edge, for example based on how many samples are found on each side of the edge.

スーパーサンプリングは、事実上ディスプレイで実際に使用されるものよりはるかに高い解像度でスクリーンイメージを処理し、その後、処理されたイメージを、表示される前に最終的な解像度にスケーリングし、フィルタリングする(ダウンサンプリング)。これは、減らされたエイリアシングアーチファクトを有する改善されたイメージをもたらすという効果を有するが、より高い処理能力および/またはより長い処理時間を必要とする。というのは、グラフィックス処理システムが、実際に、サンプルと同数のフラグメントを処理しなければならないからである(たとえば、4xスーパーサンプリング(すなわち、ピクセル位置ごとに4つのサンプルがとられる)について、処理要件が、スーパーサンプリングがない場合より4倍高くなる)。   Supersampling processes screen images at a resolution much higher than what is actually used on the display, and then scales and filters the processed image to the final resolution before it is displayed ( Downsampling). This has the effect of providing an improved image with reduced aliasing artifacts, but requires higher processing power and / or longer processing time. This is because the graphics processing system actually has to process as many fragments as samples (e.g., for 4x supersampling (i.e. 4 samples are taken per pixel location)) Requirements are four times higher than without supersampling).

したがって、イメージ品質のある改善を提供しながら、フルスーパーサンプリングより少ない処理要件を有する他のアンチエイリアシング技法が、提案されてきた。   Thus, other anti-aliasing techniques have been proposed that have less processing requirements than full supersampling while providing some improvement in image quality.

1つの一般的なそのような技法を、「マルチサンプリング」と称する。   One common such technique is referred to as “multi-sampling”.

マルチサンプリングの場合に、複数のサンプリングポイントが、やはりピクセルごとにテストされて、イメージがフラグメントにラスタ化される時(ラスタ化ステージで)に、所定のプリミティブがサンプリングポイントをカバーするか否かが判定される。したがって、マルチサンプリングシステムでのプリミティブのサンプリングポイントカバレッジは、「スーパーサンプリング」システムに似た形で判定される(したがって、プリミティブの外側幾何エッジの位置は、それでも、マルチサンプリングシステムで効果的に「スーパーサンプリング」(オーバーサンプリング)される)。   In the case of multi-sampling, multiple sampling points are also tested pixel by pixel to determine whether a given primitive covers the sampling points when the image is rasterized into fragments (at the rasterization stage). Determined. Thus, the sampling point coverage of a primitive in a multi-sampling system is determined in a manner similar to a “super-sampling” system (thus the position of the outer geometric edge of a primitive is still effectively “super-sampling” in a multi-sampling system. "Sampling" (oversampling)).

しかし、マルチサンプリングシステムのレンダリングプロセスでは、当該のプリミティブによってカバーされる所定のピクセルのすべてのサンプリングポイントが、フラグメントデータ(たとえば、深さ値、色値など)の同一の単一の共通のセットを割り当てられる(スーパーサンプリングの場合のようにフラグメントデータのそれ自体の別々のセットをそれぞれが有するのではなく)。   However, in the rendering process of a multi-sampling system, all sampling points of a given pixel covered by the primitive in question will have the same single common set of fragment data (e.g. depth values, color values, etc.) Assigned (rather than each having its own separate set of fragment data as in the case of supersampling).

したがって、マルチサンプリングでは、複数のサンプルが、やはり、最終的なディスプレイを構成する画素ごとにとられるが、「ピクセル」をレンダリングする時にサンプルごとに別々の色値を判定する(フルスーパーサンプリングシステムの場合のように)のではなく、単一の色値が、判定され、最終的なイメージ内の同一のオブジェクトに属するとわかったピクセルのすべてのサンプルに適用される。言い換えると、マルチサンプリングは、シーン内の所定のオブジェクトの所定のピクセルの単一の色値を計算し、その色値は、そのオブジェクトによってカバーされるピクセルのすべてのサンプル(サブピクセル)に適用される(再利用される)(別々の色値がサンプルごとに判定されるスーパーサンプリングとは異なって)。   Thus, in multi-sampling, multiple samples are still taken for each pixel that makes up the final display, but separate color values are determined for each sample when rendering a “pixel” (for a full supersampling system). Rather than as), a single color value is determined and applied to all samples of pixels found to belong to the same object in the final image. In other words, multi-sampling calculates a single color value for a given pixel of a given object in the scene, and that color value is applied to all samples (subpixels) of the pixels covered by that object. (Reused) (unlike supersampling where separate color values are determined for each sample).

単一の色値だけが所定のピクセルの複数のサンプルに使用されるので、マルチサンプリングは、スーパーサンプリングより処理集中型ではなく、したがって、スーパーサンプリングより高速の処理および性能を可能にすることができる。しかし、オブジェクトのエッジはそれでもより高い解像度でサンプリングされるが、色はそうではないので、スーパーサンプリングと比較して、表示されるイメージの品質の低下がある。   Because only a single color value is used for multiple samples of a given pixel, multisampling is less processing intensive than supersampling and can therefore allow faster processing and performance than supersampling. . However, the edges of the object are still sampled at a higher resolution, but the color is not, so there is a degradation in the quality of the displayed image compared to supersampling.

これにかかわりなく、多くのグラフィックス処理システムは、マルチサンプリングアンチエイリアシング技法を使用する。というのは、マルチサンプリングが、フルスーパーサンプリングに伴うかなりの余分の処理の負荷および計算の負荷なしで、全般的に、レンダリングされたイメージ内の適当な(およびマルチサンプリングまたはスーパーサンプリングが全くない時と比較して改善された)アンチエイリアシングを提供できるからである。   Regardless, many graphics processing systems use multi-sampling anti-aliasing techniques. This is because multisampling is generally appropriate (and without multisampling or supersampling at all) in the rendered image, without the significant extra processing and computational burden associated with full supersampling. This is because it can provide improved anti-aliasing compared to

しかし、本出願人は、現在、既存マルチサンプリンググラフィックス処理配置の短所を理解した。この短所は、多数のグラフィックス処理システムで使用されている「アルファテスト」と称するプロセスに関連する。   However, the Applicant now understands the shortcomings of existing multi-sampling graphics processing arrangements. This disadvantage is associated with a process called “alpha test” used in many graphics processing systems.

当技術分野で既知のとおり、多くのグラフィックス処理システムは、事実上、レンダリングされるオブジェクトの透明度(または他のもの)を表すために「アルファ」または「アルファ値」と一般に称するプロパティを使用する。事実上、グラフィックス頂点およびフラグメントは、たとえば、いわゆるアルファ値をそれに関連付けられ、このアルファ値は、頂点およびフラグメントに関連する色(赤、緑、青)値に似ているが、その代わりに、頂点またはフラグメントなどのオブジェクトの「透明度」を表す。   As is known in the art, many graphics processing systems effectively use a property commonly referred to as “alpha” or “alpha value” to represent the transparency (or other) of the rendered object. . In effect, graphics vertices and fragments are associated with, for example, so-called alpha values, which are similar to the color (red, green, blue) values associated with vertices and fragments, but instead Represents the “transparency” of an object such as a vertex or fragment.

所定のフラグメント値のアルファ値は、たとえば、そのフラグメントが属するプリミティブの頂点について定義されるアルファ値から導出され、そのフラグメントに適用されるテクスチャから導出され、あるいは、そのフラグメントに適用されるフラグメントシェーダ(shader)(ピクセルシェーダ)プログラムの計算から導出される。   The alpha value of a given fragment value is derived, for example, from the alpha value defined for the vertices of the primitive to which the fragment belongs, derived from the texture applied to the fragment, or the fragment shader applied to the fragment ( derived from shader (pixel shader) program calculations.

グラフィックス処理でのアルファ値の一般的な使用は、表示されるシーン内の草木など、特に背景の繰り返されるパターンのレンダリングなどの「ビルボーディング(bill-boarding)」用である。アルファ値は、そのような特徴をテクスチャとしてシーンに効果的に適用するのに使用でき、テクスチャは、たとえば木の葉のそれぞれなどのプリミティブを定義することより低コストである可能性がある。   A common use of alpha values in graphics processing is for "bill-boarding", such as rendering a repeating pattern of backgrounds, such as vegetation in a displayed scene. The alpha value can be used to effectively apply such features to the scene as a texture, which can be less costly than defining a primitive, for example, each of the leaves of the tree.

そのような処理は、通常、レンダリングプロセス中にいわゆる「アルファテスト」を実行することによって実行される。アルファテストは、通常、レンダリングパイプライン内の定義済みステップであり、通常、レンダリングされるフラグメントに関連するアルファ値をシーンおよび当該のアルファテストについて定義されたしきいアルファ値または基準アルファ値と比較し、その後、その比較を基礎として当該のフラグメントを残すか破棄することを含む。言い換えると、アルファテストは、定義されたしきいアルファ値または基準アルファ値を使用して、レンダリングされつつあるフラグメントを残すか破棄する(フラグメントをタイルバッファまたはフレームバッファに書き込むためまたは書き込まないようにするために)。   Such processing is typically performed by performing a so-called “alpha test” during the rendering process. An alpha test is usually a predefined step in the rendering pipeline that typically compares the alpha value associated with the rendered fragment to the threshold alpha or reference alpha value defined for the scene and the alpha test. Then leaving or discarding the fragment based on the comparison. In other words, the alpha test uses the defined threshold alpha value or reference alpha value to leave or discard the fragment that is being rendered (make sure the fragment is written or not written to the tile or frame buffer) for).

本出願人は、さらに、シーンがレンダリングされる時のアルファテストの実行の結果が、表示されるシーンにエッジを導入し得ることであることを理解した。エッジまたは線は、たとえば、アルファ値が、アルファテストで比較されるしきい値と交わる場所に作成され得る。   Applicants have further realized that the result of performing an alpha test when a scene is rendered can introduce edges into the displayed scene. An edge or line can be created, for example, where the alpha value intersects the threshold value compared in the alpha test.

たとえば、アルファテスト基準値が、表示されるシーンを横切る1つまたは複数の線を効果的に定義する場合に、それが、所定のプリミティブのフラグメント(たとえば、所定のアルファ値を有する)がその線の片側で破棄されるが、その線の反対側では残されることをもたらし得る。同様に、フラグメントに関連するアルファ値が、プリミティブの表面にわたって漸進的に変化する場合に、やはり、効果的に、プリミティブを横切る線が生じ、その線の片側ではフラグメントが残され、その線の反対側ではフラグメントが破棄される場合がある。   For example, if an alpha test reference value effectively defines one or more lines across the displayed scene, it means that a given fragment of primitive (for example, has a given alpha value) Can be discarded on one side, but left on the other side of the line. Similarly, if the alpha value associated with a fragment changes incrementally across the surface of the primitive, it also effectively produces a line across the primitive, leaving the fragment on one side of the line and the opposite of the line On the side, fragments may be discarded.

したがって、これらのアルファテスト処理は、効果的に、プリミティブが表示される時にそのプリミティブについてまたはそのプリミティブ内に1つまたは複数の新しいエッジを存在させる可能性がある(ここで、そのようなアルファテストによって導入された「エッジ」が、ラスタ化ステージでは存在せず、導入されないが、その後、レンダリングプロセス中に、アルファテストが実行される時にのみ生じることに留意されたい)。   Thus, these alpha test processes can effectively cause one or more new edges to exist on or within the primitive when the primitive is displayed (where such alpha test Note that the “edge” introduced by is not present in the rasterization stage and is not introduced, but then only occurs during the rendering process when an alpha test is performed).

さらに、本出願人は、したがって、プリミティブの幾何外側エッジなど、すべての他のエッジがアンチエイリアシングされるのが望ましいのと同一の形で、アルファテストによって導入されるそのようなエッジがアンチエイリアシングされることが望ましいことを理解した。   In addition, Applicants therefore have anti-aliased such edges introduced by alpha testing in the same way that all other edges are desired to be anti-aliased, such as primitive geometric outer edges. I understood that it is desirable.

しかし、マルチサンプリング式グラフィックス処理配置の場合に、上で述べたように、フラグメントがレンダリングされる時に、フラグメントデータの単一のセット(たとえば、色値(R値、G値、B値)およびアルファ値)が、導出され、所定のプリミティブによってカバーされるピクセルのすべてのサンプル位置に使用される。したがって、所定のピクセルのサンプリングポイントは、単一のアルファ値を関連付けられるのみであり、そのアルファ値は、そのピクセルのすべてのサンプル位置に使用される。   However, in the case of a multi-sampling graphics processing arrangement, as described above, when a fragment is rendered, a single set of fragment data (e.g., color values (R values, G values, B values) and (Alpha value) is derived and used for all sample locations of the pixels covered by a given primitive. Thus, a sampling point for a given pixel can only be associated with a single alpha value, and that alpha value is used for all sample locations for that pixel.

言い換えると、マルチサンプリング式グラフィックス処理配置では、あるピクセルのすべてのサンプルに共通して使用される単一のアルファ値だけが導出される。したがって、アルファテストが実行される時に、各サンプルが同一のアルファ値を有するので、すべてのサンプルが破棄されるかすべてのサンプルが破棄されないかのいずれかになり、事実上、そのピクセルは、アルファテストの結果として、全体として残されるか破棄されるかのいずれかになる。   In other words, in a multi-sampling graphics processing arrangement, only a single alpha value is derived that is commonly used for all samples of a pixel. Thus, when the alpha test is run, each sample has the same alpha value, so either all samples are discarded or all samples are not discarded, and in effect that pixel is alpha The result of the test is either left as a whole or discarded.

本出願人は、これの結果が、アルファテストが実行される時に、そのテストが、ピクセル全体の保持または破棄のいずれかを引き起こすことを理解した。さらに、これは、アルファテストが、効果的にピクセルレベル解像度ですなわち1ピクセル全体ごとで実行されることを意味する。   Applicants have understood that this result causes either the entire pixel to be preserved or discarded when the alpha test is performed. Furthermore, this means that the alpha test is effectively performed at pixel level resolution, i.e. every pixel.

これの影響は、アルファテストによって導入されるイメージ内のすべてのエッジが、オーバーサンプリング(スーパーサンプリング)された形では処理されず、したがって、アンチエイリアシングされない(上で述べたラスタ化時にオーバーサンプリング(スーパーサンプリング)された形で処理される幾何外側プリミティブエッジとは対照的に)ことである。   The effect of this is that all edges in the image introduced by the alpha test are not processed in an oversampled (supersampled) form and are therefore not anti-aliased (oversampling (supersampling during the rasterization mentioned above). (As opposed to geometric outer primitive edges that are processed in a sampled form).

したがって、本出願人は、マルチサンプリング式グラフィックスレンダリングプロセスにおいてさえ、アルファテストによって導入されるエッジが、アンチエイリアシングされず、したがって、その外見がそれほどよくはないことを理解した。   Thus, the Applicant has realized that even in the multi-sampling graphics rendering process, the edges introduced by the alpha test are not anti-aliased and therefore do not look very good.

(この問題は、完全にスーパーサンプリング式のグラフィックス処理配置では生じない傾向がある。というのは、その場合に、各「サンプル」が、効果的にそれ自体の色値およびアルファ値を有し、したがって、アルファテストが、いずれにせよより高いスーパーサンプリングされた解像度で実行される(したがって、アンチエイリアシングされる)からである。しかし、上で述べたように、スーパーサンプリングは、必ず望ましいまたは可能とは限らない可能性があり、多くの場合に、マルチサンプリング式グラフィックス処理配置が、品質と処理作業負荷との間のトレードオフとして好ましい)。   (This problem tends not to occur in a fully supersampled graphics processing arrangement, in which case each “sample” effectively has its own color and alpha values. Therefore, alpha testing is performed at a higher supersampled resolution anyway (and therefore anti-aliased), but as mentioned above, supersampling is always desirable or possible And in many cases a multi-sampling graphics processing arrangement is preferred as a trade-off between quality and processing workload).

したがって、本出願人は、特にマルチサンプリング式グラフィックス処理配置でのアルファテストの処理に関して、マルチサンプリング式グラフィックス処理システムに対する改善の余地が残っていると考える。   Accordingly, Applicants believe that there remains room for improvement over multi-sampling graphics processing systems, particularly with respect to alpha test processing in multi-sampling graphics processing arrangements.

本発明の第1の態様によれば、表示されるイメージのグラフィックスプリミティブを処理する方法であって、
複数のサンプリングポイントの複数のセットのサンプリングポイントごとにグラフィックスプリミティブがサンプリングポイントをカバーするかどうかを判定するステップと、
表示のためにプリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成するステップであって、各グラフィックスフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことがわかった複数のサンプリングポイントのセットに対応し、プリミティブによってカバーされることがわかったサンプリングポイントのセットのサンプリングポイントに使用されるフラグメントデータのセットを定義する、ステップと、
各レンダリングされるグラフィックスフラグメントのレンダリングされたフラグメントデータのセットを判定するためにプリミティブについて生成されたグラフィックスフラグメントをレンダリングするステップと、
レンダリングプロセスの一部として1つまたは複数のフラグメントに関してアルファテストを実行するステップと
を含み、アルファテストが、
当該のフラグメントが対応する各カバーされるサンプリングポイントの個々のアルファ値を生成するステップと、
カバーされるサンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用してアルファテストを実行するステップと
によって実行される、方法が提供される。
According to a first aspect of the present invention, a method for processing graphics primitives of a displayed image comprising:
Determining whether a graphics primitive covers a sampling point for each set of sampling points of a plurality of sampling points;
Generating a set of graphics fragments to render primitives for display, each graphics fragment corresponding to a set of multiple sampling points found to contain the sampling points covered by the primitive Defining a set of fragment data to be used for the sampling points of the set of sampling points found to be covered by the primitive, and
Rendering the graphics fragment generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Performing an alpha test on one or more fragments as part of the rendering process,
Generating an individual alpha value for each covered sampling point to which the fragment corresponds;
A method is provided that is performed for each covered sampling point by performing an alpha test using the individual alpha values generated for the sampling point.

本発明の第2の態様によれば、表示されるイメージのグラフィックスプリミティブを処理するシステムであって、
複数のサンプリングポイントの複数のセットのサンプリングポイントごとにグラフィックスプリミティブがサンプリングポイントをカバーするかどうかを判定する手段と、
表示のためにプリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成する手段であって、各グラフィックスフラグメントが、プリミティブによってカバーされるサンプリングポイントを含むことがわかった複数のサンプリングポイントのセットに対応し、プリミティブによってカバーされることがわかったサンプリングポイントのセットのサンプリングポイントに使用されるフラグメントデータのセットを定義する、手段と、
各レンダリングされるグラフィックスフラグメントのレンダリングされたフラグメントデータのセットを判定するためにプリミティブについて生成されたグラフィックスフラグメントをレンダリングする手段と、
レンダリングプロセスの一部として1つまたは複数のフラグメントに関してアルファテストを実行する手段と
を含み、アルファテストを実行する手段が、
当該のフラグメントが対応する各カバーされるサンプリングポイントの個々のアルファ値を生成する手段と、
カバーされるサンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用してアルファテストを実行する手段と
を含む、システムが提供される。
According to a second aspect of the invention, a system for processing graphics primitives of a displayed image comprising:
Means for determining whether a graphics primitive covers a sampling point for each of a plurality of sets of sampling points of a plurality of sampling points;
A means of generating a set of graphics fragments to render a primitive for display, with each graphics fragment corresponding to a set of multiple sampling points found to contain the sampling points covered by the primitive Means for defining a set of fragment data used for sampling points of a set of sampling points found to be covered by a primitive;
Means for rendering the graphics fragments generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Means for performing alpha testing on one or more fragments as part of the rendering process, and means for performing alpha testing
Means for generating individual alpha values for each covered sampling point to which the fragment corresponds;
And a means for performing an alpha test using the individual alpha values generated for the sampling points individually for each covered sampling point.

本発明では、レンダリングプロセスは、表示されるイメージの複数のサンプリングポイントのセットにそれぞれが対応するグラフィックスフラグメントを操作(レンダリング)する(サンプリングポイントの各セットは、たとえば、通常、上で述べたように、最終的なディスプレイ内の1ピクセルに対応する)。   In the present invention, the rendering process manipulates (renders) graphics fragments, each corresponding to a set of multiple sampling points of the displayed image (each set of sampling points is typically as described above, for example). Corresponding to one pixel in the final display).

これの効果は、所定のフラグメントが、そのフラグメントが対応する(それをレンダリングするのに使用されようとしている)サンプリングポイントのセットの全サンプリングポイントに使用されるフラグメントデータの共通の単一のセットを定義し、提供することである。言い換えると、本発明は、マルチサンプリング式グラフィックス処理配置である。   The effect of this is that a given fragment has a common single set of fragment data that is used for all sampling points of the set of sampling points to which that fragment corresponds (and is going to be used to render it). Is to define and provide. In other words, the present invention is a multi-sampling graphics processing arrangement.

しかし、アルファテストがレンダリングプロセスの一部としてフラグメントに対して実行される時に、従来技術のマルチサンプリングシステムでそうであるように、単一のアルファ値およびアルファ値比較テストがフラグメント全体に使用されるのではなく、本発明では、個々のアルファ値が、フラグメントが対応する(レンダリングに使用されようとしている)カバーされるサンプリングポイントごとに生成され、その後、アルファテストが、カバーされるサンプリングポイントごとに個別に実行される。   However, when alpha tests are performed on fragments as part of the rendering process, a single alpha value and alpha value comparison test is used for the entire fragment, as is the case with prior art multi-sampling systems. Rather, in the present invention, an individual alpha value is generated for each sampling point covered by the fragment to which it corresponds (which is going to be used for rendering), and then an alpha test is performed for each sampling point covered. It is executed individually.

これの効果は、アルファテストが、各(カバーされる)サンプリングポイントについて、それに関して個別に(別々に)、当該のサンプリングポイントについて生成された個々のアルファ値を使用してすなわち、フラグメント(複数のサンプリングポイントのセットの)全体の解像度(レベル)ではなく事実上そのサンプリングポイントの解像度(レベル)で実行されることである。   The effect of this is that the alpha test uses, for each (covered) sampling point, individually (separately) with respect to it, using the individual alpha values generated for that sampling point, i.e. fragments (multiple It is to be performed at the resolution (level) of that sampling point rather than the overall resolution (level) of the set of sampling points.

これは、たとえば、従来技術のマルチサンプリング配置のように、アルファテストの結果としてフラグメント(サンプリングポイントのセットの)のサンプリングポイントのすべてを一緒に保持するか、又は、すべてを一緒に破棄することだけができるのではなく、アルファテストの結果として個々にフラグメント(サンプリングポイントのセットの)のサンプリングポイントを保持するか、又は、破棄することができることである。   This only keeps all of the sampling points of a fragment (of a set of sampling points) together as a result of an alpha test, or discards all together, as in a prior art multi-sampling arrangement, for example. Rather than being able to do so, it is possible to keep or discard the sampling points of the fragments (of a set of sampling points) individually as a result of the alpha test.

これは、とりわけ、本発明において、レンダリングプロセスが完全にスーパーサンプリングされた形で動作するのではなく「マルチサンプリングされた」配置であるという事実にもかかわらず、アルファテストを、それでも、事実上、スーパーサンプリングに似た形で(すなわち、1ピクセルあたり複数の個々のサンプルを用いて)実行できることを意味する。   This is especially true in the present invention, despite the fact that the rendering process is a “multisampled” arrangement rather than operating in a fully supersampled form, but still in effect with alpha testing. It means that it can be performed in a manner similar to supersampling (ie, using multiple individual samples per pixel).

したがって、事実上、本発明では、完全にスーパーサンプリング式のシステムの必要なしに、1フラグメントあたり(したがって、ディスプレイの1ピクセルあたり)複数のアルファサンプルが使用可能である(サポートされる)。したがって、本発明は、完全に「スーパーサンプリング式の」レンダリングプロセスを有する必要なしに(したがって、完全にスーパーサンプリング式のシステムに関連する大きい作業負荷の増加なしに)、アルファテスティングによって導入されるエッジに対してアンチエイリアシングを実行することを可能にする。   Thus, in effect, the present invention allows (supports) multiple alpha samples per fragment (and thus per pixel of the display) without the need for a fully supersampled system. Thus, the present invention is introduced by alpha testing without the need to have a completely “supersampled” rendering process (and thus without the large workload increase associated with a fully supersampled system). Allows performing anti-aliasing on edges.

本発明の第3の態様によれば、グラフィックスレンダリングシステムでアルファテストを実行する方法であって、レンダリングされるグラフィックスフラグメントが、それぞれ、プリミティブによってカバーされる表示されるイメージの複数のサンプリングポイントを表すことができるが、それぞれ、フラグメントについて使用される単一のアルファ値を当初に関連付けられ、方法が、フラグメントのアルファテストを、
当該のフラグメントが対応するカバーされる各サンプリングポイントの個々のアルファ値を生成するステップと、
カバーされるサンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用して、アルファテストを実行するステップと
によって実行するステップを含む、方法が提供される。
According to a third aspect of the present invention, a method for performing an alpha test in a graphics rendering system, wherein the rendered graphics fragments are each a plurality of sampling points of a displayed image covered by a primitive. Are each initially associated with a single alpha value used for the fragment, and the method can be used to test the fragment alpha test,
Generating an individual alpha value for each sampling point covered by the fragment;
A method is provided that includes, for each of the covered sampling points, performing an alpha test using the individual alpha values generated for the sampling points.

本発明の第4の態様によれば、グラフィックスレンダリングシステムでアルファテストを実行するシステムであって、レンダリングされるグラフィックスフラグメントが、それぞれ、プリミティブによってカバーされる表示されるイメージの複数のサンプリングポイントを表すことができるが、それぞれ、フラグメントについて使用される単一のアルファ値を当初に関連付けられ、
当該のフラグメントが対応するカバーされる各サンプリングポイントの個々のアルファ値を生成する手段と、
カバーされるサンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用して、アルファテストを実行する手段と
を含むシステムが提供される。
According to a fourth aspect of the present invention, a system for performing alpha testing in a graphics rendering system, wherein the rendered graphics fragments are each a plurality of sampling points of the displayed image covered by the primitive. Are each initially associated with a single alpha value used for the fragment,
Means for generating individual alpha values for each sampling point covered by the fragment of interest;
A system is provided that includes, for each sampling point covered, means for performing an alpha test using the individual alpha values generated for the sampling point.

表示されるイメージについてとられる(したがってレンダリングされる各フラグメントに関連する)サンプリングポイントのセットは、望み通りに選択することができる。当技術分野で既知のとおり、サンプリングポイントの各セット(したがって各サンプリングポイント)は、表示されるイメージ内の異なる位置(x,y位置)を表す(各セット内のサンプリングポイントの相対位置を同一とすることができる(通常は同一になる)とはいえ)。   The set of sampling points taken for the displayed image (and thus associated with each fragment to be rendered) can be selected as desired. As is known in the art, each set of sampling points (and thus each sampling point) represents a different position (x, y position) in the displayed image (the relative positions of the sampling points in each set are the same). (Although it will usually be the same)).

通常そうであるように、イメージが、複数のピクセルを含むディスプレイを有する出力デバイスに表示される場合に、サンプリングポイントの各セットは、好ましくは、ディスプレイの所定のピクセル(ピクセル位置)のサンプリングポイントのセットまたはディスプレイの1ピクセルの一部(たとえば、サブピクセル)のサンプリングポイントのセットに対応する。後者の配置では、サンプリングポイントの複数のセットのグループが、好ましくは、ディスプレイの1ピクセルのサンプリングポイントのセット全体を構成する。これらの配置では、各フラグメントが、効果的にディスプレイ内の所定のピクセルのフラグメントデータをレンダリングする。   As is usually the case, when an image is displayed on an output device having a display that includes a plurality of pixels, each set of sampling points is preferably a sampling point of a given pixel (pixel location) of the display. Corresponds to a set of sampling points for a portion of a pixel of the set or display (eg, subpixel). In the latter arrangement, groups of multiple sets of sampling points preferably constitute the entire set of sampling points for one pixel of the display. In these arrangements, each fragment effectively renders fragment data for a given pixel in the display.

サンプリングポイントのセットは、表示されるイメージの面積全体を表す(カバーする)ことができ、あるいは、たとえば、表示されるイメージ全体の一部だけを表す(およびカバーする)ことができる。後者の配置は、たとえば、イメージ(16×16ピクセルタイルなど)の別々の部分(タイル)が順番にレンダリングされ、その後、組み合わされて、最終的なイメージが表示される、タイルベースのレンダリングシステムで使用されるはずである。この場合に、イメージの所望のタイル(部分)を表すサンプリングポイントの複数のセットは、プリミティブを処理するのに使用され、処理は、必要な場合に、イメージの他のタイルについて繰り返されるはずである。   The set of sampling points can represent (cover) the entire area of the displayed image, or, for example, can represent (and cover) only a portion of the entire displayed image. The latter arrangement is, for example, in a tile-based rendering system where separate parts (tiles) of an image (such as a 16x16 pixel tile) are rendered sequentially and then combined to display the final image. Should be used. In this case, multiple sets of sampling points representing the desired tile (portion) of the image are used to process the primitive, and the process should be repeated for other tiles of the image, if necessary. .

サンプリングポイントの各セットは、複数のサンプリングポイントを含む(すなわち、イメージ内の複数のサンプリング位置をカバーする)。サンプリングポイントの実際の個数は、望み通りに選択することができるが、4が好ましい数ではある。   Each set of sampling points includes multiple sampling points (ie, covers multiple sampling locations in the image). The actual number of sampling points can be selected as desired, but 4 is a preferred number.

サンプリングポイントの各セット内のサンプルポイントのパターンおよび(相対)位置(サンプリングパターン)は、望み通りに選択することができる。たとえば、順序付きグリッドスーパーサンプリング(ordered grid supersampling)など、任意の既知の適切なアンチエイリアシングサンプリングパターンを使用することができる。最も好ましくは、回転グリッドスーパーサンプリングパターン(rotated grid supersampling pattern)が使用される。というのは、これが、従来技術で既知のとおり、よりよいサンプリング効果をもたらすからである。したがって、各サンプルポイントがイメージ内の一意のx座標およびy座標を有することが好ましい。   The pattern of sample points and the (relative) position (sampling pattern) within each set of sampling points can be selected as desired. Any known suitable anti-aliasing sampling pattern can be used, for example, ordered grid supersampling. Most preferably, a rotated grid supersampling pattern is used. This is because it provides a better sampling effect as is known in the prior art. Thus, each sample point preferably has a unique x and y coordinate in the image.

1つの好ましい実施形態では、所定のプリミティブについてイメージをサンプリングするのに使用されるサンプリングポイントの各セットが、同一である(すなわち、同一の個数およびパターンのサンプリングポイントとサンプリングポイントの同一の相対位置とを使用する)。この場合に、サンプリングポイントのセットは、フラグメントごとに同一になる。   In one preferred embodiment, each set of sampling points used to sample an image for a given primitive is the same (i.e., the same number and pattern of sampling points and the same relative position of the sampling points). Use). In this case, the set of sampling points is the same for each fragment.

もう1つの好ましい実施形態では、所定のプリミティブについてイメージをサンプリングするのに使用されるサンプリングポイントのセットは、たとえばサンプリングポイントの個数および/またはサンプリングポイントの各セットに使用されるサンプリングパターンもしくは相対位置に関して、変更することができ、かつ/または異なる。最も好ましくは、サンプリングポイントのセットは、あるプリミティブをレンダリングするのに使用されるフラグメントの間で異なるものとすることができる。   In another preferred embodiment, the set of sampling points used to sample the image for a given primitive is, for example, with respect to the number of sampling points and / or the sampling pattern or relative position used for each set of sampling points. Can be changed, and / or different. Most preferably, the set of sampling points can be different between the fragments used to render a primitive.

1つの好ましい実施形態では、プリミティブをレンダリングするのに使用される各フラグメントが、サンプリングポイントの異なるセットに対応する。そのような配置では、事実上、単一のフラグメントだけが、生成され、サンプリングポイントの各セットのサンプリングポイントを共通してレンダリングするのに使用され、各フラグメントは、共通してサンプリングポイントの(異なる)セットの(複数の)サンプリングポイントをレンダリングする。   In one preferred embodiment, each fragment used to render a primitive corresponds to a different set of sampling points. In such an arrangement, in effect, only a single fragment is generated and used to render the sampling points of each set of sampling points in common, and each fragment is commonly (of different sampling points). ) Renders the sampling point (s) of the set.

プリミティブをレンダリングするために生成されるグラフィックスフラグメントのセットは、表示のためにプリミティブを適当にレンダリングするために十分なフラグメントを含まなければならない。したがって、たとえば、プリミティブの一部が実際には最終的な表示で見られないことがわかっている場合に、プリミティブのその部分についてフラグメントを生成する必要はないはずである。同等に、あるプリミティブについてフラグメントが生成済みの場合であっても、最終的なイメージ内で実際には見られないすべてのフラグメントがレンダリングされないことが好ましい(これは、たとえば、当技術分野で既知のように、早期深さ(z)テスト(early depth (z)-test)を使用することによって査定することができる)。   The set of graphics fragments generated to render a primitive must contain enough fragments to properly render the primitive for display. Thus, for example, if it is known that a portion of a primitive is not actually seen in the final display, it should not be necessary to generate a fragment for that portion of the primitive. Equivalently, even if fragments have been generated for a primitive, it is preferred that not all fragments that are not actually seen in the final image are rendered (for example, as known in the art Can be assessed by using an early depth (z) -test).

各フラグメントおよびサンプリングポイントについて判定され、格納されるフラグメントデータは、任意の適切なそのようなデータとすることができる。そのデータは、少なくとも、たとえばディスプレイのピクセルを適当に表示することを可能にするために、RGB値およびアルファ値など、適当な色データおよび/または透明度データを含まなければならない(ここで、本明細書での「色データ」への言及が、モノクロームディスプレイまたは白黒ディスプレイに使用されるものなど、適当なグレイコードまたは類似するデータを含むことを理解されたい)。   The fragment data determined and stored for each fragment and sampling point can be any suitable such data. The data must include at least suitable color data and / or transparency data, such as RGB and alpha values, to allow at least the display pixels to be properly displayed, for example. (It should be understood that references to “color data” in the document include appropriate gray codes or similar data, such as those used for monochrome or black and white displays).

少なくとも3次元グラフィックスの処理の場合に、判定され格納されるフラグメントデータは、好ましくは、フラグメントの(したがって、当該の1つまたは複数のサンプル位置の)深さ(Z)値をも含む。   For at least three-dimensional graphics processing, the fragment data determined and stored preferably also includes the depth (Z) value of the fragment (and thus of the one or more sample locations of interest).

いわゆるステンシルデータなどの他のフラグメントデータを、適宜(および望まれる場合に)判定し、格納することもできる(好ましくは判定され、格納される)。   Other fragment data such as so-called stencil data can also be determined and stored (preferably determined and stored) as appropriate (and desired).

レンダリングされるフラグメントデータは、当技術分野で既知のとおり、適当に、適当なフラグメントデータアレイに格納されなければならない。このアレイは、当技術分野で既知のとおり、たとえばピクセルの2Dアレイを表示するために適当に処理することのできる、たとえばフラグメント位置の2次元アレイを表さなければならない。フラグメントデータのアレイは、たとえば、表示されるイメージのサンプル位置のアレイに対応することができる。   The fragment data to be rendered must be stored in a suitable fragment data array, as is known in the art. This array must represent, for example, a two-dimensional array of fragment locations that can be suitably processed to display a 2D array of pixels, for example, as is known in the art. The array of fragment data may correspond to, for example, an array of sample locations for the displayed image.

本発明のアルファテストプロセスで使用される、あるフラグメントが対応する各(カバーされる)サンプリングポイントについて生成されるアルファ値は、任意の所望の適切な形で生成することができる。   The alpha value generated for each (covered) sampling point to which a fragment corresponds, used in the alpha test process of the present invention, can be generated in any desired suitable manner.

ここで、本発明において、個々のアルファ値が、サンプルポイントごとに生成されることに留意されたい。言い換えると、アルファ値は、各(関連する)サンプルポイントについて別々に生成され、アルファ値生成プロセスは、各サンプルポイントに関して別々に実行される(たとえば、各サンプルポイントがフラグメントの当初に割り当てられるか定義されたアルファ値を単純に割り当てられるのではなく)。   Note that in the present invention, individual alpha values are generated for each sample point. In other words, the alpha value is generated separately for each (related) sample point, and the alpha value generation process is performed separately for each sample point (e.g., defining whether each sample point is initially assigned to the fragment) Instead of simply assigning the assigned alpha value).

したがって、各サンプルポイントは、それ自体のアルファ値生成プロセスを経験し、フラグメントが対応する他のサンプリングポイントに対して異なる、それのために生成されたアルファ値を有する傾向があり、好ましくはそれを有する(いくつかの場合に、サンプルポイントごとに生成されるアルファ値が、たとえばアルファ値がプリミティブにまたがってどのように変化するかに応じて、同一になる場合がありはするが)。したがって、好ましい実施形態では、サンプリングポイントごとに生成されるアルファ値は、フラグメントが対応する他のサンプリングポイントについて生成されるアルファ値と同一ではない。   Thus, each sample point tends to have its own alpha value generation process and has a generated alpha value for it that is different from the other sampling points to which the fragment corresponds, preferably (In some cases, the alpha value generated for each sample point may be the same depending on, for example, how the alpha value changes across the primitives). Thus, in the preferred embodiment, the alpha value generated for each sampling point is not the same as the alpha value generated for the other sampling points to which the fragment corresponds.

特に好ましい実施形態では、サンプリングポイントの個々のアルファ値は、当該のフラグメントに関連し、かつ/またはレンダリングされる他のフラグメントに関連する1つまたは複数のアルファ値から各サンプリングポイントでのアルファ値を推定することによって生成される。たとえば、あるフラグメントが、所定のアルファ値を既に関連付けられている(たとえば、レンダリングプロセスの始めにそれのために定義された)場合に、本発明のアルファテストプロセスに使用されるそのフラグメントのサンプリングポイントのアルファ値は、好ましくは、少なくとも部分的に、そのフラグメントについて定義されたアルファ値を使用することによって生成される(推定される)。   In a particularly preferred embodiment, the individual alpha value of a sampling point is the alpha value at each sampling point from one or more alpha values associated with that fragment and / or associated with other fragments to be rendered. Generated by estimation. For example, if a fragment is already associated with a given alpha value (e.g., defined for it at the beginning of the rendering process), that fragment's sampling point used in the alpha test process of the present invention. The alpha value of is preferably generated (estimated), at least in part, by using the alpha value defined for the fragment.

したがって、特に好ましい実施形態で、あるフラグメントのサンプリングポイント(1つまたは複数)の個々のアルファ値は、レンダリングプロセス中に当該のフラグメントについて当初に定義される(単一の)アルファ値を使用して生成される。   Thus, in a particularly preferred embodiment, the individual alpha value (s) of a fragment's sampling point (s) are determined using the (single) alpha value initially defined for that fragment during the rendering process. Generated.

特に好ましい実施形態では、生成されるアルファ値は、好ましくは、当該のフラグメントについて定義されたアルファ値および当該のフラグメントの1つまたは複数の隣接するフラグメント、好ましくは直接に隣接するフラグメントについて定義された1つまたは複数のアルファ値など、レンダリングされる複数のフラグメントについて定義された初期アルファ値を使用して生成される。   In a particularly preferred embodiment, the generated alpha value is preferably defined for the alpha value defined for the fragment and one or more adjacent fragments, preferably directly adjacent fragments of the fragment. Generated using an initial alpha value defined for multiple rendered fragments, such as one or more alpha values.

1つの好ましい実施形態では、当該のフラグメントを含むフラグメントの2×2ブロック(2フラグメント幅×2フラグメント高さのブロック)のアルファ値が、各サンプリングポイントの個々のアルファ値を生成(推定)するのに使用される(たとえば、好ましくは、バイリニアフィルタリングプロセスまたは類似物を使用することによって)。したがって、好ましくは、4つのフラグメントについて定義される初期アルファ値が、サンプリング位置の個々のアルファ値を生成するのに使用される。   In one preferred embodiment, the alpha value of a 2 × 2 block (2 fragment width × 2 fragment height block) of the fragment containing that fragment generates (estimates) the individual alpha value for each sampling point. (Eg, preferably by using a bilinear filtering process or the like). Thus, preferably the initial alpha value defined for the four fragments is used to generate the individual alpha values for the sampling positions.

もちろん、他の配置が可能である。たとえば、アルファ値生成プロセスに使用されるフラグメントについて定義される初期アルファ値の数が多ければ多いほど、所定のサンプリングポイントに関するアルファ値の推定をより正確にすることができる(しかし、その一方で、推定プロセスが、より処理集中型になる可能性がある)。たとえば、フラグメントの3×3ブロックの当初にセットされたアルファ値を使用することができる。たとえば、望まれる場合に、直接に隣接するフラグメントではなく、当該のフラグメントからさらに離されたフラグメントについて定義されたアルファ値を使用することも可能である。   Of course, other arrangements are possible. For example, the more initial alpha values defined for a fragment used in the alpha value generation process, the more accurate the alpha value estimate for a given sampling point (but on the other hand, The estimation process can be more processing intensive). For example, the originally set alpha value of a 3 × 3 block of fragments can be used. For example, if desired, it is possible to use alpha values defined for fragments that are further away from the fragment rather than directly adjacent fragments.

サンプリングポイントのアルファ値は、任意の適切な所望の形で、1つまたは複数のフラグメントについて当初に定義されるか導出された単一のアルファ値から生成することができる。事実上、目的は、可能である限り、サンプリングポイントでのアルファ値を推定する(再作成する)ことであり、各サンプルポイントでのアルファ値の推定値を与えることができる任意の適切な関数を、これを行うのに使用することができる。その代わりに、たとえば表示されるシーンのアルファ値がシーンにまたがって滑らかに変換するのかより不規則に変化するのかに関して、異なる推定関数が、ある種の状況に他の関数よりよく適する可能性がある場合がある。   The alpha value of the sampling point can be generated from a single alpha value originally defined or derived for one or more fragments in any suitable desired manner. In effect, the goal is to estimate (re-create) the alpha value at the sampling point whenever possible, and any suitable function that can give an estimate of the alpha value at each sample point. Can be used to do this. Instead, different estimation functions may be better suited to certain situations than others, for example whether the alpha value of the displayed scene changes smoothly across scenes or varies more irregularly. There may be.

特に好ましい実施形態で、フラグメントのサンプリングポイントのアルファ値は、そのフラグメントの中央でのアルファ値としてそのフラグメントについて定義された当初の単一のアルファ値をとることと、そのフラグメントの中央点と比較した当該のサンプルポイントでのアルファ値の間の差を推定することと、サンプル位置に使用されるアルファ値を導出するためにそのフラグメントの当初の単一のアルファ値にアルファ値の推定された差を加算することとによって推定される。言い換えると、好ましい実施形態では、サンプルポイントでのアルファ値とフラグメントの中央でのアルファ値との間の差が、推定され、次に、フラグメントについて当初に定義されたか導出されたアルファ値と一緒に、サンプリングポイントのアルファ値を生成するのに使用される。   In a particularly preferred embodiment, the fragment sampling point alpha value is compared to taking the original single alpha value defined for the fragment as the alpha value at the center of the fragment and the center point of the fragment Estimating the difference between the alpha values at the sample point in question and multiplying the fragment's original single alpha value to the alpha value's estimated difference to derive the alpha value used for the sample location It is estimated by adding. In other words, in the preferred embodiment, the difference between the alpha value at the sample point and the alpha value at the center of the fragment is estimated and then together with the alpha value originally defined or derived for the fragment Used to generate the alpha value of the sampling point.

フラグメントの初期アルファ値および/またはフラグメントの中央について使用されるアルファ値は、たとえば、望まれる場合に、望み通りに、静的アルファ値、動的に変化する値、テクスチャ付きのまたは計算される値などとすることができる。   The initial alpha value of the fragment and / or the alpha value used for the center of the fragment can be, for example, a static alpha value, a dynamically changing value, a textured or calculated value as desired, if desired. And so on.

これらの配置では、フラグメントの中央でのアルファ値とサンプル位置でのアルファ値との間の差を、任意の望まれる形で導出し、または推定することができる。しかし、特に好ましい実施形態では、勾配推定法を使用する。言い換えると、好ましくは、フラグメントの中央からサンプルポイントまでの距離に関するアルファ値の変化の割合(傾き(導関数))が、推定されまたは判定され、その後、アルファ値の差を導出するのに使用される(フラグメントの中央からのサンプルポイントの距離に基づいて)。   With these arrangements, the difference between the alpha value at the center of the fragment and the alpha value at the sample location can be derived or estimated in any desired manner. However, in a particularly preferred embodiment, a gradient estimation method is used. In other words, preferably the rate of change of the alpha value (slope (derivative)) with respect to the distance from the center of the fragment to the sample point is estimated or determined and then used to derive the alpha value difference. (Based on the distance of the sample point from the center of the fragment).

これらの配置では、距離に関するアルファ値の変化の割合(傾き)を、望み通りに任意の適切な形で推定し、または導出することができる。特に好ましい実施形態では、これが、適当な隣接するフラグメントのアルファ値の間の差(およびそれらのフラグメントの中央点の間の距離)をとることによって行われる。   With these arrangements, the rate of change (slope) of the alpha value with respect to distance can be estimated or derived in any suitable manner as desired. In a particularly preferred embodiment, this is done by taking the difference between the alpha values of the appropriate adjacent fragments (and the distance between the midpoints of those fragments).

したがって、たとえば、x方向でのアルファ値の変化の割合(傾き)は、互いに関して位置xおよびx+1(またはx-1)にある2つのフラグメントのアルファ値をとることと、フラグメントのアルファ値の間の差および2つのフラグメントの中央の間のx軸に沿った距離を判定することと、x方向でのアルファ値の勾配の推定値を判定するためにアルファ値の差および距離を使用することとによって推定することができ、好ましくはこれによって推定される。好ましくは、類似するプロセスが、y方向でのアルファ値の勾配を推定するのに使用され、これらの2つの勾配を、その後、スクリーン上の任意の線に沿ったアルファ値の変化を推定するのに使用することができる。   So, for example, the rate of change (slope) of the alpha value in the x direction takes the alpha value of two fragments at positions x and x + 1 (or x-1) with respect to each other and the alpha value of the fragment Use the alpha value difference and distance to determine the difference between and the distance along the x-axis between the centers of the two fragments and to determine the estimate of the slope of the alpha value in the x direction This is preferably estimated by this. Preferably, a similar process is used to estimate the slope of the alpha value in the y direction, and these two slopes are then used to estimate the change in alpha value along any line on the screen. Can be used for

一般に、既知のアルファ値およびアルファ値の差などを使用してアルファ値を導出する任意の適切なプロセスを、望み通りに使用することができる。   In general, any suitable process for deriving alpha values, such as using known alpha values and alpha value differences, can be used as desired.

個々のアルファ値が、フラグメントが対応する(そのフラグメントがそれをレンダリングするのに使用されている)カバーされるサンプリングポイントごとに生成されなければならない。好ましい実施形態では、アルファ値は、プリミティブによってカバーされることがわかっている1つまたは複数のサンプリングポイントだけについて生成されるが、フラグメントが対応するサンプリングポイントのセットのすべてのサンプリングポイントについて、それらが当該のプリミティブによってカバーされるか否かにかかわりなく、アルファ値を単純に生成することが可能である。   An individual alpha value must be generated for each sampling point covered by the fragment (that fragment is being used to render it). In a preferred embodiment, alpha values are generated only for one or more sampling points that are known to be covered by the primitive, but for all sampling points of the set of sampling points that the fragment corresponds to, they are It is possible to simply generate an alpha value regardless of whether it is covered by the primitive.

サンプリングポイントごとに生成されたアルファ値は、各サンプリングポイントに関するアルファテストを実行するのに使用される。このアルファテストは、任意の所望の適切な形で実行することができ、当技術分野で既知のとおり、サンプリングポイントのために生成された個々のアルファ値を、当該のサンプリングポイントのアルファテストのために定義された(たとえば、好ましくは事前に決定された)各基準アルファ値またはしきいアルファ値と比較することを含むことができ、好ましくはそれを含む。望まれる場合には、単純なしきい値比較より複雑なテストを使用することもできる。   The alpha value generated for each sampling point is used to perform an alpha test for each sampling point. This alpha test can be performed in any desired suitable form, and as is known in the art, the individual alpha values generated for a sampling point are used for alpha testing of that sampling point. Comparison with (eg, preferably pre-determined) each reference alpha value or threshold alpha value defined in (preferably). If desired, more complex tests can be used than simple threshold comparisons.

アルファテストに使用される基準アルファ値またはしきいアルファ値は、任意の適切なまたは所望のそのような値を含むことができ、任意の適切な所望の形で導出するか定義することができる。たとえば、全体として、表示のためのシーンまたはシーンの一部について定義された、固定された静的なしきいアルファ値があるものとすることができる。その代わりに、基準アルファ値またはしきいアルファ値を、なんらかの形で、たとえばシーン内の位置(x,y位置)に依存して、またはある他のパラメータもしくは要因に依存して、動的または変化するものとすることができる。   The reference alpha or threshold alpha value used for alpha testing can include any suitable or desired such value and can be derived or defined in any suitable desired form. For example, there may be a fixed static threshold alpha value defined for the scene or part of the scene for display as a whole. Instead, the reference alpha value or threshold alpha value is changed dynamically or in some way, for example, depending on the position in the scene (x, y position) or depending on some other parameter or factor. Can be.

一般に、当該のサンプリングポイントの特定のアルファテストのために定義される(たとえば、事前に決定されるか使用中に導出されるかのいずれか)特定のアルファ値があり、そのしきいアルファ値または基準アルファ値は、たとえば全体としてシーンに関する単一の固定された基準アルファ値があるかどうかまたはアルファ値がシーンにまたがってある形で変化するかどうかに依存して、同一フラグメントの他のサンプリングポイントおよび/または他のフラグメントのサンプリングポイントのアルファテストに使用される基準アルファ値と同一または異なる値とすることができる。   In general, there is a specific alpha value that is defined for a specific alpha test at that sampling point (e.g., either predetermined or derived in use) and that threshold alpha value or The reference alpha value is determined by other sampling points in the same fragment, depending on, for example, whether there is a single fixed reference alpha value for the scene as a whole, or whether the alpha value varies across the scene. And / or can be the same or different value as the reference alpha value used for alpha testing of sampling points of other fragments.

各個々のサンプルポイントに関するアルファテスト比較の結果を、望み通りに使用することができる。1つの特に好ましい実施形態では、これらの結果は、当技術分野で既知のとおり、当該のサンプル位置を破棄する(または破棄しない)かどうかを判断するのに使用される。事実上、アルファテスト比較が、サンプル位置を保存しなければならないことを示す場合に、フラグメントの色値などが、そのサンプル位置のために保持される(サンプル位置に書き込まれる)(たとえば、フラグメントデータアレイ内)(すなわち、そのサンプル位置の最後の色に潜在的に影響することを許可される)が、アルファテスト比較が、サンプル位置を破棄しなければならないことを示す場合には、フラグメントの色値などは、当該のサンプル位置について保持されない(当該のサンプル位置に書き込まれない)。   The result of the alpha test comparison for each individual sample point can be used as desired. In one particularly preferred embodiment, these results are used to determine whether to discard (or not discard) the sample location as is known in the art. In effect, if the alpha test comparison indicates that the sample location must be preserved, the fragment color value, etc. is retained for that sample location (written to the sample location) (e.g., fragment data If (in the array) (i.e. allowed to potentially affect the last color at that sample location) indicates that the alpha test comparison indicates that the sample location should be discarded, the color of the fragment A value or the like is not held for the sample position (not written to the sample position).

これらの配置では、所定のサンプリング位置がアルファテストの結果として破棄されたかどうかを表示するか記録する、ある機構の必要がある場合があることを了解されたい。これは、任意の所望の適切な形で達成することができる。   It should be appreciated that in these arrangements, there may be a need for some mechanism to display or record whether a given sampling position has been discarded as a result of an alpha test. This can be achieved in any desired suitable form.

しかし、特に好ましい実施形態では、各グラフィックスフラグメントは、そのフラグメントが対応するサンプリングポイントのセットのうちのどのサンプリングポイントが、それをレンダリングするためにそのフラグメントが使用されようとしているのか(すなわち、レンダリングされるフラグメントデータを(先を見越して)出力フラグメントデータアレイ内に格納しなければならない、そのフラグメントが対応するサンプリングポイントのセット内のサンプリングポイント)を示すデータを関連付けられる。このシステムは、示された選択されたサンプル位置について、レンダリングされたフラグメントデータをフラグメントデータアレイ内に適当に格納するが、フラグメントに関連する残りのサンプル位置については格納しないように動作する。   However, in a particularly preferred embodiment, each graphics fragment has which sampling point in the set of sampling points that it corresponds to (that is, the rendering) that fragment is about to be used to render it. Associated with data indicating the fragment data to be stored (proactively) in the output fragment data array, the sampling points in the set of sampling points to which that fragment corresponds. The system operates to properly store the rendered fragment data in the fragment data array for the selected selected sample location, but not to store the remaining sample locations associated with the fragment.

この配置では、フラグメントがそれをレンダリングするのに使用されようとしているサンプリングポイントを示すこのデータは、たとえば、好ましくは、当初に、当該のプリミティブによってカバーされることがわかっているサンプリング位置に基づき、これらに対応する。しかし、好ましくは、アルファテスト結果が、アルファテストの結果として破棄されなければならないサンプル位置を示すためにこのデータを変更するのに使用される。   In this arrangement, this data indicating the sampling point that the fragment is going to be used to render it is preferably based on, for example, the sampling position that is initially known to be covered by the primitive, It corresponds to these. Preferably, however, the alpha test result is used to modify this data to indicate the sample location that should be discarded as a result of the alpha test.

フラグメントがそれをレンダリングするのに使用されようとしているサンプルポイントを示す情報は、好ましくは、レンダラを通過するフラグメントのフラグメントデータ(フラグメントのRGB値およびアルファ値など)に関連付けられるかその一部である。これは、好ましくは、フラグメントに関連するサンプル位置のセットのサンプル位置ごとに、フラグメントがそのサンプルポイントをレンダリングするのに使用されようとしているかどうか(すなわち、フラグメントのデータを(先を見越して)そのサンプルポイントについて格納しなければならないかどうか)を示すカバレッジマスクの形である。このマスクは、各サンプリングポイントのアルファテストの結果として変更することができ、好ましくは変更される。   Information indicating the sample point that the fragment is about to be used to render it is preferably associated with or part of the fragment data of the fragment that passes through the renderer (such as the fragment's RGB and alpha values) . This is preferably done for each sample position in the set of sample positions associated with the fragment whether the fragment is going to be used to render that sample point (i.e., the fragment's data (proactively) This is the form of a coverage mask that indicates whether sample points must be stored. This mask can be changed as a result of the alpha test of each sampling point and is preferably changed.

この配置は、所定のフラグメントを適当なサンプルポイントに関連付ける特に便利な形であり、本発明の動作を容易にすることがわかっている。   This arrangement is a particularly convenient way of associating a given fragment with an appropriate sample point and has been found to facilitate the operation of the present invention.

上で述べたように、本発明のアルファテストは、1つの好ましい実施形態で、フラグメントに関連するサンプリング位置を保存するか破棄するのに使用されるが、アルファテストの結果の他の配置および使用が可能である。   As noted above, the alpha test of the present invention is used in one preferred embodiment to save or discard the sampling position associated with a fragment, but other arrangements and uses of alpha test results. Is possible.

たとえば、好ましい実施形態では、上記に加えてまたはその代わりに、個々のサンプル位置に対するアルファテストが、アルファテストによって導入されるエッジが当該のフラグメントを通過し得るかどうかを判定し、または推定するのに使用される。   For example, in a preferred embodiment, in addition to or instead of the above, an alpha test for individual sample locations determines or estimates whether an edge introduced by the alpha test can pass through the fragment of interest. Used for.

これは、たとえば、フラグメントのサンプル位置のうちのいくつかが、アルファテスト比較に「合格する」(たとえば、基準アルファ値を超える)が、フラグメントの他のサンプル位置が、アルファテストに「合格しない」(たとえば、基準値未満である)かどうかを判定することによって行うことができる。これは、アルファテストによって導入されるエッジが、フラグメントを通過し得るまたは通過することを示すはずである。   This is, for example, that some of the sample positions of the fragment “pass” the alpha test comparison (eg, exceed the reference alpha value), but other sample positions of the fragment “pass” the alpha test. (E.g., less than a reference value). This should indicate that the edge introduced by the alpha test can or will pass through the fragment.

エッジがどこにあるのかを計算するための幾何ベースのテストなど、他のエッジテスティング配置を、上記に加えてまたはその代わりに使用することができる。一般に、通常のラスタ化で行われるテストに類似する任意の線機能テストを、望まれる場合に、この目的のために、上記に加えてまたはその代わりに使用することができる。   Other edge testing arrangements can be used in addition to or instead of the above, such as a geometry-based test to calculate where the edge is. In general, any line function test similar to that performed in normal rasterization can be used for this purpose in addition to or instead of this, if desired.

したがって、好ましい実施形態で、本発明の形でのアルファテストは、アルファテストによって導入されるエッジがフラグメントを通過し得るかどうかを査定するのに使用される。   Thus, in a preferred embodiment, an alpha test in the form of the present invention is used to assess whether an edge introduced by the alpha test can pass through a fragment.

これらの配置で、アルファテストによって導入されるエッジがフラグメントを通過し得ることがわかる場合に、特に好ましい実施形態では、当該のフラグメントが、完全にスーパーサンプリングされた形で、もう一度レンダリングされる(レンダリングのために再発行される)。これは、たとえば、レンダリングプロセス(パイプライン)内のより以前の点にループバックし、フラグメントを、それぞれが単一のサブサンプル(サンプリングポイント)を表す複数のフラグメント(複数のコピー)に分割することによって行うことができる。   In these arrangements, when it is found that the edge introduced by the alpha test can pass through the fragment, in a particularly preferred embodiment, the fragment is rendered once again in a fully supersampled form (rendering). Will be reissued for). This can, for example, loop back to an earlier point in the rendering process (pipeline) and split the fragment into multiple fragments (multiple copies) each representing a single subsample (sampling point) Can be done by.

これは、シーンまたはプリミティブ全体をスーパーサンプリングされた形で処理する必要なしに(スーパーサンプリングされた形で処理されるものが、アルファテストエッジ上に横たわる危険性があると識別されたフラグメントだけなので)、アルファテストエッジをアンチエイリアシングする(それを「スーパーサンプリングする」ことによって)ことを可能にする。   This eliminates the need to process the entire scene or primitive in a supersampled form (because only those fragments that are processed in supersampled form are identified as being at risk of lying on the alpha test edge) , Allowing the alpha test edge to be anti-aliased (by "supersampling" it).

実際に、本発明の概念の上記の配置および他の配置を、それ自体で新規であり有利であるものとすることができる。   Indeed, the above and other arrangements of the inventive concept can themselves be novel and advantageous.

したがって、本発明の第5の態様によれば、表示されるイメージのグラフィックスプリミティブを処理する方法であって、
表示のためにプリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成するステップと、
各レンダリングされるグラフィックスフラグメントのレンダリングされたフラグメントデータのセットを判定するためにプリミティブについて生成されたグラフィックスフラグメントをレンダリングするステップと、
レンダリングプロセスの一部として1つまたは複数のフラグメントに関してアルファテストを実行するステップと
を含み、アルファテストが、
当該の1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のアルファ値を生成するステップと、
サンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用してアルファテストを実行するステップと
によって実行される、方法が提供される。
Thus, according to a fifth aspect of the present invention, there is a method for processing graphics primitives of a displayed image comprising:
Generating a set of graphics fragments to render primitives for display;
Rendering the graphics fragment generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Performing an alpha test on one or more fragments as part of the rendering process,
Generating individual alpha values for one or more sampling points of the one or more fragments;
A method is provided that is performed for each sampling point individually by performing an alpha test using the individual alpha values generated for the sampling point.

本発明の第6の態様によれば、表示されるイメージのグラフィックスプリミティブを処理するシステムであって、
表示のためにプリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成する手段と、
各レンダリングされるグラフィックスフラグメントのレンダリングされたフラグメントデータのセットを判定するためにプリミティブについて生成されたグラフィックスフラグメントをレンダリングする手段と、
レンダリングプロセスの一部として1つまたは複数のフラグメントに関してアルファテストを実行する手段と
を含み、アルファテストを実行する手段が、
当該の1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のアルファ値を生成する手段と、
サンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用してアルファテストを実行する手段と
を含む、システムが提供される。
According to a sixth aspect of the present invention, there is a system for processing graphics primitives of a displayed image comprising:
Means for generating a set of graphics fragments to render primitives for display;
Means for rendering the graphics fragments generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Means for performing alpha testing on one or more fragments as part of the rendering process, and means for performing alpha testing
Means for generating individual alpha values for one or more sampling points of the one or more fragments;
And a means for performing an alpha test using the individual alpha values generated for the sampling points individually for each sampling point.

本発明の第7の態様によれば、グラフィックスレンダリングシステムでアルファテストを実行する方法であって、レンダリングされるグラフィックスフラグメントが、それぞれ、フラグメントに使用される単一のアルファ値を当初に関連付けられ、方法が、1つまたは複数のフラグメントのアルファテストを、
当該の1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のアルファ値を生成するステップと、
サンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用して、アルファテストを実行するステップと
によって実行するステップを含む、方法が提供される。
According to a seventh aspect of the present invention, a method for performing an alpha test in a graphics rendering system, wherein each rendered graphics fragment initially associates a single alpha value used for the fragment Is an alpha test of one or more fragments,
Generating individual alpha values for one or more sampling points of the one or more fragments;
A method is provided that includes, for each sampling point, performing an alpha test using the individual alpha values generated for the sampling point.

本発明の第8の態様によれば、グラフィックスレンダリングシステムでアルファテストを実行するシステムであって、レンダリングされるグラフィックスフラグメントが、それぞれ、フラグメントに使用される単一のアルファ値を当初に関連付けられ、
アルファテストを受けるフラグメントまたはフラグメントのグループの1つまたは複数のサンプリングポイントの個々のアルファ値を生成する手段と、
サンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のアルファ値を使用して、アルファテストを実行する手段と
を含むシステムが提供される。
According to an eighth aspect of the present invention, a system for performing alpha testing in a graphics rendering system, wherein each rendered graphics fragment initially associates a single alpha value used for the fragment And
Means for generating individual alpha values for one or more sampling points of a fragment or group of fragments undergoing an alpha test;
A system is provided that includes, for each sampling point, means for performing an alpha test using the individual alpha values generated for the sampling point.

当業者によって了解されるとおり、本発明のこれらの態様および実施形態は、適宜、本明細書で説明する本発明の好ましい特徴および任意選択の特徴のいずれか1つまたは複数またはすべてを含むことができ、好ましくは含む。したがって、たとえば、好ましくは、個々のアルファ値が、当該の1つまたは複数のフラグメントの複数のサンプリングポイントのそれぞれについて生成される。同様に、サンプリングポイントについて生成される個々のアルファ値は、好ましくは、上で述べた形で推定される(および、たとえば、複数のフラグメントまたはそれらのうちの複数について最初に定義されるか割り当てられるアルファ値(1つまたは複数)を少なくとも部分的に使用して生成される)。   As will be appreciated by those skilled in the art, these aspects and embodiments of the invention may include any one or more or all of the preferred and optional features of the invention described herein, as appropriate. And preferably include. Thus, for example, preferably, an individual alpha value is generated for each of a plurality of sampling points of the one or more fragments of interest. Similarly, the individual alpha values generated for a sampling point are preferably estimated in the manner described above (and, for example, initially defined or assigned for multiple fragments or multiple of them) Generated using at least part of the alpha value (s)).

同様に、個々のアルファ値がそれについて生成されるサンプリングポイントが、ラスタ化ステージでプリミティブのカバレッジを判定するのに使用されるサンプリングポイントに対応することが好ましい。しかし、これらの配置でアルファテストエッジの存在についてテストするのに使用される(たとえば、下で述べるように)サンプリングポイントが、レンダリングされるプリミティブのカバレッジ(またはカバーされない)についてテストするためにラスタ化中に使用されるサンプリングポイントに対応することは、必要ではない。   Similarly, the sampling points for which individual alpha values are generated preferably correspond to the sampling points used to determine the coverage of the primitive at the rasterization stage. However, the sampling points used to test for the presence of alpha test edges in these placements (e.g., as described below) are rasterized to test for the coverage (or not covered) of the rendered primitive. It is not necessary to correspond to the sampling points used during.

たとえば、1フラグメントまたは各フラグメントの角(すなわち、1つまたは複数のフラグメントの角(1つまたは複数)のサンプリングポイント)でのアルファ値は、これらの配置で生成することができ、好ましくは生成される(たとえば、アルファテストエッジがフラグメントを通過し得るか否かを判定するために)。フラグメントの角でのアルファ値をとることは、実際に、いくつかの応用例について、より信頼できるテストである可能性がある。   For example, an alpha value at one fragment or each fragment corner (i.e. one or more fragment corner (s) sampling points) can be generated, preferably generated, with these placements. (E.g., to determine whether an alpha test edge can pass through a fragment). Taking the alpha value at the corner of the fragment may actually be a more reliable test for some applications.

同等に、サンプルポイント(たとえば、アルファテストエッジの存在に関するテスト)は、個別にフラグメントに関する(フラグメントのために担持される)必要があるのではなく、たとえば、複数のフラグメントのグループまたはブロックを査定して、たとえば、アルファテストエッジがフラグメントのブロックを通過し得るかどうかを査定することができる(ブロック内のすべてのフラグメントが、その後、それに従って、スーパーサンプリングされた形で処理のために再発行される(または再発行されない))。   Equivalently, sample points (e.g., tests for the presence of alpha test edges) do not have to be individually associated with fragments (carried for fragments), e.g., assess multiple fragment groups or blocks. For example, it can be assessed whether an alpha test edge can pass through a block of fragments (all fragments in the block are then reissued for processing in supersampled form accordingly. (Or will not be reissued).

この場合に、個々のアルファ値が生成されるサンプル位置は、たとえば、全体としてのフラグメントのブロックまたはグループの複数のサンプルポイント(たとえば、好ましくは、ブロックの角)に対応することができ、好ましくは対応するが、たとえば、ブロック内の1つまたは任意の所定の個々のフラグメントに関して1つ(または実際には0個)のサンプルポイントだけがあってもよい。そのような配置は、フラグメントの2×2ブロックなどのフラグメントのブロックを一時にレンダリングするレンダリングシステムに特に適する可能性がある。   In this case, the sample position at which the individual alpha value is generated can correspond to, for example, multiple sample points (eg, preferably block corners) of the block or group of fragments as a whole, preferably Correspondingly, for example, there may be only one (or indeed zero) sample points for one or any given individual fragment within a block. Such an arrangement may be particularly suitable for a rendering system that renders blocks of fragments, such as 2 × 2 blocks of fragments, at a time.

本発明のこれらの実施形態および態様では、アルファ値比較(アルファテスト)を、任意の所望の適切な目的に使用することができる。   In these embodiments and aspects of the invention, alpha value comparison (alpha test) can be used for any desired and appropriate purpose.

特に好ましい実施形態では、比較結果は、上で述べたように、アルファテストによって導入されたエッジが当該の1つまたは複数のフラグメントを通過する可能性が高いかどうかを査定するのに使用される。これは、好ましくは、サンプリングポイントのすべてではなくいくつかがアルファテストに合格するか否かを査定することによって行われる(上で述べたように、いくつかのサンプルポイントが合格する(保存されるはずである)がいくつかが合格しない(破棄されるはずである)場合に、それが、アルファテストエッジが導入されることを暗示するからである)。最も好ましくは、上で述べたように、この基礎でアルファテストエッジを含むことがわかった任意のフラグメントまたはフラグメントのグループが、完全にスーパーサンプリングされた形でのレンダリングのために再発行される。   In a particularly preferred embodiment, the comparison results are used to assess whether the edge introduced by the alpha test is likely to pass through the fragment or fragments, as described above. . This is preferably done by assessing whether some but not all of the sampling points pass the alpha test (as mentioned above, some sample points pass (stored) Because it implies that an alpha test edge is introduced if some do not pass (should be discarded)). Most preferably, as stated above, any fragment or group of fragments found to contain alpha test edges on this basis is reissued for rendering in a fully supersampled form.

この配置のこれらの態様および実施形態のアルファテスト配置は、上記に加えてまたはその代わりに、他の目的に使用することができる。たとえば、これらを、上で述べたように、アルファテスト結果(比較)を基礎としてフラグメントまたはフラグメントのグループを保持しまたは破棄するのに使用することができる。   The alpha test arrangements of these aspects and embodiments of this arrangement can be used for other purposes in addition to or instead of the above. For example, they can be used to hold or discard a fragment or group of fragments based on alpha test results (comparison) as described above.

本発明を、上ではグラフィックレンダリングでのアルファテストの実行を特に参照して説明してきたが、本出願人は、本発明の原理および技法を、アルファ値だけではなく、他の状況およびパラメータに適用することもでき、たとえば、好ましくは、特定の1つまたは複数のパラメータあるいは属性の値が特定のサンプリングポイントもしくは位置について当初に定義されない場合、および/またはたとえば所定のフラグメントに関して定義される値の個数がそのフラグメントに関して考慮されねばならないサンプルポイントの個数より少ない場合に、適用することもできることを理解した。   Although the present invention has been described above with particular reference to performing alpha testing in graphic rendering, Applicants have applied the principles and techniques of the present invention to other situations and parameters, not just alpha values. For example, preferably the value of a particular parameter or parameters or attributes is not initially defined for a particular sampling point or position, and / or the number of values defined for a given fragment, for example It can also be applied if is less than the number of sample points that must be considered for that fragment.

これは、たとえば、グラフィックス処理において、アルファテストの場合など、サンプルポイントに関して実行される保持テストまたは破棄テストがあり、レンダリングに関する当初に定義されるグラフィックスデータ(たとえば、フラグメント属性)が、当該の特定のサンプルポイントでのテストされる関連する1つまたは複数のパラメータの正確な値を与えない場合に、特にあてはまる可能性がある。   This is, for example, in graphics processing, there is a retention or destruction test that is performed on the sample points, such as in the case of an alpha test, and the graphics data (e.g., fragment attributes) initially defined for rendering is This may be especially true if it does not give an exact value for the relevant parameter or parameters being tested at a particular sample point.

たとえば、保持テストまたは破棄テストが、たとえばフラグメントの複数のサンプリングポイントの深さ値またはステンシル値に関してフラグメントシェーダ内で実行されなければならないが、そのフラグメントに関して当初に定義された単一の深さ値またはステンシル値だけがある場合がある。この場合に、アルファ値の導出に関して上で述べたものに類似する形で特定のサンプリングポイントに関する深さ値および/またはステンシル値を導出し、その後、アルファテストに関して上で述べたものに類似する形で各サンプリングポイントで(「アンチエイリアシングされた」形で)より正確に深さテストまたはステンシルテストを実行することができる。   For example, a retention or destruction test must be performed in a fragment shader, for example for a depth value or stencil value for multiple sampling points of a fragment, but with a single depth value originally defined for that fragment or There may be only stencil values. In this case, a depth value and / or stencil value for a particular sampling point is derived in a manner similar to that described above for derivation of the alpha value, and then similar to that described above for the alpha test. Allows more accurate depth or stencil testing at each sampling point (in “anti-aliased” form).

したがって、本発明を、グラフィックスレンダリングシステム内でアルファテスト以外にも適用できると思われる。   Thus, it is believed that the present invention can be applied beyond the alpha test within a graphics rendering system.

したがって、本発明のもう1つの態様によれば、グラフィックスレンダリングシステムでパラメータテストを実行する方法であって、1つまたは複数のフラグメントに関するパラメータテストを
当該の1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のパラメータ値を生成するステップと、
サンプリングポイントごとに個別に、サンプリングポイントについて生成された個々のパラメータ値を使用してパラメータテストを実行するステップと
によって実行するステップを含む方法が提供される。
Thus, according to another aspect of the present invention, a method for performing a parametric test in a graphics rendering system, wherein a parametric test for one or more fragments is performed on one or more of the one or more fragments. Generating individual parameter values for a plurality of sampling points;
A method is provided that includes, for each sampling point, performing a parameter test using individual parameter values generated for the sampling point.

本発明のもう1つの態様によれば、グラフィックスレンダリングシステムでパラメータテストを実行する装置であって、
1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のパラメータ値を生成する手段と、
各サンプリングポイントについて個別に、サンプリングポイントについて生成された個々のパラメータ値を使用してパラメータテストを実行する手段と
を含む装置が提供される。
According to another aspect of the present invention, an apparatus for performing a parameter test in a graphics rendering system comprising:
Means for generating individual parameter values for one or more sampling points of one or more fragments;
Means for performing a parameter test individually for each sampling point using the individual parameter values generated for the sampling point.

同様に、本発明のもう1つの態様によれば、表示されるイメージのグラフィックスプリミティブを処理する方法であって、
表示のためにプリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成するステップと、
レンダリングされるグラフィックスフラグメントごとにレンダリングされたフラグメントデータのセットを判定するためにプリミティブについて生成されたグラフィックスフラグメントをレンダリングするステップと、
1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントについて個々のパラメータ値をレンダリングプロセス中に生成するステップと、
サンプリングポイントについて生成された個々のパラメータ値を、サンプリングポイントに関する後続処理のために使用するステップと
を含む方法が提供される。
Similarly, according to another aspect of the present invention, a method for processing graphics primitives of a displayed image comprising:
Generating a set of graphics fragments to render primitives for display;
Rendering the graphics fragment generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Generating individual parameter values during the rendering process for one or more sampling points of one or more fragments;
Using the individual parameter values generated for the sampling points for subsequent processing on the sampling points.

本発明のもう1つの態様によれば、表示されるイメージのグラフィックスプリミティブを処理するグラフィックス処理システムであって、
表示のためにプリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成する手段と、
レンダリングされるグラフィックスフラグメントごとにレンダリングされたフラグメントデータのセットを判定するためにプリミティブについて生成されたグラフィックスフラグメントをレンダリングする手段と、
1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントについて個々のパラメータ値をレンダリングプロセス中に生成する手段と、
サンプリングポイントについて生成された個々のパラメータ値を、サンプリングポイントに関する後続処理のために使用する手段と
を含むグラフィックス処理システムが提供される。
According to another aspect of the invention, a graphics processing system for processing graphics primitives of a displayed image comprising:
Means for generating a set of graphics fragments to render primitives for display;
Means for rendering the graphics fragments generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Means for generating individual parameter values during the rendering process for one or more sampling points of one or more fragments;
Means for using individual parameter values generated for the sampling points for subsequent processing on the sampling points.

当業者によって了解されるとおり、本発明のこれらの態様は、本明細書で説明する本発明の好ましい特徴および任意選択の特徴のいずれか1つまたは複数またはすべてを含むことができ、好ましくは含む。したがって、たとえば、当該の特定のパラメータおよびテストは、好ましくは、フラグメント(1つまたは複数)に関するサンプリングポイント(1つまたは複数)でのアルファ値、深さ値、および/またはステンシル値と、アルファテスト、深さテスト、および/またはステンシルテストである。同様に、当該のパラメータテストは、好ましくは、当該のサンプリングポイントを保持するのか、又は、破棄するのかを判断するのに使用される。   As will be appreciated by those skilled in the art, these aspects of the invention can include, preferably include, any one or more or all of the preferred and optional features of the invention described herein. . Thus, for example, the particular parameter and test preferably includes an alpha value, a depth value, and / or a stencil value at the sampling point (s) for the fragment (s) and the alpha test. A depth test, and / or a stencil test. Similarly, the parameter test is preferably used to determine whether to keep or discard the sampling point.

同様に、個々のサンプリングポイントでの導出されたパラメータ値に関して実行されるテストは、好ましくは、サンプリングポイントについて個別に生成された1つまたは複数の個々のパラメータ値を1つまたは複数の各基準パラメータ値と比較することを含む。   Similarly, tests performed on derived parameter values at individual sampling points preferably include one or more individual parameter values generated individually for the sampling points with one or more reference parameters. Including comparing with the value.

これらの配置で、望まれる場合に、深さ値とステンシル値との両方を導出し、その後、たとえば両方のパラメータ(属性)に関して比較テストを実行するなど、各サンプリングポイントで複数のパラメータまたは属性の値を導出する(およびテストする)ことも可能である。   With these arrangements, if desired, both the depth value and the stencil value are derived, and then a comparison test is performed on both parameters (attributes), for example, multiple parameters or attributes at each sampling point. It is also possible to derive (and test) a value.

同様に、好ましくは、個々のパラメータ値は、当該の1つまたは複数のフラグメントについて、複数のサンプリングポイントおよび/またはカバーされるサンプリングポイントのそれぞれについて生成される。同様に、サンプリングポイントについて生成される個々のパラメータ値は、好ましくは、上で述べた形で推定される(および、たとえば、好ましくは、当該のフラグメントおよび/またはフラグメントのうちの複数について当初に定義されたかそれに割り当てられたパラメータ値(1つまたは複数)を少なくとも部分的に使用して生成される)。   Similarly, preferably individual parameter values are generated for each of a plurality of sampling points and / or covered sampling points for the one or more fragments of interest. Similarly, the individual parameter values generated for a sampling point are preferably estimated in the manner described above (and, for example, preferably initially defined for the fragment and / or a plurality of fragments). Generated or at least partially using the parameter value (s) assigned or assigned to it).

同様に、個々のパラメータ値がそれについて生成されるサンプリングポイントが、ラスタ化ステージでプリミティブのカバレッジを判定するのに使用されるサンプリングポイントに対応することが好ましい(これは必須ではないが)。   Similarly, the sampling points for which individual parameter values are generated preferably correspond to the sampling points used to determine the coverage of the primitive at the rasterization stage (although this is not essential).

一般に、本発明のこれらの態様および実施形態は、たとえば、プリミティブにまたがる既知の分布関数を有しない場合がある任意のフラグメント属性(たとえば、グラフィックスプログラマによってテクスチャを用いて任意に操作できるフラグメント属性など)に適用することができる。というのは、その場合に、グラフィックス処理システムが、当初に、各サンプリングポイントでのパラメータの正確な値を導出できない場合があるからである。同様に、本発明のこれらの態様および実施形態は、所定のパラメータまたは属性の値が、あるサンプルポイントで望まれるか要求されるが、そのサンプルポイントでの値がまだ定義されていない場合に必ず適用することができる。   In general, these aspects and embodiments of the present invention may include, for example, any fragment attribute that may not have a known distribution function across primitives (e.g., a fragment attribute that can be arbitrarily manipulated using textures by a graphics programmer). ) Can be applied. This is because in that case the graphics processing system may initially not be able to derive the exact value of the parameter at each sampling point. Similarly, these aspects and embodiments of the present invention ensure that a value for a given parameter or attribute is desired or required at a sample point, but the value at that sample point is not yet defined. Can be applied.

本発明を、主に単一のグラフィックスプリミティブの処理に関して説明してきたが、当業者によって了解されるとおり、表示されるイメージは、通常は複数のプリミティブから構成され、したがって、実際には、本発明の方法は、ディスプレイを構成するプリミティブごとに繰り返され、その結果、最終的に、フラグメントデータの適当なセットが、イメージ全体(または、たとえばタイルベースのレンダリングシステムでは、イメージの関連する部分)を表示するのに必要なイメージのサンプリングポイントごとに生成済みになり、そのデータを、その後、たとえば表示のためにダウンサンプリングすることができる。   Although the present invention has been described primarily with respect to the processing of a single graphics primitive, as will be appreciated by those skilled in the art, the displayed image is usually composed of a plurality of primitives and, therefore, in practice, the book. The method of the invention is repeated for each primitive that makes up the display, so that eventually an appropriate set of fragment data is generated for the entire image (or, for example, in a tile-based rendering system, the relevant portion of the image). Each sampling point of the image needed to be displayed has been generated and the data can then be downsampled, for example for display.

特に好ましい実施形態では、本発明のさまざまな機能が、ディスプレイデバイス用のフレームバッファに書き込まれるデータを生成し、出力する単一のグラフィックス処理プラットフォーム上で実行される。   In a particularly preferred embodiment, the various functions of the present invention are performed on a single graphics processing platform that generates and outputs data that is written to a frame buffer for a display device.

本発明は、「パイプライン式」配置を有するレンダラ(この場合に、レンダラは、レンダリングパイプラインの形になる)など、任意の形または構成のレンダラに適用可能である。好ましい実施形態では、本発明は、ハードウェアグラフィックスレンダリングパイプラインに適用される。本発明のさまざまな機能および要素などを、望み通りに、たとえば、好ましくは、適当な機能ユニット、処理ロジック、プロセッサ、マイクロプロセッサ配置などによって実施することができる。   The present invention is applicable to renderers of any shape or configuration, such as renderers having a “pipeline” arrangement (where the renderer is in the form of a rendering pipeline). In the preferred embodiment, the present invention applies to a hardware graphics rendering pipeline. Various functions and elements of the present invention can be implemented as desired, for example, preferably by suitable functional units, processing logic, processors, microprocessor arrangements, and the like.

本発明は、直接モードレンダリング、遅延モードレンダリング、タイルベースのレンダリングなど、すべての形のレンダリングに適用可能であるが、遅延モードレンダリングを使用するグラフィックスレンダラおよび特にタイルベースのレンダラに特に適用可能である。   The present invention is applicable to all forms of rendering, including direct mode rendering, lazy mode rendering, tile based rendering, etc., but is particularly applicable to graphics renderers that use lazy mode rendering and especially tile based renderers. is there.

上から了解されるとおり、本発明は、排他的にではないが特に、3Dグラフィックスプロセッサおよび3Dグラフィックス処理デバイスに適用可能であり、したがって、本明細書で説明される本発明の装置を含むか本明細書で説明される本発明の態様のうちの任意の1つまたは複数に従って動作する、3Dグラフィックスプロセッサおよび3Dグラフィックス処理プラットフォームに及ぶ。上で述べた特定の機能を実行するのに必要なすべてのハードウェアを条件として、そのような3Dグラフィックスプロセッサは、それ以外に、3Dグラフィックスプロセッサが含む通常の機能ユニットなどのうちのいずれか1つまたは複数またはすべてを含むことができる。   As will be appreciated from above, the present invention is particularly, but not exclusively, applicable to 3D graphics processors and 3D graphics processing devices, and thus includes the apparatus of the present invention as described herein. It extends to 3D graphics processors and 3D graphics processing platforms that operate according to any one or more of the aspects of the invention described herein. Subject to all the hardware required to perform the specific functions mentioned above, such 3D graphics processors would otherwise be any of the normal functional units that a 3D graphics processor contains, etc. Can include one or more or all.

本発明の説明された態様および実施形態のすべてが、適宜、本明細書で説明される好ましい特徴および任意選択の特徴のいずれか1つまたは複数またはすべてを含むことができ、好ましくは含むことも、当業者によって了解されるであろう。   All described aspects and embodiments of the invention may, and preferably do, include any one or more or all of the preferred and optional features described herein as appropriate. Will be understood by those skilled in the art.

本発明による方法は、少なくとも部分的に、ソフトウェア、たとえばコンピュータプログラムを使用することによって実施することができる。したがって、さらなる態様から見た時に、本発明が、データ処理手段にインストールされた時に本明細書で説明される方法を実行するように特に適合されたコンピュータソフトウェアと、プログラム要素がデータ処理手段上で実行される時に本明細書で説明される方法を実行するコンピュータソフトウェアコード部分を含むコンピュータプログラム要素と、プログラムがデータ処理システム上で実行される時に本明細書で説明される1つまたは複数の方法のすべてのステップを実行するように適合されたコード手段を含むコンピュータプログラムとを提供することがわかるであろう。データプロセッサは、マイクロプロセッサシステム、プログラマブルFPGA(フィールドプログラマブルゲートアレイ)などとすることができる。   The method according to the invention can be implemented at least in part by using software, for example a computer program. Thus, when viewed from a further aspect, computer software and program elements specially adapted to perform the methods described herein when the present invention is installed on a data processing means and program elements on the data processing means. A computer program element comprising computer software code portions that perform the methods described herein when executed, and one or more methods described herein when the program is executed on a data processing system It will be appreciated that there is provided a computer program comprising code means adapted to perform all of the steps. The data processor can be a microprocessor system, a programmable FPGA (field programmable gate array), or the like.

本発明は、データ処理手段を含むグラフィックスプロセッサ、レンダラ、またはマイクロプロセッサシステムを動作させるのに使用される時に、前記データ処理手段とあいまって、前記プロセッサ、レンダラ、またはシステムに本発明の方法のステップを実行させる上記ソフトウェアを含むコンピュータソフトウェア担体にも及ぶ。そのようなコンピュータソフトウェア担体は、ROMチップ、CD ROM、またはディスクなどの物理記憶媒体とすることができ、あるいは、ワイヤ上の電子信号、光信号、もしくは衛星へなどの無線信号または類似物などの信号とすることができる。   The present invention, when used to operate a graphics processor, renderer, or microprocessor system that includes data processing means, in combination with the data processing means, provides the processor, renderer, or system with the method of the invention. It also extends to a computer software carrier comprising the above software for performing the steps. Such a computer software carrier can be a physical storage medium such as a ROM chip, a CD ROM, or a disk, or an electronic signal on a wire, an optical signal, or a wireless signal such as to a satellite or the like It can be a signal.

さらに、本発明の方法のすべてのステップがコンピュータソフトウェアによって実行される必要があるのではなく、したがって、さらに広い態様から、本発明が、本明細書で示される方法のステップのうちの少なくとも1つを実行する、コンピュータソフトウェアおよびコンピュータソフトウェア担体上にインストールされた上記ソフトウェアを提供することを了解されたい。   Further, not all steps of the methods of the present invention need to be performed by computer software, and thus, from a broader aspect, the present invention is capable of at least one of the method steps set forth herein. It will be appreciated that computer software and the software installed on the computer software carrier are provided.

したがって、本発明は、コンピュータシステムと共に使用されるコンピュータプログラム製品として適切に実施することができる。そのような実施態様は、コンピュータ可読媒体、たとえばディスケット、CD-ROM、ROM、もしくはハードディスクなどの有形の媒体に固定されるか、あるいは、光通信回線もしくはアナログ通信回線を含むがこれらに限定はされない有形の媒体を介してまたはマイクロ波、赤外線もしくは他の伝送技法を含むがこれらに限定はされない無線技法を使用して無形でのいずれかでモデムもしくは他のインターフェースデバイスを介してコンピュータシステムに伝送可能であるかのいずれかの、一連のコンピュータ可読命令を含むことができる。この一連のコンピュータ可読命令は、本明細書で前に説明した機能性のすべてまたは一部を実施する。   Accordingly, the present invention can be suitably implemented as a computer program product for use with a computer system. Such embodiments are fixed to a tangible medium such as a computer readable medium, such as a diskette, CD-ROM, ROM, or hard disk, or include but are not limited to an optical communication line or an analog communication line. Can be transmitted to a computer system either via a tangible medium or via a modem or other interface device, either intangible using wireless techniques including but not limited to microwave, infrared or other transmission techniques Can include a series of computer-readable instructions. This series of computer readable instructions implements all or part of the functionality previously described herein.

当業者は、そのようなコンピュータ可読命令を、多数のコンピュータアーキテクチャまたはオペレーティングシステムと共に使用される複数のプログラミング言語で記述できることを了解するであろう。さらに、そのような命令を、半導体、磁気、もしくは光を含むがこれらに限定されない現在または将来の任意のメモリテクノロジを使用して格納することができ、あるいは、光、赤外線、もしくはマイクロ波を含むがこれらに限定はされない現在または将来の任意の通信テクノロジを使用して伝送することができる。そのようなコンピュータプログラム製品を、付随する印刷文書または電子文書を伴う取り外し可能媒体、たとえばシュリンクラップされたソフトウェアとして配布でき、たとえばシステムROMまたは固定ディスク上でコンピュータシステムにプリロードでき、あるいは、ネットワーク、たとえばインターネットまたはワールドワイドウェブを介してサーバまたは電子掲示板から配布できることが、企図されている。   Those skilled in the art will appreciate that such computer readable instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Further, such instructions can be stored using any current or future memory technology including, but not limited to, semiconductor, magnetic, or light, or include light, infrared, or microwave Can be transmitted using any current or future communication technology, including but not limited to. Such computer program products can be distributed as removable media with accompanying printed or electronic documents, such as shrink-wrapped software, preloaded into a computer system, for example on a system ROM or fixed disk, or on a network, for example It is contemplated that it can be distributed from a server or electronic bulletin board via the Internet or the World Wide Web.

本発明の複数の好ましい実施形態を、例としてのみ、添付図面を参照して説明する。   The preferred embodiments of the present invention will now be described by way of example only and with reference to the accompanying drawings.

エイリアシングの影響を概略的に示す図である。It is a figure which shows the influence of aliasing roughly. スーパーサンプリングアンチエイリアシング技法を概略的に示す図である。FIG. 2 schematically illustrates a supersampling anti-aliasing technique. 表示されるイメージを概略的に示す図である。It is a figure which shows the image displayed schematically. 本発明の実施形態で使用される例示的なサンプリングパターンを示す図である。FIG. 4 shows an exemplary sampling pattern used in an embodiment of the present invention. 本発明に従って動作できるグラフィックス処理プラットフォームの実施形態を示す図である。FIG. 2 illustrates an embodiment of a graphics processing platform that can operate in accordance with the present invention. 図3のピクセルの拡大図を示す図である。FIG. 4 is an enlarged view of the pixel in FIG. 3. 本発明の実施形態でレンダリングされるフラグメントに関連するデータを示す図である。FIG. 4 is a diagram illustrating data associated with a fragment rendered in an embodiment of the present invention. 本発明によるアルファテスティング配置の実施形態を概略的に示す図である。FIG. 3 schematically illustrates an embodiment of an alpha testing arrangement according to the invention. フラグメントに関連し、本発明の説明される実施形態でのアルファテストの結果として変更されるデータを概略的に示す図である。FIG. 6 schematically illustrates data associated with a fragment and modified as a result of an alpha test in the described embodiment of the invention. フラグメントに関連し、本発明の説明される実施形態でのアルファテストの結果として変更されるデータを概略的に示す図である。FIG. 6 schematically illustrates data associated with a fragment and modified as a result of an alpha test in the described embodiment of the invention. 本発明によるアルファテスティング配置の実施形態を概略的に示す図である。FIG. 3 schematically illustrates an embodiment of an alpha testing arrangement according to the invention.

本発明の好ましい実施形態を、これから、表示用の3Dグラフィックスの処理の文脈で説明する。しかし、当業者によって了解されるとおり、本発明は、3Dグラフィックスの処理に限定されず、他の応用をも有する。   Preferred embodiments of the invention will now be described in the context of processing 3D graphics for display. However, as will be appreciated by those skilled in the art, the present invention is not limited to processing 3D graphics and has other applications.

当技術分野で既知のとおり、また、上で述べたように、3Dグラフィックスイメージが表示される時に、そのイメージは、通常、まず一連のプリミティブ(ポリゴン)として定義され、このプリミティブは、次に、順番にグラフィックスレンダリングのためにグラフィックスフラグメントに分割(ラスタ化)される。通常の3Dグラフィックスレンダリング動作中に、レンダラは、(たとえば)各フラグメントに関連する色(赤、緑、および青すなわちRGB)データおよび透明度(アルファ、a)データを変更し、その結果、フラグメントを正しく表示できるようにする。フラグメントがレンダラを完全に通り抜けたならば、それに関連するデータ値は、メモリに格納され、表示のための出力の準備ができる。   As is known in the art and as described above, when a 3D graphics image is displayed, the image is usually first defined as a series of primitives (polygons), which are then In turn, it is divided (rasterized) into graphics fragments for graphics rendering. During normal 3D graphics rendering operations, the renderer changes (for example) the color (red, green, and blue or RGB) data and transparency (alpha, a) data associated with each fragment, resulting in the fragment being Enable to display correctly. Once the fragment has passed completely through the renderer, the data value associated with it is stored in memory and ready for output for display.

本発明は、特に、グラフィックスイメージを表示する時のアンチエイリアシング動作を容易にすることに関する。当技術分野で既知のとおり、アンチエイリアシングは、表示されるイメージの複数のサンプルをとり、その後、これらのサンプルをディスプレイの出力解像度にダウンサンプリングすることによって実行される。   In particular, the present invention relates to facilitating an anti-aliasing operation when displaying a graphics image. As is known in the art, anti-aliasing is performed by taking multiple samples of the displayed image and then down-sampling these samples to the output resolution of the display.

図3に、本実施形態で使用される基本的なアンチエイリアシング配置を概略的に示す。図3は、本実施形態では表示されるイメージの一部を表す(下でさらに述べるように、本実施形態がタイルベースのレンダリングシステムなので)(同等に、イメージのディスプレイ全体を表すためにピクセルのセットを考慮することができるが)ピクセルのアレイ30を概略的に示す。各ピクセルは、図3に示されているように、当該のピクセルについてイメージをサンプリングし、したがってピクセルが最終的なディスプレイにどのように表示されるのかを決定するのに使用される、4つのサンプリングポイントのセット31を含む。   FIG. 3 schematically shows a basic anti-aliasing arrangement used in the present embodiment. FIG. 3 represents a portion of the displayed image in this embodiment (since this embodiment is a tile-based rendering system, as described further below) (equivalently, pixel representation to represent the entire display of the image). An array 30 of pixels is schematically shown (although a set can be considered). Each pixel, as shown in FIG. 3, samples the image for that pixel, and thus the four samplings used to determine how the pixel is displayed on the final display Includes a set 31 of points.

図3に示されているように、同一のサンプリングパターン31が、ピクセルアレイ30内のピクセルごとに使用される。この実施形態では、サンプリングパターンは、回転グリッドサンプリングパターンであるが、望まれる場合には、任意の他の適切なアンチエイリアシングサンプリングパターンを使用することができる。図4に、ピクセル内のサンプリングパターン内のサンプリングポイントの位置を示す単一ピクセルの拡大図を示す。   As shown in FIG. 3, the same sampling pattern 31 is used for each pixel in the pixel array 30. In this embodiment, the sampling pattern is a rotating grid sampling pattern, but any other suitable anti-aliasing sampling pattern can be used if desired. FIG. 4 shows an enlarged view of a single pixel showing the location of sampling points within the sampling pattern within the pixel.

図3に、単一のプリミティブ32の形でピクセルアレイ30にオーバーレイされたイメージも示す(ここで、イメージが、図3では、図を単純にするために単一のプリミティブを含むものとして図示されており、実際には、イメージは、当技術分野で既知のとおり、多数のオーバーラップするプリミティブを含むことができ、通常は含むことを了解されたい)。図3からわかるように、プリミティブ32は、ピクセルアレイ30内のピクセルのいくつかについて完全にオーバーレイするが、他のピクセルのうちのいくつかの一部分だけを通過する。   FIG. 3 also shows an image overlaid on the pixel array 30 in the form of a single primitive 32 (where the image is shown in FIG. 3 as including a single primitive for simplicity of illustration). (In practice, it is understood that an image can and will typically contain a number of overlapping primitives, as is known in the art). As can be seen from FIG. 3, the primitive 32 completely overlays some of the pixels in the pixel array 30, but passes only some of the other pixels.

イメージのプリミティブ32を処理するために、レンダリングシステムは、本質的に、ラスタ化ステージで、各ピクセルのサンプルポイントの各セット内のサンプルポイントのうちのどれがプリミティブ32によってカバーされるかを判定し、次に、これらのカバーされるサンプルポイントのデータをレンダリングし、格納し、その結果、プリミティブ32のイメージをディスプレイデバイス上に正しく表示できるようにする。   To process the primitive 32 of the image, the rendering system essentially determines which of the sample points in each set of sample points for each pixel are covered by the primitive 32 at the rasterization stage. The data for these covered sample points is then rendered and stored so that the primitive 32 image can be displayed correctly on the display device.

本実施形態でのこの形での表示用のプリミティブ32のイメージの処理を、これから、図5を参照して説明するが、図5は、本発明に従って動作できる3Dグラフィックス処理プラットフォームの実施形態を概略的に示す。図5に示された3Dグラフィックス処理プラットフォームは、タイルベースのレンダラであるが、当業者によって了解されるとおり、他のレンダリング配置を使用することができる(実際に、本発明は、2次元グラフィックス処理にも同等に適用可能である)。   The processing of primitive 32 images for display in this form in this embodiment will now be described with reference to FIG. 5, which illustrates an embodiment of a 3D graphics processing platform that can operate in accordance with the present invention. Shown schematically. The 3D graphics processing platform shown in FIG. 5 is a tile-based renderer, but other rendering arrangements can be used as will be appreciated by those skilled in the art (in fact, the present invention is a two-dimensional graphics It is equally applicable to the processing of the process).

図5に示されたグラフィックス処理プラットフォームは、ラスタライザ50を含み、ラスタライザ50は、レンダリングのためにグラフィックスプリミティブを受け取り、プリミティブデータを、そのプリミティブをレンダリングするための適当な位置を有するグラフィックスフラグメントに変換する。   The graphics processing platform shown in FIG. 5 includes a rasterizer 50, which receives graphics primitives for rendering, graphics data having the appropriate location for rendering the primitive data and the primitives. Convert to

次に、レンダリングパイプラインの形のレンダラ51があり、レンダラ51は、ラスタライザ50からレンダリング用のグラフィックスフラグメントを受け取り、テクスチャマッピング、フォギング、ブレンディングなどの複数のレンダリング動作をこれらのグラフィックスフラグメントに適用して、フラグメントの表示用の適当なフラグメントデータを生成する。レンダラ51からのレンダリングされたフラグメントデータは、後続処理のためにレンダリングパイプラインのタイルバッファ52に格納される。   Next, there is a renderer 51 in the form of a rendering pipeline, which receives the graphics fragments for rendering from the rasterizer 50 and applies multiple rendering operations such as texture mapping, fogging, blending, etc. to these graphics fragments. Then, suitable fragment data for fragment display is generated. Rendered fragment data from the renderer 51 is stored in the tile buffer 52 of the rendering pipeline for subsequent processing.

タイルバッファ52は、当技術分野で既知のとおり、表示されるイメージの一部を表すフラグメントデータのアレイを格納する。イメージ全体を表示するのに十分なタイルが処理され終わるまで、各タイルが処理されたならば、そのデータが、適当なストレージにエクスポートされ、その後、次のタイルが処理され、以下同様である。   Tile buffer 52 stores an array of fragment data representing a portion of the image to be displayed, as is known in the art. If each tile has been processed until enough tiles have been processed to display the entire image, the data is exported to the appropriate storage, then the next tile is processed, and so on.

本実施形態では、4つのタイルバッファ52が設けられる。各タイルバッファは、32×32アレイにそのフラグメントデータを格納する(すなわち、表示されるイメージ内のサンプル位置の32×32アレイに対応する)。これらのタイルバッファは、別々のバッファとして設けることができ、あるいは、実際には、すべてを同一のより大きいバッファの一部とすることができる。これらのタイルバッファは、グラフィックス処理プラットフォーム(チップ)上に配置される(そのプラットフォームにローカルである)。   In the present embodiment, four tile buffers 52 are provided. Each tile buffer stores its fragment data in a 32 × 32 array (ie, corresponding to a 32 × 32 array of sample locations in the displayed image). These tile buffers can be provided as separate buffers or, in practice, all can be part of the same larger buffer. These tile buffers are located on the graphics processing platform (chip) (local to that platform).

タイルバッファ52からのデータは、ダウンサンプリングユニット53に入力され、そこから、当技術分野で既知のとおり、ディスプレイデバイス55での表示のためにディスプレイデバイス55のフレームバッファ54(グラフィックス処理プラットフォーム自体には存在しなくてもよい)に出力される。ディスプレイデバイス55は、たとえば、コンピュータモニタなど、ピクセルのアレイを含むディスプレイを含むことができる。   Data from tile buffer 52 is input to downsampling unit 53, from which frame buffer 54 of display device 55 (to the graphics processing platform itself) for display on display device 55, as is known in the art. May not exist). Display device 55 can include a display including an array of pixels, such as, for example, a computer monitor.

ダウンサンプリングユニット53は、タイルバッファに格納されたフラグメントデータを、ディスプレイデバイス55に適当な解像度にダウンサンプリングする(すなわち、ディスプレイデバイスのピクセルに対応するピクセルデータのアレイが生成されるようにする)。   The downsampling unit 53 downsamples the fragment data stored in the tile buffer to a resolution appropriate for the display device 55 (ie, an array of pixel data corresponding to the pixels of the display device is generated).

本実施形態では、イメージのサンプリングポイントは、タイルバッファ52内にそれら自体の個々のフラグメントデータエントリを有する。したがって、各32×32データ位置タイルバッファは、たとえば、タイルバッファとディスプレイフレームバッファとの間で4倍ダウンサンプリングが使用される場合に、表示されるイメージ内の16×16ピクセルアレイに対応する(その場合に、各ピクセルは、効果的に4つのサンプリングポイントを関連付けられるので)。   In this embodiment, the image sampling points have their own individual fragment data entries in the tile buffer 52. Thus, each 32 × 32 data position tile buffer corresponds to a 16 × 16 pixel array in the displayed image when, for example, 4 × downsampling is used between the tile buffer and the display frame buffer ( In that case, each pixel is effectively associated with 4 sampling points).

この実施形態では、4つのタイルバッファのうちの2つが、各サンプリングポイントの色(赤、緑、青)値を格納するのに使用され(この目的に1つのタイルバッファを使用することが可能であるはずであるが、2つが好ましい)、1つのタイルバッファが、各サンプリングポイントのZ(深さ)値を格納するのに使用され、1つのタイルバッファが、各サンプリングポイントのステンシル値を格納するのに使用される。もちろん、他の配置が可能である。   In this embodiment, two of the four tile buffers are used to store the color (red, green, blue) values for each sampling point (one tile buffer can be used for this purpose). One tile buffer is used to store the Z (depth) value for each sampling point, and one tile buffer stores the stencil value for each sampling point. Used to. Of course, other arrangements are possible.

サンプリングポイントは、それぞれ、タイルバッファ52内にそれら自体の個々のフラグメントデータエントリを有するが、本実施形態では、タイルバッファ52内の個々のサンプル(データ)位置ごと(すなわち、個々のサンプルポイントごと)に別々のフラグメントをレンダリングするのではなく、1つのフラグメントが、イメージ内の所定のピクセルに対応する4つのサンプルポイントのセットごとにレンダリングされる。言い換えると、単一のフラグメントが、サンプルポイントのセットの4つすべてのサンプルポイント(したがって、イメージ内の1ピクセル)を一気に一緒にレンダリングするのに使用される、すなわち、所定のピクセルのサンプルポイントがすべて共通してレンダリングされるようにする。したがって、フラグメントがレンダリングされたならば、レンダリングされたフラグメントデータは、イメージの、とられる個々のサンプル位置ごとにフラグメントデータの別々のセットを提供するために、タイルバッファ52内の適当なサンプル位置の複数のコピーに格納される。   Each sampling point has its own individual fragment data entry in the tile buffer 52, but in this embodiment, for each individual sample (data) location in the tile buffer 52 (i.e., for each individual sample point). Rather than rendering separate fragments, one fragment is rendered for each set of four sample points corresponding to a given pixel in the image. In other words, a single fragment is used to render all four sample points (and thus one pixel in the image) of a set of sample points together, i.e. a sample point for a given pixel Make sure everything is rendered in common. Thus, once a fragment has been rendered, the rendered fragment data is stored in the appropriate sample location in tile buffer 52 to provide a separate set of fragment data for each individual sample location of the image taken. Stored in multiple copies.

したがって、現在の例では、図3に示されたプリミティブ32を含むイメージを考慮すると、ラスタライザ50は、グラフィックス処理システムからそのプリミティブを受け取り、次に、イメージのサンプリングポイントのどのセットが(すなわち、事実上、ピクセルアレイ30内のどのピクセルが)プリミティブ32によってカバーされるサンプリングポイントを含むか否かを判定する(これは、当技術分野で既知の任意の適当な形で実行することができる)。ラスタライザ50は、次に、プリミティブ32によってカバーされるサンプリングポイントを含むことがわかったサンプリングポイントのセットごとにフラグメントを生成する。ラスタライザ50は、次に、これらのフラグメントをレンダリングのためにレンダラ51に渡す。   Thus, in the current example, considering an image that includes the primitive 32 shown in FIG. 3, the rasterizer 50 receives that primitive from the graphics processing system, and then which set of image sampling points (i.e., Determine (virtually which pixels in pixel array 30) contain the sampling points covered by primitive 32 (this can be done in any suitable manner known in the art) . Rasterizer 50 then generates a fragment for each set of sampling points found to contain the sampling points covered by primitive 32. The rasterizer 50 then passes these fragments to the renderer 51 for rendering.

図7に、レンダリングされる前にフラグメントごとに生成され、レンダラ51を通過するデータ70を概略的に示す。図7に示されているように、各フラグメントに関連するデータは、とりわけ、フラグメントのx,y位置71(フラグメントが対応するサンプリングポイントのセットの(実際には、本実施形態では、イメージ内の関連するピクセルの)イメージ内のx,y位置を表す)を、フラグメントの色値(RGB)、透明度値(アルファ)、深さ値(z)、およびステンシル値など、必要なフラグメントごとのデータ72と一緒に含む。このフラグメントごとのデータ72は、当技術分野で既知のとおり、その後にタイルバッファ52に格納されるフラグメントのフラグメントデータの出力セットを提供するためにレンダラ51のレンダリングユニットによって使用され、適当に変更される。   FIG. 7 schematically illustrates data 70 generated for each fragment before being rendered and passing through renderer 51. As shown in FIG. 7, the data associated with each fragment contains, among other things, the x, y position 71 of the fragment (of the set of sampling points to which the fragment corresponds (in fact, in this embodiment, in the image (Representing the x, y position in the image) Including with. This per-fragment data 72 is used and appropriately modified by renderer 51's rendering unit to provide an output set of fragment data for fragments that are subsequently stored in tile buffer 52, as is known in the art. The

フラグメントに関連するデータ70は、フラグメントが対応するサンプルポイントのセット内のサンプル位置のそれぞれを表すビットアレイの形のカバレッジマスク73をも含む。ビットアレイカバレッジマスク73内の各位置には、対応するサンプル位置が当該のプリミティブによってカバーされることがラスタ化ステージでわかる場合に「1」がセットされ、サンプル位置が当該のプリミティブによってカバーされない場合に「0」がセットされる。これは、レンダリングプロセスが、所定のフラグメントに関連するサンプルポイントのうちのどれが当該のプリミティブ32によって実際にカバーされるかを知ることを可能にし、その結果、レンダリングプロセスが、あるフラグメントについてレンダリングされるフラグメントデータがそのプリミティブによってカバーされるサンプルポイントについてのみ使用される(かつ、たとえば格納される)ことを保証できるようになる。   The data 70 associated with the fragment also includes a coverage mask 73 in the form of a bit array representing each of the sample locations in the set of sample points to which the fragment corresponds. Each position in the bit array coverage mask 73 is set to “1” if the rasterization stage knows that the corresponding sample position is covered by the primitive, and the sample position is not covered by the primitive Is set to "0". This allows the rendering process to know which of the sample points associated with a given fragment are actually covered by that primitive 32, so that the rendering process is rendered for a fragment. It can be ensured that the fragment data used is only used (and stored, for example) for the sample points covered by the primitive.

これが必要なのは、図3からわかるように、必ずしも、あるピクセルのサンプリングポイントのセットのサンプリングポイントのすべてがプリミティブによってカバーされるのではないからである。たとえば、レンダリングされるプリミティブ32に関して図3のピクセル33のサンプリングポイントのセットの拡大図を示す図6に示されているように、ピクセル33のサンプリングポイントのセットのうちで、サンプリングポイント43および44は、プリミティブ32によってカバーされるが、サンプリングポイント45および46は、そのプリミティブによってカバーされないことがわかる。したがって、ラスタライザ50は、サンプル位置のそのセットが、プリミティブ32によってカバーされる2つのサンプル位置43および44を含むので、ピクセル33のサンプル位置のセットのレンダリングのために1つのフラグメントを生成する。しかし、プリミティブ32は、サンプル位置43および44だけをカバーするので、レンダリングされるフラグメントデータは、これらのサンプル位置に関してのみタイルバッファ52に格納されねばならず、サンプル位置45および46に関して格納されてはならない。   This is necessary because not all of the sampling points of a set of sampling points for a pixel are necessarily covered by a primitive, as can be seen from FIG. For example, of the set of sampling points for pixel 33, sampling points 43 and 44 are shown in FIG. 6 which shows an enlarged view of the set of sampling points for pixel 33 of FIG. It can be seen that the sampling points 45 and 46 are not covered by the primitive 32, but are covered by the primitive 32. Thus, the rasterizer 50 generates one fragment for the rendering of the set of sample positions for pixel 33 because that set of sample positions includes two sample positions 43 and 44 that are covered by primitive 32. However, since primitive 32 covers only sample locations 43 and 44, the fragment data to be rendered must be stored in tile buffer 52 only for those sample locations, not for sample locations 45 and 46. Don't be.

したがって、図6に示されたピクセル33のサンプル位置のセットに関して、ラスタライザは、形「1100」(図7に示されているように)のカバレッジマスク73を生成して、サンプル位置43および44がフラグメント70によってレンダリングされつつあるが、サンプル位置45および46がそのフラグメントによってレンダリングされてはいない(これらがプリミティブ32によってカバーされないので)ことを示す。   Accordingly, for the set of sample locations for pixel 33 shown in FIG. 6, the rasterizer generates a coverage mask 73 of the form “1100” (as shown in FIG. 7) so that sample locations 43 and 44 are Indicates that it is being rendered by fragment 70, but sample locations 45 and 46 have not been rendered by that fragment (since they are not covered by primitive 32).

したがって、ラスタライザ50は、レンダリングのためにプリミティブ32を受け取り、まずアレイ30のサンプリングポイントのどのセット(ピクセル)がプリミティブ32によってカバーされるサンプリングポイントを含むかを判定し、サンプリングポイントのこれらのセットのそれぞれについて、図7に示された形のデータを関連付けられたフラグメントを生成する。   Thus, rasterizer 50 receives primitives 32 for rendering and first determines which set of sampling points (pixels) of array 30 contains the sampling points covered by primitive 32 and then sets these sets of sampling points. For each, a fragment associated with the data in the form shown in FIG. 7 is generated.

各フラグメントは、その後、レンダリングのために順番にレンダラ51に渡される。本実施形態では、フラグメントは、2×2フラグメントのブロックでレンダリングのためにレンダラ51に送られる、すなわち、レンダリングエンジンが、4フラグメント(ピクセル)ブロック(2ピクセル幅×2ピクセル高さ)でフラグメント(ピクセル)を効果的に処理するようにする。レンダラ内でフラグメント(ピクセル)を単独で処理するなど、他の配置が、もちろん可能である。   Each fragment is then passed to renderer 51 in turn for rendering. In this embodiment, the fragments are sent to the renderer 51 for rendering in blocks of 2 × 2 fragments, i.e. the rendering engine has fragments (2 pixels wide by 2 pixels high) in 4 fragment (pixel) blocks (2 pixels wide by 2 pixels high). Pixel). Other arrangements are of course possible, such as processing fragments (pixels) alone in the renderer.

レンダラ51は、当技術分野で既知のとおり、受け取るフラグメントに対してレンダリング動作を実行する。これらのレンダリング動作は、たとえば、フラグメントの色値(RGB)および透明度値(A)を変更して、各フラグメントの最終的なレンダリングされたフラグメントデータを提供することを含む。本実施形態では、レンダラ51は、各フラグメントに関連するテクスチャ位置データ(s,t)(これは、図7には図示されていない)に基づいてテクスチャマッピングプロセスを実行するテクスチャマッピングステージを含む。   The renderer 51 performs a rendering operation on the received fragment, as is known in the art. These rendering operations include, for example, changing fragment color values (RGB) and transparency values (A) to provide the final rendered fragment data for each fragment. In this embodiment, the renderer 51 includes a texture mapping stage that performs a texture mapping process based on texture position data (s, t) associated with each fragment (which is not shown in FIG. 7).

本実施形態では、テクスチャマッピングプロセスがフラグメントに適用されるテクスチャ(色)を決定するのに使用するイメージ内の位置は、フラグメントが共通してそれらをレンダリングするのに使用されているカバーされるサンプリングポイントのイメージ内の位置に従って選択される、すなわち、「重み付き」テクスチャサンプル位置が使用される。   In this embodiment, the position in the image that the texture mapping process uses to determine the texture (color) applied to the fragments is the covered sampling that the fragments are commonly used to render them. Selected according to the position of the point in the image, ie, a “weighted” texture sample position is used.

もちろん、他のテクスチャサンプル位置配置が可能である。たとえば、すべてのテクスチャルックアップ(look-up)を、単純に当該のサンプリングパターンの中央で行うことができる。   Of course, other texture sample position arrangements are possible. For example, all texture look-ups can simply be done at the center of the sampling pattern.

各フラグメントが単一のテクスチャルックアップを受けるので、各フラグメントが対応するサンプリングポイントのセットが、共通して単一のテクスチャルックアップを受ける(すなわち、テクスチャリング動作が、フラグメントに関連するサンプリングポイントのセットのすべてのサンプルポイントについて使用される)すなわち、サンプリングポイントのセットが、効果的にマルチサンプリングされた形で処理されることを了解されたい。   Since each fragment undergoes a single texture lookup, the set of sampling points to which each fragment corresponds commonly undergoes a single texture lookup (i.e., the texturing operation is performed on the sampling points associated with the fragment). It will be appreciated that a set of sampling points is effectively processed in a multisampled manner (used for all sample points in the set).

本実施形態のレンダリングプロセスのもう1つの部分は、アルファテストが、レンダリングされる各フラグメントに関して実行されることである。当技術分野で既知のとおり、アルファテストは、通常、フラグメントについて定義されたアルファ値をアルファテスト用に定義された基準アルファ値またはしきいアルファ値と比較することと、その後、その比較を基礎としてフラグメントの保存または破棄のいずれかを行うこととを含む。   Another part of the rendering process of this embodiment is that an alpha test is performed for each rendered fragment. As is known in the art, alpha testing typically involves comparing the alpha value defined for a fragment with a reference alpha value or threshold alpha value defined for alpha testing and then on the basis of that comparison. Storing or discarding the fragment.

本実施形態では、アルファテスト処理は、上で述べたように各フラグメントが当初に単一のアルファ値をそれについて定義されるのみである場合があるという事実にもかかわらず、本明細書で述べるように「アンチエイリアシングされた」アルファテストプロセスを提供するために、本発明に従って変更される。   In this embodiment, the alpha test process is described herein despite the fact that each fragment may initially only be defined with a single alpha value as described above. To provide an “anti-aliased” alpha test process in accordance with the present invention.

図8、9、10、および11に、本実施形態のアルファテストプロセスを示す。   8, 9, 10, and 11 illustrate the alpha test process of the present embodiment.

図8に、図3からのピクセル80、81、82、および83に対応するピクセル80、81、82、および83の2×2ブロックを概略的に示す。図8の線84および85は、図3に示されたプリミティブのエッジ84および85に対応する。図8には、各ピクセル80、81、82、および83のそれぞれのサンプリングポイントも示されている。各フラグメントの中央点87、88、89、および90も、図8に示されている。   FIG. 8 schematically shows a 2 × 2 block of pixels 80, 81, 82, and 83 corresponding to pixels 80, 81, 82, and 83 from FIG. Lines 84 and 85 in FIG. 8 correspond to the edges 84 and 85 of the primitive shown in FIG. In FIG. 8, the respective sampling points of each pixel 80, 81, 82, and 83 are also shown. The central points 87, 88, 89, and 90 of each fragment are also shown in FIG.

上で述べたように、最初のラスタ化ステージで、プリミティブの幾何エッジ84および85が、各ピクセルのどのサンプリングポイントがそのプリミティブによってカバーされるかを判定するために、ピクセル80、81、82、および83のそれぞれのサンプリングポイントに対してテストされる。次に、フラグメントのセットが生成され、各フラグメントは、ディスプレイ内の所定のピクセルに対応し、そのピクセルの適当なデータを定義し、プリミティブが各ピクセルのどのサンプリング位置をカバーするかをも示す。   As mentioned above, at the first rasterization stage, primitive geometric edges 84 and 85 are used to determine which sampling points of each pixel are covered by that primitive. And 83 for each sampling point. A set of fragments is then generated, each fragment corresponding to a given pixel in the display, defining the appropriate data for that pixel, and indicating which sampling location of each pixel the primitive covers.

したがって、現在の場合に、フラグメント80、81、82、および83のセットは、図9に概略的に示されているように、ラスタ化ステージでピクセル80、81、82、および83の2×2ブロックについて生成される。   Thus, in the present case, the set of fragments 80, 81, 82, and 83 is a 2 × 2 of pixels 80, 81, 82, and 83 in the rasterization stage, as shown schematically in FIG. Generated for blocks.

図9に示されているように、フラグメント80のカバレッジマスク73は、フラグメント80が対応するピクセルの2つのサンプリング位置がプリミティブによってカバーされることを示し、フラグメント81のカバレッジマスク73は、そのピクセルの3つのサンプリング位置がカバーされることを示し、以下同様である。   As shown in FIG. 9, the fragment 80 coverage mask 73 indicates that the two sampling locations of the pixel to which fragment 80 corresponds are covered by the primitive, and the fragment 81 coverage mask 73 Indicates that three sampling positions are covered, and so on.

やはり図9に示されているように、各フラグメント80、81、82、および83は、それについて当初に定義された単一の透明度(アルファ)値を有する。この値は、本実施形態では、プリミティブの頂点について定義されたアルファ値から導出されるが、当技術分野で既知の任意の適切な形で行うことができる。   As also shown in FIG. 9, each fragment 80, 81, 82, and 83 has a single transparency (alpha) value originally defined for it. This value is derived in this embodiment from the alpha value defined for the vertices of the primitive, but can be done in any suitable manner known in the art.

現在の例では、フラグメント80の透明度(アルファ)値が0.3であり、フラグメント81については1.0であり、フラグメント82については0.0であり、フラグメント83については0.3であると仮定される。もちろん、これらの値は、例示にすぎない。   In the current example, it is assumed that fragment 80 has a transparency (alpha) value of 0.3, 1.0 for fragment 81, 0.0 for fragment 82, and 0.3 for fragment 83. Of course, these values are merely examples.

通常の過程では、フラグメントごとに定義されたこれらのアルファ値が、上で述べたように、アルファテストを基礎として全体としてフラグメント(したがってそのフラグメントが対応するピクセル)の保存または破棄のいずれかを行うために、アルファテスト用に定義された基準アルファ値との比較のために使用される。   In the normal course, these alpha values defined for each fragment either save or discard the fragment (and hence the pixel it corresponds to) as a whole based on the alpha test, as described above. Therefore, it is used for comparison with the reference alpha value defined for the alpha test.

しかし、本実施形態では、および本発明によれば、アルファテストが実行される時に、アルファテストを実行するためにフラグメントごとに当初に定義されたアルファ値を単純に採用するのではなく、その代わりに、個々のアルファ値が、当該のフラグメントがそれをレンダリングするのに使用されているカバーされるサンプリング位置のそれぞれに関して生成される。その後、個々のサンプリング位置に関するアルファテストが、実行される。   However, in this embodiment, and according to the present invention, when the alpha test is performed, instead of simply adopting the alpha value originally defined for each fragment to perform the alpha test, instead In turn, an individual alpha value is generated for each of the covered sampling positions that the fragment of interest is using to render it. Thereafter, alpha tests on individual sampling positions are performed.

このプロセスを、フラグメント80のサンプリングポイント86のアルファ値の導出に関して示す。同一のプロセスが、当該のフラグメントについてプリミティブによってカバーされる各個々のサンプリングポイントに関して適用される。   This process is illustrated with respect to the derivation of the alpha value of sampling point 86 of fragment 80. The same process is applied for each individual sampling point covered by the primitive for that fragment.

フラグメント80のサンプリングポイント86の個々のアルファ値を生成するために、まず、フラグメント80について当初に定義された単一のアルファ値0.3が、フラグメント80の中央87でのアルファ値としてとられる。   In order to generate the individual alpha values of the sampling points 86 of the fragment 80, first a single alpha value 0.3 initially defined for the fragment 80 is taken as the alpha value at the center 87 of the fragment 80.

その後、サンプリングポイント86でのアルファ値とフラグメント80の中央87でのアルファ値との間の差が、推定される。これは、スクリーンX,Y位置に関するアルファ値の傾き(導関数)を推定することによって行われる(この傾きは、その後、サンプリングポイント86とフラグメント80の中央87との間の既知の相対スクリーンX,Y距離を使用して中央87からサンプリングポイント86へのアルファ値の相対変化を導出するのに使用することができる)。   Thereafter, the difference between the alpha value at the sampling point 86 and the alpha value at the center 87 of the fragment 80 is estimated. This is done by estimating the slope (derivative) of the alpha value with respect to the screen X, Y position (this slope is then the known relative screen X, between the sampling point 86 and the center 87 of the fragment 80). Y distance can be used to derive the relative change in alpha value from center 87 to sampling point 86).

位置に関するアルファ値の傾き(変化の割合)は、本実施形態では、フラグメント80の中央87でのアルファ値とフラグメント81の中央88でのアルファ値(フラグメント81について定義されたアルファ値1.0にされる)との間の差を判定することと、中央87と88との間のXでの既知のスクリーン距離とによってX方向でのアルファ値の傾きを導出することによって決定される。   In this embodiment, the slope of the alpha value with respect to the position (rate of change) is set to the alpha value at the center 87 of the fragment 80 and the alpha value at the center 88 of the fragment 81 (the alpha value defined for fragment 81 is 1.0). ) And the known screen distance at X between the centers 87 and 88 and by deriving the slope of the alpha value in the X direction.

同様に、フラグメント80のY方向でのアルファ値の傾き(変化の割合)は、フラグメント80の中央87でのアルファ値とフラグメント82の中央89でのアルファ値(フラグメント82について定義されたアルファ値0.0にされる)との間の差を識別することと、フラグメント中央の間のY距離とによって決定される。   Similarly, the slope of the alpha value in the Y direction of fragment 80 (the rate of change) is the alpha value at the center 87 of fragment 80 and the alpha value at the center 89 of fragment 82 (the alpha value 0.0 defined for fragment 82). And the Y distance between the fragment centers.

生成されたXおよびYの導関数(変化の割合)は、次に、フラグメント80の中央87とサンプリングポイント86との間のスクリーン空間X距離およびY距離を乗算されて、中央87からサンプリングポイント86までのアルファ値の変化を与える。このアルファ値の推定された変化が、次に、フラグメント80の中央点87のアルファ値(すなわち、本実施形態ではフラグメント80について当初に定義されたアルファ値)に加算され、これによって、サンプルポイント86での「真の」アルファ値の推定値が導出される。   The generated X and Y derivatives (rate of change) are then multiplied by the screen space X and Y distances between the center 87 of the fragment 80 and the sampling point 86 to obtain the sampling point 86 from the center 87. Gives the change in alpha value up to. This estimated change in alpha value is then added to the alpha value at the center point 87 of the fragment 80 (i.e., the alpha value originally defined for the fragment 80 in this embodiment), thereby providing a sample point 86. An estimate of the “true” alpha value at is derived.

その後、このプロセスは、フラグメント80の残りのカバーされるサンプル位置のそれぞれについて、および同様に他のフラグメントのカバーされるサンプル位置について繰り返される(この場合に、他のフラグメントの中央点でのアルファ値として各フラグメントの当初に定義されたアルファ値を使用するのではあるが。したがって、たとえば、フラグメント81の場合に、そのフラグメントの中央88でのアルファ値は、フラグメント81の当初に定義されたアルファ値1.0になるようにされる)。   This process is then repeated for each of the remaining covered sample positions of fragment 80 and also for the covered sample positions of the other fragments (in this case, the alpha value at the center point of the other fragment). For example, in the case of fragment 81, the alpha value at the center 88 of that fragment is the alpha value originally defined for fragment 81 1.0).

図11に、さらに、アルファ値導出プロセスを示す。図11に示されているように、サンプリング位置101、102、103、および104を有する所定のフラグメント100について、フラグメントについて当初に定義されたアルファ値105が、フラグメントの中央106でのアルファ値として採用され、フラグメント勾配(デルタ)107および108が、x方向およびy方向で導出され、その後、各サンプリングポイントでのアルファ値を与えるために中央点アルファ値105と共に使用される。   FIG. 11 further shows an alpha value derivation process. As shown in FIG. 11, for a given fragment 100 with sampling positions 101, 102, 103, and 104, the alpha value 105 originally defined for the fragment is taken as the alpha value at the center 106 of the fragment Fragment gradients (deltas) 107 and 108 are derived in the x and y directions and then used with the center point alpha value 105 to give an alpha value at each sampling point.

望まれる場合に、各カバーされるサンプル位置のアルファ値を導出し、推定する他の配置を使用することができる。   Other arrangements that derive and estimate the alpha value of each covered sample location can be used if desired.

たとえば、アルファ値を推定する時にフラグメントの2×2ブロックの他のフラグメント81、82、および83のそれぞれについて、フラグメント80について導出されたXおよびYの勾配(変化の割合)を使用するのではなく、勾配(変化の割合)値の新しいセットを、類似する形でフラグメントごとに個別に生成することができる。   For example, instead of using the X and Y slopes (rate of change) derived for fragment 80 for each of the other fragments 81, 82, and 83 of the 2x2 block of fragments when estimating the alpha value A new set of slope (rate of change) values can be generated individually for each fragment in a similar manner.

したがって、たとえば、フラグメント81の場合に、X勾配を、フラグメント80の中央87でのアルファ値とフラグメント81の中央88でのアルファ値とを考慮することによって導出することができ、Y勾配を、フラグメント81の中央88でのアルファ値とフラグメント83の中央90でのアルファ値とを考慮することによって導出することができる。   Thus, for example, in the case of fragment 81, the X slope can be derived by considering the alpha value at the center 87 of fragment 80 and the alpha value at the center 88 of fragment 81, It can be derived by considering the alpha value at the center 88 of 81 and the alpha value at the center 90 of the fragment 83.

たとえば、フラグメント81の中央88でのアルファ値とフラグメント83の中央90でのアルファ値とを使用して、フラグメント80のY勾配を導出することなども可能である。同様に、望まれる場合に、図8に示されたものよりさらに離隔されたフラグメントのアルファ値を使用して、アルファ勾配を導出することができる。   For example, the alpha value at the center 88 of the fragment 81 and the alpha value at the center 90 of the fragment 83 can be used to derive the Y slope of the fragment 80, and so on. Similarly, alpha gradients can be derived using the alpha values of fragments further spaced than those shown in FIG. 8 if desired.

一般に、スクリーン空間X距離およびY距離に関するアルファ値の勾配(変化の割合)を導出する任意の適切な所望の技法を使用することができる。より洗練された技法は、サンプルポイントでのアルファ値のより正確な推定値を提供する可能性があるが、その一方で、より高い処理作業負荷を必要とする可能性がある。   In general, any suitable desired technique for deriving the slope of the alpha value (ratio of change) with respect to the screen space X distance and Y distance can be used. More sophisticated techniques may provide a more accurate estimate of the alpha value at the sample point, while requiring a higher processing workload.

サンプル位置ごとに推定された個々のアルファ値は、その後、アルファテスト比較に使用される、すなわち、これらは、アルファテスト用に定義されたしきいアルファ値と比較される。したがって、たとえば、サンプル位置86の場合に、そのサンプル位置について推定されたアルファ値が、アルファテスト用に定義された基準アルファ値と比較される。これが、その後、各カバーされるサンプリング位置に関して別々に繰り返される。   The individual alpha values estimated for each sample position are then used for alpha test comparison, i.e., they are compared to the threshold alpha value defined for the alpha test. Thus, for example, in the case of sample location 86, the estimated alpha value for that sample location is compared to a reference alpha value defined for alpha testing. This is then repeated separately for each covered sampling location.

次に、個々のサンプルポイントに関するアルファテスト比較の結果が、アルファテスト比較を基礎とするさらなる処理からサンプル位置を保持するか、又は、破棄するかのいずれかを行うのに使用される。これは、アルファテストの結果として破棄されることが実際にわかったすべてのカバーされるサンプリングポイントを除外するために、当該のフラグメントに関連するカバレッジマスク73を変更することによって行われる。   The result of the alpha test comparison for the individual sample points is then used to either keep the sample position or discard it from further processing based on the alpha test comparison. This is done by changing the coverage mask 73 associated with the fragment in question to exclude all covered sampling points that are actually found to be discarded as a result of the alpha test.

このプロセスは図10に示されており、図10には、アルファテスト比較が直線(効果的にアルファテストによって導入されたエッジ)91をもたらし、その直線91の上ではサンプルが現在の例でアルファテストの結果として破棄されることがわかるが、その直線91の下ではサンプルが保持されるという仮定のもとに、アルファテストの実行の後の図9に示されたフラグメント80、81、82、および83の結果のフラグメントデータセットが示されている。   This process is illustrated in Figure 10, where the alpha test comparison results in a straight line (effectively the edge introduced by the alpha test) 91 on which the sample is alpha in the current example. It can be seen that it is discarded as a result of the test, but under the assumption that the sample is retained under the straight line 91, fragments 80, 81, 82, shown in FIG. And 83 resulting fragment data sets are shown.

アルファテストによって導入されたエッジ91をもたらしたこのアルファテストおよびアルファしきい値の結果は、図9に示されているように、そのサンプル位置のカバレッジマスクビットを「1」から「0」に変更することによって、サンプリングポイント86がさらなる処理から除外される(すなわち、アルファテストに合格しなかった)ことを示すように、フラグメント80のカバレッジマスクが変更されることである。同様に、フラグメント81に関して、そのフラグメントのカバレッジマスクには、今は「0000」がセットされている。というのは、アルファテストが、プリミティブによってカバーされたそのフラグメントのサンプル位置のすべてを破棄したからである。フラグメント83の場合に、2つのサンプル位置がアルファテストによって破棄され、したがって、そのフラグメントのカバレッジマスクは、「1001」になる。   The result of this alpha test and alpha threshold, which resulted in edge 91 introduced by the alpha test, changed the coverage mask bit for that sample location from "1" to "0" as shown in Figure 9 By doing so, the coverage mask of fragment 80 is changed to indicate that sampling point 86 is excluded from further processing (ie, did not pass the alpha test). Similarly, regarding the fragment 81, “0000” is now set in the coverage mask of the fragment. This is because the alpha test has discarded all of the sample positions for that fragment covered by the primitive. In the case of fragment 83, two sample positions are discarded by the alpha test, so the coverage mask for that fragment is “1001”.

この形で、全体として1ピクセルの4つのサンプリング位置のセットについて定義された単一の初期アルファ値だけがある場合があるという事実にもかかわらず、個々のアルファテストが、カバーされる各サンプリング位置ごとに実行され、その後、サンプリング位置を、このアルファテストの結果として個別に保持するか、又は、破棄することができる。これの効果は、アルファテストによって導入されるすべてのエッジが、効果的に「アンチエイリアシングされる」ことである(これらのエッジが、その位置に関してサンプリング位置のレベルで処理されるので)。   In this way, despite the fact that there may only be a single initial alpha value defined for a set of four sampling positions of one pixel as a whole, each alpha test will cover each sampling position covered Each sampling position can then be kept individually as a result of this alpha test or discarded. The effect of this is that all edges introduced by the alpha test are effectively “anti-aliased” (since these edges are processed at the level of the sampling position with respect to that position).

フラグメントがレンダリングされたならば、そのデータを、タイルバッファ52に適当に格納する必要がある。本発明によれば、各レンダリングされたフラグメントのデータは、各フラグメントに関連するカバレッジマスク73によって示される、タイルバッファアレイ内の適当なサンプル位置(1つまたは複数)に格納される。したがって、たとえば、図7に例示されたフラグメント70の場合に、そのフラグメントのレンダリングされたデータは、タイルバッファ52内のサンプル位置のうちの2つに格納されるが、フラグメント70に関連する他の2つのサンプル位置には格納されない。   Once the fragment is rendered, the data needs to be stored appropriately in the tile buffer 52. In accordance with the present invention, the data for each rendered fragment is stored at the appropriate sample location (s) in the tile buffer array as indicated by the coverage mask 73 associated with each fragment. Thus, for example, in the case of fragment 70 illustrated in FIG. 7, the rendered data for that fragment is stored in two of the sample locations in tile buffer 52, but the other associated with fragment 70. It is not stored in the two sample positions.

タイルバッファ52に格納されるフラグメントデータは、上で述べたように各サンプル位置の色値(RGB)、透明度値(A)、深さ値(Z)、およびステンシル値を含む。このデータは、任意の適切な形で格納することができる。   The fragment data stored in the tile buffer 52 includes a color value (RGB), a transparency value (A), a depth value (Z), and a stencil value at each sample position as described above. This data can be stored in any suitable form.

当業者によって了解されるとおり、タイルバッファに格納される、新たにレンダリングされたフラグメントデータは、当技術分野で既知のとおり、タイルバッファに既に格納されているデータとブレンディングすることができ、通常はブレンディングされる必要がある。したがって、所定のフラグメントが、共通して複数のサンプル位置をレンダリングするのに使用されている(すなわち、フラグメントからのデータがタイルバッファ内の複数のサンプル位置に格納されるようになる)場合に、このブレンディング動作は、これを達成するためすなわち、新たにレンダリングされたフラグメントデータをタイルバッファ内の各適当なサンプル位置に適当にブレンディングするために、適当な形で実行されなければならない。したがって、たとえば、ブレンディング動作を、たとえば、レンダリングされたフラグメントデータを複数の並列のタイルバッファにブレンディングするために、適当に「並列の」形で実行することができる。   As will be appreciated by those skilled in the art, newly rendered fragment data stored in the tile buffer can be blended with data already stored in the tile buffer, as is known in the art, and typically Need to be blended. Thus, if a given fragment is commonly used to render multiple sample locations (i.e., data from the fragment will be stored in multiple sample locations in the tile buffer) This blending operation must be performed in an appropriate manner to accomplish this, ie, to properly blend the newly rendered fragment data to each appropriate sample location in the tile buffer. Thus, for example, a blending operation can be performed in an appropriate “parallel” fashion, for example, to blend rendered fragment data into a plurality of parallel tile buffers.

このプロセスが、プリミティブ32に関係付けられたすべてのフラグメントについて完了したならば、イメージの後続プリミティブについてこのプロセスを繰り返すことができる(上で述べたように、イメージは、通常は単一のプリミティブ32のみではなく、複数のプリミティブから構成されるので)。このプロセスは、タイルバッファ52がそのサンプル位置のそれぞれに適当なデータを格納されるまで、イメージのすべてのプリミティブについて繰り返される。   Once this process is complete for all fragments associated with primitive 32, the process can be repeated for subsequent primitives in the image (as described above, an image is usually a single primitive 32). Not just composed of multiple primitives). This process is repeated for all primitives in the image until tile buffer 52 has been stored with the appropriate data for each of its sample locations.

次に、タイルバッファに格納されたデータを、当技術分野で既知のとおり、ダウンサンプリングおよびその後の表示のためのフレームバッファ54へのエクスポートのためにダウンサンプリングユニット53にエクスポートすることができる。このダウンサンプリングは、任意の適切な形で行うことができる。本実施形態では、データの線形ブレンディングが、データをダウンサンプリングするのに使用される。しかし、望まれる場合には、他の配置が可能である。   The data stored in the tile buffer can then be exported to the downsampling unit 53 for export to the frame buffer 54 for downsampling and subsequent display, as is known in the art. This downsampling can be done in any suitable manner. In this embodiment, linear blending of data is used to downsample the data. However, other arrangements are possible if desired.

表示されるイメージが複数のオーバーラップするプリミティブを含む場合には、当技術分野で既知のとおり、レンダリングプロセスが、実際に任意の所定のプリミティブが実際に所定のサンプリングポイントで見られるかどうかを判定することも必要になる。本実施形態では、これは、当技術分野で既知のとおり、フラグメントがレンダリングされる時のフラグメントの深さ(z)値を比較することによって実行される。具体的に言うと、新しいフラグメントをレンダリングする時に、そのフラグメントに関連する深さ(z)値が、そのフラグメントが対応するタイルバッファ52内のサンプル位置について既に格納されているフラグメントデータの深さ値と比較され、その比較が、新しいフラグメントが見られないことを示す場合には、新しいフラグメントは、それ以上は処理されない。その一方で、深さ値の比較が、実際に新しいフラグメントがタイルバッファ52内に現在格納されているフラグメントの代わりに見られることを示す場合には、新しいフラグメントがレンダリングされ、そのレンダリングされたフラグメントデータが、タイルバッファ52内の適当なサンプル位置の既存データの代わりに格納される。   If the displayed image contains multiple overlapping primitives, the rendering process determines if any given primitive is actually seen at a given sampling point, as is known in the art. It is also necessary to do. In this embodiment, this is done by comparing the depth (z) values of the fragments as they are rendered, as is known in the art. Specifically, when rendering a new fragment, the depth (z) value associated with that fragment is the depth value of the fragment data already stored for the sample location in the tile buffer 52 to which that fragment corresponds. If the comparison indicates that no new fragment is found, the new fragment is not processed further. On the other hand, if the depth value comparison shows that the new fragment is actually seen instead of the fragment currently stored in the tile buffer 52, the new fragment is rendered and the rendered fragment Data is stored in place of the existing data at the appropriate sample location in tile buffer 52.

ダウンサンプリングユニット53は、それがフレームバッファ54に出力するデータに対して適当なガンマ補正をも適用する。   The downsampling unit 53 also applies appropriate gamma correction to the data it outputs to the frame buffer 54.

本発明および本実施形態に対する他の配置および変更が、もちろん可能である。たとえば、アルファテストおよび/またはアルファ値推定に関する、1フラグメントあたりまたは1ピクセルあたり4つを超えるサンプル位置を使用することができる。   Other arrangements and modifications to the invention and the embodiments are of course possible. For example, more than four sample locations per fragment or per pixel for alpha testing and / or alpha value estimation can be used.

本実施形態で、アルファテストによって導入されたエッジが1つのフラグメントまたはフラグメントのブロックを通過する可能性が高いかどうかを査定するために、推定されたアルファテストを使用することも可能である。たとえば、図8に示された配置では、たとえばフラグメント83に関するアルファテスト比較の結果が、2つのサンプル位置が保持されるが2つが破棄されることを示す。それが、アルファテストによって導入されたエッジがそのフラグメントを通過することの表示になる。この種のテストに関して、たとえばプリミティブの外側幾何エッジのラスタ化に使用されるものと同一のサンプル位置を使用するのではなく、フラグメントの角に関してテストを実行することも可能である。   In this embodiment, the estimated alpha test can also be used to assess whether an edge introduced by the alpha test is likely to pass through a fragment or a block of fragments. For example, in the arrangement shown in FIG. 8, for example, the result of an alpha test comparison for fragment 83 indicates that two sample positions are retained, but two are discarded. That is an indication that the edge introduced by the alpha test passes through the fragment. For this type of test, it is also possible to perform a test on the corners of the fragment, rather than using the same sample positions used, for example, for rasterizing the outer geometric edge of the primitive.

そのような配置では、1つのフラグメントまたはフラグメントのブロックがアルファテストによって導入されたエッジを含む可能性が高いことがわかる場合に、好ましい実施形態では、当該のフラグメントまたはフラグメントのブロックが、好ましくは、完全にサブサンプリングされた基礎での(言い換えると、各サンプル位置が別々のフラグメントとして処理され、したがってそれ自体の個々の色値およびアルファ値などを含むようにする)レンダリングのために再発行される。   In such an arrangement, where it is found that a fragment or block of fragments is likely to contain edges introduced by alpha testing, in a preferred embodiment, the fragment or fragment block is preferably Reissued for rendering on a fully subsampled basis (in other words, each sample position is treated as a separate fragment, thus including its own individual color and alpha values, etc.) .

上からわかるように、本発明は、少なくともその好ましい実施形態において、アルファテストによって導入されるエッジを、完全にスーパーサンプリングされた形でレンダリングするためにプリミティブを処理する必要なしにアンチエイリアシングできるシステムを提供する。たとえば、完全にスーパーサンプリングする方法とは異なって、本発明の方法は、アンチエイリアシングされたアルファテスト配置のために1ピクセルあたりまたは1フラグメントあたり複数の色値を計算することを必要とはしない。これは、たとえば、本発明が、完全にスーパーサンプリング式のシステムと比較して、付随する電力節約と共に、処理での計算の減少を容易にすることを意味する。   As can be seen from the above, the present invention, at least in its preferred embodiment, provides a system that can anti-aliasing without the need to process primitives to render the edges introduced by the alpha test in a fully supersampled form. provide. For example, unlike a fully supersampled method, the method of the present invention does not require calculating multiple color values per pixel or per fragment for an anti-aliased alpha test arrangement. This means, for example, that the present invention facilitates a reduction in computation in the process, along with the associated power savings, compared to a fully supersampled system.

これは、本発明の好ましい実施形態では、少なくとも、レンダリングされるフラグメントに関して複数の個々のサンプリングポイントの個々のアルファ値を再作成するために、レンダリングされる各フラグメントについて当初に定義された単一のアルファ値を使用することと、その後、これらの個々のサンプリングポイントに関して個別にアルファテストを実行することとによって達成される。   This is a preferred embodiment of the present invention, at least a single originally defined for each fragment to be rendered in order to recreate the individual alpha values of a plurality of individual sampling points for the fragment to be rendered. This is accomplished by using alpha values and then performing alpha tests individually on these individual sampling points.

上で述べたように、本発明および本実施形態を、特にグラフィックス処理システムでのアルファテストに関して説明したが、本発明を、特定のサンプルポイントでの属性値またはパラメータ値を知ることが望まれ、これらの値がまだ定義されていない他の状況に同等に適用することができる。したがって、たとえば、本発明を、特に、フラグメントシェーダ内など、グラフィックス処理システム内の深さテスティング動作および/またはステンシルテスティング動作に使用することができる。これらの場合に、アルファテスティングに関して上で説明した方法および技法を、当該の特定の1つまたは複数のパラメータに関して同様に適用することができる。   As noted above, the present invention and embodiments have been described with particular reference to alpha testing in graphics processing systems, but it is desirable to know the present invention for attribute values or parameter values at specific sample points. , These values are equally applicable to other situations where they are not yet defined. Thus, for example, the present invention can be used for depth testing operations and / or stencil testing operations within a graphics processing system, particularly, such as within a fragment shader. In these cases, the methods and techniques described above with respect to alpha testing can be similarly applied with respect to that particular parameter or parameters.

30 ピクセルのアレイ
31 4つのサンプリングポイントのセット
32 プリミティブ
33 ピクセル
43 サンプリングポイント
44 サンプリングポイント
45 サンプリングポイント
46 サンプリングポイント
50 ラスタライザ
51 レンダラ
52 タイルバッファ
53 ダウンサンプリングユニット
54 フレームバッファ
55 ディスプレイデバイス
70 データ
71 x,y位置
72 フラグメントごとのデータ
73 カバレッジマスク
80 ピクセル
81 ピクセル
82 ピクセル
83 ピクセル
84 線
85 線
86 サンプリングポイント
87 中央点
88 中央点
89 中央点
90 中央点
91 直線
100 フラグメント
101 サンプリング位置
102 サンプリング位置
103 サンプリング位置
104 サンプリング位置
105 アルファ値
106 中央
107 フラグメント勾配(デルタ)
108 フラグメント勾配(デルタ)
30 pixel array
31 Set of 4 sampling points
32 primitives
33 pixels
43 Sampling points
44 Sampling points
45 Sampling points
46 Sampling points
50 Rasterizer
51 Renderer
52 Tile buffer
53 Downsampling unit
54 Frame buffer
55 Display devices
70 data
71 x, y position
72 Data per fragment
73 Coverage mask
80 pixels
81 pixels
82 pixels
83 pixels
84 lines
85 lines
86 sampling points
87 Center point
88 Center point
89 Center point
90 Midpoint
91 straight line
100 fragments
101 Sampling position
102 Sampling position
103 Sampling position
104 Sampling position
105 Alpha value
106 center
107 Fragment gradient (delta)
108 Fragment gradient (delta)

Claims (19)

グラフィックスレンダリングシステムでアルファテストを実行する方法であって、1つまたは複数のフラグメントのアルファテストを、
当該の前記1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のアルファ値を生成するステップと、
サンプリングポイントごとに個別に、前記サンプリングポイントについて生成された前記個々のアルファ値を使用して、アルファテストを実行するステップと
によって実行するステップを含む方法。
A method for performing an alpha test in a graphics rendering system, wherein an alpha test of one or more fragments is performed,
Generating individual alpha values for one or more sampling points of the one or more fragments of interest;
Performing an alpha test using the individual alpha values generated for the sampling points individually for each sampling point.
個々のアルファ値がそれについて生成される前記サンプリングポイントが、ラスタ化ステージでプリミティブのカバレッジを判定するのに使用されるサンプリングポイントに対応する、請求項1に記載の方法。   The method of claim 1, wherein the sampling points for which individual alpha values are generated correspond to the sampling points used to determine the coverage of a primitive in a rasterization stage. 前記サンプリングポイントが、複数のフラグメントのグループに関するものである、請求項1または請求項2に記載の方法。   3. A method according to claim 1 or claim 2, wherein the sampling point is for a group of multiple fragments. 表示されるイメージのグラフィックスプリミティブを処理する方法であって、
表示のために前記プリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成するステップと、
各レンダリングされるグラフィックスフラグメントのレンダリングされたフラグメントデータのセットを判定するために前記プリミティブについて生成されたグラフィックスフラグメントをレンダリングするステップと、
前記レンダリングプロセスの一部として1つまたは複数のフラグメントに関してアルファテストを実行するステップと
を含み、前記アルファテストが、
当該の前記1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のアルファ値を生成するステップと、
アルファ値がそれのために生成されたサンプリングポイントごとに個別に、前記サンプリングポイントについて生成された前記個々のアルファ値を使用してアルファテストを実行するステップと
によって実行される、方法。
A method of processing graphics primitives of a displayed image,
Generating a set of graphics fragments to render the primitive for display;
Rendering the graphics fragment generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Performing an alpha test on one or more fragments as part of the rendering process, the alpha test comprising:
Generating individual alpha values for one or more sampling points of the one or more fragments of interest;
Performing an alpha test using the individual alpha values generated for the sampling points individually for each sampling point for which an alpha value has been generated.
当該の前記フラグメントに関連するアルファ値から各サンプリングポイントでの前記アルファ値を推定することによって前記サンプリングポイントについて前記個々のアルファ値を生成するステップを含む、請求項1から4のいずれか一項に記載の方法。   5. The method of any one of claims 1 to 4, comprising generating the individual alpha values for the sampling points by estimating the alpha value at each sampling point from the alpha values associated with the fragment. The method described. 当該の前記フラグメントについて定義されたアルファ値と当該の前記フラグメントの1つまたは複数の隣接するフラグメントについて定義された1つまたは複数の前記アルファ値とを使用して前記サンプリングポイントについて前記アルファ値を生成するステップを含む、請求項1から5のいずれか一項に記載の方法。   Generating the alpha value for the sampling point using an alpha value defined for the fragment of interest and one or more of the alpha values defined for one or more adjacent fragments of the fragment of interest; 6. The method according to any one of claims 1 to 5, comprising the step of: 前記アルファテストが、前記サンプリングポイントを破棄するかどうかを判断するのに使用される、請求項1から6のいずれか一項に記載の方法。   The method according to claim 1, wherein the alpha test is used to determine whether to discard the sampling point. 前記フラグメントがどのサンプリングポイントをレンダリングするのに使用されているのかを示すデータを各フラグメントに関連付けるステップと、前記アルファテストの結果として破棄されるサンプル位置を示すようにこのデータを変更するのに前記アルファテスト結果を使用するステップとを含む、請求項1から7のいずれか一項に記載の方法。   Associating each fragment with data indicating which sampling point the fragment is being used to render, and modifying the data to indicate sample locations that are discarded as a result of the alpha test. Using the alpha test results. 8. A method according to any one of the preceding claims. アルファテストによって導入されるエッジが当該の前記1つまたは複数のフラグメントを通過し得るかどうかを査定するために個々のサンプル位置に対する前記アルファテストを使用するステップを含む、請求項1から8のいずれか一項に記載の方法。   9. Any of claims 1 to 8, comprising using the alpha test for individual sample locations to assess whether an edge introduced by the alpha test can pass through the one or more fragments of interest. The method according to claim 1. グラフィックスレンダリングシステムでアルファテストを実行するシステムであって、 アルファテストを受けるフラグメントまたはフラグメントのグループの1つまたは複数のサンプリングポイントの個々のアルファ値を生成する手段と、
サンプリングポイントごとに個別に、前記サンプリングポイントについて生成された前記個々のアルファ値を使用して、アルファテストを実行する手段と
を含むシステム。
A system for performing an alpha test in a graphics rendering system, the means for generating individual alpha values for one or more sampling points of a fragment or group of fragments undergoing an alpha test;
Means for performing an alpha test using the individual alpha values generated for the sampling points individually for each sampling point.
個々のアルファ値がそれについて生成される前記サンプリングポイントが、ラスタ化ステージでプリミティブのカバレッジを判定するのに使用されるサンプリングポイントに対応する、請求項10に記載のシステム。 11. The system of claim 10 , wherein the sampling points for which individual alpha values are generated correspond to sampling points used to determine the coverage of primitives at the rasterization stage. 前記サンプリングポイントが、複数のフラグメントのグループに関するものである、請
求項10または請求項11に記載のシステム。
12. A system according to claim 10 or claim 11 , wherein the sampling point is for a group of multiple fragments.
表示されるイメージのグラフィックスプリミティブを処理するシステムであって、
表示のために前記プリミティブをレンダリングするためにグラフィックスフラグメントのセットを生成する手段と、
各レンダリングされるグラフィックスフラグメントのレンダリングされたフラグメントデータのセットを判定するために前記プリミティブについて生成されたグラフィックスフラグメントをレンダリングする手段と、
前記レンダリングプロセスの一部として1つまたは複数のフラグメントに関してアルファテストを実行する手段と
を含み、前記アルファテストを実行する前記手段が、
当該の前記1つまたは複数のフラグメントの1つまたは複数のサンプリングポイントの個々のアルファ値を生成する手段と、
サンプリングポイントごとに個別に、前記サンプリングポイントについて生成された前記個々のアルファ値を使用してアルファテストを実行する手段と
を含む、システム。
A system for processing graphics primitives of displayed images,
Means for generating a set of graphics fragments to render the primitive for display;
Means for rendering the graphics fragments generated for the primitive to determine a set of rendered fragment data for each rendered graphics fragment;
Means for performing an alpha test on one or more fragments as part of the rendering process, the means for performing the alpha test comprising:
Means for generating individual alpha values of one or more sampling points of the one or more fragments of interest;
Means for performing an alpha test using the individual alpha values generated for the sampling points individually for each sampling point.
当該の前記フラグメントに関連するアルファ値から各サンプリングポイントでの前記アルファ値を推定することによって前記サンプリングポイントについて前記個々のアルファ値を生成する手段を含む、請求項10から13のいずれか一項に記載のシステム。 The means of any of claims 10 to 13 , comprising means for generating the individual alpha values for the sampling points by estimating the alpha value at each sampling point from the alpha values associated with the fragment. The described system. 当該の前記フラグメントについて定義されたアルファ値と当該の前記フラグメントの1つまたは複数の隣接するフラグメントについて定義された1つまたは複数の前記アルファ値とを使用して前記サンプリングポイントについて前記アルファ値を生成する手段を含む、請求項10から14のいずれか一項に記載のシステム。 Generating the alpha value for the sampling point using an alpha value defined for the fragment of interest and one or more of the alpha values defined for one or more adjacent fragments of the fragment of interest; 15. A system according to any one of claims 10 to 14 , comprising means for: 前記アルファテストが、前記サンプリングポイントを破棄するかどうかを判断するのに使用される、請求項10から15のいずれか一項に記載のシステム。 16. A system according to any one of claims 10 to 15 , wherein the alpha test is used to determine whether to discard the sampling point. 前記フラグメントがどのサンプリングポイントをレンダリングするのに使用されているのかを示すデータを各フラグメントに関連付ける手段と、前記アルファテストの結果として破棄されるサンプル位置を示すようにこのデータを変更するのに前記アルファテスト結果を使用する手段とを含む、請求項10から16のいずれか一項に記載のシステム。 Means for associating each fragment with data indicating which sampling point the fragment is being used to render, and modifying the data to indicate sample locations that are discarded as a result of the alpha test. 17. A system according to any one of claims 10 to 16 , comprising means for using alpha test results. アルファテストによって導入されるエッジが当該の前記1つまたは複数のフラグメントを通過し得るかどうかを査定するために個々のサンプル位置に対する前記アルファテストを使用する手段を含む、請求項10から17のいずれか一項に記載のシステム。 18. Any of claims 10 to 17 , comprising means for using the alpha test for individual sample locations to assess whether an edge introduced by the alpha test can pass through the one or more fragments of interest. A system according to claim 1. コンピュータプログラム要素がデータ処理手段上で実行される時に請求項1から9のいずれか一項に記載の方法を実行するコンピュータソフトウェアコード部分を含む前記コンピュータプログラム要素。 10. A computer program element comprising a computer software code portion for performing the method of any one of claims 1 to 9 when the computer program element is executed on a data processing means.
JP2009020019A 2008-01-31 2009-01-30 Method and apparatus for processing computer graphics Active JP5483893B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0801812A GB0801812D0 (en) 2008-01-31 2008-01-31 Methods of and apparatus for processing computer graphics
GB0801812.9 2008-01-31

Publications (2)

Publication Number Publication Date
JP2009181582A JP2009181582A (en) 2009-08-13
JP5483893B2 true JP5483893B2 (en) 2014-05-07

Family

ID=39186673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009020019A Active JP5483893B2 (en) 2008-01-31 2009-01-30 Method and apparatus for processing computer graphics

Country Status (3)

Country Link
JP (1) JP5483893B2 (en)
CN (1) CN101533522B (en)
GB (2) GB0801812D0 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012032583A1 (en) * 2010-09-10 2012-03-15 富士通株式会社 Method of forming image data, method of writing image data, and image data processing circuit
KR101719485B1 (en) 2010-09-20 2017-03-27 삼성전자주식회사 Apparatus and method for early fragment discarding in graphic processing unit
CN107403461B (en) * 2012-01-16 2020-12-22 英特尔公司 Sampling apparatus and method for generating random sampling distributions using random rasterization
US9087409B2 (en) 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
CN103871095B (en) * 2012-12-17 2018-07-17 Arm有限公司 Hidden surface in graphic system is eliminated
US9953455B2 (en) * 2013-03-13 2018-04-24 Nvidia Corporation Handling post-Z coverage data in raster operations
US9767595B2 (en) * 2013-05-02 2017-09-19 Arm Limited Graphics processing systems
GB2521171B (en) * 2013-12-11 2020-02-05 Advanced Risc Mach Ltd Clipping of graphics primitives
GB2525636B (en) * 2014-04-30 2020-08-19 Geomerics Ltd Graphics processing systems
US9940686B2 (en) * 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
US10163183B2 (en) * 2016-01-13 2018-12-25 Rockwell Collins, Inc. Rendering performance using dynamically controlled samples
US10354365B2 (en) * 2016-01-18 2019-07-16 Adavanced Micro Devices, Inc. Hybrid anti-aliasing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2245805A (en) * 1990-06-29 1992-01-08 Philips Electronic Associated Generating an anti-aliased image
US5333245A (en) * 1990-09-07 1994-07-26 Modacad, Inc. Method and apparatus for mapping surface texture
US6128000A (en) * 1997-10-15 2000-10-03 Compaq Computer Corporation Full-scene antialiasing using improved supersampling techniques
DE69910980T2 (en) * 1998-03-05 2004-07-22 Microsoft Corp., Redmond ANTIALIASING WITH SUB-SCAN FOR TEXTURE EDGES
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
JP2005128173A (en) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd Figure drawing apparatus
GB0426170D0 (en) * 2004-11-29 2004-12-29 Falanx Microsystems As Processing of computer graphics

Also Published As

Publication number Publication date
GB0901671D0 (en) 2009-03-11
CN101533522A (en) 2009-09-16
GB0801812D0 (en) 2008-03-05
CN101533522B (en) 2014-02-12
GB2456919B (en) 2010-08-04
GB2456919A (en) 2009-08-05
JP2009181582A (en) 2009-08-13

Similar Documents

Publication Publication Date Title
JP5483893B2 (en) Method and apparatus for processing computer graphics
US8044971B2 (en) Methods of and apparatus for processing computer graphics
US9805447B2 (en) Methods of and apparatus for processing computer graphics
US8199146B2 (en) Processing of computer graphics
US9965876B2 (en) Method and apparatus for graphics processing of a graphics fragment
US20100110102A1 (en) Methods of and apparatus for processing computer graphics
US20040263516A1 (en) Hardware-accelerated anti-aliased graphics
JP2005100177A (en) Image processor and its method
US20060214946A1 (en) Hardware accelerated anti-aliased primitives using alpha gradients
JP2005100176A (en) Image processor and its method
GB2595326A (en) Graphics Processing Systems
Malan Edge Antialiasing by Post-Processing
JP6944304B2 (en) Texture processing method and its device
EP1058912B1 (en) Subsampled texture edge antialiasing
GB2444598A (en) Rasterisation and rendering of graphics primitives
US8411099B2 (en) Computer graphics processor and method of rendering images
Rajarapollu et al. Design and analysis of anti-aliasing filters for rendering of graphical entities
GB2444599A (en) Variable downsampling of graphics fragments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130930

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140218

R150 Certificate of patent or registration of utility model

Ref document number: 5483893

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250