[go: up one dir, main page]

JP2002074385A - Method and device for providing logic coupling for operating n alphas inside graphic system - Google Patents

Method and device for providing logic coupling for operating n alphas inside graphic system

Info

Publication number
JP2002074385A
JP2002074385A JP2001163359A JP2001163359A JP2002074385A JP 2002074385 A JP2002074385 A JP 2002074385A JP 2001163359 A JP2001163359 A JP 2001163359A JP 2001163359 A JP2001163359 A JP 2001163359A JP 2002074385 A JP2002074385 A JP 2002074385A
Authority
JP
Japan
Prior art keywords
alpha
texture
graphics
shader
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001163359A
Other languages
Japanese (ja)
Other versions
JP4740476B2 (en
Inventor
Patrick Y Law
ワイ ロー パトリック
Yoshitaka Yasumoto
吉孝 安本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of JP2002074385A publication Critical patent/JP2002074385A/en
Application granted granted Critical
Publication of JP4740476B2 publication Critical patent/JP4740476B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

PROBLEM TO BE SOLVED: To generate powerful 2D and 3D graphics or surround sounds in a graphic system provided with a graphics and audio processor for specified use. SOLUTION: This system is provided with the graphics and audio processor equipped with a 3D graphics pipeline and an audio digital signal processor. While using logic coupling for comparing N alphas, a wide image processing effect including outlining of cartoon can be provided.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータグラ
フィックスに関し、より特定的には、家庭用ビデオゲー
ムプラットフォームのような対話式グラフィックスシス
テムに関する。さらにより特定的には、本発明は、N個
のアルファチャンネル演算の論理結合を用いて、漫画の
アウトライニングなどのフォトリアリスティックでない
画像を含む興味深いグラフィックス効果を生じさせるこ
とに関する。
The present invention relates to computer graphics, and more particularly, to interactive graphics systems, such as home video game platforms. Even more particularly, the present invention relates to using logical combinations of N alpha channel operations to produce interesting graphics effects including non-photorealistic images, such as cartoon outlining.

【0002】[0002]

【従来の技術】我々の多くは、非常に現実感のある恐竜
や宇宙人、アニメ化されたおもちゃといった空想的な生
物を含む映像を目にしたことがある。このようなアニメ
ーションは、コンピュータグラフィックスによって可能
となっている。このような技術を用いて、コンピュータ
グラフィックス製作者は、各物体がどのように見える
か、および時間の経過に伴ってどのような外見上の変化
が生じるかを特定することができる。そして、コンピュ
ータが、物体をモデル化し、テレビやコンピュータ画面
などのディスプレイに表示する。表示画像の各部分の着
色や形状が、そのシーンに存在する個々の物体の位置や
向き、各物体に対する照明方向、各物体の面の質感、そ
の他様々な要素に基づいて確実にうまく行なわれるため
に必要な数多くのタスクは、コンピュータが引き受け
る。
2. Description of the Related Art Many of us have seen images containing fantastic creatures such as dinosaurs, aliens, and animated toys that are very realistic. Such animations are made possible by computer graphics. Using such techniques, computer graphics producers can specify what each object looks like and what appearance changes will occur over time. Then, the computer models the object and displays it on a display such as a television or a computer screen. The coloring and shape of each part of the displayed image is reliably and successfully performed based on the position and orientation of each object in the scene, the lighting direction for each object, the texture of the surface of each object, and various other factors Many tasks required by the computer are undertaken.

【0003】コンピュータグラフィックスの生成は複雑
なため、ほんの数年前まで、コンピュータで作成した3
次元グラフィックスの活用は、高価で専門化されたフラ
イトシミュレータやハイエンドグラフイックスワークス
テーション、スーパーコンピュータにほぼ限定されてい
た。人々は、コンピュータシステムによって生成された
画像を、映画や制作費の高いテレビ広告において目にす
ることはあっても、グラフィックス生成を行なうコンピ
ュータに実際に接することはできなかった。このような
状況が変化したのは、ニンテンドウ64(登録商標)や
パーソナルコンピュータで利用可能な各種の3Dグラフ
ィックスカードなど、比較的安価な3Dグラフィックス
プラットフォームの出現によるものである。今や、自宅
や勤務先でも、比較的安価なコンピュータグラフィック
スシステム上において、迫力のある3Dアニメーション
やシミュレーションと対話的に接することが可能となっ
ている。
Due to the complexity of generating computer graphics, computer graphics were created only a few years ago.
The use of dimensional graphics was largely limited to expensive and specialized flight simulators, high-end graphics workstations, and supercomputers. People could see images generated by computer systems in movies and expensive television advertisements, but could not actually access the computer that performs the graphics generation. This change has been due to the advent of relatively inexpensive 3D graphics platforms, such as Nintendo 64 (registered trademark) and various 3D graphics cards available for personal computers. Now, even at home or at work, it is possible to interact with powerful 3D animations and simulations on a relatively inexpensive computer graphics system.

【0004】これまでのコンピュータグラフィックス研
究のほとんどは、現実感のある画像を生成することが中
心となる傾向にあった。この研究は、大きな成果を上げ
ている。いまや、コンピュータは、写真と区別がつかな
いほど現実感のある画像を生成することができるように
なった。たとえば、我々の多くは、映画やテレビにおい
て、本物のような恐竜や宇宙人、コンピュータによって
生成されたフォトリアリスティックな特殊効果を見てき
ている。新人のパイロットは、実際の飛行をほぼ再現す
るような高い現実感のあるコンピュータに基づくフライ
トシミュレータ上で訓練を行なっている。いまや、低価
格の家庭用ビデオゲームシステムは、非常に高い現実感
を提供することができ、ゲームプレーヤに対して、実際
のレーシングカーを競技場で運転したり、雪や氷で覆わ
れたスキー斜面をスキーで滑り降りたり、中世の城の中
を歩いたりといった幻影を与えることができる。ゲーム
の多くは、このような現実感の幻影によって、ゲームプ
レイ体験を大きく拡張している。
[0004] Most computer graphics research so far has tended to focus on producing realistic images. This research has been very successful. Computers can now generate images that are so realistic that they cannot be distinguished from photographs. For example, many of us have seen real dinosaurs, aliens, and computer-generated photorealistic special effects in movies and television. New pilots are training on a highly realistic computer-based flight simulator that approximates the actual flight. Now, low-cost home video game systems can offer a very high degree of realism, giving game players the ability to drive real racing cars on the stadium or ski on snow and ice. You can give the illusion of skiing down a slope or walking through a medieval castle. Many games greatly enhance the gameplay experience with these illusions of reality.

【0005】現実感を拡張する方法の一つとして、「ア
ルファブレンディング」と呼ばれる技術を用いて、面の
不透明度(透明度)をモデリングする方法がある。この
従来技術を用いて、各画像要素は、不透明度の度合いを
表す「アルファ値」が割り当てられる。画像要素の色
は、アルファ値に基づいてブレンディングされ、あるオ
ブジェクトが他のオブジェクトを通して透けて見えるよ
うにすることができる。さらに他の従来技術として、
「アルファ関数」または「アルファテスト」と呼ばれるも
のがあり、これを用いて、オブジェクト・フラグメント
のアルファ値を基準関数または基準値と比較することに
よって、当該オブジェクト・フラグメントを破棄するこ
とができる。アルファテストは、透明だから見えなくな
るであろうという理由で、画像の一部となるであろう部
分をブレンドしない(すなわち、破棄する)と決定する
こともできる。
[0005] As one of methods for extending the sense of reality, there is a method of modeling the opacity (transparency) of a surface using a technique called "alpha blending". Using this prior art, each image element is assigned an "alpha value" representing the degree of opacity. The colors of the image elements can be blended based on the alpha value so that some objects can be seen through other objects. As still another conventional technique,
There is something called an "alpha function" or "alpha test", which can be used to discard an object fragment by comparing the alpha value of the object fragment to a reference function or value. The alpha test may also decide not to blend (ie, discard) what would be part of the image because it would be invisible because it is transparent.

【0006】アルファブレンディングおよびアルファテ
ストは、水やガラスなどの透明なオブジェクトをモデリ
ングするのに特に有効である。これと同じ機能を、テク
スチャマッピングと共に用いて、様々な効果を達成する
こともできる。たとえば、アルファテストは、マットと
して機能するアルファ要素と共に、ポリゴン上のテクス
チャマップを用いて複雑な形状を描くために頻繁に用い
られる。例として、木は、ポリゴン上で木のピクチャ
(テクスチャ)として描くことが可能である。テクスチ
ャ画像の木の部分は、アルファ値1(不透明)とし、木
でない部分はアルファ値0(透明)とすることができ
る。このように、ポリゴンの「木でない」部分は、テク
スチャマップの見えない(透明な)部分にマッピングさ
れ、ポリゴンの「木」の部分は、テクスチャマップの見
える(不透明)部分にマッピングされる。
[0006] Alpha blending and alpha testing are particularly useful for modeling transparent objects such as water and glass. This same function can be used with texture mapping to achieve various effects. For example, alpha tests are often used to draw complex shapes using texture maps on polygons, with alpha elements acting as mats. As an example, a tree can be drawn on a polygon as a picture (texture) of the tree. The tree portion of the texture image can have an alpha value of 1 (opaque), and the non-tree portion can have an alpha value of 0 (transparent). Thus, the "non-tree" portion of the polygon is mapped to the invisible (transparent) portion of the texture map, and the "tree" portion of the polygon is mapped to the visible (opaque) portion of the texture map.

【0007】テクスチャのアルファ要素のこの他の使い
方として、たとえば、穴をあけたり、面をトリムすると
いったことが挙げられる。一例として、カットアウトま
たはトリム領域の画像は、テクスチャマップに保存する
ことができる。ポリゴン面にテクスチャをマッピングす
る際には、アルファテストまたはアルファブレンディン
グを用いて、ポリゴン面からカットアウトまたはトリム
された領域をカットすることができる。さらに、コンピ
ュータグラフィックスシステムのアルファチャンネルを
用いて、漫画のアウトライニングなどのフォトリアリス
ティックでない画像効果を提供することもできる。19
99年12月21日出願の米国特許出願番号09/46
8,109に開示された機構では、リアルタイムレンダ
リングシステムのアルファチャンネルを用いて、異なる
オブジェクトや異なるオブジェクト部分に対応する識別
子を符号化している。このシステムでは、オブジェクト
をカラーフレームバッファにいれてレンダリングし、対
応するオブジェクトIDをアルファフレームバッファに
書き込む。アルファテスト処理がアルファフレームバッ
ファに対して行なわれ、アルファ比較結果(すなわち、
2つのアルファ値の差の絶対値)を用いて、シルエット
や異なるアルファ/IDで符号化された画像領域間で規
定された輪郭を囲んでいる輪郭線の配色を、選択的にブ
レンドする。
[0007] Other uses of the alpha component of the texture include, for example, drilling holes and trimming surfaces. As an example, an image of a cutout or trim region can be stored in a texture map. When mapping a texture to a polygon surface, an area that has been cut out or trimmed from the polygon surface can be cut using alpha test or alpha blending. In addition, the alpha channel of a computer graphics system can be used to provide non-photorealistic image effects, such as cartoon outlining. 19
US patent application Ser. No. 09/46, filed Dec. 21, 1999.
The mechanism disclosed in US Pat. No. 8,109 uses the alpha channel of the real-time rendering system to encode identifiers corresponding to different objects and different object parts. In this system, an object is rendered in a color frame buffer and the corresponding object ID is written to an alpha frame buffer. An alpha test process is performed on the alpha frame buffer and the alpha comparison result (ie,
Using the absolute value of the difference between the two alpha values), a color scheme of a contour line surrounding a contour defined between a silhouette and an image region encoded with a different alpha / ID is selectively blended.

【0008】DirectXやOpenGLなどの典型
的な一般に利用可能な3Dグラフィックスアプリケーシ
ョンプログラマインターフェースは、アルファ比較に対
応している。このアルファ比較は、透明度のためや、た
とえば反復アルファまたはテクスチャアルファと定数と
の比較を行なって、比較が失敗したピクセルを「キル」
するためのものである。一例として、Direct3D
には、アルファテストをイネーブルするために用いられ
る「D3DRENDERSTATE AlPHATES
T−ENABLE」というコマンドが用意されている。
コマンドD3DCOMFUNCといった列挙型によれ
ば、プログラマはアルファ比較演算(たとえば、決して
〜ない、常に、<、>、以下、以上、不等など)におい
て用いられるであろうテストを特定することができる。
たとえば、アルファ比較関数が「以上」に設定され、ラ
スタライズされるピクセルが、ピクセルに既に存在する
カラーよりも不透明である場合、Direct3Dは、
これを完全にスキップして、2つのカラーをブレンドす
るのにかかるであろう時間を節約し、カラーバッファや
zバッファが更新されるのを防止する。また、D3DR
ENDERSTATE_ALPHAREFコマンドを用
いて、新たなアルファを、プログラマが指定した基準ア
ルファ値と比較することもできる(たとえば、「もし、
アルファ<128/255であれば、ピクセルをキルす
る」)。たとえば、コバック他、「インサイドDire
ct3D(マイクロソフト2000)」、289〜291
頁を参照のこと。同様のアルファテスト/比較機能は、
GL_ALPHA_TEST,GL_ALPHA_TE
ST_FUNC,GL_ALPHA_TEST_REF
コマンドによって、OpenGLにおいても用意されて
いる。ナイダー他、「OpenGLプログラミングガイ
ド」(アディソン−ウエズリー、1993年)の301
〜302頁を参照のこと。
[0008] Typical commonly available 3D graphics application programmer interfaces, such as DirectX and OpenGL, support alpha comparison. This alpha comparison "kills" pixels that fail the comparison for transparency or by comparing iterative or texture alpha with a constant, for example.
It is for doing. As an example, Direct3D
Includes the "D3DRENDERSTATE ALPHATES" used to enable the alpha test.
A command “T-ENABLE” is prepared.
An enumeration, such as the command D3DCOMFUNC, allows the programmer to specify tests that would be used in an alpha comparison operation (eg, never, always, <,>, below, above, unequal, etc.).
For example, if the alpha comparison function is set to "greater than or equal to" and the pixel to be rasterized is more opaque than the color already present at the pixel, Direct3D will:
Skipping this completely saves the time it would take to blend the two colors and prevents the color and z buffers from being updated. Also, D3DR
The new alpha can also be compared to a reference alpha value specified by the programmer using the ENDSTATE_ALPHAREF command (e.g., "If,
If alpha <128/255, kill pixel "). For example, Kovac et al.
ct3D (Microsoft 2000) ", 289-291
See page. A similar alpha test / comparison function
GL_ALPHA_TEST, GL_ALPHA_TE
ST_FUNC, GL_ALPHA_TEST_REF
It is also prepared in OpenGL by a command. Neider et al., 301 in "OpenGL Programming Guide" (Addison-Wesley, 1993).
See ~ 302.

【0009】上述の漫画のアウトライニングアルゴリズ
ムを含む、様々で複雑なアルファ比較を実施する際に生
じる問題として、単一のレンダリングパスを用いて、ハ
ードウェアにおいて、より複雑なアルファ比較をいかに
効率的に行なうかということがある。たとえば、任意な
複雑性を有するアルファテストは、典型的には、プロセ
ッサによって実行されるソフトウェアによって直接的に
行うことができるが、(たとえば、より高速に行なうた
めには)ハードウェアに基づいたアルファテストを用い
た方が望ましい場合もある。このような任意な複雑性を
有するアルファテスト機能は、家庭用ビデオゲームやパ
ーソナルコンピュータのグラフィックスカードなどとい
った低価格グラフィックスシステムにおいては、これま
で通常利用できないものであった。
A problem that arises in performing various and complex alpha comparisons, including the cartoon outlining algorithm described above, is how efficient a more complex alpha comparison can be made in hardware using a single rendering pass. To do it. For example, alpha tests of arbitrary complexity can typically be performed directly by software executed by a processor, but are based on hardware-based alpha (eg, for faster performance). Sometimes it is desirable to use tests. Such arbitrarily complex alpha test features have heretofore not been normally available in low cost graphics systems such as home video games and graphics cards for personal computers.

【0010】本発明は、この問題を解決するものであっ
て、論理的に結合可能な複数のアルファ比較を行なうこ
とが可能な、ハードウェアに基づくピクセルシェーダを
提供することによって、幅広いアルファテスト機能を達
成するものである。本発明の一局面によれば、ピクセル
シェーダは、シェードツリーに類似した透過ツリーを提
供するために用いることができる。特に、アルファ機能
を用いて、N個の論理アルファ演算をMアルファ入力に
対して行なうことができる。ここで、NおよびMは、い
かなる整数であってもよい。
The present invention solves this problem, and provides a hardware based pixel shader capable of performing multiple alpha comparisons that can be logically combined to provide a wide range of alpha test functions. Is to achieve. According to one aspect of the invention, a pixel shader can be used to provide a transparent tree similar to a shade tree. In particular, using the alpha function, N logical alpha operations can be performed on the M alpha input. Here, N and M may be any integers.

【0011】本発明の一局面が提供するのは、グラフィ
ックス画像を生成する方法であって、画像化される面を
表す情報(前記情報はアルファを含む)を生成し、同一
のレンダリングパス内において、複数のアルファ比較を
前記アルファ情報に対して実行して、対応する複数のア
ルファ比較結果を提供し、前記複数のアルファ比較結果
を論理的に結合し、少なくとも一部は前記論理結合に基
づいて、前記グラフィックス画像をレンダリングする方
法である。レンダリングステップは、前記論理結合に基
づいてピクセルをキルするか否かを選択することを含ん
でもよい。実行ステップは、ハードウェア内および/ま
たは再循環シェーダを用いて行なわれてもよい。
One aspect of the present invention provides a method for generating a graphics image, wherein information representing a surface to be imaged (the information includes alpha) is generated in the same rendering pass. Performing a plurality of alpha comparisons on the alpha information to provide a corresponding plurality of alpha comparison results, logically combining the plurality of alpha comparison results, at least partially based on the logical combination And rendering the graphics image. The rendering step may include selecting whether to kill pixels based on the logical combination. The performing steps may be performed in hardware and / or using a recirculating shader.

【0012】本発明の他の局面によれば、グラフィック
スシステムは、テクスチャ座標マトリックス乗算器を含
むテクスチャ部と、アルファチャンネルを含むシェーダ
と、アルファ画像を記憶可能な組み込みフレームバッフ
ァと、アルファ画像を前記フレームバッファからコピー
して前記テクスチャ部がテキストとして利用できるよう
にするコピーアウトパイプラインとを備え、前記グラフ
ィックスシステムは、単一のレンダリングパスにおいて
複数のアルファ比較を行なう。
In accordance with another aspect of the present invention, a graphics system includes a texture portion including a texture coordinate matrix multiplier, a shader including an alpha channel, a built-in frame buffer capable of storing an alpha image, and a A copy-out pipeline for copying from the frame buffer to make the texture portion available as text, wherein the graphics system performs multiple alpha comparisons in a single rendering pass.

【0013】アルファ比較およびアルファ論理演算を結
合して用いることによって、アルファに基づく付加的な
効果を幅広く達成することができる。たとえば、二重の
アルファ比較を用いて、漫画のアウトライニングなどの
フォトリアリスティックでない効果を提供することがで
きる(たとえば、絶対値関数を実施することによって、
前記論理結合に基づいた漫画の輪郭線カラーのブレンド
を行なうか否かを効率的に決定することができる)。
By using a combination of alpha comparison and alpha logic operations, a wide range of additional effects based on alpha can be achieved. For example, a double alpha comparison can be used to provide non-photorealistic effects such as cartoon outlining (eg, by implementing an absolute value function,
It is possible to efficiently determine whether or not to blend cartoon outline colors based on the logical combination).

【0014】[0014]

【発明の実施の形態】図1は、対話式3Dコンピュータ
グラフィックスシステム50の例を示す。システム50
は、興味をそそる立体音響を伴う対話式3Dビデオゲー
ムをプレイするのに用いることができる。また、これ
は、他の様々な用途に応用できる。
DETAILED DESCRIPTION FIG. 1 shows an example of an interactive 3D computer graphics system 50. System 50
Can be used to play interactive 3D video games with intriguing stereophonic sound. It can also be applied to various other uses.

【0015】本例において、システム50は、デジタル
表現や3次元世界モデルを、対話的にリアルタイムで処
理することができる。システム50は、世界のすべてま
たは一部を、任意の視点から表示することができる。た
とえば、システム50は、手持ちコントローラ52aお
よび52bなどの入力装置からのリアルタイム入力に応
答して、視点を対話的に変化させることができる。これ
により、ゲームプレイヤは、世界の内部または外部の者
から見た世界を見ることができる。システム50は、リ
アルタイム3D対話式表示を要求しないような用途(た
とえば、2D表示生成および/または非対話式表示)に
用いることもできるが、上質の3D画像を非常に高速に
表示する能力は、現実感の高いおもしろいゲームプレイ
などの視覚的な対話を生成するのに用いることができ
る。
In this example, system 50 can interactively process digital representations and three-dimensional world models in real time. The system 50 can display all or part of the world from any viewpoint. For example, system 50 can interactively change the viewpoint in response to real-time input from input devices such as handheld controllers 52a and 52b. This allows the game player to see the world as seen from inside or outside the world. The system 50 can also be used for applications that do not require real-time 3D interactive display (eg, 2D display generation and / or non-interactive display), but the ability to display high quality 3D images very quickly. It can be used to create visual interactions such as realistic gameplay.

【0016】システム50を用いてビデオゲームなどの
アプリケーションをプレイするためには、ユーザは、ま
ず、ケーブル58を用いて、メインユニット54をユー
ザのカラーテレビ56などの表示装置に接続する。メイ
ンユニット54は、カラーテレビ56を制御するための
ビデオ信号および音声信号を生成する。ビデオ信号は、
テレビ画面59に表示される画像を制御するものであ
り、音声信号は、テレビのステレオスピーカ61Lおよ
び61Rを介して、音として再生される。
To play an application such as a video game using the system 50, the user first connects the main unit 54 to a user's display such as a color television 56 using a cable 58. The main unit 54 generates a video signal and an audio signal for controlling the color television 56. The video signal is
This controls the image displayed on the television screen 59, and the audio signal is reproduced as sound via the stereo speakers 61L and 61R of the television.

【0017】また、ユーザは、メインユニット54を電
源に接続する必要がある。この電源は、家庭の壁にある
電気コンセントに差し込む従来のACアダプタ(図示せ
ず)であってもよく、家庭用電流を、メインユニット5
4に電力供給するのに適切な、より低いDC電圧信号に
変換する。他の態様として、電池を用いることも可能で
ある。
Further, the user needs to connect the main unit 54 to a power source. This power source may be a conventional AC adapter (not shown) that plugs into an electrical outlet on the wall of the home,
4 to a lower DC voltage signal suitable for powering 4. In another embodiment, a battery can be used.

【0018】ユーザは、ハンドコントローラ52aおよ
び52bを用いて、メインユニット54を制御してもよ
い。たとえば、操作部60を用いて、テレビ56に表示
されるキャラクタが3次元世界内で移動すべき方向(上
または下、左または右、近または遠)を指定することが
できる。また、操作部60は、他の用途のための入力を
与える(たとえば、メニュー選択、ポインタ/カーソル
制御など)。コントローラ52は、様々な形態を取り得
る。本例においては、図示された各コントローラ52
は、ジョイスティック、押しボタン、および/または方
向スイッチなどの操作部60を含む。コントローラ52
のメインユニット54への接続は、ケーブルであっても
よいし、電磁波(たとえば、電波または赤外線波)を介
した無線であってもよい。
The user may control the main unit 54 using the hand controllers 52a and 52b. For example, using the operation unit 60, it is possible to specify a direction (up or down, left or right, near or far) in which the character displayed on the television 56 should move in the three-dimensional world. The operation unit 60 also provides inputs for other uses (for example, menu selection, pointer / cursor control, etc.). The controller 52 can take various forms. In this example, each of the illustrated controllers 52
Includes an operation unit 60 such as a joystick, a push button, and / or a direction switch. Controller 52
May be connected to the main unit 54 by a cable or wirelessly via electromagnetic waves (for example, radio waves or infrared waves).

【0019】ゲームなどのアプリケーションをプレイす
るためには、ユーザは、プレイしたいと思う当該ビデオ
ゲームなどのアプリケーションを記憶する適切な記憶媒
体62を選択して、当該記憶媒体をメインユニット54
内のスロット64に挿入する。記憶媒体62は、たとえ
ば、特に符号化されたおよび/または暗号化された光学
および/または磁気ディスクであってもよい。ユーザ
は、電源スイッチ66を操作して、メインユニット54
をオンして、記憶媒体62に記憶されたソフトウェアに
基づいてビデオゲームなどのアプリケーションの実行を
開始してもよい。ユーザは、コントローラ52を操作し
て、メインユニット54に入力を与えてもよい。たとえ
ば、操作部60を操作すると、ゲームなどのアプリケー
ションが開始されてもよい。他の操作部60を動かす
と、動くキャラクタを異なる方向へ移動させたり、3D
世界内でのユーザの視点を変化させたりすることができ
る。記憶媒体62内に記憶された特定のソフトウェアに
基づいて、コントローラ52上の様々な制御部60は、
異なる時に異なる機能を実行することができる。
In order to play an application such as a game, the user selects an appropriate storage medium 62 for storing an application such as a video game that he or she wants to play, and stores the storage medium in the main unit 54.
Into the slot 64 in the inside. The storage medium 62 may be, for example, a particularly encoded and / or encrypted optical and / or magnetic disk. The user operates the power switch 66 to operate the main unit 54.
May be turned on to start executing an application such as a video game based on the software stored in the storage medium 62. The user may operate the controller 52 to give an input to the main unit 54. For example, operating the operation unit 60 may start an application such as a game. By moving the other operation unit 60, the moving character can be moved in a different direction,
For example, the user's viewpoint in the world can be changed. Based on the specific software stored in the storage medium 62, various controls 60 on the controller 52
Different functions can be performed at different times.

【0020】<システム全体の電子回路例>図2は、シ
ステム50の構成要素例のブロック図を示す。主な構成
要素は以下のものを含む。 ・メインプロセッサ(CPU)110、 ・メインメモリ112、および ・グラフィックス&音声プロセッサ114
<Example of Electronic Circuit of Entire System> FIG. 2 is a block diagram showing an example of components of the system 50. The main components include: A main processor (CPU) 110; a main memory 112; and a graphics and audio processor 114.

【0021】本例においては、メインプロセッサ110
(たとえば、拡張されたIBMPowerPC750)
は、グラフィックス&音声プロセッサ114を介して手
持ちコントローラ108(および/または他の入力装
置)からの入力を受ける。メインプロセッサ110は、
ユーザ入力に対話的に応答して、たとえば外部記憶媒体
62から光学ディスクドライブなどの大容量記憶アクセ
ス装置106を介して供給されるビデオゲームなどのプ
ログラムを実行する。一例として、ビデオゲームプレイ
の場合、メインプロセッサ110は、様々な対話的な制
御機能に加えて、衝突検出や動画処理を行うことができ
る。
In this embodiment, the main processor 110
(Eg, extended IBMPowerPC750)
Receives input from the handheld controller 108 (and / or other input devices) via the graphics and audio processor 114. The main processor 110
In response to a user input interactively, a program, such as a video game, supplied from external storage medium 62 via mass storage access device 106, such as an optical disk drive, is executed. As an example, in the case of video game play, the main processor 110 can perform collision detection and moving image processing in addition to various interactive control functions.

【0022】本例において、メインプロセッサ110
は、3Dグラフィックスコマンドおよび音声コマンドを
生成して、グラフィックス&音声プロセッサ114に送
る。グラフィックス&音声プロセッサ114は、これら
のコマンドを処理して、興味をそそる視覚的な画像をデ
ィスプレイ59に生成したり、興味をそそる立体音響を
ステレオスピーカ61Rおよび61Lなどの適切な音発
生装置に生成したりする。
In this example, the main processor 110
Generates 3D graphics commands and audio commands and sends them to the graphics and audio processor 114. The graphics and audio processor 114 processes these commands to generate an intriguing visual image on the display 59 or to direct intriguing stereophonic sound to a suitable sound generator such as stereo speakers 61R and 61L. Or generate it.

【0023】本例のシステム50が含むビデオエンコー
ダ120は、グラフィックス&音声プロセッサ114か
ら画像信号を受信して、当該画像信号を、コンピュータ
モニタや家庭用カラーテレビ56などの標準的な表示装
置に表示するのに適切なアナログおよび/またはデジタ
ルビデオ信号に変換する。また、システム50が含む音
声コーデック(圧縮器/伸長器)122は、デジタル化
された音声信号の圧縮および伸長を行い、また、必要に
応じて、デジタルまたはアナログ音声信号形式への変換
を行なってもよい。音声コーデック122は、音声入力
をバッファ124を介して受信して、グラフィックス&
音声プロセッサ114に与えて、処理を行なうことがで
きる(たとえば、プロセッサが生成した他の音声信号と
ミキシングするおよび/または大容量記憶アクセス装置
106のストリーミング音声出力を介して受信する)。
本例のグラフィックス&音声プロセッサ114は、音声
関連情報を音声タスク用に利用可能な音声メモリ126
に記憶することができる。グラフィックス&音声プロセ
ッサ114は、処理結果の音声出力信号を音声コーデッ
ク112に与えて、スピーカ61Lおよび61Rによっ
て再生できるように、(たとえば、バッファ増幅器12
8Lおよび128Rを介して)伸長やアナログ信号への
変換が行われる。
The video encoder 120 included in the example system 50 receives an image signal from the graphics and audio processor 114 and converts the image signal to a standard display device such as a computer monitor or a home color television 56. Convert to analog and / or digital video signals suitable for display. The audio codec (compressor / decompressor) 122 included in the system 50 compresses and decompresses the digitized audio signal and, if necessary, converts it into a digital or analog audio signal format. Is also good. The audio codec 122 receives the audio input via the buffer 124, and
It may be provided to audio processor 114 for processing (eg, mixing with other audio signals generated by the processor and / or receiving via the streaming audio output of mass storage access device 106).
The graphics and audio processor 114 of this example includes an audio memory 126 that can use audio-related information for audio tasks.
Can be stored. The graphics and audio processor 114 supplies the processed audio output signal to the audio codec 112 so that the audio output signal can be reproduced by the speakers 61L and 61R (for example, the buffer amplifier 12).
Decompression and conversion to analog signals (via 8L and 128R).

【0024】グラフィックス&音声プロセッサ114
は、システム50内にある様々な付加的な装置と通信を
行うことが可能である。たとえば、パラレルデジタルバ
ス130が、大容量記憶アクセス装置106および/ま
たは他の構成要素との通信に用いられてもよい。シリア
ル周辺機器バス132が、様々な周辺機器などの機器と
の通信に用いられてもよく、それらの機器としては、た
とえば、以下のものを含む。 ・プログラム可能な読み出し専用メモリおよび/または
リアルタイムクロック134、 ・モデム136などのネットワークインターフェース
(インターネットなどのデジタルネットワークのよう
な、プログラム命令および/またはデータをダウンロー
ドしたりアップロードしたりすることが可能な電気通信
ネットワーク138に対して、システム50を接続する
ようなものであってもよい)、および・フラッシュメモ
リ140。
Graphics and audio processor 114
Can communicate with various additional devices within system 50. For example, a parallel digital bus 130 may be used for communication with mass storage access device 106 and / or other components. The serial peripheral bus 132 may be used for communication with various peripherals and other devices, including, for example, the following: A programmable read-only memory and / or real-time clock 134; a network interface such as a modem 136 (such as a digital network such as the Internet, capable of downloading and uploading program instructions and / or data. Such as connecting the system 50 to the communication network 138), and flash memory 140.

【0025】別の外部シリアルバス142が、付加的な
拡張メモリ144(たとえば、メモリカード)などの装
置との通信に用いられてもよい。コネクタが、様々な装
置をバス130、132、および142を接続するため
に用いられてもよい。
Another external serial bus 142 may be used for communication with devices such as additional expansion memory 144 (eg, a memory card). Connectors may be used to connect various devices to buses 130, 132, and 142.

【0026】<グラフィックス&音声プロセッサの例>
図3は、グラフィックス&音声プロセッサ114の例の
ブロック図である。一例として、グラフィックス&音声
プロセッサ114は、単一チップASIC(特定用途向
けIC)であってもよい。本例において、グラフィック
ス&音声プロセッサ114は、以下のものを含む。 ・プロセッサインターフェース150、 ・メモリインターフェース/コントローラ152、 ・3Dグラフィックスプロセッサ154、 ・音声デジタル信号プロセッサ(DSP)156、 ・音声メモリインターフェース158 ・音声インターフェース&ミキサ160 ・周辺機器コントローラ162、および ・ディスプレイコントローラ164。
<Example of Graphics & Audio Processor>
FIG. 3 is a block diagram of an example of the graphics and audio processor 114. As an example, graphics and audio processor 114 may be a single-chip ASIC (application-specific IC). In this example, graphics and audio processor 114 includes: A processor interface 150, a memory interface / controller 152, a 3D graphics processor 154, an audio digital signal processor (DSP) 156, an audio memory interface 158, an audio interface and mixer 160, a peripheral controller 162, and a display controller. 164.

【0027】3Dグラフィックスプロセッサ154は、
グラフィック処理タスクを行う。音声デジタル信号プロ
セッサ156は、音声処理タスクを行う。ディスプレイ
コントローラ164は、画像情報をメインメモリ112
からアクセスして、それをビデオエンコーダ120に与
えて、表示装置56に表示させる。音声インターフェー
ス&ミキサ160は、音声コーデック122とインター
フェースし、また、別のソースからの音声(たとえば、
大容量記憶アクセス装置106からのストリーミング音
声、音声DSP156の出力、および音声コーデック1
22を介して受信した外部音声入力)をミキシングする
ことも可能である。プロセッサインターフェース150
は、メインプロセッサ110およびグラフィックス&音
声プロセッサ114間のデータおよび制御インターフェ
ースを提供する。
The 3D graphics processor 154 includes:
Perform graphic processing tasks. Audio digital signal processor 156 performs audio processing tasks. The display controller 164 stores the image information in the main memory 112.
And gives it to the video encoder 120 for display on the display device 56. Audio interface & mixer 160 interfaces with audio codec 122 and also receives audio from another source (eg,
Streaming audio from mass storage access device 106, output of audio DSP 156, and audio codec 1
It is also possible to mix an external audio input received via the external input 22. Processor interface 150
Provides a data and control interface between the main processor 110 and the graphics and audio processor 114.

【0028】メモリインターフェース152は、グラフ
ィックス&音声プロセッサ114およびメモリ112間
のデータおよび制御に関するインターフェースを提供す
る。本例において、メインプロセッサ110は、グラフ
ィックス&音声プロセッサ114の一部であるプロセッ
サインターフェース150およびメモリインターフェー
ス152を介して、メインメモリ112にアクセスす
る。周辺機器コントローラ162は、グラフィックス&
音声プロセッサ114および上述の様々な周辺機器間に
おけるデータおよび制御に関するインターフェースを提
供する。音声メモリインターフェース158は、音声メ
モリ126とのインターフェースを提供する。
Memory interface 152 provides an interface for data and control between graphics and audio processor 114 and memory 112. In this example, the main processor 110 accesses the main memory 112 via the processor interface 150 and the memory interface 152 which are a part of the graphics and audio processor 114. The peripheral device controller 162 is a graphics &
It provides an interface for data and control between the audio processor 114 and the various peripherals described above. Audio memory interface 158 provides an interface with audio memory 126.

【0029】<グラフィックスパイプラインの例>図4
は、3Dグラフィックスプロセッサ154の例のより詳
細な図である。3Dグラフィックスプロセッサ154
は、特に、コマンドプロセッサ200と、3Dグラッフ
ィックスパイプライン180とを含む。メインプロセッ
サ110は、データのストリーム(たとえば、グラフィ
ックスコマンドストリームやデータリスト)をコマンド
プロセッサ200に伝達する。メインプロセッサ110
は、メモリの待ち時間を最小限にするための2レベルキ
ャッシュ115を有し、また、グラフィックス&音声プ
ロセッサ114向けの未キャッシュのデータストリーム
のためのライトギャザリングバッファ111も有する。
ライトギャザリングバッファ111は、部分キャッシュ
ラインを集めて完全キャッシュラインとし、このデータ
を1キャッシュラインずつグラフィックス&音声プロセ
ッサ114に送出して、バスが最大限に利用できるよう
にする。
<Example of Graphics Pipeline> FIG.
Is a more detailed diagram of an example of a 3D graphics processor 154. 3D graphics processor 154
Includes, among other things, a command processor 200 and a 3D graphics pipeline 180. Main processor 110 communicates a stream of data (eg, a graphics command stream or a data list) to command processor 200. Main processor 110
Has a two-level cache 115 to minimize memory latency and also has a write gathering buffer 111 for uncached data streams for the graphics and audio processor 114.
The write gathering buffer 111 collects partial cache lines into complete cache lines, and sends this data to the graphics and audio processor 114 one cache line at a time so that the bus can be used to the maximum extent.

【0030】コマンドプロセッサ200は、メインプロ
セッサ110から表示コマンドを受信し、これを解析し
て、処理に必要な付加データを共通メモリ112から取
得する。コマンドプロセッサ200は、頂点コマンドの
ストリームをグラフィックスパイプライン180に与え
て、2Dおよび/または3D処理およびレンダリングを
行う。グラフィックスパイプライン180は、これらの
コマンドに基づいて画像を生成する。生成された画像情
報は、メインメモリ112に転送されて、表示制御部/
ビデオインターフェース部164によってアクセスでき
るようにしてもよく、それによって、ディスプレイ56
にパイプライン180のフレームバッファ出力が表示さ
れる。
The command processor 200 receives the display command from the main processor 110, analyzes the display command, and acquires additional data necessary for processing from the common memory 112. Command processor 200 provides a stream of vertex commands to graphics pipeline 180 for 2D and / or 3D processing and rendering. The graphics pipeline 180 generates an image based on these commands. The generated image information is transferred to the main memory 112, and the display control unit /
It may be made accessible by the video interface unit 164, whereby the display 56
The frame buffer output of the pipeline 180 is displayed.

【0031】図5は、グラフィックスプロセッサ154
の論理フロー図である。メインプロセッサ110は、グ
ラフィックスコマンドストリーム210と、表示リスト
212と、頂点アレイ214とをメインメモリ112に
記憶してもよく、バスインターフェース150を介して
ポインタをコマンドプロセッサ200に渡す。メインプ
ロセッサ110は、メインメモリ110内に割り当てた
1つ以上のグラフィックス先入れ先出し(FIFO)バ
ッファ210にグラフィックスコマンドを記憶する。コ
マンドプロセッサ200は、以下のものを取り出す。 ・グラフィックスコマンドを受信およびバッファリング
して、同期/フロー制御およびロードバランシングを行
なうオンチップFIFOメモリバッファ216を介し
て、メインメモリ112からのコマンドストリーム、 ・オンチップ呼び出しFIFOメモリバッファ218を
介して、メインメモリ112からの表示リスト212、
および ・コマンドストリームからの、および/または頂点キャ
ッシュ220を介してメインメモリ112内の頂点アレ
イ214からの頂点属性。
FIG. 5 shows the graphics processor 154.
FIG. 3 is a logic flow diagram of FIG. Main processor 110 may store graphics command stream 210, display list 212, and vertex array 214 in main memory 112, and pass pointers to command processor 200 via bus interface 150. Main processor 110 stores the graphics commands in one or more graphics first in first out (FIFO) buffers 210 allocated in main memory 110. Command processor 200 retrieves: A command stream from the main memory 112 via an on-chip FIFO memory buffer 216 that receives and buffers graphics commands and performs synchronization / flow control and load balancing; and via an on-chip call FIFO memory buffer 218 , Display list 212 from main memory 112,
And vertex attributes from the command stream and / or from the vertex array 214 in the main memory 112 via the vertex cache 220.

【0032】コマンドプロセッサ200は、コマンド処
理動作200aを行って、属性型を浮動小数点形式に変
換し、その結果の完全な頂点ポリゴンデータをグラフィ
ックスパイプライン180に渡して、レンダリング/ラ
スタライズする。プログラム可能なメモリ調停回路13
0(図4参照)は、グラフィックスパイプライン18
0、コマンドプロセッサ200、および表示制御部/ビ
デオインターフェース部164の間で共通のメインメモ
リ112に対するアクセスを調停する。
The command processor 200 performs a command processing operation 200a to convert the attribute type to a floating-point format, and passes the resulting complete vertex polygon data to the graphics pipeline 180 for rendering / rasterization. Programmable memory arbitration circuit 13
0 (see FIG. 4) is the graphics pipeline 18
0, the command processor 200 and the display controller / video interface 164 arbitrate access to the common main memory 112.

【0033】図4に示すように、グラフィックスパイプ
ライン180は、以下のものを含んでもよい。 ・変換部1300、 ・セットアップ/ラスタライザ400、 ・テクスチャ部500、 ・テクスチャ環境部600、および ・ピクセルエンジン部700。
As shown in FIG. 4, graphics pipeline 180 may include: A conversion unit 1300, a setup / rasterizer 400, a texture unit 500, a texture environment unit 600, and a pixel engine unit 700.

【0034】変換部1300は、2Dおよび3D変換な
どの様々な処理300aを行う(図5参照)。変換部3
00は、変換処理300aに用いられるマトリックスを
記憶する1以上のマトリックスメモリ300bを含んで
もよい。変換部1300は、頂点毎に入力される形状
を、オブジェクト空間から画面空間へ変換し、入力され
るテクスチャ座標を変換して投影テクスチャ座標を計算
する(300c)。変換部1300は、ポリゴンクリッ
ピング/カリング(300d)を行ってもよい。また、
変換部300bによって行われるライティング処理30
0eによって、一実施例においては、8個の独立した光
に対するライティング計算が頂点毎に行われる。また、
変換部1300は、エンボス型のバンプマッピング効果
を出すためのテクスチャ座標生成(300c)や、ポリ
ゴンクリッピング/カリング処理(300d)を行うこ
ともできる。
The conversion unit 1300 performs various processes 300a such as 2D and 3D conversion (see FIG. 5). Converter 3
00 may include one or more matrix memories 300b that store the matrices used in the conversion process 300a. The conversion unit 1300 converts the shape input for each vertex from the object space to the screen space, converts the input texture coordinates, and calculates projected texture coordinates (300c). The conversion unit 1300 may perform polygon clipping / culling (300d). Also,
Lighting process 30 performed by conversion unit 300b
With 0e, in one embodiment, lighting calculations for eight independent lights are performed for each vertex. Also,
The conversion unit 1300 can also perform texture coordinate generation (300c) for producing an embossed bump mapping effect and polygon clipping / culling processing (300d).

【0035】セットアップ/ラスタライザ400は、セ
ットアップ部を含む。セットアップ部は、頂点データを
変換部300から受信して三角形セットアップ情報を1
以上のラスタライザ(400b)に送信して、エッジラ
スタライズ、テクスチャ座標ラスタライズ、およびカラ
ーラスタライズを行う。
The setup / rasterizer 400 includes a setup unit. The setup unit receives the vertex data from the conversion unit 300 and sets the triangle setup information to 1
The data is transmitted to the above-described rasterizer (400b) to perform edge rasterization, texture coordinate rasterization, and color rasterization.

【0036】テクスチャ部500(オンチップテクスチ
ャメモリ(TMEM)502を含んでもよい)、テクス
チャリング関連の様々なタスクを行う。タスクには、た
とえば、以下のものが含まれる。 ・メインメモリ112からテクスチャ504を取り出
す、 ・たとえばマルチテクスチャ処理、ポストキャッシュテ
クスチャ伸展、テクスチャフィルタリング、エンボス、
投影テクスチャを用いたシャドウおよびライティング、
ならびにアルファ透明およびデプスを用いたBLITを
含む、テクスチャ処理(500a)、 ・バンプマッピング、疑似テクスチャ、テクスチャタイ
リング効果のためのテクスチャ座標変換量を計算するバ
ンプマップ処理(500b)、および ・間接テクスチャ処理(500c)。
The texture section 500 (which may include an on-chip texture memory (TMEM) 502) performs various tasks related to texturing. Tasks include, for example: Retrieve texture 504 from main memory 112; eg multi-texture processing, post-cache texture extension, texture filtering, embossing,
Shadow and lighting using projected textures,
Texture processing (500a), including BLIT with alpha transparency and depth; bump mapping (pseudo-texture), bump map processing (500b) to calculate texture coordinate transformations for texture tiling effects; and indirect texture. Processing (500c).

【0037】テクスチャ部500は、透過されたテクス
チャ値をテクスチャ環境部600に出力して、テクスチ
ャ環境処理を行なう(600a)。
The texture section 500 outputs the transmitted texture value to the texture environment section 600 and performs texture environment processing (600a).

【0038】テクスチャ部500は、再循環し、直接お
よび間接テクスチャリングを両方とも実行可能で、単一
のレンダリングパス中に、テクスチャマッピング出力シ
ーケンスをブレンディング用にテクスチャ環境部600
に与える。米国特許出願番号09/722,382、名
称「グラフィクスシステムにおいて直接および間接テク
スチャを処理するための方法および装置」(代理人整理
番号723−961)および2000年8月23日出願
の対応仮出願番号60/226,891を参照のこと。
両出願は、本願に引用によって合体される。
The texture section 500 can recycle and perform both direct and indirect texturing, and during a single rendering pass, render the texture mapping output sequence to the texture environment section 600 for blending.
Give to. U.S. patent application Ser. No. 09 / 722,382, entitled "Methods and Apparatus for Processing Direct and Indirect Textures in Graphics Systems" (Attorney Docket No. 723-961) and corresponding provisional application filed Aug. 23, 2000 See 60 / 226,891.
Both applications are incorporated herein by reference.

【0039】テクスチャ環境部600は、ポリゴンとテ
クスチャカラー/アルファ/デプスをブレンドし、テク
スチャフォグ処理(600b)をも行って、インバース
レンジに基づくフォグ効果を達成する。テクスチャ環境
部600は、複数のステージを提供して、たとえばカラ
ー/アルファ・モジュレーション、エンボス、ディテー
ルテクスチャリング、テクスチャスワッピング、クラン
ピング、およびデプスブレンディングに基づいて、他の
興味をそそる様々な環境関連の機能を行うことができ
る。
The texture environment section 600 blends polygons with texture color / alpha / depth and performs texture fog processing (600b) to achieve a fog effect based on the inverse range. The texture environment 600 provides a number of stages to provide various other intriguing environment-related based on, for example, color / alpha modulation, embossing, detail texturing, texture swapping, clamping, and depth blending. Function can be performed.

【0040】ピクセルエンジン700は、デプス(z)
比較(700a)およびピクセルブレンディング(70
0b)を行う。本例において、ピクセルエンジン700
は、組み込み(オンチップ)フレームバッファメモリ7
02にデータを記憶する。グラフィックスパイプライン
180は、1以上の組み込みDRAMメモリ702を含
んでもよく、フレームバッファの内容および/またはテ
クスチャ情報をローカルに記憶する。現在有効なレンダ
リングモードによっては、Z比較700a’は、グラフ
ィックスパイプラインの早い段階において行われること
もできる(たとえば、アルファブレンディングが不要で
あれば、z比較は早い段階で行うことができる。)。ピ
クセルエンジン700は、コピー処理700cを含む。
これは、オンチップフレームバッファの内容をメインメ
モリに周期的に書き込むものであり、表示/ビデオイン
ターフェース部164がアクセスできるようにする。こ
のコピー処理700cを用いて、組み込みフレームバッ
ファ702の内容からテクスチャまでを、メインメモリ
112にコピーすることもでき、動的なテクスチャ合成
効果が得られる。アンチエイリアシングやその他のフィ
ルタリングは、コピーアウト処理中に行うことができ
る。(最終的にはメインメモリ112に記憶される)グ
ラフィックスパイプライン180のフレームバッファ出
力は、フレーム毎に、表示/ビデオインターフェース部
164によって読み出される。表示制御部/ビデオイン
ターフェース164は、ディジタルRGBピクセル値を
与えて、ディスプレイ102に表示する。コピーアウト
パイプラインは、ピクセルエンジン700の一部であっ
てもよく、このコピーアウトパイプラインにより、組み
込みフレームバッファ702の内容の一部または全部
を、単一のレンダリングパス内において、テクスチャと
して、メインメモリ112にコピーアウトすることがで
きる。そして、テクスチャ部500は、コピーアウトさ
れたテクスチャをテクスチャメモリ502に読み出し
て、テクスチャマッピングの付加的な視覚化を行なう際
にこれをフレームバッファの内容として用いてもよい。
システム50が、たとえば、組み込みフレームバッファ
702に入れてレンダリングされたアルファ情報をコピ
ーアウトして、このアルファ情報をテクスチャとしてテ
クスチャマッピングの際に適用して、組み込みフレーム
バッファの内容に加えることも可能である。これらすべ
ては、同一のレンダリングパス内で行なわれる。米国特
許出願番号09/722,663、名称「内部フレーム
バッファと主メモリ間でのコピーアウト変換を有するグ
ラフィクスシステム」(代理人整理番号723−96
3)および2000年8月23日出願のその対応仮出願
番号60/227,030を参照のこと。両出願は、本
願に引用によって合体される。
The pixel engine 700 has a depth (z)
Compare (700a) and pixel blending (70
0b). In this example, the pixel engine 700
Is a built-in (on-chip) frame buffer memory 7
02 is stored. Graphics pipeline 180 may include one or more embedded DRAM memories 702 to store the contents of frame buffers and / or texture information locally. Depending on the currently active rendering mode, the Z comparison 700a 'may be performed early in the graphics pipeline (eg, if alpha blending is not required, the z comparison may be performed early). The pixel engine 700 includes a copy process 700c.
This periodically writes the contents of the on-chip frame buffer to the main memory and makes the display / video interface unit 164 accessible. Using the copy processing 700c, the contents from the contents of the embedded frame buffer 702 to the texture can be copied to the main memory 112, and a dynamic texture synthesizing effect can be obtained. Anti-aliasing and other filtering can be performed during the copy-out process. The frame buffer output of the graphics pipeline 180 (finally stored in the main memory 112) is read by the display / video interface unit 164 for each frame. The display controller / video interface 164 gives the digital RGB pixel values and displays them on the display 102. The copy-out pipeline may be part of the pixel engine 700, and may allow some or all of the contents of the embedded frame buffer 702 to be used as a texture in a single rendering pass, as a texture. It can be copied out to the memory 112. Then, the texture unit 500 may read the copied-out texture into the texture memory 502 and use this as the content of the frame buffer when performing additional visualization of the texture mapping.
The system 50 can also copy out the rendered alpha information, for example, in the embedded frame buffer 702, apply this alpha information as a texture during texture mapping, and add it to the embedded frame buffer content. is there. All this takes place in the same rendering pass. U.S. patent application Ser. No. 09 / 722,663, entitled "Graphics System with Copy-Out Conversion Between Internal Frame Buffer and Main Memory" (Attorney Docket No. 723-96)
3) and its corresponding provisional application no. 60 / 227,030 filed Aug. 23, 2000. Both applications are incorporated herein by reference.

【0041】<N個のアルファ比較の論理結合>同時係
属出願番号09/722,367、ドレビン他、「グラ
フィクスシステム用再循環シェードツリーブレンダ」
(代理人参照番号723−968)に記載されているよ
うに(この出願による図面を含むすべての開示は、本願
に引用によって合体される)、再循環シェーダの実施例
602(図6〜12b参照)は、単一のレンダリングパ
ス内におけるアルファテスト結果の論理結合を含む、様
々なアルファ関数に対応している。本実施例において、
アルファ関数は、以下のいずれか一つの演算を用いて、
ソースアルファを基準アルファと比較する。 ・常に ・決して〜ない ・不等 ・等しい ・未満 ・以上 ・以下 ・超える 本実施例において、2つの関数は、以下のものを用いて
結合される。 ・AND ・OR ・XOR ・XNOR ピクセルクワッド内のすべての有効なピクセルがアルフ
ァテストに失敗する場合は、当該クワッドは破棄され、
したがって、フレームバッファ702は更新されない。
なお、本実施例において、(再循環論理の一部である)
比較器674を用いてアルファチャンネル比較が行なわ
れるにもかかわらず、アルファ比較演算は、再循環ステ
ージの一部ではなく、むしろ、再循環が完了した後に行
なわれるものである点に注意されたい。以下は、実施す
ることが可能な例である。 例1 Asrc>Aref0 AND Asrc<Aref1 例2 Asrc>Aref0 OR Asrc<Aref1 例3 Asrc>Aref OR Asrc<−Aref
<Logical Combination of N Alpha Comparisons> Co-pending Application Serial No. 09 / 722,367, Drebin et al., "Recirculating Shade Tree Blender for Graphics Systems"
As described in (Attorney Reference No. 723-968) (all disclosures, including the drawings by this application, are incorporated herein by reference), a recirculating shader embodiment 602 (see FIGS. 6-12b). ) Correspond to various alpha functions, including the logical combination of alpha test results within a single rendering pass. In this embodiment,
The alpha function uses one of the following operations,
Compare source alpha to reference alpha. • Never • Never • Inequal • Equal • Less than • Less than • Less than • In this example, the two functions are combined using: • AND • OR • XOR • XNOR If all valid pixels in the pixel quad fail the alpha test, the quad is discarded,
Therefore, the frame buffer 702 is not updated.
In this embodiment, (part of the recirculation logic)
Note that despite the alpha channel comparison being performed using comparator 674, the alpha comparison operation is not part of the recirculation stage, but rather is performed after recirculation is complete. The following are examples that can be implemented. Example 1 Asrc> Aref0 AND Asrc <Aref1 Example 2 Asrc> Aref0 OR Asrc <Aref1 Example 3 Asrc> Aref OR Asrc <-Aref

【0042】このように、(たとえば、非再循環アルフ
ァ比較と結合して)再循環シェーダ602のアルファ機
能を用いて、シェードツリーに類似した透過ツリーを提
供することができる。特に、再循環シェーダ602のア
ルファ機能を用いて、N個の論理アルファ処理をM個の
アルファ入力に対して行なうことができる。ここで、N
およびMは、いかなる整数であってもよい。アルファ比
較およびアルファ論理演算を用いて、たとえば、漫画の
アウトライニングなどのフォトリアリスティックでない
効果を提供することができる。
Thus, the alpha feature of recirculating shader 602 (eg, in conjunction with a non-recirculating alpha comparison) can be used to provide a transparency tree similar to a shade tree. In particular, using the alpha function of recirculation shader 602, N logical alpha operations can be performed on M alpha inputs. Where N
And M can be any integer. Alpha comparison and alpha logic operations can be used to provide non-photorealistic effects such as, for example, cartoon outlining.

【0043】<漫画のアウトライニング技術の例>図1
4および15は、漫画のキャラクタに境界線または輪郭
線を付けるのが望ましいことを示す。図14の漫画のキ
ャラクタ例1300は、シルエットの輪郭1302に付
けられた境界線を有する。シルエットの輪郭1302に
より、画像の明確性が向上して手書きの漫画や漫画本形
式の画像を再現するといった「漫画のアウトライニン
グ」効果が生じる。
<Example of Cartoon Outlining Technology> FIG.
4 and 15 indicate that it is desirable to put a border or contour on the cartoon character. The cartoon character example 1300 in FIG. 14 has a border line attached to the silhouette outline 1302. The outline 1302 of the silhouette enhances the clarity of the image and produces a “cartoon outlining” effect of reproducing an image in the form of a hand-drawn comic or comic book.

【0044】図14は、この漫画のキャラクタ1300
が、右手、手首、および上腕部を有し、自身の前で上腕
を曲げている状態であることを示している。漫画作家
は、右手、手首、および上腕部の回りの輪郭に対して
も、たとえここに示す当該キャラクタの姿勢ではそれが
シルエット輪郭というよりは内部輪郭であるにもかかわ
らず、境界線を付ける。キャラクタのシルエット輪郭1
302だけに漫画のアウトライニングを適用するのであ
れば、漫画のキャラクタ1300の部位は、消えてしま
ったり、不明確になってしまう恐れがあるということ
を、図14は示している。見る者は、(ぬり絵本や、手
書きの動画キャラクタおよび/または漫画本の経験か
ら)手、手首、および上腕をはっきり区別するために、
これらにも境界線が付けられていることを期待する。
FIG. 14 shows this cartoon character 1300.
Has a right hand, a wrist, and an upper arm, and shows a state in which the upper arm is bent in front of itself. The manga writer also attaches boundaries to the contours around the right hand, wrist, and upper arm, even though the pose of the character shown here is an internal contour rather than a silhouette contour. Character silhouette outline 1
FIG. 14 shows that if cartoon outlining is applied only to 302, the portion of the cartoon character 1300 may disappear or become unclear. In order to clearly distinguish hands, wrists, and upper arms (from the experience of coloring book and hand-drawn animated characters and / or comic books)
I hope these are also borderlined.

【0045】漫画のキャラクタ1300が手書きである
かのように見せるためには、境界線をシルエット輪郭だ
けでなく、一定の内部輪郭304に対しても付けるよう
にするのが有用であろう。一定の内部輪郭とは、すなわ
ち、本例においては、自身の前で折り曲げているキャラ
クタの手、手首、および上腕部を規定する内部輪郭に該
当する。図15は、これら内部輪郭304に境界線が付
けられたキャラクタ1300を示す。これら内部輪郭3
04は、キャラクタ1300が腕を挙げて伸ばした状態
であればシルエット輪郭となるが、図15の腕の向きで
は、内部輪郭である。
In order to make the cartoon character 1300 look as if it were handwritten, it would be useful to make the border line not only a silhouette outline but also a certain internal outline 304. The constant internal contour corresponds to an internal contour that defines the hand, wrist, and upper arm of the character that is bent in front of itself. FIG. 15 shows a character 1300 with these internal contours 304 bounded. These internal contours 3
04 is a silhouette outline if the character 1300 is extended with the arms raised, but is an internal outline in the arm direction in FIG.

【0046】この問題を解決する方法として、異なるオ
ブジェクトまたはオブジェクトの部分に対して異なるI
D値を割り当てて、レンダリング処理中にID値とピク
セルとを関連付けることによって、どのピクセルが異な
るオブジェクトまたはオブジェクトの部分を表すかを追
跡するという方法がある。このような識別値は、一例と
して、フレームバッファ702内にある、通常はアルフ
ァ情報を符号化するために用いられるビットを当てるこ
とによって、割り当てることができる。割り当てられた
識別値は、ピクセル位置において境界線を描くか否かを
決定するために用いられてもよい。たとえば、システム
は、ピクセルの識別値を、近傍の(たとえば、隣接す
る)ピクセルの識別値と比較してもよい。2つの隣接ピ
クセルの識別値が所定の関係にある場合には、境界線は
描かれない。識別値が同一の場合は、2つのピクセルは
同一面上にあり、境界線は描かれない。2つの隣接する
ピクセルの識別値が、異なるオブジェクトまたはオブジ
ェクトの異なる部分が重なっている旨示すような、他の
所定の関係にある場合には、境界線が描かれる。
One way to solve this problem is to use different I for different objects or parts of objects.
There is a way to track which pixels represent different objects or portions of objects by assigning D values and associating pixels with ID values during the rendering process. Such an identification value may be assigned by, for example, allocating bits in the frame buffer 702 that are typically used to encode alpha information. The assigned identification value may be used to determine whether to draw a boundary line at the pixel location. For example, the system may compare the identification value of a pixel with the identification value of a neighboring (eg, adjacent) pixel. If the identification values of two adjacent pixels are in a predetermined relationship, no border is drawn. If the identification values are the same, the two pixels are on the same plane and no border is drawn. If the identification values of two adjacent pixels are in another predetermined relationship, indicating that different objects or different parts of an object are overlapping, a border is drawn.

【0047】図16〜18は、一例を示す。図16は、
3つのオブジェクト部分1320,1322,1324
を備えるオブジェクト1319を示す。図17は、同一
のオブジェクト1319の平面図を示す。オブジェクト
部分1320は正方形であり、オブジェクト部分132
2は円であり、オブジェクト部分1324は円錐であ
る。グラフィックデザイナが、円錐1324が視覚的に
正方形1320と交わるところには境界線330(図1
6参照)を描きたいが、円錐が円1322と交わるとこ
ろや円が正方形と交わるところには描きたくないと仮定
する。
FIGS. 16 to 18 show an example. FIG.
Three object parts 1320, 1322, 1324
An object 1319 comprising FIG. 17 shows a plan view of the same object 1319. The object part 1320 is square and the object part 132
2 is a circle and the object part 1324 is a cone. The graphic designer places a boundary 330 (FIG. 1) where the cone 1324 visually intersects the square 1320.
6), but do not want to draw where the cone intersects the circle 1322 or where the circle intersects the square.

【0048】この例において、正方形1320、円13
22、および円錐1324内のピクセルは、それぞれ異
なる識別値を用いて符号化される。たとえば、正方形1
320内のピクセルは、識別値「1」によって符号化さ
れ、円1322内のピクセルは、識別値「2」によって
符号化され、円錐1324内のピクセルは、識別値
「3」によって符号化される。図18は、符号化された
情報を記憶するフレームバッファ702のアルファ部分
の例を示す。影付けされたセルは、隣接アルファ/ID
値間の差である2(またはそれ以上)に基づいて境界線
カラーが適用されるであろうセルを示す。
In this example, a square 1320, a circle 13
22, and the pixels within the cone 1324 are each coded using a different identification value. For example, square 1
The pixels in 320 are encoded with an identification value “1”, the pixels in circle 1322 are encoded with an identification value “2”, and the pixels in cone 1324 are encoded with an identification value “3”. . FIG. 18 shows an example of the alpha portion of the frame buffer 702 that stores encoded information. Shaded cells are adjacent alpha / ID
Indicates the cells to which border color will be applied based on the difference between the values, 2 (or more).

【0049】アルファおよびカラー画像がフレームバッ
ファ702に入れてレンダリングされた後のピクセル後
処理フェーズにおいて、フレームバッファ内の様々な識
別値がテストされる。隣接ピクセルとして識別値が同一
であるピクセル(このようなピクセルはすべて同一面上
にある)に関しては、境界線は描かれない。また、一定
の基準または基準セット分だけ隣接ピクセルの識別値と
異なる識別値をピクセルが有している場合には、境界線
は描かれない(たとえば、ピクセルkの識別値が2未満
だけピクセルk+1の識別値と異なってる場合には、境
界線は描かれない)。しかしながら、一定の別の基準ま
たは基準セット分だけ隣接ピクセルの識別値と異なる識
別値をピクセルが有している場合には、境界線が描かれ
る(たとえば、ピクセルkの識別値が2以上だけピクセ
ルk+1の識別値と異なってる場合には、ピクセルkに
境界線が描かれてもよい)。
In the pixel post-processing phase after the alpha and color images have been rendered into the frame buffer 702, various identification values in the frame buffer are tested. For pixels with identical identification values as adjacent pixels (all such pixels are on the same plane), no border is drawn. In addition, if a pixel has an identification value that differs from the identification value of an adjacent pixel by a certain reference or reference set, a boundary line is not drawn (for example, the identification value of pixel k is less than 2 and pixel k + 1 If it is different from the identification value, no border is drawn.) However, if a pixel has an identification value that differs from the identification value of an adjacent pixel by some other criterion or set of criteria, a borderline is drawn (e.g., if the identification value of pixel k is more than one pixel If it is different from the identification value of k + 1, a boundary line may be drawn at pixel k).

【0050】図19は、境界線を描くためのピクセル後
処理ルーチン1350の例のフローチャートである。ル
ーチン1350は、ループ(ブロック1352〜136
2)を含み、このループは、フレームバッファ702に
記憶された画像内の各ピクセル[i][j]について行
なわれる。上述したように、画像生成処理は、画像をフ
レームバッファに入れてレンダリングする一環として、
通常はアルファ値を記憶するために割り当てられるフレ
ームバッファビット内のオブジェクトの別個の各部分に
対して、識別値を設定してもよい。ルーチン1350の
テストは、これらのアルファ(現時点では、ID)値を
テストして、境界線を描くか否かを決定する。この例に
おいて、ルーチン1350は、ピクセル[i][j]の
アルファ(ID)値を取り出すとともに、隣接ピクセル
(すなわち、ピクセル[i−1][j]およびピクセル
[i][j−1])のアルファ(ID)値をも取り出す
(ブロック1352)。その後、ルーチン1352は、
(ブロック1354において)以下の計算を行なって、
ピクセル[i][j]のアルファ(ID)値と隣接ピク
セルのアルファ(ID)値との差分を判断する。 diffX=ABS(Alpha[i][j]−Alp
ha[i−1][j] diffX=ABS(Alpha[i][j]−Alp
ha[i][j−1]
FIG. 19 is a flowchart of an example of a pixel post-processing routine 1350 for drawing a boundary line. The routine 1350 includes a loop (blocks 1352-136).
2), and this loop is performed for each pixel [i] [j] in the image stored in the frame buffer 702. As described above, the image generation process is performed as part of rendering an image in a frame buffer.
An identification value may be set for each distinct portion of the object in the frame buffer bits that are normally allocated to store an alpha value. The test in routine 1350 tests these alpha (currently ID) values to determine whether to draw a border. In this example, routine 1350 retrieves the alpha (ID) value of pixel [i] [j] and extracts the neighboring pixels (i.e., pixel [i-1] [j] and pixel [i] [j-1]). Also retrieves the alpha (ID) value of (block 1352). Thereafter, the routine 1352 includes:
Perform the following calculation (at block 1354):
The difference between the alpha (ID) value of pixel [i] [j] and the alpha (ID) value of the adjacent pixel is determined. diffX = ABS (Alpha [i] [j] -Alp
ha [i-1] [j] diffX = ABS (Alpha [i] [j] -Alp
ha [i] [j-1]

【0051】その後、ルーチン1350は、計算の結果
得られた差分値diffXおよdiffYをテストし
て、いずれかが所定の差分(たとえば、任意の定数閾値
または1などのプログラム可能な閾値)を超えるか否か
を判断する(ブロック1356)。差分値のうち少なく
とも1つが所定の差分を超える場合には、ルーチン13
50は、ピクセル[i][j]のカラーを境界線カラー
に設定する(ブロック1358)。したがって、アルフ
ァの傾きが−1から+1の場合、本実施例において、ピ
クセルは同一面上にあると考えられる。ステップ135
2〜1358は、繰り返されて、画像内の各ピクセルに
対して行なわれる(ブロック1360,1362)。
Thereafter, the routine 1350 tests the difference values diffX and diffY obtained as a result of the calculation, and one of them exceeds a predetermined difference (for example, an arbitrary constant threshold or a programmable threshold such as 1). It is determined whether or not (block 1356). If at least one of the difference values exceeds a predetermined difference, the routine 13
50 sets the color of pixel [i] [j] to the border color (block 1358). Therefore, if the slope of alpha is from -1 to +1 in this embodiment, the pixels are considered to be on the same plane. Step 135
2-1358 are repeated for each pixel in the image (blocks 1360, 1362).

【0052】ルーチン1350の変形例として、或るオ
ブジェクトが特別のアルファ識別値(たとえば、0x0
0)を用いて符号化されて、当該オブジェクト内のピク
セルは境界線を描く際には無視されるように指定するこ
とができる(図20参照)。これは、たとえば、境界線
のないオブジェクトをビットマップとしてレンダリング
する場合に有用である(たとえば、爆発を表す動画の場
合)。
As a variation on routine 1350, an object may have a special alpha identification value (eg, 0x0
0), the pixels in the object can be specified to be ignored when drawing the border (see FIG. 20). This is useful, for example, when rendering objects without borders as bitmaps (eg, for animations showing explosions).

【0053】図21は、図14および15に示すオブジ
ェクト1300上に効率的に境界線を描くために、上記
のルーチン1350がどのように適用できるかを示す。
この例において、オブジェクト1300の異なる部分
は、異なるアルファ(ID)値を用いて符号化される。
たとえば、オブジェクト1300は、2本の腕1311
a,1311bおよび胴1309を含んでもよい。各腕
は、手1313,手首部1310,下腕部1312,肘
部1308,上腕部1310,肩部1317を含んでも
よい。これら様々な各部分は、異なるアルファIDを用
いて以下のように符号化することができる。
FIG. 21 shows how the above routine 1350 can be applied to effectively draw a border on the object 1300 shown in FIGS.
In this example, different parts of object 1300 are encoded with different alpha (ID) values.
For example, the object 1300 has two arms 1311
a, 1311b and a trunk 1309. Each arm may include a hand 1313, a wrist 1310, a lower arm 1312, an elbow 1308, an upper arm 1310, and a shoulder 1317. Each of these various parts can be encoded using a different alpha ID as follows.

【表1】 [Table 1]

【0054】上記のアルファID符号化例によって、ル
ーチン1350は、図21の濃い色の線で示す境界線を
描くことになるが、反対部分が交わる他の(点線の)部
分では境界線を描かない。
According to the above alpha ID encoding example, the routine 1350 draws a boundary line shown by a dark line in FIG. 21, but draws a boundary line at another (dotted line) portion where the opposite portion intersects. Absent.

【0055】上記符号化は、同一のオブジェクト130
0の接続部が交わる部分に境界線を付けるために用いる
こともできる。従来のぬり絵本や、手書きの動画漫画な
どは、関節部分をよりはっきりとさせるためや、筋肉が
発達しているような感じを出すために、このような自己
交差部分に漫画のアウトライニングを付ける場合もあ
る。たとえば、図22〜24は、キャラクタ1300の
関節部1308(すなわち、肘)の拡大図であって、関
節部は、キャラクタの上腕1310を前腕1312と連
結している。上述の符号化を用いて、図23および24
に示すように、外肢1310,1312とが互いに(た
とえば接触して)隣接して方向付けされるように、関節
部1308が曲げられて、ルーチン1350は、(下腕
1310のアルファIDと上腕1312のアルファID
との差が1より大きいということに基づいて)境界線分
1316を体部位1310と1312とが交わる交差部
分に付ける。
The above encoding is performed for the same object 130.
It can also be used to create a boundary at the intersection of the zero connections. In conventional coloring books and hand-drawn animated cartoons, such cartoons are lined with self-intersections in order to make joints more clear and to make the muscles feel more developed. In some cases. For example, FIGS. 22-24 are enlarged views of a joint 1308 (i.e., elbow) of the character 1300, which connects the upper arm 1310 of the character with the forearm 1312. Using the encoding described above, FIGS.
The joint 1308 is bent (the alpha ID of the lower arm 1310 and the upper arm 1310) so that the outer limbs 1310 and 1312 are oriented adjacent (eg, in contact) with each other, as shown in FIG. 1312 Alpha ID
A boundary line 1316 is attached to the intersection where the body parts 1310 and 1312 intersect (based on the fact that the difference is larger than 1).

【0056】<システム50上で実施される漫画のアウ
トライニング処理の例>図25は、漫画のアウトライニ
ングを提供するためにはシステム50をどのように用い
ればよいかを示す高次のフローチャート例であり、図2
6は、漫画のアウトライニングパイプラインを実施する
ためにはシステム50をどのように構成することができ
るかを示す例である。
<Example of Cartoon Outlining Process Performed on System 50> FIG. 25 is an example of a high-level flowchart showing how the system 50 can be used to provide cartoon outlining. And FIG.
6 is an example showing how system 50 can be configured to implement a cartoon outlining pipeline.

【0057】図25を参照して、漫画の輪郭線画像化ま
たは同様の効果を行なうためには、アプリケーション
は、フレームバッファ702を、アルファチャンネルを
含むように設定する(ブロック1400)。米国特許出
願番号09/726,227、名称「再構成可能なピク
セルフォーマットを有する組み込みフレームバッファを
有するグラフィックスシステム」(代理人整理番号72
3−957)および2000年8月23日出願の対応仮
出願番号60/226,910を参照のこと。両出願
は、本願に引用によって合体される。そして、システム
50は、シーンをフレームバッファ702に入れて描画
するように制御される(ブロック1402)。しかしな
がら、この処理中に、各頂点情報の一部としてメインプ
ロセッサ110から与えられるであろうオブジェクト識
別子は、たとえば、システム50のアルファチャンネル
に書き込まれ、フレームバッファ702内のアルファ位
置に記憶される。
Referring to FIG. 25, to perform cartoon contour imaging or a similar effect, the application sets the frame buffer 702 to include an alpha channel (block 1400). US patent application Ser. No. 09 / 726,227 entitled “Graphics System with Embedded Frame Buffer with Reconfigurable Pixel Format” (Attorney Docket No. 72)
3-957) and corresponding provisional application Ser. No. 60 / 226,910 filed Aug. 23, 2000. Both applications are incorporated herein by reference. The system 50 is then controlled to draw the scene into the frame buffer 702 (block 1402). However, during this process, the object identifier that would be provided from main processor 110 as part of each vertex information is written, for example, to the alpha channel of system 50 and stored at the alpha location in frame buffer 702.

【0058】面にIDを割り当てる場合には、細かい注
意が要求される。本実施例のアルファチャンネルは、8
ビットに限定されているので、1シーン内に256個以
上もの異なるオブジェクトがある場合には、IDを再利
用する必要があるということもあり得る。本実施例で
は、アルファは7ビットしか利用可能ではない。という
のは、8ビット目は、閾値計算のサインビットとして利
用されるからである。このことは、同一のIDを有する
異なるオブジェクトが重ならなければ、問題ない。へこ
んだオブジェクト同士が重なる部分にシルエットが欲し
い場合は、より複雑なIDおよび閾値システムを利用す
ればよい。これを実施する1つの方法として、1だけ異
なるIDを同一のオブジェクトの異なる部分に割り当
て、重なるであろう部分については、少なくとも2つの
合計差分を有するようにするという方法がある。そし
て、閾値関数は、少なくとも2つの差分に対して、シル
エットを作成する必要があるだけである。上述の図19
を参照のこと。もちろん、異なる実施例であれば、異な
る限定があり、これら特定の仕組みは、一例にすぎな
い。
When assigning an ID to a surface, careful attention is required. The alpha channel of this embodiment is 8
Since the number of bits is limited, if there are 256 or more different objects in one scene, the ID may need to be reused. In this embodiment, only 7 bits of alpha are available. This is because the eighth bit is used as a sign bit for threshold calculation. This is not a problem if different objects having the same ID do not overlap. If a silhouette is desired at the portion where the concave objects overlap, a more complex ID and threshold system may be used. One way to do this is to assign IDs that differ by one to different parts of the same object, so that parts that will overlap have at least two total differences. Then, the threshold function only needs to create a silhouette for at least two differences. FIG. 19 above
checking ... Of course, different embodiments have different limitations, and these specific mechanisms are only examples.

【0059】画像の所望する部分がフレームバッファ7
02に入れてレンダリングされると、ピクセルエンジン
700は、フレームバッファのアルファ画像を外部フレ
ームバッファまたは他のバッファ内のテクスチャにコピ
ーするように制御される(ブロック1404、図14参
照)。このようなコピーアウトは、たとえば、IA8テ
クスチャフォーマットに入れることもできる。同期やメ
モリのコヒーレンスを確保するために、適切な対策が行
なわれる。米国特許出願番号09/726,227、名
称「レンダリングモードに基づいた隠面処理の動的な再
構成」および2000年8月23日出願の対応仮出願番
号60/226,890に記載された同期トークン技術
を参照のこと。両出願は、本願に引用によって合体され
る。
A desired portion of the image is stored in the frame buffer 7.
Once rendered in 02, the pixel engine 700 is controlled to copy the alpha image in the frame buffer to a texture in an external frame buffer or other buffer (block 1404, see FIG. 14). Such a copy-out could be, for example, in the IA8 texture format. Appropriate measures are taken to ensure synchronization and memory coherence. Synchronization described in US patent application Ser. No. 09 / 726,227, entitled “Dynamic Reconstruction of Hidden Surface Processing Based on Rendering Mode” and corresponding provisional application Ser. No. 60 / 226,890 filed Aug. 23, 2000. See token technology. Both applications are incorporated herein by reference.

【0060】アルファテクスチャを内部のフレームバッ
ファからうまくコピーアウトして、テクスチャメモリ5
02に読み込んだ場合(図14参照)、システム50
は、グラフィックスプロセッサ114を再構成して、隣
接ピクセルアルファ間の差分に基づいて、輪郭線カラー
をフレームバッファ702内のピクセルに書き込む(ブ
ロック1406)。上述の図19を参照のこと。このよ
うな漫画の輪郭線を描く処理は、たとえば、ピクセルア
ルファ値を読み出し、これらのアルファ値を修正し、ブ
レンドパラメータとして再びアルファを書き戻すことを
含んでもよい。テクスチャ座標の1対と2つの異なるテ
クスチャマトリックスとを用いて、隣接アルファ値をア
ルファテクスチャからルックアップすることができる。
一方のマトリックスを単位行列として設定し、他方を単
位行列に変換を加えたものとして設定することができ
る。ブレンドテスト/比較は、2つの一般的なアルファ
比較関数にORまたはANDのような第3の論理計算を
組み合わせて用いて、実施することができる。これによ
って、単に大小ではなく、範囲内外のテストが可能とな
る。
The alpha texture is successfully copied out of the internal frame buffer and stored in the texture memory 5.
02 (see FIG. 14), the system 50
Reconfigures graphics processor 114 to write outline colors to pixels in frame buffer 702 based on differences between adjacent pixels alpha (block 1406). See FIG. 19 above. Processing to draw such cartoon outlines may include, for example, reading pixel alpha values, modifying those alpha values, and writing back alpha again as a blend parameter. Using a pair of texture coordinates and two different texture matrices, neighboring alpha values can be looked up from the alpha texture.
One of the matrices can be set as a unit matrix, and the other can be set as a unit matrix converted. The blend test / comparison can be performed using two common alpha comparison functions in combination with a third logical operation such as OR or AND. This allows testing outside the range, not just large or small.

【0061】より詳細には、差分計算(たとえば、[a
0 −a1 ]の絶対値であって、a0はあるピクセルのア
ルファ値、a1 は隣接ピクセルのアルファ値である)を
行うためには、一方のアルファ値を他方のアルファ値か
ら減算し、未クランプの結果をテクスチャ環境部の出力
レジスタに書き込むようにテクスチャ環境部600を設
定することができる。閾値を超えるアルファ値を検出す
るように、テクスチャ環境部600内のアルファ比較や
他の値比較器を設定することができる。 alpha=texture1−texture2 acomp1=alpha<−X acomp2=alpha>X killpixel=acomp1 OR acomp
More specifically, the difference calculation (for example, [a
0- a 1 ], where a 0 is the alpha value of a pixel and a 1 is the alpha value of an adjacent pixel) to subtract one alpha value from the other. , The texture environment 600 can be set to write unclamped results to the output registers of the texture environment. The alpha comparison and other value comparators in the texture environment 600 can be set to detect alpha values that exceed the threshold. alpha = texture1-texture2acomp1 = alpha <-Xacomp2 = alpha> Xkillpixel = acomp1 OR acomp
2

【0062】本一実施例において、テクスチャ環境部6
00からの未クランプの負の結果は、最上位ビットのセ
ットにより、アルファ値に変換されてもよい。したがっ
て、アルファ差分閾値が2の場合、アプリケーション
は、アルファ差分が1より大きく(最大−2)より小さ
いピクセルに対して輪郭線カラーを書き込むことができ
る。ここで、最大値は255に等しい。比較結果に基づ
いて、レジスタからのカラー値にブレンドするようにテ
クスチャ環境部600を設定することができる。メイン
プロセッサ110は、このカラー値レジスタを所望の値
に設定することもできる(たとえば、黒のアウトライニ
ング効果用に黒を、青のアウトライニング効果用に青
を、など)。
In this embodiment, the texture environment section 6
The unclamped negative result from 00 may be converted to an alpha value by setting the most significant bit. Thus, if the alpha difference threshold is 2, the application can write the outline color for pixels whose alpha difference is greater than 1 (up to -2) and less. Here, the maximum value is equal to 255. Based on the comparison result, the texture environment unit 600 can be set to blend with the color value from the register. Main processor 110 may also set this color value register to a desired value (eg, black for a black outlining effect, blue for a blue outlining effect, etc.).

【0063】本一実施例において、輪郭線の書き込み
は、テクスチャ環境部600内の再循環シェーダの2つ
の再循環パスにおいて行なうことができる。第1のパス
において(ブロック1408)、水平アウトライニング
がフレームバッファ702に入れて描かれる。これは、
アルファテクスチャ画像を1ピクセル(テクセル)垂直
に移動させるように設定されている変換部300によっ
て実行される、テクスチャ座標変換マトリックス乗算に
基づく。垂直アウトライニングを書き込むために用いら
れる第2のパスにおいて(ブロック1410)、アルフ
ァ画像を1ピクセル(テクセル)水平に移動させるよう
に、テクスチャマトリックスを修正することができる。
1ピクセルよりも大きく移動させれば、より太い輪郭線
を描くこともできるが、輪郭線が太すぎると、見た感じ
が異常となる場合もある。
In this embodiment, the writing of the contour line can be performed in two recirculation passes of the recirculation shader in the texture environment section 600. In a first pass (block 1408), horizontal outlining is drawn into frame buffer 702. this is,
Based on texture coordinate transformation matrix multiplication performed by the transformation unit 300 which is set to move the alpha texture image vertically by one pixel (texel). In the second pass used to write the vertical outlining (block 1410), the texture matrix can be modified to move the alpha image horizontally by one pixel (texel).
A thicker outline can be drawn by moving it by more than one pixel, but if the outline is too thick, the appearance may be abnormal.

【0064】水平および垂直輪郭線が両方ともフレーム
バッファ702に書き込まれると、フレームバッファは
コピーアウトされて、表示することができるようになる
(ブロック1412)。
Once both the horizontal and vertical contour lines have been written to the frame buffer 702, the frame buffer is copied out and can be displayed (block 1412).

【0065】<例>以下は、システム50を制御して漫
画のアウトライニングを行なうのに用いることができる
プログラミングインターフェースコールのセット例であ
る。
EXAMPLE The following is an example set of programming interface calls that can be used to control the system 50 to perform cartoon outlining.

【表2】 [Table 2]

【0066】<GXSetTexCopySrc> <説明>この関数は、組み込みフレームバッファ(EF
B)のソースパラメータをテクスチャ画像コピーに設定
する。この機能は、グラフィックスプロセッサ(GP)
を用いてテクスチャを生成する際に有用である。
<GXSetTexCopySrc><Explanation> This function uses the built-in frame buffer (EF
The source parameter of B) is set to the texture image copy. This function is provided by the graphics processor (GP).
This is useful when generating textures using.

【0067】GPは、GXCopyTexで指定された
タイル型テクスチャにテクスチャをコピーする。GP
は、タイル幅の倍数でない画像幅や高さが、コピーされ
た画像の未定義データでパディングされるように、タイ
ル(32バイト)を常にコピーする。また、メインメモ
リ内の割り当てられた画像サイズは、32バイトの倍数
でなければならない。GXGetTexBufferS
izeを参照のこと。
The GP copies the texture to the tile type texture specified by GXCopyTex. GP
Always copies tiles (32 bytes) so that image widths and heights that are not a multiple of the tile width are padded with undefined data in the copied image. Also, the allocated image size in main memory must be a multiple of 32 bytes. GXGetTexBufferS
See size.

【0068】 <引数> left 最も左にある、コピーソースピクセルであって、2ピクセルの倍数 top 最も上にある、コピーソース行であって、2行の倍数 wd コピー幅であって、2ピクセルの倍数 ht コピー高さであって、2行の倍数<Argument> left The leftmost copy source pixel, which is a multiple of two pixels top The topmost copy source line, which is a multiple of two lines wd The copy width is two pixels Multiple ht copy height, multiple of 2 lines

【0069】<GXCopyTex> <説明>この関数は、組み込みフレームバッファ(EF
B)の内容を、メインメモリ内のテクスチャ画像バッフ
ァdestにコピーする。この機能は、グラフィックス
プロセッサ(GP)を用いてテクスチャを生成する際に
有用である。クリアフラグがGX_TRUEの場合に
は、EFBは、コピー処理中に、現在のクリアカラーに
クリアされる(GXSetCopyClear参照)。
ソース画像は、GXSetTexCopySrcによっ
て記述される。コピー処理中に、EFBの内容はテクス
チャフォーマットに変換される。テクスチャフォーマッ
トおよびフィルタをイネーブルするオプションボックス
は、GXSetTexCopyDstを用いて設定され
る。
<GXCopyTex><Description> This function uses the built-in frame buffer (EF).
The contents of B) are copied to the texture image buffer dest in the main memory. This function is useful when generating a texture using a graphics processor (GP). If the clear flag is GX_TRUE, the EFB is cleared to the current clear color during the copy process (see GXSetCopyClear).
The source image is described by GXSetTexCopySrc. During the copy process, the contents of the EFB are converted to a texture format. The option box to enable texture format and filters is set using GXSetTexCopyDst.

【0070】割り当てられたバッファは、パディングさ
れて、XとYとのテクスチャタイル(1タイル当たり3
2バイト)となる。パディング後のサイズを決定するた
めには、関数GXGetTexBufferSizeが
用意されている。
The allocated buffer is padded and X and Y texture tiles (3 tiles per tile)
2 bytes). To determine the size after padding, a function GXGetTexBufferSize is provided.

【0071】クリアフラグは、フレームバッファがコピ
ー処理中にクリアされるべきことを示す。フレームバッ
ファは、GXSetCopyClearによって指定さ
れた定数値にクリアされる。
The clear flag indicates that the frame buffer should be cleared during copy processing. The frame buffer is cleared to the constant value specified by GXSetCopyClear.

【0072】<引数> dest :メインメモリ内のテクスチャ画像バッファ
へのポインタ。このポインタは、32バイトに調節され
る。 clear :このフラグがGX_TRUEの場合、フ
レームバッファはコピー中にクリアされなければならな
い。
<Argument> dest: Pointer to the texture image buffer in the main memory. This pointer is adjusted to 32 bytes. clear: If this flag is GX_TRUE, the frame buffer must be cleared during copying.

【0073】<GXLoadTexObjPreLoa
ded> <説明>この関数は、予めロードされたテクスチャを記
述する状態を8つのハードウェアレジスタセットのうち
の1つにロードする。これが生じる前に、テクスチャオ
ブジェクトであるobjは、GXInitTexObj
またはGXInitTexObjCIを用いて初期化さ
れなければならない。idパラメータは、テクスチャ状
態レジスタセットを参照する。テクスチャは、GXPr
eLoadEntireTextureを用いて、事前
にロードされなければならない。
<GXLoadTexObjPreLoa
ded><description> This function loads the state describing the preloaded texture into one of eight hardware register sets. Before this happens, the texture object obj is GXInitTexObj
Or it must be initialized using GXInitTexObjCI. The id parameter refers to the texture state register set. Texture is GXPr
Must be pre-loaded using eLoadEntityTexture.

【0074】ロードされると、テクスチャは、どのテク
スチャ環境(Tev)ステージにおいても、GXSet
TevOrder関数を用いて利用することができる。
GXInitは、初めに、GXSetTevOrder
を呼び出して、GX_TEXMAP0をGX_TEVS
TAGE0に、GX_TEXMAP1をGX_TEVS
TAGE1に関連付けるといった、単一のテクスチャパ
イプラインを作成する。
When loaded, the texture is loaded into the GXSet at any texture environment (Tev) stage.
It can be used using the TevOrder function.
GXInit is initially GXSetTevOrder
GX_TEXTMAP0 to GX_TEVS
GX_TEXTMAP1 to GX_TEVS
Create a single texture pipeline, such as associating with TAG1.

【0075】ここで、GXLoadTexObjPre
Loadedは、GXSetTexRegionCal
lBackによって設定された関数を呼び出さない(ま
た、テクスチャがカラーインデックスフォーマットの場
合にはGXSetTlutRegionCallBac
kによって設定された関数を呼び出さない)ことに注意
されたい。なぜなら、領域は明示的に設定されるからで
ある。しかしながら、これらのコールバック関数は、予
めロードするすべての領域を知っていなければならな
い。GXInitによって設定されるデフォルトのコー
ルバックは、予めロードされた領域はないと推定する。
Here, GXLoadTexObjPre
Loaded is GXSetTexRegionCal
Do not call the function set by lBack (or GXSetTltRegionCallBac if the texture is in color index format)
Note that the function set by k is not called). This is because the area is explicitly set. However, these callback functions must know in advance all the regions to be loaded. The default callback set by GXInit assumes that there is no preloaded area.

