JP2003058902A - グラフィックシステムインターフェース - Google Patents

グラフィックシステムインターフェース

Info

Publication number
JP2003058902A
JP2003058902A JP2001249925A JP2001249925A JP2003058902A JP 2003058902 A JP2003058902 A JP 2003058902A JP 2001249925 A JP2001249925 A JP 2001249925A JP 2001249925 A JP2001249925 A JP 2001249925A JP 2003058902 A JP2003058902 A JP 2003058902A
Authority
JP
Japan
Prior art keywords
command
stream
graphics
followed
bit
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.)
Pending
Application number
JP2001249925A
Other languages
English (en)
Inventor
Pariku Weimar
パリク ヴァイマル
Robert Moore
ムーア ロバート
Howard H Cheng
エイチ チェン ハワード
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 JP2001249925A priority Critical patent/JP2003058902A/ja
Publication of JP2003058902A publication Critical patent/JP2003058902A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】使用が単純かつ容易でありながら、非常にパワ
フルかつ柔軟なグラフィックスプログラミングインター
フェースを提供する。 【解決手段】 グラフィックスパイプラインが頂点状態
情報を保持することを可能にし、インデックス付けされ
たものと直接の頂点値および属性とを混合することを可
能にするユニークな頂点表現、投影行列値セットコマン
ド、表示リスト呼び出しオブジェクトコマンド、および
埋め込みフレームバッファクリア/セットコマンドを含
んだ特徴をもち、アプリケーションプログラマが容易に
使用し習熟することができ、単純かつパワフルな構築物
を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータグラフ
ィックスに関し、より詳細には家庭用ビデオゲームプラ
ットフォームを含むがこれに限定されない対話式グラフ
ィックスシステムに関する。さらに、より詳細には、本
発明は、グラフィックスチップを制御するための2値コ
マンド関数を含む有利なソフトウェアプログラミングイ
ンターフェースおよび、これを生成、格納、および復号
化するための方法に関する。
【0002】
【従来の技術】我々の多くは、驚くほどリアルな恐竜、
異星人、アニメーション化された玩具、およびその他の
空想的な生物を含む映画を観たことがある。このような
アニメーションは、コンピュータグラフィックスによっ
て可能となる。こうした技術を用いることにより、コン
ピュータグラフィックスアーチストは、各オブジェクト
がどのように見えるべきか、また時間とともにどのよう
に外見が変化すべきを指定することができ、そしてコン
ピュータがオブジェクトをモデリングし、これらをテレ
ビやコンピュータスクリーンなどのディスプレイ上に表
示する。このコンピュータは、シーン中の各オブジェク
トの位置および方向、各オブジェクトに光が入射してい
るように見える方向、各オブジェクトの表面テクスチ
ャ、およびその他の要素に基づき、表示された画像の各
部分がちょうど正しく色付けされかつ形付けられている
ことを確実にするために必要な多くの処理の実行を担当
する。
【0003】コンピュータグラフィックスの生成は複雑
であるため、ほんの数年前では、コンピュータ生成され
た3次元グラフィックスは、高価な専用のフライトシミ
ュレータ、ハイエンドのグラフィックスワークステーシ
ョン、およびスーパーコンピュータに概ね限定されてい
た。大衆は、これらのコンピュータシステムによって生
成された画像のいくつかを映画や高価なテレビ広告で見
ることはあったが、我々の大部分は、グラフィックス生
成を行うコンピュータに実際に接触することはできなか
った。これが全て、例えばニンテンドウ64(登録商
標)などの比較的安価な3Dグラフィックスプラットフ
ォームや、現在パーソナルコンピュータで利用可能な様
々な3Dグラフィックスカードが利用可能になることに
より変貌した。今や、家庭またはオフィスにて、比較的
安価なコンピュータグラフィックスシステム上で刺激的
な3Dアニメーションおよびシミュレーションと接触す
ることが可能である。
【0004】過去においてグラフィックスシステムの設
計者が直面した一つの問題は、グラフィックスシステム
上で実行されるように設計されたアプリケーションをグ
ラフィックスシステムが高速、効率的、かつ柔軟に使用
することを可能にするような、グラフィックスシステム
用のコントロールインターフェースをいかにして提供す
るかということであった。過去において、グラフィック
スアプリケーションのプログラマがグラフィックスシス
テムにおいて提供されたグラフィックスチップの動作を
制御することを可能にするために、様々なアプリケーシ
ョンプログラミングインターフェース(API)および
アプリケーションバイナリインターフェース(ABI)
が開発されている。おそらく現在使用されている中で最
も一般に用いられている3Dグラフィックスアプリケー
ションプログラミングインターフェースは、マイクロソ
フトのDirect3Dインターフェースおよびシリコ
ングラフィックスとの協力を通じて開発されたOpen
GLインターフェースであろう。例えば、Kovac
h、Inside Direct3D:The Def
initive Guide To Real−Tim
e 3D Powerand Performance
for MicrosoftWindows(Mic
rosoft Press 2000);およびNei
derら、OpenGL Programming G
uide: The Official Guide
to Learning Open GL Relea
se1(Addison−Wesley Publis
hing Co. 1993)を参照のこと。
【0005】Kovachの著書に説明されているよう
に、マイクロソフトのDirectXアプリケーション
プログラミングインターフェース(API)は、Mic
rosoft Windowsを実行しているコンピュ
ータ上のマルチメディアハードウェアの効率的な制御を
提供するインターフェースのセットを提供する。Kov
achは、DirectXはプログラマが、各デバイス
に対してコードが違う書き方をされなければならないほ
ど低レベルになることなく、ハードウェアがネイティブ
に処理可能なものに非常に近いコマンドおよびデータ構
造を扱うことを可能にすると述べている。デバイス独立
的なコードを書くことにより、ユーザが自身のシステム
を新しく改良された3Dグラフィックスアクセラレー
タ、サウンドカード、入力デバイスおよびその他のシス
テム能力によって高めていったとしても、プログラマは
理論的には常に最高状態で(Kovachによれば)稼
働するソフトウェアを作成することができる。
【0006】Kovachは、DirectXのデバイ
ス独立性を、ハードウェアのデバイス特異的な依存性を
隠すハードウェアアブストラクションレイヤ(HAL)
上にDirectXのAPIが構築されるために得られ
るものとして説明する。実際DirectXは、将来へ
の拡張性を提供するために、今日構築されているハード
ウェアの大部分では利用可能でないハードウェアアクセ
ラレーションサポート特徴をいくつか定義している。
【0007】
【発明が解決しようとする課題】DirectXアプロ
ーチは広く採用されてきており、広い範囲の異なるプラ
ットフォーム構成にわたって互換性を提供することに成
功しているが、厚いハードウェアアブストラクションレ
イヤと関連するハードウェアエミュレーションレイヤの
使用は、現在の低コスト専用のビデオゲームプラットフ
ォームにとっては現時点において特に適したものではな
い。DirectXのAPIは基本的には、何百ドルあ
るいは何千ドルもする様々な異なる構成およびバラエテ
ィーで製造されるパーソナルコンピュータ用に設計され
たものである。DirectXのAPIは広い範囲のこ
のような異なるプラットフォーム構成にわたって互換性
を提供することに成功しているが、この互換性は効率お
よび性能を犠牲にして得られたものである。専用の低コ
ストのビデオゲームプラットフォームの文脈では、様々
な3次元グラフィックス効果を達成するための有能で柔
軟なインターフェースを提供しながら、ハードウェアに
非常に近くかつフル能力を持つプログラミングインター
フェースを提供するという点で、より有利に処理するこ
とができる。
【0008】「Interface For A Hi
gh Performance Low Cost V
ideo Game System With Cop
rocessor Providing High S
peed Efficient 3D Graphic
s And Digital Audio Signa
l Processing」の名称を有する97年12
月12日付け出願のVan Hookらに係る米国特許
出願第08/990,133号に、従来のアプローチの
一つが記載されている。しかし、さらなる改良が可能で
ありかつ望まれる。特に、このVan Hookらの従
来の特許出願に記載されたインターフェースに対して、
アプリケーションを書くことが困難であると考えられる
ことから一部から批判があった。家庭用ビデオゲームの
領域では、性能を最大にしながらも、そのような性能お
よび能力を呼び出すために用いられるインターフェース
をなるべく単純かつ容易に使用できるようにしておくこ
とが望ましい。むやみに複雑なインターフェースに対し
て書くことをアプリケーションのプログラマに要求する
ことは、そのようなアプリケーションを開発するのにか
かる時間を増大し得る。これは、新しいビデオゲームプ
ラットフォームを立ち上げようというときには非常にマ
イナスな効果を有し得る。なぜなら、そのプラットフォ
ームの成功はしばしば、立ち上げ時期において利用可能
であるゲームまたはその他のアプリケーションの数とい
う意味である一定の「臨界量(critical ma
ss)」を達成することに依存し得るからである。従来
の新しい家庭用ビデオゲームプラットフォームの開発者
が気がついたように、その上でプレイできるゲームがな
ければ、新しい家庭用ビデオゲームプラットフォームを
購入したい者はいない。従って、使用が単純かつ容易で
ありながら、しかも非常にパワフルかつ柔軟なグラフィ
ックスプログラミングインターフェースを提供すること
が望ましい。
【0009】
【課題を解決するための手段および発明の効果】本発明
は、グラフィックスハードウェアの論理的かつ正規的な
視点を提供しつつ高い性能を達成するために可能な限り
薄く設計された、グラフィックスシステム用の新規かつ
改良されたインターフェースを提供することにより、こ
の問題を解決する。
【0010】本発明は、多くの属性を有するジオメトリ
をレンダリングすることを可能にするグラフィックスコ
マンドを備えた、グラフィックスシステムプログラミン
グインターフェースを提供する。インターフェースは、
ジオメトリを描画するために2つの主な方法を提供す
る。中間モードは、コマンドストリームソースが、グラ
フィックスコマンドのストリームを直接グラフィックス
プロセッサに消費されるために送ることを、可能にす
る。この中間モードインターフェースは、メインプロセ
ッサが高レベル記述(例えば高度フィールドやベジエパ
ッチなど)からジオメトリデータを合成しなければなら
ないときに有用である。第2の方法は、メモリ常駐の表
示リストフォーマットを用いて、コマンドストリームを
グラフィックスプロセッサに供給する。このインターフ
ェースは、静的データについて優れた性能を提供する。
中間インターフェースおよび表示リストインターフェー
スは両方とも、コンフィギュレーション可能な頂点表現
を提供する。コンフィギュレーション可能な頂点表現と
は、例えば、直接またはインデックスされた頂点要素を
含む。頂点要素(例えば位置、法線、色および複数のテ
クスチャに対するテクスチャ座標など)は全て、配列と
は独立にインデックスされてもよく、あるいはコマンド
ストリーム中に直接入れられてもよい。各頂点要素が異
なるサイズの表現および精度を有することを可能にする
ことにより、さらなる柔軟性が提供される。利用可能な
直接型は例えば、8ビット符号付きおよび符号なし整
数、16ビット符号付きおよび符号なし整数、および3
2ビット浮動小数点を含み得る。整数型の小数点を位置
決めするためのスケールが利用可能である。間接型(例
えば8ビットインデックスまたは16ビットインデック
ス)を用いて、直接型のうちの任意のものの配列にイン
デックス付けすることができる。この柔軟な表現によ
り、ゲームの開発者が、頂点データを、そのゲームにつ
いて適切な方法で組織化することができる。この各要素
を別々にインデックスできる能力により、データ重複が
大幅に削除できる。
【0011】
【発明の実施の形態】図1は、対話式3Dコンピュータ
グラフィックスシステム50の一例を示す。システム5
0は、対話式3Dビデオゲームを面白いステレオ音とと
もにプレイするために用いられ得る。また、様々な他の
応用例にも用いられ得る。
【0012】本例において、システム50は、3次元世
界のデジタル表現物あるいはモデルを、対話式にリアル
タイムで処理することが可能である。システム50は、
その世界のうちの一部または全部を、いかなる任意の視
点から表示することもできる。例えば、システム50
は、手持ちコントローラ52a、52bまたはその他の
入力デバイスからのリアルタイム入力に応答して、対話
式に視点を変更することができる。これにより、ゲーム
のプレーヤが、その世界の中または外側にいる人の目を
通じて、その世界を見ることが可能になる。システム5
0は、リアルタイム3D対話式表示を必要としない応用
例(例えば、2D表示生成および/または非対話式表
示)に用いられ得るが、非常に素早く高品質3D画像を
表示できる能力を、非常にリアルかつ刺激的なゲームプ
レイまたはその他のグラフィカルな対話を創出するため
に用いることができる。
【0013】システム50を用いて、ビデオゲームまた
はその他のアプリケーションをプレイするために、ユー
ザは、まず、ケーブル58を両者の間に接続することに
よって、メインユニット54を自分のカラーテレビ56
またはその他のディスプレイデバイスに接続する。メイ
ンユニット54は、カラーテレビ56を制御するための
映像信号と音声信号との両方を生成する。映像信号は、
テレビスクリーン59上に表示される画像を制御するも
のであり、音声信号は、テレビのステレオスピーカ61
L、61Rを介して音として再生される。
【0014】ユーザは、また、メインユニット54を電
源に接続する必要がある。この電源は、標準的な家庭用
電気コンセントに接続して家庭電流をメインユニット5
4に電力供給するために、適切なより低いDC電圧信号
に変換する従来のACアダプタ(図示せず)であり得
る。他の実施形態として、電池を用い得る。
【0015】ユーザは、メインユニット54を制御する
ためにハンドコントローラ52a、52bを用い得る。
コントロール60は、例えば、テレビ56上に表示され
たキャラクターが3D世界内で移動するべき方向(上
下、左右、近くあるいは遠く)を指定するために用い得
る。コントロール60は、また、他のアプリケーション
(例えば、メニュー選択、ポインタ/カーソル制御な
ど)のための入力を提供する。コントローラ52は、様
々な形態を取り得る。本例においては、図示したコント
ローラ52は、それぞれジョイスティック、プッシュボ
タンおよび/または方向スイッチとしてのコントロール
60を含む。コントローラ52は、ケーブルを介して、
あるいは電磁(例えば高周波または赤外線)波を介して
無線でメインユニット54に接続され得る。
【0016】ゲームなどのアプリケーションをプレイす
るためには、ユーザは自分がプレイしたいビデオゲーム
あるいはその他のアプリケーションを記憶している適切
な記憶媒体62を選択し、その記憶媒体をメインユニッ
ト54のスロット64に挿入する。記憶媒体62は、例
えば、グラフィックスおよび音声プロセッサ114のた
めのコマンドおよび/またはそのようなコマンドを作成
するようにメインプロセッサ110を制御する命令を格
納する、専用にコード化されたおよび/または暗号化さ
れた光学および/または磁気ディスクであり得る。ユー
ザは、パワースイッチ66を操作してメインユニット5
4をオンにし、記憶媒体62に記憶されたソフトウェア
に基づいて、メインユニットにビデオゲームあるいはそ
の他のアプリケーションの実行を開始させ得る。ユーザ
は、コントローラ52を操作してメインユニット54に
入力を供給し得る。例えば、コントロール60を操作す
ることにより、ゲームあるいはその他のアプリケーショ
ンを開始させ得る。その他のコントロール60を動かす
ことにより、アニメーション化されたキャラクターを異
なる方向に移動させたり、3D世界におけるユーザの視
点を変更することができる。記憶媒体62に記憶された
特定のソフトウェアに依存して、コントローラ52上の
様々なコントロール60は、異なる時刻において異なる
機能を実行することができる。
【0017】システム全体の電子回路例 図2に、システム50の要素例のブロック図を示す。主
要な要素として以下のものを含む。 ・メインプロセッサ(CPU)110、 ・メインメモリ112、および ・グラフィックスおよび音声プロセッサ114
【0018】本例において、メインプロセッサ110
(例えば、機能拡張型IBM Power PC75
0)は、手持ちコントローラ108(および/または他
の入力装置)からの入力を、グラフィックスおよびプロ
セッサ114を介して受け取る。メインプロセッサ11
0は、ユーザ入力に対話式に応答し、例えば、外部記憶
媒体62から光ディスクドライブなどの大容量記憶アク
セス装置106を介して供給されるビデオゲームあるい
はその他のプログラムを実行する。一例としてビデオゲ
ームプレイの場合、メインプロセッサ110は、様々な
対話式機能および制御機能に加えて、衝突検出およびア
ニメーション処理を実行することができる。
【0019】本例において、メインプロセッサ110
は、3Dグラフィックスコマンドおよび音声コマンドを
生成し、これらをグラフィックスおよび音声プロセッサ
114に送る。グラフィックスおよび音声プロセッサ1
14は、これらのコマンドを処理することにより、ディ
スプレイ59上に面白い視覚画像を生成し、ステレオス
ピーカ61R、61Lまたはその他の適切な音声生成装
置上で面白いステレオ音を生成する。
【0020】例示のシステム50は、グラフィックスお
よび音声プロセッサ114から画像信号を受け取って、
画像信号をコンピュータモニタまたは家庭用カラーテレ
ビ56などの標準的な表示装置上での表示に適したアナ
ログおよび/またはデジタル映像信号に変換するビデオ
符号化器120を有する。システム50はまた、デジタ
ル化された音声信号を圧縮および伸長し、また必要に応
じてデジタルおよびアナログの音声信号化フォーマット
間の変換を行う音声コーデック(圧縮器/伸長器)12
2を有する。音声コーデック122は、バッファ124
を介して音声入力を受け取り、これらをグラフィックス
および音声プロセッサ114に処理(例えば、プロセッ
サが生成する、および/または大容量記憶アクセス装置
106の音声ストリーミング出力を介して受け取る他の
音声信号との混合)のために供給することができる。本
例におけるグラフィックスおよび音声プロセッサ114
は、音声関連の情報を、音声タスクについて利用可能で
ある音声メモリ126中に記憶することができる。グラ
フィックスおよび音声プロセッサ114は、結果として
得られた音声出力信号を、伸長およびアナログ信号への
変換(例えばバッファアンプ128L、128Rを介し
て)のために音声コーデック122に供給することによ
り、スピーカ61L、61Rによって再生できるように
する。
【0021】グラフィックスおよび音声プロセッサ11
4は、システム50内に存在し得る様々な追加的なデバ
イスと連絡する能力を有する。例えば、大容量記憶アク
セス装置106および/またはその他の要素と連絡する
ために、パラレルデジタルバス130を用い得る。シリ
アル周辺バス132は、例えば、 ・プログラム可能なリードオンリーメモリおよび/また
はリアルタイムクロック134、 ・モデム136その他のネットワーク化インターフェー
ス(これは、プログラム命令および/またはデータをダ
ウンロードまたはアップロードすることができるインタ
ーネットあるいはその他のデジタルネットワークなどの
通信ネットワーク138に、システム50を接続し得
る)、および ・フラッシュメモリ140を含む、様々な周辺デバイス
またはその他のデバイスと連絡し得る。
【0022】追加的な拡張メモリ144(例えばメモリ
カード)やその他のデバイスと連絡するために、さらな
る外部シリアルバス142を用い得る。コネクタを用い
て様々なデバイスをバス130、132、142に接続
し得る。
【0023】グラフィックスおよび音声プロセッサの例 図3は、グラフィックスおよび音声プロセッサ114の
一例のブロック図である。一例において、グラフィック
スおよび音声プロセッサ114は、単一チップのASI
C(アプリケーション専用集積回路)であり得る。本例
において、グラフィックスおよび音声プロセッサ114
は、以下を含む。 ・プロセッサインターフェース150 ・メモリインターフェース/コントローラ152 ・3Dグラフィックスプロセッサ154 ・音声デジタル信号プロセッサ(DSP)156 ・音声メモリインターフェース158 ・音声インターフェースおよびミキサ160 ・周辺コントローラ162、および ・ディスプレイコントローラ164
【0024】3Dグラフィックスプロセッサ154は、
グラフィックス処理タスクを行う。音声デジタル信号プ
ロセッサ156は、音声処理タスクを行う。ディスプレ
イコントローラ164は、メインメモリ112からの画
像情報にアクセスし、これをディスプレイデバイス56
上に表示するためにビデオ符号化器120に供給する。
音声インターフェースおよびミキサ160は音声コーデ
ック122とインターフェースし、また異なるソースか
らの音声(例えば大容量記憶アクセス装置106からの
音声ストリーミング、音声DSP156の出力、および
音声コーデック122を介して受け取られる外部音声入
力)を混合することができる。プロセッサインターフェ
ース150は、メインプロセッサ110とグラフィック
スおよび音声プロセッサ114との間のデータおよび制
御インターフェースを提供する。
【0025】メモリインターフェース152は、グラフ
ィックスおよび音声プロセッサ114とメモリ112と
の間の、データおよび制御インターフェースを提供す
る。本例において、メインプロセッサ110は、グラフ
ィックスおよび音声プロセッサ114の一部であるプロ
セッサインターフェース150およびメモリインターフ
ェース152を介して、メインメモリ112にアクセス
する。周辺コントローラ162は、グラフィックスおよ
び音声プロセッサ114と、上述した様々な周辺機器と
の間の、データおよび制御インターフェースを提供す
る。音声メモリインターフェース158は、音声メモリ
126とのインターフェースを提供する。
【0026】グラフィックスパイプラインの例 図4は、3Dグラフィックスプロセッサ154の一例の
より詳細な図を示す。3Dグラフィックスプロセッサ1
54は、特に、コマンドプロセッサ200および3Dグ
ラフィックスパイプライン180を含む。メインプロセ
ッサ110は、データのストリーム(例えば、グラフィ
ックスコマンドストリームおよび表示リスト)を、コマ
ンドプロセッサ200に通信する。メインプロセッサ1
10は、メモリ待ち時間を最小にするために2レベルキ
ャッシュ115を有し、また、グラフィックスおよび音
声プロセッサ114を対象とした非キャッシュデータス
トリーム用の書き込み収集バッファ111を有してい
る。書き込み収集バッファ111は、部分キャッシュラ
インを集めて完全なキャッシュラインにし、データを一
度につき1キャッシュラインずつグラフィックスおよび
音声プロセッサ114に送り出すことにより、バス利用
率を最大にする。
【0027】コマンドプロセッサ200は、メインプロ
セッサ110から2値フォーマットの表示コマンドを受
け取って解析および復号化する(これらを処理するため
に必要な任意の追加的なデータは、共有メモリ112か
ら得る)。コマンドプロセッサ200は、頂点コマンド
のストリームを、2Dおよび/または3D処理およびレ
ンダリングのためにグラフィックスパイプライン180
に供給する。グラフィックスパイプライン180は、こ
れらのコマンドに基づいて画像を生成する。得られた画
像情報は、ディスプレイコントローラ/ビデオインター
フェースユニット164(パイプライン180のフレー
ムバッファ出力をディスプレイ56上に表示する)によ
るアクセスのために、メインメモリ112に転送され得
る。
【0028】図5は、グラフィックスプロセッサ154
の論理フロー図である。メインプロセッサ110は、グ
ラフィックスコマンドストリーム210、表示リスト2
12、および頂点配列214をメインメモリ112に格
納し得、バスインターフェース150を介してコマンド
プロセッサ200にポインタを渡し得る。メインプロセ
ッサ110は、メインメモリ112内に割り当てた1つ
以上のグラフィックス先入れ先出し(FIFO)バッフ
ァ210に、グラフィックスコマンドを格納する。コマ
ンドプロセッサ200は、 ・同期/フロー制御および負荷バランスを取るためグラ
フィックスコマンドを受け取りバッファリングするオン
チップFIFOメモリバッファ216を介して、メイン
メモリ112からのコマンドストリーム、 ・オンチップコールFIFOメモリバッファ218を介
して、メインメモリ112からの表示リスト212、お
よび ・頂点キャッシュ220を介して、コマンドストリーム
からおよび/またはメインメモリ112中の頂点配列2
14からの頂点属性を取り込む。
【0029】コマンドプロセッサ200は、属性タイプ
を浮動小数点フォーマットに変換し、得られた完全な頂
点ポリゴンデータをレンダリング/ラスタライゼーショ
ンのためにグラフィックスパイプライン180に渡すコ
マンド処理動作200aを行う。プログラム可能なメモ
リ調停回路130(図4を参照)は、共有メインメモリ
112へのアクセスを、グラフィックスパイプライン1
80、コマンドプロセッサ200、およびディスプレイ
コントローラ/ビデオインターフェースユニット164
間で調停する。
【0030】図4は、グラフィックスパイプライン18
0が以下を含み得ることを示している。 ・変換ユニット300 ・セットアップ/ラスタライザ400 ・テクスチャユニット500 ・テクスチャ環境ユニット600、および ・画素エンジン700
【0031】変換ユニット300は、様々な2Dおよび
3D変換ならびにその他の動作300aを行う(図5を
参照)。変換ユニット300は、変換処理300aで用
いられる行列を格納するための、1つ以上のマトリック
スメモリ300bを有し得る。変換ユニット300は、
受け取った図形を頂点毎にオブジェクト空間からスクリ
ーン空間に変換し、また、受け取ったテクスチャ座標を
変換し投影テクスチャ座標を生成する(300c)。変
換ユニット300は、また、ポリゴンクリッピング/間
引き300dを行ってもよい。やはり変換ユニット30
0bによって行われるライティング処理300eは、一
実施例において最高8個の独立のライティングまでに対
し、頂点毎のライティング演算を提供する。変換ユニッ
ト300は、また、ポリゴンクリッピング/間引き動作
(300d)に加え、エンボス型のバンプマッピング効
果のためのテクスチャ座標生成(300c)、を行うこ
とができる。
【0032】セットアップ/ラスタライザ400は、変
換ユニット300から頂点データを受け取り、トライア
ングルセットアップ情報を、境界のラスタライズ、テク
スチャ座標のラスタライズおよび色のラスタライズを行
う1つ以上のラスタライザユニット(400b)に送る
セットアップユニットを有する。
【0033】テクスチャユニット500(オンチップテ
クスチャメモリ(TMEM502)を含み得る)は、テ
クスチャリングに関連する様々な処理を行う。これに
は、例えば、 ・メインメモリ112からのテクスチャ504の取り出
し、 ・例えば、マルチテクスチャ処理、キャッシュ後テクス
チャ伸長、テクスチャフィルタリング、エンボス化、投
影テクスチャの使用を介した陰影および明暗、ならびに
アルファ透明度および深度をともなうBLITを含むテ
クスチャ処理(500a)、 ・バンプマッピング、擬似テクスチャ、およびテクスチ
ャタイル化効果(500b)についてのテクスチャ座標
変位の演算のためのバンプマップ処理、および ・間接テクスチャ処理(500c)が含まれる。
【0034】テクスチャユニット500は、フィルタリ
ングされたテクスチャ値を、テクスチャ環境処理のため
(600a)にテクスチャ環境ユニット600に出力す
る。テクスチャ環境ユニット600は、ポリゴンおよび
テクスチャ色/アルファ/深度をブレンドし、また、逆
レンジ型フォグ効果を達成するためのテクスチャフォグ
処理(600b)を行い得る。テクスチャ環境ユニット
600は、例えば色/アルファ変調、エンボス化、詳細
テクスチャリング、テクスチャスワッピング、クランピ
ング、および深度ブレンディングに基づき、様々な他の
面白い環境関連の機能を行うためのステージを複数提供
し得る。
【0035】ピクセルエンジン700は、深度(z)比
較(700a)およびピクセルブレンディング(700
b)を行う。本例において、ピクセルエンジン700
は、データを埋め込み(オンチップ)フレームバッファ
メモリ702に格納する。グラフィックスパイプライン
180は、フレームバッファおよび/またはテクスチャ
情報をローカルに格納するための1つ以上の埋め込みD
RAMメモリ702を有し得る。z比較700a'は、
また、現在有効なレンダリングモードに依存して、グラ
フィックスパイプライン180中のより早い段階で行わ
れ得る(例えば、アルファブレンディングが必要でなけ
れば、z比較は、より早くに行われ得る)。ピクセルエ
ンジン700は、オンチップフレームバッファ702を
ディスプレイ/ビデオインターフェースユニット164
によるアクセスのためにメインメモリ112に周期的に
書き込むコピー動作700cを含む。このコピー動作7
00cは、また、動的テクスチャ合成効果を得るため
に、埋め込みフレームバッファ702の内容をメインメ
モリ112内のテクスチャにコピーするためにも用いら
れ得る。コピーアウト動作中において、アンチエイリア
シングおよびその他のフィルタリングを行うことができ
る。グラフィックスパイプライン180のフレームバッ
ファ出力(最終的には、メインメモリ112に格納され
る)は、各フレームごとにディスプレイ/ビデオインタ
ーフェースユニット164によって読み出される。ディ
スプレイコントローラ/ビデオインターフェースユニッ
ト164は、ディスプレイ102上に表示するためのデ
ジタルRGB画素値を提供する。
【0036】グラフィックスシステムアプリケーション
インターフェースの例 上述のように、メインプロセッサ110は、グラフィッ
クスおよび音声プロセッサ114にグラフィックスコマ
ンドを送る。これらのグラフィックスコマンドは、グラ
フィックスおよび音声プロセッサ114に何をすべきか
を指示する。例えばグラフィックスコマンドは、グラフ
ィックスおよび音声プロセッサ114に表示装置56上
で特定の画像を描画するように指示することができる。
またコマンドは、グラフィックスおよび音声プロセッサ
114に、スピーカ61によって出力されるための特定
の音声を生成するように指示してもよい。さらに別のコ
マンドは、グラフィックスおよび音声プロセッサ114
に、「準備」コマンドを実行するか、および/または後
の「動作」コマンドの準備として特定の状態をセットア
ップするように、指示し得る。
【0037】本実施例において、メインプロセッサ11
0がグラフィックスおよび音声プロセッサ114に送る
コマンドは、複数のソースに由来する。コマンドのソー
スの1つは、メインプロセッサ110自身である。例え
ば大容量記憶アクセス装置106および/またはブート
ROM134により供給されるプログラム命令の制御下
において、メインプロセッサ110は、グラフィックス
および音声プロセッサ114に送るためのプログラム制
御の下でグラフィックスコマンドを動的に作成または生
成することができる。メインプロセッサ110は、グラ
フィックスおよび音声プロセッサが理解する任意のコマ
ンドを、作成してグラフィックスおよび音声プロセッサ
114に送ることができる。グラフィックスおよび音声
プロセッサ114はコマンドに基づいて作動し、コマン
ドによって要求された動作を行う。
【0038】グラフィックスおよび音声プロセッサ11
4のためのグラフィックスコマンドのもう一つのソース
は、大容量記憶アクセス装置106である。メインプロ
セッサ110が動的にグラフィックスコマンドを作成す
るには若干の時間がかかる。システム50が、手持ちコ
ントローラ52またはその他からのリアルタイムの入力
に応答してあるシーンをアニメーションしているときに
は、グラフィックスおよび音声プロセッサ114に特定
の漫画またはその他のキャラクターを特定の位置に描画
するように指示するグラフィックスコマンドを、メイン
プロセッサ110が動的に作成するしかないかもしれな
い。この場合、ユーザがシステム50の手持ちコントロ
ーラ52を操作して他の入力デバイスに応答するので、
メインプロセッサ110はこれらのリアルタイム入力に
応答して表示されたシーンを調節またはアニメーション
することにより、対話式のアニメーションを提供するこ
とができる。このような楽しく刺激的な対話式のアニメ
ーションは概して、メインプロセッサ110がグラフィ
ックスコマンドを動的に「オンザフライ」で作成するこ
とによって提供される。
【0039】しかし時には、表示するべきシーンの一部
が比較的静的で、リアルタイム入力に応答して変化しな
いことがある。例えば、城、山の森、景色あるいは海中
世界などの複雑な3D世界の背景は、アニメーションさ
れるキャラクターがその世界中を移動する際に、あまり
変換しないかあるいはまったく変化しない。このような
場合、オフラインのオーサリングコンピュータを用いて
その特定のシーンまたはシーンの一部を描画するために
必要な複雑な一連のグラフィックスコマンドを作成し、
これらを予め構築された表示リストに格納しておくこと
が可能である。同様に、サウンドオーサリングシステム
によって、サウンドエフェクト、音楽およびその他の音
声をオフラインで予め生成しておくことが可能である。
結果として得られる表示リストおよび/または音声リス
トは、光ディスク62またはその他の大容量記憶装置に
記憶することができる。シーンを描画するおよび/また
は音声をプレイするときが来れば、大容量記憶装置62
から対応する表示リストおよび/または音声リストを単
に読み出してメインメモリ112に格納すればよい。次
にメインプロセッサ110は、プログラム制御下におい
て、予め構築された表示リストおよび/または音声リス
トをどこで見つければよいかをグラフィックスおよび音
声プロセッサ114に指示し、グラフィックスおよび音
声プロセッサにリストを実行することを命令する。この
ようにすれば、メインプロセッサ110は複雑な表示リ
ストおよび/または音声リストの作成のためにその処理
リソースをささげる必要がない。なぜなら、そのタスク
は、グラフィックスおよび音声プロセッサ114によっ
て使用される準備としてリストを予め編算するオフライ
ンのオーサリングシステムに、転嫁されるからである。
このような表示リストは、システム50内のまたはシス
テム50がアクセス可能な任意の記憶装置(限定されな
いがメモリカード144、フラッシュメモリ140、ブ
ートROM134、音声メモリ126などを含む)に記
憶され得る。これらのコマンドは、ゲートアレイなどの
ハードウェアに埋め込まれ得、そしてバス142、バス
132、手持ちコントローラポート、パラレルバス13
0、赤外線などの任意の外部インターフェースを介して
システム50に伝えられることができる。
【0040】さらに別の可能性は、グラフィックスおよ
び音声プロセッサ114によって処理されることを意図
されたコマンドが、ネットワーク138などのデータ通
信接続を介して到着することである。一例において、グ
ラフィックスコマンド、音声コマンド、および/または
その他のグラフィックスおよび音声プロセッサ114に
より処理を受けることが意図されたコマンドが、モデム
136を介してデータ通信ネットワーク138から到着
し得る。そのようなコマンドは例えば、対話式のマルチ
ユーザリモートゲームプレイを提供するために、図2に
示すのと同じ構成のリモートシステム50から送信され
得る。コマンドは、パーソナルコンピュータ、ミニコン
ピュータ、またはメインフレームコンピュータ、データ
送信器またはその他のデータソースを含む、任意の他の
ソースから発せられ得る。
【0041】グラフィックスおよび音声プロセッサ11
4用に意図されたコマンドがどのように到着するかおよ
び到着の前および/または後にどのように格納されるか
に関わらず、これらのコマンドをグラフィックスおよび
音声プロセッサ114によって処理させるための最初の
ステップは、これらコマンドをグラフィックスおよび音
声プロセッサに利用可能にすることである。本実施例に
おいて、コマンド転送のイミディエイトモードにおいて
メインプロセッサ110にデータバスを介してコマンド
を直接グラフィックスおよび音声プロセッサに送らせる
か、あるいは、グラフィックスおよび音声プロセッサ1
14がアクセス可能な何らかのメモリ(例えばメインメ
モリ112、音声メモリ126、またはグラフィックス
および音声プロセッサ114が結合された任意の他のメ
モリデバイス)に格納し、グラフィックスおよび音声プ
ロセッサにこれらのコマンドをどこで見つけたらよいか
を知らせ、そしてこれらのコマンドの処理を開始するよ
うに命令することにより、コマンドをグラフィックスお
よび音声プロセッサ114に利用可能にすることが達成
され得る。
【0042】グラフィックスコマンドストリーム 本実施例において、グラフィックスおよび音声プロセッ
サ114は、メインプロセッサ110および/または何
らかの他のソース(例えばメインメモリ112)から、
レジスタおよびその他のコマンドをグラフィックスコマ
ンドストリームの形で受け取り得る。一般に、メインプ
ロセッサ110からグラフィックスおよび音声プロセッ
サ114に送られるデータは、「コマンドストリーム」
と呼ばれ得る。コマンドストリームは、描画コマンドに
加え、頂点およびそれらの属性、ならびにグラフィック
スパイプライン180においてレジスタをロードしモー
ドを変更するためのメカニズムを保持する。グラフィッ
クスコマンドのストリームは、グラフィックスおよび音
声プロセッサ114に送られ、概して順次方法で処理を
受ける。これらのストリームコマンドは、いわゆる「イ
ミディエイトモード」において、書き込み集め器構成
(図4参照)を介してメインプロセッサ110からグラ
フィックスおよび音声プロセッサ114へ直接供給され
ることにより、メインプロセッサ110からグラフィッ
クスおよび音声プロセッサ114への非常に効率的なグ
ラフィックスおよび音声コマンドの転送を提供すること
ができる。グラフィックスコマンドストリームはまた、
メインメモリ112またはその他のメモリ、あるいはシ
ステム50内の他のデータ通信能力を介して、グラフィ
ックスおよび音声プロセッサ114に供給されてもよ
い。グラフィックスおよび音声プロセッサ114内のキ
ャッシュ/コマンドプロセッサ200は、メインメモリ
112からのコマンドストリームの取り出し、頂点属性
の取り出し(例えばコマンドストリームからあるいはメ
インメモリ内のアレイからなど)、属性タイプの適切な
フォーマット(例えば浮動小数点)への変換、および完
全な頂点を処理のためにグラフィックスパイプライン1
80の残りに転送することなどのタスクを実行する。
【0043】図5に示すようにコマンドストリームは、
先入れ先出しバッファ210(上述の2000年8月2
3日付け出願に係る仮出願No.60/226,912
および2000年11月28日付け出願に係るその対応
実用特許出願No.09/726,215(弁理士受付
番号723−959)を参照、いずれも「Method
and Apparatus for Buffer
ing Graphics Data in a Gr
aphics System」の名称を有する)から取
り出され、FIFOバッファ216に読み込まれる。コ
マンドプロセッサ200は、コマンドをストリップおよ
び復号化することにより、これに対応するデータの数を
決定する。次に、インデックス値に基づき、データがス
トリームから得られ、および/またはメインメモリ11
2内のアレイから取り出される。頂点属性は、変換エン
ジン300によって消費され得る浮動小数点データに変
換される。
【0044】以下は、本実施例におけるコマンドストリ
ームフォーマット例である。
【表1】
【0045】上記表1に示すように、グラフィックスコ
マンドストリームはレジスタロードコマンドを含み得
る。レジスタコマンドは一般に、グラフィックスおよび
音声プロセッサ114内部の特定のレジスタに特定の状
態情報を書き込む効果を有するコマンドである。グラフ
ィックスおよび音声プロセッサ114は、メインプロセ
ッサ110がアドレス可能である複数の内部レジスタを
有する。グラフィックスおよび音声プロセッサ114の
状態にある特定の変更を加えるために、メインプロセッ
サ110は、グラフィックスおよび音声プロセッサ11
4の内部の特定のレジスタに特定の値を書き込むことか
できる。レジスタコマンドは、メインプロセッサ110
がさらなるレジスタロードコマンドを送ることにより選
択的に変更することができる描画状態情報を、グラフィ
ックスパイプラインが維持することを可能にするという
利点を有する。
【0046】例えば、1つの描画コマンド中の頂点は全
て、1つの頂点に対応付けられた複数の属性を規定す
る、同じ頂点属性データ構造を共有し得る。ある描画コ
マンドの前に頂点属性情報の全てを送ることは高コスト
につく。従って、共通頂点タイプの大部分をグラフィッ
クスおよび音声プロセッサ114内のレジスタに格納
し、単にインデックスを格納されたテーブルに渡すこと
が望ましい。これらのテーブルは、新しい描画コマンド
が送られる毎に更新される必要はなく、時々更新される
のみでよい。本実施例において、コマンドプロセッサ2
00は、頂点コマンド記述子レジスタ(VCD)ならび
に、属性が存在するか否か、そして存在する場合にはイ
ンデックスされているか直接であるかを定義する、8エ
ントリの頂点属性テーブル(VAT)を保持している。
更新が必要なときには、「load_VCD」レジスタ
コマンドを用いてレジスタを更新する。
【0047】ある場合においてメインプロセッサ110
はまた、グラフィックスおよび音声プロセッサ114の
内部レジスタを読み出して、グラフィックスおよび音声
プロセッサの状態を決定し得る。例えばメインプロセッ
サ110は、グラフィックスおよび音声プロセッサ11
4をスタートおよびストップさせ、および/またはグラ
フィックスおよび音声プロセッサ内の内部レジスタに読
み出しおよび/または書き込みを行うことにより、その
一般状態を決定し得る。メインプロセッサ110はま
た、グラフィックスおよび音声プロセッサ114内のレ
ジスタに書き込むことにより、複数のグラフィックス値
(例えば変換行列、画素フォーマット、頂点フォーマッ
トなど)をローディングし得る。別の例として、メイン
プロセッサ110は、グラフィックスおよび音声プロセ
ッサ114がどこからさらなるコマンドを処理のために
得るのかを制御する、グラフィックスおよび音声プロセ
ッサ114内の一連のFIFO制御レジスタに書き込む
ことができる。
【0048】以下は、変換行列、頂点制御データ、頂点
属性テーブル、頂点配列、頂点間隔、およびその他のパ
ラメータを定義するために用いられるコマンドレジスタ
の例である。
【表2】
【0049】本実施例において、コマンドプロセッサ2
00はコマンドストリームを頂点ストリームに変換し、
これをさらなる処理のため変換ユニット300に送る。
変換ユニット300に送られる頂点ストリームは、現在
のモードに基づいて変更し得るが、頂点毎のデータ順序
は以下の表に示すように実質的に同じであり、固定であ
る。
【表3】 ストリーム中のワードの位置は順序に依存し、正確では
ない。例えば、頂点毎の色が供給されなければ、第1の
テクスチャはワード8ではなくワード6から開始する。
テクスチャは色の後に来る。
【0050】グラフィックスアプリケーション処理ルー
プの例 図6は、ビデオゲームプログラムなどのアプリケーショ
ンの制御下において、ディスプレイ56上で表示される
ためのグラフィックスを作成するためにシステム50に
よって実行され得るステップの、概略フローチャート例
を示す。まずシステム50がブートROM134からブ
ートされる(ブロック610)。システムブート中ある
いはブート後、メインプロセッサ110およびグラフィ
ックスおよび音声プロセッサ114が初期化され、オペ
レーティングシステムも初期化される(ブロック61
2)。こうしてシステム50は、ビデオゲームなどの特
定のアプリケーションについてそのロジックをセットア
ップされるための準備が整う(ブロック614)。適切
なグラフィックスコマンドストリームをグラフィックス
および音声プロセッサに送ることにより、グラフィック
スおよび音声プロセッサ114の状態がセットされる
(ブロック616)。こうしてシステム50は、プリミ
ティブを頂点データ構造および描画コマンドとして記述
するさらなるコマンドストリームを介して提供される頂
点情報を処理するための準備が整う(ブロック61
8)。埋め込みフレームバッファ702が完成された1
フレーム分のデータを有するようになると、グラフィッ
クスおよび音声プロセッサ114に送られたさらなるコ
マンドが、プロセッサに、その埋め込みフレームバッフ
ァをメインメモリ112内に割り当てられた外部フレー
ムバッファ113にコピーさせる(ブロック620)。
次にビデオインターフェース164を用いて、外部フレ
ームバッファ内の画像データを表示装置上に表示する
(ブロック622)。埋め込みフレームバッファから完
成されたフレームがコピーされると、図6のフレームル
ープ624によって示されるように、システムは次のフ
レームの処理を開始するための準備が整う。図7は、図
6に示した様々なステップの各々と関連して実行され得
る、可能なグラフィックスコマンドのいくつかをより詳
細に示している。
【0051】単純グラフィックスコマンドストリームの
例 例示目的として、図8は、ディスプレイ56上に1つの
グラフィックスプリミティブ(例えば1つの三角形)を
描画する、単純グラフィックスコマンドストリームの一
例を示す。この単純グラフィックスコマンドストリーム
例において、最初のグラフィックスコマンドの組は、グ
ラフィックスパイプライン180を初期化する(GXI
nit())(ブロック1002)。グラフィックスお
よび音声プロセッサ114がハードウェアリセットから
抜けたとき、その内部レジスタ値は未定義であるため、
ブートROM134および/またはアプリケーションプ
ログラムの制御下においてメインプロセッサ110によ
って設定されなければならない。グラフィックスおよび
音声プロセッサ114の状態を、実行されるべき特定の
アプリケーションに適切な既知かつ予め定義された状態
に設定するために、レジスタロードコマンドなどの一連
の初期化コマンドが発行され得る。もちろんアプリケー
ションはこれらの値のうちの任意のいずれかを、任意の
他の所望の値に動的にリセットすることができる。ただ
し、アプリケーション作業を節約するために、グラフィ
ックスおよび音声プロセッサ114を既知の機能するデ
フォルトグラフィックスモードで動作するようにセット
アップする一連の状態設定グラフィックス初期化コマン
ドを、ブートROM134が提供することが望ましいこ
ともある。
【0052】初期化の一例として、対応する埋め込み奥
行きバッファのz(距離)を各位置において無限遠に設
定した状態で、内部埋め込みフレームバッファ702を
全黒色値にクリア(セット)してもよい。このような
「セットコピークリア」命令は効果的に、グラフィック
スおよび音声プロセッサ114が次の画像を描画するこ
とができるきれいなキャンバスをセットアップし、本実
施例における埋め込みフレームバッファコピー動作中に
再作成される。図9は、グラフィックスおよび音声プロ
セッサ114に送られて、その内部フレームバッファ1
13を各全ての画素位置において黒色にクリア(セッ
ト)し、全画素において対応する内部奥行きバッファを
無限遠に設定するように制御し得る、2値データストリ
ームの例を示す。図示した特定の実施例において、この
ようなコマンドストリームは、 ・画素エンジンコピークリア(アルファ 赤) ・画素エンジンコピークリア(緑 青) ・画素エンジンコピークリア(z) の3つの画素エンジンレジスタロードコマンドからな
る。
【0053】本例において、各レジスタロードコマンド
の最初の部分は、「cp_cmd_su_bypas
s」コマンドストリング(0x61)(ここで「0x」
は16進数を表す)を含む。上記表1で説明したよう
に、このコマンドストリングは、グラフィックスパイプ
ライン180内の変換ユニット300より下のレジスタ
へのアクセスを提供する。このストリングの次に、画素
エンジンレジスタ指定(画素エンジンコピークリアアル
ファ/赤コマンドの場合0x4F)、1バイトパッド、
および1バイトアルファ値と1バイト赤値(黒はFF)
が続く。
【0054】同様なフォーマットがpe_copy_c
lear_green blueコマンドに対して用い
られるが、但し、最後の2バイトが緑値と青値を示し、
緑/青レジスタ値として異なる画素エンジンレジスタ指
定(0x50)が用いられる。同様に、cp_cmd_
su_bypassストリング(0x61)の後に続い
てレジスタ指定子0x51(画素エンジンz値レジスタ
を指定する)、さらに24ビットのz(奥行き)値を送
ることにより、pe_copy_clear_zコマン
ドが発行される。図9に示す3つのセットコピークリア
コマンドは、任意の順序で発行され得る(例えばセット
zコピークリアまたはセット緑/青コピークリアが最初
に発行されてもよい)。レジスタフォーマット例を示す
図10を参照のこと。
【0055】図9のコマンドの受領に応答して、画素エ
ンジン700は、指定されたアルファ、赤、緑、青、お
よびz値を埋め込みフレームバッファ702に書き込
む。
【0056】図8を再び参照して、ディスプレイ56に
画像を表示する準備としての次のステップは、描画され
るプリミティブの頂点に関連する様々なデータ構造を定
義することであり得る。図11の図は、例示目的とし
て、頂点を記述するために用いられ得る頂点および頂点
属性記述子の例を示す。本実施例において、所与のプリ
ミティブ内の全ての頂点は、同じ頂点記述子および頂点
属性フォーマットを有する。本実施例における頂点記述
子は、特定の頂点フォーマット中にどの属性が存在し、
それらがどのようにしてメインプロセッサ110(また
は他のソース)からグラフィックス114に送信される
か(例えば直接か間接か)を記述する。頂点属性フォー
マットは、特定の頂点フォーマット中の各属性のフォー
マット(例えばタイプ、サイズ、フォーマット、固定小
数点スケールなど)を記述する。頂点属性フォーマット
と頂点記述子とを併せて、頂点フォーマット全体と見な
し得る。
【0057】以下は、頂点属性テーブル(VAT)(前
出の「Vertex CacheFor 3D Com
puter Graphics」の名称を有する12/
17/99付け出願のシリアルNo.09/465,7
54も参照されたい)の一例であり、描画コマンド「v
at」フィールドでインデックス付けされ、そのテーブ
ルの各エントリは、13の属性の全てについての特性を
明記している。
【表4】
【0058】上記ならびにシリアルNo.09/46
5,754号出願に記載されているように、頂点記述子
情報中のエントリは、直接またはインデックス付けされ
ている。インデックス付けされた頂点属性は、配列に対
して値の代わりにインデックスを有する。インデックス
は、属性の配列の8ビットまたは16ビットポインタで
あり得る。本実施例において、コマンドプロセッサ20
0内の属性毎につき1つのベースアドレスレジスタが存
在する。インデックスは単に配列のオフセットではな
く、例えば属性中の構成要素の数、構成要素のサイズ、
位置揃え目的の属性間のパディング、および複数の属性
が同じ配列内でインターリーブされているか否かを含
む、複数のファクタに依存する。最大の柔軟性を得るた
めに、各属性について配列間隔レジスタもまた存在す
る。2つの属性間の距離(ソフトウェアにより演算され
る)が、このレジスタにロードされる。計算は、オフセ
ットの計算と、インデックス値に基づいた実際のメモリ
アドレスを計算とが用いられる。アドレス計算の一例は
以下のとおりである。 メモリアドレス= ArrayBase[I]+インデックス*Array
Stride[I]ここで、Iは属性番号である。1つ
の特定の実装例において、ArrayBase値は26
ビットのバイトアドレスであり、ArrayStrid
eは8ビット値である。
【0059】頂点は、直接属性と間接属性とを混ぜて有
していてもよい。短い値については、その値へのポイン
タよりもその実際の値を送った方がより効率的であり得
る。本実施例における任意の属性は、直接または配列の
インデックスのものとして送られ得る。
【0060】一般に、プリミティブを描画するために必
要なステップには、頂点フォーマット中どの属性が存在
するかを記述すること(すなわち頂点属性テーブルの定
義)、属性がインデックス付けされているか直接参照さ
れているかを記述すること(すなわち頂点記述子の定
義)、インデックス付けされたデータについて、配列ポ
インタおよび間隔によって参照され得る頂点配列を転送
すること、各属性中の要素の数およびそれらのタイプを
記述すること、プリミティブタイプを記述すること、お
よび最後に、描画コマンドとともに属性フォーマット中
の頂点記述に合致する頂点のストリームをグラフィック
スおよび音声プロセッサ114に送ることにより(図
8、ブロック1004、1006、1008を参照)、
プリミティブを描画することが含まれる。
【0061】図12は、頂点フォーマットの定義(図8
のブロック1004「頂点配列定義および位置揃え」を
参照)を助けるために用いられる「セットアレイ」コマ
ンドの一例を示す。本実施例において、「セットアレ
イ」コマンド例は、特定の頂点配列についてコマンドプ
ロセッサ配列ベースレジスタを設定し、またその配列に
ついて配列間隔レジスタを設定する。図12は、このコ
マンドのために用いられ得る特定の2値ビットパターン
例を示す。本例において、配列ベースレジスタを設定す
るために、グラフィックスコマンドストリームは、 ・「cp_cmd_load reg」(すなわちコマ
ンドプロセッサ200のレジスタにロード)を示す最初
の「0x08」値と、これに続き、 ・どの配列ベースレジスタがロードされるべきかを示す
2バイト値と、これに続き、 ・メモリ中の配列にアドレスを提供するさらなる4バイ
ト値 を含み得る。
【0062】この特定の例において、どの配列ベースレ
ジスタがロードされるべきかを示す2バイト値は「0x
Ax」のフォーマットを有しており、ここでバイト
「A」値の次の「x」バイトは、上記表4に述べた属性
のうちの特定の1つを符号化している。表4の属性(す
なわち行列インデックス)のうちのいくつかは、本実施
例における符号化に含まれないことに留意されたい。本
実施例においてメモリ中の4バイトアドレスは、0パデ
ィングからなる6個の最初のビットに続いて26ビット
のアドレスを提供することにより符号化される。配列間
隔レジスタ値の設定も、3番目および4番目のバイトが
配列間隔レジスタを示す点を除いて同様である(例え
ば、「0xBx」および次の値は、その配列の最初の2
4ビット0パディング値および8ビット間隔値を含む4
バイトを構成する)。
【0063】再び図8を参照して、描画コマンドを発行
する前のさらなるステップは、頂点記述子および頂点属
性テーブルをセットアップすることであり得る(ブロッ
ク1006)。図13は、頂点記述子を設定するために
用いられるコマンドストリームの例を示す。本実施例に
おいて、頂点記述子の設定は、表示されるべきプリミテ
ィブに関連する特定の頂点記述子属性を指定するため
に、コマンドプロセッサ200中の2つの関連するレジ
スタ値(「vcd_lo」「vcd_hi」)を設定す
ることを包含する。図13は、グラフィックスおよび音
声プロセッサ114にvcd_loレジスタおよびvc
d_hiレジスタをロードするように指示するために用
いられる(例えば「0x0850」をvcd_loレジ
スタ例に、「0x0860」をcp_vcd_hiレジ
スタのローディングを指定するために)、特定の2値符
号化を示す。これらの4バイトコマンドのそれぞれに続
く値は、上述の表4に示すとおり、および図13に示す
特定の2値ビットパターンスロットで符号化されたとお
りの、特定の頂点属性値を示す。
【0064】より詳細には、VCD_lo VCD_h
iレジスタに格納された頂点記述子は、表4に示した2
0の属性の各々につき少なくとも1ビットを含み、この
ビットはその属性が直接に提供されるのか配列を介して
提供されるのかを概して示す。本実施例において、VC
D_loレジスタは17ビット値を含んでおり、表4中
の最初の12個の属性の各々について直接であるかイン
デックス付けされているかを示すビットフラグを提供す
る。その特定のビット符号化を表4の最後の列に示して
いる。属性の符号化のいくつかは、属性が存在するか否
かを示し(属性は存在する場合常に直接なので)、他の
符号化は複数ビットにわたり、属性がインデックス付け
されている場合のインデックスタイプに関する情報を提
供することを留意されたい(例えば「位置」値は2ビッ
トにわたってもよく、「01」値が直接、「10」が8
ビットインデックス、「11」が16ビットインデック
スとしてもよい)。同様にVCD_hiレジスタは、前
述の表4に示すように、属性13〜20に対応するビッ
トフィールドを含む(テクスチャ0座標からテクスチャ
7座標)。
【0065】より抽象的なレベルにおいては、GXSe
tVtxDescコマンドは、ある属性が頂点データ中
に存在するか否か、およびそれがインデックス付けされ
ているか直接であるかを示すために用いられる。アクテ
ィブな頂点記述子は1つしかなく、現頂点記述子として
既知である。GXSetVtxDescコマンドは、現
頂点記述子中の全ての属性についてGX_NONEの値
を設定することによって、この属性についてのデータは
頂点中に存在しないことを示すために用いられる。VC
Dレジスタがクリアされると、アプリケーションは自身
が提供しようとする属性を記述するだけでよい。表4に
示すように、可能な属性は、 ・位置、GX_VA_POS(この属性は全ての頂点記
述子について必要) ・法線、GX_VA_NRM、または法線/従法線/接
線、GX_VA_NBT ・Color_0、GX_VA_CLR0 ・Color_1、GX_VA_CLR1 ・最高8個のテクスチャ座標、GX_VA_TEX0〜
7 ・位置/法線行列インデックス、GX_VA_PNMT
XIDX ・テクスチャ行列インデックス、GX_VA_TEX0
MTXIDX〜GX_VA_TEX7MTXIDXであ
る。
【0066】列挙したうち最後の2つの属性は、オンチ
ップ行列メモリ中の変換行列を参照するために用いられ
る8ビットインデックスである。これは例えば、キャラ
クタの単純なスキニングをサポートする。これらのイン
デックスは、直接データとしてのみ送られ得るという点
において他の属性とは異なる。
【0067】グラフィックスプロセッサ(GP)114
は、アプリケーションが表4に示す昇順で指定した任意
の属性データを送出することを仮定している。すなわ
ち、 順属性 0 GX_VA_PNMTXIDX 1 GX_VA_TEX0MTXIDX 2 GX_VA_TEX1MTXIDX 3 GX_VA_TEX2MTXIDX 4 GX_VA_TEX3MTXIDX 5 GX_VA_TEX4MTXIDX 6 GX_VA_TEX5MTXIDX 7 GX_VA_TEX6MTXIDX 8 GX_VA_TEX7MTXIDX 9 GX_VA_POS 10 GX_VA_NRMまたはGX_VA_NBT 11 GX_VA_CLR0 12 GX_VA_CLR1 13 GX_VA_TEX0 14 GX_VA_TEX1 15 GX_VA_TEX2 16 GX_VA_TEX3 17 GX_VA_TEX4 18 GX_VA_TEX5 19 GX_VA_TEX6 20 GX_VA_TEX7 である。
【0068】テクスチャ座標は、GX_VA_TEX0
に始まって順に有効にされる。
【0069】属性データフォーマットの記述 図14および15は、頂点属性フォーマットを設定する
ためのコマンドストリームの例を示す。頂点属性フォー
マットテーブル(VAT)は、アプリケーションが各属
性のフォーマットを最高8個の異なる頂点フォーマット
まで指定することを可能にする。VATは図16に示す
ように系統立てられている。アプリケーションは8個の
所定の頂点フォーマットをテーブルに格納できる。頂点
中の各属性について、アプリケーションは、 ・その属性の要素の数 ・フォーマットおよびサイズ情報 ・スケールパラメータを用いた固定小数点フォーマット
のための小数ビットの数(スケールパラメータは色また
は浮動小数点データには関係しない) を指定することができる。
【0070】頂点属性フォーマットコマンド例(GXS
etVtxAttrFmt) //インデックス属性n要素フォーマットn 小数ビッ
トのフォーマット GXSetVtxAttrFmt(GX_VTXFMT
0,GX_VA_POS,GX_POS_XYZ,GX
_S8,0); GXSetVtxAttrFmt(GX_VTXFMT
0,GX_VA_CLR0,GX_CLR_RGBA,
GX_RGBA8,0);
【0071】上記の高レベルコードは、頂点属性フォー
マットゼロを定義する。GX_VTXFMT0は、「位
置」が3要素座標(x,y,z)であり、ここで各要素
は8ビットの2の補数符号付き数であることを示す。ス
ケール値は、固定小数点の小数ビットの数を示すため、
ゼロはデータが小数ビットがないことを示す。2番目の
コマンドは、GX_VA_CLR0属性が4つの要素
(r、g、b、a)を有しており各要素が8ビットであ
ることを示す。行列インデックスフォーマットは常に符
号なし8ビット値であるため、テーブル中に明記してい
ない。スケール値は法線に対してのものであり(スケー
ル=6またはスケール=14)、色には必要でない。ま
た、法線は3個の要素Nx、Ny、Nz(GX_VA_
NRMの場合)および9個の要素Nx、Ny、Nz、B
x、By、Bz、Tx、Ty、Tz(GX_VA_NB
Tの場合)を有すると仮定している。法線は一般に、常
に符号付き値である。法線フォーマット(GX_VA_
NRM)は、従法線/接線が現頂点記述子において許可
されている場合、従法線/接線(GX_VA_NBT)
にも用いられる。グラフィックスプロセッサ中のVAT
は、8個の頂点フォーマットのための空間を有する。ア
プリケーションはその属性量子化フォーマットの大部分
をそのアプリケーションの初期において記述することが
でき、このテーブルを必要に応じてローディングする。
そしてアプリケーションは、一群のプリミティブの描画
を開始するときに頂点属性データフォーマットを指定す
る、このテーブルのインデックスを提供する。アプリケ
ーションが8個より多くの頂点フォーマットを必要とす
る場合、新しい頂点フォーマットを必要に応じて再ロー
ディングすることによってVATテーブルを管理しなけ
ればならない。
【0072】図14および15は、頂点属性テーブル
(VAT)の一例をローディングするようにグラフィッ
クスおよび音声プロセッサ114を制御するための、2
値レベルコマンドの例を示す。本実施例において、VA
Tは3つの別々のレジスタロード(VAT_A、VAT
_B、VAT_C)をスピンするので、頂点属性フォー
マットの設定は、グラフィックスおよび音声プロセッサ
114の3つの内部「VAT」レジスタに値を書き込む
ことを必要とする。すなわち、 ・cp_VAT_Aレジスタに書き込むための「0x0
870」[4バイト値] ・cp_VAT_Bレジスタに書き込むための「0x0
880」[4バイト値] ・cp_VAT_Cレジスタに書き込むための「0x0
890」[4バイト値] である。
【0073】図14に示すように、VAT_Aレジスタ
書き込みのための2値ビットフィールド符号化は、位
置、法線、色1、色2、テクスチャ0座標、および図示
した2値パターンスロット中の他の情報(すなわちバイ
ト脱量子化および法線インデックスビット)を提供する
ことを包含する。同様に、VAT_Bレジスタ書き込み
のための2値ビットフィールド符号化は、テクスチャ座
標1、テクスチャ座標2、テクスチャ座標3およびテク
スチャ座標4の一部のためのフォーマッティング情報を
提供することを包含し、VAT_Cレジスタに格納され
る情報は、テクスチャ座標4の残り、テクスチャ座標
5、テクスチャ座標6およびテクスチャ座標7について
の属性フォーマット情報を提供する。図14および15
は、使用され得る特定のビットパターン符号化を示す。
これら特定の属性のさらなる説明を表5に述べる。
【表5】
【0074】グラフィックスプリミティブの定義および
描画 図17は、以下を含む、グラフィックスシステム50が
サポートする異なるタイプのプリミティブのいくつかを
例示する。 ・GX_POINTS −− n個の頂点の各々に点を
描画する。 ・GX_LINES −− 連結されていない一連の線
分を描画する。線分はv0とv1との間、v2とv3と
の間、のように描画される。描画される頂点の数は2の
倍数でなければならない。 ・GX_LINESTRIP −− 一連の連結された
直線を、v0からv1へ、次にv1からv2へ、のよう
に描画する。n個の頂点が描画されれば、n−1本の直
線が描画される。 ・GX_TRIANGLES −− v0、v1、v
2、そしてv3、v4、v5と言うように頂点を用い
て、一連の三角形を描画する(3辺を有する多角形)。
描画される頂点は3の倍数でなければならず、最小数は
3である。 ・GX_TRIANGLSTRIP −− v0、v
1、v2、そしてv1、v3、v2(順序に注意)、そ
してv2、v3、v4と言うように頂点を用いて一連の
三角形(3辺を有する多角形)を描画する。頂点の数は
少なくとも3でなければならない。 ・GX_TRIANGLEFAN −− v0、v1、
v2、そしてv0、v2、v3と言うように頂点を用い
て一連の三角形(3辺を有する多角形)を描画する。頂
点の数は少なくとも3でなければならない。 ・GX_QUADS −− v0、v1、v2、v3か
ら始めて次にv4、v5、v6、v7、と言うようにし
て一連の非平面上の四角形(4辺を有する多角形)を描
画する。四角形は実際には2つの三角形を用いて描画さ
れるため、4個の頂点は同一平面上にある必要はない。
四角形の2つの三角形の間の対角共通端は図12に示す
ように方向付けられていることに留意。頂点の最小数は
4である。
【0075】アプリケーションは、GXBegin/G
XEnd対の間で頂点関数(GXPosition、G
XColorなど)を呼び出すことによりプリミティブ
を描画する。アプリケーションは、GXSetVtxD
esc()を用いて有効にする各属性について頂点関数
を呼び出さなければならない。各頂点関数は、GXDa
ta[n][t]の形式の添字を有し、これらは、頂点
関数に渡される要素の数(n)およびタイプ(t)を記
述する。
【0076】以下の断片的ケースは、頂点関数を用いて
どのようにプリミティブを描画するかを示す。 GXBegin(GX_TRIANGLES,GX_V
TXFMT0,3); GXPosition1x8(0); // 位置への
インデックス GXColor1x16(0); // 色へのインデ
ックス GXPosition1x8(1); GXColor1x16(1); GXPosition1x8(2); GXColor1x16(2); GXEnd();
【0077】GXBeginは、プリミティブのタイ
プ、VATに対するインデックス、およびGXBegi
n/GXEnd対の間の頂点の数を指定する。この情報
ならびにGXSetVtxDesc()の最後の呼び出
しが、プリミティブ、頂点、および属性フォーマットを
完全に記述する。GXEnd()は、GXBegin/
GXEnd対が正しくペアにされていることを確実にす
るために用いられ得る、実際には無効なマクロである。
【0078】投影行列のローディング 図17は、投影行列を変換ユニット300にロードする
ために用いられる2値ビットストリームの例を示す(図
8、ブロック1004参照)。図8に関連して説明した
ように、アプリケーションは、ある空間から別の空間に
(例えばオブジェクト空間から世界空間へ)プリミティ
ブを変換するために、一般に投影行列を定義する。変換
ユニット300はこの投影行列を用いて、プリミティブ
中の頂点を自動的に変換する。
【0079】図17は、投影行列を変換ユニット300
にロードするために用いられ得る2値ビットストリーム
の例を示す。本実施例において、このローディングプロ
セスは、「cp_cmd_xf_loadregs」を
示す2値ビットパターン「0x10」の後4バイト値を
グラフィックスおよび音声プロセッサ114に送ること
を包含する。この4バイト値において、最初の11ビッ
トは0パディングであり、続くビットは、変換ユニット
300内のレジスタアドレス(ビット0〜15)および
ロードされる変換ユニット内の32ビットレジスタ(ビ
ット16〜19)の数を示す。これらのビットパターン
の後に、投影行列値を指定する1から16個の32ビッ
トワードのシーケンスが続く。
【0080】本実施例において、変換ユニット300内
の全てのレジスタは、一意に定まる32bアドレスにマ
ッピングされる。全てのアドレスがxformレジスタ
ロードコマンド(コマンド0x30)に利用可能であ
る。第1番目のブロックはマトリクスメモリによって形
成される。アドレス範囲は0から1kであるが、256
個のエントリのみが用いられる。このメモリは、64エ
ントリ×4つの32bワードとして構成されている。各
ワードは一意に定まるアドレスを有し、単精度浮動小数
点数である。ブロック書き込みに対して、アドレスは自
動的にインクリメントする。メモリは4〜32b未満の
ramとして実装され、この場合このブロックへのメモ
リ書き込みは、1ワードより大きな最小書き込みサイズ
を要求する可能性がある。
【表6】
【0081】メモリの第2番目のブロックは、1k〜
1.5kの範囲にマッピングされる。このメモリは通常
の(normal)マトリクスメモリである。これは3
ワードずつの32行として構成される。各ワードは一意
に定まるアドレスを有し、単精度浮動小数点数である。
また、書き込まれる各ワードは32bであるが、上位2
0ビットのみが保持される。簡潔さのため、書き込みの
最小の細分性は3ワードとなる。
【表7】
【0082】メモリの第3番目のブロックは、デュアル
テクスチャ変換行列を保持する。このフォーマットは行
列メモリの第1番目のブロックと同じである。これらの
行列にも4ワードずつの64行が存在する。これらの行
列は、通常の(normal)テクスチャの双対変換に
のみ用いることができる。
【表8】
【0083】メモリの第4番目のブロックは、ライティ
ングメモリである。これは、全てのライティング情報
(光ベクトル、光パラメータなど)を保持する。大域状
態および周囲状態の両方がこのメモリに格納される。書
き込まれる各ワードは32bであるが、上位20ビット
のみが保持される。各行の幅は3ワードである。最小ワ
ード書き込みサイズは3ワードである。
【0084】コール表示リストコマンド例 前出の「Method and Apparatus
for Buffering Graphics Da
ta in a Graphics System」の
名称を有する2000年11月28日付け出願に係る特
許出願No.09/726,215(弁理士受付番号7
23−959)に記載されているように、システム50
は表示リストを呼び出す能力を有する。図19は、表示
リストなどの表示オブジェクトを呼び出すために用いら
れる2値ビットストリームフォーマットの例を示す。図
示した例において、2値ビットパターンフォーマット
は、「CP_CMD_CALLOBJECT」を示す先
頭の「0x40」に続いて、メモリ内の表示リストの4
バイトのアドレスおよび表示リストの4バイトカウント
またはサイズを含む。4バイトアドレスフィールドは、
先頭7ビットの0パディングに続いて25ビット値を含
み得る。4バイトカウント値は、先頭7ビットのパディ
ングに続いて、表示リストのカウントまたはサイズを3
2バイトのチャンクで示す25ビットカウント値を含み
得る。
【0085】他の互換性のある実施例 上述のシステム要素50のうちのいくつかは、上述の家
庭用ビデオゲームコンソール構成以外としても実施可能
である。例えば、システム50用に書かれたグラフィッ
クスアプリケーションまたはその他のソフトウェアを、
システム50をエミュレートするなどして互換性を有す
る異なる構成を持ったプラットフォーム上で実行するこ
とができる。もしその別のプラットフォームがシステム
50のハードウェアおよびソフトウェアリソースの一部
または全部をうまくエミュレート、シミュレートおよび
/または提供することができれば、その別のプラットフ
ォームは、ソフトウェアを首尾よく実行することができ
る。
【0086】一例として、エミュレータは、システム5
0のハードウェアおよび/またはソフトウェア構成(プ
ラットフォーム)とは異なるハードウェアおよび/また
はソフトウェア構成(プラットフォーム)を提供し得
る。このエミュレータシステムは、アプリケーションソ
フトウェアが書かれたシステムのハードウェアおよび/
またはソフトウェア要素の一部または全部をエミュレー
トまたはシミュレートする、ソフトウェアおよび/また
はハードウェア要素を有し得る。例えば、エミュレータ
システムは、システム50のハードウェアおよび/また
はファームウェアをシミュレートするソフトウェアエミ
ュレータプログラムを実行するパーソナルコンピュータ
などの汎用のデジタルコンピュータからなっていてもよ
い。
【0087】汎用デジタルコンピュータのいくつか(例
えばIBMまたはマッキントッシュのパーソナルコンピ
ュータおよび互換機)は現在、DirectXまたはそ
の他の標準的な3DグラフィックスコマンドAPIと適
合する3Dグラフィックスパイプラインを提供する3D
グラフィックスカードを備えている。また、標準的な音
声コマンドのセットに基づいて高品質なステレオ音を提
供するステレオサウンドカードを備えている場合もあ
る。このようなマルチメディア−ハードウェアを備えた
パーソナルコンピュータがエミュレータソフトウェアを
実行すれば、システム50のグラフィックスおよびサウ
ンド性能に匹敵する十分な能力を有し得る。エミュレー
タソフトウェアは、ゲームプログラマがゲームソフトウ
ェアを書いた対象である家庭用ビデオゲームコンソール
プラットフォームの処理、3Dグラフィックス、音声、
周辺およびその他の機能をシミュレートするように、パ
ーソナルコンピュータプラットフォーム上のハードウェ
アリソースを制御する。
【0088】図20は、ホストプラットフォーム120
1、エミュレータ要素1303、および記憶媒体62上
に記憶されたゲームソフトウェア実行可能2値画像を用
いたエミュレーション処理の全体例を示す。ホスト12
01は、例えばパーソナルコンピュータ、ビデオゲーム
コンソール、または十分な演算能力を有する任意のその
他のプラットフォームなどの、汎用あるいは専用のデジ
タル演算装置であり得る。エミュレータ1303は、ホ
ストプラットフォーム1201上で稼働し、記憶媒体6
2からのコマンド、データおよびその他の情報の、ホス
トによって処理される形式へのリアルタイム変換を提供
するソフトウェアおよび/またはハードウェアであり得
る。例えば、エミュレータ1303は、システム50に
よって実行されることが意図される「ソース」2値画像
プログラム命令を記憶媒体62から取り込み、これらの
プログラム命令を、ホスト1201によって実行その他
の処理を行われ得る対象形式に変換する。
【0089】一例として、ソフトウェアが、IBM P
owerPCまたはその他の特定のプロセッサを用いた
プラットフォーム上で実行されるように書かれており、
ホスト1201が異なる(例えばインテルの)プロセッ
サを用いたパーソナルコンピュータである場合は、エミ
ュレータ1303は、1つまたは一連の2値画像プログ
ラム命令を記憶媒体62から取り込み、これらのプログ
ラム命令を、1つ以上の同等なインテルの2値画像プロ
グラム命令に変換する。エミュレータ1303はまた、
グラフィックスおよび音声プロセッサ114によって処
理されることを意図されたグラフィックスコマンドおよ
び音声コマンドを取り込みおよび/または生成し、これ
らのコマンドを、ホスト1201上において利用可能で
あるハードウェアおよび/またはソフトウェアグラフィ
ックスおよび音声処理リソースによって処理され得る単
数または複数のフォーマットに変換する。一例として、
エミュレータ1303は、これらのコマンドを、ホスト
1201の特定のグラフィックスおよび/または音声ハ
ードウェアによって処理され得るコマンドに変換し得る
(例えば、標準的なDirectX、OpenGL、お
よび/または音声APIを用いて)。
【0090】上述のビデオゲームシステムの一部または
全ての特徴を提供するために用いられるエミュレータ1
303には、また、そのエミュレータを用いて実行され
るゲームの様々なオプションやスクリーンモードの選択
を単純化あるいは自動化するグラフィックスユーザイン
ターフェース(GUI)が備えられてもよい。一例にお
いて、そのようなエミュレータ1303は、また、ソフ
トウェアが本来意図されたホストプラットフォームに比
較して、より高度な機能性をさらに含んでもよい。
【0091】図21は、エミュレータ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)などもまた使用さ
れ得る。
【0092】エミュレータ1303を含む複数のプログ
ラムモジュールは、ハードディスク1211、着脱式磁
気ディスク1215、光ディスク1219、および/ま
たはシステムメモリ1205のROM1252および/
またはRAM1254上に記憶され得る。このようなプ
ログラムモジュールは、グラフィックスおよび音声AP
Iを提供するオペレーティングシステム、1つ以上のア
プリケーションプログラム、その他のプログラムモジュ
ール、プログラムデータおよびゲームデータを含んでも
よい。ユーザは、キーボード1227、ポインティング
装置1229、マイク、ジョイスティック、ゲームコン
トローラ、衛星放送用アンテナ、スキャナなどの入力装
置を介して、コマンドおよび情報を、パーソナルコンピ
ュータシステム1201に入力し得る。これらおよびそ
の他の入力装置は、システムバス1207に接続された
シリアルポートインターフェース1231を介して処理
ユニット1203に接続されることができるが、パラレ
ルポート、ゲームポートファイヤワイヤバスまたはユニ
バーサルシリアルバス(USB)などの他のインターフ
ェースによって接続されてもよい。また、モニタ123
3またはその他のタイプの表示装置が、ビデオアダプタ
1235などのインターフェースを介して、システムバ
ス1207に接続される。
【0093】システム1201は、インターネットなど
のネットワーク1152を介して通信を確立するため
の、モデム1154やその他のネットワークインターフ
ェース手段を有し得る。内部でも外部でもよいモデム1
154が、シリアルポートインターフェース1231を
介してシステムバス123に接続されている。また、シ
ステム1201が、局所エリアネットワーク1158を
介してリモート演算装置1150(例えば、別のシステ
ム1201)と通信することを可能にするために、ネッ
トワークインターフェース1156が提供され得る(あ
るいはこのような通信は、広域ネットワーク1152ま
たはダイヤルアップやその他の通信手段などの他の通信
パスを介して行われてもよい)。システム1201は典
型的には、プリンタその他の標準的な周辺デバイスなど
の、他の周辺出力デバイスを有し得る。
【0094】一例において、ビデオアダプタ1235
は、マイクロソフトのDirectX7.0または他バ
ージョンなどの標準的な3Dグラフィックスアプリケー
ションプログラマインターフェースに基づいて発せられ
る3Dグラフィックスコマンドに応答して、高速な3D
グラフィックスレンダリングを提供する3Dグラフィッ
クスパイプラインチップセットを有し得る。また1組の
ステレオスピーカ1237が、従来の「サウンドカー
ド」などのサウンド発生インターフェースを介してシス
テムバス1207に接続されていることにより、バス1
207によって供給される音声コマンドに基づいて高品
質なステレオ音声を生成するためのハードウェアおよび
埋め込みソフトウェアサポートを提供する。これらのハ
ードウェア能力は、システム1201が、記憶媒体に格
納されたソフトウェアをプレイするために十分なグラフ
ィックスおよびサウンド速度能力を提供することを可能
にする。
【0095】高レベルAPIセルの例 以下に、前述の2値レベルコマンドストリームを作成す
るためにライブラリが解釈および/または演算する、高
レベルAPIセル例を示す。
【0096】 GXSetCopyClear 引数: GXColor ClearColor; //コピー中にフレームバ ッファをクリアする色値。 u32 ClearZ; //コピー中にフレームバッファを クリアする24ビットz値。 これは、コピー動作中においてフレームバッファをクリ
アするために用いられる2つのクリア値を設定する。
【0097】 GXSetVtxDesc 引数: GXAttr Attr; //どの属性か(位置、法線、色など) 。 GXAttrType Type; //属性タイプ(なし、直接、インデッ クスなど)。 この関数は、現頂点記述子(すなわち頂点属性レジス
タ)中の1つの属性のタイプを設定するために用いられ
る。頂点属性レジスタは、頂点にどの属性が存在し、各
属性がどのように参照されるかを定義する。
【0098】 GXSetVtxAttrFmt 引数: GXVtxFmt vtxfmt; //頂点属性テーブル(0〜7)に インデックス付けする。 GXAttr Attr; //属性タイプ。 GXCompCnt CompCnt; //その属性についての構成要素 の数 GXCompType CompType //各構成要素のタイプ。 u8 Shift; //固定小数点フォーマットタイ プにおける小数点の位置。 この関数は、頂点属性フォーマットテーブル(VAT)
中の1つの属性の属性フォーマットを設定する。VAT
頂点属性配列中には8個の頂点フォーマットが存在す
る。各レジスタは、頂点パケットにおいて用いられ得る
全ての属性のデータタイプおよび成分タイプを記述す
る。アプリケーションは8個のレジスタの全てを予めプ
ログラムしておき、ジオメトリの実際の描画中にそのう
ち1つを選択することができる。
【0099】 GXSetArray 引数: GXAttr Attr; //属性タイプ。 u32 Base; //メインメモリ中の属性データ配列のアド レス(25:0)。 u8 Stride;//属性配列中の連続する要素間のバイト数。 この関数は、各インデックス付けされた属性について、
メインメモリ中のデータ配列のアドレスおよび間隔を設
定する。システムは、インデックス付けされた属性が頂
点パケットとともに送られるときに、これらの配列を用
いて実際のデータを得る。
【0100】 GXSetProjection 引数: f32 Matrix[4][4] //投影行列。 GXProjMtxType type; //投影が正投影であるかどう かを示す。 投影行列パラメータを設定する。投影行列は以下のよう
に指定される。 透視投影:
【数1】 正投影:
【数2】
【0101】本明細書において参照した全ての文献は、
参考のため、明示的に述べたと同様に明示的に援用す
る。
【0102】本明細書において、「0x」と言う表記は
16進数の値を表す。例えば、「0x61」は16進数
値を表す。例えば、「0x61」は2バイトの16進数
値「61」を表し、当業者はこれが2進数形式では「0
1100001」となることを理解する。16進数表記
から2進数表記への変換については下記の表9を参照の
こと。
【表9】 以上、本発明を、最も実用的で好ましい実施形態である
と現時点で判断される内容について説明してきたが、本
発明は、開示された実施形態にのみ制限されるべきもの
ではなく、反対に、記載したクレームの範囲内において
様々に変更、および同等な内容が適用されるものとす
る。
【図面の簡単な説明】
【図1】図1は、対話式コンピュータグラフィックスシ
ステムの一例の全体図である。
【図2】図1の例のコンピュータグラフィックスシステ
ムのブロック図である。
【図3】図2に示す例のグラフィックスおよび音声プロ
セッサのブロック図である。
【図4】図3に示す例の3Dグラフィックスプロセッサ
のブロック図である。
【図5】図4の3Dグラフィックスおよび音声プロセッ
サの、論理フロー図例である。
【図6】図1のグラフィックスシステム用のアプリケー
ション例によって実行される機能の全体フローチャート
である。
【図7】図6の機能をより詳細に示すフローチャートで
ある。
【図8】単純グラフィックスコマンドストリームの例を
示す。
【図9】図1のシステムの埋め込み色および奥行きバッ
ファを、特定の(例えば初期)値に設定するための2値
レベルインターフェースの例を示す。
【図10】画素エンジンコピークリアレジスタフォーマ
ットの例を示す。
【図11】記述情報例を含む頂点データ構造階層の例を
示す。
【図12】頂点属性配列を定義する2値レベルインター
フェースの例を示す。
【図13】頂点記述子を定義する2値レベルインターフ
ェースの例を示す。
【図14】頂点属性テーブルを定義する2値レベルイン
ターフェースの例を示す。
【図15】頂点属性テーブルを定義する2値レベルイン
ターフェースの例を示す。
【図16】頂点属性フォーマットテーブルの例を概略図
示する。
【図17】本明細書における頂点データ構造を用いて表
現され得る、グラフィックスプリミティブの例を示す。
【図18】投影行列を定義する2値レベルインターフェ
ースの例を示す。
【図19】呼び出される表示リストを定義する2値レベ
ルインターフェースの例を示す。
【図20】別の互換的な実施例を示す図である。
【図21】別の互換的な実施例を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート ムーア アメリカ合衆国 ワシントン州 98052 レドモンド 150アベニューノースイース ト 4820 ニンテンドウ・オブ・アメリ カ・インコーポレーテッド内 (72)発明者 ハワード エイチ チェン アメリカ合衆国 ワシントン州 98053 レドモンド 212プレイスノースイースト 2005 Fターム(参考) 5B050 AA10 BA08 BA09 BA10 BA18 CA03 CA07 EA09 EA10 EA26 FA02 5B069 AA01 AA16 BA03 HA13 LA18 5B080 CA01 CA04 CA05 CA09 FA02 FA03 GA02 GA22

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 グラフィックスシステムコマンドストリ
    ームであって、 ストリームコマンド0x614Fに続いてパッド、アル
    ファ値および赤色値と、 ストリームコマンド0x6150に続いてパッド、緑色
    値および青色値と、 ストリームコマンド0x6151に続いて24ビットz
    値とを含む、グラフィックスシステムコマンドストリー
    ム。
  2. 【請求項2】 データ構造を格納する記憶媒体であっ
    て、 前記データ構造は、 ストリームコマンド0x614Fに続いてパッド、アル
    ファ値および赤色値と、 ストリームコマンド0x6150に続いてパッド、緑色
    値および青色値と、 ストリームコマンド0x6151に続いて24ビットz
    値とを含む、記憶媒体。
  3. 【請求項3】 グラフィックスコマンドストリーム復号
    化器であって、 ストリームコマンド0x614Fに続いてパッド、アル
    ファ値および赤色値を復号化する第1の復号化部と、 ストリームコマンド0x6150に続いてパッド、緑色
    値および青色値を復号化する第2の復号化部と、 ストリームコマンド0x6151に続いて24ビットz
    値を復号化する第3の復号化部とを含む、グラフィック
    スコマンドストリーム復号化器。
  4. 【請求項4】 グラフィックスコマンドストリームを生
    成する方法であって、 ストリームコマンド0x614Fに続いてパッド、アル
    ファ値および赤色値を生成することと、 ストリームコマンド0x6150に続いてパッド、緑色
    値および青色値を生成することと、 ストリームコマンド0x6151に続いて24ビットz
    値を生成することとを含む、方法。
  5. 【請求項5】 グラフィックスコマンドストリームであ
    って、 「A」の後の2番目の「x」が属性インディケータを符
    号化している0x08Axを含む配列ベースロードレジ
    スタコマンドと、 26ビットアドレスを含む32ビット値と、 「B」の後の2番目の「x」が属性インディケータを符
    号化しているストリームコマンド0x08Bxと、 その後に続く、配列の間隔を示す8ビットを含む32ビ
    ット値とを含む、グラフィックスコマンドストリーム。
  6. 【請求項6】 データ構造を格納する記憶媒体であっ
    て、 前記データ構造は、 「A」の後の2番目の「x」が属性インディケータを符
    号化している0x08Axを含む、配列ベースロードレ
    ジスタコマンドと、 26ビットアドレスを含む32ビット値と、 「B」の後の2番目の「x」が属性インディケータを符
    号化しているストリームコマンド0x08Bxと、 その後に続く、配列の間隔を示す8ビットを含む32ビ
    ット値とを含む、記憶媒体。
  7. 【請求項7】 グラフィックスコマンドストリーム復号
    化器であって、 2番目の「x」が属性インディケータを符号化している
    0x08Axを含む、配列ベースロードレジスタコマン
    ドを復号化する第1の復号化部と、 26ビットアドレスを含む32ビット値を復号化する第
    2の復号化部と、 2番目の「x」が属性インディケータを符号化している
    ストリームコマンド0x08Bxを復号化する第3の復
    号化部と、 その後に続く、配列の間隔を示す8ビットを含む32ビ
    ット値を復号化する第4の復号化部とを含む、復号化
    器。
  8. 【請求項8】 グラフィックスコマンドストリームを生
    成する方法であって、 2番目の「x」が属性インディケータを符号化している
    0x08Axを含む配列ベースロードレジスタコマンド
    を生成することと、 26ビットアドレスを含む32ビット値を生成すること
    と、 2番目の「x」が属性インディケータを符号化している
    ストリームコマンド0x08Bxを生成することと、 その後に続く、配列の間隔を示す8ビットを含む32ビ
    ット値を生成することを含む、方法。
  9. 【請求項9】 グラフィックスコマンドストリームであ
    って、 ストリームコマンド0x0850に続いて、12個まで
    の属性の属性インデックス情報を定義する17ビットを
    含む32ビット値と、 さらなるストリームコマンド0x0860に続いて、さ
    らに8個までの属性の属性インデックス情報を符号化し
    ている16ビットを含む32ビット値とを含む、グラフ
    ィックスコマンドストリーム。
  10. 【請求項10】 データ構造を格納する記憶媒体であっ
    て、 前記データ構造は、 ストリームコマンド0x0850に続いて、12個まで
    の属性の属性インデックス情報を定義する17ビットを
    含む32ビット値と、 さらなるストリームコマンド0x0860に続いて、さ
    らに8個までの属性の属性インデックス情報を符号化し
    ている16ビットを含む32ビット値とを含む、記憶媒
    体。
  11. 【請求項11】 グラフィックスコマンドストリーム復
    号化器であって、 ストリームコマンド0x0850に続いて、12個まで
    の属性の属性インデックス情報を定義する17ビットを
    含む32ビット値を復号化する第1の復号化部と、 さらなるストリームコマンド0x0860に続いて、さ
    らに8個までの属性の属性インデックス情報を符号化し
    ている16ビットを含む32ビット値を復号化する第2
    の復号化部とを含む、グラフィックスコマンドストリー
    ム復号化器。
  12. 【請求項12】 グラフィックスコマンドストリームを
    生成する方法であって、 ストリームコマンド0x0850に続いて、12個まで
    の属性の属性インデックス情報を定義する17ビットを
    含む32ビット値を生成することと、 さらなるストリームコマンド0x0860に続いて、さ
    らに8個までの属性の属性インデックス情報を符号化し
    ている16ビットを含む32ビット値を生成することと
    を含む、方法。
  13. 【請求項13】 グラフィックスコマンドストリームで
    あって、 グラフィックスコマンド0x0870に続いて、位置、
    法線、第1の色、第2の色、テクスチャ0座標の属性情
    報、さらにバイト脱量子化フラグおよび法線インデック
    スフラグを含む4バイト値と、 少なくとも1つのテクスチャ座標属性を定義する、少な
    くとも1つの追加的なストリームコマンドとを含む、グ
    ラフィックスコマンドストリーム。
  14. 【請求項14】 データ構造を格納する記憶媒体であっ
    て、 前記データ構造は、 グラフィックスコマンド0x0870に続いて、位置、
    法線、第1の色、第2の色、テクスチャ0座標の属性情
    報、さらにバイト脱量子化フラグおよび法線インデック
    スフラグを含む4バイト値と、 少なくとも1つのテクスチャ座標属性を定義する、少な
    くとも1つの追加的なストリームコマンドとを含む、記
    憶媒体。
  15. 【請求項15】 グラフィックスコマンドストリーム復
    号化器であって、 グラフィックスコマンド0x0870に続いて、位置、
    法線、第1の色、第2の色、テクスチャ0座標の属性情
    報、さらにバイト脱量子化フラグおよび法線インデック
    スフラグを含む4バイト値を復号化する第1の復号化部
    と、 少なくとも1つのテクスチャ座標属性を定義する、少な
    くとも1つの追加的なストリームコマンドを復号化する
    少なくとも1つの追加的な復号化部とを含む、グラフィ
    ックスコマンドストリーム復号化器。
  16. 【請求項16】 グラフィックスコマンドストリームを
    生成する方法であって、 グラフィックスコマンド0x0870に続いて、位置、
    法線、第1の色、第2の色、テクスチャ0座標の属性情
    報、さらにバイト脱量子化フラグおよび法線インデック
    スフラグを含む4バイト値を生成することと、 少なくとも1つのテクスチャ座標属性を定義する、少な
    くとも1つの追加的なストリームコマンドを生成するこ
    ととを含む、方法。
  17. 【請求項17】 グラフィックスコマンドストリームで
    あって、 ビットパターン「00010000」と、これに続き、 パッドと、これに続き、 変換ユニットレジスタ位置を示す16ビットのアドレス
    および何個のワードが続くかを示すさらなる5ビットを
    含む21ビット値と、これに続き、 投影行列要素値を提供する少なくとも1つの追加的な3
    2ビットワードとを含む、グラフィックスコマンドスト
    リーム。
  18. 【請求項18】 データ構造を格納する記憶媒体であっ
    て、 前記データ構造は、 ビットパターン「00010000」と、これに続き、 パッドと、これに続き、 変換ユニットレジスタ位置を示す16ビットのアドレス
    および何個のワードが続くかを示すさらなる5ビットを
    含む21ビット値と、これに続き、 投影行列要素値を提供する少なくとも1つの追加的な3
    2ビットワードとを含む、記憶媒体。
  19. 【請求項19】 グラフィックスコマンドストリーム復
    号化器であって、 ビットパターン「00010000」を復号化する第1
    の復号化部と、これに続き、 パッドを復号化する第2の復号化部と、これに続き、 変換ユニットレジスタ位置を示す16ビットのアドレス
    および何個のワードが続くかを示すさらなる5ビットを
    含む21ビット値を復号化する第3の復号化部と、これ
    に続き、 投影行列要素値を提供する少なくとも1つの追加的な3
    2ビットワードを復号化する少なくとも1つの追加的な
    復号化部とを含む、グラフィックスコマンドストリーム
    復号化器。
  20. 【請求項20】 グラフィックスコマンドストリームを
    生成する方法であって、 ビットパターン「00010000」を生成すること
    と、これに続き、 パッドを生成することと、これに続き、 変換ユニットレジスタ位置を示す16ビットのアドレス
    および何個のワードが続くかを示すさらなる5ビットを
    含む21ビット値を生成することと、これに続き、 投影行列要素値を提供する少なくとも1つの追加的な3
    2ビットワードを生成することとを含む、方法。
  21. 【請求項21】 グラフィックスコマンドストリームで
    あって、 ビットパターン「01000000」と、これに続き、 パッドと、これに続き、 メモリ内の表示リストのアドレスを示す25ビット値
    と、これに続き、 パッドと、これに続き、 前記表示リストのサイズを32バイトチャンクで示す2
    5ビット値とを含む、グラフィックスコマンドストリー
    ム。
  22. 【請求項22】 データ構造を格納する記憶媒体であっ
    て、 前記データ構造は、 ビットパターン「01000000」と、これに続き、 ビットパターン「0000000」と、これに続き、 メモリ内の表示リストのアドレスを示す25ビット値
    と、これに続き、 ビットパターン「0000000」と、これに続き、 前記表示リストのサイズを32バイトチャンクで示す2
    5ビット値とを含む、記憶媒体。
  23. 【請求項23】 グラフィックスコマンドストリーム復
    号化器であって、 ビットパターン「01000000」を復号化する第1
    の復号化部と、 ビットパターン「0000000」を復号化する第2の
    復号化部と、 メモリ内の表示リストのアドレスを示す25ビット値を
    復号化する第3の復号化部と、 ビットパターン「0000000」を復号化する第4の
    復号化部と、 前記表示リストのサイズを32バイトチャンクで示す2
    5ビット値を復号化するさらなる復号化部とを含む、グ
    ラフィックスコマンドストリーム復号化器。
  24. 【請求項24】 グラフィックスコマンドストリームを
    生成する方法であって、 ビットパターン「01000000」を生成すること
    と、これに続き、 ビットパターン「0000000」を生成することと、
    これに続き、 メモリ内の表示リストのアドレスを示す25ビット値
    と、これに続き、 ビットパターン「0000000」を生成することと、
    これに続き、 前記表示リストのサイズを32バイトチャンクで示す2
    5ビット値を生成することとを含む、方法。
