JP2003058905A - CLAMPING OF z VALUE IN NEAR RANGE OF z FOR MAXIMIZING ACCURACY OF VISUALLY IMPORTANT z COMPONENT AND EVADING CLIPPING NEAR z IN GRAPHICS RENDERING SYSTEM - Google Patents

CLAMPING OF z VALUE IN NEAR RANGE OF z FOR MAXIMIZING ACCURACY OF VISUALLY IMPORTANT z COMPONENT AND EVADING CLIPPING NEAR z IN GRAPHICS RENDERING SYSTEM

Info

Publication number
JP2003058905A
JP2003058905A JP2001249924A JP2001249924A JP2003058905A JP 2003058905 A JP2003058905 A JP 2003058905A JP 2001249924 A JP2001249924 A JP 2001249924A JP 2001249924 A JP2001249924 A JP 2001249924A JP 2003058905 A JP2003058905 A JP 2003058905A
Authority
JP
Japan
Prior art keywords
value
graphics
plane
clipping
compression
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
JP2001249924A
Other languages
Japanese (ja)
Other versions
JP4740490B2 (en
Inventor
Mark M Leather
エム レザー マーク
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
Priority to JP2001249924A priority Critical patent/JP4740490B2/en
Publication of JP2003058905A publication Critical patent/JP2003058905A/en
Application granted granted Critical
Publication of JP4740490B2 publication Critical patent/JP4740490B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To secure accuracy of depth of a z value when depth data of the z value should be compressed in a 3D (three-dimensional) graphics rendering system. SOLUTION: A graphics pipe line performs z buffering and when an anti- aliasing rendering mode is selected, z value bit compression is performed to more efficiently use usable z buffer memory. The accuracy of visually important z components is improved by using z clamping structure by clamping the z value of a pixel within a prescribed z axis range in the vicinity of a z=0 view/ camera (view port) plane. This fact enables use of a z clipping surface of excessively in the vicinity of the viewpoint/camera plane and the accuracy of the z value to the remaining depth of a scene is secured as evading undesirable visual artifact which is generated when the object rendered in the vicinity of the viewpoint/camera plane is clipped.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明はコンピュータグラフ
ィックスに関し、より詳細には家庭用ビデオゲームプラ
ットフォームなどの対話式グラフィックスシステムに関
する。さらに、より詳細には、本発明は、アンチエイリ
アス化シーンをレンダリングする際に視覚的に重要なZ
成分の精度を最大化しかつZ近傍クリッピングを回避す
るための、Z近傍範囲におけるZ値クランピングに関す
る。
FIELD OF THE INVENTION This invention relates to computer graphics, and more particularly to interactive graphics systems such as home video game platforms. Still more particularly, the invention provides a Z that is visually important in rendering anti-aliased scenes.
It relates to Z-value clamping in the Z-nearest range in order to maximize the accuracy of the components and avoid Z-nearest clipping.

【0002】[0002]

【従来の技術】我々の多くは、驚くほどリアルな恐竜、
異星人、アニメーション化された玩具、およびその他の
空想的な生物を含む映画を観たことがある。このような
アニメーションは、コンピュータグラフィックスによっ
て可能となる。こうした技術を用いることにより、コン
ピュータグラフィックスアーチストは、各オブジェクト
がどのように見えるべきか、また時間とともにどのよう
に外見が変化すべきを指定することができ、そしてコン
ピュータがオブジェクトをモデリングし、これらをテレ
ビやコンピュータスクリーンなどのディスプレイ上に表
示する。このコンピュータは、シーン中の各オブジェク
トの位置および方向、各オブジェクトに光が入射してい
るように見える方向、各オブジェクトの表面テクスチ
ャ、およびその他の要素に基づき、表示された画像の各
部分がちょうど正しく色付けされかつ形付けられている
ことを確実にするために必要な多くの処理の実行を担当
する。
BACKGROUND OF THE INVENTION Many of us are amazingly realistic dinosaurs,
I've seen movies that include aliens, animated toys, and other fantastic creatures. Such animations are made possible by computer graphics. Using these techniques, computer graphics artists can specify what each object should look like, and how it should change its appearance over time, and the computer models the objects On a display such as a TV or computer screen. The computer uses the position and orientation of each object in the scene, the direction in which light appears to be incident on each object, the surface texture of each object, and other factors to ensure that each portion of the displayed image is exactly the same. Responsible for performing many of the operations necessary to ensure that it is correctly colored and shaped.

【0003】コンピュータグラフィックスの生成は複雑
であるため、ほんの数年前では、コンピュータ生成され
た3次元グラフィックスは、高価な専用のフライトシミ
ュレータ、ハイエンドのグラフィックスワークステーシ
ョン、およびスーパーコンピュータに概ね限定されてい
た。大衆は、これらのコンピュータシステムによって生
成された画像のいくつかを映画や高価なテレビ広告で見
ることはあったが、我々の大部分は、グラフィックス生
成を行うコンピュータに実際に接触することはできなか
った。これが全て、例えばニンテンドウ64(登録商
標)などの比較的安価な3Dグラフィックスプラットフ
ォームや、現在パーソナルコンピュータで利用可能な様
々な3Dグラフィックスカードが利用可能になることに
より変貌した。今や、家庭またはオフィスにて、比較的
安価なコンピュータグラフィックスシステム上で刺激的
な3Dアニメーションおよびシミュレーションと接触す
ることが可能である。
Due to the complexity of computer graphics generation, just a few years ago, computer generated 3D graphics were largely limited to expensive dedicated flight simulators, high-end graphics workstations, and supercomputers. It had been. Although the public has seen some of the images produced by these computer systems in movies and expensive television advertisements, most of us have no direct contact with the computers that do the graphics generation. There wasn't. This has all changed with the availability of relatively inexpensive 3D graphics platforms, such as the Nintendo 64 (R), and various 3D graphics cards currently available in personal computers. It is now possible to come into contact with exciting 3D animations and simulations on relatively inexpensive computer graphics systems at home or in the office.

【0004】[0004]

【発明が解決しようとする課題】大部分の3Dグラフィ
ックスコンピュータシステムは、Z軸(シーン奥行き)
値を典型的に含むポリゴン頂点属性データに応答して、
表示用に画像をレンダリングし準備する。オブジェクト
を3Dシーン中におけるそれらの各奥行き(すなわち観
察者/カメラからの距離)に応じて適切にレンダリング
するために、Zバッファリングと呼ばれる周知の技術が
しばしば用いられる。大量の3D画像ポリゴン頂点属性
データの処理は非常に時間がかかり得るため、グラフィ
ックスシステムの設計者はしばしば、非表示画像データ
の処理を無くすためのポリゴン間引きおよびクリッピン
グ処理を用いる。この非表示画像データは典型的には、
「カメラ空間」と呼ばれる(「スクリーン空間」とも呼
ばれる)仮想的3D画像レンダリング空間内の、所定の
「クリッピング」平面によって区切られた視錐台の外側
にあるポリゴン頂点データである。例えば、カメラ(ビ
ューポート)位置より後ろにある3Dシーンまたはオブ
ジェクトの一部はレンダリングされる必要がなく、間引
きあるいはクリップされてもよい。同様に、シーン距離
において非常に遠くの(すなわちシーン奥行きあるいは
Z軸に沿ってカメラ/視点位置から遠くの)シーン部分
および3Dオブジェクトは、レンダリングされる必要が
ない。
Most 3D graphics computer systems have a Z-axis (scene depth).
In response to polygon vertex attribute data that typically contains values,
Render and prepare an image for display. A well-known technique called Z-buffering is often used to properly render objects according to their respective depth in the 3D scene (ie distance from the observer / camera). Since processing large amounts of 3D image polygon vertex attribute data can be very time consuming, graphics system designers often use polygon decimation and clipping processes to eliminate processing of hidden image data. This hidden image data is typically
Polygon vertex data outside the view frustum in a virtual 3D image rendering space called "camera space" (also called "screen space"), separated by a given "clipping" plane. For example, the portion of the 3D scene or object behind the camera (viewport) position need not be rendered and may be decimated or clipped. Similarly, scene parts and 3D objects that are very far in the scene distance (ie, far from the camera / viewpoint along the scene depth or Z axis) need not be rendered.

【0005】遠クリッピング面が近クリッピング面の奥
行きの何倍もになるような近クリッピング面および遠ク
リッピング面の両方を用いて、シーン奥行きクリッピン
グを行ってもよい。シーンデプスクリッピングはまた、
カメラ/視点位置(すなわちZ=0平面)かその後ろに
あるクリッピング面を用いて、あるいは近クリッピング
面を全く用いずに行われてもよい。ただし、本明細書に
おいて詳細には述べない様々な理由で、カメラ/視点位
置にある、あるいはカメラ/視点位置に非常に近い3D
オブジェクトのレンダリングは、小さなZ値が関係する
ことにより、オーバーフローおよびラッピングエラーな
どの特定のデータ処理問題を起こし得る。例えば、ジオ
メトリ投影の場合、カメラ(Z=0)面に「近すぎる」
頂点のw(均一座標スケールファクタ)値は非常に小さ
くなる。スクリーン空間変換動作中に頂点x、yおよび
z座標属性をそのような小さいw値で除算するとしばし
ば、精度およびオーバーフローの問題が起こる。特にw
=0の場合、得られるスケール値は無限大になる。近平
面に対してジオメトリクリッピングすることによりこの
ような問題を回避できる。すなわち、違反する頂点を持
つ各三角形を近平面によって部分に分解し、「近すぎ
る」方の半分を捨てる。従って、カメラ/視点位置より
前の近クリッピング面を用いてシーンデプスクリッピン
グを行う場合、近クリッピング面は、そのようなオーバ
ーフローまたはラッピングエラーが起こらないようにカ
メラ前方の十分遠くに位置されなければならない。
Scene depth clipping may be performed using both near and far clipping planes, where the far clipping plane is many times the depth of the near clipping plane. Scene depth clipping also
It may be done with a clipping plane at or behind the camera / viewpoint position (ie Z = 0 plane), or no near clipping plane at all. However, for various reasons not described in detail herein, a 3D image at or very close to the camera / viewpoint position is used.
The rendering of objects can cause certain data processing problems such as overflow and wrapping errors due to the small Z values involved. For example, in the case of geometry projection, "too close" to the camera (Z = 0) plane
The w (uniform coordinate scale factor) value of the vertex is very small. Dividing the vertex x, y and z coordinate attributes by such small w values during screen space transformation operations often results in accuracy and overflow issues. Especially w
When = 0, the obtained scale value becomes infinity. Geometry clipping on the near plane avoids this problem. That is, each triangle with the violating vertices is decomposed into parts by the near plane, and the "too close" half is discarded. Therefore, when performing scene depth clipping using a near clipping plane in front of the camera / viewpoint position, the near clipping plane must be located far enough in front of the camera to avoid such overflow or wrapping errors. .

【0006】あるいは、近クリッピング面を用いずに、
またはカメラ/視点位置かその後ろにあるクリッピング
面を用いてシーンデプスクリッピングが行われる場合
は、このようなオーバーフローおよびラッピング問題を
予防する責任を、カメラ位置とレンダリングされたオブ
ジェクトとの間の許容距離を規制することによってアプ
リケーションプログラムに負わせる必要がある。グラフ
ィックスシステムの設計者が過去に直面した1つの問題
は、表示された3D画像オブジェクトで観察者の平面
(すなわちカメラ/視点平面)に近づくもののポリゴン
のクリッピングに関連する、特定の望ましくない視覚的
効果をいかにして回避するかである。特に、グラフィッ
クスアーチストおよびゲーム開発者は、観察者の前に位
置するクリッピング面によってクリッピングされた3D
オブジェクトを見ることを嫌がる。これはオブジェクト
に穴を開けてしまい、オブジェクトが中空であるという
印象を与えるからである。1つの解決策は、近クリッピ
ング面が視点/カメラ平面(すなわちZ=0平面)に非
常に近いような6面からなる視錐台クリッピングボック
スを定義し、いかなる3Dアニメーション化オブジェク
トも近クリッピング面より視点/カメラ平面側に近く来
てはならないというアプリケーションプログラムルール
を立てることである。近クリッピング面が視点/カメラ
平面に非常に近く置かれることにより、視点/カメラ平
面のやや近くにレンダリングされる必要があるオブジェ
クトが、クリッピングの悪影響を受けるほど近くに来る
可能性が少なくなる。残念なことに、近クリッピング面
を視点/カメラ平面に非常に近く置くことは、遠クリッ
ピング面に向けてのZ奥行き精度を減少させる。このZ
精度の問題は、限られた数のZバッファビットしか奥行
き精度に利用できない場合に特に悪化する。Z値を表現
するためのビット数が少なくなるほど、精度問題が大き
くなる。
Alternatively, without using the near clipping plane,
Or if scene depth clipping is done using the camera / viewpoint or a clipping plane behind it, the responsibility to prevent such overflow and wrapping issues lies with the allowable distance between the camera position and the rendered object. Must be imposed on the application program by regulating One problem that designers of graphics systems have faced in the past is that certain undesired visual artifacts associated with clipping of polygons in the displayed 3D image object that approach the observer's plane (ie camera / view plane). How to avoid the effect. In particular, graphics artists and game developers may find 3D clipped by a clipping plane in front of the viewer.
I hate to see objects. This is because it makes a hole in the object, giving the impression that the object is hollow. One solution is to define a 6-sided view frustum clipping box such that the near clipping plane is very close to the viewpoint / camera plane (ie Z = 0 plane), and any 3D animated object The point is to establish an application program rule that you must not come close to the viewpoint / camera plane side. By placing the near clipping plane very close to the viewpoint / camera plane, objects that need to be rendered slightly closer to the viewpoint / camera plane are less likely to be too close to be adversely affected by clipping. Unfortunately, placing the near clipping plane very close to the viewpoint / camera plane reduces the Z depth accuracy towards the far clipping plane. This Z
The accuracy problem is exacerbated especially when only a limited number of Z-buffer bits are available for depth accuracy. The smaller the number of bits to represent the Z value, the greater the accuracy problem.

【0007】ハードウェアにおいてZ軸奥行き値を表現
するために例えば24ビット以上の多くのビットが利用
可能であるグラフィックスシステムにおいてZバッファ
リングを行う場合、Z値精度は問題ではないかもしれな
い。しかし、Z軸奥行き値を表すために利用可能なビッ
トがより少ない特定のシステムまたは実施形態において
は、十分なZ値精度の欠如により、Zバッファリング性
能および正確さが深刻な影響を受けてしまうかもしれな
い。例えば、特定の実施形態においては、記憶メモリ制
約に対応するためにデータ圧縮を行うことが望ましいこ
ともある。Zデータ圧縮が行われると、正確なZバッフ
ァリングを提供するためのZ精度の度合いが悪影響を受
け得る。
When performing Z-buffering in a graphics system where many bits are available, eg, 24 bits or more, to represent the Z-axis depth value in hardware, Z-value precision may not be an issue. However, in certain systems or embodiments where fewer bits are available to represent Z-axis depth values, lack of sufficient Z-value accuracy can severely impact Z-buffering performance and accuracy. It may be. For example, in certain embodiments it may be desirable to perform data compression to accommodate storage memory constraints. When Z-data compression is performed, the degree of Z-accuracy to provide accurate Z-buffering can be adversely affected.

【0008】[0008]

【課題を解決するための手段および発明の効果】本発明
はまた、3Dグラフィックスレンダリングシステムにお
いて、Z値奥行きデータが圧縮されなければならない場
合にZバッファリングを行う際に、Z値奥行き精度を確
保するための技術および構成を提供することにより、上
記の問題を解決する。
The present invention also provides a Z-value depth accuracy when performing Z-buffering in a 3D graphics rendering system when the Z-value depth data must be compressed. The above problems are solved by providing techniques and arrangements for ensuring.

【0009】本発明はまた、3Dグラフィックスレンダ
リングシステムにおいて、Z値奥行き精度を確保しなが
ら、オブジェクトが視点/カメラ平面に近くレンダリン
グされすぎたときに発生する望ましくない視覚的アーチ
ファクトを回避するために、Zクリッピング面を視点/
カメラ平面の非常に近くで用いることを可能にするため
の技術および構成を提供することにより、上記の問題を
解決する。
The present invention also provides a 3D graphics rendering system to ensure Z-value depth accuracy while avoiding undesirable visual artifacts that occur when an object is rendered too close to the viewpoint / camera plane. , View Z clipping plane /
The above problems are solved by providing techniques and configurations to allow use very close to the camera plane.

【0010】本発明はまた、3Dグラフィックスレンダ
リングシステムにおいて、1つの頂点に対応するZ奥行
き値が例えば23ビット以下を用いて表されるようなZ
バッファリングを行うための技術および構成を提供する
ことにより、上記の問題を解決する。
The present invention also provides a 3D graphics rendering system in which the Z depth value corresponding to one vertex is represented using, for example, 23 bits or less.
The above problems are solved by providing techniques and configurations for performing buffering.

【0011】より具体的には、本発明の一実施例におい
て、Z=0視点/カメラ(ビューポート)平面から所定
の範囲内におけるZ値クランピングを提供することによ
り、Zクランピング構成を用いて視覚的に重要なZ成分
の精度を改善する。この構成は、Z精度を確保しなが
ら、視点/カメラ平面に近くレンダリングされたオブジ
ェクトがクリッピングされたときに発生する望ましくな
い視覚的アーチファクトを回避するために、Zクリッピ
ング面を視点/カメラ平面の非常に近くで用いることを
可能にする。近クリッピング面「znear」は、Z=
0平面に非常に近いZ平面に設定され、遠クリッピング
面「zfar」は、Z=0平面から遠くのZ平面に設定
される。そしてクランピング面「znear2」を、Z
=znear*(1<<n)に位置するように設定す
る。ここでnは、znear2平面の位置をznear
平面に対して相対的に設定することによってそのシーン
のZ解像度を効果的に決定する整数である。znear
2平面とZ遠クリッピング面との間の範囲内にある全て
の画素について、Zバッファリングが行われる。zne
ar平面とznear2平面との間の範囲内にあるいか
なる画素も、そのZ値が例えばゼロに、あるいはクラン
ピング面のZ値にクランプされる。z<znearであ
る全ての画素について、ハードウェアジオメトリクリッ
ピングが行われる。
More specifically, in one embodiment of the present invention, a Z-clamping arrangement is used by providing Z-value clamping within a predetermined range from the Z = 0 viewpoint / camera (viewport) plane. To improve the accuracy of the visually important Z component. This configuration keeps the Z-precision while avoiding unwanted visual artifacts that occur when objects rendered close to the viewpoint / camera plane are clipped to the viewpoint / camera plane's extremes. It can be used near to. The near clipping plane “znear” is Z =
It is set to the Z plane very close to the 0 plane, and the far clipping plane “zfar” is set to the Z plane far from the Z = 0 plane. Then, set the clamping surface "znear2" to Z
= Znear * (1 << n). Here, n is the position on the znea2 plane.
An integer that effectively determines the Z resolution of the scene by setting it relative to the plane. zneaar
Z-buffering is done for all pixels in the range between the two planes and the Z-far clipping plane. zne
Any pixel lying in the range between the ar plane and the znear2 plane will have its Z value clamped to, for example, zero or the Z value of the clamping plane. Hardware geometry clipping is performed for all pixels where z <znear.

【0012】一実施例において、グラフィックスパイプ
ラインに設けられた従来のZ値圧縮回路が、Z値の所定
の範囲内におけるZクランピングを行うように拡張され
る。拡張された回路は、圧縮前にZ値を1ビット以上左
にシフトするための加算器および、ゼロ以外のシフトさ
れた最上位ビットをゼロにマスクアウトするためのゲー
トを含む。
In one embodiment, a conventional Z value compression circuit provided in the graphics pipeline is extended to perform Z clamping within a predetermined range of Z values. The extended circuit includes an adder to shift the Z value left one bit or more to the left before compression, and a gate to mask out the non-zero shifted most significant bits to zero.

【0013】[0013]

【発明の実施の形態】図1は、対話式3Dコンピュータ
グラフィックスシステム50の一例を示す。システム5
0は、対話式3Dビデオゲームを面白いステレオ音とと
もにプレイするために用いられ得る。また、様々な他の
応用例にも用いられ得る。
DETAILED DESCRIPTION OF THE INVENTION FIG. 1 illustrates an example of an interactive 3D computer graphics system 50. System 5
0 can be used to play interactive 3D video games with interesting stereo sounds. It may also be used in various other applications.

【0014】本例において、システム50は、3次元世
界のデジタル表現物あるいはモデルを、対話式にリアル
タイムで処理することが可能である。システム50は、
その世界のうちの一部または全部を、いかなる任意の視
点から表示することもできる。例えば、システム50
は、手持ちコントローラ52a、52bまたはその他の
入力デバイスからのリアルタイム入力に応答して、対話
式に視点を変更することができる。これにより、ゲーム
のプレーヤが、その世界の中または外側にいる人の目を
通じて、その世界を見ることが可能になる。システム5
0は、リアルタイム3D対話式表示を必要としない応用
例(例えば、2D表示生成および/または非対話式表
示)に用いられ得るが、非常に素早く高品質3D画像を
表示できる能力を、非常にリアルかつ刺激的なゲームプ
レイまたはその他のグラフィカルな対話を創出するため
に用いることができる。
In the present example, system 50 is capable of interactively processing real-time digital representations or models of a three-dimensional world. The system 50
Part or all of the world can be displayed from any arbitrary viewpoint. For example, system 50
Can interactively change viewpoints in response to real-time input from handheld controllers 52a, 52b or other input devices. This allows a player of the game to see the world through the eyes of people inside or outside the world. System 5
0 can be used for applications that do not require real-time 3D interactive display (eg, 2D display generation and / or non-interactive display), but it is very realistic for its ability to display high quality 3D images very quickly. And can be used to create exciting gameplay or other graphical interactions.

【0015】システム50を用いて、ビデオゲームまた
はその他のアプリケーションをプレイするために、ユー
ザは、まず、ケーブル58を両者の間に接続することに
よって、メインユニット54を自分のカラーテレビ56
またはその他のディスプレイデバイスに接続する。メイ
ンユニット54は、カラーテレビ56を制御するための
映像信号と音声信号との両方を生成する。映像信号は、
テレビスクリーン59上に表示される画像を制御するも
のであり、音声信号は、テレビのステレオスピーカ61
L、61Rを介して音として再生される。
To play a video game or other application using system 50, a user first connects main unit 54 to his color television 56 by connecting a cable 58 therebetween.
Or connect to other display devices. The main unit 54 generates both a video signal and an audio signal for controlling the color television 56. The video signal is
It controls the image displayed on the television screen 59, and the audio signal is the stereo speaker 61 of the television.
It is reproduced as a sound via L and 61R.

【0016】ユーザは、また、メインユニット54を電
源に接続する必要がある。この電源は、標準的な家庭用
電気コンセントに接続して家庭電流をメインユニット5
4に電力供給するために、適切なより低いDC電圧信号
に変換する従来のACアダプタ(図示せず)であり得
る。他の実施形態として、電池を用い得る。
The user also needs to connect the main unit 54 to a power source. This power supply connects to a standard household electrical outlet to supply household current to the main unit 5
4 may be a conventional AC adapter (not shown) that converts to a suitable lower DC voltage signal to power the 4. As another embodiment, a battery may be used.

【0017】ユーザは、メインユニット54を制御する
ためにハンドコントローラ52a、52bを用い得る。
コントロール60は、例えば、テレビ56上に表示され
たキャラクターが3D世界内で移動するべき方向(上
下、左右、近くあるいは遠く)を指定するために用い得
る。コントロール60は、また、他のアプリケーション
(例えば、メニュー選択、ポインタ/カーソル制御な
ど)のための入力を提供する。コントローラ52は、様
々な形態を取り得る。本例においては、図示したコント
ローラ52は、それぞれジョイスティック、プッシュボ
タンおよび/または方向スイッチとしてのコントロール
60を含む。コントローラ52は、ケーブルを介して、
あるいは電磁(例えば高周波または赤外線)波を介して
無線でメインユニット54に接続され得る。
A user may use the hand controllers 52a, 52b to control the main unit 54.
The control 60 may be used, for example, to specify the direction (up, down, left, right, near, or far) in which the character displayed on the television 56 should move within the 3D world. The control 60 also provides input for other applications (eg, menu selection, pointer / cursor control, etc.). The controller 52 can take various forms. In the present example, the illustrated controllers 52 each include controls 60 as joysticks, push buttons and / or direction switches. The controller 52 uses a cable to
Alternatively, it may be connected to the main unit 54 wirelessly via electromagnetic (eg radio frequency or infrared) waves.

【0018】ゲームなどのアプリケーションをプレイす
るためには、ユーザは自分がプレイしたいビデオゲーム
あるいはその他のアプリケーションを記憶している適切
な記憶媒体62を選択し、その記憶媒体をメインユニッ
ト54のスロット64に挿入する。記憶媒体62は、例
えば、専用にコード化されたおよび/または暗号化され
た光学および/または磁気ディスクであり得る。ユーザ
は、パワースイッチ66を操作してメインユニット54
をオンにし、記憶媒体62に記憶されたソフトウェアに
基づいて、メインユニットにビデオゲームあるいはその
他のアプリケーションの実行を開始させ得る。ユーザ
は、コントローラ52を操作してメインユニット54に
入力を供給し得る。例えば、コントロール60を操作す
ることにより、ゲームあるいはその他のアプリケーショ
ンを開始させ得る。その他のコントロール60を動かす
ことにより、アニメーション化されたキャラクターを異
なる方向に移動させたり、3D世界におけるユーザの視
点を変更することができる。記憶媒体62に記憶された
特定のソフトウェアに依存して、コントローラ52上の
様々なコントロール60は、異なる時刻において異なる
機能を実行することができる。
To play an application such as a game, the user selects an appropriate storage medium 62 that stores the video game or other application he or she wishes to play, and that storage medium is slot 64 of main unit 54. To insert. Storage medium 62 may be, for example, a specially coded 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 cause the main unit to start running a video game or other application based on the software stored in the storage medium 62. A user may operate the controller 52 to provide an input to the main unit 54. For example, manipulating control 60 may start a game or other application. By moving the other controls 60, the animated character can be moved in different directions and the user's viewpoint in the 3D world can be changed. Depending on the particular software stored on the storage medium 62, the various controls 60 on the controller 52 may perform different functions at different times.

【0019】システム全体の電子回路例 図2に、システム50の要素例のブロック図を示す。主
要な要素として以下のものを含む。 ・メインプロセッサ(CPU)110、 ・メインメモリ112、および ・グラフィックスおよび音声プロセッサ114
Example Electronic Circuitry of Entire System FIG. 2 shows a block diagram of example elements of system 50. The main elements include: A main processor (CPU) 110, a main memory 112, and a graphics and audio processor 114

【0020】本例において、メインプロセッサ110
(例えば、機能拡張型IBM Power PC75
0)は、手持ちコントローラ108(および/または他
の入力装置)からの入力を、グラフィックスおよびプロ
セッサ114を介して受け取る。メインプロセッサ11
0は、ユーザ入力に対話式に応答し、例えば、外部記憶
媒体62から光ディスクドライブなどの大容量記憶アク
セス装置106を介して供給されるビデオゲームあるい
はその他のプログラムを実行する。一例としてビデオゲ
ームプレイの場合、メインプロセッサ110は、様々な
対話式機能および制御機能に加えて、衝突検出およびア
ニメーション処理を実行することができる。
In this example, the main processor 110
(For example, function-enhancing IBM Power PC75
0) receives input from the handheld controller 108 (and / or other input device) via the graphics and processor 114. Main processor 11
0 interactively responds to user input and executes, for example, a video game or other program provided from external storage medium 62 via mass storage access device 106, such as an optical disk drive. For video game play, by way of example, main processor 110 may perform collision detection and animation processing in addition to various interactive and control functions.

【0021】本例において、メインプロセッサ110
は、3Dグラフィックスコマンドおよび音声コマンドを
生成し、これらをグラフィックスおよび音声プロセッサ
114に送る。グラフィックスおよび音声プロセッサ1
14は、これらのコマンドを処理することにより、ディ
スプレイ59上に面白い視覚画像を生成し、ステレオス
ピーカ61R、61Lまたはその他の適切な音声生成装
置上で面白いステレオ音を生成する。
In this example, the main processor 110
Generates 3D graphics commands and voice commands and sends them to the graphics and voice processor 114. Graphics and audio processor 1
14 processes these commands to produce an entertaining visual image on the display 59 and an entertaining stereo sound on the stereo speakers 61R, 61L or other suitable audio production device.

【0022】例示のシステム50は、グラフィックスお
よび音声プロセッサ114から画像信号を受け取って、
画像信号をコンピュータモニタまたは家庭用カラーテレ
ビ56などの標準的な表示装置上での表示に適したアナ
ログおよび/またはデジタル映像信号に変換するビデオ
符号化器120を有する。システム50はまた、デジタ
ル化された音声信号を圧縮および伸長し、また必要に応
じてデジタルおよびアナログの音声信号化フォーマット
間の変換を行う音声コーデック(圧縮器/伸長器)12
2を有する。音声コーデック122は、バッファ124
を介して音声入力を受け取り、これらをグラフィックス
および音声プロセッサ114に処理(例えば、プロセッ
サが生成する、および/または大容量記憶アクセス装置
106の音声ストリーミング出力を介して受け取る他の
音声信号との混合)のために供給することができる。本
例におけるグラフィックスおよび音声プロセッサ114
は、音声関連の情報を、音声タスクについて利用可能で
ある音声メモリ126中に記憶することができる。グラ
フィックスおよび音声プロセッサ114は、結果として
得られた音声出力信号を、伸長およびアナログ信号への
変換(例えばバッファアンプ128L、128Rを介し
て)のために音声コーデック122に供給することによ
り、スピーカ61L、61Rによって再生できるように
する。
The exemplary system 50 receives image signals from the graphics and audio processor 114,
It has a video encoder 120 for converting the image signal into an analog and / or digital video signal suitable for display on a standard display device such as a computer monitor or a home color television 56. The system 50 also compresses and decompresses the digitized audio signal, and optionally converts between digital and analog audio signaling formats, an audio codec (compressor / decompressor) 12.
Have two. The audio codec 122 has a buffer 124.
Audio input via the and process them into the graphics and audio processor 114 (eg, mixed with other audio signals generated by the processor and / or received via the audio streaming output of the mass storage access device 106). A) can be supplied for. Graphics and audio processor 114 in this example
Can store voice related information in the voice memory 126 available for voice tasks. The graphics and audio processor 114 supplies the resulting audio output signal to the audio codec 122 for decompression and conversion into analog signals (eg, via buffer amplifiers 128L, 128R), thereby causing the speaker 61L. , 61R.

【0023】グラフィックスおよび音声プロセッサ11
4は、システム50内に存在し得る様々な追加的なデバ
イスと連絡する能力を有する。例えば、大容量記憶アク
セス装置106および/またはその他の要素と連絡する
ために、パラレルデジタルバス130を用い得る。シリ
アル周辺バス132は、例えば、 ・プログラム可能なリードオンリーメモリおよび/また
はリアルタイムクロック134、 ・モデム136その他のネットワーク化インターフェー
ス(これは、プログラム命令および/またはデータをダ
ウンロードまたはアップロードすることができるインタ
ーネットあるいはその他のデジタルネットワークなどの
通信ネットワーク138に、システム50を接続し得
る)、および ・フラッシュメモリ140 を含む、様々な周辺デバイスまたはその他のデバイスと
連絡し得る。
Graphics and audio processor 11
4 has the ability to contact various additional devices that may be present in system 50. For example, parallel digital bus 130 may be used to communicate with mass storage access device 106 and / or other elements. The serial peripheral bus 132 may be, for example: a programmable read-only memory and / or a real-time clock 134; a modem 136 or other networked interface (which may be the Internet or a program or data may be downloaded or uploaded; The system 50 may be connected to a communications network 138, such as other digital networks), and may communicate with various peripheral devices or other devices, including flash memory 140.