【0076】<引数> obj :テクスチャおよびその属性を記述するテクス
チャオブジェクトをポイントする。 region :テクスチャメモリの領域を記述する領
域オブジェクトをポイントする。 id :テクスチャ環境(Tev)ステージにおいて参
照されるテクスチャを指名する。
<Argument> obj: Points to a texture object that describes a texture and its attributes. region: points to an area object that describes the area of the texture memory. id: Names the texture referenced in the texture environment (Tev) stage.

【0077】<GXInitTexObj> <説明>この関数は、非カラーインデックステクスチャ
のテクスチャオブジェクトを初期化または変更するため
に用いられる。テクスチャオブジェクトは、テクスチャ
に関連するすべてのパラメータを記述するために用いら
れ、このパラメータには、サイズ、フォーマット、ラッ
プモード、フィルタモードなどが含まれる。テクスチャ
オブジェクトにメモリを提供するのはアプリケーション
の任務である。初期化されると、テクスチャオブジェク
トは、GXLoadTexObjを用いて8つのアクテ
ィブテクスチャIDのうちの1つと関連付けられる。
<GXInitTexObj><Description> This function is used to initialize or change the texture object of the non-color index texture. The texture object is used to describe all parameters related to the texture, such as size, format, wrap mode, filter mode, etc. It is the application's responsibility to provide memory for the texture objects. Once initialized, the texture object is associated with one of the eight active texture IDs using GXLoadTexObj.

【0078】カラーインデックステクスチャのテクスチ
ャオブジェクトを初期化するには、GXInitTex
ObjCIを用いる。
To initialize the texture object of the color index texture, use GXInitTex
ObjCI is used.

【0079】ミップマップフラグがGX_TRUEの場
合には、テクスチャはミップマップであり、テクスチャ
は3重線形補間される。ミップマップフラグがGX_F
ALSEの場合には、テクスチャはミップマップではな
く、テクスチャは2重線形補間される。フィルタモード
や他のミップマップコントロールを無視するには、GX
InitTexObjLODを参照のこと。
When the mipmap flag is GX_TRUE, the texture is a mipmap, and the texture is triple-linearly interpolated. Mipmap flag is GX_F
In the case of ALSE, the texture is not a mipmap and the texture is doubly linearly interpolated. To ignore the filter mode and other mipmap controls, use GX
See InitTexObjLOD.

【0080】<引数><Argument>

【表3】 [Table 3]

【0081】<GXInitTexObjLOD> <C言語仕様><GXInitTexObjLOD> <C language specification>

【挿入1】 [Insert 1]

【0082】<説明>この関数は、テクスチャの詳細レ
ベル(LOD)コントロールを、テクスチャオブジェク
トに対して明示的に設定する。テクスチャオブジェクト
にメモリを提供するのは、アプリケーションの任務であ
る。GXInitTexObjまたはGXInitTe
xObjCIを用いてテクスチャオブジェクトを初期化
する際に、ミットマップフラグに基づいて、この情報を
デフォルト値に設定する。この関数により、プログラマ
は、これらデフォルトをオーバーライドすることができ
る。なお、この関数の呼び出しは、特定のテクスチャオ
ブジェクトに対するGXInitTexObjまたはG
XInitTexObjCIの後でなければならないこ
とに注意されたい。
<Description> This function explicitly sets the level of detail (LOD) control of a texture for a texture object. It is the responsibility of the application to provide memory for texture objects. GXInitTexObj or GXInitTe
When the texture object is initialized using xObjCI, this information is set to a default value based on the mitt map flag. This function allows the programmer to override these defaults. Note that this function is called by GXInitTexObj or GXInitTexObj for a specific texture object.
Note that it must be after XInitTexObjCI.

【0083】グラフィックスハードウェアによって計算
されたLODは、lod_biasパラメータを用いて
バイアスをかけることができる。このlod_bias
は、計算されたlodに加算され、その結果はmin_
lodとmax_lodの間でクランプされる。bia
s_clampがイネーブルされると、lod_bia
sの効果は、ポリゴンがビュー方向に対してより垂直に
なるにつれて小さくなる。これにより、このような状態
のテクスチャが鮮明になり過ぎることを防止するが、斜
めのポリゴンに対してはLODバイアスを許容する。
The LOD calculated by the graphics hardware can be biased using the load_bias parameter. This load_bias
Is added to the calculated lod and the result is min_
Clamped between lod and max_lod. bia
When s_clamp is enabled, load_bias
The effect of s decreases as the polygon becomes more perpendicular to the viewing direction. This prevents the texture in such a state from becoming too sharp, but allows an LOD bias for diagonal polygons.

【0084】<引数><Argument>

【表4】 [Table 4]

【0085】<GXInitTexPreLoadRe
gion> <説明>
<GXInitTexPreLoadRe
gion><Description>

【0086】この関数は、予めロードできるように、テ
クスチャメモリ(TMEM)領域オブジェクトを初期化
する。この領域は、アプリケーションによって、TME
M内に割り当てられ、予めロードされたバッファとして
のみ用いることができる。キャッシュ領域は、GXIn
itTexCacheRegionを用いて割り当てら
れなければならない。予め割り当てられたテクスチャに
関して、当該領域のサイズは、テクスチャのサイズと一
致しなければならない。アプリケーションにより、多く
の領域オブジェクトを作成することができ、領域オブジ
ェクトのうちの幾つかは重なり合う可能性がある。しか
しながら、2つの重なり合う領域が同時にアクティブに
はなり得ない。
This function initializes a texture memory (TMEM) area object so that it can be pre-loaded. This area depends on the application.
Assigned in M and can only be used as a pre-loaded buffer. The cache area is GXIn
Must be allocated using itTexCacheRegion. For pre-assigned textures, the size of the region must match the size of the texture. Depending on the application, many area objects can be created, and some of the area objects can overlap. However, two overlapping regions cannot be active at the same time.

【0087】領域の最大サイズは、512Kである。The maximum size of the area is 512K.

【0088】GXInitは、予めロードするための領
域を作成しない。したがって、予めのロードが必要な場
合は、アプリケーションが適切な領域を割り当てなけれ
ばならない。また、GXInitTexCacheRe
gionおよびGXSetTexRegionCall
Backを用いて、キャッシュ領域やそのアロケータを
作成する必要がある。なぜなら、新たな領域は、デフォ
ルトのテクスチャメモリ構成を破壊する場合があるから
である。
GXInit does not create an area for loading in advance. Therefore, if pre-loading is required, the application must allocate an appropriate area. Also, GXInitTexCacheRe
gion and GXSetTexRegionCall
It is necessary to create a cache area and its allocator using Back. This is because the new area may destroy the default texture memory configuration.

【0089】<引数><Argument>

【表5】 [Table 5]

【0090】<漫画のアウトライニングを実施するソフ
トウェア制御された処理の例>以下のプログラム部分
は、グラフィックスパイプラインを制御して漫画のアウ
トライニング効果を行なうために用いることができる。
<Example of Software Controlled Process for Implementing Cartoon Outlining> The following program portion can be used to control the graphics pipeline to perform the cartoon outlining effect.

【挿入2】 [Insert 2]

【0091】<互換可能な他の実施例>上述のシステム
構成要素50のうちのあるものは、上述の家庭用ビデオ
ゲームコンソール以外であっても実施できる。たとえ
ば、システム50のために書き込まれているグラフィッ
クスアプリケーションなどのソフトウェアを、システム
50をエミュレートするかまたはそれと互換性のある他
の構成を用いたプラットフォーム上で実行することがで
きる。他のプラットフォームが、システム50のハード
ウェアおよびソフトウェア資源の一部または全部をうま
くエミュレート、模倣、および/または提供できるので
あれば、当該他のプラットフォームは、ソフトウェアを
うまく実行することができるであろう。
<Other Interchangeable Embodiments> Some of the above-mentioned system components 50 can be implemented even if they are other than the above-mentioned home video game consoles. For example, software such as a graphics application written for the system 50 may be executed on a platform that emulates the system 50 or uses other configurations compatible therewith. If another platform can successfully emulate, mimic, and / or provide some or all of the hardware and software resources of system 50, then the other platform can execute the software successfully. Would.

【0092】一例として、エミュレータは、システム5
0のハードウェアおよび/またはソフトウェア構成(プ
ラットフォーム)とは異なるハードウェアおよび/また
はソフトウェア構成(プラットフォーム)を提供しても
よい。エミュレータシステムは、アプリケーションソフ
トウェアを書き込む対象であるシステムのハードウェア
および/またはソフトウェア構成要素の一部またはすべ
てをエミュレートするハードウェアおよび/またはソフ
トウェア構成要素を含んでいてもよい。たとえば、エミ
ュレータシステムは、パーソナルコンピュータなどの汎
用デジタルコンピュータを備えることができ、これによ
って、システム50のハードウェアおよび/またはファ
ームウェアを模倣するソフトウェアエミュレータプログ
ラムが実行される。
As an example, the emulator is a system 5
A hardware and / or software configuration (platform) different from the hardware and / or software configuration (platform) may be provided. An emulator system may include hardware and / or software components that emulate some or all of the hardware and / or software components of the system to which application software is written. For example, the emulator system can comprise a general purpose digital computer, such as a personal computer, which executes a software emulator program that mimics the hardware and / or firmware of system 50.

【0093】汎用デジタルコンピュータの中には(たと
えば、IBMまたはマッキントッシュ製パーソナルコン
ピュータおよびその互換機)、現在、DirectX3
Dやその他の標準グラフィックスコマンドAPIに対応
したグラフィックスパイプラインを提供する3Dグラフ
ィックスカードが搭載されているものもある。これらに
は、また、標準的なサウンドコマンドに基づいて高品質
の立体音響を提供する立体音響サウンドカードも搭載さ
れている場合もある。エミュレータソフトウェアを実行
させるこのようなマルチメディアハードウェアを搭載し
たコンピュータは、システム50のグラフィックス性能
およびサウンド性能を近似するに充分な性能を有してい
る場合がある。エミュレータソフトウェアは、パーソナ
ルコンピュータプラットフォーム上のハードウェア資源
を制御して、ゲームプログラマがゲームソフトウェアを
書き込む対象である家庭用ビデオゲームゲームコンソー
ルプラットフォームの処理性能、3Dグラフィックス性
能、サウンド性能、周辺性能などを模倣する。
Some general-purpose digital computers (for example, IBM or Macintosh personal computers and their compatibles) currently use DirectX3
Some have a 3D graphics card that provides a graphics pipeline that supports D and other standard graphics command APIs. These may also include a stereophonic sound card that provides high quality stereophonic sound based on standard sound commands. A computer with such multimedia hardware running emulator software may have sufficient performance to approximate the graphics and sound performance of system 50. The emulator software controls the hardware resources on the personal computer platform to control the processing performance, 3D graphics performance, sound performance, peripheral performance, etc. of the home video game console platform on which game programmers write game software. To imitate.

【0094】図27は、エミュレーション処理全体の例
を示しており、この処理は、ホストプラットフォーム1
201と、エミュレータ構成要素1303と、記憶媒体
62上に与えられているバイナリ画像を実行可能なゲー
ムソフトウェアとを用いる。ホスト1201は、汎用ま
たは専用デジタルコンピューティング装置であってもよ
く、たとえばパーソナルコンピュータやビデオゲームコ
ンソールなど、充分な計算能力を備えたプラットフォー
ムが挙げられる。エミュレータ1303は、ホストプラ
ットフォーム1201上で実行されるソフトウェアおよ
び/またはハードウェアであってもよく、コマンドやデ
ータなどの記憶媒体62からの情報をリアルタイムで変
換して、ホスト1201が処理可能な形式にすることが
できる。たとえば、エミュレータ1303は、システム
50が実行しようとする「ソース」バイナリ画像プログ
ラム命令を記憶媒体62から取り出して、実行可能な形
式またはホスト1201によって処理可能な形式に当該
プログラム命令を変換する。
FIG. 27 shows an example of the entire emulation processing.
201, an emulator component 1303, and game software capable of executing a binary image provided on the storage medium 62. Host 1201 may be a general purpose or special purpose digital computing device, for example, a platform with sufficient computing power, such as a personal computer or a video game console. The emulator 1303 may be software and / or hardware executed on the host platform 1201 and converts information such as commands and data from the storage medium 62 in real time into a format that the host 1201 can process. can do. For example, emulator 1303 retrieves “source” binary image program instructions that system 50 intends to execute from storage medium 62 and converts the program instructions into a form that can be executed or processed by host 1201.

【0095】一例として、IBMのPowerPCなど
の特定のプロセッサを用いたプラットフォーム上で実行
するためにソフトウェアが書き込まれており、ホスト1
201は、異なる(たとえば、インテルの)プロセッサ
を用いたパーソナルコンピュータである場合、エミュレ
ータ1303は、バイナリ画像プログラム命令の1つま
たはシーケンスを記憶媒体1305から取り出して、こ
れらのプログラム命令を、インテルのバイナリ画像プロ
グラム命令に相当するものに変換する。また、エミュレ
ータ1303は、グラフィックス音声プロセッサ114
によって処理されるグラフィックスコマンドや音声コマ
ンドを取り出しおよび/または生成し、ハードウェアお
よび/またはソフトウェアグラフィックスおよびホスト
1201で利用可能な音声処理資源によって処理可能な
形式に、これらコマンドを変換する。一例として、エミ
ュレータ1303は、これらのコマンドを、ホスト12
01の特定のグラフィックスおよび/またはサウンドハ
ードウェアによって処理可能なコマンドに変換する(た
とえば、DirectX、OpenGLおよび/または
サウンドAPIを用いる)。
As an example, software has been written to execute on a platform using a particular processor, such as IBM PowerPC, and the host 1
If 201 is a personal computer using a different (eg, Intel) processor, emulator 1303 retrieves one or a sequence of binary image program instructions from storage medium 1305 and converts these program instructions to an Intel binary It is converted into an image program instruction equivalent. Also, the emulator 1303 includes the graphics sound processor 114.
Retrieve and / or generate graphics and voice commands processed by the hardware and / or software graphics and convert these commands into a format that can be processed by the voice processing resources available on host 1201. As an example, the emulator 1303 transmits these commands to the host 12.
01 into commands that can be processed by specific graphics and / or sound hardware (eg, using DirectX, OpenGL and / or sound API).

【0096】エミュレータ1303または図25のアウ
トライニング処理をを実施する他のプラットフォーム
は、再循環シェーダを有していなくてもよく、その代わ
りに、個別のシェーディング/ブレンディングステージ
のパイプラインを用いてアルファ比較演算を実施しても
よい。同様に、他の実施例においては、アルファやカラ
ー情報を同一のバッファに記憶させなくてもよく、その
代わりに、この情報を異なるフレームバッファに記憶さ
せてもよい。たとえば、オブジェクトIDを与えるアル
ファ「画像」は、メインメモリのマップとして記憶させ
てもよい。事後処理は、テクスチャリングを用いること
によって行われる必要はないが、その代わりに、汎用プ
ロセッサによって行ってもよい。輪郭線のレンダリング
は2つのパスで行わなくてもよい。他の実施例において
は、水平および垂直輪郭線は、同一のパスでレンダリン
グされてもよい。
The emulator 1303 or other platform implementing the outlining process of FIG. 25 may not have a recirculating shader, but instead uses a separate shading / blending stage pipeline to implement alpha. A comparison operation may be performed. Similarly, in other embodiments, the alpha and color information need not be stored in the same buffer, but instead this information may be stored in a different frame buffer. For example, the alpha “image” giving the object ID may be stored as a map in the main memory. Post-processing need not be performed by using texturing, but may instead be performed by a general-purpose processor. The contour rendering need not be performed in two passes. In another embodiment, the horizontal and vertical contours may be rendered in the same pass.

【0097】上述のビデオゲームシステムの機能の一部
または全部を提供するために用いられるエミュレータ1
303には、エミュレータを用いて実行される様々なオ
プションや画面モードの選択を簡略化または自動化する
グラフィックユーザインターフェース(GUI)が与え
られてもよい。一例として、そのようなエミュレータ1
303は、ソフトウェアが本来対象としていたホストプ
ラットフォームに比較して、拡張された機能をさらに含
んでいてもよい。
Emulator 1 used to provide some or all of the functions of the video game system described above
303 may be provided with a graphic user interface (GUI) that simplifies or automates the selection of various options and screen modes performed using the emulator. As an example, such an emulator 1
303 may further include extended functions compared to the host platform originally targeted by the software.

【0098】図28は、エミュレータ1303と共に用
いられるのに適したエミュレーションホストシステム1
201を示す。システム1201は、処理部1203
と、システムメモリ1205とを含む。システムバス1
207は、システムメモリ1205から処理部1203
までを含む様々なシステム構成要素を結合する。システ
ム1207は、メモリバスまたはメモリコントローラ、
周辺機器バス、ローカルバスなど、様々なバスアーキテ
クチャのいずれかを用いたものを含む、数種のバス構成
のいずれであってもよい。システムメモリ1207は、
読み出し専用メモリ(ROM)1252と、ランダムア
クセスメモリ(RAM)1254とを含む。ベーシック
入出力システム(BIOS)1256は、パーソナルコ
ンピュータシステム1201内の要素間において情報を
転送するのを助ける基本ルーチンを含んでおり、ROM
1252に記憶される。システム1201は、様々なド
ライブや、関連したコンピュータが読み取り可能な媒体
をさらに含む。ハードディスクドライブ1209は、
(典型的には固定された)磁気ハードディスク1211
からの読み出しやそれに対する書き込みを行う。付加的
な(選択可能な)磁気ディスクドライブ1213は、着
脱可能な「フロッピー(登録商標)」などの磁気ディス
ク1215からの読み出しやそれに対する書き込みを行
う。随意のディスクドライブ1217は、CDROMな
どの随意の媒体のような着脱可能な光ディスク1219
からの読み出しや、構成によってはそれに対する書き込
みも行う。ハードディスクドライブ1209および光デ
ィスクドライブ1217は、それぞれ、ハードディスク
ドライブインターフェース1221および光ドライブイ
ンターフェース1225によって、システムバス120
7に接続している。ドライブやそれに関連するコンピュ
ータが読み出し可能な媒体によって、コンピュータが読
み出し可能な命令、データ構造、プログラムモジュー
ル、ゲームプログラムなどのパーソナルコンピュータシ
ステム1201のためのデータが不揮発的に記憶され
る。他の構成においては、コンピュータが読み出し可能
な他の種類の媒体が用いられていてもよく、コンピュー
タによってアクセス可能なデータを記憶できる媒体(た
とえば、磁気カセット、フラッシュメモリカード、デジ
タルビデオディスク、ベルヌーイカートリッジ、ランダ
ムアクセスメモリ(RAM)、読み出し専用メモリ(R
OM)など)であってもよい。
FIG. 28 shows an emulation host system 1 suitable for use with the emulator 1303.
201 is shown. The system 1201 includes a processing unit 1203
And a system memory 1205. System bus 1
Reference numeral 207 denotes a processing unit 1203 from the system memory 1205.
Combine various system components, including System 1207 includes a memory bus or memory controller,
Any of several bus configurations may be used, including those using any of a variety of bus architectures, such as a peripheral bus, a local bus, and the like. The system memory 1207 is
A read only memory (ROM) 1252 and a random access memory (RAM) 1254 are included. A basic input / output system (BIOS) 1256 contains the basic routines that help transfer information between elements in the personal computer system 1201, and includes a ROM.
1252. System 1201 further includes various drives and associated computer-readable media. The hard disk drive 1209 is
Magnetic hard disk 1211 (typically fixed)
Read from and write to it. An additional (selectable) magnetic disk drive 1213 reads from and writes to a magnetic disk 1215 such as a removable "floppy". Optional disk drive 1217 is a removable optical disk 1219 such as an optional medium such as a CDROM.
, And depending on the configuration, writing to it. The hard disk drive 1209 and the optical disk drive 1217 are connected to the system bus 120 by the hard disk drive interface 1221 and the optical drive interface 1225, respectively.
7 is connected. The drive and its related computer-readable medium nonvolatilely store data for the personal computer system 1201 such as computer-readable instructions, data structures, program modules, and game programs. In other configurations, other types of computer readable media may be used, and media capable of storing data accessible by the computer (eg, magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges) , Random access memory (RAM), read-only memory (R
OM) etc.).

【0099】エミュレータ1303を含む多くのプログ
ラムモジュールは、ハードディスク1211、着脱可能
な磁気ディスク1215、光学ディスク1219、およ
び/またはシステムメモリ1205のROM1252お
よび/またはRAM1254に記憶されてもよい。その
ようなプログラムモジュールは、グラフィックスやサウ
ンドAPIを提供するオペレーティングシステム、1つ
以上のアプリケーションプログラム、他のプログラムモ
ジュール、プログラムデータ、ゲームデータを含んでも
よい。ユーザは、コマンドや情報を、キーボード122
7、ポインティングデバイス1229、マイク、ジョイ
スティック、ゲームコントローラ、衛星アンテナ、スキ
ャナなどの入力装置を通じて、パーソナルコンピュータ
システム1201に対して入力する。このような入力装
置は、システムバス1207に結合されたシリアルポー
トインターフェース1231を介して処理部1203に
接続されることが可能であるが、パラレルポートや、ゲ
ームポートファイアワイヤーバス、またはユニバーサル
シリアルバス(USB)などの他のインターフェースに
よって接続されてもよい。モニタ1233などの表示装
置も、ビデオアダプタ1235などのインターフェース
を介して、システムバス1207に接続される。
Many program modules, including the emulator 1303, may be stored on the hard disk 1211, removable magnetic disk 1215, optical disk 1219, and / or ROM 1252 and / or RAM 1254 of the system memory 1205. Such program modules may include an operating system that provides graphics and sound APIs, one or more application programs, other program modules, program data, and game data. The user inputs commands and information to the keyboard 122.
7. Input to the personal computer system 1201 through input devices such as a pointing device 1229, a microphone, a joystick, a game controller, a satellite antenna, and a scanner. Such an input device can be connected to the processing unit 1203 via a serial port interface 1231 coupled to a system bus 1207, and can be a parallel port, a game port fire wire bus, or a universal serial bus ( USB or other interfaces. A display device such as a monitor 1233 is also connected to the system bus 1207 via an interface such as a video adapter 1235.

【0100】また、システム1201は、インターネッ
トのようなネットワーク1152上での通信を確立する
ための、モデム1154などのネットワークインターフ
ェース手段を含んでもよい。モデム1154は、内蔵で
あっても外付けであってもよく、シリアルポートインタ
ーフェース1231を介してシステムバス123に接続
される。また、ローカルエリアネットワーク1158を
介して(または、ワイドエリアネットワーク1152、
ダイアルアップなどの他の通信路、または他の通信手段
を介してもよい)、システム1201が遠隔コンピュー
ティング装置1150(たとえば、他のシステム120
1)と通信できるように、ネットワークインターフェー
ス1156が与えられてもよい。システム1201は、
典型的には、プリンタなどの標準周辺機器のような、他
の周辺出力装置を含む。
[0100] The system 1201 may also include network interface means such as a modem 1154 for establishing communication over a network 1152 such as the Internet. The modem 1154 may be internal or external, and is connected to the system bus 123 via the serial port interface 1231. Also, via the local area network 1158 (or the wide area network 1152,
The system 1201 may be connected to a remote computing device 1150 (eg, via another communication path, such as dial-up, or other communication means).
A network interface 1156 may be provided to communicate with 1). The system 1201 is
Typically, it includes other peripheral output devices, such as standard peripherals such as printers.

【0101】一例において、ビデオアダプタ1235
は、Microsoft製DirextX7.0などの
バージョンのような標準3Dグラフィックスアプリケー
ションプログラマインターフェースに基づいて出される
3Dグラフィックスコマンドに応答して、高速3Dグラ
フィックスレンダリングを提供するグラフィックスパイ
プラインチップセットを含んでいてもよい。立体音響ス
ピーカセット1237も、システムバス1207に対し
て、従来の「サウンドカード」のような音声生成インタ
ーフェースを介して接続されている。そのようなインタ
ーフェースは、バス1207から与えられたサウンドコ
マンドに基づいて高品質な立体音響を生成するための支
援をハードウェアや組み込みソフトウェアに対して行
う。このようなハードウェアの機能によって、システム
1201は、記憶媒体62に記憶されたソフトウェアを
実行するのに充分なグラフィックスおよび音響の速度性
能を提供することができる。
In one example, video adapter 1235
Includes a graphics pipeline chipset that provides high-speed 3D graphics rendering in response to 3D graphics commands issued based on standard 3D graphics application programmer interfaces, such as versions of Microsoft's DirectX 7.0. May be. The stereophonic speaker set 1237 is also connected to the system bus 1207 via a sound generation interface such as a conventional “sound card”. Such an interface provides hardware and embedded software with assistance in generating high quality stereophonic sound based on sound commands provided from the bus 1207. Such hardware capabilities allow system 1201 to provide sufficient graphics and audio speed performance to execute software stored on storage medium 62.

【0102】上記の特許、特許出願およびその他の上述
の書類のすべての内容は、本明細書に明示的に引用され
ている。
The contents of all of the above patents, patent applications and other documents referred to above are expressly incorporated herein by reference.

【0103】本発明は、現時点において最も現実的で最
適な実施例と思われるものに関連して説明してきたが、
本発明は、開示された実施例に限定されるべきと解釈さ
れるべきではない。たとえば、図示の実施例の目的は、
漫画のアウトライニングと共に画像を提供することであ
るとしたが、上述の柔軟なアルファ比較演算を多くの異
なる画像アプリケーション用に用いることが可能であ
る。さらに、二重のアルファ比較を上では説明したが、
本願は、単なる2回のアルファ比較のみに限定されな
い。さらに、好ましい実施例においては、再循環シェー
ダを使用したが、複数のアルファ比較器を有するパラレ
ルな仕組みを用いることも可能である。したがって、本
発明は、添付の請求項の範囲に含まれる様々な変形例や
相当する仕組みを含むことを意図している。
Although the present invention has been described in terms of what is presently considered to be the most realistic and optimal embodiment,
The present invention should not be construed as limited to the disclosed embodiments. For example, the purpose of the illustrated embodiment is:
Although described as providing images with cartoon outlining, the flexible alpha comparison operation described above can be used for many different image applications. Furthermore, as described above for the double alpha comparison,
The present application is not limited to just two alpha comparisons. Furthermore, although the preferred embodiment uses a recirculating shader, it is possible to use a parallel scheme with multiple alpha comparators. Therefore, it is intended that the present invention include various modifications and equivalents falling within the scope of the appended claims.

【図面の簡単な説明】[Brief description of the drawings]

【図1】対話式コンピュータグラフィックスシステムの
一例の概略図である。
FIG. 1 is a schematic diagram of an example of an interactive computer graphics system.

【図2】図1のコンピュータグラフィックスシステムの
例のブロック図である。
FIG. 2 is a block diagram of an example of the computer graphics system of FIG.

【図3】図2に示すグラフィックス&音声プロセッサの
例のブロック図である。
FIG. 3 is a block diagram of an example of the graphics and audio processor shown in FIG. 2;

【図4】図3に示す3Dグラフィックスプロセッサの例
のブロック図である。
FIG. 4 is a block diagram of an example of the 3D graphics processor shown in FIG. 3;

【図5】図4のグラフィックス&音声プロセッサの論理
フロー図の例である。
FIG. 5 is an example of a logic flow diagram of the graphics and audio processor of FIG. 4;

【図6】再利用可能な再循環シェーダの例を示す。FIG. 6 shows an example of a reusable recirculating shader.

【図7】再循環シェーダを用いて実施されるシェーディ
ングパイプラインの例を示す。
FIG. 7 shows an example of a shading pipeline implemented using a recirculating shader.

【図8】再循環シェーダのブロック図の例を示す。FIG. 8 shows an example of a block diagram of a recirculation shader.

【図9】再循環シェーダ入力乗算器の例を示す。FIG. 9 shows an example of a recirculating shader input multiplier.

【図10】再循環シェーダの動作ブロック図の例を示
す。
FIG. 10 shows an example of an operation block diagram of a recirculation shader.

【図11】再循環シェーダの実施例を示す。FIG. 11 shows an embodiment of a recirculation shader.

【図12】カラースワップ機能の例を示す。FIG. 12 shows an example of a color swap function.

【図13】カラースワップ機能の例を示す。FIG. 13 shows an example of a color swap function.

【図14】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 14 illustrates an example of a cartoon outlining technique that encodes an object ID using alpha information.

【図15】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 15 illustrates an example of a cartoon outlining technique that encodes an object ID using alpha information.

【図16】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 16 illustrates an example of a cartoon outlining technique that encodes an object ID using alpha information.

【図17】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 17 shows an example of a cartoon outlining technique for encoding an object ID using alpha information.

【図18】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 18 illustrates an example of a cartoon outlining technique that encodes an object ID using alpha information.

【図19】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 19 illustrates an example of a cartoon outlining technique that encodes an object ID using alpha information.

【図20】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 20 illustrates an example of a cartoon outlining technique that encodes an object ID using alpha information.

【図21】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 21 illustrates an example of a cartoon outlining technique for encoding an object ID using alpha information.

【図22】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 22 illustrates an example of a cartoon outlining technique that encodes an object ID using alpha information.

【図23】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 23 shows an example of a cartoon outlining technique for encoding an object ID using alpha information.

【図24】アルファ情報を用いてオブジェクトIDを符
号化する、漫画のアウトライニング技術の例を示す。
FIG. 24 illustrates an example of a cartoon outlining technique for encoding an object ID using alpha information.

【図25】システム50によって実行される漫画のアウ
トライニング処理の例を示す。
25 shows an example of a cartoon outlining process performed by the system 50. FIG.

【図26】システム50によって実施される漫画のアウ
トライニングパイプラインの例を示す。
FIG. 26 illustrates an example of a cartoon outlining pipeline implemented by the system 50.

【図27】他の代替可能な実施例を示す。FIG. 27 illustrates another alternative embodiment.

【図28】他の代替可能な実施例を示す。FIG. 28 illustrates another alternative embodiment.

Claims (17)

【特許請求の範囲】[Claims] 【請求項1】 グラフィックス画像を生成する方法であ
って、 (a)画像化される面を表す情報(前記情報はアルファ
を含む)を生成し、 (b)同一のレンダリングパス内において、複数のアル
ファ比較を前記アルファ情報に対して実行して、対応す
る複数のアルファ比較結果を提供し、 (c)前記複数のアルファ比較結果を論理的に結合し、 (d)少なくとも一部は前記論理結合に基づいて、前記
グラフィックス画像をレンダリングする、方法。
1. A method of generating a graphics image, comprising: (a) generating information (including alpha) representing a surface to be imaged; and (b) generating a plurality of information in the same rendering pass. Performing an alpha comparison on the alpha information to provide a corresponding plurality of alpha comparison results; (c) logically combining the plurality of alpha comparison results; and (d) at least a portion of the logical comparison. Rendering the graphics image based on a combination.
【請求項2】 前記レンダリングステップは、前記論理
結合に基づいてピクセルをキルするか否かを選択するこ
とを含む、請求項1に記載の方法。
2. The method of claim 1, wherein said rendering step includes selecting whether to kill pixels based on said logical combination.
【請求項3】 前記実行ステップは、再循環シェーダを
用いて行なわれる、請求項1に記載の方法。
3. The method of claim 1, wherein said performing step is performed using a recirculating shader.
【請求項4】 前記実行ステップおよび論理結合ステッ
プは、ハードウェア内で行なわれる、請求項1に記載の
方法。
4. The method of claim 1, wherein said performing and logic combining steps are performed in hardware.
【請求項5】 前記レンダリングステップは、前記論理
結合に基づいて、漫画の輪郭線カラーをブレンドするか
否かを選択的に決定することを含む、請求項1に記載の
方法。
5. The method of claim 1, wherein the rendering step comprises selectively determining whether to blend cartoon outline colors based on the logical combination.
【請求項6】 前記ステップ(b)および(c)は、絶
対値関数を実行する、請求項1に記載の方法。
6. The method of claim 1, wherein steps (b) and (c) perform an absolute value function.
【請求項7】 オブジェクト識別子をリアルタイムレン
ダリングシステムのアルファチャンネルに入れて符号化
することによって漫画のアウトライニングを行なう方法
であって、アルファチャンネルとアルファ比較器とを含
むシェーダを用いてハードウェアに基づいた複数のアル
ファテストを同一のレンダリングパス内において行なっ
て、漫画の輪郭線をフレームバッファに対して選択的に
書き込むことを含む、改良された方法。
7. A method for performing cartoon outlining by encoding an object identifier into an alpha channel of a real-time rendering system, the method being based on hardware using a shader including an alpha channel and an alpha comparator. Improved method comprising performing multiple alpha tests in the same rendering pass to selectively write cartoon outlines to a frame buffer.
【請求項8】 a0 がピクセルのアルファ値であり、a
1 が隣接ピクセルのアルファ値である場合、前記シェー
ダは、[a0 −a1 ]の絶対値を計算する、請求項7に
記載の方法。
8. The method according to claim 8, wherein a 0 is the alpha value of the pixel,
If 1 is the alpha value of the neighboring pixels, the shader computes the absolute value of [a 0 -a 1], The method of claim 7.
【請求項9】 前記シェーダは、或るアルファ値を他か
ら減算して、未クランプの結果を出力する、請求項7に
記載の方法。
9. The method of claim 7, wherein the shader subtracts one alpha value from another and outputs an unclamped result.
【請求項10】 前記シェーダは、予め定めた閾値を超
えるアルファ差分値を検出するために動作する、請求項
7に記載の方法。
10. The method of claim 7, wherein the shader operates to detect an alpha difference value that exceeds a predetermined threshold.
【請求項11】 前記シェーダは、未クランプの負の結
果を生じさせ、当該結果は変換されて、上位ビットセッ
トとともにアルファ値となる、請求項7に記載の方法。
11. The method of claim 7, wherein the shader produces an unclamped negative result, which is converted to an alpha value with the high order bit set.
【請求項12】 前記シェーダは、複数のアルファ演算
結果に基づいて、予め定めたカラー値にブレンドを行な
う、請求項7に記載の方法。
12. The method according to claim 7, wherein the shader blends a predetermined color value based on a plurality of alpha operation results.
【請求項13】 前記シェーダは、第1のパス内におい
て第1の方向の輪郭線を書き込み、第2のパス内におい
て第2の方向の輪郭線を書き込む、請求項7に記載の方
法。
13. The method of claim 7, wherein the shader writes a contour in a first direction in a first pass and writes a contour in a second direction in a second pass.
【請求項14】 前記シェーダは、再循環して、任意な
複雑性を有するアルファシェードツリーを実施する、請
求項7に記載の方法。
14. The method of claim 7, wherein the shader recirculates to implement an alpha shade tree of any complexity.
【請求項15】 前記方法は、アルファチャンネルから
得たテクスチャをマッピングして、当該テクスチャを用
いてアルファ差分を提供し、前記シェーダが評価するこ
とができるようにすることをさらに含む、請求項7に記
載の方法。
15. The method of claim 7, further comprising mapping a texture obtained from an alpha channel and using the texture to provide an alpha difference so that the shader can evaluate. The method described in.
【請求項16】 グラフィックスシステムであって、 テクスチャ座標マトリックス乗算器を含むテクスチャ部
と、 アルファチャンネルを含むシェーダと、 アルファ画像を記憶可能な組み込みフレームバッファ
と、 アルファ画像を前記フレームバッファからコピーして前
記テクスチャ部がテキストとして利用できるようにす
る、コピーアウトパイプラインとを備え、 前記グラフィックスシステムは、単一のレンダリングパ
スにおいて複数のアルファ比較を行なう、グラフィック
スシステム。
16. A graphics system, comprising: a texture portion including a texture coordinate matrix multiplier; a shader including an alpha channel; a built-in frame buffer capable of storing an alpha image; and copying the alpha image from the frame buffer. A copy-out pipeline for making said texture portion available as text, wherein said graphics system performs multiple alpha comparisons in a single rendering pass.
【請求項17】 前記シェーダは、前記複数の論理的ア
ルファ比較を論理的に結合し、前記結合結果に基づい
て、所定のカラーをブレンドする、請求項16に記載の
システム。
17. The system of claim 16, wherein the shader logically combines the plurality of logical alpha comparisons and blends predetermined colors based on the result of the combination.
JP2001163359A 2000-08-23 2001-05-30 Method and apparatus for providing a logical combination of N alpha operations in a graphics system Expired - Fee Related JP4740476B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22691500P 2000-08-23 2000-08-23
US60/226915 2000-08-23

Publications (2)

Publication Number Publication Date
JP2002074385A true JP2002074385A (en) 2002-03-15
JP4740476B2 JP4740476B2 (en) 2011-08-03

Family

ID=22850962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001163359A Expired - Fee Related JP4740476B2 (en) 2000-08-23 2001-05-30 Method and apparatus for providing a logical combination of N alpha operations in a graphics system

Country Status (1)

Country Link
JP (1) JP4740476B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179461A (en) * 2005-12-28 2007-07-12 Hitachi Ltd Drawing method, image data generation system, CAD system, and viewer system
JP2008515058A (en) * 2004-09-23 2008-05-08 クゥアルコム・インコーポレイテッド Flexible anti-aliasing for embedded devices
JP2013533529A (en) * 2010-05-21 2013-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for providing virtual world scene data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994004989A1 (en) * 1992-08-26 1994-03-03 Namco Ltd. Image synthesizer
JPH08249502A (en) * 1995-02-17 1996-09-27 Internatl Business Mach Corp <Ibm> Method and apparatus for improved graphics picking using auxiliary buffer information
JPH10161636A (en) * 1996-11-29 1998-06-19 Hitachi Ltd Graphics display
WO1999001846A1 (en) * 1997-07-02 1999-01-14 Mental Images Gmbh & Co. Kg A computer graphics system
JPH11161258A (en) * 1997-12-01 1999-06-18 Nec Shizuoka Ltd Display device and method of blending image

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994004989A1 (en) * 1992-08-26 1994-03-03 Namco Ltd. Image synthesizer
JPH08249502A (en) * 1995-02-17 1996-09-27 Internatl Business Mach Corp <Ibm> Method and apparatus for improved graphics picking using auxiliary buffer information
JPH10161636A (en) * 1996-11-29 1998-06-19 Hitachi Ltd Graphics display
WO1999001846A1 (en) * 1997-07-02 1999-01-14 Mental Images Gmbh & Co. Kg A computer graphics system
JPH11161258A (en) * 1997-12-01 1999-06-18 Nec Shizuoka Ltd Display device and method of blending image

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008515058A (en) * 2004-09-23 2008-05-08 クゥアルコム・インコーポレイテッド Flexible anti-aliasing for embedded devices
JP2007179461A (en) * 2005-12-28 2007-07-12 Hitachi Ltd Drawing method, image data generation system, CAD system, and viewer system
JP2013533529A (en) * 2010-05-21 2013-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for providing virtual world scene data

Also Published As

Publication number Publication date
JP4740476B2 (en) 2011-08-03

Similar Documents

Publication Publication Date Title
JP4698893B2 (en) Method, graphics system, and program for providing improved fog effects
US6700586B1 (en) Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) Method and apparatus for texture tiling in a graphics system
JP4863574B2 (en) Image generation method using Z texturing
JP4790150B2 (en) Shadow mapping in low cost graphics systems
JP4731028B2 (en) Recirculating shade tree blender for graphics systems
US7061502B1 (en) Method and apparatus for providing logical combination of N alpha operations within a graphics system
JP4680412B2 (en) Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on drawing mode
US8672753B2 (en) Video game including effects for providing different experiences of the same video game world and a storage medium storing software for the video game
US6618048B1 (en) 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6825851B1 (en) Method and apparatus for environment-mapped bump-mapping in a graphics system
JP4672072B2 (en) Method and apparatus for providing non-realistic cartoon outline in 3D video graphics system
US6747642B1 (en) Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system
JP2001143100A (en) Method and device for providing depth gradation effects in three-dimensional video graphic system
JP4683760B2 (en) Graphics system with embedded frame buffer having a reconfigurable pixel format
JP4740476B2 (en) Method and apparatus for providing a logical combination of N alpha operations in a graphics system
JP2001229403A (en) Game system and information storage medium
JP3254195B2 (en) Image generation system and information storage medium
EP1094421A2 (en) Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system
JP4698894B2 (en) Method, apparatus and program for texture tiling in a graphics system
JP4740490B2 (en) Clamping Z values in the Z neighborhood to maximize the accuracy of visually important Z components in graphics rendering systems and avoid Z neighborhood clipping
JP5142419B2 (en) Method and apparatus for accessing shared resource

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

R150 Certificate of patent or registration of utility model

Ref document number: 4740476

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees