JP4698894B2 - Method, apparatus and program for texture tiling in a graphics system - Google Patents
Method, apparatus and program for texture tiling in a graphics system Download PDFInfo
- Publication number
- JP4698894B2 JP4698894B2 JP2001206703A JP2001206703A JP4698894B2 JP 4698894 B2 JP4698894 B2 JP 4698894B2 JP 2001206703 A JP2001206703 A JP 2001206703A JP 2001206703 A JP2001206703 A JP 2001206703A JP 4698894 B2 JP4698894 B2 JP 4698894B2
- Authority
- JP
- Japan
- Prior art keywords
- texture
- tile
- indirect
- coordinates
- texture coordinates
- 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.)
- Expired - Lifetime
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、コンピュータグラフィックスに関し、より特定的には、家庭用ビデオゲームプラットフォームのような対話式グラフィックスシステムに関する。さらにより特定的には、改良されたテクスチャタイリング方法および装置であって、間接テクスチャインデックスマップを用いて、タイル定義マップ内のテクスチャタイルを参照し、テクスチャタイルをレンダリングされたプリミティブにマッピングするものに関する。本発明は、さらに、合成(ブレンドされた)テクスチャタイルをタイル定義マップから作成することができ、テクスチャパターンが繰り返し現れないような方法で、当該テクスチャタイルをプリミティブに対してマッピングすることができる。
【0002】
【従来の技術】
我々の多くは、非常に現実感のある恐竜や宇宙人、アニメ化されたおもちゃといった空想的な生物を含む映像を目にしたことがある。このようなアニメーションは、コンピュータグラフィックスによって可能となっている。このような技術を用いて、コンピュータグラフィックス製作者は、各物体がどのように見えるか、および時間の経過に伴ってどのような外見上の変化が生じるかを特定することができる。そして、コンピュータが、物体をモデル化し、テレビやコンピュータ画面などのディスプレイに表示する。表示画像の各部分の着色や形状が、そのシーンに存在する個々の物体の位置や向き、各物体に対する照明方向、各物体の面の質感、その他様々な要素に基づいて確実にうまく行われるために必要な数多くのタスクは、コンピュータが引き受ける。
【0003】
コンピュータグラフィックスの生成は複雑なため、ほんの数年前まで、コンピュータで作成した3次元グラフィックスの活用は、高価で専門化されたフライトシミュレータやハイエンドグラフイックスワークステーション、スーパーコンピュータにほぼ限定されていた。人々は、コンピュータシステムによって生成された画像を、映画や制作費の高いテレビ広告において目にすることはあっても、グラフィックス生成を行うコンピュータに実際に接することはできなかった。このような状況が変化したのは、ニンテンドウ64(登録商標)やパーソナルコンピュータで利用可能な各種の3Dグラフィックスカードなど、比較的安価な3Dグラフィックスプラットフォームの出現によるものである。今や、自宅や勤務先でも、比較的安価なコンピュータグラフィックスシステム上において、迫力のある3Dアニメーションやシミュレーションと対話的に接することが可能となっている。
【0004】
かつてグラフィックスシステム設計者が直面した問題は、レンダリングされたオブジェクトについての現実感のある面の細部を、ポリゴンや他の幾何学的なプリミティブを使わずに、いかにして作成するかということであった。面の細部をシミュレートすることは、たとえば、無数の小さな三角形に対して頂点間を補間したシェーディングを行うことにより可能ではあるが、所望される細部がより高度に、かつより複雑になるにつれ、三角形などのプリミティブで明確なモデリングを行うと、グラフィックシステムへの負担が大きくなって、あまり現実的でなくなる。E.キャットムルによって開発され、J.F.ブリンおよびM.E.ニューウェルによって改良された他の技術は、デジタル化または合成化によって画像を表面に「マップ」するというものである(「曲面のコンピュータディスプレイのための細分アルゴリズム」、E.キャットムル、博士論文、レポートUTEC−CSc−74−133,コンピュータ科学部、ユタ大学、ソルトレイクシティ、ユタ州、1994年12月、および「コンピュータ生成画像のテクスチャおよび反射」、J.F.ブリンおよびM.E.ニューウェル、CACM、19(10)、1976年10月、452〜457頁)。この手法は、テクスチャマッピング(またはパターンマッピング)として知られており、画像は、テクスチャマップ(または単にテクスチャと称する)と呼ばれる。代わりに、テクスチャマップは、画像ではなく処理によって定義されてもよい。
【0005】
典型的には、テクスチャマップは、2次元の矩形座標空間において定義され、たとえば(u,v)または(s,t)のような直交テクスチャ座標の対を用いてパラメータ化される。テクスチャマップ内の個々の成分は、しばしばテクセルと呼ばれる。レンダリングされた各ピクセルにおいて、選択されたテクセルが用いられて、レンダリングされたオブジェクト表面の1つ以上の主要特性を置換またはスケーリングする。この処理は、しばしばテクスチャマッピングまたは「テクスチャリング」と称される。
【0006】
現在、3次元グラフィックスレンダリングシステムのほとんどは、テクスチャリングサブシステムを含んでいる。このシステムは、メモリからテクスチャを取得して、当該テクスチャをレンダリングされたオブジェクト表面にマッピングするためのものである。グラフィックスシステム設計者が直面している問題は、「テクスチャタイリング」などのより高度なテクスチャ関連効果を、いかにして効率よく便利な方法で行うかということである。通常、テクスチャタイリングでは、テクスチャタイル形式のテクスチャを、2次元表面などのレンダリングされたオブジェクト表面にタイル毎にマッピングすることが行われる。テクスチャタイルは、テクスチャメモリに記憶されたテクスチャのタイル形状部によって定義される。異なるタイルのアレイまたはマトリックスも、テクスチャメモリ内で定義することができる。タイルの大きさや形状は、レンダリングされた特定の表面にタイルをマッピングしやすいように選ばれうる。タイルの大きさは様々であり、レンダリングされた表面を覆うのに多数のタイルが必要であるように定義してもよい。定義されると、テクスチャタイルは、レンダリングされた表面上の特定の位置に置かれ、テクスチャリングされた表面を作り出す。
【0007】
このタイリング効果は、たとえば各所望のタイル毎にポリゴンを描くことによって、過去においても達成されてきた。しかしながら、この手法は、処理オーバーヘッドやメモリの使い方という点で、高くつきかねない。さらに、先行技術のタイリング技術から生じる問題として、タイリングされた表面は、見る者から見てわかるような繰り返しパターンを有しかねないということがある。繰り返しパターンが生じる理由は、表面をタイリングする際にプログラマが利用可能な異なるテクスチャタイルの数が通常限られているからである。したがって、壁、床、地被植物などの広い表面全体を完全に覆うためには、同一のテクスチャタイルを何度も使用することになる。このような同一のタイルを繰り返し使用すると、レンダリングされたシーンの現実感が損なわれかねない。なぜなら、多くの場合、当該タイリング処理によって生じた繰り返しのテクスチャパターンを、人間の目は認識してしまうからである。グラフィックスシステム設計者が直面している他の問題としては、テクスチャタイリング処理を行うために間接テクスチャ処理をどのように利用するかということがある。これにより、テクスチャタイリングに関連して過去に有意義な研究がなされてきているのにもかかわらず、さらなる改良が可能であり、また望まれる。
【0008】
本発明は、この問題を解決するものであり、グラフィックスシステムにおけるテクスチャタイリングを効率的に実施するために用いることができる技術および機構を提供するものである。本発明によって、より現実感のあるテクスチャタイリング済みの表面を作成することができ、これにより、表示されたテクスチャリング済みの表面を見る者が、テクスチャ内の繰り返しパターンに気づくことを減少させるか、全くなくしてしまうようにすることができる。また、本発明により、テクスチャタイル間をブレンディングすることによって、疑似3次元テクスチャを作成することもできる。さらに、本発明により、間接テクスチャ処理を効率的かつ効果的な方法で行って、テクスチャタイリングを達成することができる。
【0009】
本発明が提供する一局面によれば、テクスチャタイリング方法であって、
・テクスチャ座標を生成し、
・間接タイルインデックスマップを用いて、テクスチャ座標を修正し、
・修正されたテクスチャ座標を用いて、タイル定義マップからテクスチャタイルを選択し、
・選択されたテクスチャタイルを表示することを含む、方法である。
【0010】
本発明の他の局面によれば、疑似3次元タイリング方法であって、
・直接テクスチャ座標のセットを定義し、
・間接テクスチャ座標のセットを定義し、
・間接テクスチャ座標を用いて、オフセット値を取得し、
・オフセット値を少なくとも1つの直接テクスチャ座標と組み合わせて、第1の修正されたテクスチャ座標を生成し、
・第1の修正されたテクスチャ座標のセットを用いて、タイル定義マップから第1のテクスチャタイルを取得し、
・オフセット値をバイアスし、
・バイアスされたオフセット値を用いて、直接テクスチャ座標を修正し、
・修正されたオフセット値を、少なくとも1つの直接テクスチャ座標と組み合わせて、第2の修正されたテクスチャ座標のセットを生成し、
・第2の修正されたテクスチャ座標のセットを用いて、タイル定義マップから第2のテクスチャタイルを取得し、
・第1のテクスチャタイルおよび第2のテクスチャタイルをブレンドして、合成テクスチャタイルを生成することを含む、方法である。
【0011】
【発明の実施の形態】
図1は、対話式3Dコンピュータグラフィックスシステム50の例を示す。システム50は、興味をそそる立体音響を伴う対話式3Dビデオゲームをプレイするのに用いることができる。また、これは、他の様々な用途に応用できる。
【0012】
本例において、システム50は、デジタル表現や3次元世界モデルを、対話的にリアルタイムで処理することができる。システム50は、世界のすべてまたは一部を、任意の視点から表示することができる。たとえば、システム50は、手持ちコントローラ52aおよび52bなどの入力装置からのリアルタイム入力に応答して、視点を対話的に変化させることができる。これにより、ゲームプレイヤは、世界の内部または外部の者から見た世界を見ることができる。システム50は、リアルタイム3D対話式表示を要求しないような用途(たとえば、2D表示生成および/または非対話式表示)に用いることもできるが、上質の3D画像を非常に高速に表示する能力は、現実感の高いおもしろいゲームプレイなどの視覚的な対話を生成するのに用いることができる。
【0013】
システム50を用いてビデオゲームなどのアプリケーションをプレイするためには、ユーザは、まず、ケーブル58を用いて、メインユニット54をユーザのカラーテレビ56などの表示装置に接続する。メインユニット54は、カラーテレビ56を制御するためのビデオ信号および音声信号を生成する。ビデオ信号は、テレビ画面59に表示される画像を制御するものであり、音声信号は、テレビのステレオスピーカ61Lおよび61Rを介して、音として再生される。
【0014】
また、ユーザは、メインユニット54を電源に接続する必要がある。この電源は、家庭の壁にある電気コンセントに差し込む従来のACアダプタ(図示せず)であってもよく、家庭用電流を、メインユニット54に電力供給するのに適切な、より低いDC電圧信号に変換する。他の態様として、電池を用いることも可能である。
【0015】
ユーザは、ハンドコントローラ52aおよび52bを用いて、メインユニット54を制御してもよい。たとえば、操作部60を用いて、テレビ56に表示されるキャラクタが3次元世界内で移動すべき方向(上または下、左または右、近または遠)を指定することができる。また、操作部60は、他の用途のための入力を与える(たとえば、メニュー選択、ポインタ/カーソル制御など)。コントローラ52は、様々な形態を取り得る。本例においては、図示された各コントローラ52は、ジョイスティック、押しボタン、および/または方向スイッチなどの操作部60を含む。コントローラ52のメインユニット54への接続は、ケーブルであってもよいし、電磁波(たとえば、電波または赤外線波)を介した無線であってもよい。
【0016】
ゲームなどのアプリケーションをプレイするためには、ユーザは、プレイしたいと思う当該ビデオゲームなどのアプリケーションを記憶する適切な記憶媒体62を選択して、当該記憶媒体をメインユニット54内のスロット64に挿入する。記憶媒体62は、たとえば、特に符号化されたおよび/または暗号化された光学および/または磁気ディスクであってもよい。ユーザは、電源スイッチ66を操作して、メインユニット54をオンして、記憶媒体62に記憶されたソフトウェアに基づいてビデオゲームなどのアプリケーションの実行を開始してもよい。ユーザは、コントローラ52を操作して、メインユニット54に入力を与えてもよい。たとえば、操作部60を操作すると、ゲームなどのアプリケーションが開始されてもよい。他の操作部60を動かすと、動くキャラクタを異なる方向へ移動させたり、3D世界内でのユーザの視点を変化させたりすることができる。記憶媒体62内に記憶された特定のソフトウェアに基づいて、コントローラ52上の様々な制御部60は、異なる時に異なる機能を実行することができる。
【0017】
<システム全体の電子回路例>
図2は、システム50の構成要素例のブロック図を示す。主な構成要素は以下のものを含む。
・メインプロセッサ(CPU)110、
・メインメモリ112、および
・グラフィックス&音声プロセッサ114
【0018】
本例においては、メインプロセッサ110(たとえば、拡張されたIBMPowerPC750)は、グラフィックス&音声プロセッサ114を介して手持ちコントローラ108(および/または他の入力装置)からの入力を受ける。メインプロセッサ110は、ユーザ入力に対話的に応答して、たとえば外部記憶媒体62から光学ディスクドライブなどの大容量記憶アクセス装置106を介して供給されるビデオゲームなどのプログラムを実行する。一例として、ビデオゲームプレイの場合、メインプロセッサ110は、様々な対話的な制御機能に加えて、衝突検出や動画処理を行うことができる。
【0019】
本例において、メインプロセッサ110は、3Dグラフィックスコマンドおよび音声コマンドを生成して、グラフィックス&音声プロセッサ114に送る。グラフィックス&音声プロセッサ114は、これらのコマンドを処理して、興味をそそる視覚的な画像をディスプレイ59に生成したり、興味をそそる立体音響をステレオスピーカ61Rおよび61Lなどの適切な音発生装置に生成したりする。
【0020】
本例のシステム50が含むビデオエンコーダ120は、グラフィックス&音声プロセッサ114から画像信号を受信して、当該画像信号を、コンピュータモニタや家庭用カラーテレビ56などの標準的な表示装置に表示するのに適切なアナログおよび/またはデジタルビデオ信号に変換する。また、システム50が含む音声コーデック(圧縮器/伸長器)122は、デジタル化された音声信号の圧縮および伸長を行い、また、必要に応じて、デジタルまたはアナログ音声信号形式への変換を行ってもよい。音声コーデック122は、音声入力をバッファ124を介して受信して、グラフィックス&音声プロセッサ114に与えて、処理を行うことができる(たとえば、プロセッサが生成した他の音声信号とミキシングするおよび/または大容量記憶アクセス装置106のストリーミング音声出力を介して受信する)。本例のグラフィックス&音声プロセッサ114は、音声関連情報を音声タスク用に利用可能な音声メモリ126に記憶することができる。グラフィックス&音声プロセッサ114は、処理結果の音声出力信号を音声コーデック112に与えて、スピーカ61Lおよび61Rによって再生できるように、(たとえば、バッファ増幅器128Lおよび128Rを介して)伸長やアナログ信号への変換が行われる。
【0021】
グラフィックス&音声プロセッサ114は、システム50内にある様々な付加的な装置と通信を行うことが可能である。たとえば、パラレルデジタルバス130が、大容量記憶アクセス装置106および/または他の構成要素との通信に用いられてもよい。シリアル周辺機器バス132が、様々な周辺機器などの機器との通信に用いられてもよく、それらの機器としては、たとえば、以下のものを含む。
・プログラム可能な読み出し専用メモリおよび/またはリアルタイムクロック134、
・モデム136などのネットワークインターフェース(インターネットなどのデジタルネットワークのような、プログラム命令および/またはデータをダウンロードしたりアップロードしたりすることが可能な電気通信ネットワーク138に対して、システム50を接続するようなものであってもよい)、および
・フラッシュメモリ140。
【0022】
別の外部シリアルバス142が、付加的な拡張メモリ144(たとえば、メモリカード)などの装置との通信に用いられてもよい。コネクタが、様々な装置をバス130、132、および142を接続するために用いられてもよい。
【0023】
<グラフィックス&音声プロセッサの例>
図3は、グラフィックス&音声プロセッサ114の例のブロック図である。一例として、グラフィックス&音声プロセッサ114は、単一チップASIC(特定用途向けIC)であってもよい。本例において、グラフィックス&音声プロセッサ114は、以下のものを含む。
・プロセッサインターフェース150、
・メモリインターフェース/コントローラ152、
・3Dグラフィックスプロセッサ154、
・音声デジタル信号プロセッサ(DSP)156、
・音声メモリインターフェース158
・音声インターフェース&ミキサ160
・周辺機器コントローラ162、および
・ディスプレイコントローラ164。
【0024】
3Dグラフィックスプロセッサ154は、グラフィック処理タスクを行う。音声デジタル信号プロセッサ156は、音声処理タスクを行う。ディスプレイコントローラ164は、画像情報をメインメモリ112からアクセスして、それをビデオエンコーダ120に与えて、表示装置56に表示させる。音声インターフェース&ミキサ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グラフィックスプロセッサ154は、特に、コマンドプロセッサ200と、3Dグラッフィックスパイプライン180とを含む。メインプロセッサ110は、データのストリーム(たとえば、グラフィックスコマンドストリームやデータリスト)をコマンドプロセッサ200に伝達する。メインプロセッサ110は、メモリの待ち時間を最小限にするための2レベルキャッシュ115を有し、また、グラフィックス&音声プロセッサ114向けの未キャッシュのデータストリームのためのライトギャザリングバッファ111も有する。ライトギャザリングバッファ111は、部分キャッシュラインを集めて完全キャッシュラインとし、このデータを1キャッシュラインずつグラフィックス&音声プロセッサ114に送出して、バスが最大限に利用できるようにする。
【0027】
コマンドプロセッサ200は、メインプロセッサ110から表示コマンドを受信し、これを解析して、処理に必要な付加データを共通メモリ112から取得する。コマンドプロセッサ200は、頂点コマンドのストリームをグラフィックスパイプライン180に与えて、2Dおよび/または3D処理およびレンダリングを行う。グラフィックスパイプライン180は、これらのコマンドに基づいて画像を生成する。生成された画像情報は、メインメモリ112に転送されて、表示制御部/ビデオインターフェース部164によってアクセスできるようにしてもよく、それによって、ディスプレイ56にパイプライン180のフレームバッファ出力が表示される。
【0028】
図5は、グラフィックスプロセッサ154の論理フロー図である。メインプロセッサ110は、グラフィックスコマンドストリーム210と、表示リスト212と、頂点アレイ214とをメインメモリ112に記憶してもよく、バスインターフェース150を介してポインタをコマンドプロセッサ200に渡す。メインプロセッサ110は、メインメモリ110内に割り当てた1つ以上のグラフィックス先入れ先出し(FIFO)バッファ210にグラフィックスコマンドを記憶する。コマンドプロセッサ200は、以下のものを取り出す。
・グラフィックスコマンドを受信およびバッファリングして、同期/フロー制御およびロードバランシングを行うオンチップFIFOメモリバッファ216を介して、メインメモリ112からのコマンドストリーム、
・オンチップ呼び出しFIFOメモリバッファ218を介して、メインメモリ112からの表示リスト212、および
・コマンドストリームからの、および/または頂点キャッシュ220を介してメインメモリ112内の頂点アレイ214からの頂点属性。
【0029】
コマンドプロセッサ200は、コマンド処理動作200aを行って、属性型を浮動小数点形式に変換し、その結果の完全な頂点ポリゴンデータをグラフィックスパイプライン180に渡して、レンダリング/ラスタライズする。プログラム可能なメモリ調停回路130(図4参照)は、グラフィックスパイプライン180、コマンドプロセッサ200、および表示制御部/ビデオインターフェース部164の間で共通のメインメモリ112に対するアクセスを調停する。
【0030】
図4に示すように、グラフィックスパイプライン180は、以下のものを含んでもよい。
・変換部1300、
・セットアップ/ラスタライザ400、
・テクスチャ部500、
・テクスチャ環境部600、および
・ピクセルエンジン部700。
【0031】
変換部300は、2Dおよび3D変換などの様々な処理300aを行う(図5参照)。変換部300は、変換処理300aに用いられるマトリックスを記憶する1以上のマトリックスメモリ300bを含んでもよい。変換部300は、頂点毎に入力される形状を、オブジェクト空間から画面空間へ変換し、入力されるテクスチャ座標を変換して投影テクスチャ座標を計算する(300c)。変換部300は、ポリゴンクリッピング/カリング(300d)を行ってもよい。また、変換部300bによって行われるライティング処理300eによって、一実施例においては、8個の独立した光に対するライティング計算が頂点毎に行われる。また、変換部300は、エンボス型のバンプマッピング効果を出すためのテクスチャ座標生成(300c)や、ポリゴンクリッピング/カリング処理(300d)を行うこともできる。
【0032】
セットアップ/ラスタライザ400は、セットアップ部を含む。セットアップ部は、頂点データを変換部300から受信して三角形セットアップ情報を1以上のラスタライザ(400b)に送信して、エッジラスタライズ、テクスチャ座標ラスタライズ、およびカラーラスタライズを行う。
【0033】
テクスチャ部500(オンチップテクスチャメモリ(TMEM)502を含んでもよい)、テクスチャリング関連の様々なタスクを行う。タスクには、たとえば、以下のものが含まれる。
・メインメモリ112からテクスチャ504を取り出す、
・たとえばマルチテクスチャ処理、ポストキャッシュテクスチャ伸展、テクスチャフィルタリング、エンボス、投影テクスチャを用いたシャドウおよびライティング、ならびにアルファ透明およびデプスを用いたBLITを含む、テクスチャ処理(500a)、
・バンプマッピング、疑似テクスチャ、テクスチャタイリング効果のためのテクスチャ座標変換量を計算するバンプマップ処理(500b)、および
・間接テクスチャ処理(500c)。
【0034】
図6から図29は、通常(非間接)および間接テクスチャルックアップ処理を行うためのテクスチャ処理の例を示す。グラフィックスパイプライン回路ならびに通常および間接テクスチャルックアップ処理を行う手順については、共通して譲渡された同時係属特許出願番号60/226,891、名称「グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置」(代理人整理番号723−849)を参照のこと。この出願のすべての内容は引用によって合体される。
【0035】
テクスチャ部500は、透過されたテクスチャ値をテクスチャ環境部600に出力して、テクスチャ環境処理を行う(600a)。テクスチャ環境部600は、ポリゴンとテクスチャカラー/アルファ/デプスをブレンドし、テクスチャフォグ処理(600b)をも行って、インバースレンジに基づくフォグ効果を達成する。テクスチャ環境部600は、複数のステージを提供して、たとえばカラー/アルファ・モジュレーション、エンボス、ディテールテクスチャリング、テクスチャスワッピング、クランピング、およびデプスブレンディングに基づいて、他の興味をそそる様々な環境関連の機能を行うことができる。テクスチャ環境部600に関するさらなる詳細は、共通して譲渡された同時係属特許出願番号60/226,888、名称「グラフィクスシステム用再循環シェードツリーブレンダ」(代理人整理番号723−851)を参照のこと。この出願の内容は、本願に合体される。
【0036】
ピクセルエンジン700は、デプス(z)比較(700a)およびピクセルブレンディング(700b)を行う。本例において、ピクセルエンジン700は、組み込み(オンチップ)フレームバッファメモリ702にデータを記憶する。グラフィックスパイプライン180は、1以上の組み込みDRAMメモリ702を含んでもよく、フレームバッファの内容および/またはテクスチャ情報をローカルに記憶する。現在有効なレンダリングモードによっては、Z比較700a’は、グラフィックスパイプラインの早い段階において行われることもできる(たとえば、アルファブレンディングが不要であれば、z比較は早い段階で行うことができる。)。ピクセルエンジン700は、コピー処理700cを含む。これは、オンチップフレームバッファの内容をメインメモリに周期的に書き込むものであり、表示/ビデオインターフェース部164がアクセスできるようにする。このコピー処理700cを用いて、組み込みフレームバッファ702の内容からテクスチャまでを、メインメモリ112にコピーすることもでき、動的なテクスチャ合成効果が得られる。アンチエイリアシングやその他のフィルタリングは、コピーアウト処理中に行うことができる。(最終的にはメインメモリ112に記憶される)グラフィックスパイプライン180のフレームバッファ出力は、フレーム毎に、表示/ビデオインターフェース部164によって読み出される。表示制御部/ビデオインターフェース164は、ディジタルRGBピクセル値を与えて、ディスプレイ102に表示する。
【0037】
<テクスチャタイリング手順例の概略>
本発明は、2つの異なるタイリング方法を提供するものであり、両方とも、好ましくは間接テクスチャタイルマップを用いる。第1の方法は、間接テクスチャタイリング方法を提供する。第2の方法では、複数のタイル間のブレンディングによって固有のテクスチャタイルを作成して、たとえば疑似3次元テクスチャ効果を達成することができる。
【0038】
図30は、本発明の間接テクスチャタイリング方法の手順を示す。この第1の手順例によれば、テクスチャ座標は、レンダリングされたオブジェクトの表面パラメータから生成される(ブロック1400)。タイルインデックスマップを用いて、テクスチャ座標を修正するために用いられるタイル選択オフセットを取得する(ブロック1402)。その後、修正されたテクスチャ座標が用いられて、テクスチャ定義マップからテクスチャタイルが選択される(ブロック1404)。テクスチャタイルは、タイリング処理に使用を望むどのような種類のテクスチャを含んでいてもよく、たとえば、煉瓦、ガラスなど、どのような適切なパターンや大きなパターンの部分であってもよい。その後、結果生じたタイルテクスチャリングされた画像が表示される(ブロック1406)。
【0039】
図31は、テクスチャブレンディングまたは疑似3次元テクスチャ方法の手順例を示す。この第2の手順例によれば、テクスチャ座標も、表面パラメータから生成される(ブロック1410)。その後、テクスチャ座標を用いて、テクスチャ座標を修正するために用いられる少なくとも1つのテクスチャ選択オフセットを取得する(ブロック1412)。その後、修正されたテクスチャ座標を用いて、複数のテクスチャタイルをタイル定義マップから選択する(ブロック1414)。その後、タイルはブレンドされて、合成タイルテクスチャを形成する(ブロック1416)。その後、結果生じた合成タイルテクスチャリング画像が表示される(ブロック1418)。
【0040】
以下に、本発明の上述の両タイリング方法を、別々により詳細に説明する。個々で説明する両タイリング方法は、好ましくは、上述の同時係属出願に記載された間接テクスチャ処理システムを使用することによって実施される。しかしながら、本発明によれば、たとえば再循環、複数パラレルチャンネル、または他の処理回路を組み込んだ適切な処理システムを用いることも可能である。
【0041】
<間接テクスチャタイリング例(第1のタイリング方法)>
図32は、図30に示すような本間接テクスチャタイリング方法のより詳細なブロック図の例である。この方法によれば、間接タイルインデックスマップおよびタイル定義マップが定義される(ブロック1500,1501)。タイル定義マップは、様々なタイルの基本定義を保持する。間接タイルインデックスマップは、テクスチャリングされたオブジェクトの表面上における特定のタイルの特定位置を識別する。このようにオブジェクト上にタイルをマップするために、間接テクスチャ座標対(S0,T0)が生成される(ブロック1504)。この例において、間接テクスチャ座標が基づくのは、インデックスマップではなく、テクスチャリングされた表面のスケールである。これにより、直接テクスチャ座標および間接テクスチャ座標が同一のテクスチャ座標を用いることが可能となる、という利点がある。よって、間接テクスチャ座標は、たとえば、用いるタイルの各次元で座標を除算することによって、インデックスマップに適切にスケーリングされる(ブロック1506)。その後、スケーリングされたテクスチャ座標は、テクスチャインデックスマップ内のルックアップ処理を行うのに用いられて、現在のテクスチャ座標の適切なタイル選択オフセットが得られる(ΔS,ΔT)(ブロック1508)。その後、タイル選択オフセットは、対象テクスチャスケールに再スケーリングされる。これは、たとえば、用いるタイルの各次元をオフセットに乗算することによって行われる(ブロック1510)。
【0042】
直接テクスチャ座標のセット(S1,T1)もまた、定義される(ブロック1512)。上述のように、本実施例において、間接および直接テクスチャ座標は、実際は同一である。直接テクスチャ座標に対して、ラッピング処理が行われる(ブロック1514)。本例においては、ラッピング処理は、nを法とするラップであり、nは、用いるタイルの次元である。
【0043】
適切にスケーリングされたタイルオフセット(ΔS,ΔT)およびラップされたテクスチャ座標(S1,T1)を取得すると、これらは組み合わされて(ブロック1516)、修正されたテクスチャ座標(S’,T’)が生じる。その後、修正されたテクスチャ座標(S’,T’)は、タイル定義マップ内のルックアップ処理に用いられる(ブロック1518)。これは、現在のテクスチャ座標に対する所望のテクスチャタイルを取得する目的で行われる。選択されたテクスチャタイルは、その後、表示のために(またはさらなるテクスチャ処理動作に用いられるために)出力される(ブロック1520)。
【0044】
図33は、本発明の間接タイリング方法の第1の例を示す。図33に示すように、テクスチャタイルインデックスマップ1600は、処理後のテクスチャ1604上の各タイル位置毎にタイル定義マップ1602内の特定のタイルを識別する。本例では、2次元(2×2)タイル定義マップ1602が用いられる。よって、タイル定義マップは、4つのタイルを含み、本例では、各タイルは、より広く想定されたテクスチャパターンにおける互いに異なる補完的な部分を構成する。本例において、処理後のパターン1604の大きさは、512×512テクセルである。間接タイルインデックスマップ1600は、4×4マトリックスであり、各マトリックス成分は、タイル定義マップ1602内の4つのタイルのうちの1つを識別する。タイル定義マップ内の各タイルの大きさは、128×128テクセルである。よって、インデックスマップ1600内の16個のインデックスのそれぞれを用いてタイルをマップすることによって、処理後の画像1604は、タイルインデックスマップによって決定されるような所望の構成において、16個のタイル(512×512テクセル)を含むことになる。図33からわかるように、本例における処理後のタイルパターン1604は、16個のテクスチャタイルからなる4つの正方形で構成されるパターンを含む。
【0045】
上述のように、図33のバンプ部(OP)ブロック1606によって示されるような、直接および間接座標に対する所定のスケーリング、ラッピング、および/または追加処理が行われる。本例において、間接テクスチャは、最初に、間接テクスチャ座標を128(タイルの次元)で除算することによって、縮小される。これは、4×4のインデックスマトリックス1600に対応して、特定のテクスチャ座標のオフセットを取得するために行われる。その後、オフセットは、128(タイルの次元)で乗算されることによって拡大される。拡大されたオフセットは、その後、テクスチャ座標に対するラッピング処理結果と組み合わされる。これは、修正されたテクスチャ座標を取得して、それを用いてタイル定義マップ1602からテクスチャを得るために行われる。
【0046】
図34は、本発明の間接タイリング方法の第2の例を示す。参照符号は、上述の同様の部分に対応している。本例において、タイル定義マップ1602は、図33の第1の例において用いたような2次元マップではなく、1次元のマップである。その結果、間接テクスチャマップ1600は、第1の例のようなオフセット値の対ではなく、単一のオフセット値のみを用いる。よって、タイル定義マップがどのように構成されているか(垂直に、または水平にスタックされているか)によって、選択された特定のオフセット値を用いて、ラップされたS1またはT1の値のいずれか(本例ではS1)を修正することができる。本例では、テクスチャタイルの大きさは、64×64タイルである。よって、バンプ部1606(OP)で用いられるラッピングおよびスケーリングのパラメータは、第1の例のような128ではなく、64である。なお、本発明が用いられる特定のアプリケーションに応じて、いかなる適切な大きさのテクスチャタイルをも用いることが可能である。さらに、本発明を用いて、いかなる適切な大きさの間接テクスチャマップや処理後のテクスチャをも定義することが可能である。
【0047】
図35は、本発明の間接タイリング方法の第3の例を示す。同じく、参照符号は、上述の同様の部分を指定するために用いられている。本例では、8つの18×18テクセルタイルによって構成された2×4タイル定義マップ1602を用いる。間接タイルインデックスマップ1600は、上記第1の例のインデックスマップと同様である。しかしながら、本例では、18×18テクセルタイルのうちの16×16テクセルのみを用いて、処理後のタイルパターン1604を作成している。よって、本例が示すように、タイル定義の大きさに関係なく、いかなる適切なタイルの大きさをも用いることができる。
【0048】
図36は、図32および図33〜35に関する上述の間接タイリング方法例の論理ブロック図である。図36からわかるように、本タイリング方法では、直接座標および間接座標について、同一の初期テクスチャ座標を用いることができる(すなわち、S1=S0,T1=T0)。しかしながら、座標が同一でないような他の構成も可能である。たとえば、タイルインデックスマップに適正に対応するためにスケーリングする必要のない間接テクスチャ座標を用いてもよい。しかしながら、本例のように、同一のテクスチャ座標を用いる場合は、スケーリングブロック1702aおよび1702bに示すように、間接テクスチャ座標1700(S0,T0)は、まずスケーリングされる。これは、間接テクスチャインデックスマップ1600のスケールに適合させるために行われる。その後、適正にスケーリングされた間接座標を用いて、タイルインデックスマップ内のルックアップ処理が行われる。これは、タイル選択オフセット1704(ΔS,ΔT)を得るために行われる。所望のテクスチャをタイリングするため、座標スケールは、タイルの大きさに間接インデックスマップのサイズを乗算したものである。タイルの大きさは、その後除算され、間接マップにアクセスするために用いられる。
【0049】
タイル選択オフセットは、乗算器1706aおよび1706bによって示されるように、元のスケールに拡大されて、直接テクスチャ座標のスケールと対応するようする。その後、nを法とするラッピングブロック1708aおよび1708bに示すように、直接座標がラップされた後、オフセットは、通常のテクスチャ座標1701(S1,T1)と組合せることができるようになる。そして、ラップされた直接座標およびスケーリングされたオフセットは、加算器1710aおよび1710bによって組み合わされる。これにより、修正されたテクスチャ座標1712(S’’,T’’)を生成する。その後、修正されたテクスチャ座標を用いて、タイル定義マップ1602内の通常のテクスチャルックアップが行われ、これにより、テクスチャとしてTEV部に出力されるタイルが選択される。なお、図36の論理ブロック図は、オフセットがS1およびT1の両方に与えられている実施例を示しており、本例では、2次元タイル定義マップが使えるようになっている。しかしながら、図34の例のように、1次元タイルインデックスマップのみを用いるような、本発明に係る他の構成も可能である。
【0050】
<疑似3次元テクスチャタイリングの例(第2のタイリング方法)>
図37は、疑似3Dテクスチャと称する、本発明の第2の間接タイリング方法(図31参照)のより詳細なブロック図を示す。この第2の方法によれば、間接的にインデックス化された複数のタイルを互いにブレンドして、表面にマップされる合成タイルを形成することができる。言い換えれば、この方法では、タイリングマッピングを拡張して、疑似3次元効果を提供することが可能である。この方法では、すべてのタイルは、スタックの一部とみなされる。第1の例のようにタイル定義マップから単一のタイルを選択するのではなく、本例では、複数のタイル(以下の例では、2つの隣接するタイル)を選択し、このタイルをブレンドして、合成テクスチャタイルを生成することができる。この手法は、たとえば、互いに滑らかにブレンドする不連続パターンで広い表面を覆うために用いることができる。テクスチャタイルのブレンドを可能にすることにより、プログラマは、表面を覆う際にタイル定義マップ内の特定のタイルに限定されることがなくなる。代わりに、新たなタイルを既存のタイルと合成することにより、大きなテクスチャ定義マップを必要とせずに、表面を覆うのに利用可能なテクスチャタイルの数を大幅に増加させることも可能である。合成タイルを用いることにより、テクスチャパターンが繰り返される外観を避けることができ、それにより、画像の現実感を向上することができる。この方法は、たとえば、細かい砂から小さな小石、そして大きな岩というように、外観上様々な層を有する浜辺を、タイリングされたテクスチャで覆う場合に用いることができる。ブレンディング機能を用いて、処理後のテクスチャに対して疑似3次元外観を与えることができる。
【0051】
図37に示すように、タイル定義スタック内のタイルへのインデックスを含むように間接タイルインデックスマップを定義する(ブロック1800)。間接テクスチャ座標が定義され(ブロック1802)、テクスチャ選択オフセットおよびブレンディング係数が取得される(ブロック1804)。テクスチャタイル定義は、スタックの形態で定義される(ブロック1806)。疑似3次元効果が所望される場合には、本例では、タイルは、隣接タイルが互いによくブレンドされて階層効果を与えるように定義されるのが好ましい。このことは以下の説明からより理解されるであろう。むろん、上述のように、間接座標と直接座標とを同一にしたい場合などには、間接ルックアップ処理前に間接座標をスケーリングしてもよい。
【0052】
直接座標が定義され(ブロック1808)、オフセットと組み合わされて、第1の修正されたテクスチャ座標(s,t’)が生成される(ブロック1810)。その後、オフセットは、1タイル分だけ増分するなどの所定の方法で修正され(バイアスされ)、その後、修正されたオフセットを直接テクスチャ座標と組み合わせることによって、第2の修正されたテクスチャ座標(s,t’’)(ブロック1812)が定義される。その後、第1の修正されたテクスチャ座標(s,t’)を用いて、第1のテクスチャがタイル定義スタック内でルックアップされ、第1のテクスチャタイルが取得される(ブロック1814)。その後、第2の修正されたテクスチャ座標(s,t’’)を用いて、第2のテクスチャがタイル定義スタック内でルックアップされ、第2のテクスチャタイルが取得される(ブロック1816)。その後、第1および第2のテクスチャタイルはブレンドされて、合成テクスチャが作成される(ブロック1818)。本例では、ブレンディング処理に用いられるブレンディング係数は、タイルインデックスマップからタイル選択オフセットとともに取得される。その後、合成テクスチャが、表示のために(またはさらなるテクスチャ処理動作に用いられるために)出力される(ブロック1820)。
【0053】
図38は、本発明の疑似3次元テクスチャリング方法の例を示す。本例では、テクスチャタイルインデックスマップ1900は、タイルスタック1902へのインデックスと、ブレンディング係数とを含む。特定的には、本例では、タイルインデックスマップは、整数成分と小数成分とを含むインデックスを含む。たとえば、インデックスマップ1900の左下隅の成分は、「4.9」である。この実施例においては、整数成分(すなわち、「4」)はレイヤ選択オフセットを与え、小数成分(すなわち、「.9」)はブレンディング係数を与える。よって、間接テクスチャ座標を用いて、レイヤ選択オフセットとブレンディング係数とをルックアップする。その後、オフセットはスケーリングされ(特定の実施において必要であれば)、バンプブロック1904を用いて(ラップされた後に)直接テクスチャ座標と組み合わされ、第1の修正されたテクスチャ座標のセットが生成される。その後、第1の修正されたテクスチャ座標のセットは、タイル定義スタック1902内のルックアップ処理に用いられて、第1のテクスチャタイルが取得される。また、バンプ部は、タイル選択オフセットに対してバイアス処理を行い、バイアスされたオフセットをラップされた直接テクスチャ座標と組み合わせることによって、第2の修正された座標を生成する。このバイアス処理は、たとえば1タイル分などといいった特定の量だけ、オフセットを単に増加させるものであってもよく、また、処理後のタイルがバイアスを行わない場合の処理後のタイルと異なるようなものであれば、オフセットについての他のいかなる適切な処理を行うものであってもよい。その後、第2の修正されたテクスチャ座標のセットを用いて、タイル定義スタック1902から第2のタイルがルックアップされる。選択された2つのタイルは、その後、間接インデックスタイルインデックスマップ1900によって与えられたブレンディング係数を用いて互いにブレンドされ、それにより、処理後のテクスチャ1906に用いられる合成テクスチャタイルが生成される。本例において、処理後のテクスチャ4.9は、ブレンディング係数0.9を用いてレイヤ定義4とレイヤ定義5とが互いにブレンドされたことを示しており、すなわち、4.9=0.1*(レイヤ4定義)+0・9*(レイヤ5定義)を示す。なお、本例では、1つのオフセットのみが与えられている。よって、本例では、タイル定義マップは、1次元スタックとして扱われ、オフセットは、直接テクスチャ座標のS1またはT1成分を修正するために用いられる。インデックスマップがブレンディング係数とともにオフセット対を与えるような、他の構成も可能である。他の実施例では、ブレンディング係数は一定であってもよいし、そうでなければ、タイルインデックスマップ1900による以外の方法で定義されてもよい。しかしながら、ブレンディング係数をタイルインデックスマップにプログラム可能とすることによって、他のブレンディング係数を簡便に定義して、多様性の高い合成タイルを生成することも可能である。なお、本例においては、オフセットのバイアス係数は1タイルである。よって、最初のタイルが定義されると、2番目のタイルは、スタック内において次のタイルとして定義される。バイアスによって第2のタイルが第1のタイルと異なる関係を有するような、他の構成も可能である。
【0054】
図39は、図37および38に関連して上述したこの第2のタイリング方法の論理ブロック図の例を示す。図39に示すように,間接座標(S0,T0)が決定され、その後、スケーリングブロック1910aおよび1910bによって示すように、適正にスケーリングされる。スケーリングは、本発明の第1の方法に関連して上述したのと同じ理由で行われる。また、本例では、直接および間接テクスチャ座標は同一の値を用いる。しかしながら、上述のように、他の構成も可能であり、特定の実施によっては、スケーリング処理を調整したり、行わなかったりすることも可能である。本例では、スケーリングされた間接座標1908(S0,T0)を用いて、間接テクスチャインデックスマップ1900内のルックアップ処理を行い、タイル選択オフセットを表す整数1918aと、ブレンディング係数を表す小数(1918b)とを取得する。その後、乗算器1922によって示されるように、整数(オフセット)は再スケーリングされ、加算器1916aに送られて、直接テクスチャ座標の修正子として用いられる。nを法とするラップブロック1914aおよび1914bによって示されるように、直接テクスチャ座標1912(S1,T1)はラップされる。その後、オフセットはラップされた座標のt成分と組み合わされて、第1の修正されたテクスチャ座標のセット(s,t’)が生成され、そして、これを用いて、タイル定義スタック1902内のルックアップが行われて、第1のテクスチャタイル(Tex1)が取得される。
【0055】
また、整数1918aによって与えられたタイル選択オフセットを用いて、第2の修正されたテクスチャ座標のセットが取得される。これは、ブロック1926によって示されるように、オフセットをバイアスすることによって行われる。本例では、バイアスの際には、乗算器1922bでオフセットの再スケーリングが行われる前に、オフセットに1を加算することが行われる。その後、バイアスされたオフセットは、加算器1916bに送られる。バイアスされたオフセットは、直接テクスチャ座標のラップされたt成分と加算器1916bによって組み合わされ、第2の修正されたテクスチャ座標のセット(s,t’’)が生成される。その後、第2の修正されたテクスチャ座標のセットは、1902のタイル定義マップ内の第2のルックアップを行うために用いられて、第2のテクスチャタイル(Tex2)が取得される。
【0056】
その後、第1のテクスチャタイル(tex1)および第2のテクスチャタイル(tex2)は、ブレンディングブロック1920に送られる。間接テクスチャインデックスマップ1900から取得した小数成分(1918b)は、多重器1924aおよび1924bを介して、ブレンディングブロック1920に運ばれる。よって、その後、ブレンダーは、2つのテクスチャタイルおよび適正なブレンディング係数を有する。その後、ブレンディング処理が行われて、2つのテクスチャタイルがブレンディング係数に基づいて組み合わされて、合成タイルが生成されて、表示のために(またはさらなるテクスチャ処理動作に用いられるために)出力される。
【0057】
<API間接テクスチャタイリング関数コマンドの例>
図7〜10に示すように、1つ以上のグラフィックスAPI関数を用いて、間接テクスチャルックアップ処理および間接テクスチャ処理を設定および起動させるのが好ましい。上述のような、間接テクスチャ処理設定のためのAPI関数、ならびに間接テクスチャタイリングおよび疑似3次元テクスチャタイリングを行うためのパラメータは、以下のように定義されてもよい。
【0058】
<GXSetTevIndTile>
この関数は、間接テクスチャを用いたタイル化されたテクスチャリングを実施するのに用いてもよい。なお、通常のテクスチャマップは、タイル定義を指定するのみである。ポリゴンに付加するテクセルの実際の数は、基礎タイルの大きさおよび間接マップの大きさの関数である。適正なテクスチャ座標スケールを設定するために、GXSetTexCoordScaleManuallyを呼び出さなければならない。また、通常のTEVステージと同じテクスチャ座標を間接ステージに用いるためには、GxSetIndTexScaleを用いる。
【0059】
【0060】
【0061】
上記の関数は、上述の間接テクスチャタイリング方法または疑似3次元テクスチャタイリング方法を特定するために用いることができる。なお、タイルの大きさと間隔とは個別に指定することが可能である。タイルの大きさよりも大きな間隔を用いる理由の例としては、ミップマッピングのための境界を持たせることがある。ミップマップスタックの高さによっては、タイルの外側にあるテクセルが、ミップマップ用のフィルタリング計算に含まれる場合がある。この関数により、所定の入力に基づいて適切に、マトリックスおよびスケール値が設定される。どのマトリックススロットを使用するかを指定しさえすればよい。biasSelやalphaSelパラメータを用いるのは、疑似3次元ルックアップの場合のみである。これらは、通常の2次元タイリングの場合には、(それぞれ)GX_ITB_NONEおよびGX_ITBA_OFFに設定される。なお、テクスチャタイリングは、間接マップおよび通常(直接)マップに同一のテクスチャ座標を利用することができる。しかしながら、通常のテクスチャ座標の所望のスケール値は、タイル定義を含む通常マップの大きさと直接は関係していない。通常、テクスチャ座標のスケールの大きさは、ルックアップされるマップの大きさに設定され、テクスチャ座標が共用される場合には、通常マップの大きさが好ましい。テクスチャタイリングによって、異なるスケールが必要なので、以下の関数を用いることができる。
【0062】
【0063】
GXSetCoordScaleManuallyが呼び出されて、イネーブルがGX_Trueに設定されると、関数が再び呼び出されるまで、所定のテクスチャ座標スケール値が固定される。関数が呼び出されてイネーブルがGX_Falseに設定されると、自動テクスチャ座標スケーリングが、当該テクスチャ座標に対して再び引き継ぐ。テクスチャタイリングでは、所望のテクスチャ座標スケールは、タイルの大きさと間接マップの大きさの積である。その後、GXSetIndTexCoordScaleを用いて、タイルの大きさを分割して、間接マップへのアクセスに使用する。
【0064】
疑似3次元テクスチャルックアップに対応するために、本例では、GXSetTevIndTileを2つの隣接するTEVステージのために呼び出さなければならない。第1のステージは、通常の2次元タイリングの仕様と似ている。第2のステージでは、バイアス選択およびアルファ選択を指定する。バイアスを用いて、タイルスタック方向を選択する。次のタイルがS次元のオフセットである場合は、GX_ITB_Sが用いられ、次のタイルがT次元のオフセットである場合は、GX_ITB_Tが用いられる。その後、バンプアルファを選択して、第1のルックアップからのタイルおよび第2のルックアップからのタイルをブレンドする。なお、本例においては、疑似3次元テクスチャでは8ビットフォーマットを用いることはできない。代わりに、3、4、および5ビットフォーマットを用いることができる。このようなフォーマットは、−128の代わりに+1のバイアス値を用いる。+1バイアスを用いて、第2のステージの「次の」タイルを得る。
【0065】
<互換可能な他の実施例>
上述のシステム構成要素50のうちのあるものは、上述の家庭用ビデオゲームコンソール以外であっても実施できる。たとえば、システム50のために書き込まれているグラフィックスアプリケーションなどのソフトウェアを、システム50をエミュレートするかまたはそれと互換性のある他の構成を用いたプラットフォーム上で実行することができる。他のプラットフォームが、システム50のハードウェアおよびソフトウェア資源の一部または全部をうまくエミュレート、模倣、および/または提供できるのであれば、当該他のプラットフォームは、ソフトウェアをうまく実行することができるであろう。
【0066】
一例として、エミュレータは、システム50のハードウェアおよび/またはソフトウェア構成(プラットフォーム)とは異なるハードウェアおよび/またはソフトウェア構成(プラットフォーム)を提供してもよい。エミュレータシステムは、アプリケーションソフトウェアを書き込む対象であるシステムのハードウェアおよび/またはソフトウェア構成要素の一部またはすべてをエミュレートするハードウェアおよび/またはソフトウェア構成要素を含んでいてもよい。たとえば、エミュレータシステムは、パーソナルコンピュータなどの汎用デジタルコンピュータを備えることができ、これによって、システム50のハードウェアおよび/またはファームウェアを模倣するソフトウェアエミュレータプログラムが実行される。
【0067】
汎用デジタルコンピュータの中には(たとえば、IBMまたはマッキントッシュ製パーソナルコンピュータおよびその互換機)、現在、DirectX3Dやその他の標準グラフィックスコマンドAPIに対応したグラフィックスパイプラインを提供する3Dグラフィックスカードが搭載されているものもある。これらには、また、標準的なサウンドコマンドに基づいて高品質の立体音響を提供する立体音響サウンドカードも搭載されている場合もある。エミュレータソフトウェアを実行させるこのようなマルチメディアハードウェアを搭載したコンピュータは、システム50のグラフィックス性能およびサウンド性能を近似するに充分な性能を有している場合がある。エミュレータソフトウェアは、パーソナルコンピュータプラットフォーム上のハードウェア資源を制御して、ゲームプログラマがゲームソフトウェアを書き込む対象である家庭用ビデオゲームゲームコンソールプラットフォームの処理性能、3Dグラフィックス性能、サウンド性能、周辺性能などを模倣する。
【0068】
図40は、エミュレーション処理全体の例を示しており、この処理は、ホストプラットフォーム1201と、エミュレータ構成要素1303と、記憶媒体62上に与えられているバイナリ画像を実行可能なゲームソフトウェアとを用いる。ホスト1201は、汎用または専用デジタルコンピューティング装置であってもよく、たとえばパーソナルコンピュータやビデオゲームコンソールなど、充分な計算能力を備えたプラットフォームが挙げられる。エミュレータ1303は、ホストプラットフォーム1201上で実行されるソフトウェアおよび/またはハードウェアであってもよく、コマンドやデータなどの記憶媒体62からの情報をリアルタイムで変換して、ホスト1201が処理可能な形式にすることができる。たとえば、エミュレータ1303は、システム50が実行しようとする「ソース」バイナリ画像プログラム命令を記憶媒体62から取り出して、実行可能な形式またはホスト1201によって処理可能な形式に当該プログラム命令を変換する。
【0069】
一例として、IBMのPowerPCなどの特定のプロセッサを用いたプラットフォーム上で実行するためにソフトウェアが書き込まれており、ホスト1201は、異なる(たとえば、インテルの)プロセッサを用いたパーソナルコンピュータである場合、エミュレータ1303は、バイナリ画像プログラム命令の1つまたはシーケンスを記憶媒体1305から取り出して、これらのプログラム命令を、インテルのバイナリ画像プログラム命令に相当するものに変換する。また、エミュレータ1303は、グラフィックス音声プロセッサ114によって処理されるグラフィックスコマンドや音声コマンドを取り出しおよび/または生成し、ハードウェアおよび/またはソフトウェアグラフィックスおよびホスト1201で利用可能な音声処理資源によって処理可能な形式に、これらコマンドを変換する。一例として、エミュレータ1303は、これらのコマンドを、ホスト1201の特定のグラフィックスおよび/またはサウンドハードウェアによって処理可能なコマンドに変換する(たとえば、DirectX、OpenGLおよび/またはサウンドAPIを用いる)。
【0070】
エミュレータ内の特定のグラフィックス対応ハードウェアが間接テクスチャ参照機能や図7から39に示す機能を含まない場合には、エミュレータ設計者は以下のうちいずれかの選択を行う。
・間接テクスチャ参照コマンドを、グラフィックス対応ハードウェアが解釈できる他のグラフィックスAPIコマンドに変換する。
・間接テクスチャ参照をソフトウェア内で実施する。これに応じて、プロセッサの処理速度によっては性能の低下を余儀なくされる可能性がある。または、
・間接テクスチャ参照をコマンドを「スタブ」(すなわち、無視する)して、間接テクスチャ参照を用いた効果を含まないレンダリング済み画像を提供する。
【0071】
図36および39の論理図は、すべてソフトウェア、すべてハードウェア、およびハードウェアとソフトウェアとの組み合わせによって実施可能であるが、好ましい実施例においては、ほとんどの計算を(バンプ部500bを用いて)ハードウェアで行い速度性能や他の利点を得るようにする。それにもかかわらず、他の実施形態においては(たとえば、非常に高速のプロセッサが利用可能な場合)、本記載のすべてのうちのいくらかの処理をソフトウェアで行って、同様なまたは同一の画像結果を得るようにしてもよい。
【0072】
上述のビデオゲームシステムの機能の一部または全部を提供するために用いられるエミュレータ1303には、エミュレータを用いて実行される様々なオプションや画面モードの選択を簡略化または自動化するグラフィックユーザインターフェース(GUI)が与えられてもよい。一例として、そのようなエミュレータ1303は、ソフトウェアが本来対象としていたホストプラットフォームに比較して、拡張された機能をさらに含んでいてもよい。
【0073】
図41は、エミュレータ1303と共に用いられるのに適したエミュレーションホストシステム1201を示す。システム1201は、処理部1203と、システムメモリ1205とを含む。システムバス1207は、システムメモリ1205から処理部1203までを含む様々なシステム構成要素を結合する。システム1207は、メモリバスまたはメモリコントローラ、周辺機器バス、ローカルバスなど、様々なバスアーキテクチャのいずれかを用いたものを含む、数種のバス構成のいずれであってもよい。システムメモリ1207は、読み出し専用メモリ(ROM)1252と、ランダムアクセスメモリ(RAM)1254とを含む。ベーシック入出力システム(BIOS)1256は、パーソナルコンピュータシステム1201内の要素間において情報を転送するのを助ける基本ルーチンを含んでおり、ROM1252に記憶される。システム1201は、様々なドライブや、関連したコンピュータが読み取り可能な媒体をさらに含む。ハードディスクドライブ1209は、(典型的には固定された)磁気ハードディスク1211からの読み出しやそれに対する書き込みを行う。付加的な(選択可能な)磁気ディスクドライブ1213は、着脱可能な「フロッピー」などの磁気ディスク1215からの読み出しやそれに対する書き込みを行う。随意のディスクドライブ1217は、CDROMなどの随意の媒体のような着脱可能な光ディスク1219からの読み出しや、構成によってはそれに対する書き込みも行う。ハードディスクドライブ1209および光ディスクドライブ1217は、それぞれ、ハードディスクドライブインターフェース1221および光ドライブインターフェース1225によって、システムバス1207に接続している。ドライブやそれに関連するコンピュータが読み出し可能な媒体によって、コンピュータが読み出し可能な命令、データ構造、プログラムモジュール、ゲームプログラムなどのパーソナルコンピュータシステム1201のためのデータが不揮発的に記憶される。他の構成においては、コンピュータが読み出し可能な他の種類の媒体が用いられていてもよく、コンピュータによってアクセス可能なデータを記憶できる媒体(たとえば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)など)であってもよい。
【0074】
エミュレータ1303を含む多くのプログラムモジュールは、ハードディスク1211、着脱可能な磁気ディスク1215、光学ディスク1219、および/またはシステムメモリ1205のROM1252および/またはRAM1254に記憶されてもよい。そのようなプログラムモジュールは、グラフィックスやサウンドAPIを提供するオペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、プログラムデータ、ゲームデータを含んでもよい。ユーザは、コマンドや情報を、キーボード1227、ポインティングデバイス1229、マイク、ジョイスティック、ゲームコントローラ、衛星アンテナ、スキャナなどの入力装置を通じて、パーソナルコンピュータシステム1201に対して入力する。このような入力装置は、システムバス1207に結合されたシリアルポートインターフェース1231を介して処理部1203に接続されることが可能であるが、パラレルポートや、ゲームポートファイアワイヤーバス、またはユニバーサルシリアルバス(USB)などの他のインターフェースによって接続されてもよい。モニタ1233などの表示装置も、ビデオアダプタ1235などのインターフェースを介して、システムバス1207に接続される。
【0075】
また、システム1201は、インターネットのようなネットワーク1152上での通信を確立するための、モデム1154などのネットワークインターフェース手段を含んでもよい。モデム1154は、内蔵であっても外付けであってもよく、シリアルポートインターフェース1231を介してシステムバス123に接続される。また、ローカルエリアネットワーク1158を介して(または、ワイドエリアネットワーク1152、ダイアルアップなどの他の通信路、または他の通信手段を介してもよい)、システム1201が遠隔コンピューティング装置1150(たとえば、他のシステム1201)と通信できるように、ネットワークインターフェース1156が与えられてもよい。システム1201は、典型的には、プリンタなどの標準周辺機器のような、他の周辺出力装置を含む。
【0076】
一例において、ビデオアダプタ1235は、Microsoft製DirectX7.0などのバージョンのような標準3Dグラフィックスアプリケーションプログラマインターフェースに基づいて出される3Dグラフィックスコマンドに応答して、高速3Dグラフィックスレンダリングを提供するグラフィックスパイプラインチップセットを含んでいてもよい。立体音響スピーカセット1237も、システムバス1207に対して、従来の「サウンドカード」のような音声生成インターフェースを介して接続されている。そのようなインターフェースは、バス1207から与えられたサウンドコマンドに基づいて高品質な立体音響を生成するための支援をハードウェアや組み込みソフトウェアに対して行う。このようなハードウェアの機能によって、システム1201は、記憶媒体62に記憶されたソフトウェアを実行するのに充分なグラフィックスおよび音響の速度性能を提供することができる。
【0077】
本発明は、現時点において最も現実的で最適な実施例と思われるものに関連して説明してきたが、本発明は、開示された実施例に限定されるものではなく、添付の請求項の範囲に含まれる様々な変形例や相当する仕組みを含むことを意図していると解釈されるべきである。
【図面の簡単な説明】
【図1】対話式コンピュータグラフィックスシステムの一例の概略図である。
【図2】図1のコンピュータグラフィックスシステムの例のブロック図である。
【図3】図2に示すグラフィックス&音声プロセッサの例のブロック図である。
【図4】図3に示す3Dグラフィックスプロセッサの例のブロック図である。
【図5】図4のグラフィックス&音声プロセッサの論理フロー図の例である。
【図6】本発明に係る間接テクスチャ処理の論理概要を示すブロック図である。
【図7】通常(非間接)テクスチャルックアップの単純な基本例を示す機能ブロック図である。
【図8】間接テクスチャルックアップの単純な基本例を示す機能ブロック図である。
【図9】本発明に係る間接テクスチャ処理を実施するための物理的な構成例の概要を示すブロック図である。
【図10】テクスチャアドレス(座標/データ)プロセッサ処理の論理概要を示すブロック図である。
【図11】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図12】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図13】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図14】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図15】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図16】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図17】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図18】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図19】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図20】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図21】テクスチャリングパイプラインの実施例において、インターリーブされた直接および間接テクスチャ処理の結果である、ピクセル直接座標データおよびピクセル間接テクスチャデータの相関的な経過を示すブロック図群である。
【図22】本発明に係る間接テクスチャ処理を実施するためのステップ例を示す、フローチャートである。
【図23】本発明に係る、通常(非間接)テクスチャ処理の例を示す機能処理図である。
【図24】本発明に係る、通常(非間接)および間接テクスチャ処理両方の例を示す、機能処理図である。
【図25】図5に示すテクスチャ座標/バンプ処理部の詳細例を示す、ブロック図である。
【図26】図25に示す間接テクスチャルックアップデータ/座標処理ロジック(proc)の詳細例を示すブロック図である。
【図27】図26の処理ロジック回路(proc)によって用いられるテクスチャオフセットマトリックスの例を示す。
【図28】図26の処理ロジック回路(proc)によって用いられるテクスチャオフセットマトリックスの例を示す。
【図29】図26の処理回路内の処理を制御するための制御ロジックレジスタのデータフィールドフォーマット例を示すブロック図である。
【図30】本発明の好ましい実施例に係る、第1のタイリング方法の一般的な機能ブロック図である。
【図31】本発明の好ましい実施例に係る、第2のタイリング方法の一般的な機能ブロック図である。
【図32】図30の第1のタイリング方法のより詳細な機能ブロック図である。
【図33】本発明の第1のタイリング方法の3つの例を示す。
【図34】本発明の第1のタイリング方法の3つの例を示す。
【図35】本発明の第1のタイリング方法の3つの例を示す。
【図36】本発明の第1のタイリング方法の例図である。
【図37】図25の第2のタイリング方法のフローチャートである。
【図38】本発明の第2のタイリング方法の例である。
【図39】本発明の第2のタイリング方法の論理ブロック図の例である。
【図40】他の代替可能な実施例を示す。
【図41】他の代替可能な実施例を示す。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to computer graphics, and more particularly to interactive graphics systems such as home video game platforms. Even more specifically, an improved texture tiling method and apparatus that uses an indirect texture index map to reference a texture tile in a tile definition map and map the texture tile to a rendered primitive. About. The present invention further allows composite (blended) texture tiles to be created from the tile definition map, and the texture tiles can be mapped to primitives in such a way that texture patterns do not appear repeatedly.
[0002]
[Prior art]
Many of us have seen images of imaginary creatures such as dinosaurs, aliens, and animated toys that are very realistic. Such animation is made possible by computer graphics. Using such techniques, computer graphics producers can specify how each object looks and what appearance changes over time. The computer models the object and displays it on a display such as a television or a computer screen. Coloring and shape of each part of the display image is performed properly based on the position and orientation of each object in the scene, the illumination direction for each object, the texture of the surface of each object, and various other factors The computer takes care of many of the tasks that are necessary.
[0003]
Due to the complexity of computer graphics generation, until just a few years ago, the use of computer-generated 3D graphics was almost limited to expensive and specialized flight simulators, high-end graphics workstations, and supercomputers. It was. Although people see images generated by computer systems in movies and high-cost television advertising, they have not been able to touch the computer that generates the graphics. This situation has changed due to the emergence of relatively inexpensive 3D graphics platforms such as Nintendo 64 (registered trademark) and various 3D graphics cards that can be used in personal computers. Now, at home and at work, it is possible to interact with powerful 3D animations and simulations on a relatively inexpensive computer graphics system.
[0004]
The problem once faced by graphics system designers is how to create realistic surface details for rendered objects without using polygons or other geometric primitives. there were. Simulating surface details is possible, for example, by performing shading with inter-vertex interpolation on a myriad of small triangles, but as the desired details become more sophisticated and more complex, Clear modeling with primitives such as triangles increases the burden on the graphics system and is not very realistic. E. Developed by Catmul, F. Bryn and M.C. E. Another technique improved by Newwell is to “map” images to surfaces by digitization or synthesis (“Subdivision Algorithms for Curved Computer Displays”, E. Catmul, PhD thesis, Report UTEC-CSc-74-133, School of Computer Science, University of Utah, Salt Lake City, Utah, December 1994, and “Textures and Reflections of Computer Generated Images”, J. F. Blin and M. E. New Well, CACM, 19 (10), October 1976, pages 452-457). This technique is known as texture mapping (or pattern mapping) and the image is called a texture map (or simply referred to as texture). Alternatively, the texture map may be defined by processing rather than images.
[0005]
Typically, a texture map is defined in a two-dimensional rectangular coordinate space and parameterized using orthogonal texture coordinate pairs, such as (u, v) or (s, t). Individual components within a texture map are often referred to as texels. At each rendered pixel, the selected texel is used to replace or scale one or more key characteristics of the rendered object surface. This process is often referred to as texture mapping or “texturing”.
[0006]
Currently, most 3D graphics rendering systems include a texturing subsystem. The system is for obtaining a texture from memory and mapping the texture to the rendered object surface. The problem facing graphics system designers is how to perform more sophisticated texture related effects such as “texture tiling” in an efficient and convenient way. In texture tiling, texture tile style textures are typically mapped on a tile-by-tile basis to a rendered object surface, such as a two-dimensional surface. The texture tile is defined by the tile shape portion of the texture stored in the texture memory. An array or matrix of different tiles can also be defined in the texture memory. The size and shape of the tile can be chosen to facilitate mapping the tile to the particular surface rendered. Tile sizes vary and may be defined as multiple tiles are required to cover the rendered surface. Once defined, texture tiles are placed at specific locations on the rendered surface to create a textured surface.
[0007]
This tiling effect has been achieved in the past, for example by drawing polygons for each desired tile. However, this method can be expensive in terms of processing overhead and memory usage. Furthermore, a problem arising from prior art tiling techniques is that the tiled surface may have a repeating pattern as seen by the viewer. The reason for the repeated pattern is that the number of different texture tiles available to the programmer when tiling the surface is usually limited. Thus, the same texture tile is used over and over to completely cover the entire large surface such as walls, floors, and ground cover plants. The repeated use of such identical tiles can impair the realism of the rendered scene. This is because, in many cases, the human eye recognizes the repeated texture pattern generated by the tiling process. Another problem facing graphics system designers is how to use indirect texture processing to perform texture tiling. This allows and is hopeful for further improvements despite significant past research related to texture tiling.
[0008]
The present invention solves this problem and provides techniques and mechanisms that can be used to efficiently implement texture tiling in a graphics system. The present invention allows the creation of a more realistic textured surface that reduces the viewer viewing the displayed textured surface from noticing repetitive patterns in the texture. , You can make it disappear at all. Further, according to the present invention, a pseudo three-dimensional texture can be created by blending between texture tiles. Furthermore, according to the present invention, texture tiling can be achieved by performing indirect texture processing in an efficient and effective manner.
[0009]
According to one aspect provided by the present invention, a texture tiling method comprising:
-Generate texture coordinates,
・ Modify the texture coordinates using the indirect tile index map,
Use the modified texture coordinates to select a texture tile from the tile definition map,
A method comprising displaying selected texture tiles;
[0010]
According to another aspect of the present invention, there is provided a pseudo three-dimensional tiling method,
Define a set of texture coordinates directly,
Define a set of indirect texture coordinates,
・ Indirect texture coordinates are used to obtain offset values,
Combining the offset value with at least one direct texture coordinate to generate a first modified texture coordinate;
Obtaining a first texture tile from the tile definition map using a first modified set of texture coordinates;
・ Bias the offset value,
-Correct texture coordinates directly using biased offset values,
Combining the modified offset value with at least one direct texture coordinate to generate a second set of modified texture coordinates;
Using the second modified set of texture coordinates to obtain a second texture tile from the tile definition map;
A method comprising blending a first texture tile and a second texture tile to produce a composite texture tile.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows an example of an interactive 3D
[0012]
In this example, the
[0013]
In order to play an application such as a video game using the
[0014]
Further, the user needs to connect the main unit 54 to a power source. This power source may be a conventional AC adapter (not shown) that plugs into an electrical outlet on the wall of the home, and a lower DC voltage signal suitable for powering the home current to the main unit 54. Convert to As another embodiment, a battery can be used.
[0015]
The user may control the main unit 54 using the
[0016]
In order to play an application such as a game, the user selects an
[0017]
<Example of electronic circuit of the entire system>
FIG. 2 shows a block diagram of example components of
A main processor (CPU) 110,
・ Graphics &
[0018]
In this example, main processor 110 (eg, enhanced IBM Power PC 750) receives input from handheld controller 108 (and / or other input devices) via graphics &
[0019]
In this example, the
[0020]
The
[0021]
Graphics and
A programmable read-only memory and / or real-
A network interface such as modem 136 (such as connecting
A
[0022]
Another external
[0023]
<Example of graphics and audio processor>
FIG. 3 is a block diagram of an example of the graphics and
Memory interface /
An audio digital signal processor (DSP) 156,
-
・ Audio interface &
The
A
[0024]
The
[0025]
[0026]
<Example of graphics pipeline>
FIG. 4 is a more detailed diagram of an example
[0027]
The
[0028]
FIG. 5 is a logic flow diagram of the
A command stream from the
The
Vertex attributes from the command stream and / or from the
[0029]
The
[0030]
As shown in FIG. 4,
-Conversion unit 1300,
-Setup /
-
-
[0031]
The
[0032]
The setup /
[0033]
A texture unit 500 (which may include an on-chip texture memory (TMEM) 502), performs various tasks related to texturing. The tasks include, for example, the following.
Texture processing (500a), including, for example, multi-texture processing, post-cache texture extension, texture filtering, embossing, shadows and lighting with projected textures, and BLIT with alpha transparency and depth,
Bump map processing (500b) for calculating a texture coordinate conversion amount for bump mapping, pseudo texture, texture tiling effect, and
Indirect texture processing (500c).
[0034]
6 to 29 show examples of texture processing for performing normal (non-indirect) and indirect texture lookup processing. For a graphics pipeline circuit and a procedure for performing normal and indirect texture lookup processing, see commonly assigned co-pending patent application No. 60 / 226,891, named “Method for Processing Direct and Indirect Textures in Graphics Systems. And device "(attorney docket number 723-849). The entire contents of this application are incorporated by reference.
[0035]
The
[0036]
The
[0037]
<Outline of texture tiling procedure example>
The present invention provides two different tiling methods, both preferably using indirect texture tile maps. The first method provides an indirect texture tiling method. In the second method, unique texture tiles can be created by blending between multiple tiles to achieve, for example, a pseudo 3D texture effect.
[0038]
FIG. 30 shows the procedure of the indirect texture tiling method of the present invention. According to this first example procedure, texture coordinates are generated from the surface parameters of the rendered object (block 1400). The tile index map is used to obtain a tile selection offset that is used to modify the texture coordinates (block 1402). The modified texture coordinates are then used to select a texture tile from the texture definition map (block 1404). The texture tile may include any type of texture that one desires to use in the tiling process, and may be any suitable pattern or large pattern portion, such as brick, glass, for example. The resulting tile textured image is then displayed (block 1406).
[0039]
FIG. 31 shows a procedure example of the texture blending or pseudo three-dimensional texture method. According to this second example procedure, texture coordinates are also generated from the surface parameters (block 1410). Thereafter, the texture coordinates are used to obtain at least one texture selection offset that is used to modify the texture coordinates (block 1412). Thereafter, a plurality of texture tiles are selected from the tile definition map using the modified texture coordinates (block 1414). The tiles are then blended to form a composite tile texture (block 1416). The resulting composite tile texturing image is then displayed (block 1418).
[0040]
In the following, the above-described both tiling methods of the present invention will be described in more detail separately. Both tiling methods described individually are preferably implemented by using the indirect texture processing system described in the above-mentioned co-pending application. However, according to the present invention, it is also possible to use a suitable processing system incorporating, for example, recirculation, multiple parallel channels, or other processing circuitry.
[0041]
<Indirect texture tiling example (first tiling method)>
FIG. 32 is an example of a more detailed block diagram of the indirect texture tiling method as shown in FIG. According to this method, an indirect tile index map and a tile definition map are defined (
[0042]
A set of direct texture coordinates (S1, T1) is also defined (block 1512). As described above, in this embodiment, the indirect and direct texture coordinates are actually the same. A wrapping process is performed on the direct texture coordinates (block 1514). In this example, the wrapping process is a wrap modulo n, where n is the dimension of the tile used.
[0043]
Having obtained the appropriately scaled tile offset (ΔS, ΔT) and the wrapped texture coordinates (S1, T1), they are combined (block 1516) to produce the modified texture coordinates (S ′, T ′). Arise. The modified texture coordinates (S ′, T ′) are then used for lookup processing in the tile definition map (block 1518). This is done for the purpose of obtaining the desired texture tile for the current texture coordinate. The selected texture tile is then output for display (or for use in further texture processing operations) (block 1520).
[0044]
FIG. 33 shows a first example of the indirect tiling method of the present invention. As shown in FIG. 33, the texture
[0045]
As described above, certain scaling, wrapping, and / or additional processing is performed on the direct and indirect coordinates, as indicated by the bump section (OP)
[0046]
FIG. 34 shows a second example of the indirect tiling method of the present invention. Reference numerals correspond to similar parts described above. In this example, the
[0047]
FIG. 35 shows a third example of the indirect tiling method of the present invention. Similarly, reference numerals are used to designate similar parts as described above. In this example, a 2 × 4
[0048]
FIG. 36 is a logic block diagram of the example indirect tiling method described above with respect to FIGS. 32 and 33-35. As can be seen from FIG. 36, in this tiling method, the same initial texture coordinates can be used for the direct coordinates and the indirect coordinates (that is, S1 = S0, T1 = T0). However, other configurations where the coordinates are not identical are possible. For example, indirect texture coordinates that do not need to be scaled to properly accommodate the tile index map may be used. However, when using the same texture coordinates as in this example, the indirect texture coordinates 1700 (S0, T0) are first scaled, as shown in scaling
[0049]
The tile selection offset is scaled up to the original scale, as indicated by
[0050]
<Example of pseudo three-dimensional texture tiling (second tiling method)>
FIG. 37 shows a more detailed block diagram of the second indirect tiling method of the present invention (see FIG. 31), referred to as a pseudo 3D texture. According to this second method, a plurality of indirectly indexed tiles can be blended together to form a composite tile that is mapped to the surface. In other words, in this method, it is possible to extend the tiling mapping to provide a pseudo 3D effect. In this way, all tiles are considered part of the stack. Rather than selecting a single tile from the tile definition map as in the first example, this example selects multiple tiles (in the example below, two adjacent tiles) and blends the tiles. Composite texture tiles can be generated. This approach can be used, for example, to cover large surfaces with discontinuous patterns that blend smoothly with one another. By allowing blending of texture tiles, the programmer is not limited to specific tiles in the tile definition map when covering the surface. Alternatively, by combining new tiles with existing tiles, the number of texture tiles available to cover the surface can be greatly increased without the need for a large texture definition map. By using synthetic tiles, the appearance of repeated texture patterns can be avoided, thereby improving the realism of the image. This method can be used for covering a beach with various layers in appearance, such as fine sand, small pebbles, and large rocks, with a tiled texture. A blending function can be used to give a pseudo three-dimensional appearance to the texture after processing.
[0051]
As shown in FIG. 37, an indirect tile index map is defined to include an index to tiles in the tile definition stack (block 1800). Indirect texture coordinates are defined (block 1802), and texture selection offsets and blending coefficients are obtained (block 1804). Texture tile definitions are defined in the form of a stack (block 1806). If a pseudo three-dimensional effect is desired, in this example, the tiles are preferably defined such that adjacent tiles are well blended together to give a hierarchical effect. This will be better understood from the following description. Of course, as described above, when it is desired to make the indirect coordinates and the direct coordinates the same, the indirect coordinates may be scaled before the indirect lookup processing.
[0052]
Direct coordinates are defined (block 1808) and combined with the offset to generate a first modified texture coordinate (s, t ′) (block 1810). The offset is then modified (biased) in a predetermined manner, such as incrementing by one tile, and then the second modified texture coordinate (s, t ″) (block 1812) is defined. Thereafter, using the first modified texture coordinates (s, t ′), the first texture is looked up in the tile definition stack to obtain a first texture tile (block 1814). Thereafter, using the second modified texture coordinates (s, t ″), the second texture is looked up in the tile definition stack to obtain a second texture tile (block 1816). The first and second texture tiles are then blended to create a composite texture (block 1818). In this example, the blending coefficient used for the blending process is acquired together with the tile selection offset from the tile index map. The composite texture is then output for display (or for use in further texture processing operations) (block 1820).
[0053]
FIG. 38 shows an example of the pseudo 3D texturing method of the present invention. In this example, texture
[0054]
FIG. 39 shows an example of a logical block diagram of this second tiling method described above in connection with FIGS. As shown in FIG. 39, indirect coordinates (S0, T0) are determined and then scaled appropriately as indicated by scaling
[0055]
Also, a second modified set of texture coordinates is obtained using the tile selection offset given by the
[0056]
Thereafter, the first texture tile (tex1) and the second texture tile (tex2) are sent to the
[0057]
<Example of API indirect texture tiling function command>
As shown in FIGS. 7-10, it is preferred to set up and activate indirect texture lookup processing and indirect texture processing using one or more graphics API functions. The API function for setting indirect texture processing as described above, and parameters for performing indirect texture tiling and pseudo 3D texture tiling may be defined as follows.
[0058]
<GXSetTevIndTile>
This function may be used to perform tiled texturing using indirect textures. Note that a normal texture map only specifies a tile definition. The actual number of texels added to the polygon is a function of the size of the base tile and the size of the indirect map. To set the proper texture coordinate scale, GXSetTexCoordScaleManually must be called. In addition, in order to use the same texture coordinates as the normal TEV stage for the indirect stage, GxSetIndTexScale is used.
[0059]
[0060]
[0061]
The above functions can be used to specify the indirect texture tiling method or the pseudo 3D texture tiling method described above. Note that the tile size and spacing can be individually specified. An example of the reason for using an interval larger than the tile size is to have a boundary for mip mapping. Depending on the height of the mipmap stack, texels outside the tile may be included in the filtering calculation for the mipmap. This function sets the matrix and scale values appropriately based on predetermined inputs. You only need to specify which matrix slot to use. The biasSel and alphaSel parameters are used only in the case of a pseudo three-dimensional lookup. These are set to GX_ITB_NONE and GX_ITBA_OFF (respectively) in the case of normal two-dimensional tiling. Note that texture tiling can use the same texture coordinates for the indirect map and the normal (direct) map. However, the desired scale value of normal texture coordinates is not directly related to the size of the normal map containing the tile definition. Usually, the size of the scale of the texture coordinates is set to the size of the map to be looked up, and when the texture coordinates are shared, the size of the normal map is preferable. Because texture tiling requires different scales, the following function can be used.
[0062]
[0063]
When GXSetCoordScaleManual is called and enable is set to GX_True, the predetermined texture coordinate scale value is fixed until the function is called again. When the function is called and enable is set to GX_False, automatic texture coordinate scaling takes over again for that texture coordinate. For texture tiling, the desired texture coordinate scale is the product of the size of the tile and the size of the indirect map. Then, using GXSetIndTexCoordScale, the tile size is divided and used to access the indirect map.
[0064]
In order to support pseudo 3D texture lookup, in this example GXSetTevIndTile must be called for two adjacent TEV stages. The first stage is similar to the normal two-dimensional tiling specification. In the second stage, bias selection and alpha selection are specified. A bias is used to select the tile stack direction. When the next tile is an S-dimensional offset, GX_ITB_S is used, and when the next tile is a T-dimensional offset, GX_ITB_T is used. A bump alpha is then selected to blend the tile from the first lookup and the tile from the second lookup. In this example, the 8-bit format cannot be used for the pseudo three-dimensional texture. Alternatively, 3, 4, and 5 bit formats can be used. Such a format uses a bias value of +1 instead of -128. Use the +1 bias to get the “next” tile of the second stage.
[0065]
<Other compatible examples>
Some of the
[0066]
As an example, the emulator may provide a hardware and / or software configuration (platform) that is different from the hardware and / or software configuration (platform) of the
[0067]
Some general-purpose digital computers (eg, IBM or Macintosh personal computers and compatibles) currently have 3D graphics cards that provide a graphics pipeline that supports DirectX3D and other standard graphics command APIs. There are also things. They may also have a stereo sound card that provides high quality stereo sound based on standard sound commands. A computer equipped with such multimedia hardware that runs emulator software may have sufficient performance to approximate the graphics and sound performance of the
[0068]
FIG. 40 shows an example of the entire emulation process, which uses a
[0069]
As an example, if the software is written to run on a platform using a specific processor such as IBM PowerPC and the
[0070]
When the specific graphics-compatible hardware in the emulator does not include the indirect texture reference function or the functions shown in FIGS. 7 to 39, the emulator designer makes one of the following selections.
Convert indirect texture reference commands into other graphics API commands that can be interpreted by graphics-capable hardware.
-Indirect texture reference is implemented in the software. In response to this, there is a possibility that performance may be reduced depending on the processing speed of the processor. Or
• “Stub” the command for indirect texture references (ie, ignore) to provide a rendered image that does not include effects using indirect texture references.
[0071]
The logical diagrams of FIGS. 36 and 39 can be implemented by all software, all hardware, and a combination of hardware and software, but in the preferred embodiment, most calculations are hard (using
[0072]
An
[0073]
FIG. 41 shows an
[0074]
Many program
[0075]
The
[0076]
In one example, the
[0077]
Although the present invention has been described in connection with what is presently considered to be the most realistic and optimal embodiments, the present invention is not limited to the disclosed embodiments, and is not limited by the scope of the appended claims. Should be construed as including various modifications and equivalent mechanisms included in the above.
[Brief description of the drawings]
FIG. 1 is a schematic diagram of an example of an interactive computer graphics system.
FIG. 2 is a block diagram of an example of the computer graphics system of FIG.
FIG. 3 is a block diagram of an example of the graphics and audio processor shown in FIG.
4 is a block diagram of an example of the 3D graphics processor shown in FIG.
FIG. 5 is an example of a logic flow diagram for the graphics and audio processor of FIG. 4;
FIG. 6 is a block diagram showing a logical outline of indirect texture processing according to the present invention.
FIG. 7 is a functional block diagram illustrating a simple basic example of normal (non-indirect) texture lookup.
FIG. 8 is a functional block diagram illustrating a simple basic example of indirect texture lookup.
FIG. 9 is a block diagram illustrating an outline of a physical configuration example for performing indirect texture processing according to the present invention.
FIG. 10 is a block diagram showing a logical outline of texture address (coordinate / data) processor processing.
FIG. 11 is a group of block diagrams illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 12 is a block diagram illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 13 is a group of block diagrams illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 14 is a block diagram illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 15 is a group of block diagrams illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 16 is a group of block diagrams illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 17 is a block diagram illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 18 is a block diagram illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that is the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 19 is a group of block diagrams illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an embodiment of a texturing pipeline.
FIG. 20 is a group of block diagrams illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 21 is a group of block diagrams illustrating the relative course of pixel direct coordinate data and pixel indirect texture data that are the result of interleaved direct and indirect texture processing in an example of a texturing pipeline.
FIG. 22 is a flowchart showing an example of steps for performing indirect texture processing according to the present invention.
FIG. 23 is a functional processing diagram showing an example of normal (non-indirect) texture processing according to the present invention.
FIG. 24 is a functional processing diagram showing an example of both normal (non-indirect) and indirect texture processing according to the present invention.
25 is a block diagram showing a detailed example of a texture coordinate / bump processing unit shown in FIG.
26 is a block diagram illustrating a detailed example of the indirect texture lookup data / coordinate processing logic (proc) shown in FIG. 25. FIG.
FIG. 27 shows an example of a texture offset matrix used by the processing logic circuit (proc) of FIG.
FIG. 28 shows an example of a texture offset matrix used by the processing logic circuit (proc) of FIG.
29 is a block diagram showing an example of a data field format of a control logic register for controlling processing in the processing circuit of FIG. 26. FIG.
FIG. 30 is a general functional block diagram of a first tiling method according to a preferred embodiment of the present invention.
FIG. 31 is a general functional block diagram of a second tiling method according to a preferred embodiment of the present invention.
32 is a more detailed functional block diagram of the first tiling method of FIG. 30. FIG.
FIG. 33 shows three examples of the first tiling method of the present invention.
FIG. 34 shows three examples of the first tiling method of the present invention.
FIG. 35 shows three examples of the first tiling method of the present invention.
FIG. 36 is an example of the first tiling method of the present invention.
37 is a flowchart of the second tiling method of FIG. 25. FIG.
FIG. 38 is an example of a second tiling method of the present invention.
FIG. 39 is an example of a logical block diagram of a second tiling method of the present invention.
FIG. 40 illustrates another alternative embodiment.
FIG. 41 shows another alternative embodiment.
Claims (18)
前記制御部がテクスチャ座標を生成するステップ、
前記制御部が、前記間接タイルインデックスマップを用いて、前記テクスチャ座標を修正する修正ステップ、
前記制御部が、前記修正されたテクスチャ座標を用いて、前記テクスチャタイルを選択するステップ、および、
前記制御部が、前記選択されたテクスチャタイルを表示するステップを含む、方法。 A texture image having a plurality of identically sized texture elements (hereinafter referred to as texture tiles) arranged one-dimensionally or two-dimensionally, and an indirect tile index map defining a correspondence relationship between texture coordinates and the texture tiles; A method for performing texture tiling by a control unit in a graphics system accessible to storage means storing
The step of the control unit generates texture coordinates,
A correction step in which the control unit corrects the texture coordinates using the indirect tile index map;
Wherein the control unit, by using the corrected texture coordinates, step selecting the texture tile and,
The method comprising the step of the controller displaying the selected texture tile.
前記アクセスステップにおいて、前記制御部が、前記間接テクスチャ座標を用いて前記間接タイルインデックスマップにアクセスすることで、オフセット値を取得し、In the access step, the control unit obtains an offset value by accessing the indirect tile index map using the indirect texture coordinates,
前記修正ステップにおいて、前記制御部が、前記オフセット値を用いて前記テクスチャ座標を修正する、 In the correction step, the control unit corrects the texture coordinates using the offset value.
請求項2乃至4の何れかに記載の方法。 The method according to claim 2.
請求項5に記載の方法。 The method of claim 5.
前記制御部が、直接テクスチャ座標のセットを定義するステップ、
前記制御部が、間接テクスチャ座標のセットを定義するステップ、
前記制御部が、前記間接テクスチャ座標を用いて、オフセット値を取得するステップ、
前記制御部が、前記オフセット値を少なくとも1つの前記直接テクスチャ座標と組み合わせて、第1の修正されたテクスチャ座標を生成するステップ、および、
前記制御部が、前記第1の修正されたテクスチャ座標のセットを用いて、前記テクスチャ画像から第1のテクスチャタイルを取得するステップを含む、方法。 One-dimensional or two-dimensionally arranged plurality of texture elements of the same size (hereinafter, referred to as texture tile) texture tiling by the control unit in the accessible graphics system in a storage means for storing a texture image having A way to do ,
The controller directly defining a set of texture coordinates;
The controller defining a set of indirect texture coordinates;
The controller obtains an offset value using the indirect texture coordinates;
The controller combines the offset value with at least one of the direct texture coordinates to generate a first modified texture coordinate; and
The method includes the step of the controller obtaining a first texture tile from the texture image using the first modified set of texture coordinates.
前記制御部は、前記間接タイルインデックスマップから前記オフセット値を取得する、請求項7に記載の方法。 The storage means further stores an indirect tile index map that defines a correspondence relationship between the indirect texture coordinates and the offset value,
Wherein the control unit, you get the offset value from the indirect tile index map The method of claim 7.
前記制御部が、前記バイアスされたオフセット値を、少なくとも1つの前記直接テクスチャ座標と組み合わせて、第2の修正されたテクスチャ座標のセットを生成するステップ、
前記制御部が、前記第2の修正されたテクスチャ座標のセットを用いて、前記テクスチャ画像から第2のテクスチャタイルを取得するステップをさらに含む、請求項7に記載の方法。 The controller biasing the offset value ;
The controller combines the biased offset value with at least one of the direct texture coordinates to generate a second modified set of texture coordinates;
Wherein the control unit, using the second set of modified texture coordinates, further comprising the step of acquiring the second texture tiles texture image, The method of claim 7.
前記制御部は、前記間接タイルインデックスマップから前記オフセット値を取得するとともに、当該間接タイルインデックスマップから前記ブレンディング係数も取得する、請求項12に記載の方法。 The storage means further stores an indirect tile index map that defines a correspondence relationship between the indirect texture coordinates and the offset value,
Wherein the control unit obtains the offset value from the indirect tile index map, you also get the blending factor from the indirect tile index map The method of claim 12.
テクスチャ座標を生成する手段、Means for generating texture coordinates,
前記間接タイルインデックスマップを用いて、前記テクスチャ座標を修正する手段、Means for modifying the texture coordinates using the indirect tile index map;
前記修正されたテクスチャ座標を用いて、前記テクスチャタイルを選択する手段、および、Means for selecting the texture tile using the modified texture coordinates; and
前記選択されたテクスチャタイルを表示する手段Means for displaying the selected texture tile
を備えた装置。With a device.
直接テクスチャ座標のセットを定義する手段、
間接テクスチャ座標のセットを定義する手段、
前記間接テクスチャ座標を用いて、オフセット値を取得する手段、
前記オフセット値を少なくとも1つの前記直接テクスチャ座標と組み合わせて、第1の修正されたテクスチャ座標を生成する手段、および、
前記第1の修正されたテクスチャ座標のセットを用いて、前記テクスチャ画像から第1のテクスチャタイルを取得する手段
を備えた装置。 A device that can access a storage means storing texture images having a plurality of texture elements of the same size (hereinafter referred to as texture tiles) arranged one-dimensionally or two-dimensionally and performs texture tiling. And
Means to directly define a set of texture coordinates ,
A means to define a set of indirect texture coordinates ,
Means for obtaining an offset value using the indirect texture coordinates ;
Means for combining the offset value with at least one of the direct texture coordinates to generate a first modified texture coordinate; and
Means for obtaining a first texture tile from the texture image using the first modified set of texture coordinates
With a device.
テクスチャ座標を生成するステップ、 Generating texture coordinates;
前記間接タイルインデックスマップを用いて、前記テクスチャ座標を修正するステップ、 Modifying the texture coordinates using the indirect tile index map;
前記修正されたテクスチャ座標を用いて、前記テクスチャタイルを選択するステップ、および、 Selecting the texture tile using the modified texture coordinates; and
前記選択されたテクスチャタイルを表示するステップ、 Displaying the selected texture tile;
を前記コンピュータに実行させるためのプログラム。 For causing the computer to execute.
直接テクスチャ座標のセットを定義するステップ、
間接テクスチャ座標のセットを定義するステップ、
前記間接テクスチャ座標を用いて、オフセット値を取得するステップ、
前記オフセット値を少なくとも1つの前記直接テクスチャ座標と組み合わせて、第1の修正されたテクスチャ座標を生成するステップ、および、
前記第1の修正されたテクスチャ座標のセットを用いて、前記テクスチャ画像から第1のテクスチャタイルを取得するステップ、
を前記コンピュータに実行させるためのプログラム。 One-dimensional or two-dimensionally arranged plurality of texture elements of the same size (hereinafter, referred to as texture tiles) perform texture tiling storage means for storing a texture image having the computer in the accessible graphics system A program for
Defining a set of texture coordinates directly,
Defining a set of indirect texture coordinates;
Using the indirect texture coordinates to obtain an offset value;
Combining the offset value with at least one of the direct texture coordinates to generate a first modified texture coordinate; and
Obtaining a first texture tile from the texture image using the first modified set of texture coordinates ;
For causing the computer to execute.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22703300P | 2000-08-23 | 2000-08-23 | |
US60/227033 | 2000-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002208026A JP2002208026A (en) | 2002-07-26 |
JP4698894B2 true JP4698894B2 (en) | 2011-06-08 |
Family
ID=27788785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001206703A Expired - Lifetime JP4698894B2 (en) | 2000-08-23 | 2001-07-06 | Method, apparatus and program for texture tiling in a graphics system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4698894B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5475848B2 (en) * | 2012-09-07 | 2014-04-16 | 株式会社ディジタルメディアプロフェッショナル | A computer graphics circuit and a three-dimensional computer that uses this circuit to generate a two-dimensional pseudo-random texture pattern applied to a three-dimensional object displayed on a two-dimensional display system using a one-dimensional texture image Graphics equipment |
-
2001
- 2001-07-06 JP JP2001206703A patent/JP4698894B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002208026A (en) | 2002-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6707458B1 (en) | Method and apparatus for texture tiling in a graphics system | |
JP4790150B2 (en) | Shadow mapping in low cost graphics systems | |
JP4731028B2 (en) | Recirculating shade tree blender for graphics systems | |
US6825851B1 (en) | Method and apparatus for environment-mapped bump-mapping in a graphics system | |
US6700586B1 (en) | Low cost graphics with stitching processing hardware support for skeletal animation | |
US7002591B1 (en) | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system | |
JP4698893B2 (en) | Method, graphics system, and program for providing improved fog effects | |
US7307640B2 (en) | Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system | |
US6618048B1 (en) | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components | |
US6664958B1 (en) | Z-texturing | |
JP4719363B2 (en) | Graphics system with copy-out conversion between internal frame buffer and main memory | |
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 | |
JP4683760B2 (en) | Graphics system with embedded frame buffer having a reconfigurable pixel format | |
JP4698894B2 (en) | Method, apparatus and program for texture tiling in a graphics system | |
JP4740476B2 (en) | Method and apparatus for providing a logical combination of N alpha operations in a graphics system | |
JP4740490B2 (en) | Clamping Z values in the Z neighborhood to maximize the accuracy of visually important Z components in graphics rendering systems and avoid Z neighborhood clipping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080627 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100921 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101117 |
|
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: 20110203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110302 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4698894 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |