JP5336067B2 - Method and apparatus for processing graphics - Google Patents

Method and apparatus for processing graphics Download PDF

Info

Publication number
JP5336067B2
JP5336067B2 JP2007314022A JP2007314022A JP5336067B2 JP 5336067 B2 JP5336067 B2 JP 5336067B2 JP 2007314022 A JP2007314022 A JP 2007314022A JP 2007314022 A JP2007314022 A JP 2007314022A JP 5336067 B2 JP5336067 B2 JP 5336067B2
Authority
JP
Japan
Prior art keywords
graphics
scene
descriptor
rendered
list
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
JP2007314022A
Other languages
Japanese (ja)
Other versions
JP2008165760A (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
Priority claimed from JP2006327341A external-priority patent/JP2007157155A/en
Application filed by アーム・ノルウェー・アー・エス filed Critical アーム・ノルウェー・アー・エス
Priority to JP2007314022A priority Critical patent/JP5336067B2/en
Publication of JP2008165760A publication Critical patent/JP2008165760A/en
Application granted granted Critical
Publication of JP5336067B2 publication Critical patent/JP5336067B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

A graphics processor 20 includes a graphics object list building unit 28 that determines the location of each draw call in a scene to be rendered and generates a list of draw calls for each sub-region (tile) that the scene to be rendered is divided into. The draw call lists are stored in a memory 23. A graphics object selection unit 29 of a renderer 22 of the graphics processor 20 then determines which draw call is to be rendered next by considering the draw call list 26 stored in the memory 23 for the sub-region (tile) of the scene that is currently being rendered.

Description

本発明は、グラフィックスを処理する方法および装置に関し、具体的には、タイルベースのグラフィックス処理システムで使用される、かかる方法および装置に関する。   The present invention relates to a method and apparatus for processing graphics, and in particular to such a method and apparatus for use in a tile-based graphics processing system.

本発明は、特に3次元グラフィックスの処理を参照しながら説明されるが、2次元グラフィックスの処理にも等しく適用可能であることが当業者には理解されるであろう。   Although the present invention will be described with particular reference to processing 3D graphics, it will be understood by those skilled in the art that it is equally applicable to processing 2D graphics.

当技術分野で知られているように、グラフィックス処理は一般に、まず表示対象シーンをいくつかの同様の基本的な構成要素または「プリミティブ」に分割し、次いでこれらのプリミティブに所望のグラフィックス処理操作を施すことによって実行される。グラフィックス「プリミティブ」は通常、三角形など単純なポリゴンの形をとり、通常はそれらの各頂点を定義することによって記述される。   As is known in the art, graphics processing generally divides a scene to be displayed into several similar basic components or “primitives”, and then these primitives to the desired graphics processing. It is executed by performing an operation. Graphics “primitives” usually take the form of simple polygons, such as triangles, and are usually described by defining their vertices.

グラフィックス処理操作に関しては、当技術分野で知られているように、各グラフィックスプリミティブは通常、「フラグメント」と通称される複数の離散的なグラフィックエンティティまたは要素にさらに分割され、これらに対して実際のグラフィックス処理操作(レンダリング操作など)が実行される。このような各グラフィックスフラグメントは、プリミティブ内の所与の位置を表し、またこれに対応するものであり、該当する位置に関する1組のデータ(色や深度の値など)を事実上含むものである。   With respect to graphics processing operations, as is known in the art, each graphics primitive is typically further divided into a plurality of discrete graphic entities or elements commonly referred to as “fragments”, for which The actual graphics processing operation (rendering operation etc.) is executed. Each such graphics fragment represents and corresponds to a given position within the primitive and effectively contains a set of data (such as color and depth values) for that position.

各グラフィックスフラグメント(データ要素)は通常、最終的な表示内の単一ピクセル(画素)に対応する(ピクセルは表示される最終的な画像の特異点であるので、グラフィックスプロセッサが作用する「フラグメント」と、表示内のピクセルとの間には通常1対1のマッピングが存在する)。しかしながら、例えば最終的な画像が表示される前にレンダリングされた画像に対して、縮小など特定の形態の後処理が実行された場合は、「フラグメント」と「ピクセル」との間に直接的な対応関係が存在しないこともある。   Each graphics fragment (data element) typically corresponds to a single pixel (picture element) in the final display (the graphics processor acts because the pixel is a singularity of the final image to be displayed. There is usually a one-to-one mapping between "fragments" and pixels in the display). However, if certain forms of post-processing, such as reduction, are performed on the rendered image, for example, before the final image is displayed, it is directly between “fragment” and “pixel”. There may be no correspondence.

したがって、典型的に実行されるグラフィックス処理の2つの側面は、グラフィックス「プリミティブ」(ポリゴン)の位置データをグラフィックスフラグメントの位置データに「ラスタ化」し(すなわち、表示対象シーンの各プリミティブを表現するのに使用されるグラフィックスフラグメントの(x,y)位置を判定し)、次いで「ラスタ化」されたフラグメントが表示画面上に表示されるように「レンダリング」する(すなわち、当該フラグメントの色付けやシェーディングなどを施す)ことである。   Therefore, two aspects of the graphics processing that are typically performed are to “rasterize” graphics “primitive” (polygon) position data into graphics fragment position data (ie, each primitive in the scene to be displayed). Determine the (x, y) position of the graphics fragment used to represent the image), and then `` render '' the `` rasterized '' fragment so that it appears on the display screen (i.e. Color, shading, etc.).

(グラフィックスの分野では、「ラスタ化」という用語はその時々に、プリミティブからフラグメントへの変換と、プリミティブのレンダリングとの両方を意味するように使用される。しかしながら、本明細書における「ラスタ化」は、プリミティブデータからフラグメントアドレスへの変換だけを指すように使用される。)   (In the graphics field, the term "rasterization" is sometimes used to mean both the conversion of primitives to fragments and the rendering of primitives. "Is used to refer only to the conversion from primitive data to fragment addresses.)

多くのグラフィックス処理システムは、いわゆる「タイルベース」のレンダリングを使用する。タイルベースのレンダリングでは、表示対象の2次元シーンは、通常「タイル」と呼ばれる複数のより小さい小領域(sub-region)に細分化または区分される。各タイル(小領域)は、別々に(典型的には順番に)レンダリングされる。次いで、レンダリングされた小領域(タイル)が再結合されて、完全なフレームが表示される。かかる構成において、シーンは、典型的には規則正しいサイズおよび形状の(通常は正方形や長方形などの形をとる)小領域(タイル)に分割されるが、これは本質的なものではない。   Many graphics processing systems use so-called “tile-based” rendering. In tile-based rendering, a two-dimensional scene to be displayed is subdivided or segmented into a plurality of smaller sub-regions, commonly referred to as “tiles”. Each tile (subregion) is rendered separately (typically in order). The rendered subregions (tiles) are then recombined to display the complete frame. In such a configuration, the scene is typically divided into small areas (tiles) of regular size and shape (usually in the form of squares, rectangles, etc.), but this is not essential.

「タイリング」および「タイルベース」のレンダリングに関して一般に使用される他の用語としては、「チャンキング」(複数の小領域は「チャンク」とも呼ばれる)および「バケット」レンダリングが挙げられる。以下では便宜上「タイル」および「タイリング」という用語が使用されるが、これらの用語は代替的かつ等価な用語および技法をすべて包含するものであることが当業者には理解されるはずである。   Other terms commonly used for “tiling” and “tile-based” rendering include “chunking” (multiple subregions are also called “chunks”) and “bucket” rendering. In the following, the terms “tile” and “tiling” are used for convenience, but it should be understood by those skilled in the art that these terms encompass all alternative and equivalent terms and techniques. .

かかるタイルベースのレンダリングの利点は、所与のタイル内に現れないプリミティブが当該タイルに関して処理される必要がなく、したがって、タイルが処理されるときに無視され得ることである。これにより、所与のシーンに要する全体のグラフィックス処理量を減少させることが可能となる。   The advantage of such tile-based rendering is that primitives that do not appear in a given tile need not be processed for that tile and can therefore be ignored when the tile is processed. As a result, the total amount of graphics processing required for a given scene can be reduced.

したがって、タイルベースのレンダリングシステムでは通常、例えばあるタイル内に実際に存在しないプリミティブの不必要なレンダリングが避けられるように、所与の小領域(タイル)内に実際に存在するそれらのプリミティブを特定し知ることができることが望ましい。これを容易にするために、当該小領域に関してレンダリングすべき(例えば当該小領域内に現れる)プリミティブのリストを各小領域(タイル)毎に作成(prepare)することが知られている。かかる「タイルリスト」(「プリミティブリスト」と呼ばれることもある)は、(例えばプリミティブインジケータを参照することによって)該当するタイル(小領域)に関してレンダリングすべきプリミティブを特定する。   Thus, tile-based rendering systems typically identify those primitives that actually exist within a given subregion (tile), for example, to avoid unnecessary rendering of primitives that do not actually exist within a tile. It is desirable to be able to know. In order to facilitate this, it is known to prepare for each small region (tile) a list of primitives to be rendered with respect to the small region (eg appearing in the small region). Such a “tile list” (sometimes referred to as a “primitive list”) identifies the primitives to be rendered for that tile (small region) (eg, by referring to a primitive indicator).

したがって、レンダリング対象の各小領域(タイル)に関するタイルリストを作成するプロセスは、基本的には所与の小領域(タイル)に関してレンダリングすべきプリミティブを判定することを要する。このプロセスは通常、該当するタイルを横切る(すなわち、(少なくともその一部が)該当するタイル内に現れる)プリミティブを(所望の精度レベルで)判定し、次いでそれらのプリミティブリストをグラフィックス処理システムによる将来の使用のために作成することによって実行される。(あるプリミティブが2つ以上のタイルに入る場合(そうなることが多い)、そのプリミティブは、それ自体が入っている各タイルのタイルリストに含められることに留意すべきである。)各小領域(タイル)は事実上、当該小領域に入る(すなわち横切る)ことが判明した任意のプリミティブを収容するビン(bin)(タイルリスト)を有するものと見なすことができる(実際、このような様式でプリミティブをタイル単位でソートするプロセスは一般に、「ビニング」と呼ばれている)。   Thus, the process of creating a tile list for each subregion (tile) to be rendered basically involves determining the primitives to be rendered for a given subregion (tile). This process typically determines the primitives (with the desired level of accuracy) that cross the appropriate tile (i.e., at least part of it appears in the appropriate tile), and then the primitive list is determined by the graphics processing system. Performed by creating for future use. (Note that if a primitive enters more than one tile (often), that primitive will be included in the tile list of each tile it contains.) A (tile) can be considered as having a bin (tile list) containing virtually any primitive found to enter (i.e. cross) the subregion (in fact, in this manner). The process of sorting primitives by tile is commonly referred to as “binning”).

当技術分野で知られているように、所与の任意のタイルに関してリスト化(レンダリング)すべきプリミティブを判定するプロセスは、例えばタイリングおよびレンダリングプロセスの様々な部分の効率の最適化に応じて様々な精度レベルで実行される可能性がある。例えば、最も高い精度レベルでは、所与のプリミティブが少なくとも部分的に現れるタイルを正確に判定した後、当該プリミティブをそれらのタイルに関するタイルリストにだけ含めることができる。これは一般に、「正確」ビニングと呼ばれる。   As is known in the art, the process of determining the primitives to list (render) for a given tile is dependent on, for example, optimization of the efficiency of the various parts of the tiling and rendering process. May be performed at various levels of accuracy. For example, at the highest level of accuracy, after accurately determining the tiles in which a given primitive appears at least partially, the primitive can only be included in the tile list for those tiles. This is commonly referred to as “exact” binning.

図1は、正確ビニングのプロセスを示している。図1に示されるように、表示対象シーン1は、規則正しいサイズの16個の小領域すなわちタイル2に分割されている。次いで、シーン内の各プリミティブに関して、当該プリミティブが実際に現れる(入る)1つまたは複数のタイルが判定される。プリミティブは、それ自体がそこに入ることが判明した各タイルのタイルリストに追加される。したがって、図1に示される例で考えれば、プリミティブ3は、タイル4のタイルリストに追加され、プリミティブ5は、タイル6および7のタイルリストに含められ、プリミティブ8は、タイル9、10、11、および12のタイルリストに含められ、プリミティブ13は、タイル12のタイルリストに含められる。(図1には図面を分かりやすくするために少数のタイルおよびプリミティブしか示されていないことに留意すべきである。当業者には理解されるように、実際のグラフィックス処理操作では典型的には、プリミティブおよびタイルの数はもっと多くなる。)   Figure 1 shows the exact binning process. As shown in FIG. 1, the display target scene 1 is divided into 16 small regions, ie, tiles 2 having a regular size. Then, for each primitive in the scene, the tile or tiles in which the primitive actually appears (enters) is determined. The primitive is added to the tile list for each tile that it finds itself to enter. Thus, considering the example shown in FIG. 1, primitive 3 is added to the tile list of tile 4, primitive 5 is included in the tile list of tiles 6 and 7, and primitive 8 is tiles 9, 10, 11 , And 12 are included in the tile list, and primitive 13 is included in the tile list of tile 12. (It should be noted that FIG. 1 shows only a small number of tiles and primitives for clarity of the drawing. As will be appreciated by those skilled in the art, the actual graphics processing operations typically (There will be more primitives and tiles.)

正確ビニングで達成される精度よりも低い精度でタイルリストを作成することも知られている。これは、例えばタイルリストの作成を簡略化するのに役立つ可能性がある。1つの一般的な「低精度」ビニング("less precise" binning)技法は、「バウンディングボックス」ビニングである。この場合では、あるプリミティブまたは1組のプリミティブの周囲にいわゆる「バウンディングボックス」が描画され、次いで当該バウンディングボックスによって覆われるタイルが決定される。次いで、当該バウンディングボックスによって(少なくともその一部が)覆われることが判明した各タイルに関して、当該バウンディングボックスによって表される(すなわち、当該バウンディングボックスによって包含される)1つまたは複数のプリミティブがリスト化(ビニング)される。   It is also known to create a tile list with a lower accuracy than that achieved with accurate binning. This can help, for example, simplify the creation of tile lists. One common “less precise” binning technique is “bounding box” binning. In this case, a so-called “bounding box” is drawn around a primitive or a set of primitives, and then the tiles covered by the bounding box are determined. Then, for each tile found to be covered (at least part of) by the bounding box, one or more primitives represented by the bounding box (i.e. encompassed by the bounding box) are listed. (Binning).

したがって、この構成は、プリミティブ自体ではなくバウンディングボックスを使用して、所与のプリミティブをリスト化しレンダリングすべきタイルを判定する。このことは、例えばあるプリミティブが実際に入らないタイル(例えばバウンディングボックスが当該プリミティブを隙間ない形でまたは精密な形で十分に取り囲んでいない場合)についても、レンダリングのためのリスト化が行われる可能性があることを意味し得るが、一方では、このような様式でバウンディングボックスを使用することにより、タイルリストの作成を簡略化することができる。   Thus, this configuration uses a bounding box rather than the primitive itself to list a given primitive to determine which tile to render. This means that, for example, tiles that do not actually contain a primitive (for example, if the bounding box does not sufficiently surround the primitive in a tight or precise manner) can be listed for rendering. On the other hand, the use of bounding boxes in this manner can simplify the creation of tile lists.

このようにして、各小領域(タイル)に関するレンダリング対象プリミティブのリスト(タイルリスト)が作成されると、(タイル)リストが記憶され、このリストは、例えば該当するタイルをレンダリングするときに考慮する(レンダリングする)必要があるプリミティブをシステムが特定することを可能にするために使用される。   When a list of primitives to be rendered (tile list) for each small area (tile) is created in this way, the (tile) list is stored, and this list is considered when rendering the corresponding tile, for example. Used to allow the system to identify the primitives that need to be rendered.

かかるタイルベースのレンダリング構成は、例えばプリミティブが存在しないシーンの領域についてまでプリミティブの処理が行われることを回避するのに役立つ可能性があることから、優れた働きをすることが分かっている。   Such tile-based rendering arrangements have been found to work well, for example, because they can help avoid processing primitives down to areas of the scene where no primitives exist.

しかし、本出願人らは、既存のタイルベースのレンダリングシステムには改良の余地が残されているものと信じる。   However, applicants believe that there is room for improvement in existing tile-based rendering systems.

本発明の第1の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする装置であって、
小領域又はシーンが分割される小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を備える装置が提供される。
According to a first aspect of the present invention, in a graphics processing system in which a scene to be rendered is divided into a plurality of small regions for rendering, an apparatus for sorting graphics data for processing,
An apparatus is provided comprising means for sorting graphics descriptors relating to or associated with the location or locations of a scene to be rendered into subregions or subregions into which the scene is divided.

本発明の第2の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする方法であって、
小領域又はシーンが分割される小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を含む方法が提供される。
According to a second aspect of the present invention, in a graphics processing system in which a scene to be rendered is divided into a plurality of small regions for rendering, a method for sorting graphics data for processing,
A method is provided that includes means for sorting graphics descriptors relating to or associated with the location or locations of the scene to be rendered into subregions or subregions into which the scene is divided.

本発明の第3の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする装置であって、
シーンが分割される小領域又は複数の小領域に、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける手段を備える装置が提供される。
According to a third aspect of the present invention, in a graphics processing system in which a scene to be rendered is divided into a plurality of small regions for rendering, an apparatus for sorting graphics data for processing,
An apparatus is provided comprising means for associating a graphics descriptor associated with or associated with the location or locations of the scene to be rendered with the subregion or regions where the scene is divided.

本発明の第4の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータを処理する方法であって、
シーンが分割される小領域又は複数の小領域に、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける段階を含む方法が提供される。
According to a fourth aspect of the present invention, there is provided a method for processing graphics data for processing in a graphics processing system in which a scene to be rendered is divided into a plurality of small regions for rendering,
A method is provided that includes associating a graphics descriptor associated with or associated with the location or locations of the scene to be rendered with the subregion or regions where the scene is divided.

本発明の第5の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする装置であって、
シーンが分割されうる一つ以上の小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する手段を備える装置が提供される。
According to a fifth aspect of the present invention, in a graphics processing system in which a scene to be rendered is divided into a plurality of small areas for rendering, an apparatus for sorting graphics data for processing,
A graphics descriptor list for one or more subregions into which the scene can be divided, preferably for processing, each graphics descriptor being other than a single primitive of the scene to be rendered An apparatus is provided comprising means for creating a child list.

本発明の第6の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする方法であって、
シーンが分割されうる一つ以上の小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する手段を含む方法が提供される。
According to a sixth aspect of the present invention, in a graphics processing system in which a scene to be rendered is divided into a plurality of small regions for rendering, a method for sorting graphics data for processing,
A graphics descriptor list for one or more subregions into which the scene can be divided, preferably for processing, each graphics descriptor being other than a single primitive of the scene to be rendered A method is provided that includes means for creating a child list.

本発明は、タイルベースのレンダリングシステム(すなわち、レンダリング対象シーンが複数の小領域(plural sub-regions)に分割されるレンダリングシステム)を対象とする。しかし、従来のタイルベースのレンダリングシステムとは異なり、単に“タイル”にソートすること、及び“タイルリスト”に含めることというよりはむしろ、レンダリング対象シーンが単一のプリミティブでない本発明の他のグラフィックス記述子に関して記述される三角、四角、線、又は点等の“単一の”ポリゴン(即ち、シーンの最小“ポリゴン”記述)のような、基本プリミティブは、タイルバイタイル(小領域バイ小領域)ベースでソートされ、“タイルリスト”に置かれる(含まれる)ことができる。   The present invention is directed to a tile-based rendering system (ie, a rendering system in which a scene to be rendered is divided into a plurality of sub-regions). However, unlike conventional tile-based rendering systems, other graphics of the present invention where the scene to be rendered is not a single primitive, rather than simply being sorted into “tiles” and included in a “tile list”. Basic primitives, such as “single” polygons (ie, the smallest “polygon” description of a scene) such as triangles, squares, lines, or points described with respect to image descriptors, are tile-by-tile (small area by small Can be sorted on a (region) basis and placed (included) in a “tile list”.

出願人は、タイルにレンダリング対象シーンを記述及び定義する基本的な単一のプリミティブだけでなく、他の形式のシーン(グラフィックス)記述(記述子)もソートする利点があることを認識している。   Applicants recognize that there are advantages to sorting not only the basic single primitive that describes and defines the scene to be rendered in the tile, but also other types of scene (graphics) descriptions (descriptors). Yes.

例えば、タイルリストに、ドローコール等、共通に複数の個々のプリミティブを示すグラフィックス記述子を置換するか又はその上(選択的に)記憶することができ、それはその後、例えばタイルリストに使用するメモリ量を変更及び/又は低減することができる。従って、本発明は、タイルリスティング処理に対するメモリ使用要件の比較的良好な制御及び認識を容易にする。これは、特にポータブル装置等(例えば、携帯電話、PDA、ハンドヘルド装置等)の比較的限定された装置上で実行されるグラフィックスシステムにおいて有利である。   For example, the tile list can be replaced (or selectively) stored with a graphics descriptor indicating a plurality of individual primitives in common, such as a draw call, which is then used, for example, in the tile list The amount of memory can be changed and / or reduced. Thus, the present invention facilitates relatively good control and recognition of memory usage requirements for the tile listing process. This is particularly advantageous in graphics systems that run on relatively limited devices such as portable devices (eg, mobile phones, PDAs, handheld devices, etc.).

また、出願人は、個々のプリミティブ以外のグラフィックス記述子上でタイリング動作又は複数の動作を実行することは、他の利益を提供することを認識している。例えば、それにより、グラフィックスデータをこれらの他のグラフィックス記述子の形式でソート及び選抜することができる。   Applicants have also recognized that performing tiling operations or operations on graphics descriptors other than individual primitives provides other benefits. For example, it allows the graphics data to be sorted and selected in the form of these other graphics descriptors.

また、それは、タイリング動作それ自体が比較的短時間であり、処理資源が集中的であり、故に、例えば、グラフィックスデータ(記述子)の比較的粗い初期ソートの目的で比較的迅速に実行されることを意味する。例えば、それは、任意のグラフィックス記述子がその目的のために基本的なプリミティブレベルでタイルリストを作成する必要なく更なる処理から直ちに廃棄(選抜)されうるかを確認するために、比較的高いグラフィックス記述子レベルで、グラフィックスデータの初期の粗いタイリングを実行するのに使用されうる。   Also, it is a relatively short tiling operation itself and is resource intensive, so it executes relatively quickly, for example for the purpose of a relatively coarse initial sort of graphics data (descriptors). Means that For example, it is a relatively high graphic to see if any graphics descriptor can be immediately discarded (selected) from further processing without having to create a tile list at the basic primitive level for that purpose. Can be used to perform initial coarse tiling of graphics data at the descriptor level.

故に、本発明は、例えば選抜及び/又は隠面消去の形式、例えば、及び好ましくはレンダリングに先立ち、容易にすることができる。   Thus, the present invention can be facilitated prior to, for example, selection and / or hidden surface removal, eg, and preferably rendering.

レンダリング対象シーンが分割される複数の小領域(タイル)は、所望される任意の適当な小領域とすることができる。当技術分野で知られているように、これらはすべて同じサイズおよび形状であることが好ましいが(すなわち、規則正しいサイズおよび形状のタイルが使用されることが好ましいが)、これは本質的なものではない。これらの小領域は、正方形または長方形であることが好ましい。小領域のサイズおよび数は、所望の形で選択することができる。好ましい一構成では、各小領域(タイル)は、16×16または32×32のサイズのフラグメントである(ただし、シーンは後に、使用中の表示(フレーム)サイズに必要な数の小領域に分割されることになる)。   The plurality of small regions (tiles) into which the scene to be rendered is divided can be any suitable small region desired. As is known in the art, they are preferably all the same size and shape (i.e., regular size and shape tiles are preferably used), but this is not essential. Absent. These small areas are preferably square or rectangular. The size and number of subregions can be selected as desired. In one preferred configuration, each subregion (tile) is a fragment of size 16x16 or 32x32 (however, the scene is later divided into as many subregions as needed for the display (frame) size in use. Will be done).

好ましい実施形態において、タイルリスト(グラフィックス記述子のリスト)は、個々の小領域及び/又は一つより多い小領域を含む一組又は複数組の小領域に対して作成することができる。タイルリスト(グラフィック記述子リスト)(共通に記憶されたタイルリスト)は、一組の一つより多い小領域に対して作成され、その後一組の一つより多い小領域は、整数の小領域を含むのが好ましく、連続的な小領域の群を含むのが好ましい。   In a preferred embodiment, a tile list (a list of graphics descriptors) can be created for one or more sets of subregions including individual subregions and / or more than one subregion. A tile list (graphic descriptor list) (a commonly stored tile list) is created for a set of more than one subregion, after which a set of more than one subregion is an integer subregion. And preferably a group of continuous subregions.

小領域にソートされ、及び/又は小領域に対してリストされる等のグラフィックス記述子は、任意の適切な、及び望ましい当該記述子にすることができる。それらは、当業者であれば明らかなように、実際のレンダリング処理用のシーンを記述するのに使用されることがあり使用されるであろう三角、四角、線、又は点等の単一のポリゴンのような単一の基本プリミティブ以外の必要がある(故に、三角、線、四角、又は点のような単一のプリミティブの形式にはならない。)。   Graphics descriptors, such as sorted into subregions and / or listed for subregions, can be any suitable and desirable such descriptor. As will be apparent to those skilled in the art, they may be used to describe a scene for the actual rendering process and may be used as a single triangle, square, line, or point. There needs to be something other than a single basic primitive such as a polygon (thus not in the form of a single primitive such as a triangle, line, square, or point).

類似には、グラフィックス記述子は、(シーンにおけるその場所によってそれらをソートするようにそれを適切にするか又は望ましくする時)それに関連付けられる処理対称シーンにおける位置又は場所(location)、又は特定の又は選択された位置又は場所の形式を有する(好ましくはレンダリング対象シーンに関するか又は何か(一部)の)記述子を有するか又は含む必要がある。故に、グラフィックス記述子は好ましくは、グラフィック処理の後続ステージ又は複数のステージに対するシーンにおいて位置又は場所を含む地理及び/又は情報を含むか又はそれらに関連付けられる。   Analogously, a graphics descriptor (when making it appropriate or desirable to sort them by their location in the scene) or the location or location in the processing-symmetric scene associated with it, or a specific Or it must have or contain a descriptor (preferably relating to the scene to be rendered or of (some)) having a selected location or location type. Thus, the graphics descriptor preferably includes or is associated with geography and / or information including location or location in a scene for a subsequent stage or stages of graphics processing.

実際、本発明は、グラフィックス処理(手順)が実行されるべき場所やオブジェクト又は複数のオブジェクトがドローされるべき場所等を定義する記述子のような、グラフィックス処理に(位置に関連付けられた)位置情報を交信する任意のグラフィックス記述子に適用されうる。   In fact, the present invention relates to graphics processing (associated with location), such as descriptors that define where graphics processing (procedures) should be performed, where an object or objects should be drawn, etc. It can be applied to any graphics descriptor that communicates location information.

一つの好ましい実施形態において、グラフィックス記述子は、特定のグラフィックス処理又は処理がシーンの所与の場所又はエリア又はエリアで活性化される必要があるインジケーションのような、所与の特定のシーンの場所又はエリアで実行されるべき一部形式のグラフィックス処理(手順)の記述子を含む。   In one preferred embodiment, the graphics descriptor is a given specific process, such as an indication that a particular graphics process or process needs to be activated at a given location or area or area of the scene. Contains a descriptor of some form of graphics processing (procedure) to be performed at a scene location or area.

例えば、グラフィックス記述子は、レンダリング対象シーンの所与の場所で一組のプリミティブを生成する(システムに生成するように言う)ための、プログラム等のルーチン又は手順を定義することができる。それらは、例えば、手順のドローコールを含むことができる。   For example, a graphics descriptor may define a routine or procedure, such as a program, for generating a set of primitives (say to generate to the system) at a given location in the scene to be rendered. They can include, for example, procedural draw calls.

一つの好ましい実施形態において、グラフィックス記述子は、レンダリング対象オブジェクトを示すか又は含むが、単一のポリゴン又はプリミティブ以外の形式である。故に、一つの好ましい実施形態において、グラフィックス記述子は、グラフィックスオブジェクトを含むが、個々の単一のプリミティブではない。   In one preferred embodiment, the graphics descriptor indicates or includes the object to be rendered, but is in a form other than a single polygon or primitive. Thus, in one preferred embodiment, the graphics descriptor includes graphics objects, but not individual single primitives.

例えば、グラフィックス記述子はまた若しくは代替的に、及び好ましくは、それが好ましくはプリミティブ(例えば、三角の)表示に変換される前のオブジェクトの記述子等の、例えばレンダリング対象オブジェクトの比較的高い順番又は比較的高いレベルの記述子を含む。   For example, the graphics descriptor is also or alternatively, and preferably, a relatively high of the object to be rendered, such as the descriptor of the object before it is preferably converted to a primitive (eg, triangular) display. Contains descriptors in order or at a relatively high level.

そのような比較的高い順番又は比較的高いレベルの、レンダリング対象オブジェクトの記述子の一例は、オブジェクトを示す滑らかな表面である(例えば、“オブジェクト”は、滑らかで、例えば湾曲した表面を含む)。この場合、シーンにおける(複数の)滑らかな表面に対する滑らかな表面の記述子は、本発明の態様で記憶されうる。   An example of such a relatively high order or relatively high level rendered object descriptor is a smooth surface that represents the object (eg, “object” includes a smooth, eg curved surface). . In this case, the smooth surface descriptor (s) for the smooth surface (s) in the scene may be stored in aspects of the present invention.

本発明が適用可能なグラフィックオブジェクトの比較的高い順番定義のもう一つの形式は、シーンにおける所与の場所で一組のプリミティブを生成する方法をグラフィックスシステムに伝えるプログラム又は手順である。   Another form of relatively high order definition of graphic objects to which the present invention is applicable is a program or procedure that tells a graphics system how to generate a set of primitives at a given location in a scene.

故に、好ましい実施形態において、グラフィックス記述子又は複数の記述子は、例えば好ましくはオブジェクトの“プリミティブ”記述子が存在する前に対象となるオブジェクト又は複数のオブジェクトに使用されるレンダリング対象オブジェクトの非プリミティブ及び/又はプリプリミティブ記述子を含む。即ち、好ましい実施形態においてグラフィック記述子は、レンダリング対象オブジェクトの前駆記述子(記述)を含む(即ち、その記述は、オブジェクトのプリミティブレベル記述に先行する)。これらの場合において、グラフィックス記述子は、レンダリング対象オブジェクトを示し、未だオブジェクトの“プリミティブレベル”又はプリミティブベースの記述ではなく、むしろグラフィックス記述子は、時間内にのオブジェクトのプリミティブベースの記述に変換されるが、オブジェクトのプリミティブベースの記述が未だ存在しないことを意図する。   Thus, in a preferred embodiment, the graphics descriptor or descriptors are preferably non-rendered objects used for the target object or objects before the object's “primitive” descriptor is present, for example. Contains primitive and / or pre-primitive descriptors. That is, in the preferred embodiment, the graphic descriptor includes a precursor descriptor (description) of the object to be rendered (ie, the description precedes the primitive level description of the object). In these cases, the graphics descriptor indicates the object to be rendered and is not yet a “primitive level” or primitive-based description of the object; rather, the graphics descriptor is a primitive-based description of the object in time. It is intended to be converted, but no primitive-based description of the object yet exists.

例えば、当該非プリミティブベースのグラフィックス記述子は、例えば後に“単一の”プリミティブに変形される“メタプリミティブ”として見なされうる。   For example, the non-primitive based graphics descriptor can be viewed as a “meta-primitive” that is later transformed into a “single” primitive, for example.

また、グラフィックス記述子は、一組の複数の連続的三角等の、一群又は一組の複数のプリミティブを含む、及び/又は示すことができる。この場合、オブジェクトのプリミティブレベルの記述は、存在しうるが、各プリミティブを個々にソートするよりもむしろ、一群のプリミティブが共にソートされうる。これは事実上、レンダリング対象オブジェクトの粗い表示が、たとえ一度オブジェクトの“プリミティブ”記述が存在しえても、“タイル”可能にする。当該配置の一例は、例えば本発明の態様でソートされるグラフィック記述子として複数のプリミティブを包含するバウンディングボックスを使用することである。   The graphics descriptor may also include and / or indicate a group or set of primitives, such as a set of continuous triangles. In this case, a primitive level description of the object may exist but a group of primitives may be sorted together rather than sorting each primitive individually. This effectively allows a rough display of the object to be rendered to be "tileable" once there can be a "primitive" description of the object. An example of such an arrangement is to use a bounding box that contains multiple primitives, for example as a graphic descriptor that is sorted in an aspect of the invention.

当該好ましい実施形態において、グラフィックス記述子又は複数の記述子は、ドローコール(又は複数のドローコール)を含む。(当業者であれば分かるように、グラフィックス処理において、プリミティブは、例えば特定のシーン領域に対して、一般に組で共にグループ化され、プログラマーは、群として共に一挙にレンダリングされることを意図する。共に処理されるプリミティブの当該グループは通常、“ドローコール”と呼ばれる。)故に、特に好ましい実施形態において、シーンのドローコールは、(タイルリストに置かれる)タイルにソートされる。当該配置におけるドローコールは、必要に応じて手順上のドローコール(例えば、プリミティブを生成する手順を定義するドローコール)でもよい。   In the preferred embodiment, the graphics descriptor or descriptors include a draw call (or multiple draw calls). (As will be appreciated by those skilled in the art, in graphics processing, primitives are typically grouped together in pairs, for example, for a particular scene region, and programmers intend to be rendered together as a group at once. (The group of primitives that are processed together are usually referred to as “draw calls”.) Thus, in a particularly preferred embodiment, the scene draw calls are sorted into tiles (placed in a tile list). The draw call in the arrangement may be a procedural draw call (for example, a draw call that defines a procedure for generating a primitive) as necessary.

当業者であれば分かるように、ドローコールの使用において例えば、任意の所与のドローコールが複数のプリミティブを示し、及び含む一方で、単一のプリミティブのみを含むか又は示すドローコールもありうる。しかし、これはなお、少なくとも本発明の好ましい実施形態の範囲内にあり、なぜなら、ドローコールは、たとえ実際にそれが常にそのようにふるまわないことがあっても、共通して複数のプリミティブを示すことができるグラフィックス記述子だからである。   As will be appreciated by those skilled in the art, in the use of draw calls, for example, any given draw call may indicate and include multiple primitives, while there may be draw calls that include or indicate only a single primitive. . However, this is still at least within the scope of the preferred embodiment of the present invention because a draw call shows multiple primitives in common, even though in practice it may not always behave that way. Because it is a graphics descriptor that can.

即ち、当業者であれば分かるように、本発明の意図は、単に単一のプリミティブではないグラフィックス記述子を使用することにあるが(そして、それは、レンダリング対象オブジェクトの単一のプリミティブ記述子から区別される)、それは、共通して複数のプリミティブを含むか又は示すか又は示すことができ、及び/又はレンダリング対象オブジェクトの非プリミティブベースの記述子又は実行されるグラフィックス処理の記述子、及び/又はレンダリング対象グラフィックスオブジェクトの記述子及び/又は実行されるグラフィックス処理の記述子であり、それは、複数のプリミティブを含むか又は示すか又は示すことができる。   That is, as will be appreciated by those skilled in the art, the intent of the present invention is to use a graphics descriptor that is not simply a single primitive (and it is a single primitive descriptor for the object being rendered). Which can include or indicate or indicate a plurality of primitives in common and / or a non-primitive based descriptor of the rendered object or a descriptor of the graphics processing to be performed, And / or a descriptor of the graphics object to be rendered and / or a descriptor of the graphics processing to be performed, which may include, indicate or indicate a plurality of primitives.

故に、特に好ましい実施形態において、グラフィックス記述子は、レンダリングされるオブジェクトの、及び/又はレンダリングされるオブジェクトのグラフィックスの記述及び/又は複数のプリミティブを含むか又は示すか又は示すことができる、実行されるグラフィック処理の非プリミティブベースの記述子を含む。   Thus, in a particularly preferred embodiment, the graphics descriptor may include or indicate or indicate a rendered object and / or a graphic description of the rendered object and / or a plurality of primitives, Contains non-primitive based descriptors of the graphics processing to be performed.

好ましい実施形態において、タイルリスト(グラフィックス記述子リスト)は、所与のタイプのグラフィックス記述子に対して作成される。即ち、ドローコールのような所与のタイプのグラフィックス記述子は、小領域(タイル)にソートされる。一つの好ましい実施形態において、グラフィックス記述子の単一のタイプ又はクラスのみが、任意の所与のリストに含まれる。   In the preferred embodiment, a tile list (graphics descriptor list) is created for a given type of graphics descriptor. That is, a given type of graphics descriptor, such as a draw call, is sorted into small areas (tiles). In one preferred embodiment, only a single type or class of graphics descriptor is included in any given list.

しかし、同じリストに異なるタイプのグラフィックス記述子を含むこともできるので、もう一つの好ましい実施形態において、異なるタイプのグラフィックス記述子は各々、所与の小領域の(又は一組の小領域の)リスト(タイルリスト)に含まれうる。   However, it is possible to include different types of graphics descriptors in the same list, so in another preferred embodiment, each different type of graphics descriptor is each for a given subregion (or set of subregions). ) List (tile list).

また、三角、四角、線又は点等の単一のポリゴンの形式におけるグラフィックスプリミティブのような単一のプリミティブを、必要に応じて他のグラフィックス記述子と共にタイルリストに含めることができる。(本発明は、必要に応じてレンダリング用の基本グラフィックスプリミティブのタイルリストを追加的(例えば、同時又は連続)に作成することを除外しない。)   Also, a single primitive, such as a graphics primitive in the form of a single polygon, such as a triangle, square, line or point, can be included in the tile list along with other graphics descriptors as needed. (The present invention does not exclude the creation of additional (eg, simultaneously or sequentially) tile lists of basic graphics primitives for rendering as needed.)

グラフィックス記述子のリストは、例えば選択された小領域(タイル)のみに対して作成できるが、好ましい実施形態において、グラフィックス記述子リストは、シーンが分割される各小領域(タイル)に対して作成される。   Although a list of graphics descriptors can be created, for example, only for selected subregions (tiles), in a preferred embodiment, a graphics descriptor list is created for each subregion (tile) into which the scene is divided. Created.

小領域へのグラフィックス記述子のソートと、小領域に対するグラフィック記述子の作成とは、任意の適切で所望の態様で実行できる。例えば、正確なビニング、又はバウンディングボックスビニング、又はその中間の任意物のようなタイルリストにプリミティブをソート及びビニングするのに既に知られ、及び使用される任意の技術は、この処理に使用されてもよい。   Sorting graphics descriptors into small areas and creating graphic descriptors for small areas can be performed in any suitable and desired manner. Any technique already known and used for sorting and binning primitives into tile lists such as, for example, exact binning, or bounding box binning, or anything in between is used for this process. Also good.

故に例えば、グラフィックス記述子が処理される小領域の初期判定は、シーンにおけるグラフィックス記述子の判定された場所に基づき行われ(その場所は例えば、従来知られるようなグラフィックス記述子を囲うバウンディングボックスに基づくグラフィックス記述子の場所の近似又はグラフィックス記述子の正確な場所にすることができる。)、その後その判定された場所が示す同一又は全ての小領域にリストされたグラフィックス記述子は、レンダリングされる必要がある。その後これは、例えば及び好ましくは、シーンにおける各グラフィックス記述子に対して反復され、シーンに対する完全な一組のグラフィックス記述子リストが作成されることになる。   Thus, for example, the initial determination of the small region in which the graphics descriptor is processed is based on the determined location of the graphics descriptor in the scene (the location encloses the graphics descriptor as known in the art, for example). It can be an approximation of the location of the graphics descriptor based on the bounding box or the exact location of the graphics descriptor.), Then the graphics description listed in the same or all subregions indicated by the determined location The child needs to be rendered. This is then, for example and preferably, repeated for each graphics descriptor in the scene, creating a complete set of graphics descriptor lists for the scene.

故に、好ましい実施形態において、シーンにおける所与のグラフィックス記述子に対する場所は、シーンが分割される小領域及び/又は複数の小領域に対して判定及び比較されて、どの小領域及び一組の複数の小領域に対してグラフィックス記述子が処理されうるか又は処理されるべきかを判定する(例えば、範囲内に出現(含まれる))。   Thus, in the preferred embodiment, the location for a given graphics descriptor in the scene is determined and compared against the subregion and / or multiple subregions into which the scene is divided to determine which subregion and set of subregions. Determine whether graphics descriptors can or should be processed for multiple subregions (e.g., appear (included) in range).

これらの配置において、グラフィックス記述子の場所は、グラフィックス記述子の、又はそれに関連付けられた場所又は位置データから等及び好ましく、所望の通りに導かれうる。類似して、小領域の位置は、任意の所望及び適切な態様で導かれうる。必要に応じて、グラフィックス記述子の、又はそれに関連付けられた任意の位置又は場所は好ましくは、それがレンダリング対象の時に記述子がシーンにおいて有する位置に変形されてから、記述子は、小領域等にソートされて、考えられる記述子の“最後の”正しい場所を確実にすることを助ける。   In these arrangements, the location of the graphics descriptor can be derived and preferably as desired from the location or position data of the graphics descriptor or associated therewith. Similarly, the location of subregions can be derived in any desired and appropriate manner. If desired, any location or location of the graphics descriptor or associated with it is preferably transformed into a location that the descriptor has in the scene when it is to be rendered, and then the descriptor is a small region Etc. to help ensure the “last” correct location of possible descriptors.

バウンディングボックス技術が使用される場合、その後バウンディングボックスは、所望の場合及び時に生成されうる。例えば、バウンディングボックスは、従来知られるように、グラフィックス記述子ベースで、又は一組又は複数組の複数のグラフィックス記述子に対して生成できる。バウンディングボックスは、例えばホストシステム上のグラフィックスプロセッサAPI又はドライバによって生成できる。   If bounding box technology is used, then the bounding box can be generated if and when desired. For example, the bounding box can be generated on a graphics descriptor basis or for a set or sets of graphics descriptors, as is known in the art. The bounding box can be generated by, for example, a graphics processor API or driver on the host system.

個々のグラフィックス記述子リスト及びそれらにおけるグラフィックス記述子は、任意の所望の、及び適切な態様で配置され、任意の所望の、及び適切なデータを含むことができる。リストは好ましくは、当該技術において、当該又は類似のグラフィックス記述子、タイルリスト等に既に使用されている同一又は類似の態様で配置され、及びデータを含む。   The individual graphics descriptor lists and the graphics descriptors in them can be arranged in any desired and appropriate manner and can include any desired and appropriate data. The lists are preferably arranged in the same or similar manner already used in the art for such or similar graphics descriptors, tile lists, etc., and contain data.

一度グラフィックス記述子がソートされ、グラフィックス記述子リストが上記の通り小領域に対して作成されると、その後、この情報は、グラフィックス記述子の(及び、例えばそれらが示すプリミティブの)処理に使用されうる。当該処理は、任意の適切で、及び所望の処理を含むことができる。   Once the graphics descriptors are sorted and the graphics descriptor list is created for the small area as described above, this information is then processed into the graphics descriptors (and the primitives they represent, for example). Can be used. The process can include any suitable and desired process.

一つの好ましい実施形態において、この処理は、グラフィックス記述子のレンダリングを含む。即ち、それは、シーンをレンダリングする時、及び好ましくは、どのグラフィックス記述子(故に、例えばプリミティブ)が各小領域に対して処理(レンダリング)されるのが必要かを判定するために、グラフィックス記述子リストを使用することを含む。   In one preferred embodiment, this process includes rendering of a graphics descriptor. That is, when rendering a scene, and preferably to determine which graphics descriptors (and hence eg primitives) need to be processed (rendered) for each subregion. Includes using descriptor lists.

このレンダリング処理は、周知のタイルベースのレンダリングシステムに類似の態様で実行でき、好ましくは実行される。故に好ましくは、各小領域(タイル)は、別々に処理及びレンダリングされ、即ち、別々の個々の小領域は、一つずつレンダリングされる。このレンダリングは、任意の所望の態様で、例えば個々の小領域をレンダリングすることによって、又は並行的態様で実行できる。一度全ての小領域(タイル)がレンダリングされると、それらはその後、例えば従来知られた表示用のフレームバッファで再結合されうる。   This rendering process can and is preferably performed in a manner similar to known tile-based rendering systems. Thus, preferably each subregion (tile) is processed and rendered separately, i.e. separate individual subregions are rendered one by one. This rendering can be performed in any desired manner, for example by rendering individual subregions, or in a parallel manner. Once all subregions (tiles) have been rendered, they can then be recombined, for example with a conventionally known display frame buffer.

もう一つの好ましい実施形態において、グラフィックス記述子リスト等は、シーンがレンダリングされる前に(好ましくは初期の)選抜動作(例えば、隠面消去)を実行するために、さらに又は代わりに使用され、例えば及び好ましくは、判定されうるグラフィックス記述子の後の処理することを外すことは、表示されるシーンに見られない。当該選抜は例えば、任意のグラフィックス記述子がシーンの可視エリアの外にあるかを判定することを含む(その場合、それらが破棄される)。さらに洗練された選抜設定が勿論、さらに又は代わりに使用されうる。   In another preferred embodiment, a graphics descriptor list or the like is used in addition or instead to perform a (preferably initial) selection operation (eg, hidden surface removal) before the scene is rendered. For example, and preferably, removing processing after the graphics descriptor that can be determined is not seen in the displayed scene. The selection includes, for example, determining if any graphics descriptors are outside the visible area of the scene (in which case they are discarded). More sophisticated selection settings can of course be used additionally or alternatively.

好ましい当該実施形態において、(複数の)グラフィックス記述子の位置又は場所は、シーンの一つ以上のエリア又は小領域等に対する位置又は場所と比較される。   In the preferred embodiment, the location or location of the graphics descriptor (s) is compared to the location or location for one or more areas or subregions, etc. of the scene.

上記検討の通り、本発明は、当該動作を容易にし、例えば個々のプリミティブよりもむしろ比較的大きいグラフィックスオブジェクトのソート及びタイリングは、比較的低い処理集中度等になりうる。   As discussed above, the present invention facilitates this operation, for example sorting and tiling of relatively large graphics objects rather than individual primitives can result in a relatively low processing concentration.

本発明が、レンダリングのためにシーンが分割される小領域(タイル)を参照してグラフィックス記述子のソート等に関して特に説明されたが、当業者であれば分かるように、当該ソートは必要に応じて、シーンにおける他のエリアに対して及び関して実行されうる。例えば、選抜動作の場合、(参照のため例えば、任意の記述子がシーンの可視エリア外に全て含まれる場合に)グラフィックス記述子の位置をシーンの可視エリアと単に比較するのに望ましい。   Although the present invention has been particularly described with respect to sorting graphics descriptors etc. with reference to small areas (tiles) into which the scene is divided for rendering, as those skilled in the art will appreciate, such sorting is necessary. Depending on and with respect to other areas in the scene. For example, in the case of a selection operation, it is desirable to simply compare the position of the graphics descriptor to the scene's visible area (for example, if any descriptor is included outside the scene's visible area for reference).

