JP4499292B2 - 3次元コンピュータ生成画像のシェーディング - Google Patents
3次元コンピュータ生成画像のシェーディング Download PDFInfo
- Publication number
- JP4499292B2 JP4499292B2 JP2000581598A JP2000581598A JP4499292B2 JP 4499292 B2 JP4499292 B2 JP 4499292B2 JP 2000581598 A JP2000581598 A JP 2000581598A JP 2000581598 A JP2000581598 A JP 2000581598A JP 4499292 B2 JP4499292 B2 JP 4499292B2
- Authority
- JP
- Japan
- Prior art keywords
- polygon
- rectangular area
- bounding box
- rectangular
- image
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Description
【発明の属する技術分野】
コンピュータで生成された3次元画像のシェーディング及びこれを行うための方法及び装置に関する。
【0002】
出願人が有する英国特許第2281682号では、ある場面の中の見る対象となっている各オブジェクトは、一組の無限大の面として定義される、ポリゴンのための3−Dレンダリングシステムについて述べられている。画像が表示されるスクリーンの各要素領域は、ここを通って視点から3次元的な場面へ投射される光線を有している。そして、投射された光線と各面との交点の位置が決定される。これらの交点から、交差した面がその要素領域において見えるかどうかを決定することが可能となる。そして、この要素領域は、決定結果に従ってシェーディングされて表示される。
【0003】
このシステムは、多数のセルからなるパイプライン型のプロセッサによって実現され、各セルは面との交差の計算を実行することができる。これによって、非常に多くの面の交点を同時に計算することが可能となる。各セルには、交差するかどうかのテストを実行する面を定義する一組の係数がロードされる。
【0004】
出願人による英国特許出願第2298111において説明されている更なる改良では、画像面をさらに複数のサブ領域もしくは複数のタイルに分解している。これは、可変タイルサイト(variable tile site)を用いること、および複雑なオブジェクトの周囲にバウンディングボックス(bounding box)を投影することを提案している。これは、まずタイルの適切な寸法を決定するために、可視のスクリーンの周囲のオブジェクトの分布が決定される。そして、種々のオブジェクトを定義する複数の面が、一つの隣接するリストに格納される。これによって、多くの面から作られているオブジェクトが多くのタイルに入ることができるので、各タイルについて同じ面を格納する必要性を回避できる。そしてこのようなタイルを、前述のレイキャスティング技術を用いて、順番に、そのタイルに含まれる全てのオブジェクトを一度にレンダリングすることができる。これは、特定のタイルにおいて見えないことが分かっているオブジェクトをレンダリングする労力が不要になるため、能率的な方法である。
【0005】
我々は、実際に見える面の部分に関連するデータだけを処理すれば、合計の処理をさらに削減できることを認識した。すなわち、本発明の好適な実施例によれば、見る方向に対して垂直な平面を有する目に見える面の複数の辺を定義するための方法が提供される。
【0006】
本発明の第二の態様によれば、我々は、サイズを変えられるタイルを用いるのではなく、画像平面の全体にわたって一定寸法のタイルを用いることによって、処理を最適化できることを認識した。この場合、タイルの境界はオブジェクトと交差するかもしれないが、辺での切り落とし(edge clipping)は必要ない。すると、特定のオブジェクトに対してバウンディングボックスを定義する一組のタイルを選択することができ、そしてそのオブジェクトをレンダリングするためには、その特定のバウンティングボックスの中のタイルだけを処理すればよくなる。タイルの中に入っている面の表示リストは、バウンディングボックスの中にあるオブジェクトを定義するのに用いられる。
【0007】
この方法におけるさらなる改良は、実際にレンダリングすべきオブジェクトを含まないバウンディングボックスの中のタイルを排除することである。
【0008】
ここから本発明の好適な実施例について、添付図面を参照しながら詳細に説明する。
【0009】
この明細書の導入部で要約して述べたレンダリングシステムが、出願人の有する英国特許第2281682号において説明されている。我々は、三角形の組み合わせとして任意のオブジェクトをモデル化できることを認識した。前記の特許において処理されるのは、無限大の面である。前記の特許では、オブジェクトの辺は、複数の無限大の面の交線と、特定の面が見えるかどうかを決定するための前方のフェーシング面と後方のフェーシング面(後方のフェーシング面が前方のフェーシング面よりも近ければ、特定のピクセルにおいてはいずれも見えない)の相対的な深さとからる。
【0010】
我々は、視点に対して垂直な無限大の面によって三角形の辺を定義することによって、処理を改善できることを認識した。すなわち、三角形の場合は、フェース面に対して一つと、各辺に一つずつの三つ、合計四つの面が必要となる。
【0011】
三角形をレンダリングする前に、各面について方程式を計算する必要がある。これらは、ポリゴンのセットアップユニットにおいて、アプリケーションソフトウェアによって提供される頂点のデータから計算される。図1に示した(x1,y1,z1)及び(x2,y2,z2)に位置する二つの頂点v1及びv2の間の垂直な辺の面についての方程式は、
(y2−y1)x+(x1−x2)y+(x2y1−y2x1)=0
によって定義され、これは、
Ax+By+C=0
という平面を表す方程式の形になっている。
【0012】
特定のxyの値(ピクセル位置)に対してこの方程式の答えが正のときは、xyの位置はエッジ面の前方のフェーシング面上にあり、値が負のときはxy位置はこの面の方向のフェーシング面上にある。したがって、図1の三角形を表す四つの方程式すべてが正の値を有するときは、ピクセルの位置は図2に示すように三角形の内側に存在する。この規則は、三角形に優先して四辺形など、使用する任意の形状に対して当てはまる。
【0013】
本発明の好適な実施例を図3に示す。ここには、三角形を定義する頂点データを受け取り、32個の面プロセッサ4の組のそれぞれに対して三角形のフェーシング面データを供給するポリゴンセットアップユニット2が設けられている。これは同時に、面プロセッサ4によって処理される各三角形について、3組の辺データを3列の辺プロセッサ6の一つずつに供給する。これらにはそれぞれ、32個の特定のピクセル位置のそれぞれについて処理しているエッジ面に対する値が正か負かを決定する深さ評価ユニットが含まれている。これらのそれぞれの出力は正又は負の符号ビットであり、三つの面についてのこれらの符号ビットは、その三角形についての適当な面プロセッサに供給される。前述のようにすべての符号ビットが正ならば、その面プロセッサは処理している三角形の面が見えるものであること、すなわちそれが三角形の辺の外側ではないことを知り、したがって出力として深さ値を与え、これは深さ記憶装置へ行き、その後さらに、これについて、処理されている画像への寄与に用いられるかどうかを決定するたのテストを行うことができる。符号ビットの一つが負のときは、面プロセッサ4は何もする必要がない。
【0014】
辺プロセッサはx方向で、すなわち、画像内のスキャンラインに沿って動作し、そして、32個の面プロセッサ4の配列を用いるシステムにおいて、通常は32×32ピクセルのブロックを処理するタイルベースのシステム内で動作する。したがって、各辺プロセッサへの入力値は、By+Cに等しくなる。辺プロセッサは、三角形の辺上で動作する精密でないストアされていない割り算アルゴリズムを用いる。このアルゴリズムは、実際には
x=C/A
という計算を行う。これが可能な理由は、yの値が特定のxについて値定数であり、したがってBy+Cが特定のスキャンラインに沿って定数だからである。
【0015】
表1は、辺の内側から外側へ(正から負の深さへ)の転換点の位置を計算する場合に含まれる算術演算を示している。
【0016】
【表1】
【0017】
ステージ1Aで実行される演算は、サンプル点をxについて中央に有効に移動させる。これが可能な理由は、セットアップユニットが原点の位置(x,y)=(0,0)をタイルの右上の角へ移動させるからである。演算の列は、次のクロックサイクルで積算されたCの値について加算又は減算を行うべきかどうかを計算するために実行されるテストを示している。これらのテストは、本質的に、各加算/減算が我々をゼロ交差点(zero crossing point)に近づけるバイナリーサーチの形態である。例えば、ゼロの遷移が13であるとしよう。
【0018】
x位置
スタート C=−ve A+ +ve 0
加算16 C=+ve 16
減算8A C=−ve 8
加算4A C=−ve 12
加算2A C=+ve 14
減算A C=0(+ve) 13
減算A 12
【0019】
辺プロセッサによって実行される加算/減算の符号は、遷移点又は辺を計算するのに用いられる。一旦このピクセル位置が決定されると、これをタイルのライン全体のためのマスクを生成するために用いることができる。このマスクは、線の中の各ピクセルについての正/負の深さの値を表す。この演算は、タイル内のピクセルの線のための辺マスクをクロックサイクルごとに生成することができるように、上で述べた深さプロセッサのアレーを用いてパイプライン処理することができる。上で説明したように、辺方程式のy係数は、辺が処理される前に定数Cに蓄積される。これにより32×32個のピクセルからなる完全なタイルの辺マスクを32クロックサイクルにわたって生成することができる。ここでhはタイルの高さである。
【0020】
三角形の三つの辺すべてのマスクは、AND演算が行われてこの三角形の深さマスクが生成される。ピクセル位置における蓄積された深さの符号は、面プロセッサ4に渡される。深さが正のときは、その面は見える。したがって、この方法を用いると、三角形を単一の面と同じ速度で処理することができる。四つ又はそれ以上の辺プロセッサが利用可能な場合には、四辺形やこれよりもっと複雑な形状を処理できることは明らかである。
【0021】
画像のスクリーンが複数のタイルに分割されるときは、現在のハードウェア手段は、各タイルについて処理されるスクリーンの中のすべてのオブジェクトを必要とする。これは、すべてのタイルがすべてのオブジェクトについて処理されなければならないので、非能率的である。
【0022】
従来からのレンダリングシステムでは、タイルを基礎とするタイル上のスクリーンのレンダリングは、オブジェクトがタイルの境界にクリップされる必要があり、したがってタイルの境界との交点を定義するデータが定義されなければならない(図4参照)。
【0023】
特定の領域と交差するオブジェクトを処理することだけが必要である。上で説明したように、オブジェクトがスクリーン空間で定義されている場合は、三角形などのオブジェクトを定義する頂点の比較が、そのオブジェクトに対するバウンディングボックスをもたらす。バウンディングボックスは、オブジェクトを含むスクリーン内の長方形領域を定義する。図4は、タイルで覆われたスクリーンの領域を、内側の多数の三角形で表したオブジェクトとともに示している。特定のオブジェクトのためのバウンディングボックスを、バウンディングボックス内のタイルのリストが得られるように、タイルの境界に並べることができる。このタイルのリストは、スクリーン内のすべてのタイルの部分集合であり、オブジェクトと交差するタイルを近似したものとなる。オブジェクトを有するバウンディングボックスがスクリーン領域全体と交差する場合には、オブジェクトのパラメータ(座標、シェーディングデータなど)は、システム内のメモリの領域に書き込まれ、オブジェクトデータの開始を指し示すポインタが生成される。
【0024】
このレンダリングシステムは、タイルを基礎としてタイルについて動作し、次のものに進む前に各タイルについてオブジェクトを処理する。したがってデータ構造は、各タイルについて処理されなければならないオブジェクトを特定するのに用いられる。これは図5に示されている。ここでは、スクリーン内のタイルのリストは、領域又はタイルのアレー30において生成される。各タイルは、x及びyの限界によって定義される。各タイルについて、そのタイルについて処理されなければならないオブジェクトへのポインタのリストが、オブジェクトリスト32として生成される。領域アレーによって指し示されている各タイルについては、別のオブジェクトリストが存在する。バウンディングボックスの考え方は、オブジェクトポインタが加算されなければならないタイルのリスト(オブジェクトリストを伴う)を生成するのに用いられ、このオブジェクトポインタはデータがメモリに書き込まれたときに生成される。しかしながら、ハードウェアは、書き込まれるオブジェクトポインタに対するアドレスが得られるように、各オブジェクトリストの末尾を特定しなければならない。これを行う最も単純な方法は、リスト上の次の自由な位置を指し示す末尾ポインタを格納することである。これはオブジェクトリストのヘッダーとなりうる。
【0025】
これは、より小さい寸法のキャッシュを用いるとさらに改善される。キャッシュは末尾ポインタの部分集合を格納する。オブジェクトは一般に複数のタイルを横切るので、キャッシュ上の書き落としによって、複数の末尾ポインタが読み込まれ、オブジェクトが横切るタイルを予測することになる。これはキャッシュの効率を上げる。これはまた、オブジェクトデータをインターリーブし、キャッシュの内容を変更することによって、複数の画像を同時にタイルで覆うことを可能とする。この切り換えには、キャッシュにリンクされたメモリ領域及びオブジェクトの格納に用いられるメモリ領域を調整して、末尾ポインタキャッシュの内容を格納することが含まれる。これでコンテキストの効果は変わる。つまり、キャッシュが無効とされ、異なるデータの組が、タイルで覆うのに利用可能な状態となる。コンテキストを元の状態に切り換えるのは逆の演算であり、新しいコンテキストの格納、キャッシュ及びオブジェクトのメモリ位置の逆転、そして現在のキャッシュを無効にする動作を含む。
【0026】
これでオブジェクトリストのための情報が利用可能となる。末尾ポインタキャッシュに由来するポインタのためのアドレス及びそのタイルと交差するバウンディングボックスを有するオブジェクトを指し示すオブジェクトポインタである。そして、処理されているオブジェクトのために登録されているすべてのオブジェクトリストを、メモリ及び処理すべき次のオブジェクトに書き込むことができる。
【0027】
これは、図10の回路を用いて実行することができる。ここでは、オブジェクトデータは、アプリケーションプログラムから三角形、扇、細片、そして点という形態で受け取られる。初めに、オブジェクトデータは、変換ユニット40においてすべて細片に変換される。これらはメモリを使う上で効率的である。変換部40は、扇及び面を細片に変換する変換部42と、点及び線を細片に変換する変換部44とを含んでいる。そして細片データは、バウンディングボックス生成部46へ供給される。これは、細片内の各三角形についてバウンディングボックス及びすべての細片についてのバウンディングボックスを計算する。バウンディングボックスがスクリーン領域と交差する場合は、オブジェクトデータはローカルリード/ライトアービタ48を介してメモリに書き込まれる。そうでない場合は、システムは次の細片へ進む。このデータが書き込まれるアドレスは、パイプラインの下流側へ渡される。
【0028】
領域生成部50は、バウンディングボックスの情報を受け取り、マスクと、すべての細片についてのバウンディングボックス内の各タイルについてのタイルアイデンティティを生成する。タイルアイデンティティは、末尾ポインタキャッシュ52にアクセスして次の利用可能なポインタ位置を読み出すのに使われる。もしもこれがそのブロック内の最後のアドレスであると、このタイルに対して新たなポインタブロックが割り当てられ、現在のブロックから新しいブロックへのリンクが生成される。
【0029】
オブジェクトのアドレスを有するポインタへのフリーのアドレスへの書き込み要求、およびそのオブジェクトについてのマスクは、待ち行列に置かれる。そしてタイルについての末尾ポインタは、キャッシュを通して次に利用可能なポインタによって更新される。書き込みの待ち行列に16の要素があるときは、要求はページアドレスによって、ポインタソータ54によってソートされる。これらは第一アクセスのメモリへ書き込まれる。これによって、メモリへのページブレークの数が削減される。
【0030】
最も普通の安価なブロックRAMは、DRAMである。これはページと、ページを横断するアクセスによって構成されている。これは、現在のページを閉じて新たなページを開くことについてパフォーマンスコストがあるからである。しかしながら、同じオブジェクトへのポインタを複数のリストに書き込むと、各リストは異なるページにある場合もあるので、非常に多くのページの移り変わりが必要となる。しかしながら、入ってくる一つのオブジェクトと次のオブジェクトとの間には類似性がある可能性が高い。これは、次のオブジェクトが、現在及びその前のオブジェクト同じオブジェクトリストに置かれる可能性が高いことを意味する。オブジェクトリストによってアドレスは本質的に連続的となり、したがって、ポインタ同士の間のアドレスの緊密さがあるのと同じだけ多くのポインタを同時に同じリスト内に書き込むのが望ましく、これは、多くのポインタ(例えばオブジェクトの範囲を超える)を格納し、これらをメモリへ書き込む前にページグループ内に格納することによって達成される。これにより、ページの移り変わりは大幅に削減され、したがってシステムの効率が向上する。
【0031】
画像のオブジェクトの所与のデータセットについて、各タイル内で見えるオブジェクトの数を決定することは可能ではない。最悪のシナリオは、ポインタのための十分なメモリを、すべてのタイルに対するすべてのオブジェクトに割り当てなければならない場合である。これは非常に多くのメモリを必要とし、システムのコストを押し上げる。これは、各オブジェクトリストに対してブロックを割り当て、そしてブロックがいっぱいになったときは、新たなブロックを割り当てるとともにこの新たなブロックへのリンクを挿入することによって、削減することが可能である。これは、使っているメモリが、オブジェクトリストの格納のために必要な最少量に近づくことを意味する。ブロックの大きさは、メモリの幅及び利用可能なバンド幅など多くのファクターに依存する。
【0032】
オブジェクトポインタの数及びオブジェクトデータのサイズをさらに削減するために、別の観点のオブジェクトの緊密性を用いることができる。一般に一群の三角形は、ティーポット、球、あるいは動物などの大きなオブジェクトを表すのに用いられるので、三角形の間には非常に多くの共通性が存在する。すなわち、三角形は、それらの間で頂点を共有する。頂点を互いに比較することによって、三角形を細片に変換することが可能である。新しい三角形を定義するのに必要な頂点は一つ又は二つだけであり、そして細片内のすべてのオブジェクトを指し示すのに必要なポインタは一つだけなので、細片が必要とするメモリの領域は少ない。これによって、オブジェクトポインタの数はさらに削減され、必要とするメモリの量も少なくなり、これによりメモリに関する効率が向上し、バンド幅の効率化によって性能が向上する。図6に、三角形とバウンディングボックスを示してあり、後者には陰影を付してある。これを通常の方法を用いて処理すると、この中の領域は5×5列のタイルをカバーし、この処理を25回行う必要がある。しかしながら、画像をまず、三角形が用いるx,y座標の範囲を保持する領域を定義するのにバウンディングボックスを用いて処理すると、三角形は12回だけ処理すればよいこと、すなわち、三角形は12個のタイルをカバーしていることが示される。
【0033】
我々はさらに、三角形は実際には、4×3個の中のタイルの10個だけの中にあることを認識した。これによって更に処理のオーバーヘッドは削減される。
【0034】
三角形を処理するのに必要な長方形のバウンディングボックスの全体をカバーしていない別の三角形の例を、図7のa〜dに示す。このうち最も極端な例は図7dであり、ここでは三角形は図8に示した12個のタイルの中に収まる。この三角形をレンダリングするには、このタイルの組だけを処理するのが望ましい。
【0035】
三角形を表すタイルの最少の組の計算は、粗い長方形のバウンディングボックスの全体の計算から始める。もしバウンディングボックスが高さにおいても幅においても単一のタイルであれば、実行すべきさらなる最適化は存在しない。そうでなければ、その三角形の各辺を考慮することによって、このタイルの組は削減される。
【0036】
最初に、その三角形が時計回り(cw)の点の組によって定義されるのか、それとも反時計回り(acw)の点の組によって定義されるのかを知らなければならない。この情報が分からないときは、簡単に計算することができる。
【0037】
次に、辺を、空間を半分ずつ二つに分割する無限に長い線と見なすことができる。辺の両側のサブスペースは、上で述べた辺プロセッサによって辺の内側か外側として記述することができる。ここで内側のサブスペースとは、辺が属している三角形を含む方である。三角形はその頂角を、辺の線の交点として有しており、面は三つの辺の内側のサブスペースの重なり部分である。
【0038】
その全体が辺の外側にある任意のタイルは、その中に三角形が見えないので、そのタイルは最少の組の一部ではない。辺が完全に水平又は垂直の場合には、長方形のバウンディングボックスの中のすべてのタイルは既に全体又は一部が辺の内側にあるので、これを考慮する必要はない。
【0039】
タイル全体が辺の外側にあるかどうかをテストするためには、その辺に最も近いタイルの頂点上の点だけをテストすればよい。もしこの点が辺の外側にあれば、タイル全体も辺の外側にあると確信できる。このテスト点の位置は、図9に与えた表に示すように、辺の方向によって決定される。
【0040】
辺それ自身は、
y=mx+c
という方程式を用いて記述することができる。ここで、x及びyは、スクリーンの座標であり、mは直線の傾きを表し、cは定数である。タイルの頂点におけるmx+cの値を評価することによって、その点のy座標よりも大きいか、小さいか、あるいは等しい値を与える。この二つの値の比較によって、その点が辺の内側にあるか外側にあるかが示される。この結果の解釈は、図9の表に与えるように、辺の方向に依存する。
【0041】
タイルが最少の組から排除されるかどうかを決定するには、三角形の各辺について、長方形のバウンディングボックスの中の各タイルをこのようにして処理しなければならない。
【0042】
タイルの頂点におけるテスト点は、また、より大きな長方形のタイルの組についてのテスト点でもあるという点に注意すべきである。図10において、テストポイントが辺の外側である所にタイルがマークされたことを知ることは、陰影を付けられたすべてのタイルは、同じく辺の外側になければならないことを意味する。テストポイントが右下にあるこの例では、長方形のバウンディングボックスのタイルを、右から左へ、下から上へ処理するのがもっとも効率的であり、合計では、最少の数のテストを有する最少セットから排除されるタイルが非常に多くある。テストポイントがタイルの別の角にあるときは、それに従って処理の順序が変更される。
【図面の簡単な説明】
【図1】 オブジェクトの一部を描くのに用いる三角形の面のグラフィック表示を示す図である。
【図2】 図1の三角形の見える部分を決定するために、面の正の側と負の側をどのように用いるかを示した図である。
【図3】 図2の三角形をシェーディングするのに用いる辺プロセッサ及び面プロセッサをブロック図として図である。
【図4】 25のタイル列に分割されたスクリーンにオブジェクトが描かれ、オブジェクトが通常の方法で三角形に分解された様子を示している。
【図5】 本発明の一実施例に従って用いられるオブジェクトリストを示した図である。
【図6】 12のタイルのバウンディングボックスの中の三角形を示した図である。
【図7】 a,b,c,dは、異なるバウンディングボックスを有する多くの異なる三角形と、これらを表示するのに必要とされる異なる数のタイルを示した図である。
【図8】 図7のdにおける三角形のためのタイルの最適な選択を示した図である。
【図9】 三角形を表示するのに必要ない図8のタイルを決定するのに用いるテストを例示した表を示した図である。
【図10】 長方形のタイルの組を、テストポイントと共に示した図である。
【図11】 バウンディングボックスを生成するのに用いる回路のブロック図である。
Claims (4)
- コンピュータが生成した3次元画像をシェーディングする方法であって、
画像内の各オブジェクトを一組のポリゴンとして表すステップと、
画像が表示される画像面を複数の長方形領域に分割するステップと、
各ポリゴンの位置を定義するデータを供給するステップと、
各ポリゴンについて、長方形領域の長方形のバウンディングボックスを定義するステップと、
ポリゴンについて、前記バウンディングボックス内のどの長方形領域が当該ポリゴンと交差しているかを決定するステップと、
各長方形領域の中の各ピクセルについて、交差している各ポリゴンの面の画像面からの距離について深さの値を決め、そのピクセルにおいて面が見えるかどうかを決定し、そして、この決定に基づいてピクセルをシェーディングするステップと、を備え
前記ポリゴンについて、前記バウンディングボックス内のどの長方形領域が当該ポリゴンが交差しているかを決定するステップは、
ポリゴンの各辺について、前記バウンディングボックス内の各長方形領域の角においてテスト点を決める段階と、その際、テスト点の位置は辺の方向と、点の組がポリゴンを定義する時計回り又は反時計回りの順番で決められ、
テスト点が辺の外側にあるかどうかを判定する段階と、
テスト点が辺の外側にある場合には、バウンディングボックスによって定義される長方形領域の組からその長方形領域を除外する段階とを含み、
ここで、長方形領域が辺の外側である場合には、前記辺の方向と点の組がポリゴンを定義する時計回り又は反時計回りの順番で決められたテスト点の位置は、辺に最も近い長方形領域の角であることを特徴とする3次元画像をシェーディングする方法。 - 各長方形領域についてシェーディングされる各オブジェクトが特定されるように、各長方形領域における各ポリゴンについてオブジェクトリストを格納するステップをさらに含んでいる、請求項1に記載の3次元画像をシェーディングする方法。
- コンピュータが生成した3次元画像をシェーディングする装置であって、
画像内の各オブジェクトを一組のポリゴンとして表す手段(2)と、
画像が表示される画像面を複数の長方形領域に分割する手段と、
各ポリゴンの位置を定義するデータを供給する手段(44)と、
各ポリゴンについて長方形領域の長方形のバウンディングボックスを定義する手段と、
ポリゴンについてバウンディングボックス内のどの長方形領域がポリゴンと交差するかを決定する手段(50,46)と、
各長方形領域内の各ピクセルについて、交差する各ポリゴンの面の画像面からの距離に対して深さの値を決定する手段と、
その面がそのピクセルにおいて見えるかどうかを決定する手段と、
この決定の結果に従ってピクセルをシェーディングする手段と、を含み、
前記ポリゴンについてバウンディングボックス内のどの長方形領域がポリゴンと交差するかを決定する手段は、ポリゴンの各辺についてバウンディングボックス内各長方形領域の角においてテスト点を決め、その際にテスト点の位置は辺の方向と点の組がポリゴンを定義する時計回り(cw)又は反時計回り(acw)の順番で決められ、そして、テスト点が辺の外側にあるかどうかを判定し、テスト点が辺の外側にある場合には、バウンディングボックスによって定義される長方形領域の組からその長方形領域を除外し、そして、長方形領域が辺の外側である場合には、前記辺の方向と点の組がポリゴンを定義する時計回り又は反時計回りの順番で決められたテスト点の位置は、辺に最も近い長方形領域の角であることを特徴とする装置。 - 各長方形領域についてシェーディングされる各オブジェクトが特定されるように、各長方形領域における各ポリゴンについてオブジェクトリストを格納するステップをさらに含んでいる、請求項3に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9824414.8 | 1998-11-06 | ||
GB9824414A GB2343603B (en) | 1998-11-06 | 1998-11-06 | Shading 3-dimensional computer generated images |
PCT/GB1999/003707 WO2000028483A1 (en) | 1998-11-06 | 1999-11-08 | Shading 3-dimensional computer generated images |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002529871A JP2002529871A (ja) | 2002-09-10 |
JP2002529871A5 JP2002529871A5 (ja) | 2006-12-28 |
JP4499292B2 true JP4499292B2 (ja) | 2010-07-07 |
Family
ID=10842018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000581598A Expired - Lifetime JP4499292B2 (ja) | 1998-11-06 | 1999-11-08 | 3次元コンピュータ生成画像のシェーディング |
Country Status (7)
Country | Link |
---|---|
US (1) | US6798410B1 (ja) |
EP (1) | EP1125253B2 (ja) |
JP (1) | JP4499292B2 (ja) |
AT (1) | ATE265074T1 (ja) |
DE (1) | DE69916646T3 (ja) |
GB (1) | GB2343603B (ja) |
WO (1) | WO2000028483A1 (ja) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1287494B1 (en) | 2000-06-08 | 2007-03-14 | Imagination Technologies Limited | Tiling and compression for rendering 3d images |
US8692844B1 (en) | 2000-09-28 | 2014-04-08 | Nvidia Corporation | Method and system for efficient antialiased rendering |
EP1332475A1 (en) * | 2000-11-07 | 2003-08-06 | Holographic Imaging LLC | Computer generated hologram display system |
JP4541533B2 (ja) * | 2000-11-24 | 2010-09-08 | パナソニック株式会社 | 描画装置 |
GB2378108B (en) | 2001-07-24 | 2005-08-17 | Imagination Tech Ltd | Three dimensional graphics system |
GB2416100B (en) | 2002-03-26 | 2006-04-12 | Imagination Tech Ltd | 3D computer graphics rendering system |
GB0307095D0 (en) * | 2003-03-27 | 2003-04-30 | Imagination Tech Ltd | Improvements to a tiling system for 3d rendered graphics |
US8872833B2 (en) | 2003-09-15 | 2014-10-28 | Nvidia Corporation | Integrated circuit configuration system and method |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US7567248B1 (en) * | 2004-04-28 | 2009-07-28 | Mark William R | System and method for computing intersections between rays and surfaces |
CN100576249C (zh) * | 2004-05-24 | 2009-12-30 | Nxp股份有限公司 | 基于贴片的图形渲染 |
US20050264554A1 (en) * | 2004-05-25 | 2005-12-01 | Deming James L | Tile based rendering of smooth points using polygons |
US7505043B2 (en) * | 2004-08-30 | 2009-03-17 | Qualcomm Incorporated | Cache efficient rasterization of graphics data |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US20060187229A1 (en) * | 2004-12-08 | 2006-08-24 | Xgi Technology Inc. (Cayman) | Page based rendering in 3D graphics system |
JP4566772B2 (ja) * | 2005-02-14 | 2010-10-20 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
JP4283785B2 (ja) * | 2005-05-10 | 2009-06-24 | 株式会社マーキュリーシステム | 立体視画像生成装置およびプログラム |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
GB0524804D0 (en) | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
US20080273031A1 (en) * | 2005-12-08 | 2008-11-06 | Xgi Technology Inc. (Cayman) | Page based rendering in 3D graphics system |
US8698811B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
US8390645B1 (en) | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US8928676B2 (en) * | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US8477134B1 (en) | 2006-06-30 | 2013-07-02 | Nvidia Corporation | Conservative triage of polygon status using low precision edge evaluation and high precision edge evaluation |
KR100762811B1 (ko) * | 2006-07-20 | 2007-10-02 | 삼성전자주식회사 | 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템 |
US7843468B2 (en) * | 2006-07-26 | 2010-11-30 | Nvidia Corporation | Accellerated start tile search |
GB2449399B (en) | 2006-09-29 | 2009-05-06 | Imagination Tech Ltd | Improvements in memory management for systems for generating 3-dimensional computer images |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8482567B1 (en) | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US9965886B2 (en) | 2006-12-04 | 2018-05-08 | Arm Norway As | Method of and apparatus for processing graphics |
GB2461821B (en) * | 2007-09-12 | 2010-06-30 | Imagination Tech Ltd | Methods and systems for generating 3-dimensional computer images |
US8724483B2 (en) | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US8063903B2 (en) * | 2007-11-09 | 2011-11-22 | Nvidia Corporation | Edge evaluation techniques for graphics hardware |
GB0723536D0 (en) * | 2007-11-30 | 2008-01-09 | Imagination Tech Ltd | Multi-core geometry processing in a tile based rendering system |
US8059119B2 (en) * | 2007-12-05 | 2011-11-15 | Stmicroelectronics S.R.L. | Method for detecting border tiles or border pixels of a primitive for tile-based rendering |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
GB0823254D0 (en) | 2008-12-19 | 2009-01-28 | Imagination Tech Ltd | Multi level display control list in tile based 3D computer graphics system |
GB0823468D0 (en) | 2008-12-23 | 2009-01-28 | Imagination Tech Ltd | Display list control stream grouping in tile based 3D computer graphics systems |
GB0900700D0 (en) | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
US20110063305A1 (en) | 2009-09-16 | 2011-03-17 | Nvidia Corporation | Co-processing techniques on heterogeneous graphics processing units |
US9530189B2 (en) | 2009-12-31 | 2016-12-27 | Nvidia Corporation | Alternate reduction ratios and threshold mechanisms for framebuffer compression |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
US9058685B2 (en) * | 2010-03-11 | 2015-06-16 | Broadcom Corporation | Method and system for controlling a 3D processor using a control list in memory |
GB201004675D0 (en) | 2010-03-19 | 2010-05-05 | Imagination Tech Ltd | Memory management system |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
GB2506706B (en) | 2013-04-02 | 2014-09-03 | Imagination Tech Ltd | Tile-based graphics |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
US10204391B2 (en) | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
US9659393B2 (en) | 2013-10-07 | 2017-05-23 | Intel Corporation | Selective rasterization |
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
US9832388B2 (en) | 2014-08-04 | 2017-11-28 | Nvidia Corporation | Deinterleaving interleaved high dynamic range image by using YUV interpolation |
EP3070677B1 (en) | 2015-03-20 | 2021-07-28 | Samsung Electronics Co., Ltd. | Method and apparatus for tile-based rendering |
GB2546810B (en) | 2016-02-01 | 2019-10-16 | Imagination Tech Ltd | Sparse rendering |
GB2553744B (en) | 2016-04-29 | 2018-09-05 | Advanced Risc Mach Ltd | Graphics processing systems |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4825391A (en) * | 1987-07-20 | 1989-04-25 | General Electric Company | Depth buffer priority processing for real time computer image generating systems |
GB8828342D0 (en) † | 1988-12-05 | 1989-01-05 | Rediffusion Simulation Ltd | Image generator |
JPH04220782A (ja) * | 1990-12-20 | 1992-08-11 | Fujitsu Ltd | 三次元画像表示処理方法 |
GB2251770B (en) * | 1991-01-09 | 1995-01-11 | Du Pont Pixel Systems | Graphics accelerator system with polygon traversal operation |
US5509110A (en) * | 1993-04-26 | 1996-04-16 | Loral Aerospace Corporation | Method for tree-structured hierarchical occlusion in image generators |
GB2298111B (en) * | 1995-01-31 | 2000-01-19 | Videologic Ltd | Improvements relating to computer 3d rendering systems |
US5886701A (en) * | 1995-08-04 | 1999-03-23 | Microsoft Corporation | Graphics rendering device and method for operating same |
US5990904A (en) * | 1995-08-04 | 1999-11-23 | Microsoft Corporation | Method and system for merging pixel fragments in a graphics rendering system |
CA2229027A1 (en) † | 1995-08-04 | 1997-02-20 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks and combining image layers into a display image |
US5808617A (en) * | 1995-08-04 | 1998-09-15 | Microsoft Corporation | Method and system for depth complexity reduction in a graphics rendering system |
JPH1054581A (ja) * | 1996-08-12 | 1998-02-24 | Corona Corp | 空気調和機 |
US5844576A (en) * | 1996-12-30 | 1998-12-01 | Cirrus Logic, Inc. | Tiled linear host texture storage |
US6288730B1 (en) * | 1998-08-20 | 2001-09-11 | Apple Computer, Inc. | Method and apparatus for generating texture |
-
1998
- 1998-11-06 GB GB9824414A patent/GB2343603B/en not_active Expired - Lifetime
-
1999
- 1999-11-08 US US09/831,238 patent/US6798410B1/en not_active Expired - Lifetime
- 1999-11-08 WO PCT/GB1999/003707 patent/WO2000028483A1/en active IP Right Grant
- 1999-11-08 DE DE69916646.2T patent/DE69916646T3/de not_active Expired - Lifetime
- 1999-11-08 EP EP99954171.7A patent/EP1125253B2/en not_active Expired - Lifetime
- 1999-11-08 JP JP2000581598A patent/JP4499292B2/ja not_active Expired - Lifetime
- 1999-11-08 AT AT99954171T patent/ATE265074T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE69916646T2 (de) | 2005-03-03 |
JP2002529871A (ja) | 2002-09-10 |
DE69916646T3 (de) | 2014-10-16 |
WO2000028483A1 (en) | 2000-05-18 |
ATE265074T1 (de) | 2004-05-15 |
US6798410B1 (en) | 2004-09-28 |
EP1125253A1 (en) | 2001-08-22 |
GB2343603B (en) | 2003-04-02 |
DE69916646D1 (de) | 2004-05-27 |
GB2343603A (en) | 2000-05-10 |
GB9824414D0 (en) | 1998-12-30 |
EP1125253B1 (en) | 2004-04-21 |
EP1125253B2 (en) | 2014-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4499292B2 (ja) | 3次元コンピュータ生成画像のシェーディング | |
JP4576050B2 (ja) | 3次元コンピュータ生成画像のシェーディング | |
EP1081655B1 (en) | System and method for rendering using ray tracing | |
US6618047B1 (en) | Visibility calculations for 3d computer graphics | |
US7167171B2 (en) | Methods and apparatuses for a polygon binning process for rendering | |
JP4237271B2 (ja) | 3dグラフィックスにおける属性補間のための方法及び装置 | |
JP3390463B2 (ja) | 3次元グラフィックスにおけるシャドウ・テスト方法 | |
EP1125250B1 (en) | Image processing apparatus | |
EP1081646B1 (en) | Programmable architecture for visualizing sampled and geometry data | |
Greene | Detecting Intersection of a Rectangular Solid and a Convex Polyhedron. | |
JP3759971B2 (ja) | 3次元像を陰影付けする方法 | |
EP0430501A2 (en) | System and method for drawing antialiased polygons | |
JP2004348702A (ja) | 画像処理方法、画像処理装置、および画像処理システム | |
EP1125252B1 (en) | Shading and texturing 3-dimensional computer generated images | |
US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
Hertel et al. | A Hybrid GPU Rendering Pipeline for Alias-Free Hard Shadows. | |
US7372466B2 (en) | Image processing apparatus and method of same | |
JPH09305791A (ja) | 立体画像生成装置および立体画像生成方法 | |
KR100372901B1 (ko) | 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법 | |
JP2000207576A (ja) | 画像処理方法,画像処理装置,および画像処理プログラムを記録した記録媒体 | |
JP3251744B2 (ja) | 交点追跡法による画像生成方法 | |
Lau et al. | Accurate Image Generation and Interactive Image Editing with the A‐buffer | |
JPH06168340A (ja) | 3dグラフィック表示装置 | |
JPH0736439A (ja) | 多角形立体表示システム | |
JPH01224886A (ja) | 画素展開方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061102 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090917 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091217 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100317 |
|
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: 20100408 |
|
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: 20100415 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4499292 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140423 Year of fee payment: 4 |
|
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 |