【0024】追加的な拡張メモリ144(例えばメモリ
カード)やその他のデバイスと連絡するために、さらな
る外部シリアルバス142を用い得る。コネクタを用い
て様々なデバイスをバス130、132、142に接続
し得る。
A further external serial bus 142 may be used to communicate with additional expansion memory 144 (eg memory cards) and other devices. Various devices may be used to connect various devices to buses 130, 132, 142.

【0025】グラフィックスおよび音声プロセッサの例 図3は、グラフィックスおよび音声プロセッサ114の
一例のブロック図である。一例において、グラフィック
スおよび音声プロセッサ114は、単一チップのASI
C(アプリケーション専用集積回路)であり得る。本例
において、グラフィックスおよび音声プロセッサ114
は、以下を含む。 ・プロセッサインターフェース150 ・メモリインターフェース/コントローラ152 ・3Dグラフィックスプロセッサ154 ・音声デジタル信号プロセッサ(DSP)156 ・音声メモリインターフェース158 ・音声インターフェースおよびミキサ160 ・周辺コントローラ162、および ・ディスプレイコントローラ164
Example Graphics and Audio Processor FIG. 3 is a block diagram of an example graphics and audio processor 114. In one example, the graphics and audio processor 114 is a single chip ASI.
It may be C (application specific integrated circuit). In this example, the graphics and audio processor 114
Includes: Processor interface 150 memory interface / controller 152 3D graphics processor 154 audio digital signal processor (DSP) 156 audio memory interface 158 audio interface and mixer 160 peripheral controller 162 and display controller 164

【0026】3Dグラフィックスプロセッサ154は、
グラフィックス処理タスクを行う。音声デジタル信号プ
ロセッサ156は、音声処理タスクを行う。ディスプレ
イコントローラ164は、メインメモリ112からの画
像情報にアクセスし、これをディスプレイデバイス10
2上に表示するためにビデオ符号化器120に供給す
る。音声インターフェースおよびミキサ160は音声コ
ーデック122とインターフェースし、また異なるソー
スからの音声(例えば大容量記憶アクセス装置106か
らの音声ストリーミング、音声DSP156の出力、お
よび音声コーデック122を介して受け取られる外部音
声入力)を混合することができる。プロセッサインター
フェース150は、メインプロセッサ110とグラフィ
ックスおよび音声プロセッサ114との間のデータおよ
び制御インターフェースを提供する。
The 3D graphics processor 154 is
Perform graphics processing tasks. Audio digital signal processor 156 performs audio processing tasks. The display controller 164 accesses the image information from the main memory 112 and sends it to the display device 10.
2 to the video encoder 120 for display. Voice interface and mixer 160 interfaces with voice codec 122 and also voice from different sources (eg voice streaming from mass storage access device 106, output of voice DSP 156, and external voice input received via voice codec 122). Can be mixed. Processor interface 150 provides a data and control interface between main processor 110 and graphics and audio processor 114.

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

【0028】グラフィックスパイプラインの例 図4は、3Dグラフィックスプロセッサ154の一例の
より詳細な図を示す。3Dグラフィックスプロセッサ1
54は、特に、コマンドプロセッサ200および3Dグ
ラフィックスパイプライン180を含む。メインプロセ
ッサ110は、データのストリーム(例えば、グラフィ
ックスコマンドストリームおよび表示リスト)を、コマ
ンドプロセッサ200に通信する。メインプロセッサ1
10は、メモリ待ち時間を最小にするために2レベルキ
ャッシュ115を有し、また、グラフィックスおよび音
声プロセッサ114を対象とした非キャッシュデータス
トリーム用の書き込み収集バッファ111を有してい
る。書き込み収集バッファ111は、部分キャッシュラ
インを集めて完全なキャッシュラインにし、データを一
度につき1キャッシュラインずつグラフィックスおよび
音声プロセッサ114に送り出すことにより、バス利用
率を最大にする。
Example Graphics Pipeline FIG. 4 shows a more detailed view of an example 3D graphics processor 154. 3D graphics processor 1
54 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 and display list) to command processor 200. Main processor 1
The 10 has a two-level cache 115 to minimize memory latency and also has a write collection buffer 111 for non-cached data streams intended for the graphics and audio processor 114. The write collection buffer 111 maximizes bus utilization by collecting partial cache lines into complete cache lines and sending data one cache line at a time to the graphics and audio processor 114.

【0029】コマンドプロセッサ200は、メインプロ
セッサ110から表示コマンドを受け取って解析する
(これらを処理するために必要な任意の追加的なデータ
は、共有メモリ112から得る)。コマンドプロセッサ
200は、頂点コマンドのストリームを、2Dおよび/
または3D処理およびレンダリングのためにグラフィッ
クスパイプライン180に供給する。グラフィックスパ
イプライン180は、これらのコマンドに基づいて画像
を生成する。得られた画像情報は、ディスプレイコント
ローラ/ビデオインターフェースユニット164(パイ
プライン180のフレームバッファ出力をディスプレイ
102上に表示する)によるアクセスのために、メイン
メモリ112に転送され得る。
The command processor 200 receives and parses the display commands from the main processor 110 (any additional data needed to process them comes from the shared memory 112). The command processor 200 processes the stream of vertex commands in 2D and / or
Or feed the graphics pipeline 180 for 3D processing and rendering. The graphics pipeline 180 generates an image based on these commands. The resulting image information may be transferred to main memory 112 for access by display controller / video interface unit 164 (displaying the frame buffer output of pipeline 180 on display 102).

【0030】図5は、グラフィックスプロセッサ154
の論理フロー図である。メインプロセッサ110は、グ
ラフィックスコマンドストリーム210、表示リスト2
12、および頂点配列214をメインメモリ112に格
納し得、バスインターフェース150を介してコマンド
プロセッサ200にポインタを渡し得る。メインプロセ
ッサ110は、メインメモリ110内に割り当てた1つ
以上のグラフィックス先入れ先出し(FIFO)バッフ
ァ210に、グラフィックスコマンドを格納する。コマ
ンドプロセッサ200は、 ・同期/フロー制御および負荷バランスを取るためグラ
フィックスコマンドを受け取りバッファリングするオン
チップFIFOメモリバッファ216を介して、メイン
メモリ112からのコマンドストリーム、 ・オンチップコールFIFOメモリバッファ218を介
して、メインメモリ112からの表示リスト212、お
よび ・頂点キャッシュ220を介して、コマンドストリーム
からおよび/またはメインメモリ112中の頂点配列2
14からの頂点属性)を取り込む。
FIG. 5 illustrates the graphics processor 154.
FIG. The main processor 110 uses the graphics command stream 210, the display list 2
12, and the vertex array 214 may be stored in the main memory 112 and a pointer may be passed to the command processor 200 via the bus interface 150. The main processor 110 stores graphics commands in one or more graphics first in first out (FIFO) buffers 210 allocated in the main memory 110. The command processor 200 includes: A command stream from the main memory 112 via an on-chip FIFO memory buffer 216 that receives and buffers graphics commands for synchronization / flow control and load balancing, an on-chip call FIFO memory buffer 218. Display list 212 from main memory 112, and via vertex cache 220, from the command stream and / or vertex array 2 in main memory 112.
Take in the vertex attributes from 14).

【0031】コマンドプロセッサ200は、属性タイプ
を浮動小数点フォーマットに変換し、得られた完全な頂
点ポリゴンデータをレンダリング/ラスタライゼーショ
ンのためにグラフィックスパイプライン180に渡すコ
マンド処理動作200aを行う。プログラム可能なメモ
リ調停回路130(図4を参照)は、共有メインメモリ
112へのアクセスを、グラフィックスパイプライン1
80、コマンドプロセッサ200、およびディスプレイ
コントローラ/ビデオインターフェースユニット164
間で調停する。
The command processor 200 performs a command processing operation 200a that converts the attribute type to floating point format and passes the resulting complete vertex polygon data to the graphics pipeline 180 for rendering / rasterization. Programmable memory arbitration circuit 130 (see FIG. 4) provides access to shared main memory 112 to graphics pipeline 1
80, command processor 200, and display controller / video interface unit 164
Arbitrate between.

【0032】図4は、グラフィックスパイプライン18
0が以下を含み得ることを示している。 ・変換ユニット300 ・セットアップ/ラスタライザ400 ・テクスチャユニット500 ・テクスチャ環境ユニット600、および ・画素エンジン700
FIG. 4 illustrates the graphics pipeline 18
Indicates that 0 can include: Conversion unit 300 setup / rasterizer 400 texture unit 500 texture environment unit 600, and pixel engine 700

【0033】変換ユニット300は、様々な2Dおよび
3D変換ならびにその他の動作300aを行う(図5を
参照)。変換ユニット300は、変換処理300aで用
いられる行列を格納するための、1つ以上のマトリック
スメモリ300bを有し得る。変換ユニット300は、
受け取った図形を頂点毎にオブジェクト空間からスクリ
ーン空間に変換し、また、受け取ったテクスチャ座標を
変換し投影テクスチャ座標を生成する(300c)。変
換ユニット300は、ポリゴンクリッピング/間引き3
00dを行う。やはり変換ユニット300bによって行
われるライティング処理300eは、一実施例において
最高8個の独立のライティングまでに対し、頂点毎のラ
イティング演算を提供する。変換ユニット300は、ま
た、エンボススタイルのバンプマッピング効果のための
テクスチャ座標生成(300c)を行い得る。また、本
明細書においてより詳細に後述するように、変換ユニッ
ト300は奥行き(Z値)圧縮およびクランピングを行
う。
The conversion unit 300 performs various 2D and 3D conversions and other operations 300a (see FIG. 5). The transformation unit 300 may have one or more matrix memories 300b for storing the matrices used in the transformation process 300a. The conversion unit 300 is
The received graphic is converted from the object space to the screen space for each vertex, and the received texture coordinates are converted to generate projected texture coordinates (300c). The conversion unit 300 uses polygon clipping / thinning 3
00d. Lighting process 300e, also performed by transform unit 300b, provides per-vertex lighting operations for up to eight independent lights in one embodiment. Transform unit 300 may also perform texture coordinate generation (300c) for embossed style bump mapping effects. The transform unit 300 also performs depth (Z-value) compression and clamping, as described in more detail below in this specification.

【0034】セットアップ/ラスタライザ400は、変
換ユニット300から頂点データを受け取り、トライア
ングルセットアップ情報を、境界のラスタライズ、テク
スチャ座標のラスタライズおよび色のラスタライズを行
う1つ以上のラスタライザユニット(400b)に送る
セットアップユニットを有する。
The setup / rasterizer 400 receives the vertex data from the transformation unit 300 and sends the triangle setup information to one or more rasterizer units (400b) which perform boundary rasterization, texture coordinate rasterization and color rasterization. Have.

【0035】テクスチャユニット500(オンチップテ
クスチャメモリ(TMEM502)を含み得る)は、テ
クスチャリングに関連する様々な処理を行う。これに
は、例えば、 ・メインメモリ112からのテクスチャ504の取り出
し、 ・例えば、マルチテクスチャ処理、キャッシュ後テクス
チャ伸長、テクスチャフィルタリング、エンボス化、投
影テクスチャの使用を介した陰影および明暗、ならびに
アルファ透明度および奥行きをともなうBLITを含む
テクスチャ処理(500a)、 ・バンプマッピング、擬似テクスチャ、およびテクスチ
ャタイル化効果(500b)についてのテクスチャ座標
変位の演算のためのバンプマップ処理、および ・間接テクスチャ処理(500c)が含まれる。
The texture unit 500 (which may include an on-chip texture memory (TMEM 502)) performs various processing related to texturing. This includes, for example: -Retrieving texture 504 from main memory 112-For example, multi-texturing, post-cache texture decompression, texture filtering, embossing, shadows and shades through the use of projected textures, and alpha transparency and Texture processing including BLIT with depth (500a), bump mapping, pseudo texture, and bump map processing for calculation of texture coordinate displacement for texture tiling effect (500b), and indirect texture processing (500c) included.

【0036】テクスチャユニット500は、通常(非間
接的)および間接的テクスチャルックアップ動作の両方
を用いて、テクスチャ処理を行う。通常および間接的テ
クスチャルックアップ動作を行うための例示のグラフィ
ックスパイプライン回路ならびに手順のより詳細な記載
が、「Method And ApparatusFo
r Direct And Indirect Tex
ture Processing In A Grap
hics System」の名称を有する同一譲受人に
譲渡された同時係属中の特許出願シリアルNo.09/
722,382(弁理士受付番号723−961)、お
よび2000年8月23日付け出願に係るその対応仮出
願シリアルNo.60/226,891に開示されてい
る。これらの両方を本明細書において参考のため援用す
る。
Texture unit 500 performs texture processing using both normal (non-indirect) and indirect texture lookup operations. For a more detailed description of exemplary graphics pipeline circuits and procedures for performing normal and indirect texture lookup operations, see "Method And Apparatus Attributes Fo.
r Direct And Indirect Tex
true Processing In A Grap
co-pending patent application Serial No. assigned to the same assignee under the name "Hics Systems". 09 /
722, 382 (Patent Attorney's reception number 723-961), and its corresponding provisional application serial number No. related to the application dated August 23, 2000. 60 / 226,891. Both of these are incorporated herein by reference.

【0037】テクスチャユニット500は、フィルタリ
ングされたテクスチャ値を、テクスチャ環境処理のため
(600a)にテクスチャ環境ユニット600に出力す
る。テクスチャ環境ユニット600は、ポリゴンおよび
テクスチャ色/アルファ/奥行きをブレンドし、また、
逆レンジ型フォグ効果を達成するためのテクスチャフォ
グ処理(600b)を行い得る。テクスチャ環境ユニッ
ト600は、例えば色/アルファ変調、エンボス化、詳
細テクスチャリング、テクスチャスワッピング、クラン
ピング、および奥行きブレンディングに基づき、様々な
他の面白い環境関連の機能を行うためのステージを複数
提供し得る。テクスチャ環境ユニット600はまた、ハ
ードウェア内においてテクスチャを1回のパスで組み合
わせる(例えば減算)ことができる。テクスチャ環境ユ
ニット600に関するさらなる詳細については、「Re
circulating Shade Tree Bl
ender for a Graphics Syst
em」の名称を有する同一譲受人に譲渡された出願シリ
アルNo.09/722,367(弁理士受付番号72
3−968)および2000年8月23日付け出願に係
るその対応仮出願シリアルNo.60/226,888
を参照のこと。これらの両方を本明細書において参考の
ため援用する。
Texture unit 500 outputs the filtered texture values to texture environment unit 600 for texture environment processing (600a). The texture environment unit 600 blends polygons and texture colors / alpha / depth, and
Texture fog processing (600b) to achieve the reverse range type fog effect may be performed. Texture environment unit 600 may provide multiple stages for performing various other interesting environment-related functions based on, for example, color / alpha modulation, embossing, detailed texturing, texture swapping, clamping, and depth blending. . Texture environment unit 600 can also combine (eg, subtract) textures in hardware in a single pass. For more details on the texture environment unit 600, see “Re
circulating Shade Tree Bl
ender for a Graphics System
application serial No. assigned to the same assignee with the name "em". 09/722, 367 (patent attorney reception number 72)
3-968) and its corresponding provisional application serial no. 60 / 226,888
checking ... Both of these are incorporated herein by reference.