したがって、本発明の第7の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする装置であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を備える装置が提供される。
Therefore, according to the seventh aspect of the present invention, there is provided an apparatus for sorting graphics data for processing in a graphics processing system,
An apparatus is provided comprising means for sorting graphics descriptors relating to or associated with a location or multiple locations of a scene to be rendered into a specific area or subregion of the scene.

本発明の第8の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする方法であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする段階を備える方法が提供される。
According to an eighth aspect of the present invention, there is provided a method for sorting graphics data for processing in a graphics processing system,
A method is provided comprising sorting graphics descriptors relating to or associated with a location or multiple locations of a scene to be rendered into a specific area or subregion of the scene.

本発明の第9の態様によれば、グラフィックス処理システムにおいて処理用グラフィックスデータを処理する装置であって、
シーンの小領域又は複数の小領域に対する特定のエリア又は複数のエリアに、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける手段を備える装置が提供される。
According to a ninth aspect of the present invention, there is provided an apparatus for processing graphics data for processing in a graphics processing system,
An apparatus is provided comprising means for associating a particular area or areas for a small area or areas of a scene with a graphics descriptor relating to or associated with the location or areas of the scene to be rendered. .

本発明の第10の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する方法であって、
シーンの小領域又は複数の小領域に対する特定のエリア又は複数のエリアに、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける段階を含む方法が提供される。
According to a tenth aspect of the present invention, there is provided a method for processing graphics data for processing in a graphics processing system,
A method is provided that includes associating graphics descriptors relating to or associated with the location or locations of the scene to be rendered to a particular area or areas for a subregion or regions of the scene. .

本発明の第11の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する手段を備える装置が提供される。
According to an eleventh aspect of the present invention, there is provided an apparatus for processing graphics data for processing in a graphics processing system,
Graphics descriptor list for one or more areas or subregions of the scene to be rendered, preferably for processing, each graphics descriptor being other than a single primitive of the scene to be rendered An apparatus is provided comprising means for creating a descriptor list.

本発明の第12の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する方法であって、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する段階を含む方法が提供される。
According to a twelfth aspect of the present invention, there is provided a method for processing graphics data for processing in a graphics processing system,
Graphics descriptor list for one or more areas or subregions of the scene to be rendered, preferably for processing, each graphics descriptor being other than a single primitive of the scene to be rendered A method is provided that includes creating a descriptor list.

本発明の第13の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンのグラフィックス記述子の位置又は場所を、シーンの特定の又は選択されたエリア又は複数のエリア又は小領域又は複数の小領域の位置又は場所と比較する手段を備える装置が提供される。
According to a thirteenth aspect of the present invention, there is provided an apparatus for processing graphics data for processing in a graphics processing system,
An apparatus is provided comprising means for comparing the position or location of a graphics descriptor of a scene to be rendered with a specific or selected area or areas or sub-areas or sub-areas or positions of a scene. .

本発明の第14の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンのグラフィックス記述子の位置又は場所を、シーンの特定の又は選択されたエリア又は複数のエリア又は小領域又は複数の小領域の位置又は場所と比較する段階を含む方法が提供される。
According to a fourteenth aspect of the present invention, there is provided an apparatus for processing graphics data for processing in a graphics processing system,
A method is provided that includes comparing a position or location of a graphics descriptor of a scene to be rendered with a position or location of a specific or selected area or areas or subregions or subregions of a scene. .

当業者であれば分かるように、本発明のこれらの局面及び実施形態は、必要に応じて本明細書中に記載された本発明の好ましい任意的な特徴の一つ以上、及び全てを含むことができ、含むのが好ましい。故に例えば、グラフィックス記述子は、上記検討された任意の形式を取ることができる。同様に、グラフィックス記述子がソートされるシーンの、選択されたエリア又は複数のエリアは、レンダリング目的でシーンが分割される小領域(タイル)を含むのが好ましいが、それは、必ずしも必要なケースではなく、エリアは必要に応じて、シーンの可視及び不可視領域にさらに又は代わりに関連することができる。   As those skilled in the art will appreciate, these aspects and embodiments of the present invention include one or more and all of the preferred optional features of the present invention as described herein, as appropriate. And preferably contain. Thus, for example, the graphics descriptor can take any of the forms discussed above. Similarly, the selected area or areas of the scene where the graphics descriptors are sorted preferably includes small areas (tiles) into which the scene is divided for rendering purposes, but this is not always necessary. Rather, the area can be associated additionally or alternatively with the visible and invisible regions of the scene, as desired.

本発明の様々な機能は、所望される任意の適当な様式で実行することができる。特に好ましい一実施形態では、それらは、表示デバイス用のフレームバッファに書き込まれるグラフィックスデータを生成し出力する、単一のグラフィックス処理プラットフォーム上で実行される。これらの機能は必要に応じて、ハードウェアまたはソフトウェアの形で実装することができる。好ましい一実施形態では、当該システムは、ハードウェア要素(例えばASIC)として実装される。したがって、別の態様では、本発明は、本明細書に記載される本発明の諸態様の内のいずれか1つまたは複数における装置を含みまたはその方法に従って操作されるハードウェア要素を備える。   The various functions of the present invention can be performed in any suitable manner as desired. In one particularly preferred embodiment, they are run on a single graphics processing platform that generates and outputs graphics data that is written to a frame buffer for a display device. These functions can be implemented in hardware or software as required. In a preferred embodiment, the system is implemented as a hardware element (eg, ASIC). Accordingly, in another aspect, the invention comprises a hardware element that includes or is operated according to a method in any one or more of the aspects of the invention described herein.

ここで、当業者には理解されるように、本発明の様々な機能などは、所与のプロセッサ上で並列的に複製および/または実行され得ることに留意すべきである。   It should be noted here that the various functions of the present invention, etc. can be replicated and / or executed in parallel on a given processor, as will be appreciated by those skilled in the art.

本発明は、任意の形態または構成のグラフィックスプロセッサ、および「パイプライン」構成を有するレンダラ(この場合には、当該レンダラはレンダリングパイプラインの形をとることになる)などのレンダラに適用可能である。   The present invention is applicable to any form or configuration of graphics processor and renderer such as a renderer having a "pipeline" configuration (in which case, the renderer will take the form of a rendering pipeline). is there.

上記から理解されるように、本発明は特に、排他的なものではないが、3Dグラフィックスプロセッサおよび処理デバイスに適用可能であり、したがって、本明細書に記載される本発明の諸態様の内のいずれか1つまたは複数における装置を含みまたはその方法に従って操作される3Dグラフィックスプロセッサおよび3Dグラフィックス処理プラットフォームに拡張される。かかる3Dグラフィックスプロセッサは、上述の個々の機能を実行するのに必要な何らかのハードウェアがあれば、3Dグラフィックスプロセッサが含む通常の機能ユニットなどの内のいずれか1つまたは複数を含むことができ、あるいはそれらをすべて含むこともできる。   As will be appreciated from the above, the present invention is not particularly exclusive, but is applicable to 3D graphics processors and processing devices, and thus is among the aspects of the invention described herein. 3D graphics processors and 3D graphics processing platforms that include or operate in accordance with the method in any one or more of the above. Such a 3D graphics processor may include any one or more of the normal functional units included in the 3D graphics processor, provided that there is any hardware necessary to perform the individual functions described above. Or you can include them all.

また、本発明に関して説明される諸態様および諸実施形態は必要に応じて、本明細書に記載の好ましい諸特徴および任意選択の諸特徴の内の1つまたは複数を含むことも、それらをすべて含むこともできることが当業者には理解されるであろう。   In addition, the aspects and embodiments described with respect to the present invention may include, as appropriate, one or more of the preferred and optional features described herein. Those skilled in the art will appreciate that they can also be included.

本発明による方法は、少なくとも部分的にはソフトウェア、例えばコンピュータプログラムを使用して実施することができる。したがって、さらなる諸態様を検討すれば、本発明は、それ自体がデータ処理手段上にインストールされたときに、本明細書に記載の各方法を実行するように特に適合されたコンピュータソフトウェアと、前記プログラム要素がデータ処理手段上で実行されたときに、本明細書に記載の各方法を実施するコンピュータソフトウェアコード部分を備えるコンピュータプログラム要素と、前記プログラムがデータ処理システム上で実行されたときに、本明細書に記載の方法に関するすべてのステップを実施するように適合されたコード手段を備えるコンピュータプログラムとを提供することが理解されるであろう。本発明はまた、データ処理手段を備えるグラフィックスプロセッサ、レンダラ、またはマイクロプロセッサシステムを操作するのに使用されたときに、前記データ処理手段の前記プロセッサ、レンダラ、またはシステムが本発明の各方法に関する各ステップを実行するようになるソフトウェアを備える、コンピュータソフトウェアキャリアにも拡張される。かかるコンピュータソフトウェアキャリアは、ROMチップ、CD-ROM、ディスクなどの物理記憶媒体であっても、配線上の電子信号、光信号、衛星などとの間の無線信号などの信号であってもよい。   The method according to the invention can be implemented at least in part using software, for example a computer program. Thus, considering further aspects, the present invention is directed to computer software specially adapted to perform the methods described herein when installed on a data processing means, A computer program element comprising computer software code portions for performing the methods described herein when the program element is executed on a data processing means, and 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 the steps relating to the methods described herein. The invention also relates to each method of the invention when the processor, renderer or system of the data processing means is used to operate a graphics processor, renderer or microprocessor system comprising data processing means. It is also extended to a computer software carrier with software that comes to perform each step. Such a computer software carrier may be a physical storage medium such as a ROM chip, a CD-ROM, or a disk, or may be a signal such as an electronic signal on a wiring, an optical signal, or a radio signal with a satellite.

さらに、本発明の各方法に関する必ずしもすべてのステップがコンピュータソフトウェアによって実行される必要はなく、したがって、本発明のさらに広範な一態様は、コンピュータソフトウェアと、本明細書に詳しく記載される各方法の各ステップの内の少なくとも1つを実行するためにコンピュータソフトウェアキャリア上にインストールされるソフトウェアとを提供することが理解されるであろう。   Further, not all steps for each method of the present invention need to be performed by computer software, and thus a broader aspect of the present invention provides for computer software and each method described in detail herein. It will be appreciated that software installed on a computer software carrier to perform at least one of each step is provided.

したがって、本発明は、コンピュータシステムと共に使用されるコンピュータプログラム製品として適切に実施することができる。かかる一実装形態は、例えばディスケット、CD-ROM、ROM、ハードディスクなどのコンピュータ可読媒体などの有形の媒体上などに固定された、あるいは、それだけに限らないが光やアナログ通信回線を含めた有形の媒体を使用して、またはそれだけに限らないがマイクロ波、赤外線、他の伝送技法を含めた無形の無線使用技法を使用して、モデムまたは他のインターフェースデバイスを介してコンピュータシステムに送信可能な、一連のコンピュータ可読命令を含むことができる。当該一連のコンピュータ可読命令は、本明細書の前段に記載される機能の全部または一部を実施する。   Accordingly, the present invention can be suitably implemented as a computer program product for use with a computer system. One such implementation is fixed on a tangible medium such as a computer readable medium such as a diskette, CD-ROM, ROM, or hard disk, or a tangible medium including but not limited to light or an analog communication line. A series of data that can be transmitted to a computer system via a modem or other interface device using intangible wireless usage techniques including, but not limited to, microwave, infrared, and other transmission techniques Computer readable instructions may be included. The series of computer readable instructions implements all or part of the functions described earlier in this specification.

かかるコンピュータ可読命令は、多くのコンピュータアーキテクチャまたはオペレーティングシステムと共に使用されるいくつかのプログラミング言語で作成され得ることが当業者には理解されるであろう。さらに、かかる命令は、それだけに限らないが、半導体、磁気または光を含めた現在または将来の任意のメモリ技術を使用して記憶することができ、また、それだけに限らないが、光、赤外線またはマイクロ波を含めた現在または将来の任意の通信技法を使用して伝送することができる。かかるコンピュータプログラム製品は、印刷文書または電子文書が添付された取り外し可能媒体、例えばシステム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 may be stored using any current or future memory technology including, but not limited to, semiconductor, magnetic or optical, and are not limited to light, infrared or microwave. Can be transmitted using any current or future communication technique, including Such computer program products can be distributed as removable media, such as shrink wrap software, preloaded with a computer system on a removable medium, such as a system ROM or fixed disk, to which a printed or electronic document is attached, or can be distributed over a network such as It is contemplated that it can also be distributed from a server or electronic bulletin board via the wide web or the like.

以下では単なる例示のために、添付の図面を参照しながら本発明のいくつかの好ましい実施形態について説明する。   In the following, by way of example only, some preferred embodiments of the present invention will be described with reference to the accompanying drawings.

ここで図2、3を参照して、本発明の好ましい一実施形態について説明する。   A preferred embodiment of the present invention will now be described with reference to FIGS.

本発明の実施形態において、タイルリストに“タイル”及びリストされるグラフィックス記述子は、ドローコールの形式でグラフィックスオブジェクトを含む。しかし、上記検討の通り、他の配置が勿論可能である。   In an embodiment of the present invention, the “tile” in the tile list and the graphics descriptor listed include a graphics object in the form of a draw call. However, as discussed above, other arrangements are of course possible.

図2は、本発明に従って操作され得るグラフィックスプロセッサ20を概略的に示している。グラフィックスプロセッサ20は、ジオメトリプロセッサ21と、レンダラ22とを含んでおり、これらはいずれもメモリ23にアクセスすることができる。メモリ23は、当業者に知られているように、ジオメトリプロセッサ21およびレンダラ22を伴う「オンチップ」とすることも、ジオメトリプロセッサ21およびレンダラ22によってアクセスされ得る外部メモリとすることもできる。   FIG. 2 schematically illustrates a graphics processor 20 that can be operated in accordance with the present invention. The graphics processor 20 includes a geometry processor 21 and a renderer 22, both of which can access the memory 23. Memory 23 may be “on-chip” with geometry processor 21 and renderer 22 as known to those skilled in the art, or it may be external memory that can be accessed by geometry processor 21 and renderer 22.

メモリ23はとりわけ、図2に示されるように、1組の生ジオメトリデータ24(例えば、当技術分野で知られているように、グラフィックスプロセッサのドライバから、またはグラフィックスプロセッサ20のホストシステム(マイクロプロセッサ)上で走っているAPIから供給されるもの)と、1組の変換済みジオメトリデータ25(やはり当技術分野で知られているように、生ジオメトリ24に対して実行された様々な変換および処理操作の結果得られるもの)と、1組のグラフィックスオブジェクト(記述子)リスト26とを記憶する。グラフィックオブジェクトリスト26は、本発明に従って作成される。このプロセスについては以下でより詳細に説明する。   The memory 23, among other things, as shown in FIG. 2, is a set of raw geometry data 24 (e.g., from a graphics processor driver as known in the art or from the host system of the graphics processor 20 ( (Provided by the API running on the microprocessor) and a set of transformed geometry data 25 (also various transformations performed on the raw geometry 24, also known in the art) And one obtained as a result of the processing operation) and a set of graphics object (descriptor) lists 26. Graphic object list 26 is created in accordance with the present invention. This process is described in more detail below.

変換済みジオメトリデータ25は、当技術分野で知られているように、例えば変換済み頂点(頂点データ)などを含む。   The transformed geometry data 25 includes, for example, transformed vertices (vertex data) as is known in the art.

ジオメトリプロセッサ21はとりわけ、プログラマブル頂点シェーダ27と、グラフィックスオブジェクト(記述子)リスト構築ユニット28とを備える。プログラマブル頂点シェーダ27は、メモリ23に記憶されている生ジオメトリデータ24をそれ自体の入力として解釈し、当該データを処理して、フレーム内の2D配置を表示する準備が整った形のジオメトリデータを含む変換済みジオメトリデータ25を提供する(その後これをメモリ23に記憶する)。プログラマブル頂点シェーダ27およびそれ自体の実行するプロセスは、当技術分野で知られているように、任意の適当な形をとることができ、所望される任意の適当なプロセスとすることができる。   The geometry processor 21 comprises, among other things, a programmable vertex shader 27 and a graphics object (descriptor) list construction unit 28. Programmable vertex shader 27 interprets raw geometry data 24 stored in memory 23 as its own input, processes the data, and prepares the geometry data in a form ready to display 2D placement in the frame. Provide transformed geometry data 25 containing (and store it in memory 23). Programmable vertex shader 27 and the process it performs itself may take any suitable form and may be any suitable process desired, as is known in the art.

グラフィックスオブジェクトリスト構築ユニット28は、複数のグラフィックスオブジェクト(記述子−この場合ドローコール)を複数のグラフィックスオブジェクト(記述子)リストに割り付ける本発明のプロセスを実行し、当該複数のグラフィックスオブジェクトリストはその後、レンダリング対象シーンの各小領域に関してレンダリングすべき複数のグラフィックスオブジェクト(記述子)をレンダラ22が特定するのに使用される。これを行うために、グラフィックスオブジェクトリスト構築ユニット28は、プログラマブル頂点シェーダ27からの変換および処理済みの頂点データ(すなわち、シーン内のグラフィックスオブジェクトの位置)をそれ自体の入力として解釈し、当該データを使用してグラフィックスオブジェクト(タイル)リストを構築し、それらのリストをグラフィックスオブジェクトリスト26としてメモリ23に記憶する。このプロセスについては以下でより詳細に説明する。   The graphics object list construction unit 28 executes the process of the present invention for allocating a plurality of graphics objects (descriptors—draw calls in this case) to a plurality of graphics object (descriptor) lists, and the plurality of graphics objects. The list is then used by the renderer 22 to identify a plurality of graphics objects (descriptors) to be rendered for each subregion of the scene to be rendered. To do this, the graphics object list construction unit 28 interprets the transformed and processed vertex data from the programmable vertex shader 27 (i.e. the location of the graphics object in the scene) as its own input, and The data is used to build a graphics object (tile) list and the list is stored in the memory 23 as a graphics object list 26. This process is described in more detail below.

レンダラ22は、グラフィックスオブジェクト(記述子)選択ユニット29と、グラフィックスオブジェクトリストキャッシュ30と、頂点選択ユニット31と、頂点データキャッシュ32と、ラスタ化ユニット33と、レンダリングユニット34と、タイルバッファ35とを含む。   The renderer 22 includes a graphics object (descriptor) selection unit 29, a graphics object list cache 30, a vertex selection unit 31, a vertex data cache 32, a rasterization unit 33, a rendering unit 34, and a tile buffer 35. Including.

本実施形態では、ラスタ化ユニット33、レンダリングユニット34、タイルバッファ35は、かかる各ユニットが既存のグラフィックス処理システムで動作するのと同じ様式で動作する。したがって、ラスタ化ユニット33は、あるプリミティブおよびその各頂点をそれ自体の入力として解釈し、当該プリミティブをフラグメントにラスタ化し、それらのフラグメントをレンダリングユニット34に供給する。次いで、レンダリングユニット34は、当該フラグメント上のテクスチャマッピング、混合、シェーディングなどいくつかのレンダリングプロセスを実施し、レンダリング済みのフラグメントデータを生成し、これを表示用のフレームバッファへの供給のためにタイルバッファ35に記憶する。   In this embodiment, rasterization unit 33, rendering unit 34, and tile buffer 35 operate in the same manner as each such unit operates in an existing graphics processing system. Thus, rasterization unit 33 interprets certain primitives and their respective vertices as its own input, rasterizes the primitives into fragments, and supplies those fragments to rendering unit 34. The rendering unit 34 then performs several rendering processes, such as texture mapping, blending, and shading on the fragment to generate rendered fragment data that is tiled for supply to the frame buffer for display. Store in buffer 35.

レンダラ22のグラフィックスオブジェクト選択ユニット29は、グラフィックスオブジェクト(この場合、ドローコール)を判定し、次にレンダリングすべきプリミティブを判定する。プリミティブ選択ユニット29はこれを、メモリ23に記憶されているグラフィックスオブジェクトリスト26を考慮に入れ、複数のリストの内の1つから次にレンダリングすべきグラフィックスオブジェクト(ドローコール)を選択することによって行う。   The graphics object selection unit 29 of the renderer 22 determines the graphics object (in this case, a draw call) and then determines the primitive to be rendered. The primitive selection unit 29 takes this into account the graphics object list 26 stored in the memory 23 and selects the next graphics object (draw call) to be rendered from one of the lists. Do by.

グラフィックスオブジェクト選択ユニット29は、グラフィックスオブジェクトリストキャッシュ30に1つまたは複数のグラフィックオブジェクトリストを収容することもできる。   The graphics object selection unit 29 can also accommodate one or more graphic object lists in the graphics object list cache 30.

グラフィックスオブジェクト選択ユニット29は、次にレンダリングするために選択したプリミティブを頂点選択ユニット31に供給する。これに応答し、頂点選択ユニット31は、メモリ23内に記憶された変換済みジオメトリデータ25から該当するプリミティブに関する適切な変換済み頂点データを検索し、次いで当該プリミティブ(すなわち、変換済み頂点データ)を処理のためにラスタ化ユニット33に供給する。頂点選択ユニット31は必要に応じて、メモリ23から検索した頂点データを頂点データキャッシュ32にキャッシュすることもできる。   The graphics object selection unit 29 supplies the selected primitive to the vertex selection unit 31 for next rendering. In response, the vertex selection unit 31 retrieves the appropriate transformed vertex data for the corresponding primitive from the transformed geometry data 25 stored in the memory 23, and then retrieves the primitive (i.e., transformed vertex data). Supply to rasterization unit 33 for processing. The vertex selection unit 31 can also cache the vertex data retrieved from the memory 23 in the vertex data cache 32 as necessary.

図3は、本発明のこの実施形態の記述子において表示用の例示的シーンとして使用される、表示される例示的シーンを示す。   FIG. 3 shows an example scene to be displayed that is used as an example scene for display in the descriptor of this embodiment of the invention.

図3から分かるように、シーン50は、4つのプリミティブを含み、それらは、2つの“ドローコール”と、ドローコール1と、ドローコール2とにグループ化される。プリミティブ0、1、及び2は、ドローコール1としてグループ化され、プリミティブ3は、ドローコール2に属する。(従来知られるように、“ドローコール”でプリミティブをグループ化することは基本的に、アプリケーションプログラマが、通常パフォーマンス理由で、ドローコールの全てのプリミティブを一挙にドローしたいことを意味する。同じドローコールのプリミティブ群は通常、同じ状態及びシェーダープログラムデータを共有する。)   As can be seen from FIG. 3, the scene 50 includes four primitives, which are grouped into two “draw calls”, draw call 1 and draw call 2. Primitives 0, 1, and 2 are grouped as draw call 1, and primitive 3 belongs to draw call 2. (As is known in the art, grouping primitives with “draw calls” basically means that the application programmer wants to draw all the primitives of a draw call at once, usually for performance reasons. (Call primitives usually share the same state and shader program data.)

また、プリミティブ2が一つのドローコールに、プリミティブ3がもう一つのドローコールにある2つの分離したドローコールがあることを考えると、図3に示す頂点8は、プリミティブ2及びプリミティブ3の間で共有されないが、代わりに同じ頂点の場所及び頂点の属性を備えた2つの異なる頂点として示されることに留意すべきである。   Also, given that there are two separate draw calls where primitive 2 is in one draw call and primitive 3 is in another draw call, vertex 8 shown in FIG. Note that they are not shared but instead are shown as two different vertices with the same vertex location and vertex attributes.

図4に示されるように、レンダリング対象シーン50は、複数の個々の小領域またはタイル51に分割される。(当業者であれば分かるように、実際には、レンダリング対象の任意の所与のシーンは通常、図3に示す4つのプリミティブ及び2つのドローコールより多くのプリミティブ及びドローコールを含む。しかし、図3は、単純化及び明確化目的でのみ4つのプリミティブ及び2つのドローコールを示す。)   As shown in FIG. 4, the scene to be rendered 50 is divided into a plurality of individual small areas or tiles 51. (As will be appreciated by those skilled in the art, in practice, any given scene to be rendered typically includes more primitives and draw calls than the four primitives and two draw calls shown in FIG. FIG. 3 shows four primitives and two draw calls only for simplicity and clarity.)

本発明の実施形態において、グラフィックスオブジェクトリスト構築ユニット28は、各ドローコール(グラフィックス記述子)、ドローコール1及びドローコール2の場所を判定し、ドローコールが含まれる各小領域(タイル)に対するグラフィックスオブジェクト(記述子)リストにドローコールをリストする。このように、システムは、どのドローコール(グラフィックス記述子)が各小領域に対してレンダリングされるべきかを識別することができる。   In the embodiment of the present invention, the graphics object list construction unit 28 determines the location of each draw call (graphics descriptor), draw call 1 and draw call 2, and each small area (tile) including the draw call. List draw calls in the graphics object (descriptor) list for. In this way, the system can identify which draw call (graphics descriptor) is to be rendered for each subregion.

これは、例えば正確ビニング技術を用いてなされ、その場合、グラフィックスオブジェクトリスト構築ユニット28は、プログラマブル頂点シェーダ27によって所与のドローコールに関して、それが提供された判定され変形された頂点位置を使用して、どの小領域及び一組の小領域にドローコールが含まれる(横切る)かを識別する。   This is done, for example, using an accurate binning technique, in which case the graphics object list construction unit 28 uses the determined and deformed vertex position it was provided for for a given draw call by the programmable vertex shader 27. Thus, it is identified which small area and a set of small areas contain (cross) the draw call.

当業者には理解されるように、必要に応じて、シーン内のドローコールについて、および小領域(タイル)51に関して判定および位置決めする他の技法が使用されてもよい。例えば、当技術分野で知られているように、バウンディングボックス技法が同様の形で使用されてもよい。図3は、ドローコールに対する例示的なバウンディングボックス52、53、ドローコール1、及びドローコール2を示す。(バウンディングボックス技法が使用される場合は、バウンディングボックスが例えばグラフィックスオブジェクトリスト構築ユニットによってグラフィックスオブジェクト(記述子)のリスト化プロセスの一環として生成されることが好ましいが、いうまでもなく、他の構成も可能なはずである。)   As will be appreciated by those skilled in the art, other techniques for determining and positioning for draw calls in the scene and for small regions (tiles) 51 may be used as desired. For example, bounding box techniques may be used in a similar manner, as is known in the art. FIG. 3 shows exemplary bounding boxes 52, 53, draw call 1 and draw call 2 for a draw call. (If bounding box techniques are used, it is preferred that the bounding box be generated as part of the graphics object (descriptor) listing process, for example by the graphics object list construction unit, but of course other It should be possible to configure

このプロセスは、レンダリング対象シーンが分割される各小領域に対して完全なグラフィックスオブジェクトリスト26(グラフィックスオブジェクト(記述子)のリスト)が生成されるまで、順番にレンダリング対象シーンのグラフィックスオブジェクト(ドローコール)毎にグラフィックスオブジェクトリスト構築ユニット28によって反復される。   This process in turn renders the graphics objects of the scene to be rendered until a complete graphics object list 26 (a list of graphics objects (descriptors)) is generated for each subregion into which the scene to be rendered is divided. Repeated by the graphics object list construction unit 28 for each (draw call).

グラフィックスオブジェクトリスト構築ユニット28は、それがプログラマブル頂点シェーダ27からグラフィックスオブジェクトを受ける順番でグラフィックオブジェクトリスト26にグラフィックスオブジェクト(記述子)を置く。これは、各ここのグラフィックスオブジェクトリスト26が関係する限り、リストのグラフィックスオブジェクト(記述子)は、それらが生成された順番であり、それは従来知られるように通常、グラフィックスオブジェクトをレンダリングする所望の順番に対応することを意味する。   The graphics object list construction unit 28 places graphics objects (descriptors) in the graphics object list 26 in the order in which it receives graphics objects from the programmable vertex shader 27. This is, as long as each here graphics object list 26 is involved, the graphics objects (descriptors) in the list are the order in which they were created, which usually renders the graphics objects as is known in the art. It means to correspond to the desired order.

上述のように、レンダラ22はまた、グラフィックスオブジェクトリストキャッシュ30と、頂点データキャッシュ32を含む。これらのキャッシュは、当技術分野で知られているように、レンダラ22上に設けられ、メインメモリ23よりも迅速に当該レンダラの処理ユニットから(特に、グラフィックスオブジェクト選択ユニット29および頂点選択ユニット31からそれぞれ)アクセスすることができるローカルメモリを備えている。   As described above, the renderer 22 also includes a graphics object list cache 30 and a vertex data cache 32. These caches are provided on the renderer 22, as is known in the art, from the renderer's processing unit more quickly than the main memory 23 (in particular, the graphics object selection unit 29 and the vertex selection unit 31). Have local memory that can be accessed respectively.

グラフィックスオブジェクト選択ユニット29は、グラフィックオブジェクトリストキャッシュ30に、それ自体がメインメモリ23から読み出した1つまたは複数のグラフィックスオブジェクトリスト26を記憶するように構成される。   The graphics object selection unit 29 is configured to store in the graphics object list cache 30 one or more graphics object lists 26 that are themselves read from the main memory 23.

同様に、頂点選択ユニット31は、メモリ23内の変換済みジオメトリデータ25から検索した頂点データを頂点データキャッシュ32内にキャッシュすることができ、また、特には、あるプリミティブにとって当該頂点データが再び必要となることが識別され得る場所にキャッシュすることもできる。   Similarly, the vertex selection unit 31 can cache the vertex data retrieved from the converted geometry data 25 in the memory 23 in the vertex data cache 32, and in particular, the vertex data is required again for a certain primitive. It can also be cached where it can be identified.

上記実施形態は、レンダリングプロセスのためのレンダリング対象プリミティブを示すためにグラフィックスオブジェクト(記述子)を使用することに関して説明されてきたが、これらのリストは、グラフィックスデータ及び記述子の、(例えば、初期の)選抜を実行し、及び/又は隠面消去のような、他の目的のためにさらに又は代わりに使用されうる。   While the above embodiments have been described with respect to using graphics objects (descriptors) to indicate the rendered primitives for the rendering process, these lists of graphics data and descriptors (eg, (Initial) selection and / or can be used in addition or instead for other purposes, such as hidden surface removal.

当業者には理解されるように、本実施形態(および本発明)は必要に応じて、任意のタイルベースのレンダリングシステムの形で実施することができる。本実施形態および本発明の様々な構成要素および機能も同様に、当技術分野で知られている任意の適当な技法を使用して、所望の形で実施することができる。   As will be appreciated by those skilled in the art, the present embodiment (and the present invention) can be implemented in the form of any tile-based rendering system as desired. The present embodiments and the various components and functions of the present invention can also be implemented in any desired manner using any suitable technique known in the art.

上記から、本発明は、少なくともその好ましい諸実施形態では、例えば特にタイルのリスト化(プリミティブのソート(ビニング))プロセスに関するメモリ使用率およびメモリ要件をより良い形で制御することと、その知識を得ることとを容易にし、及び/又は後続処理からのデータのさらに迅速な除去(選抜)の機会を提供しうる、タイルベースのレンダリングシステム向けのグラフィックスデータのリスト化およびソートの一構成を提供する。   From the above, the present invention, at least in its preferred embodiments, provides better control and knowledge of memory usage and memory requirements, particularly with respect to, for example, the tile listing (primitive sorting (binning)) process. Provides a configuration and list of graphics data for tile-based rendering systems that can be easily obtained and / or provide an opportunity for more rapid removal (selection) of data from subsequent processing To do.

これは、資源及びメモリ要件が例えば埋め込み装置及び/又は携帯電話等のポータブル装置のように制限されうる装置の場合に特に価値がある。   This is particularly valuable for devices where resource and memory requirements can be limited, such as embedded devices and / or portable devices such as cell phones.

このことは、少なくとも本発明の好ましい諸実施形態では、単に基本的な単一のプリミティブでないグラフィックス記述子(記述)を(小領域毎ベースで)タイルリストにソートすることによって達成される。   This is achieved, at least in the preferred embodiments of the present invention, simply by sorting the basic non-primitive graphics descriptors (descriptions) into a tile list (on a per subregion basis).

タイルベースグラフィックス処理の一構成の概略図である。It is the schematic of one structure of tile-based graphics processing. 本発明に従って動作することができるグラフィックスプロセッサの一構成の概略図である。1 is a schematic diagram of one configuration of a graphics processor that can operate in accordance with the present invention. 複数のプリミティブを複数のプリミティブリストに割り付けるプロセスの一実施形態の概略図である。FIG. 6 is a schematic diagram of one embodiment of a process for assigning multiple primitives to multiple primitive lists.

符号の説明Explanation of symbols

21 ジオメトリプロセッサ
22 レンダラ
23 メモリ
24 グラフィックスオブジェクト選択ユニット
21 Geometry processor
22 Renderer
23 memory
24 Graphics object selection unit

Claims (15)

グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする装置であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段であって、各グラフィックス記述子は、レンダリング対象シーンの単一のプリミティブ以外である、ソートする手段と、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであり、各グラフィックス記述子は、レンダリング対象シーンの単一のプリミティブ以外である、グラフィクス記述子リストを作成する手段と、
を備え、
グラフィックス記述子は、特定のシーンの場所またはエリアで実行されるグラフィックス処理のインジケーションと、レンダリング対象オブジェクトの、比較的高い順番又は比較的高いレベルの記述子及び/又はプリプリミティブ記述子と、一群又は一組の複数のプリミティブと、ドローコールとのうち、一つ以上を備える、装置。
An apparatus for sorting graphics data for processing in a graphics processing system,
Means for sorting graphics descriptors relating to or associated with a location or multiple locations of a scene to be rendered into a specific area or sub-region of the scene, wherein each graphics descriptor A means of sorting that is not a single primitive;
Means for creating a graphics descriptor list for one or more areas or subregions of the scene to be rendered, each graphics descriptor being other than a single primitive of the scene to be rendered;
With
A graphics descriptor is an indication of graphics processing performed at a particular scene location or area, and a relatively high order or relatively high level descriptor and / or pre-primitive descriptor of the object to be rendered. A device comprising one or more of a group or set of primitives and a draw call.
シーンのエリア又は小領域は、シーンがレンダリング目的で分割される小領域を備える、請求項1に記載の装置。   The apparatus of claim 1, wherein the area or subregion of the scene comprises a subregion into which the scene is divided for rendering purposes. シーンのエリア又は小領域は、可視又は不可視のシーンのエリアを備える、請求項1または2に記載の装置。   The apparatus according to claim 1 or 2, wherein the scene area or subregion comprises a visible or invisible scene area. 共通して、一つより多い小領域またはエリアに使用されるグラフィックス記述子リストを作成する手段を備える、請求項1から3のいずれか一項に記載の装置。   4. The apparatus according to any one of claims 1 to 3, comprising means for creating a graphics descriptor list that is commonly used for more than one subregion or area. 表示用シーンをレンダリングする時、ソートされたグラフィックス記述子及び/又はグラフィックス記述子リストを使用する手段を備える、請求項1から4のいずれか一項に記載の装置。   5. Apparatus according to any one of the preceding claims, comprising means for using a sorted graphics descriptor and / or graphics descriptor list when rendering a display scene. シーンがレンダリングされる前に選抜動作を実行するために、ソートされたグラフィックス記述子及び/又はグラフィックス記述子リストを使用する手段を備える、請求項1から5のいずれか一項に記載の装置。   The means according to any one of claims 1 to 5, comprising means for using the sorted graphics descriptor and / or graphics descriptor list to perform a selection operation before the scene is rendered. apparatus. レンダリング対象シーンのグラフィックス記述子の位置又は場所を、シーンの特定の又は選択されたエリア又は複数のエリア又は小領域又は複数の小領域の位置又は場所と比較する手段を備え、各グラフィックス記述子は、レンダリング対象シーンの単一のプリミティブ以外である、請求項1から6のいずれか一項に記載の装置。   Means for comparing the location or location of the graphics descriptor of the scene to be rendered with the location or location of a specific or selected area or areas or subregions or subregions of the scene; The apparatus according to claim 1, wherein the child is other than a single primitive of the scene to be rendered. グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする方法であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートすることであって、各グラフィックス記述子は、レンダリング対象シーンの単一のプリミティブ以外である、ソートすることと、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであり、各グラフィックス記述子は、レンダリング対象シーンの単一のプリミティブ以外である、グラフィクス記述子リストを作成することと
を備え、
グラフィックス記述子は、特定のシーンの場所またはエリアで実行されるグラフィックス処理のインジケーションと、レンダリング対象オブジェクトの、比較的高い順番又は比較的高いレベルの記述子及び/又はプリプリミティブ記述子と、一群又は一組の複数のプリミティブと、ドローコールとのうち、一つ以上を備える、方法。
A method of sorting graphics data for processing in a graphics processing system,
Sorting graphics descriptors relating to or associated with the location or locations of the scene to be rendered into a specific area or sub-region of the scene, each graphics descriptor of the scene being rendered Sorting, other than a single primitive,
A graphics descriptor list for one or more areas or small areas of the scene to be rendered, each graphics descriptor creating a graphics descriptor list that is not a single primitive of the scene to be rendered. Prepared,
A graphics descriptor is an indication of graphics processing performed at a particular scene location or area, and a relatively high order or relatively high level descriptor and / or pre-primitive descriptor of the object to be rendered. A method comprising one or more of a group or set of primitives and a draw call.
シーンのエリア又は小領域は、シーンがレンダリング目的で分割される小領域を備える、請求項8に記載の方法。   9. The method of claim 8, wherein the scene area or subregion comprises a subregion into which the scene is divided for rendering purposes. シーンのエリア又は小領域は、可視又は不可視のシーンのエリアを備える、請求項8または9に記載の方法。   10. A method according to claim 8 or 9, wherein the scene area or subregion comprises a visible or invisible scene area. 共通して、一つより多い小領域またはエリアに使用されるグラフィックス記述子リストを作成する手段を備える、請求項8から10のいずれか一項に記載の方法。   11. A method according to any one of claims 8 to 10, comprising means for creating a graphics descriptor list that is commonly used for more than one subregion or area. 表示用シーンをレンダリングする時、ソートされたグラフィックス記述子及び/又はグラフィックス記述子リストを使用する手段を備える、請求項8から11のいずれか一項に記載の方法。   12. A method according to any one of claims 8 to 11, comprising means for using a sorted graphics descriptor and / or graphics descriptor list when rendering a display scene. シーンがレンダリングされる前に選抜動作を実行するために、ソートされたグラフィックス記述子及び/又はグラフィックス記述子リストを使用する手段を備える、請求項8から12のいずれか一項に記載の方法。   13. A means according to any one of claims 8 to 12, comprising means for using the sorted graphics descriptor and / or graphics descriptor list to perform a selection operation before the scene is rendered. Method. プログラム要素がデータ処理手段上で動作する時、請求項8から13のいずれか一項に記載の方法を実行するコンピュータソフトウェアコード部分を備えるコンピュータプログラム。 When the program element is running on a data processing unit, the computer program comprising computer software code portions for performing the method according to any one of claims 8 13. 請求項1から7のいずれか一項に記載の装置を含むか、又は請求項8から13のいずれか一項に記載の方法に従い動作する、3Dグラフィックスプロセッサ。 Or comprising a device according to any one of claims 1 7, or operates in accordance with the method according to any one of claims 8 13, 3D graphics-processor.
JP2007314022A 2006-12-04 2007-12-04 Method and apparatus for processing graphics Active JP5336067B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007314022A JP5336067B2 (en) 2006-12-04 2007-12-04 Method and apparatus for processing graphics

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2006327341A JP2007157155A (en) 2005-12-05 2006-12-04 Method and apparatus for processing graphics
JP2006327341 2006-12-04
GB0710795.6 2007-06-05
GB0710795A GB0710795D0 (en) 2007-06-05 2007-06-05 Method of and apparatus for processing graphics
JP2007314022A JP5336067B2 (en) 2006-12-04 2007-12-04 Method and apparatus for processing graphics

Publications (2)

Publication Number Publication Date
JP2008165760A JP2008165760A (en) 2008-07-17
JP5336067B2 true JP5336067B2 (en) 2013-11-06

Family

ID=38318773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007314022A Active JP5336067B2 (en) 2006-12-04 2007-12-04 Method and apparatus for processing graphics

Country Status (3)

Country Link
JP (1) JP5336067B2 (en)
CN (1) CN101447091B (en)
GB (1) GB0710795D0 (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US9965886B2 (en) 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
GB0900700D0 (en) * 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
KR101609266B1 (en) * 2009-10-20 2016-04-21 삼성전자주식회사 Apparatus and method for rendering tile based
JP5115768B2 (en) * 2010-04-14 2013-01-09 Necシステムテクノロジー株式会社 Image drawing apparatus, image drawing method, and program
US9472019B2 (en) * 2010-06-30 2016-10-18 Primal Space Systems, Inc. System and method of from-region visibility determination and delta-PVS based content streaming using conservative linearized umbral event surfaces
JP5664052B2 (en) * 2010-09-15 2015-02-04 富士通セミコンダクター株式会社 Graphic processing apparatus and graphic processing program
US9547930B2 (en) 2011-11-30 2017-01-17 Qualcomm Incorporated Hardware switching between direct rendering and binning in graphics processing
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
WO2014087572A1 (en) * 2012-12-04 2014-06-12 パナソニック株式会社 Area dividing and rendering device and area dividing and rendering method
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
US9697640B2 (en) * 2014-04-21 2017-07-04 Qualcomm Incorporated Start node determination for tree traversal in ray tracing applications
GB2524120B (en) * 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
US20180174349A1 (en) * 2014-06-30 2018-06-21 Intel Corporation Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
EP3291083A1 (en) * 2016-09-06 2018-03-07 Siemens Aktiengesellschaft Method of displaying data of a data processing system, data processing system operating according to the method and computer program implementing the method
KR20180050124A (en) 2016-11-04 2018-05-14 삼성전자주식회사 METHOD AND APPARATUS for generating acceleration structure
CN106683033B (en) * 2016-12-12 2020-09-22 中国航空工业集团公司西安航空计算技术研究所 Out-of-order OpenGL interface processing method
US10546365B2 (en) * 2017-03-27 2020-01-28 Advanced Micro Devices, Inc. Single pass flexible screen/scale rasterization
CN107122176B (en) * 2017-03-31 2020-08-04 武汉斗鱼网络科技有限公司 Graph drawing method and device
CN117215592B (en) * 2023-11-07 2024-02-20 芯瞳半导体技术(山东)有限公司 Rendering program generation method, device, electronic equipment and storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6819321B1 (en) * 2000-03-31 2004-11-16 Intel Corporation Method and apparatus for processing 2D operations in a tiled graphics architecture
JP4467267B2 (en) * 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント Image processing method, image processing apparatus, and image processing system
GB0307095D0 (en) * 2003-03-27 2003-04-30 Imagination Tech Ltd Improvements to a tiling system for 3d rendered graphics
AU2004298635B2 (en) * 2003-12-18 2008-02-28 1626628 Ontario Limited System, apparatus and method for mapping
JP4267475B2 (en) * 2004-02-13 2009-05-27 富士通株式会社 Drawing verification device
WO2006031053A2 (en) * 2004-09-13 2006-03-23 Lg Electronics Inc. Recording medium, method for searching contents recorded within the recording medium, and method and apparatus for reproducing the recorded contents
GB0425204D0 (en) * 2004-11-15 2004-12-15 Falanx Microsystems As Processing of 3-dimensional graphics

Also Published As

Publication number Publication date
JP2008165760A (en) 2008-07-17
CN101447091A (en) 2009-06-03
CN101447091B (en) 2013-09-25
GB0710795D0 (en) 2007-07-18

Similar Documents

Publication Publication Date Title
JP5336067B2 (en) Method and apparatus for processing graphics
US9965886B2 (en) Method of and apparatus for processing graphics
US10755473B2 (en) Graphics processing system
KR102475212B1 (en) Foveated rendering in tiled architectures
KR101916341B1 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US8325177B2 (en) Leveraging graphics processors to optimize rendering 2-D objects
CN105321199B (en) Graphics processing pipeline, method and medium for operating the same
CN105023233B (en) Graphic processing system, method of operating the same, and computer storage medium
KR101922482B1 (en) Varying effective resolution by screen location by changing active color sample count within multiple render targets
JP5956770B2 (en) Tile-based graphics system and method of operating such a system
JP5595739B2 (en) Method for processing graphics and apparatus therefor
JP6185211B1 (en) Bandwidth reduction using texture lookup with adaptive shading
JP2005514711A (en) Efficient graphics state management for zone rendering
EP2992510A1 (en) Tessellation of two-dimensional curves using a graphics pipeline
US10262391B2 (en) Graphics processing devices and graphics processing methods
GB2444628A (en) Sorting graphics data for processing
US20200202605A1 (en) Centroid selection for variable rate shading
US20040012586A1 (en) Image processing apparatus and method of same
US20230401667A1 (en) Graphics processing systems
EP1306811A1 (en) Triangle identification buffer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120621

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130613

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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130801

R150 Certificate of patent or registration of utility model

Ref document number: 5336067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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