JP2001249925A 2001-08-21 2001-08-21 グラフィックシステムインターフェース Pending JP2003058902A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001249925A JP2003058902A (ja) 2001-08-21 2001-08-21 グラフィックシステムインターフェース

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001249925A JP2003058902A (ja) 2001-08-21 2001-08-21 グラフィックシステムインターフェース

Publications (1)

Publication Number Publication Date
JP2003058902A true JP2003058902A (ja) 2003-02-28

Family

ID=19078841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001249925A Pending JP2003058902A (ja) 2001-08-21 2001-08-21 グラフィックシステムインターフェース

Country Status (1)

Country Link
JP (1) JP2003058902A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249796A (ja) * 2006-03-17 2007-09-27 Sony Corp 画像処理装置および画像処理方法、並びにプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249796A (ja) * 2006-03-17 2007-09-27 Sony Corp 画像処理装置および画像処理方法、並びにプログラム
JP4492567B2 (ja) * 2006-03-17 2010-06-30 ソニー株式会社 画像処理装置および画像処理方法、並びにプログラム
US8134557B2 (en) 2006-03-17 2012-03-13 Sony Corporation Image processing apparatus and image processing method

Similar Documents

Publication Publication Date Title
US6697074B2 (en) Graphics system interface
US6411301B1 (en) Graphics system interface
US6466218B2 (en) Graphics system interface
JP4890638B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
US6636214B1 (en) Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6618048B1 (en) 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US7176919B2 (en) Recirculating shade tree blender for a graphics system
US7196710B1 (en) Method and apparatus for buffering graphics data in a graphics system
US6664962B1 (en) Shadow mapping in a low cost graphics system
US7129956B2 (en) Variable bit field color encoding
US7061502B1 (en) Method and apparatus for providing logical combination of N alpha operations within a graphics system
CA2163938A1 (en) Method of producing image data, image data processing apparatus, and recording medium
US6606689B1 (en) Method and apparatus for pre-caching data in audio memory
US7369665B1 (en) Method and apparatus for mixing sound signals
JP2003058902A (ja) グラフィックシステムインターフェース
JP4740490B2 (ja) グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング
JP2002230580A (ja) 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム
JP2002245472A (ja) オーディオメモリ内のデータを予めキャッシュする方法及び装置