【0038】ピクセルエンジン700は、奥行き(z)
比較(700a)およびピクセルブレンディング(70
0b)を行う。本例において、ピクセルエンジン700
は、データを埋め込み(オンチップ)フレームバッファ
メモリ702に格納する。グラフィックスパイプライン
180は、フレームバッファおよび/またはテクスチャ
情報をローカルに格納するための1つ以上の埋め込みD
RAMメモリ702を有し得る。z比較700a'は、
また、現在有効なレンダリングモードに依存して、グラ
フィックスパイプライン180中のより早い段階で行わ
れ得る(例えば、アルファブレンディングが必要でなけ
れば、z比較は、より早くに行われ得る)。ピクセルエ
ンジン700は、オンチップフレームバッファ702を
ディスプレイ/ビデオインターフェースユニット164
によるアクセスのためにメインメモリ112に周期的に
書き込むコピー動作700cを含む。このコピー動作7
00cは、また、動的テクスチャ合成効果を得るため
に、埋め込みフレームバッファ702の内容をメインメ
モリ112内のテクスチャにコピーするためにも用いら
れ得る。
The pixel engine 700 has a depth (z)
Comparison (700a) and pixel blending (70
0b). In this example, the pixel engine 700
Stores the data in the embedded (on-chip) frame buffer memory 702. Graphics pipeline 180 may include one or more embedded Ds for storing frame buffer and / or texture information locally.
A RAM memory 702 may be included. z comparison 700a '
Also, depending on the rendering mode currently in effect, it may occur earlier in the graphics pipeline 180 (eg, z-comparison may occur earlier if alpha blending is not needed). The pixel engine 700 includes an on-chip frame buffer 702 and a display / video interface unit 164.
A copy operation 700c that periodically writes to the main memory 112 for access by the. This copy operation 7
00c may also be used to copy the contents of the embedded frame buffer 702 to a texture in main memory 112 to obtain a dynamic texture compositing effect.

【0039】このグラフィックスシステム例において、
コピーアウト動作中に、アンチエイリアシングおよびそ
の他のフィルタリングも行うことができる。アンチエイ
リアシングに関するさらなる詳細については、いずれも
「Method And Apparatus For
Anti−Aliasing In A Graph
ics System」の名称を有する、2000年8
月23日付け出願に係る仮出願No.60/226,9
00ならびに2000年11月28日付け出願に係るそ
の対応実用特許出願No.09/726,226(弁理
士受付番号723−964)を参照のこと。これらの両
方を本明細書において参考のため援用する。
In this example graphics system,
Antialiasing and other filtering can also be done during the copyout operation. For more information on anti-aliasing, see “Method And Apparatus For For.
Anti-Aliasing In A Graph
2000, with the name "ics System"
Provisional application No. related to the application dated March 23. 60/226, 9
00 and its corresponding utility patent application Nos. 09 / 726,226 (patent attorney reception number 723-964). Both of these are incorporated herein by reference.

【0040】グラフィックスパイプライン180のフレ
ームバッファ出力(最終的には、メインメモリ112に
格納される)は、各フレームごとにディスプレイ/ビデ
オインターフェースユニット164によって読み出され
る。ディスプレイコントローラ/ビデオインターフェー
スユニット164は、ディスプレイ102上に表示する
ためのデジタルRGB画素値を提供する。
The frame buffer output of graphics pipeline 180 (finally stored in main memory 112) is read by display / video interface unit 164 for each frame. Display controller / video interface unit 164 provides digital RGB pixel values for display on display 102.

【0041】Zクランピング構成の例 Z=0である視点/カメラ(ビューポート)平面の前方
の所定の範囲内にある画素のZ値をゼロにクランプする
ことにより、Zクランピング構成を用いてレンダリング
されたシーン要素の視覚的に重要なZ軸(奥行き)属性
の精度を改善する。図6は、スクリーン空間で見た、本
発明のZ値クランピング構成の一例を示す。Zクリッピ
ング面201「znear」は、Z=0視点/カメラ平
面202の非常に近くに定義されることにより、オブジ
ェクトが視点/カメラ平面に近くレンダリングされすぎ
たときに発生する望ましくない視覚的アーチファクトを
回避する。クランピング平面203「znear2」
は、znear2がznear*(1<<n)に等しい
Z平面に位置するように設定され、ここでnは、zne
ar2平面の位置をznear平面に対して相対的に設
定することによってそのシーンのZ解像度を効果的に決
定する整数である。また、遠クリッピング面204「z
far」がZ=0平面から遠くのZ平面に設定される。
znear2平面とZ遠クリッピング面との間の範囲内
にある全ての画素について、Zバッファリングが行われ
る。znear平面とznear2平面との間の範囲内
にあるいかなる画素も、そのZ値が例えばゼロに、(あ
るいはznear2クランピング面のZ値などの最小の
Z値)にクランプされ、z<znearである全ての画
素について、幾何学図形に対して通常の(norma
l)クリッピングが行われる。
Example of Z-Clamping Configuration A Z-clamping configuration is used by clamping the Z value of pixels within a predetermined range in front of the viewpoint / camera (viewport) plane where Z = 0 to zero. Improves the accuracy of visually significant Z-axis (depth) attributes of rendered scene elements. FIG. 6 shows an example of the Z-value clamping arrangement of the present invention as viewed in screen space. The Z clipping plane 201 "znear" is defined very close to the Z = 0 viewpoint / camera plane 202 to prevent unwanted visual artifacts that occur when an object is rendered too close to the viewpoint / camera plane. To avoid. Clamping plane 203 "znear2"
Is set such that znear2 lies in the Z plane equal to znear * (1 << n), where n is zne
An integer that effectively determines the Z resolution of the scene by setting the position of the ar2 plane relative to the zneare plane. Also, the far clipping plane 204 "z
far "is set to the Z plane far from the Z = 0 plane.
Z-buffering is done for all pixels in the range between the zneare2 plane and the Z-far clipping plane. Any pixel lying in the range between the znear and znear2 planes has its Z value clamped to, for example, zero (or the minimum Z value, such as the Z value of the znear2 clamping surface), and z <znear. For all pixels, the normal (norma)
l) Clipping is performed.

【0042】図7は、グラフィックス処理システムにお
いてZバッファリングを実施する際に改善されたZ精度
を得るための、概要処理ステップ301のセットの一例
のフローチャートを示す。「Z」奥行き値が、ブロック
302に示すように、ポリゴン頂点属性として汎用的に
演算されるかあるいはグラフィックスレンダリングシス
テムに供給される。本発明のZクランピング方法におい
て、ブロック304に示すように、クリッピング平面
「znear」がZ=0平面の非常に近くのZ軸平面に
設定され、別のクリッピング平面「zfar」がZ=0
平面から遠くのZ軸位置に設定される。また、ブロック
306に示すように、クランピング平面「znear
2」が、Z=znear2=znear*(1<<n)
であるZ軸平面に位置するように設定され、ここでn
は、znear2平面の位置をznear平面に対して
相対的に設定することによってそのシーンのZ解像度を
効果的に決定する整数である(すなわち、znear2
平面がznear平面から遠くに位置するほど、レンダ
リングされたシーンのうちでznear2平面よりもカ
メラ/視点平面から遠い部分について得られるZバッフ
ァリング解像度は大きくなる)。ブロック308に示す
ように、znear2<Z<zfarであるZ値を有す
る全ての画素に対して通常の(normal)Zバッフ
ァリングが行われる。ブロック310に示すように、z
nearおよびznear2クランピング面に等しいま
たはその間にあるZ値を有する(すなわちznear≦
Z≦znear2)画素については、Z値がクランプさ
れ(例えばゼロあるいはznear2平面の値などの最
小の値にクランプされ)、対応する画素がフレームバッ
ファに最初から最後に向かう順序で書き込まれる。ブロ
ック312に示すように、Z<znearである画素に
ついて従来のジオメトリクリッピングが行われる。本グ
ラフィックスパイプライン実施例において、以下のハー
ドウェア実施例に説明されるように、図7のステップの
大部分は変換ユニット300内のクリッピングロジック
および拡張Z圧縮ロジックによって実行される。
FIG. 7 shows a flow chart of an example set of summary processing steps 301 for obtaining improved Z accuracy when performing Z buffering in a graphics processing system. The "Z" depth value is either generally computed as a polygon vertex attribute or provided to the graphics rendering system, as shown in block 302. In the Z-clamping method of the present invention, the clipping plane "znear" is set to the Z-axis plane very close to the Z = 0 plane and another clipping plane "zfar" is set to Z = 0, as shown in block 304.
The Z-axis position is set far from the plane. Also, as indicated by block 306, the clamping plane "znear
2 ”is Z = znear2 = znear * (1 << n)
Is set to lie in the Z-axis plane, where n
Is an integer that effectively determines the Z resolution of the scene by setting the position of the znear2 plane relative to the znear plane (ie, znear2
The further away the plane is from the zneare plane, the greater the Z buffering resolution obtained for portions of the rendered scene farther from the camera / view plane than the zneare2 plane). As shown in block 308, normal Z buffering is performed for all pixels with Z values where znear2 <Z <zfar. As shown in block 310, z
with a Z value equal to or between the near and znear2 clamping surfaces (ie zneaar ≤
For Z ≦ znear2) pixels, the Z value is clamped (eg, to zero or the smallest value such as the value in the znear2 plane) and the corresponding pixels are written to the frame buffer in order from first to last. As shown in block 312, conventional geometry clipping is performed on pixels where Z <znear. In this graphics pipeline embodiment, most of the steps of FIG. 7 are performed by clipping logic and expanded Z compression logic in transform unit 300, as described in the hardware embodiments below.

【0043】ハードウェア実施例 グラフィックスパイプライン例180において、変換ユ
ニット300は、クリッピング面ロジック回路およびZ
圧縮ロジック回路の両方を有している。アンチエイリア
ス化された画素の処理は、限られたサイズのZバッファ
(すなわち埋め込みフレームバッファ702)により多
くのデータを格納することを必要とするため、この実施
例においてZ値圧縮はフルシーンアンチエイリアシング
が許可されたときにのみ行われる。このようなZ圧縮回
路は通常、演算された24ビットZ属性値を16ビット
値に圧縮するように動作する。図8は、まったくZ値の
クランピングなしで、Z圧縮を得るために用いられ得る
ハードウェアロジック回路例を示す。このZ圧縮回路例
は本質的に、優先符号化器320および、4個の24ビ
ットZ値に圧縮を行ってこれらを16ビット値に変換す
るシフタ322を備えている。
Hardware Implementation In the example graphics pipeline 180, the transform unit 300 includes a clipping plane logic circuit and a Z plane.
It has both compression logic circuits. Since processing anti-aliased pixels requires storing more data in a Z buffer of limited size (ie, embedded frame buffer 702), Z value compression in this embodiment is less than full scene anti-aliasing. Only done when allowed. Such Z compression circuits typically operate to compress the calculated 24-bit Z attribute value into a 16-bit value. FIG. 8 shows an example hardware logic circuit that can be used to obtain Z compression without any Z value clamping. This example Z-compression circuit essentially comprises a priority encoder 320 and a shifter 322 for compressing the four 24-bit Z-values and converting them into 16-bit values.

【0044】このグラフィックスパイプライン180の
実施例において、圧縮アルゴリズムが、一種の逆浮動小
数点符号化を行う。従来の浮動小数点表記では分解能の
大部分を数値スケールの下端側に向かってクランプする
が、スクリーン空間Zの性質上、分解能の大部分を数値
スケールの上端側に提供することが必要とされる。これ
を実現するために、3つの圧縮方式が用いられる。3つ
の方式の選択は、レンダリングされたシーンに用いられ
た特定の近−対−遠比に基づいてなされる。例えば、正
射影または小さな遠−対−近比を用いるとき、入力Z値
から低い方の8ビットが単純に除去されるような、直接
的線形圧縮マッピングが用いられる。中程度の遠−対−
近比については、14e2表記を用いた16ビットへの
浮動小数点変換を用いて、24ビットのZ値を表現す
る。この形の圧縮により、近平面において有効15ビッ
トの解像度ビットおよび遠平面において17ビットの解
像度が得られる。高い遠−対−近比については、13e
3表記を用いた16ビットへの浮動小数点変換を用い
て、24ビットのZ値を表現する。これは、近平面にお
いて14ビットおよび遠平面において20ビットの有効
解像度が得られる。
In this graphics pipeline 180 embodiment, the compression algorithm performs a type of inverse floating point encoding. While conventional floating point notation clamps most of the resolution towards the bottom of the numerical scale, the nature of screen space Z requires that most of the resolution be provided at the top of the numerical scale. To achieve this, three compression schemes are used. The choice of three schemes is made based on the particular near-to-far ratio used in the rendered scene. For example, when using orthographic or small far-to-near ratios, a direct linear compression mapping is used such that the lower 8 bits are simply removed from the input Z value. Moderate distance-pair-
For near ratios, floating point conversion to 16 bits using 14e2 notation is used to represent 24-bit Z values. This form of compression results in an effective 15-bit resolution bit in the near plane and a 17-bit resolution in the far plane. 13e for high far-to-near ratios
A 24-bit Z value is represented using floating point conversion to 16 bits using 3 notation. This gives an effective resolution of 14 bits in the near plane and 20 bits in the far plane.

【0045】上述の圧縮に対する浮動小数点変換アプロ
ーチの1つの直接的かつ単純な実施形態は、指数および
シフト値を選択し、シフト値の分だけ入力値をシフト
し、高次ビット位置においてこの指数を追加することを
包含する。本実施例において、以下の表に示すように、
入力Z値の上位ビットが含まれる特定の値の範囲を検出
することにより、指数およびシフト値が選択される。1
4e2表記圧縮の場合
One direct and simple embodiment of the floating point conversion approach to compression described above is to select an exponent and a shift value, shift the input value by the shift value, and place this exponent in the higher order bit positions. Including adding. In this example, as shown in the table below,
The exponent and shift value are selected by detecting a particular value range that includes the upper bits of the input Z value. 1
In case of 4e2 notation compression

【表1】 13e3表記圧縮の場合[Table 1] 13e3 notation compression

【表2】 [Table 2]

【0046】本例において変換ユニット300は、Z近
クリッピング面およびZ遠クリッピング面(ならびに適
切なXおよびY軸クリッピング面)をプログラマブルに
設定し提供するために、従来のハードウェアクリッピン
グ回路を用いてもよい。Zクランピング構成を実現しZ
クランピング平面を上述のように設定するために、変換
ユニット300は図9に示す拡張Z圧縮ロジック回路を
用いる。Z値圧縮に加えて、この回路は、上述の2つの
浮動小数点変換圧縮方式のうちの1つを実現する前に、
入力Z値の最上位ビットから1つ以上の左シフトを行
う。図9に示すようにこの拡張回路構成は、優先符号化
器320、4ビット(またはそれ以下)加算器324お
よびシフタ324、ならびに最上位Z値ビットをマスク
するためにANDゲート(図示せず)を用いる。予め圧
縮された入力Z値の左シフトはプログラマブル加算器3
24によって決定され、ここでnは実行されるべき左シ
フトの回数を表す。
In this example, the transform unit 300 uses conventional hardware clipping circuitry to programmably set and provide the Z near clipping plane and the Z far clipping plane (as well as the appropriate X and Y axis clipping planes). Good. Achieves Z clamping configuration and Z
In order to set the clamping plane as described above, the conversion unit 300 uses the extended Z compression logic circuit shown in FIG. In addition to Z-value compression, this circuit is available before implementing one of the two floating point transform compression schemes described above.
Perform one or more left shifts from the most significant bit of the input Z value. As shown in FIG. 9, this extended circuit configuration includes a priority encoder 320, a 4-bit (or less) adder 324 and a shifter 324, and an AND gate (not shown) for masking the most significant Z value bit. To use. The left shift of the precompressed input Z value is the programmable adder 3
24, where n represents the number of left shifts to be performed.

【0047】他の互換性のある実施例 上述のシステム要素50のうちのいくつかは、上述の家
庭用ビデオゲームコンソール構成以外としても実施可能
である。例えば、システム50用に書かれたグラフィッ
クスアプリケーションまたはその他のソフトウェアを、
システム50をエミュレートするなどして互換性を有す
る異なる構成を持ったプラットフォーム上で実行するこ
とができる。もしその別のプラットフォームがシステム
50のハードウェアおよびソフトウェアリソースの一部
または全部をうまくエミュレート、シミュレートおよび
/または提供することができれば、その別のプラットフ
ォームは、ソフトウェアを首尾よく実行することができ
る。
Other Compatible Embodiments Some of the system elements 50 described above may be implemented other than the home video game console configurations described above. For example, a graphics application or other software written for system 50
The system 50 can be emulated or otherwise run on platforms with different compatible configurations. If the other platform can successfully emulate, simulate and / or provide some or all of the hardware and software resources of system 50, the other platform can successfully execute the software. .

【0048】一例として、エミュレータは、システム5
0のハードウェアおよび/またはソフトウェア構成(プ
ラットフォーム)とは異なるハードウェアおよび/また
はソフトウェア構成(プラットフォーム)を提供し得
る。このエミュレータシステムは、アプリケーションソ
フトウェアが書かれたシステムのハードウェアおよび/
またはソフトウェア要素の一部または全部をエミュレー
トまたはシミュレートする、ソフトウェアおよび/また
はハードウェア要素を有し得る。例えば、エミュレータ
システムは、システム50のハードウェアおよび/また
はファームウェアをシミュレートするソフトウェアエミ
ュレータプログラムを実行するパーソナルコンピュータ
などの汎用のデジタルコンピュータからなっていてもよ
い。
As an example, the emulator is the system 5
There may be different hardware and / or software configurations (platforms) than the zero hardware and / or software configurations (platforms). This emulator system consists of system hardware and / or application software
Or it may have software and / or hardware elements that emulate or simulate some or all of the software elements. For example, the emulator system may comprise a general purpose digital computer such as a personal computer running a software emulator program that simulates the hardware and / or firmware of system 50.

【0049】汎用デジタルコンピュータのいくつか(例
えばIBMまたはマッキントッシュのパーソナルコンピ
ュータおよび互換機)は現在、DirectXまたはそ
の他の標準的な3DグラフィックスコマンドAPIと適
合する3Dグラフィックスパイプラインを提供する3D
グラフィックスカードを備えている。また、標準的な音
声コマンドのセットに基づいて高品質なステレオ音を提
供するステレオサウンドカードを備えている場合もあ
る。このようなマルチメディア−ハードウェアを備えた
パーソナルコンピュータがエミュレータソフトウェアを
実行すれば、システム50のグラフィックスおよびサウ
ンド性能に匹敵する十分な能力を有し得る。エミュレー
タソフトウェアは、ゲームプログラマがゲームソフトウ
ェアを書いた対象である家庭用ビデオゲームコンソール
プラットフォームの処理、3Dグラフィックス、音声、
周辺およびその他の機能をシミュレートするように、パ
ーソナルコンピュータプラットフォーム上のハードウェ
アリソースを制御する。
Some general purpose digital computers (eg, IBM or Macintosh personal computers and compatibles) currently provide 3D graphics pipelines that are compatible with DirectX or other standard 3D graphics command APIs.
Has a graphics card. It may also have a stereo sound card that provides high quality stereo sound based on a standard set of voice commands. A personal computer equipped with such multimedia-hardware, if running emulator software, may have sufficient capabilities to match the graphics and sound capabilities of system 50. The emulator software processes the home video game console platform on which the game programmer wrote the game software, 3D graphics, audio,
Control hardware resources on a personal computer platform to simulate peripherals and other functions.

【0050】図10は、ホストプラットフォーム120
1、エミュレータ要素1303、および記憶媒体62上
に記憶されたゲームソフトウェア実行可能2値画像を用
いたエミュレーション処理の全体例を示す。ホスト12
01は、例えばパーソナルコンピュータ、ビデオゲーム
コンソール、または十分な演算能力を有する任意のその
他のプラットフォームなどの、汎用あるいは専用のデジ
タル演算装置であり得る。エミュレータ1303は、ホ
ストプラットフォーム1201上で稼働し、記憶媒体6
2からのコマンド、データおよびその他の情報の、ホス
トによって処理される形式へのリアルタイム変換を提供
するソフトウェアおよび/またはハードウェアであり得
る。例えば、エミュレータ1303は、システム50に
よって実行されることが意図される「ソース」2値画像
プログラム命令を記憶媒体62から取り込み、これらの
プログラム命令を、ホスト1201によって実行その他
の処理を行われ得る対象形式に変換する。
FIG. 10 shows the host platform 120.
1, an emulator element 1303, and an overall example of an emulation process using a game software executable binary image stored on a storage medium 62. Host 12
01 may be a general or special purpose digital computing device, such as a personal computer, video game console, or any other platform with sufficient computing power. The emulator 1303 runs on the host platform 1201 and stores the storage medium 6
Software and / or hardware that provides real-time conversion of commands, data, and other information from two to a form processed by the host. For example, emulator 1303 captures “source” binary image program instructions that are intended to be executed by system 50 from storage medium 62 and may execute these other program instructions by host 1201 or other processing. Convert to format.

【0051】一例として、ソフトウェアが、IBM P
owerPCまたはその他の特定のプロセッサを用いた
プラットフォーム上で実行されるように書かれており、
ホスト1201が異なる(例えばインテルの)プロセッ
サを用いたパーソナルコンピュータである場合は、エミ
ュレータ1303は、1つまたは一連の2値画像プログ
ラム命令を記憶媒体62から取り込み、これらのプログ
ラム命令を、1つ以上の同等なインテルの2値画像プロ
グラム命令に変換する。エミュレータ1303はまた、
グラフィックスおよび音声プロセッサ114によって処
理されることを意図されたグラフィックスコマンドおよ
び音声コマンドを取り込みおよび/または生成し、これ
らのコマンドを、ホスト1201上において利用可能で
あるハードウェアおよび/またはソフトウェアグラフィ
ックスおよび音声処理リソースによって処理され得る単
数または複数のフォーマットに変換する。一例として、
エミュレータ1303は、これらのコマンドを、ホスト
1201の特定のグラフィックスおよび/または音声ハ
ードウェアによって処理され得るコマンドに変換し得る
(例えば、標準的なDirectX、OpenGL、お
よび/または音声APIを用いて)。
As an example, the software may be IBM P
is written to run on a platform using a powerPC or other specific processor,
If the host 1201 is a personal computer using a different (eg, Intel) processor, the emulator 1303 fetches one or a series of binary image program instructions from the storage medium 62 and one or more of these program instructions. Converted to the equivalent Intel binary image program instruction. The emulator 1303 also
Hardware and / or software graphics that captures and / or generates graphics and voice commands intended to be processed by the graphics and voice processor 114, and these commands are available on the host 1201. And to a format or formats that can be processed by the audio processing resource. As an example,
Emulator 1303 may translate these commands into commands that may be processed by the particular graphics and / or audio hardware of host 1201 (eg, using standard DirectX, OpenGL, and / or audio APIs). .

【0052】上述のビデオゲームシステムの一部または
全ての特徴を提供するために用いられるエミュレータ1
303には、また、そのエミュレータを用いて実行され
るゲームの様々なオプションやスクリーンモードの選択
を単純化あるいは自動化するグラフィックスユーザイン
ターフェース(GUI)が備えられてもよい。一例にお
いて、そのようなエミュレータ1303は、また、ソフ
トウェアが本来意図されたホストプラットフォームに比
較して、より高度な機能性をさらに含んでもよい。エミ
ュレータ内の特定のグラフィックスサポートハードウェ
アが図7、8および9に示すz近傍処理機能を含まない
場合、エミュレータの設計者は、・プロセッサの速度に
依存して性能が減少し得るが、z近傍処理機能をソフト
ウェアで実現するか、あるいは・z近傍処理を「スタブ
(すなわち無視)」することにより、近画像アーチファ
クトを有するレンダリングされた画像を提供するという
選択肢を有する。
An emulator 1 used to provide some or all of the features of the video game system described above.
The 303 may also be equipped with a graphics user interface (GUI) that simplifies or automates the selection of various options and screen modes for games run using the emulator. In one example, such emulator 1303 may also include more sophisticated functionality as compared to the host platform for which the software was originally intended. If the particular graphics support hardware in the emulator does not include the z neighborhood processing features shown in FIGS. 7, 8 and 9, the emulator designer may: You have the option of providing the rendered image with near image artifacts by implementing the neighborhood processing function in software, or by "stubping" (ie, ignoring) the z neighborhood processing.

【0053】図6のフローチャートは、その全体をソフ
トウェアで実現するか、全体をハードウェアで実現する
か、あるいはハードウェアとソフトウェアの組み合わせ
で実現し得るが、好適な実施例においては、より高い速
度性能およびその他の利点を得るためにこれらの計算の
大部分をハードウェアで行う。しかし、他の実施形態
(例えば非常に高速なプロセッサが利用可能である場
合)において、図6の演算およびステップをソフトウェ
アで実現して同様なまたは同じ画像結果を提供すること
ができる。
The flowchart of FIG. 6 may be implemented entirely in software, entirely in hardware, or a combination of hardware and software, although in the preferred embodiment, higher speeds are used. Most of these calculations are done in hardware for performance and other benefits. However, in other embodiments (eg, where a very fast processor is available), the operations and steps of FIG. 6 may be implemented in software to provide similar or identical image results.

【0054】図11は、エミュレータ1302とともに
適切に用いられるエミュレーションホストシステム12
01を示す。システム1201は、処理ユニット120
3およびシステムメモリ1205を有する。システムバ
ス1207が、システムメモリ1205を含む様々なシ
ステム要素を、処理ユニット1203に接続する。シス
テムバス1207は、メモリバスまたはメモリコントロ
ーラを含む数種のタイプのバス構造、周辺バス、および
様々なバスアーキテクチャのうちのいずれかを用いた局
所バスのうちのいずれでもよい。システムメモリ120
7は、リードオンリーメモリ(ROM)1252および
ランダムアクセスメモリ(RAM)1254を有する。
パーソナルコンピュータシステム1201内の要素間の
情報の転送(例えばスタートアップ中など)に役立つ基
本的なルーチンを含んだ基本入力/出力システム(BI
OS)1256が、ROM1252に格納されている。
システム1201はさらに、様々なドライブおよび関連
するコンピュータ可読性の媒体を有する。ハードディス
クドライブ1209は、(典型的には固定の)磁気ハー
ドディスク1211から読み出し、またこれに対して書
き込む。追加的な(可能なオプションである)磁気ディ
スクドライブ1213は、着脱可能な「フロッピー(登
録商標)」またはその他の磁気ディスク1215から読
み出し、また、これに対して書き込む。光ディスクドラ
イブ1217は、CD ROMまたはその他の光メディ
アなどの着脱可能な光ディスク1219から読み出し、
また、いくつかの構成においては、これに対して書き込
む。ハードディスクドライブ1209および光ディスク
ドライブ1217は、それぞれハードディスクドライブ
インターフェース1221および光ドライブインターフ
ェース1225によって、システムバス1207に接続
されている。そのドライブおよびそれに対応するコンピ
ュータ可読性媒体は、コンピュータ可読性の命令、デー
タ構造、プログラムモジュール、ゲームプログラムおよ
びパーソナルコンピュータシステム1201のためのそ
の他のデータを、不揮発的に記憶する。その他の構成に
おいて、コンピュータによりアクセス可能なデータを格
納することができる他のタイプのコンピュータ可読性媒
体、例えば、磁気カセット、フラッシュメモリカード、
デジタルビデオディスク、ベルヌーイ(Bernoul
li)カートリッジ、ランダムアクセスメモリ(RA
M)リードオンリーメモリ(ROM)などもまた使用さ
れ得る。
FIG. 11 illustrates an emulation host system 12 suitable for use with emulator 1302.
Indicates 01. The system 1201 includes a processing unit 120.
3 and system memory 1205. A system bus 1207 connects various system elements, including system memory 1205, to processing unit 1203. The system bus 1207 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. System memory 120
7 has a read only memory (ROM) 1252 and a random access memory (RAM) 1254.
A basic input / output system (BI) containing the basic routines that help to transfer information between elements within personal computer system 1201 (eg, during start-up).
OS) 1256 is stored in the ROM 1252.
System 1201 further includes various drives and associated computer-readable media. Hard disk drive 1209 reads from and writes to (typically fixed) magnetic hard disk 1211. An additional (possible option) magnetic disk drive 1213 reads from and writes to a removable "floppy" or other magnetic disk 1215. The optical disk drive 1217 reads from a removable optical disk 1219 such as a CD ROM or other optical media,
Also, write to this in some configurations. The hard disk drive 1209 and the optical disk drive 1217 are connected to the system bus 1207 by a hard disk drive interface 1221 and an optical drive interface 1225, respectively. The drive and its corresponding computer-readable medium non-volatilely store computer-readable instructions, data structures, program modules, game programs and other data for the personal computer system 1201. In other configurations, other types of computer-readable media capable of storing computer-accessible data, such as magnetic cassettes, flash memory cards,
Digital video disc, Bernoulli
li) cartridge, random access memory (RA
M) Read only memory (ROM) and the like may also be used.

【0055】エミュレータ1303を含む複数のプログ
ラムモジュールは、ハードディスク1211、着脱式磁
気ディスク1215、光ディスク1219、および/ま
たはシステムメモリ1205のROM1252および/
またはRAM1254上に記憶され得る。このようなプ
ログラムモジュールは、グラフィックスおよび音声AP
Iを提供するオペレーティングシステム、1つ以上のア
プリケーションプログラム、その他のプログラムモジュ
ール、プログラムデータおよびゲームデータを含んでも
よい。ユーザは、キーボード1227、ポインティング
装置1229、マイク、ジョイスティック、ゲームコン
トローラ、衛星放送用アンテナ、スキャナなどの入力装
置を介して、コマンドおよび情報を、パーソナルコンピ
ュータシステム1201に入力し得る。これらおよびそ
の他の入力装置は、システムバス1207に接続された
シリアルポートインターフェース1231を介して処理
ユニット1203に接続されることができるが、パラレ
ルポート、ゲームポートファイヤワイヤバスまたはユニ
バーサルシリアルバス(USB)などの他のインターフ
ェースによって接続されてもよい。また、モニタ123
3またはその他のタイプの表示装置が、ビデオアダプタ
1235などのインターフェースを介して、システムバ
ス1207に接続される。
A plurality of program modules including the emulator 1303 includes a hard disk 1211, a removable magnetic disk 1215, an optical disk 1219, and / or a ROM 1252 and / or a system memory 1205.
Alternatively, it may be stored on the RAM 1254. Such a program module is a graphics and audio AP.
It may include an operating system that provides I, one or more application programs, other program modules, program data, and game data. A user may input commands and information to the personal computer system 1201 via input devices such as a keyboard 1227, pointing device 1229, microphone, joystick, game controller, satellite dish, scanner, and the like. These and other input devices may be connected to the processing unit 1203 via a serial port interface 1231 connected to the system bus 1207, such as a parallel port, game port firewire bus or universal serial bus (USB). May be connected by other interfaces. In addition, the monitor 123
3 or other type of display device is connected to the system bus 1207 via an interface such as a video adapter 1235.

【0056】システム1201は、インターネットなど
のネットワーク1152を介して通信を確立するため
の、モデム1154やその他のネットワークインターフ
ェース手段を有し得る。内部でも外部でもよいモデム1
154が、シリアルポートインターフェース1231を
介してシステムバス123に接続されている。また、シ
ステム1201が、局所エリアネットワーク1158を
介してリモート演算装置1150(例えば、別のシステ
ム1201)と通信することを可能にするために、ネッ
トワークインターフェース1156が提供され得る(あ
るいはこのような通信は、広域ネットワーク1152ま
たはダイヤルアップやその他の通信手段などの他の通信
パスを介して行われてもよい)。システム1201は典
型的には、プリンタその他の標準的な周辺デバイスなど
の、他の周辺出力デバイスを有し得る。
System 1201 may include a modem 1154 or other network interface means for establishing communications over network 1152, such as the Internet. Modem 1 which can be internal or external
154 is connected to the system bus 123 via the serial port interface 1231. Also, a network interface 1156 may be provided (or such communication may be provided to allow the system 1201 to communicate with a remote computing device 1150 (eg, another system 1201) via a local area network 1158. , Via wide area network 1152 or other communication path such as dial-up or other communication means). System 1201 may typically have other peripheral output devices, such as printers and other standard peripheral devices.

【0057】一例において、ビデオアダプタ1235
は、マイクロソフトのDirectX7.0または他バ
ージョンなどの標準的な3Dグラフィックスアプリケー
ションプログラマインターフェースに基づいて発せられ
る3Dグラフィックスコマンドに応答して、高速な3D
グラフィックスレンダリングを提供する3Dグラフィッ
クスパイプラインチップセットを有し得る。また1組の
ステレオスピーカ1237が、従来の「サウンドカー
ド」などのサウンド発生インターフェースを介してシス
テムバス1207に接続されていることにより、バス1
207によって供給される音声コマンドに基づいて高品
質なステレオ音声を生成するためのハードウェアおよび
埋め込みソフトウェアサポートを提供する。これらのハ
ードウェア能力は、システム1201が、記憶媒体62
に格納されたソフトウェアをプレイするために十分なグ
ラフィックスおよびサウンド速度能力を提供することを
可能にする。
In one example, video adapter 1235.
Is a fast 3D in response to 3D graphics commands issued based on standard 3D graphics application programmer interfaces such as Microsoft's DirectX 7.0 or other versions.
It may have a 3D graphics pipeline chipset that provides graphics rendering. Further, since a pair of stereo speakers 1237 are connected to the system bus 1207 via a sound generation interface such as a conventional “sound card”, the bus 1
Provides hardware and embedded software support for producing high quality stereo audio based on the audio commands provided by 207. These hardware capabilities are provided by the system 1201 in the storage medium 62.
Allows you to provide sufficient graphics and sound speed capabilities to play the software stored in.

【0058】上記参照した全ての文献を、本明細書にお
いて参照のため援用する。
All references referred to above are incorporated herein by reference.

【0059】以上、本発明を、最も実用的で好ましい実
施形態であると現時点で判断される内容について説明し
てきたが、本発明は、開示された実施形態にのみ制限さ
れるべきものではなく、反対に、記載したクレームの範
囲内において様々に変更、および同等な内容が適用され
るものとする。
While the present invention has been described above with respect to what is determined to be the most practical and preferred embodiment at the present time, the present invention should not be limited to the disclosed embodiment. On the contrary, various modifications and equivalents shall be made within the scope of the appended claims.

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

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

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

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

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

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

【図6】本発明に従って、Z近傍範囲においてZクラン
ピングを実現するためのステップ例を示すフローチャー
トである。
FIG. 6 is a flowchart showing example steps for implementing Z clamping in the Z neighborhood according to the present invention.

【図7】本発明のZ近傍クランピング構成のスクリーン
空間を示す図である。
FIG. 7 is a diagram showing a screen space of a Z vicinity clamping configuration according to the present invention.

【図8】本発明のグラフィックスパイプライン実施例に
おいてZ圧縮を実現するためのハードウェアロジック図
の例である。
FIG. 8 is an example of a hardware logic diagram for implementing Z compression in a graphics pipeline embodiment of the present invention.

【図9】本発明のグラフィックスパイプライン実施例に
おいてZ近傍クランピング構成の一例を実現するための
ハードウェアロジック図である。
FIG. 9 is a hardware logic diagram for realizing an example of a Z-nearest neighbor clamping configuration in the graphics pipeline embodiment of the present invention.

【図10】別の互換的な実施例を示す図である。FIG. 10 illustrates another compatible embodiment.

【図11】別の互換的な実施例を示す図である。FIG. 11 shows another compatible embodiment.

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 3Dグラフィックスレンダリングシステ
ムにおいてZバッファリングを行う方法であって、 第1のクリッピング面znearをZ=0平面に非常に
近いZ軸位置に設定し、第2のクリッピング面zfar
をZ=0平面から非常に遠いZ軸位置に設定すること
と、 Z値クランピング面znear2をznear2=zn
ear*(1<<n)に設定することと、 znear<z<zfarであるz値を有する画素につ
いて従来のZバッファリングを行うことと、 znear2<Z<zfarである画素についてZ値を
所定の値にクランピングし、対応する画素データを表示
フレームバッファに最初から最後に向かう順序で書き込
むこととを含む、方法。
1. A method for Z-buffering in a 3D graphics rendering system, wherein a first clipping plane znear is set to a Z-axis position very close to a Z = 0 plane and a second clipping plane zfar is set.
Is set to a Z-axis position that is very far from the Z = 0 plane, and z-value clamping surface znear2 is znea2 = zn.
set to ear * (1 << n), perform conventional Z-buffering on pixels with z-values where zneare <z <zfar, and set Z-values for pixels with zneare2 <Z <zfar And writing the corresponding pixel data to the display frame buffer in a first-to-last order.
【請求項2】 クランピングされるZ値のための前記所
定の値はゼロである、請求項1に記載のグラフィックス
システム。
2. The graphics system of claim 1, wherein the predetermined value for clamped Z values is zero.
【請求項3】 プロセッサと、変換およびライティング
回路を有しかつアンチエイリアス化シーンのレンダリン
グ中にZ値圧縮動作を行う別個のグラフィックス処理パ
イプラインとを有する、3Dグラフィックスレンダリン
グシステムにおける改良であって、 前記グラフィックスパイプラインZ値圧縮回路に含まれ
る加算器およびビットマスキング回路を含み、 前記加算器は、優先符号化器とシフタとの間に接続さ
れ、Z値圧縮動作よりも前にZ値2値データを所定の数
のビット位置だけ左にシフトさせることにより、Z値の
所定の範囲内にあるZ値を所定のZ値に有効にクランプ
するために用いられる、改良。
3. An improvement in a 3D graphics rendering system having a processor and a separate graphics processing pipeline having transformation and lighting circuitry and performing z-value compression operations during rendering of anti-aliased scenes. An adder and a bit masking circuit included in the graphics pipeline Z-value compression circuit, the adder being connected between the priority encoder and the shifter and having a Z-value of 2 before the Z-value compression operation. An improvement used to effectively clamp Z values within a given range of Z values to a given Z value by shifting the value data to the left by a given number of bit positions.
【請求項4】 前記所定のZ値はゼロである、請求項3
に記載のグラフィックスシステム。
4. The predetermined Z value is zero.
Graphics system described in.
【請求項5】 前記Z値の所定の範囲は、 Z=0平面に非常に近い所定のZ軸位置に定義されるZ
クリッピング面znearおよび、znear2=zn
ear*(1<<n)(nは前記左シフトされるビット
位置の数に等しい)に定義されるZクランピング面zn
ear2によって決定される、請求項3に記載のグラフ
ィックスシステム。
5. The predetermined range of the Z value is defined by a predetermined Z axis position very close to the Z = 0 plane.
Clipping planes znear and znear2 = zn
Z clamping plane zn defined in ear * (1 << n), where n is equal to the number of bit positions left shifted
The graphics system of claim 3, as determined by ear2.
【請求項6】 プロセッサと、フルシーンアンチエイリ
アシングをZ値圧縮とともに行う別個のグラフィックス
処理パイプラインとを有する、3Dグラフィックスレン
ダリングシステムにおいて、Z=0平面近傍における画
素のクリッピングを回避するための方法であって、 Z値圧縮を行うよりも前に2値Z値データを1以上のビ
ット位置だけ左にシフトすることを含み、 前記左シフトの量は、Z値が所定の値にクランピングさ
れるためのZ値の所定の範囲によって決定される、方
法。
6. A 3D graphics rendering system having a processor and a separate graphics processing pipeline that performs full scene anti-aliasing with Z value compression for avoiding pixel clipping near the Z = 0 plane. Shifting the binary Z-value data to the left by one or more bit positions prior to performing the Z-value compression, wherein the amount of left shift is to clamp the Z-value to a predetermined value. A method determined by a predetermined range of Z values to be performed.
【請求項7】 関連付けられたメモリに格納されたZ値
2値データを含むポリゴン頂点属性データに少なくとも
部分的に応答して画像をレンダリングして表示するグラ
フィックス処理システムにおける、ハードウェアで実現
されたZ値圧縮処理部であって、 優先符号化器と、 シフタと、 前記優先符号化器および前記シフタの間に接続され、圧
縮よりも前にZ値2値データを所定の数のビット位置だ
け左にシフトさせることにより、Z値の所定の範囲内に
あるZ値を所定のZ値に実効的にクランプするために用
いられ得る加算器とを含む、Z値圧縮処理部。
7. A hardware implementation in a graphics processing system for rendering and displaying an image in at least partial response to polygon vertex attribute data including Z-value binary data stored in an associated memory. And a Z-value compression processing unit, which is connected between the priority encoder, the shifter, and the priority encoder and the shifter, and converts the Z-value binary data into a predetermined number of bit positions before compression. A Z value compression processor, which can be used to effectively clamp a Z value within a predetermined range of Z values to a predetermined Z value by shifting the Z value to the left.
JP2001249924A 2001-08-21 2001-08-21 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 Expired - Fee Related JP4740490B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001249924A JP4740490B2 (en) 2001-08-21 2001-08-21 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001249924A JP4740490B2 (en) 2001-08-21 2001-08-21 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

Publications (2)

Publication Number Publication Date
JP2003058905A true JP2003058905A (en) 2003-02-28
JP4740490B2 JP4740490B2 (en) 2011-08-03

Family

ID=19078840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001249924A Expired - Fee Related JP4740490B2 (en) 2001-08-21 2001-08-21 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

Country Status (1)

Country Link
JP (1) JP4740490B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008533628A (en) * 2005-03-21 2008-08-21 クゥアルコム・インコーポレイテッド Tiled prefetch and cached depth buffer
JP2010020764A (en) * 2008-07-03 2010-01-28 Nvidia Corp Hybrid multisample/supersample antialiasing
JP2011223056A (en) * 2010-04-02 2011-11-04 Taito Corp Video playback method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123980A (en) * 1994-10-21 1996-05-17 Matsushita Electric Ind Co Ltd Three-dimensional figure drawing device
JPH11328438A (en) * 1998-03-18 1999-11-30 Sun Microsyst Inc Method and device for high-efficiency floating-point z buffering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123980A (en) * 1994-10-21 1996-05-17 Matsushita Electric Ind Co Ltd Three-dimensional figure drawing device
JPH11328438A (en) * 1998-03-18 1999-11-30 Sun Microsyst Inc Method and device for high-efficiency floating-point z buffering

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008533628A (en) * 2005-03-21 2008-08-21 クゥアルコム・インコーポレイテッド Tiled prefetch and cached depth buffer
US8089486B2 (en) 2005-03-21 2012-01-03 Qualcomm Incorporated Tiled prefetched and cached depth buffer
JP4861403B2 (en) * 2005-03-21 2012-01-25 クゥアルコム・インコーポレイテッド Tiled prefetch and cached depth buffer
JP2012033173A (en) * 2005-03-21 2012-02-16 Qualcomm Inc Tiled prefetch and cached depth buffer
JP2010020764A (en) * 2008-07-03 2010-01-28 Nvidia Corp Hybrid multisample/supersample antialiasing
JP2011223056A (en) * 2010-04-02 2011-11-04 Taito Corp Video playback method

Also Published As

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

Similar Documents

Publication Publication Date Title
US6618048B1 (en) 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US7307640B2 (en) Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
JP4678963B2 (en) Method and apparatus for processing direct and indirect textures in a graphics system
JP4698893B2 (en) Method, graphics system, and program for providing improved fog effects
US6707458B1 (en) Method and apparatus for texture tiling in a graphics system
US6664962B1 (en) Shadow mapping in a low cost graphics system
US6700586B1 (en) Low cost graphics with stitching processing hardware support for skeletal animation
US6664958B1 (en) Z-texturing
US7205999B2 (en) Method and apparatus for environment-mapped bump-mapping in a graphics system
US7176919B2 (en) Recirculating shade tree blender for a graphics system
US7129956B2 (en) Variable bit field color encoding
US6636214B1 (en) Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
EP1189173B1 (en) Achromatic lighting in a graphics system and method
US7061502B1 (en) Method and apparatus for providing logical combination of N alpha operations within a graphics system
JP4975159B2 (en) Colorless lighting in a graphics system, method and program for generating graphics images
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
JP2007512603A (en) Image drawing
JP4683760B2 (en) Graphics system with embedded frame buffer having a reconfigurable pixel format
JP2002208026A (en) Texture tiling method and device for graphic system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110119

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

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