JP2002074390A - 低価格のグラフィックスシステムにおけるシャドウマッピング - Google Patents
低価格のグラフィックスシステムにおけるシャドウマッピングInfo
- Publication number
- JP2002074390A JP2002074390A JP2001163358A JP2001163358A JP2002074390A JP 2002074390 A JP2002074390 A JP 2002074390A JP 2001163358 A JP2001163358 A JP 2001163358A JP 2001163358 A JP2001163358 A JP 2001163358A JP 2002074390 A JP2002074390 A JP 2002074390A
- Authority
- JP
- Japan
- Prior art keywords
- texture
- shadow
- graphics
- depth
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
ッサを含むグラフィックスシステムは、迫力のある2D
および3Dグラフィックスやサラウンドサウンドを生成
する。 【解決手段】 本システムは、3Dグラフィックスパイ
プラインと音声デジタル信号プロセッサとを含むグラフ
ィックス&音声プロセッサを含む。フルシーンシャドウ
マッピングは、ライティングハードウェアに距離減衰関
数を用いて距離を計算させることによって実行できる。
より高い精度が求められる場合には、テクスチャ座標生
成ハードウェアを用いて、精度距離値を記憶するランプ
テクスチャルックアップにインデックスするテクスチャ
座標を計算することができる。重複値を与える固有のラ
ンプテクスチャを用いて、ランプテクスチャ・ルックア
ップエラーを除去することができる。
Description
フィックスに関し、より特定的には、家庭用ビデオゲー
ムプラットフォームのような対話式グラフィックスシス
テムに関する。さらにより特定的には、本発明は、低価
格のグラフィックスシステムにおいてフルシーンシャド
ウマッピングを用いてシャドウを生成する方法であっ
て、また、グラフィックスパイプラインテクスチャ座標
生成および/またはテクスチャマッピング機構を用い
て、シャドウ比較などの効果を発揮する精度数値を生成
することに関する。
や宇宙人、アニメ化されたおもちゃといった空想的な生
物を含む映像を目にしたことがある。このようなアニメ
ーションは、コンピュータグラフィックスによって可能
となっている。このような技術を用いて、コンピュータ
グラフィックス製作者は、各物体がどのように見える
か、および時間の経過に伴ってどのような外見上の変化
が生じるかを特定することができる。そして、コンピュ
ータが、物体をモデル化し、テレビやコンピュータ画面
などのディスプレイに表示する。表示画像の各部分の着
色や形状が、そのシーンに存在する個々の物体の位置や
向き、各物体に対する照明方向、各物体の面の質感、そ
の他様々な要素に基づいて確実にうまく行なわれるため
に必要な数多くのタスクは、コンピュータが引き受け
る。
なため、ほんの数年前まで、コンピュータで作成した3
次元グラフィックスの活用は、高価で専門化されたフラ
イトシミュレータやハイエンドグラフイックスワークス
テーション、スーパーコンピュータにほぼ限定されてい
た。人々は、コンピュータシステムによって生成された
画像を、映画や制作費の高いテレビ広告において目にす
ることはあっても、グラフィックス生成を行なうコンピ
ュータに実際に接することはできなかった。このような
状況が変化したのは、ニンテンドウ64(登録商標)や
パーソナルコンピュータで利用可能な各種の3Dグラフ
ィックスカードなど、比較的安価な3Dグラフィックス
プラットフォームの出現によるものである。今や、自宅
や勤務先でも、比較的安価なコンピュータグラフィック
スシステム上において、迫力のある3Dアニメーション
やシミュレーションと対話的に接することが可能となっ
ている。
り、オブジェクトが他のオブジェクトとの関連でどこに
現れるかについての視覚的なヒントを与えるのに重要で
ある。様々なシャドウイング技術が知られている。たと
えば、ウー他、「シャドウアルゴリズムの調査」、IE
EEコンピュータグラフィックスアンドアプリケーショ
ン、第10巻、第6号、13〜32頁(1990年11
月)を参照のこと。
直面した課題は、低価格のグラフィックスシステムを用
いてシャドウをいかにして描くかということであった。
これを達成する既知技術の一つとして、シャドウマッピ
ングと呼ばれるものがある。この技術によれば、通常の
zバッファによるレンダラーを、任意のオブジェクトに
対してシャドウを高速に生成するために用いることがで
きるようになる。ウィリアムズ、「曲面に対する曲面シ
ャドウのキャスティング」、コンピュータグラフィック
ス(SIGGRAPH 1978年会報)、第12巻、
第3号、270〜274頁(1978年8月)を参照の
こと。この技術を利用して、グラフィックスシステム
は、zバッファアルゴリズムを用いて、光源の位置およ
び方向を基準としてシーンをレンダリングする。zバッ
ファの各ピクセルに関して、描画した結果のzデプス
は、光源に最も近いオブジェクトまでの距離を含む。こ
のデプスマップは、シャドウマップと呼ばれる。その
後、シーンは再びレンダリングされるが、今回は、見る
者(カメラ)を基準としてレンダリングされる。各描画
プリミティブがレンダリングされるにつれて、その位置
(ライトからのデプス)はシャドウマップと比較され
る。レンダリング点が、シャドウマップ内の値よりも光
源から遠くにある場合には、シャドウ内の当該点および
その輝度は減衰される。レンダリング点がシャドウマッ
プ値よりも光源に対して近くにある場合には、当該点は
点灯されて、シャドウ内には入らない。
に効率的な方法として、テクスチャマッピングハードウ
ェアを利用してシーンにシャドウマップを投影すること
が挙げられる。ハイドリッヒ他、「視覚化および現実感
のある画像合成におけるピクセルテクスチャの応用」、
1999年対話型3Dグラフィックスに関するシンポジ
ウム会報、127〜134頁(1999年4月)、およ
びセガール他、「テクスチャマッピングを用いた高速シ
ャドウおよびライティング効果」、コンピュータグラフ
ィックス(SIGGRAPH 1992年会報、第26
巻、第2号、249〜252頁(1992年7月)を参
照のこと。これらの技術を用いれば、zバッファリング
を利用してシャドウマップを生成することができる(す
なわち、ライティング、テクスチャリング、およびカラ
ー値のカラーバッファへの書き込みをOFFにすること
ができる)。その後、視認性を解決するための周囲ライ
ティングのみを用いて、見る者の視点からシーンをレン
ダリングする。そして、シャドウテストステップを行っ
て、zバッファ内のz値をシャドウマップ内の(光源の
座標系から見る者の座標系へと変換される)z値と比較
する。或る技術によれば、各ピクセルについて、そのピ
クセルにおけるシャドウ比較結果に基づいて、追加の値
をフレームバッファ内に設定する。そして、全ライティ
ングの式を用いて、全シーンがレンダリングされる。つ
まり、周囲ライティングパスで得たカラーと全レンダリ
ングパスで得たカラーとの和にフレームバッファ内の追
加の値を掛け合わせたものが、各ピクセルの最終的なカ
ラーとなる。
グ」(コンピュータサイエンス学部、ノースキャロライ
ナ大学チャペルヒル校)で提案されている技術は、ウィ
リアムズのシャドウマッピング技術を拡張した技術であ
り、特定の自己シャドウイング問題(シャドウ比較の精
度が低いため、面が自身に対してシャドウを掛けてしま
う恐れがあるということ)を解決するものである。この
技術では、プリミティブによって規定された第2の面の
デプスに基づいてシャドウ比較を行う。それによって、
フロントフェイス・カリング技術を用いて、シャドウマ
ップ生成時にプリミティブの第1の面を除去すること
を、ワング他は提案している。これにより、精度に限界
のあるデプス比較において、フロントフェイスが自身に
対してシャドウを掛けることが防止される。
汎用グラフィックスハードウェアは、任意のシャドウを
レンダリングすることができる。しかしながら、これら
の技術を用いると、生成されるシャドウの品質は、シャ
ドウマップの(ピクセルにおける)解像度に依存し、ま
た、zバッファおよびデプス比較の数値精度にも依存す
ることとなる。モラー他、「リアルタイムレンダリン
グ」、179〜183頁(AKピーターズ社、1999
年)を参照のこと。デプス比較における適正な数値精度
を達成することは、ビデオゲームプラットフォームなど
の低価格のグラフィックスシステムにとっては問題とな
り得る。フルシーンシャドウイングにおいて、各オブジ
ェクトは、(自身を含む)どのオブジェクトに対しても
シャドウを掛けることができる。距離値を符号化するた
めに用いられる情報のビット数によって、光源から近距
離および遠距離の面がどこに投影されるか、およびどの
程度複雑なデプスをレンダリングされたシャドウマップ
に与えるかが決まる。面がシャドウ内にあるかシャドウ
外にあるかを知るために、ライトからレンダリングされ
ている面までの実際の距離と、ライトから最も近い距離
(これは、光源からシャドウマップに対してシーンをレ
ンダリングすることによって決まる)との間でデプス比
較が行われる。この距離値のビット数によって、特定の
ライトがシーンにシャドウを掛ける範囲が決まる。精度
が低下すると、シャドウやライトに対して与えられるデ
プスの複雑性は低下する。よって、低精度だと、ライト
がシーンに対して掛けるシャドウ数やシャドウの範囲の
広がりを限定してしまうことになりかねない。
精度をシャドウマッピング効果に対して与えることがで
きない場合には、通常、必要な計算をソフトウェアによ
る制御の下でグラフィックスシステムのホストコンピュ
ータに行わせれば、より高精度なデプス値を得ることが
できる。しかしながら、これは、ホストプロセッサに対
して大きな追加的負荷をかけることとなり、ユーザがシ
ーン内にある1つ以上のオブジェクトの位置を自由に変
更することができるような対話型の動画コンピュータグ
ラフィックスシステムにおいては、リアルタイムでのフ
ルシーンシャドウの描画は困難か、不可能となってしま
いかねない。
避する他の方法として、シャドウデプス比較を行わない
で、その代わりにライトから見えるものを識別すること
によって機能するようなシャドウマッピングの形式を利
用することが挙げられる。たとえば、アワーケード他、
「アンチエイリアシングされたキャストシャドウのため
のアルゴリズム」、コンピュータアンドグラフィック
ス、第9巻、第3号、259〜265頁(1985年)
を参照のこと。選ばれた視点からオブジェクトを見た場
合に、それがライトから見たのと同じであることをシャ
ドウマップが示していれば、オブジェクトは点灯され
る。この技術は、シャドウデプス比較を回避できるとい
う利点がある。しかしながら、オブジェクトやポリゴン
が交差する領域においては問題が生じる可能性がある。
そのような問題の生じる領域を、異なるオブジェクトに
対して異なる識別子を用いることによって解消すること
は可能であるが、このアルゴリズムを用いると、単一の
識別子を有するオブジェクトは自身に対してシャドウを
掛けることができなくなってしまう。
なる改善が可能である。本発明は、たとえば、家庭用ビ
デオゲームプラットフォ−ムやパーソナルコンピュータ
のグラフィックスアクセラレータなどに見られる、低価
格で限られた精度のハードウェアを用いて、フルシーン
シャドウマッピングを行う技術および機構を提供しつ
つ、数値精度の問題も解決するものである。
生成部を用いて、シーンの動的デプスに基づいた精度
で、ライト位置とプリミティブの面との間の距離計算を
支援する。テクスチャマッピング部は、生成されたテク
スチャ座標を用いて、テクスチャとして記憶されたラン
プ関数から精度距離値をルックアップする。結果得られ
た精度距離値は、シャドウマップ内の対応するデプス値
と比較され、ピクセルがシャドウ内にあるかどうかを決
定することができる。
クスチャとして記憶され、あるテクセルが重複していた
り、すべてのテクセルが使われるわけではなかったりす
る。ルックアップエラーをなくすために、ランプ関数が
テクセルの行/列の境界を跨いでいる場所に重複テクセ
ル値が与えられる。
グラフィックスシステム50の例を示す。システム50
は、興味をそそる立体音響を伴う対話式3Dビデオゲー
ムをプレイするのに用いることができる。また、これ
は、他の様々な用途に応用できる。
表現や3次元世界モデルを、対話的にリアルタイムで処
理することができる。システム50は、世界のすべてま
たは一部を、任意の視点から表示することができる。た
とえば、システム50は、手持ちコントローラ52aお
よび52bなどの入力装置からのリアルタイム入力に応
答して、視点を対話的に変化させることができる。これ
により、ゲームプレイヤは、世界の内部または外部の者
から見た世界を見ることができる。システム50は、リ
アルタイム3D対話式表示を要求しないような用途(た
とえば、2D表示生成および/または非対話式表示)に
用いることもできるが、上質の3D画像を非常に高速に
表示する能力は、現実感の高いおもしろいゲームプレイ
などの視覚的な対話を生成するのに用いることができ
る。
アプリケーションをプレイするためには、ユーザは、ま
ず、ケーブル58を用いて、メインユニット54をユー
ザのカラーテレビ56などの表示装置に接続する。メイ
ンユニット54は、カラーテレビ56を制御するための
ビデオ信号および音声信号を生成する。ビデオ信号は、
テレビ画面59に表示される画像を制御するものであ
り、音声信号は、テレビのステレオスピーカ61Lおよ
び61Rを介して、音として再生される。
源に接続する必要がある。この電源は、家庭の壁にある
電気コンセントに差し込む従来のACアダプタ(図示せ
ず)であってもよく、家庭用電流を、メインユニット5
4に電力供給するのに適切な、より低いDC電圧信号に
変換する。他の態様として、電池を用いることも可能で
ある。
び52bを用いて、メインユニット54を制御してもよ
い。たとえば、操作部60を用いて、テレビ56に表示
されるキャラクタが3次元世界内で移動すべき方向(上
または下、左または右、近または遠)を指定することが
できる。また、操作部60は、他の用途のための入力を
与える(たとえば、メニュー選択、ポインタ/カーソル
制御など)。コントローラ52は、様々な形態を取り得
る。本例においては、図示された各コントローラ52
は、ジョイスティック、押しボタン、および/または方
向スイッチなどの操作部60を含む。コントローラ52
のメインユニット54への接続は、ケーブルであっても
よいし、電磁波(たとえば、電波または赤外線波)を介
した無線であってもよい。
るためには、ユーザは、プレイしたいと思う当該ビデオ
ゲームなどのアプリケーションを記憶する適切な記憶媒
体62を選択して、当該記憶媒体をメインユニット54
内のスロット64に挿入する。記憶媒体62は、たとえ
ば、特に符号化されたおよび/または暗号化された光学
および/または磁気ディスクであってもよい。ユーザ
は、電源スイッチ66を操作して、メインユニット54
をオンして、記憶媒体62に記憶されたソフトウェアに
基づいてビデオゲームなどのアプリケーションの実行を
開始してもよい。ユーザは、コントローラ52を操作し
て、メインユニット54に入力を与えてもよい。たとえ
ば、操作部60を操作すると、ゲームなどのアプリケー
ションが開始されてもよい。他の操作部60を動かす
と、動くキャラクタを異なる方向へ移動させたり、3D
世界内でのユーザの視点を変化させたりすることができ
る。記憶媒体62内に記憶された特定のソフトウェアに
基づいて、コントローラ52上の様々な制御部60は、
異なる時に異なる機能を実行することができる。
ステム50の構成要素例のブロック図を示す。主な構成
要素は以下のものを含む。 ・メインプロセッサ(CPU)110、 ・メインメモリ112、および ・グラフィックス&音声プロセッサ114
(たとえば、拡張されたIBMPowerPC750)
は、グラフィックス&音声プロセッサ114を介して手
持ちコントローラ108(および/または他の入力装
置)からの入力を受ける。メインプロセッサ110は、
ユーザ入力に対話的に応答して、たとえば外部記憶媒体
62から光学ディスクドライブなどの大容量記憶アクセ
ス装置106を介して供給されるビデオゲームなどのプ
ログラムを実行する。一例として、ビデオゲームプレイ
の場合、メインプロセッサ110は、様々な対話的な制
御機能に加えて、衝突検出や動画処理を行うことができ
る。
は、3Dグラフィックスコマンドおよび音声コマンドを
生成して、グラフィックス&音声プロセッサ114に送
る。グラフィックス&音声プロセッサ114は、これら
のコマンドを処理して、興味をそそる視覚的な画像をデ
ィスプレイ59に生成したり、興味をそそる立体音響を
ステレオスピーカ61Rおよび61Lなどの適切な音発
生装置に生成したりする。
ダ120は、グラフィックス&音声プロセッサ114か
ら画像信号を受信して、当該画像信号を、コンピュータ
モニタや家庭用カラーテレビ56などの標準的な表示装
置に表示するのに適切なアナログおよび/またはデジタ
ルビデオ信号に変換する。また、システム50が含む音
声コーデック(圧縮器/伸長器)122は、デジタル化
された音声信号の圧縮および伸長を行い、また、必要に
応じて、デジタルまたはアナログ音声信号形式への変換
を行なってもよい。音声コーデック122は、音声入力
をバッファ124を介して受信して、グラフィックス&
音声プロセッサ114に与えて、処理を行なうことがで
きる(たとえば、プロセッサが生成した他の音声信号と
ミキシングするおよび/または大容量記憶アクセス装置
106のストリーミング音声出力を介して受信する)。
本例のグラフィックス&音声プロセッサ114は、音声
関連情報を音声タスク用に利用可能な音声メモリ126
に記憶することができる。グラフィックス&音声プロセ
ッサ114は、処理結果の音声出力信号を音声コーデッ
ク112に与えて、スピーカ61Lおよび61Rによっ
て再生できるように、(たとえば、バッファ増幅器12
8Lおよび128Rを介して)伸長やアナログ信号への
変換が行われる。
は、システム50内にある様々な付加的な装置と通信を
行うことが可能である。たとえば、パラレルデジタルバ
ス130が、大容量記憶アクセス装置106および/ま
たは他の構成要素との通信に用いられてもよい。シリア
ル周辺機器バス132が、様々な周辺機器などの機器と
の通信に用いられてもよく、それらの機器としては、た
とえば、以下のものを含む。 ・プログラム可能な読み出し専用メモリおよび/または
リアルタイムクロック134、 ・モデム136などのネットワークインターフェース
(インターネットなどのデジタルネットワークのよう
な、プログラム命令および/またはデータをダウンロー
ドしたりアップロードしたりすることが可能な電気通信
ネットワーク138に対して、システム50を接続する
ようなものであってもよい)、および ・フラッシュメモリ140。 別の外部シリアルバス142が、付加的な拡張メモリ1
44(たとえば、メモリカード)などの装置との通信に
用いられてもよい。コネクタが、様々な装置をバス13
0、132、および142を接続するために用いられて
もよい。
図3は、グラフィックス&音声プロセッサ114の例の
ブロック図である。一例として、グラフィックス&音声
プロセッサ114は、単一チップASIC(特定用途向
けIC)であってもよい。本例において、グラフィック
ス&音声プロセッサ114は、以下のものを含む。 ・プロセッサインターフェース150、 ・メモリインターフェース/コントローラ152、 ・3Dグラフィックスプロセッサ154、 ・音声デジタル信号プロセッサ(DSP)156、 ・音声メモリインターフェース158 ・音声インターフェース&ミキサ160 ・周辺機器コントローラ162、および ・ディスプレイコントローラ164。
グラフィック処理タスクを行う。音声デジタル信号プロ
セッサ156は、音声処理タスクを行う。ディスプレイ
コントローラ164は、画像情報をメインメモリ112
からアクセスして、それをビデオエンコーダ120に与
えて、表示装置56に表示させる。音声インターフェー
ス&ミキサ160は、音声コーデック122とインター
フェースし、また、別のソースからの音声(たとえば、
大容量記憶アクセス装置106からのストリーミング音
声、音声DSP156の出力、および音声コーデック1
22を介して受信した外部音声入力)をミキシングする
ことも可能である。プロセッサインターフェース150
は、メインプロセッサ110およびグラフィックス&音
声プロセッサ114間のデータおよび制御インターフェ
ースを提供する。
ィックス&音声プロセッサ114およびメモリ112間
のデータおよび制御に関するインターフェースを提供す
る。本例において、メインプロセッサ110は、グラフ
ィックス&音声プロセッサ114の一部であるプロセッ
サインターフェース150およびメモリインターフェー
ス152を介して、メインメモリ112にアクセスす
る。周辺機器コントローラ162は、グラフィックス&
音声プロセッサ114および上述の様々な周辺機器間に
おけるデータおよび制御に関するインターフェースを提
供する。音声メモリインターフェース158は、音声メ
モリ126とのインターフェースを提供する。
は、3Dグラフィックスプロセッサ154の例のより詳
細な図である。3Dグラフィックスプロセッサ154
は、特に、コマンドプロセッサ200と、3Dグラッフ
ィックスパイプライン180とを含む。メインプロセッ
サ110は、データのストリーム(たとえば、グラフィ
ックスコマンドストリームやデータリスト)をコマンド
プロセッサ200に伝達する。メインプロセッサ110
は、メモリの待ち時間を最小限にするための2レベルキ
ャッシュ115を有し、また、グラフィックス&音声プ
ロセッサ114向けの未キャッシュのデータストリーム
のためのライトギャザリングバッファ111も有する。
ライトギャザリングバッファ111は、部分キャッシュ
ラインを集めて完全キャッシュラインとし、このデータ
を1キャッシュラインずつグラフィックス&音声プロセ
ッサ114に送出して、バスが最大限に利用できるよう
にする。
セッサ110から表示コマンドを受信し、これを解析し
て、処理に必要な付加データを共通メモリ112から取
得する。コマンドプロセッサ200は、頂点コマンドの
ストリームをグラフィックスパイプライン180に与え
て、2Dおよび/または3D処理およびレンダリングを
行う。グラフィックスパイプライン180は、これらの
コマンドに基づいて画像を生成する。生成された画像情
報は、メインメモリ112に転送されて、表示制御部/
ビデオインターフェース部164によってアクセスでき
るようにしてもよく、それによって、ディスプレイ56
にパイプライン180のフレームバッファ出力が表示さ
れる。
の論理フロー図である。メインプロセッサ110は、グ
ラフィックスコマンドストリーム210と、表示リスト
212と、頂点アレイ214とをメインメモリ112に
記憶してもよく、バスインターフェース150を介して
ポインタをコマンドプロセッサ200に渡す。メインプ
ロセッサ110は、メインメモリ110内に割り当てた
1つ以上のグラフィックス先入れ先出し(FIFO)バ
ッファ210にグラフィックスコマンドを記憶する。コ
マンドプロセッサ200は、以下のものを取り出す。 ・グラフィックスコマンドを受信およびバッファリング
して、同期/フロー制御およびロードバランシングを行
なうオンチップFIFOメモリバッファ216を介し
て、メインメモリ112からのコマンドストリーム、 ・オンチップ呼び出しFIFOメモリバッファ218を
介して、メインメモリ112からの表示リスト212、
および ・コマンドストリームからの、および/または頂点キャ
ッシュ220を介してメインメモリ112内の頂点アレ
イ214からの頂点属性。
理動作200aを行って、属性型を浮動小数点形式に変
換し、その結果の完全な頂点ポリゴンデータをグラフィ
ックスパイプライン180に渡して、レンダリング/ラ
スタライズする。プログラム可能なメモリ調停回路13
0(図4参照)は、グラフィックスパイプライン18
0、コマンドプロセッサ200、および表示制御部/ビ
デオインターフェース部164の間で共通のメインメモ
リ112に対するアクセスを調停する。
ライン180は、以下のものを含んでもよい。 ・変換部300、 ・セットアップ/ラスタライザ400、 ・テクスチャ部500、 ・テクスチャ環境部600、および ・ピクセルエンジン部700。
の様々な処理300aを行う(図5参照)。変換部30
0は、変換処理300aに用いられるマトリックスを記
憶する1以上のマトリックスメモリ300bを含んでも
よい。変換部300は、頂点毎に入力される形状を、オ
ブジェクト空間から画面空間へ変換し、入力されるテク
スチャ座標を変換して投影テクスチャ座標を計算する
(300c)。変換部300は、ポリゴンクリッピング
/カリング(300d)を行ってもよい。また、変換部
300bによって行われるライティング処理300eに
よって、一実施例においては、8個の独立した光に対す
るライティング計算が頂点毎に行われる。また、変換部
300は、エンボス型のバンプマッピング効果を出すた
めのテクスチャ座標生成(300c)や、ポリゴンクリ
ッピング/カリング処理(300d)を行うこともでき
る。
ットアップ部を含む。セットアップ部は、頂点データを
変換部300から受信して三角形セットアップ情報を1
以上のラスタライザ(400b)に送信して、エッジラ
スタライズ、テクスチャ座標ラスタライズ、およびカラ
ーラスタライズを行う。
ャメモリ(TMEM)502を含んでもよい)、テクス
チャリング関連の様々なタスクを行う。タスクには、た
とえば、以下のものが含まれる。 ・メインメモリ112からテクスチャ504を取り出
す、 ・たとえばマルチテクスチャ処理、ポストキャッシュテ
クスチャ伸展、テクスチャフィルタリング、エンボス、
投影テクスチャを用いたシャドウおよびライティング、
ならびにアルファ透明およびデプスを用いたBLITを
含む、テクスチャ処理(500a)、 ・バンプマッピング、疑似テクスチャ、テクスチャタイ
リング効果のためのテクスチャ座標変換量を計算するバ
ンプマップ処理(500b)、および ・間接テクスチャ処理(500c)。
チャ値をテクスチャ環境部600に出力して、テクスチ
ャ環境処理を行なう(600a)。テクスチャ環境部6
00は、ポリゴンとテクスチャカラー/アルファ/デプ
スをブレンドし、テクスチャフォグ処理(600b)を
も行って、インバースレンジに基づくフォグ効果を達成
する。テクスチャ環境部600は、複数のステージを提
供して、たとえばカラー/アルファ・モジュレーショ
ン、エンボス、ディテールテクスチャリング、テクスチ
ャスワッピング、クランピング、およびデプスブレンデ
ィングに基づいて、他の興味をそそる様々な環境関連の
機能を行うことができる。
比較(700a)およびピクセルブレンディング(70
0b)を行う。本例において、ピクセルエンジン700
は、組み込み(オンチップ)フレームバッファメモリ7
02にデータを記憶する。グラフィックスパイプライン
180は、1以上の組み込みDRAMメモリ702を含
んでもよく、フレームバッファの内容および/またはテ
クスチャ情報をローカルに記憶する。現在有効なレンダ
リングモードによっては、Z比較700a’は、グラフ
ィックスパイプラインの早い段階において行われること
もできる(たとえば、アルファスレッショルディングが
不要であれば、z比較は早い段階で行うことができ
る。)。ピクセルエンジン700は、コピー処理700
cを含む。これは、オンチップフレームバッファの内容
をメインメモリに周期的に書き込むものであり、表示/
ビデオインターフェース部164がアクセスできるよう
にする。このコピー処理700cを用いて、組み込みフ
レームバッファ702の内容からテクスチャまでを、メ
インメモリ112にコピーすることもでき、動的なテク
スチャ合成効果が得られる。アンチエイリアシングやそ
の他のフィルタリングは、コピーアウト処理中に行うこ
とができる。(最終的にはメインメモリ112に記憶さ
れる)グラフィックスパイプライン180のフレームバ
ッファ出力は、フレーム毎に、表示/ビデオインターフ
ェース部164によって読み出される。表示制御部/ビ
デオインターフェース164は、ディジタルRGBピク
セル値を与えて、ディスプレイ102に表示する。
において、変換部300は、距離減衰係数を含むライテ
ィング式を計算するようにプログラムされているような
ライティング計算ハードウェアを含む。たとえば、共通
して譲渡された2000年8月23日出願の米仮出願番
号60/227,007および 出願
の対応特許出願番号(代理人整理番号723−96
7)、名称「グラフィックスシステムおよび方法におけ
る色消しライティング機能」(代理人整理番号723−
748)を参照のこと。このようなライティング計算
は、レンダリングされるシーンにおけるライトから任意
の面までの距離を決定するために用いることができる。
光強度は、距離とともに減衰する(たとえば、線形で)
ので、その結果得られる、レンダリングされた面におけ
る輝度値は、ライトから面までの距離を示すために用い
ることができる。この計算されたデプス値は、シャドウ
マップデプス値と比較されて、ピクセルを陰付けするか
否かを決定する。
は、8ビット幅である。たとえば、この値は、単一の色
要素(たとえば、RGB3色のうちの赤要素)に含まれ
ていてもよい。8ビット精度は、ライティング処理には
充分なものであが、シャドウマップデプスとの比較を行
って、任意のシャドウ複雑性を有するシーンに対してフ
ルシーンのシャドウイング技術を適用するためには不充
分な場合もある。変換部300を修正して、1チャンネ
ルあたり8ビット以上になるようにすることは可能であ
ろうが、変換部がコスト高になり、複雑になってしま
う。
換部300に続くテクスチャ部500は、カラーチャン
ネル毎に充分な精度を有しており、この精度はグラフィ
ックスパイプライン180を通じて伝達される。テクス
チャ部500は汎用プロセッサではなく、むしろ、好ま
しい実施例においては、テクスチャマッピング機能を行
うように設計されている。我々は、テクスチャ座標生成
ハードウェアを用いて、距離を展開し、距離がテクスチ
ャ座標に入ったら、テクスチャをサンプリングして8ビ
ット以上の精度を得る方法を発見した。たとえば、一例
として、シャドウ比較に関する特にこの実施例におい
て、16ビットから19ビットまでの精度を取得するこ
とができる。
標生成部とシステム50のテクスチャマッピング部50
0とを用いてグラフィックスパイプライン180によっ
て計算されたデプス値の精度をシャドウマップ比較のた
めに高める代替技術を、我々は発見した。図6は、一例
であるルーチン1000を示し、システム50は、数値
精度の高いデプス比較を行うフルシーンシャドウマッピ
ングを行うことができる。本例において、グラフィック
スパイプライン180は、シャドウマップデプステクス
チャを第1のパスで生成する(ブロック1002)。第
2のパスにおいて、従来のテクスチャ投影技術を用い
て、シャドウマップデプステクスチャをシーンに投影す
る(ブロック1002)。また、第2のパスにおいて、
変換部300は、テクスチャ座標生成とテクスチャマッ
ピングとを用いて、ライトの位置から描画される面まで
の距離を示す精度数値を決定する(ブロック100
4)。
(たとえば、ライト位置からの頂点位置のモデルビュー
変換と、シーンデプスの動的な範囲を考慮したスケーリ
ング変換との組み合わせを用いて)面からライトまでの
距離を示すテクスチャ座標を生成する。そして、結果得
られたテクスチャ座標を、ランプ関数テーブルに記憶さ
れたより精度の高いデプス値をルックアップするため
に、テクスチャ部500に適用して、テクスチャ部が通
常のテキスチャとして処理できるようにする(ブロック
1006)。このようにして得られた高精度の距離値
は、対応のシャドウマップデプス値と比較され、ピクセ
ルを陰付けするか否かを決定するのに用いることができ
る(ブロック1008)。その後、システム50は、こ
の技術によってフルシーンで陰付けされた画像を表示す
ることができる(ブロック1010、画像の例として図
18を参照)。
0を動作させてフルシーンで陰付けされた画像を提供す
るためのより詳細な処理の例1020を示し、図8は、
第2のパスのグラフィックスパイプライン処理の例を示
す。図7は、第1のパスにおいて、組み込みフレームバ
ッファ702のバッファ部に光源視点からのシーンデプ
スを入れてレンダリングすることによって生成されたシ
ャドウマップを示す(ブロック1022)。共通して譲
渡された同時継続出願の2000年8月23日出願の仮
出願番号60/226,900および2000年11月
28日出願の対応特許出願番号09/726,226
(代理人整理番号723−964)、名称「グラフィッ
クスシステムのエイリアス補正方法および装置」を参照
のこと。本実施例では、この処理中にフロントフェイス
・カリングが起動されて、ワング他の上述の「第2のデ
プス」アルゴリズムが実施される。その結果得られた、
組み込みフレームバッファ702に記憶されたデプスマ
ップは、ピクセルエンジン700によってテクスチャに
コピーアウトされる(ブロック1024)。共通して譲
渡された2000年8月23日出願の仮出願番号60/
227,030および2000年11月28日出願の対
応特許出願番号09/722,663(代理人整理番号
723−963)、名称「内部フレームバッファと主メ
モリ間でのコピーアウト変換を有するグラフィクスシス
テム」を参照のこと。効率化のために、ブロック102
2は、カラーフレームバッファの更新をOFFにして行
うこともできる。なぜなら、本願では、デプス値の生成
のみが主眼だからである。
ち、ユーザ)の視点から、シーンがレンダリングされる
(ブロック1026)。各ピクセルに関して、適切なテ
クスチャ投影マトリックスが適用されて、シャドウマッ
プテクスチャがシーンに投影される(ブロック102
6)。さらに、オブジェクト空間の頂点位置は、光源に
おける視点を規定するモデルビューマトリックスを用い
て、オブジェクト空間から光空間(シャドウマップがレ
ンダリングされたのと同じ空間)へ変換される(ブロッ
ク1028)。結果得られるz値は、面からライトまで
の距離を表している。
理は、このデプス値に対して追加の変換を行う。この追
加の変換は、シーンの動的なデプス範囲に基づくもので
ある。本実施例においては、計算された距離値を動的な
距離範囲(すなわち、カメラが「見る」ことができる直
近の面とカメラが見ることができる最も遠い面との差)
に基づいて変換するために、テクスチャ座標変換処理は
用いられる。図12を参照のこと。
えば、線形に)増加させることを規定するランプ「テク
スチャ」をルックアップテーブルにおいてインデックス
するためのテクスチャ座標が与えられる。本実施例にお
いて、テクスチャ部500は、ランプルックアップテー
ブルを他のテクスチャとしてみなし、それに対して、変
換部300によって生成されたテクスチャ座標に基づい
て通常のテクスチャマッピング処理を行う。たとえば、
共通して譲渡された2000年8月23日出願の仮出願
番号60/226,891および2000年11月28
日出願の対応特許出願番号09/722,382(代理
人整理番号723−961)、名称「グラフィクスシス
テムにおいて直接および間接テクスチャを処理するため
の方法および装置」を参照のこと。しかしながら、結果
生じたテクセル値は、面の色や不透明度を直ちに修正す
るために用いられるわけではない。むしろ、テクセル値
によって、対応する投影されたシャドウマップデプス値
と比較される精度デプス値が与えられ、シャドウイング
の判断が行われる(ブロック1032)。
元テクスチャで記憶されるのが理想的であろう。しかし
ながら、多くの低価格のグラフィックスシステムは、扱
えるテクスチャの最大サイズに限界がある。たとえば、
ある例においては、システム50は、最大1024x1
024のテクセルを扱うことができる。1次元1024
テクセル・ランプ関数テクスチャは、10ビットの数値
精度を提供する。これは、8ビットより高精度だが、よ
り高精度を求めたい。したがって、テクスチャ座標生成
を用いてデプス値(ライトから面までの距離)を符号化
して2つのテクスチャ座標(s,t)の組み合わせ値と
し、ランプ関数を要求に充分合うような精度を提供する
サイズの2次元テクスチャにして記憶する。たとえば、
1024x1024の2次元テクスチャは、1024テ
クセルの1次元テクスチャと比較して、(ほぼ)2倍の
精度を提供することができる。精度を最大にするには、
シーンのデプス範囲に基づいてデプス値を動的に変換す
ることもできる。そうすれば、どの2Dのランプテクス
チャ値も、距離的にアクセスできないといったことはな
くなり、無駄にはならなくなる。
とテクスチャマッピング処理とを用いて面デプス値を求
めると、このデプス値をシャドウマップ内の対応するデ
プス値と比較することができる。シャドウマップデプス
がライトに対するピクセルデプスより浅ければ、シャド
ウ内のピクセルおよび輝度は減衰される(判断ブロック
1032の「Yes」出口、ブロック1034)。10
26〜1034の処理は、レンダリングされるピクセル
毎に行われる。すべての面上のすべてのピクセルが処理
されると(判断ブロック1036の「No」出口)、フ
ルシーンで陰付けされた画像は完了し、表示されうる
(ブロック1038)。
イプライン180によって行われる処理を示す。この例
において、変換部300は、見る者の視点にあるカメラ
に基づいて従来のモデルビュー変換を行い、また、入力
される頂点定義をライティングして(ブロック105
0)、その結果をラスタライザ400に与えて(ブロッ
ク1052)、ラスタライズされたグローシェーディン
グされたピクセルカラー/アルファ/zを生成する。本
実施例においては、これらの値は、テクスチャ環境部6
00に与えられ、ブレンディングされる(ブロック10
54)。また、本実施例において、所定のシャドウカラ
ー値もブレンド処理に与えられる(1054)。
した者の好みに基づく正射影または透視)が、変換部3
00によって行われ(ブロック1056)、テクスチャ
座標が生成される(ブロック1058)。テクスチャ部
500は、対応のテクスチャマッピング処理を行って、
シャドウマップテクスチャをシーンに投影する。結果得
られたデプス値は、比較処理に与えられる(106
0)。この比較処理は、本実施例においては、テクスチ
ャ環境部600によって行われる。
テクスチャ部500を介して、ブロック1062,10
64,および1066によって行われる。上述のよう
に、変換部300によって行われるモデルビュー変換に
よって、ライトからのピクセルデプスが決定され(ブロ
ック1062)。これは、ピクセルの位置を、シャドウ
を掛けるライトの位置に変換することによって行われ
る。また、テクスチャ座標生成に関連してさらなる変換
を行って、シーンのデプス範囲に基づいてz(デプス)
値を行うこともできる(ブロック1064)。これら2
つの変換(1062,1064)は、テクスチャ座標
s,tを生成する単一のマトリックス乗算によって組み
合わせて行うことができる。結果生じるテクスチャ座標
s,tはテクスチャ部500によって用いられて、ラン
プテクスチャ・ルックアップテーブルから精度距離値を
ルックアップするというテクスチャマッピング処理を行
う(ブロック1066)。この結果値は、比較ブロック
1060によって用いられて、シャドウマップデプスと
比較される。
プス値を、シャドウを掛ける位置に対するピクセルデプ
ス値と比較する。比較出力は、ブレンド処理(105
4)に与えられ、所定のシャドウカラーがラスタライズ
されかつ陰付けされたピクセルカラーの代わりに用いら
れるべきかどうかを制御する。他の実施例においては、
ブレンド処理1054は、ピクセルカラーを調節(たと
えば、減衰)して、デプス比較結果が表すピクセルがシ
ャドウ内に入るようにピクセルを暗くする。
システム50の一実施例を用いて、単一のテクスチャ座
標内のピクセル距離値を符号化して1次元テクスチャを
ルックアップして独自性(すなわち、パススルー)を与
えると、1024x1024テクセルという最大テクス
チャサイズに基づいて、10ビットの距離精度を得るこ
とができる。2つのテクスチャ座標(たとえば、1つの
座標は他の座標を変倍したもの)を用いると、2次元テ
クスチャ内のすべての(またはほとんどの)テクセルを
通じてランプ距離関数を伝達させることができる。図9
および10は、それぞれ、8ビット(16x16)およ
び16ビット(256x256)フォーマットの2次元
ランプテクスチャの例を示す。それぞれの場合におい
て、線形に増加するランプ関数は、テクスチャの各列で
降下するように見える点に注意されたい。ランプ関数
は、連続する列で継続し、最小値(たとえば、00また
は0000)から最大値(たとえば、0xFFまたは0
xFFFF)を与える。このようなランプテクスチャ
は、メインプロセッサ110による処理(図11参照)
を通じて動的に生成することができ、あるいは、静的に
予め規定しておき、大容量記憶装置から必要なときに単
にロードされるようにしてもよい。このような例におい
て、特定テクスチャ列はS座標によって選択され、Tテ
クスチャ座標は、特定の距離値化されたテクセルを選択
された列内で選択する。
テクスチャ座標S,Tは、テクスチャマッピング処理に
よって生成可能な精度距離値を符号化することができ
る。これにより、単一のテクスチャ座標を用いて達成可
能な精度を実質2倍にする。たとえば、図9および10
に示すテクスチャ例に基づくテクスチャマッピング処理
を用いれば、入力テクスチャ座標値および出力テクセル
(デプス)値の関係が以下のように生じる。
して解釈される。たとえば、16ビット幅のテクセル
は、16ビット数に解釈することができる。テクスチャ
マッピングの場合、直近のサンプル値が選ばれなければ
ならない(たとえば、双一次補間は用いてはならな
い)。
標生成ハードウェアを用いる技術の例であって、図9お
よび10に示すようなランプテクスチャのルックアップ
のための距離を表すテクスチャ座標s,tを生成する。
本実施例においては、所定の視点と、所定の位置と、所
定の距離範囲とを与えるようにカメラが構成される。カ
メラ距離範囲は、近z値(N)および遠z値(F)によ
ってパラメータ化される。カメラのデプス範囲は、近z
と遠zとの間の距離(すなわち、F−N)によって特定
される。これらの範囲パラメータを用いて頂点位置を変
換し、これによって、オブジェクト空間から光空間への
頂点位置の総変換が行われる。光空間は、シーンのデプ
ス範囲に正確に「適合」するようにランプが与えた数値
精度の動的な範囲に拡がっている。
スチャ座標対に変換するための特定の関数は、透視投影
か正射影投影かによって異なる。以下に、これら2つの
場合における計算例を示す。
ットモード)
なる。
ットモード)
なる。
存在することに留意されたい。上記の結果得られる変換
マトリックスは、ライト位置に基づくモデルビュー変換
から生じるz値を、図9および10に示すようなランプ
テクスチャにインデックスするのに用いられるs,tテ
クスチャ座標に変換する。変換部300は、比較的高精
度のテクスチャ生成計算を行い(特に、2つのテクスチ
ャ座標が並行して生成される場合)、また、本ランプテ
クスチャ例は、比較的高精度のルックアップ値を与える
(特に、2つのテクスチャ座標を用いて2次元テクスチ
ャをマッピングする場合)ので、この技術により、比較
的高精度のピクセルデプス値を得ることができる。
テクスチャマッピング処理において曖昧さが生じること
があり、これにより、ランプテクスチャから選択される
べき値が不正確になることがある。図9および10に示
すランプテクスチャの例において、境界をまたいで不正
確な値に「ジャンプ」することもあり、シャドウ比較に
アーティファクトを招く場合がある。たとえば、システ
ムがテクスチャをトラバースする度に次の隣接するテク
スチャの列または行へ移動するように、ランプ関数をテ
クスチャの全幅に渡って与えることにより、エラーを招
くことがある。これらのエラーをなくすために、より少
数の固有デプス値を含む修正されたランプテクスチャを
用いることが可能である。重複値を記憶して、ルックア
ップエラーを除去する。図13および14は、このよう
なランプテクスチャの例である。
は、1次元フォーマット内のテクスチャマップに渡る
が、時折(すなわち、ランプがテクスチャ行間を「渡
る」場合)、次の下行にある同一のサンプルを与えるよ
うな、浅いランプ関数を提供する。図13および14に
示すように、修正されたアプローチにおいては、システ
ムが1行中1テクセルを除いてトラバースする度にテク
スチャ内の次の行に移動する。たとえば、簡略化された
図13のランプテクスチャを参照して、ランプ期間はテ
クスチャ幅と完全に一致しているわけではないので、各
隣接する1次元テクスチャ行のある一定数のテクセルを
重複させることができる。したがって、図13および1
4に示すランプテクスチャの例において、テクセルすべ
てが固有値を表さなくてもよい。なぜなら、テクセルの
うちのいくつかは重複しているからである。さらに、テ
クセルには、零値を含むものがあってもよい。なぜな
ら、ランプ関数は、それらにアクセスするからである。
これらの例において、すべてのテクセルを用いるわけで
はないが、ほぼすべてのテクセルを用いることができ
る。上述のデプス値を計算するために用いられる式が用
いられて、テクスチャをトラバースするための完全な右
傾斜を有する傾斜の浅い線を生じさせる。本実施例にお
ける変換部300内のテクスチャ生成ハードウェアおよ
びテクスチャ座標の生成/ラスタライジングにおけるテ
クスチャサンプリングは、この傾斜を維持するのに充分
正確であり、テクスチャを通じていかなるアーティファ
クトをも生じさせるものではない。したがって、図13
および14に示すランプテクスチャ例は、これらの条件
において、エラーを生じさせるものではなく、シャドウ
比較において、ランプテクスチャ・ルックアップエラー
が原因となるアーティファクトは生じない。
ステム50上でシャドウマッピングを行うためにメイン
プロセッサ110内において実行するアプリケーション
のより完全で詳細な実施例を示す。手順1100は、シ
ステム50を初期化することによって開始する(ブロッ
ク1102)。この初期化には、頂点フォーマットと、
ライトを含むシーンパラメータとの初期化とを含む(ブ
ロック1104)。その後、ルーチン1100は、1以
上の上述のランプテクスチャを生成または取り出し(ブ
ロック1106)、表示モードをOFFにして動的なシ
ャドウマップのためにメモリを確保することによって、
第1のパス処理の準備を行う(ブロック1108)。そ
の後、システム50は、カラーフレームバッファ更新を
禁止にし(zのみ更新される)(ブロック1110)、
テクスチャ環境部600内のシェーダを、第1のパス処
理のために設定して、シャドウデプスマップを生成する
(ブロック1112)。システム50は、フロントフェ
イス・カリングを許可して、ライトからの「第2の」面
のみを描画し、(ブロック1114)、視点をライト位
置に設定する(ブロック1116)。その後、グラフィ
ックスパイプライン180は、シーンを描画し、陰面除
去を行ってzバッファ内にデプスマップを作成する(ブ
ロック1118)。シーンがライト位置から描画される
と、zバッファデプスマップ(ライト位置に対する、シ
ーン内のすべてのプリミティブに関するすべての直近の
「第2の」面のデプスを含む)、システム50は、zバ
ッファをテクスチャにコピーして、zバッファをフラッ
シュする(ブロック1120)。
は、カラー更新を許可にして(ブロック1122)、フ
ロントフェイス・カリングをOFFにする(ブロック1
124)。その後、システム50は、主画像をレンダリ
ングするためにビューポート/カメラ/ライトを設定し
(ブロック1126)、シャドウマップテクスチャを設
定する(ブロック1128)。システム50は、テクス
チャ環境部600内の再循環シェーダのためにモード/
ステージを設定して、見る者からの実際のシーンをフル
シーンシャドウで描画するための第2のパスのパラメー
タを得る(ブロック1130)。図17に示すように、
シェーダの構成例は、以下のものを生じさせる。 ・デプス値をランプテクスチャからロードする、ステー
ジ0シェーダ処理、 ・ロードされたランプテクスチャデプス値をシャドウマ
ップデプス値と比較して、ランプテクスチャデプス値が
シャドウマップデプス値以上であれば0を出力する、ス
テージ1シェーダ処理、および ・ステージ1が0を出力した場合には、予め設定された
シャドウカラーを出力し、その他の場合はラスタライズ
されたカラーを出力する、ステージ2シェーダ処理。テ
クスチャ環境部に含まれる再循環シェーダの処理に関す
る詳細は、共通して譲渡された、2000年8月23日
出願の仮出願番号60/226,888および2000
年11月28日出願の対応特許出願番号09/722,
367(代理人整理番号723−968)、名称「グラ
フィクスシステム用再循環シェードツリーブレンダ」を
参照のこと。
座標生成マトリックスをロードして、シャドウマップテ
クスチャ投影およびランプデプス値テクスチャルックア
ップを行う(ブロック1132)。一実施例によれば、
以下のソースコードを用いて、シャドウ投影マトリック
スおよびデプスルックアップマトリックスを生成するこ
とができる(透視または正射影)。
パラメータを設定し、これには、モデルビューマトリッ
クスによって乗算される適切な変換マトリックスを含
む。
と、プロセッサ110は、シャドウマップとランプテク
スチャとをテクスチャ部500にロードする(ブロック
1134)。これで、グラフィックスパイプライン18
0は、シーンを描画できることになり(ブロック113
6)、描画が完了すると表示される(ブロック113
8)。
クスチャ環境部600内の再循環シェーダは、シャドウ
デプス比較と、その比較結果に基づくシャドウカラーへ
のブレンドとを行うために用いられるとした。行われる
シャドウマッピング処理の精度によっては、別の再循環
シェーダステージが用いられてもよい。一実施例におい
て、単一のステージにおける2つのデプス値を比較する
ために、再循環シェーダ内において、8/16/24ビ
ット比較器が用いられるとした。そのような比較器が利
用できないような実施例の場合でも(たとえば、低精度
の8ビット比較のみが実施可能な場合)、再循環シェー
ダは高精度の比較を行うことが可能であるが、そのため
には複数のステージが必要となる場合もある。たとえ
ば、あるステージは、(たとえばひとつのテクセルカラ
ー要素に含まれる)各デプス値の最上位部を比較するた
めに用いられ、別のステージは、(たとえば、他のテク
セルカラー要素に含まれる)各値の最下位の位置を比較
するために用いられてもよい。以下は、8ビット比較器
のみを必要とする、精度の異なるシェーダ処理のための
再循環シェーダ構成の例である。これらの例において、
R0は、シャドウカラーを保持し、RASCは、点灯さ
れた頂点カラーであり、RPは、TEVPREVレジス
タである。
ビット比較モードの例>
くつかのアーティファクトを生じさせる可能性あり>
ャドウ描画を行うために再循環シェーダ例をどのように
制御するかをさらに詳細に示す。
ッピングを行うのに用いる、図示のアプリケーションプ
ログラミングインターフェースコマンド例のレパートリ
・リストである。
ャドウマッピングによって生成された画像の例である。
この例では、トーラス形状のオブジェクトが、格子模様
のフロアパネル上にシャドウを投影する。ライトは、見
る者の視点から離れた点からやってくるように見える。
システム50は、図18に示すようなシーンをリアルタ
イムでレンダリングすることができる。
1および22は、オブジェクト識別技術に基づいてシス
テム50が行うことができる、シャドウマッピングの一
実施例である。この実施例では、上述の、ライト視点か
らの全シーンをレンダリングするが、zバッファをデプ
ス比較のためのシャドウマップとして用いるのではな
く、各オブジェクトを、個別の識別番号によってペイン
トする。たとえば、この識別番号は、符号化されて、カ
ラーフレームバッファ702の1つ以上のカラー要素の
グレースケール値となってもよい。一意のオブジェクト
IDが、各オブジェクトに割り当てられる。一例におい
て、IDは8ビット幅であり、メインプロセッサ110
によって変換部300にマテリアルカラーとして書きこ
まれる。それによって、オブジェクトIDは、グラフィ
ックスパイプライン180にキャリーダウンされ、組み
込みカラーフレームバッファ702のカラーチャンネル
の1つに書き込まれる。その結果、第1のパスのレンダ
リング処理の最後には、カラーフレームバッファは、ラ
イトが「見る」ことができるすべてのオブジェクトのI
Dを含む。図19および20のブロック2100〜21
18を参照のこと。
ッファの適切な内容(ID)がテクスチャにコピーされ
て(ブロック2120)、第2のパスのテクスチャマッ
ピング処理に用いられる。その後、カメラ(ユーザ)の
視点から見た全シーンが再びレンダリングされる。シャ
ドウマップオブジェクトIDテクスチャは、従来のテク
スチャ投影を用いてシーンに投影され、テクスチャ環境
部600は、各ピクセルについて、描画すべきオブジェ
クトのID番号と投影されたシャドウマップテクスチャ
からのID番号とを比較する。2つのID番号が同様で
ない場合、ライトからの光線は、別のIDを有する他の
オブジェクトによって妨害されているということにな
る。本例のテクスチャ環境部600は、所定のシャドウ
カラーをピクセルにブレンドする(または、ピクセルの
輝度を減衰させる)。本例のテクスチャ環境部600に
よって行われる比較は、2つのステージを有する。第1
のシェーダステージは、オブジェクトIDをシャドウマ
ップから受け取るために用いられ、第2のシェーダステ
ージは、シャドウマップIDとレンダリングされたオブ
ジェクトIDとの比較結果に基づいて、所定のシャドウ
カラーをブレンドするために用いられる。図20のブロ
ック2126〜2136を参照のこと。
構成要素50のうちのあるものは、上述の家庭用ビデオ
ゲームコンソール以外であっても実施できる。たとえ
ば、システム50のために書き込まれているグラフィッ
クスアプリケーションなどのソフトウェアを、システム
50をエミュレートするかまたはそれと互換性のある他
の構成を用いたプラットフォーム上で実行することがで
きる。他のプラットフォームが、システム50のハード
ウェアおよびソフトウェア資源の一部または全部をうま
くエミュレート、模倣、および/または提供できるので
あれば、当該他のプラットフォームは、ソフトウェアを
うまく実行することができるであろう。
0のハードウェアおよび/またはソフトウェア構成(プ
ラットフォーム)とは異なるハードウェアおよび/また
はソフトウェア構成(プラットフォーム)を提供しても
よい。エミュレータシステムは、アプリケーションソフ
トウェアを書き込む対象であるシステムのハードウェア
および/またはソフトウェア構成要素の一部またはすべ
てをエミュレートするハードウェアおよび/またはソフ
トウェア構成要素を含んでいてもよい。たとえば、エミ
ュレータシステムは、パーソナルコンピュータなどの汎
用デジタルコンピュータを備えることができ、これによ
って、システム50のハードウェアおよび/またはファ
ームウェアを模倣するソフトウェアエミュレータプログ
ラムが実行される。
えば、IBMまたはマッキントッシュ製パーソナルコン
ピュータおよびその互換機)、現在、DirectX3
Dやその他の標準グラフィックスコマンドAPIに対応
したグラフィックスパイプラインを提供する3Dグラフ
ィックスカードが搭載されているものもある。これらに
は、また、標準的なサウンドコマンドに基づいて高品質
の立体音響を提供する立体音響サウンドカードも搭載さ
れている場合もある。エミュレータソフトウェアを実行
させるこのようなマルチメディアハードウェアを搭載し
たコンピュータは、システム50のグラフィックス性能
およびサウンド性能を近似するに充分な性能を有してい
る場合がある。エミュレータソフトウェアは、パーソナ
ルコンピュータプラットフォーム上のハードウェア資源
を制御して、ゲームプログラマがゲームソフトウェアを
書き込む対象である家庭用ビデオゲームゲームコンソー
ルプラットフォームの処理性能、3Dグラフィックス性
能、サウンド性能、周辺性能などを模倣する。
を示しており、この処理は、ホストプラットフォーム1
201と、エミュレータ構成要素1303と、記憶媒体
62上に与えられているバイナリ画像を実行可能なゲー
ムソフトウェアとを用いる。ホスト1201は、汎用ま
たは専用デジタルコンピューティング装置であってもよ
く、たとえばパーソナルコンピュータやビデオゲームコ
ンソールなど、充分な計算能力を備えたプラットフォー
ムが挙げられる。エミュレータ1303は、ホストプラ
ットフォーム1201上で実行されるソフトウェアおよ
び/またはハードウェアであってもよく、コマンドやデ
ータなどの記憶媒体62からの情報をリアルタイムで変
換して、ホスト1201が処理可能な形式にすることが
できる。たとえば、エミュレータ1303は、システム
50が実行しようとする「ソース」バイナリ画像プログ
ラム命令を記憶媒体62から取り出して、実行可能な形
式またはホスト1201によって処理可能な形式に当該
プログラム命令を変換する。
の特定のプロセッサを用いたプラットフォーム上で実行
するためにソフトウェアが書き込まれており、ホスト1
201は、異なる(たとえば、インテルの)プロセッサ
を用いたパーソナルコンピュータである場合、エミュレ
ータ1303は、バイナリ画像プログラム命令の1つま
たはシーケンスを記憶媒体1305から取り出して、こ
れらのプログラム命令を、インテルのバイナリ画像プロ
グラム命令に相当するものに変換する。また、エミュレ
ータ1303は、グラフィックス音声プロセッサ114
によって処理されるグラフィックスコマンドや音声コマ
ンドを取り出しおよび/または生成し、ハードウェアお
よび/またはソフトウェアグラフィックスおよびホスト
1201で利用可能な音声処理資源によって処理可能な
形式に、これらコマンドを変換する。一例として、エミ
ュレータ1303は、これらのコマンドを、ホスト12
01の特定のグラフィックスおよび/またはサウンドハ
ードウェアによって処理可能なコマンドに変換する(た
とえば、DirectX、OpenGLおよび/または
サウンドAPIを用いる)。
または全部を提供するために用いられるエミュレータ1
303には、エミュレータを用いて実行される様々なオ
プションや画面モードの選択を簡略化または自動化する
グラフィックユーザインターフェース(GUI)が与え
られてもよい。一例として、そのようなエミュレータ1
303は、ソフトウェアが本来対象としていたホストプ
ラットフォームに比較して、拡張された機能をさらに含
んでいてもよい。
いられるのに適したエミュレーションホストシステム1
201を示す。システム1201は、処理部1203
と、システムメモリ1205とを含む。システムバス1
207は、システムメモリ1205から処理部1203
までを含む様々なシステム構成要素を結合する。システ
ム1207は、メモリバスまたはメモリコントローラ、
周辺機器バス、ローカルバスなど、様々なバスアーキテ
クチャのいずれかを用いたものを含む、数種のバス構成
のいずれであってもよい。システムメモリ1207は、
読み出し専用メモリ(ROM)1252と、ランダムア
クセスメモリ(RAM)1254とを含む。ベーシック
入出力システム(BIOS)1256は、パーソナルコ
ンピュータシステム1201内の要素間において情報を
転送するのを助ける基本ルーチンを含んでおり、ROM
1252に記憶される。システム1201は、様々なド
ライブや、関連したコンピュータが読み取り可能な媒体
をさらに含む。ハードディスクドライブ1209は、
(典型的には固定された)磁気ハードディスク1211
からの読み出しやそれに対する書き込みを行う。付加的
な(選択可能な)磁気ディスクドライブ1213は、着
脱可能な「フロッピー(登録商標)」などの磁気ディス
ク1215からの読み出しやそれに対する書き込みを行
う。随意のディスクドライブ1217は、CDROMな
どの随意の媒体のような着脱可能な光ディスク1219
からの読み出しや、構成によってはそれに対する書き込
みも行う。ハードディスクドライブ1209および光デ
ィスクドライブ1217は、それぞれ、ハードディスク
ドライブインターフェース1221および光ドライブイ
ンターフェース1225によって、システムバス120
7に接続している。ドライブやそれに関連するコンピュ
ータが読み出し可能な媒体によって、コンピュータが読
み出し可能な命令、データ構造、プログラムモジュー
ル、ゲームプログラムなどのパーソナルコンピュータシ
ステム1201のためのデータが不揮発的に記憶され
る。他の構成においては、コンピュータが読み出し可能
な他の種類の媒体が用いられていてもよく、コンピュー
タによってアクセス可能なデータを記憶できる媒体(た
とえば、磁気カセット、フラッシュメモリカード、デジ
タルビデオディスク、ベルヌーイカートリッジ、ランダ
ムアクセスメモリ(RAM)、読み出し専用メモリ(R
OM)など)であってもよい。
ラムモジュールは、ハードディスク1211、着脱可能
な磁気ディスク1215、光学ディスク1219、およ
び/またはシステムメモリ1205のROM1252お
よび/またはRAM1254に記憶されてもよい。その
ようなプログラムモジュールは、グラフィックスやサウ
ンドAPIを提供するオペレーティングシステム、1つ
以上のアプリケーションプログラム、他のプログラムモ
ジュール、プログラムデータ、ゲームデータを含んでも
よい。ユーザは、コマンドや情報を、キーボード122
7、ポインティングデバイス1229、マイク、ジョイ
スティック、ゲームコントローラ、衛星アンテナ、スキ
ャナなどの入力装置を通じて、パーソナルコンピュータ
システム1201に対して入力する。このような入力装
置は、システムバス1207に結合されたシリアルポー
トインターフェース1231を介して処理部1203に
接続されることが可能であるが、パラレルポートや、ゲ
ームポートファイアワイヤーバス、またはユニバーサル
シリアルバス(USB)などの他のインターフェースに
よって接続されてもよい。モニタ1233などの表示装
置も、ビデオアダプタ1235などのインターフェース
を介して、システムバス1207に接続される。
トのようなネットワーク1152上での通信を確立する
ための、モデム1154などのネットワークインターフ
ェース手段を含んでもよい。モデム1154は、内蔵で
あっても外付けであってもよく、シリアルポートインタ
ーフェース1231を介してシステムバス123に接続
される。また、ローカルエリアネットワーク1158を
介して(または、ワイドエリアネットワーク1152、
ダイアルアップなどの他の通信路、または他の通信手段
を介してもよい)、システム1201が遠隔コンピュー
ティング装置1150(たとえば、他のシステム120
1)と通信できるように、ネットワークインターフェー
ス1156が与えられてもよい。システム1201は、
典型的には、プリンタなどの標準周辺機器のような、他
の周辺出力装置を含む。
は、Microsoft製DirectX7.0などの
バージョンのような標準3Dグラフィックスアプリケー
ションプログラマインターフェースに基づいて出される
3Dグラフィックスコマンドに応答して、高速3Dグラ
フィックスレンダリングを提供するグラフィックスパイ
プラインチップセットを含んでいてもよい。立体音響ス
ピーカセット1237も、システムバス1207に対し
て、従来の「サウンドカード」のような音声生成インタ
ーフェースを介して接続されている。そのようなインタ
ーフェースは、バス1207から与えられたサウンドコ
マンドに基づいて高品質な立体音響を生成するための支
援をハードウェアや組み込みソフトウェアに対して行
う。このようなハードウェアの機能によって、システム
1201は、記憶媒体62に記憶されたソフトウェアを
実行するのに充分なグラフィックスおよび音響の速度性
能を提供することができる。
のとして本明細書に引用されている。
適な実施例と思われるものに関連して説明してきたが、
本発明は、開示された実施例に限定されるものではな
く、添付の請求項の範囲に含まれる様々な変形例や相当
する仕組みを含むことを意図していると解釈されるべき
である。
一例の概略図である。
例のブロック図である。
例のブロック図である。
のブロック図である。
フロー図の例である。
示す。
処理の例を示す。
生成するための方法の例を示す。
エラーを除去するランプルックアップテーブルの例の他
の実施例である。
エラーを除去するランプルックアップテーブルの例の他
の実施例である。
す。
す。
を示す。
例を示す。
例を示す。
Claims (11)
- 【請求項1】 シャドウマッピング方法であって、 ライトと面との間の距離を表すテクスチャ座標を生成
し、 前記テクスチャ座標に応じてランプテクスチャをマッピ
ングし、精度デプスを得、 シャドウマッピング比較の際に前記精度デプスを用い
る、方法。 - 【請求項2】 前記ランプテクスチャは、重複入力を含
む2次元テクスチャを含む、請求項1に記載の方法。 - 【請求項3】 前記ランプテクスチャは、未使用入力を
含む2次元テクスチャを含む、請求項1に記載の方法。 - 【請求項4】 前記ランプテクスチャは、重複入力を含
む、請求項1に記載の方法。 - 【請求項5】 前記生成ステップは、 シーンのデプス範囲を考慮して、頂点位置を光空間に変
換することを含む、請求項1に記載の方法。 - 【請求項6】 シャドウマップを組み込みフレームバッ
ファに入れてレンダリングし、前記シャドウマップをシ
ャドウマップテクスチャにコピーアウトして前記シャド
ウマッピング比較に用いることをさらに含む、請求項1
に記載の方法。 - 【請求項7】 フロントフェイス・カリングされたレン
ダリングを行って、前記シャドウマッピング比較に用い
るシャドウマップを生成することをさらに含む、請求項
1に記載の方法。 - 【請求項8】 グラフィックスパイプラインであって、 面からライトまでの距離を共に符号化するテクスチャ座
標s、tの対を生成する、テクスチャ座標生成部と、 前記テクスチャ座標に応じてランプテクスチャをマッピ
ングして、デプス値を得る、テクスチャマッピング部
と、 前記デプス値をシャドウマップと比較する、比較部とを
含む、グラフィックスパイプライン。 - 【請求項9】 組み込みフレームバッファを含むグラフ
ィックスパイプラインにおけるシャドウマッピング方法
であって、 シーンを前記組み込みフレームバッファに入れてレンダ
リングし、 組み込みフレームバッファの内容をシャドウマップテク
スチャにコピーして、シャドウマッピングデプス比較に
用いることを含む、方法。 - 【請求項10】 前記レンダリングステップは、デプス
値を組み込みzバッファに入れてレンダリングすること
を含む、請求項9に記載の方法。 - 【請求項11】 前記レンダリングステップは、オブジ
ェクトID値を組み込みカラーフレームバッファに入れ
てレンダリングすることを含む、請求項9に記載の方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22700600P | 2000-08-23 | 2000-08-23 | |
US60/227006 | 2000-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002074390A true JP2002074390A (ja) | 2002-03-15 |
JP4790150B2 JP4790150B2 (ja) | 2011-10-12 |
Family
ID=22851366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001163358A Expired - Lifetime JP4790150B2 (ja) | 2000-08-23 | 2001-05-30 | 低価格のグラフィックスシステムにおけるシャドウマッピング |
Country Status (2)
Country | Link |
---|---|
US (1) | US6664962B1 (ja) |
JP (1) | JP4790150B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008033848A (ja) * | 2006-08-01 | 2008-02-14 | Digital Media Professional:Kk | コンピュータ・グラフィックス回路及びこの回路を用いて、二次元表示システムに表示される三次元オブジェクトに適用される二次元擬似ランダム・テクスチャ・パターンを、一次元テクスチャ画像を用いて生成する三次元コンピュータ・グラフィックス装置 |
JP2010191916A (ja) * | 2009-02-20 | 2010-09-02 | Nintendo Co Ltd | 描画処理装置、および、描画処理プログラム |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
JP3527196B2 (ja) * | 2000-11-16 | 2004-05-17 | 株式会社ソニー・コンピュータエンタテインメント | テクスチャ描画方法、エンタテインメント装置および記録媒体 |
FI109633B (fi) * | 2001-01-24 | 2002-09-13 | Gamecluster Ltd Oy | Menetelmä videokuvan pakkauksen nopeuttamiseksi ja/tai sen laadun parantamiseksi |
JP3580779B2 (ja) * | 2001-02-21 | 2004-10-27 | 株式会社コナミコンピュータエンタテインメントジャパン | 画像の表現方法及びそれに用いるプログラム |
US20020138264A1 (en) * | 2001-03-21 | 2002-09-26 | International Business Machines Corporation | Apparatus to convey depth information in graphical images and method therefor |
US6961458B2 (en) * | 2001-04-27 | 2005-11-01 | International Business Machines Corporation | Method and apparatus for presenting 3-dimensional objects to visually impaired users |
US6753875B2 (en) * | 2001-08-03 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | System and method for rendering a texture map utilizing an illumination modulation value |
JP4082937B2 (ja) * | 2002-06-07 | 2008-04-30 | 任天堂株式会社 | ゲームシステム及びゲームプログラム |
US7324116B2 (en) * | 2002-06-20 | 2008-01-29 | Microsoft Corporation | Systems and methods for providing controllable texture sampling |
GB2392072B (en) * | 2002-08-14 | 2005-10-19 | Autodesk Canada Inc | Generating Image Data |
US6847728B2 (en) * | 2002-12-09 | 2005-01-25 | Sarnoff Corporation | Dynamic depth recovery from multiple synchronized video streams |
US7106326B2 (en) * | 2003-03-03 | 2006-09-12 | Sun Microsystems, Inc. | System and method for computing filtered shadow estimates using reduced bandwidth |
US7681112B1 (en) | 2003-05-30 | 2010-03-16 | Adobe Systems Incorporated | Embedded reuse meta information |
US7262771B2 (en) * | 2003-10-10 | 2007-08-28 | Microsoft Corporation | Systems and methods for all-frequency relighting using spherical harmonics and point light distributions |
US7450120B1 (en) * | 2003-12-19 | 2008-11-11 | Nvidia Corporation | Apparatus, system, and method for Z-culling |
US7636489B2 (en) * | 2004-04-16 | 2009-12-22 | Apple Inc. | Blur computation algorithm |
US7248265B2 (en) * | 2004-04-16 | 2007-07-24 | Apple Inc. | System and method for processing graphics operations with graphics processing unit |
US7847800B2 (en) * | 2004-04-16 | 2010-12-07 | Apple Inc. | System for emulating graphics operations |
US8704837B2 (en) | 2004-04-16 | 2014-04-22 | Apple Inc. | High-level program interface for graphics operations |
US7231632B2 (en) * | 2004-04-16 | 2007-06-12 | Apple Computer, Inc. | System for reducing the number of programs necessary to render an image |
US8134561B2 (en) | 2004-04-16 | 2012-03-13 | Apple Inc. | System for optimizing graphics operations |
US7397964B2 (en) * | 2004-06-24 | 2008-07-08 | Apple Inc. | Gaussian blur approximation suitable for GPU |
US8068103B2 (en) | 2004-06-24 | 2011-11-29 | Apple Inc. | User-interface design |
US8130237B2 (en) * | 2004-06-24 | 2012-03-06 | Apple Inc. | Resolution independent user interface design |
US20050285866A1 (en) * | 2004-06-25 | 2005-12-29 | Apple Computer, Inc. | Display-wide visual effects for a windowing system using a programmable graphics processing unit |
US7546543B2 (en) | 2004-06-25 | 2009-06-09 | Apple Inc. | Widget authoring and editing environment |
US7490295B2 (en) | 2004-06-25 | 2009-02-10 | Apple Inc. | Layer for accessing user interface elements |
US7652678B2 (en) * | 2004-06-25 | 2010-01-26 | Apple Inc. | Partial display updates in a windowing system using a programmable graphics processing unit |
US8302020B2 (en) | 2004-06-25 | 2012-10-30 | Apple Inc. | Widget authoring and editing environment |
US8453065B2 (en) | 2004-06-25 | 2013-05-28 | Apple Inc. | Preview and installation of user interface elements in a display environment |
US8566732B2 (en) | 2004-06-25 | 2013-10-22 | Apple Inc. | Synchronization of widgets and dashboards |
US8239749B2 (en) | 2004-06-25 | 2012-08-07 | Apple Inc. | Procedurally expressing graphic objects for web pages |
US7761800B2 (en) | 2004-06-25 | 2010-07-20 | Apple Inc. | Unified interest layer for user interface |
US7623132B1 (en) * | 2004-12-20 | 2009-11-24 | Nvidia Corporation | Programmable shader having register forwarding for reduced register-file bandwidth consumption |
US7227551B2 (en) * | 2004-12-23 | 2007-06-05 | Apple Inc. | Manipulating text and graphic appearance |
US8140975B2 (en) | 2005-01-07 | 2012-03-20 | Apple Inc. | Slide show navigation |
US8543931B2 (en) | 2005-06-07 | 2013-09-24 | Apple Inc. | Preview including theme based installation of user interface elements in a display environment |
US20070060345A1 (en) * | 2005-06-28 | 2007-03-15 | Samsung Electronics Co., Ltd. | Video gaming system and method |
US20070060346A1 (en) * | 2005-06-28 | 2007-03-15 | Samsung Electronics Co., Ltd. | Tool for video gaming system and method |
US7400329B2 (en) * | 2005-06-28 | 2008-07-15 | Samsung Electronics Co., Ltd. | Graphics images system and method |
US20070037625A1 (en) * | 2005-06-28 | 2007-02-15 | Samsung Electronics Co., Ltd. | Multiplayer video gaming system and method |
US7752556B2 (en) | 2005-10-27 | 2010-07-06 | Apple Inc. | Workflow widgets |
US7954064B2 (en) | 2005-10-27 | 2011-05-31 | Apple Inc. | Multiple dashboards |
US9104294B2 (en) | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US8543824B2 (en) | 2005-10-27 | 2013-09-24 | Apple Inc. | Safe distribution and use of content |
US7743336B2 (en) | 2005-10-27 | 2010-06-22 | Apple Inc. | Widget security |
US9563980B2 (en) * | 2005-11-18 | 2017-02-07 | Autodesk, Inc. | Grip manipulatable shadows in 3D models |
US7707514B2 (en) | 2005-11-18 | 2010-04-27 | Apple Inc. | Management of user interface elements in a display environment |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
US8237739B2 (en) * | 2006-09-12 | 2012-08-07 | Qualcomm Incorporated | Method and device for performing user-defined clipping in object space |
GB2442266B (en) * | 2006-09-29 | 2008-10-22 | Imagination Tech Ltd | Improvements in memory management for systems for generating 3-dimensional computer images |
US7965291B1 (en) * | 2006-11-03 | 2011-06-21 | Nvidia Corporation | Isosurface extraction utilizing a graphics processing unit |
CN101647044B (zh) * | 2007-04-11 | 2011-10-19 | 松下电器产业株式会社 | 图像生成装置以及图像生成方法 |
US7924290B2 (en) * | 2007-05-30 | 2011-04-12 | Nvidia Corporation | Method and system for processing texture samples with programmable offset positions |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
US8667415B2 (en) | 2007-08-06 | 2014-03-04 | Apple Inc. | Web widgets |
US8156467B2 (en) | 2007-08-27 | 2012-04-10 | Adobe Systems Incorporated | Reusing components in a running application |
US8176466B2 (en) | 2007-10-01 | 2012-05-08 | Adobe Systems Incorporated | System and method for generating an application fragment |
US9619304B2 (en) | 2008-02-05 | 2017-04-11 | Adobe Systems Incorporated | Automatic connections between application components |
GB2458488C (en) | 2008-03-19 | 2018-09-12 | Imagination Tech Ltd | Untransformed display lists in a tile based rendering system |
US8656293B1 (en) | 2008-07-29 | 2014-02-18 | Adobe Systems Incorporated | Configuring mobile devices |
US9053562B1 (en) | 2010-06-24 | 2015-06-09 | Gregory S. Rabin | Two dimensional to three dimensional moving image converter |
US8643678B1 (en) * | 2010-12-22 | 2014-02-04 | Google Inc. | Shadow generation |
CN102411792A (zh) * | 2011-07-21 | 2012-04-11 | 西安和利德软件有限公司 | 虚拟仿真场景多水平动态加载卸载方法 |
US20130141433A1 (en) * | 2011-12-02 | 2013-06-06 | Per Astrand | Methods, Systems and Computer Program Products for Creating Three Dimensional Meshes from Two Dimensional Images |
US8872827B2 (en) * | 2012-12-20 | 2014-10-28 | Nvidia | Shadow softening graphics processing unit and method |
US9992021B1 (en) | 2013-03-14 | 2018-06-05 | GoTenna, Inc. | System and method for private and point-to-point communication between computing devices |
US9646413B2 (en) | 2014-08-27 | 2017-05-09 | Robert Bosch Gmbh | System and method for remote shadow rendering in a 3D virtual environment |
US9530244B2 (en) * | 2014-11-11 | 2016-12-27 | Intergraph Corporation | Method and apparatus for shadow estimation and spreading |
US10403033B2 (en) * | 2016-07-12 | 2019-09-03 | Microsoft Technology Licensing, Llc | Preserving scene lighting effects across viewing perspectives |
JP6899915B2 (ja) | 2017-03-03 | 2021-07-07 | インターグラフ コーポレイションIntergraph Corporation | 標高データグリッドのためのシャドウキャスティング |
US20230332922A1 (en) * | 2022-04-15 | 2023-10-19 | Onxmaps, Inc. | Methods and systems for providing a real-time viewshed visualization |
CN116012520B (zh) * | 2023-03-23 | 2023-06-02 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0935085A (ja) * | 1995-07-17 | 1997-02-07 | Mitsubishi Precision Co Ltd | 実時間映像発生方法及びその装置 |
WO1999030280A1 (en) * | 1997-12-05 | 1999-06-17 | Dynamic Digital Depth Research Pty. Ltd. | Improved image conversion and encoding techniques |
JP2000149062A (ja) * | 1998-11-10 | 2000-05-30 | Hitachi Eng Co Ltd | 三次元画像生成方法とその装置 |
Family Cites Families (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425559A (en) | 1980-06-02 | 1984-01-10 | Atari, Inc. | Method and apparatus for generating line segments and polygonal areas on a raster-type display |
US4388620A (en) | 1981-01-05 | 1983-06-14 | Atari, Inc. | Method and apparatus for generating elliptical images on a raster-type video display |
US4570233A (en) | 1982-07-01 | 1986-02-11 | The Singer Company | Modular digital image generator |
US4725831A (en) | 1984-04-27 | 1988-02-16 | Xtar Corporation | High-speed video graphics system and method for generating solid polygons on a raster display |
US4658247A (en) | 1984-07-30 | 1987-04-14 | Cornell Research Foundation, Inc. | Pipelined, line buffered real-time color graphics display system |
US4625289A (en) | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
JPS62192878A (ja) | 1986-02-20 | 1987-08-24 | Nippon Gakki Seizo Kk | 多角形の塗りつぶし方法 |
US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
JPS62231380A (ja) | 1986-03-31 | 1987-10-09 | Namuko:Kk | 画像合成装置 |
US5504917A (en) | 1986-04-14 | 1996-04-02 | National Instruments Corporation | Method and apparatus for providing picture generation and control features in a graphical data flow environment |
US5170468A (en) | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
US4866637A (en) | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
US4945500A (en) | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US4901064A (en) | 1987-11-04 | 1990-02-13 | Schlumberger Technologies, Inc. | Normal vector shading for 3-D graphics display system |
CA1309198C (en) | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
US5136664A (en) | 1988-02-23 | 1992-08-04 | Bersack Bret B | Pixel rendering |
JPH0727581B2 (ja) | 1988-09-09 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 図形処理装置 |
US5255353A (en) | 1989-02-28 | 1993-10-19 | Ricoh Company, Ltd. | Three-dimensional shadow processor for an image forming apparatus |
EP0466936B1 (en) | 1990-02-05 | 1997-04-16 | Ricoh Company, Ltd | Animation display unit and external memory used therefor |
US6020894A (en) | 1990-08-16 | 2000-02-01 | Canon Kabushiki Kaisha | Full-color desktop publishing system |
JP2725915B2 (ja) | 1990-11-15 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 三角形描画装置及び方法 |
US5774133A (en) | 1991-01-09 | 1998-06-30 | 3Dlabs Ltd. | Computer system with improved pixel processing capabilities |
JPH07122908B2 (ja) | 1991-03-12 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 |
US5421028A (en) | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
US5377313A (en) | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
CA2070934C (en) | 1992-06-10 | 1998-05-05 | Benny Chi Wah Lau | Graphics display system |
WO1994010641A1 (en) | 1992-11-02 | 1994-05-11 | The 3Do Company | Audio/video computer architecture |
US5392393A (en) | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
JPH0778267A (ja) * | 1993-07-09 | 1995-03-20 | Silicon Graphics Inc | 陰影を表示する方法及びコンピュータ制御表示システム |
JP3240821B2 (ja) | 1994-04-22 | 2001-12-25 | 株式会社日立製作所 | 高機能画像メモリlsi及びそれを用いた表示装置 |
US5768626A (en) | 1994-06-24 | 1998-06-16 | Intel Corporation | Method and apparatus for servicing a plurality of FIFO's in a capture gate array |
US5798719A (en) | 1994-07-29 | 1998-08-25 | Discovision Associates | Parallel Huffman decoder |
US5764243A (en) | 1995-03-24 | 1998-06-09 | 3Dlabs Inc. Ltd. | Rendering architecture with selectable processing of multi-pixel spans |
US6025853A (en) | 1995-03-24 | 2000-02-15 | 3Dlabs Inc. Ltd. | Integrated graphics subsystem with message-passing architecture |
US5798770A (en) | 1995-03-24 | 1998-08-25 | 3Dlabs Inc. Ltd. | Graphics rendering system with reconfigurable pipeline sequence |
US5777629A (en) | 1995-03-24 | 1998-07-07 | 3Dlabs Inc. Ltd. | Graphics subsystem with smart direct-memory-access operation |
US5805868A (en) | 1995-03-24 | 1998-09-08 | 3Dlabs Inc. Ltd. | Graphics subsystem with fast clear capability |
US5815166A (en) | 1995-03-24 | 1998-09-29 | 3Dlabs Inc., Ltd. | Graphics subsystem with slaveable rasterizer |
US5701444A (en) | 1995-03-24 | 1997-12-23 | 3Dlabs Inc. Ltd. | Three-dimensional graphics subsystem with enhanced support for graphical user interface |
US5727192A (en) | 1995-03-24 | 1998-03-10 | 3Dlabs Inc. Ltd. | Serial rendering system with auto-synchronization on frame blanking |
US5594854A (en) | 1995-03-24 | 1997-01-14 | 3Dlabs Inc. Ltd. | Graphics subsystem with coarse subpixel correction |
US5687357A (en) | 1995-04-14 | 1997-11-11 | Nvidia Corporation | Register array for utilizing burst mode transfer on local bus |
US5721947A (en) | 1995-05-15 | 1998-02-24 | Nvidia Corporation | Apparatus adapted to be joined between the system I/O bus and I/O devices which translates addresses furnished directly by an application program |
US5758182A (en) | 1995-05-15 | 1998-05-26 | Nvidia Corporation | DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus |
US5870097A (en) * | 1995-08-04 | 1999-02-09 | Microsoft Corporation | Method and system for improving shadowing in a graphics rendering system |
US5739819A (en) | 1996-02-05 | 1998-04-14 | Scitex Corporation Ltd. | Method and apparatus for generating an artificial shadow in a two dimensional color image |
US5949440A (en) | 1996-04-30 | 1999-09-07 | Hewlett Packard Compnay | Method and apparatus for processing graphics primitives in multiple modes using reconfigurable hardware |
US5966134A (en) | 1996-06-28 | 1999-10-12 | Softimage | Simulating cel animation and shading |
US5821949A (en) | 1996-07-01 | 1998-10-13 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator with direct data channels for improved performance |
US5874969A (en) | 1996-07-01 | 1999-02-23 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator which implements multiple logical buses using common data lines for improved bus communication |
US6028611A (en) | 1996-08-29 | 2000-02-22 | Apple Computer, Inc. | Modular digital image processing via an image processing chain |
US6018350A (en) | 1996-10-29 | 2000-01-25 | Real 3D, Inc. | Illumination and shadow simulation in a computer graphics/imaging system |
US5940086A (en) | 1997-01-10 | 1999-08-17 | Hewlett Packard Company | System and method for dynamically allocating data among geometry accelerators in a computer graphics system |
US5870098A (en) | 1997-02-26 | 1999-02-09 | Evans & Sutherland Computer Corporation | Method for rendering shadows on a graphical display |
US5949424A (en) | 1997-02-28 | 1999-09-07 | Silicon Graphics, Inc. | Method, system, and computer program product for bump mapping in tangent space |
US6057852A (en) | 1997-04-30 | 2000-05-02 | Hewlett-Packard Company | Graphics accelerator with constant color identifier |
US5969726A (en) | 1997-05-30 | 1999-10-19 | Hewlett-Packard Co. | Caching and coherency control of multiple geometry accelerators in a computer graphics system |
US5920326A (en) | 1997-05-30 | 1999-07-06 | Hewlett Packard Company | Caching and coherency control of multiple geometry accelerators in a computer graphics system |
JPH1153580A (ja) | 1997-07-31 | 1999-02-26 | Sony Corp | 3次元画像処理装置及びビデオ合成方法 |
US6037949A (en) | 1997-08-04 | 2000-03-14 | Pixar Animation Studios | Texture mapping and other uses of scalar fields on subdivision surfaces in computer graphics and animation |
JPH1176614A (ja) | 1997-09-11 | 1999-03-23 | Sega Enterp Ltd | コンピュータゲーム装置 |
US6002409A (en) | 1997-10-29 | 1999-12-14 | Cirrus Logic, Inc. | Arbitration for shared graphics processing resources |
JPH11161819A (ja) | 1997-11-27 | 1999-06-18 | Sega Enterp Ltd | 画像処理装置、画像処理方法、及び画像処理プログラムを記録した記録媒体 |
JPH11203500A (ja) | 1998-01-09 | 1999-07-30 | Sega Enterp Ltd | 画像処理装置及びそれに利用されるバンプマップデータを格納した記録媒体 |
JPH11226257A (ja) | 1998-02-16 | 1999-08-24 | Sony Computer Entertainment Inc | 携帯用電子機器及びエンタテインメントシステム並びに記録媒体 |
JP4061697B2 (ja) | 1998-03-12 | 2008-03-19 | 株式会社セガ | 画像表示方法及びそれを実行する画像表示装置 |
JPH11259678A (ja) | 1998-03-12 | 1999-09-24 | Sega Enterp Ltd | 画像表示装置及びそれによる画像表示方法 |
US6023738A (en) | 1998-03-30 | 2000-02-08 | Nvidia Corporation | Method and apparatus for accelerating the transfer of graphical images |
US6226012B1 (en) | 1998-04-02 | 2001-05-01 | Nvidia Corporation | Method and apparatus for accelerating the rendering of graphical images |
US6092124A (en) | 1998-04-17 | 2000-07-18 | Nvidia Corporation | Method and apparatus for accelerating the rendering of images |
US6492991B1 (en) | 1998-08-28 | 2002-12-10 | Ati International Srl | Method and apparatus for controlling compressed Z information in a video graphics system |
GB2341068B (en) | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Caching in digital video processing apparatus |
JP2000066985A (ja) | 1998-08-20 | 2000-03-03 | Sony Computer Entertainment Inc | エンタテインメントシステム及びデータ供給方法、データ処理装置及び方法、並びにデータ記憶制御装置及び方法 |
JP4399910B2 (ja) | 1998-09-10 | 2010-01-20 | 株式会社セガ | ブレンディング処理を含む画像処理装置及びその方法 |
JP2000132704A (ja) | 1998-10-26 | 2000-05-12 | Sony Corp | 画像情報処理装置及び方法 |
JP3668019B2 (ja) | 1998-10-27 | 2005-07-06 | 株式会社ソニー・コンピュータエンタテインメント | 記録媒体、画像処理装置および画像処理方法 |
JP2000156875A (ja) | 1998-11-19 | 2000-06-06 | Sony Corp | 映像制作装置および映像表示システムおよびグラフィックス制作方法 |
JP4240343B2 (ja) | 1998-12-19 | 2009-03-18 | 株式会社セガ | 画像生成装置および画像生成方法 |
JP4395902B2 (ja) | 1999-01-19 | 2010-01-13 | 株式会社セガ | 画像処理方法及び、これを利用した画像処理装置 |
JP2000215325A (ja) | 1999-01-21 | 2000-08-04 | Sega Enterp Ltd | 画像処理方法および画像処理装置並びにプログラムを記録した記録媒体 |
US6181352B1 (en) | 1999-03-22 | 2001-01-30 | Nvidia Corporation | Graphics pipeline selectively providing multiple pixels or multiple textures |
US6173367B1 (en) | 1999-05-19 | 2001-01-09 | Ati Technologies, Inc. | Method and apparatus for accessing graphics cache memory |
US6807311B1 (en) | 1999-07-08 | 2004-10-19 | Ati International Srl | Method and apparatus for compressing and storing image data |
US6476811B1 (en) | 1999-09-01 | 2002-11-05 | Ati International, Srl | Method and apparatus for compressing parameter values for pixels in a display frame |
US6198488B1 (en) | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
-
2000
- 2000-11-28 US US09/722,421 patent/US6664962B1/en not_active Expired - Lifetime
-
2001
- 2001-05-30 JP JP2001163358A patent/JP4790150B2/ja not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0935085A (ja) * | 1995-07-17 | 1997-02-07 | Mitsubishi Precision Co Ltd | 実時間映像発生方法及びその装置 |
WO1999030280A1 (en) * | 1997-12-05 | 1999-06-17 | Dynamic Digital Depth Research Pty. Ltd. | Improved image conversion and encoding techniques |
JP2000149062A (ja) * | 1998-11-10 | 2000-05-30 | Hitachi Eng Co Ltd | 三次元画像生成方法とその装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008033848A (ja) * | 2006-08-01 | 2008-02-14 | Digital Media Professional:Kk | コンピュータ・グラフィックス回路及びこの回路を用いて、二次元表示システムに表示される三次元オブジェクトに適用される二次元擬似ランダム・テクスチャ・パターンを、一次元テクスチャ画像を用いて生成する三次元コンピュータ・グラフィックス装置 |
JP2010191916A (ja) * | 2009-02-20 | 2010-09-02 | Nintendo Co Ltd | 描画処理装置、および、描画処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4790150B2 (ja) | 2011-10-12 |
US6664962B1 (en) | 2003-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4790150B2 (ja) | 低価格のグラフィックスシステムにおけるシャドウマッピング | |
JP4698893B2 (ja) | 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム | |
JP4731028B2 (ja) | グラフィクスシステム用再循環シェードツリーブレンダ | |
US6664958B1 (en) | Z-texturing | |
US6618048B1 (en) | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components | |
US6707458B1 (en) | Method and apparatus for texture tiling in a graphics system | |
US6639595B1 (en) | Achromatic lighting in a graphics system and method | |
US6825851B1 (en) | Method and apparatus for environment-mapped bump-mapping in a graphics system | |
JP4890638B2 (ja) | グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置 | |
US6700586B1 (en) | Low cost graphics with stitching processing hardware support for skeletal animation | |
US6556197B1 (en) | High performance low cost video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing | |
JP4691273B2 (ja) | グラフィクス処理システムおよびエンボス型バンプマッピングを行う方法 | |
US7061502B1 (en) | Method and apparatus for providing logical combination of N alpha operations within a graphics system | |
JP2002269583A (ja) | 描画モードに基づいて隠面処理の順番を動的に再構成する方法および装置 | |
JP4672072B2 (ja) | 三次元ビデオグラフィックスシステムにおける非写実的な漫画的な輪郭線提供方法およびその装置 | |
JP4975159B2 (ja) | グラフィックシステム、グラフィックス画像を生成する方法およびプログラムにおける無色光のライティング | |
JP4683760B2 (ja) | 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム | |
JP4740490B2 (ja) | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング | |
JP4740476B2 (ja) | グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置 | |
JP4698894B2 (ja) | グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム | |
JP2006318390A (ja) | 画像生成システム、プログラム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080519 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101021 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101216 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110405 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110623 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110701 |
|
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: 20110715 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110720 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140729 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4790150 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |