JP2002529868A - 3次元コンピュータ生成画像のシェーディング - Google Patents

3次元コンピュータ生成画像のシェーディング

Info

Publication number
JP2002529868A
JP2002529868A JP2000581595A JP2000581595A JP2002529868A JP 2002529868 A JP2002529868 A JP 2002529868A JP 2000581595 A JP2000581595 A JP 2000581595A JP 2000581595 A JP2000581595 A JP 2000581595A JP 2002529868 A JP2002529868 A JP 2002529868A
Authority
JP
Japan
Prior art keywords
edge
data
polygon
image
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000581595A
Other languages
English (en)
Other versions
JP4576050B2 (ja
JP2002529868A5 (ja
Inventor
シモン フェニー
Original Assignee
イマジネイション テクノロジーズ リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=10842016&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2002529868(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by イマジネイション テクノロジーズ リミテッド filed Critical イマジネイション テクノロジーズ リミテッド
Publication of JP2002529868A publication Critical patent/JP2002529868A/ja
Publication of JP2002529868A5 publication Critical patent/JP2002529868A5/ja
Application granted granted Critical
Publication of JP4576050B2 publication Critical patent/JP4576050B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

(57)【要約】 画像内の各オブジェクトを平らなポリゴンの組によって表す、コンピュータによって生成された3次元画像をシェーディングするための装置。頂点データ(x,y)は、ポリゴンの面の方向を定義するデータとともに、ポリゴンの各頂点について与えられる。辺データは辺プロセッサ(6)において計算される。辺データは、視点に垂直で、かつポリゴンの方へ内側に向いているめんを定義するデータと等価である。ポリゴンが位置している画像の部分を見るのに用いられるピクセルそれぞれについて、これらの面のそれぞれについて深さの値が導かれ、そしてポリゴンがそのピクセルにおいて見えることを深さの値が示しているときは、それに従ってシェーディングされる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
コンピュータで生成された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に示した(x
,z)及び(x,y,z)に位置する二つの頂点v及びvの間
の垂直な辺の面についての方程式は、 (y−y)x+(x−x)y+(x−y)=0 によって定義され、これは、 Ax+By+C=0 という平面を表す方程式の形になっている。
【0012】 特定のxyの値(ピクセル位置)に対してこの方程式の答えが正のときは、x
yの位置はエッジ面の前方のフェーシング面上にあり、値が負のときはxy位置
はこの面の方向のフェーシング面上にある。したがって、図1の三角形を表す四
つの方程式すべてが正の値を有するときは、ピクセルの位置は図2に示すように
三角形の内側に存在する。この規則は、三角形に優先して四辺形など、使用する
任意の形状に対して当てはまる。
【0013】 本発明の好適な実施例を図3に示す。ここには、三角形を定義する頂点データ
を受け取り、32個の面プロセッサ4の組のそれぞれに対して三角形のフェーシ
ング面データを供給するポリゴンセットアップユニット2が設けられている。こ
れは同時に、面プロセッサ4によって処理される各三角形について、3組の辺デ
ータを3列の辺プロセッサ6の一つずつに供給する。これらにはそれぞれ、32
個の特定のピクセル位置のそれぞれについて処理しているエッジ面に対する値が
正か負かを決定する深さ評価ユニットが含まれている。これらのそれぞれの出力
は正又は負の符号ビットであり、三つの面についてのこれらの符号ビットは、そ
の三角形についての適当な面プロセッサに供給される。前述のようにすべての符
号ビットが正ならば、その面プロセッサは処理している三角形の面が見えるもの
であること、すなわちそれが三角形の辺の外側ではないことを知り、したがって
出力として深さ値を与え、これは深さ記憶装置へ行き、その後さらに、これにつ
いて、処理されている画像への寄与に用いられるかどうかを決定するたのテスト
を行うことができる。符号ビットの一つが負のときは、面プロセッサ4は何もす
る必要がない。
【0014】 辺プロセッサはx方向で、すなわち、画像内のスキャンラインに沿って動作し
、そして、32個の面プロセッサ4の配列を用いるシステムにおいて、通常は3
2×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 (13)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータが生成した3次元画像をシェーディングする方
    法であって、 画像内の各オブジェクトを一組の平らなポリゴンによって表すステップと、 各ポリゴンについて、ポリゴンの頂点を定義する一組の頂点データを、その面
    の方向を定義するデータとともに与えるステップと、 視点に対して垂直でかつポリゴンの方を向いている面を定義するデータと等価
    である辺のデータを、頂点データから計算するステップと、 ポリゴンが位置する画像の部分を見るのに用いられる各ピクセルについて、各
    面のための深さの値を導くステップと、 当該ピクセルにおいてポリゴンが見えることを、深さの値が示しているときに
    、そのピクセルをシェーディングするステップと、 を具備する方法。
  2. 【請求項2】 その深さの値が正であり、かつ、各エッジ面が垂直なピクセ
    ルにおいて正の深さの値を有するときに、そのピクセルにおいて面が見えるもの
    である、請求項1に記載の方法。
  3. 【請求項3】 辺のデータから辺の遷移を決定し、各辺について辺マスクを
    導くステップを含んでいる、請求項1に記載の方法。
  4. 【請求項4】 辺マスクは、ピクセルのラインごとに、1クロックサイクル
    に1ラインずつ導かれるものである、請求項3に記載の方法。
  5. 【請求項5】 辺マスクは、画像の多数の長方形の下位領域のそれぞれにつ
    いてラインごとに導かれるものである、請求項4に記載の方法。
  6. 【請求項6】 辺マスクは各面ごとに導かれ、かつ、その面について辺マス
    クから深さマスクを導くステップを含むものである、請求項4又は5に記載の方
    法。
  7. 【請求項7】 コンピュータが生成した3次元画像をシェーディングするた
    めの装置であって、 画像内の各オブジェクトを一組の平らなポリゴンによって表す手段と、 各ポリゴンについて、ポリゴンの頂点を定義する一組の頂点データを、その面
    の方向を定義するデータとともに与える手段と、 視点に対して垂直でかつポリゴンの方を向いている面を定義するデータと等価
    である辺のデータを、頂点データから計算する手段と、 ポリゴンが位置する画像の部分を見るのに用いられる各ピクセルについて、各
    面のための深さのデータを導く手段と、 当該ピクセルにおいてポリゴンが見えることを、深さの値が示しているときに
    、そのピクセルをシェーディングする手段と、 を具備する装置。
  8. 【請求項8】 その深さの値が正であり、かつ、囲んでいる各エッジ面が垂
    直なピクセルにおいて正の深さの値を有するときに、そのピクセルにおいて面が
    見えるものである、請求項7に記載の装置。
  9. 【請求項9】 辺のデータから辺の遷移を決定し、各辺について辺の遷移か
    ら辺マスクを導く手段を含んでいる、請求項7に記載の装置。
  10. 【請求項10】 辺マスクは、画像内のピクセルのラインごとに、1クロッ
    クサイクルに1ラインずつ導かれるものである、請求項9に記載の装置。
  11. 【請求項11】 辺マスクは、画像の多数の長方形の下位領域のそれぞれに
    ついてラインごとに導かれるものである、請求項10に記載の装置。
  12. 【請求項12】 辺マスクは面を定義する各辺ごとに導かれ、かつ、その面
    について辺マスクから深さマスクを導く手段を含むものである、請求項10又は
    11に記載の装置。
  13. 【請求項13】 ポリゴンがシェーディングされている画像の境界と交差す
    るときに、辺での切り落としを必要としないものである、請求項1乃至6のうち
    いずれか一項に記載の方法。
JP2000581595A 1998-11-06 1999-11-08 3次元コンピュータ生成画像のシェーディング Expired - Lifetime JP4576050B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9824412.2 1998-11-06
GB9824412A GB2343602B (en) 1998-11-06 1998-11-06 Shading 3-dimensional computer generated images
PCT/GB1999/003704 WO2000028480A1 (en) 1998-11-06 1999-11-08 Shading 3-dimensional computer generated images

Publications (3)

Publication Number Publication Date
JP2002529868A true JP2002529868A (ja) 2002-09-10
JP2002529868A5 JP2002529868A5 (ja) 2006-12-28
JP4576050B2 JP4576050B2 (ja) 2010-11-04

Family

ID=10842016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000581595A Expired - Lifetime JP4576050B2 (ja) 1998-11-06 1999-11-08 3次元コンピュータ生成画像のシェーディング

Country Status (7)

Country Link
US (1) US6741247B1 (ja)
EP (1) EP1127337B2 (ja)
JP (1) JP4576050B2 (ja)
AT (1) ATE243345T1 (ja)
DE (1) DE69908966T3 (ja)
GB (1) GB2343602B (ja)
WO (1) WO2000028480A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006520963A (ja) * 2003-03-18 2006-09-14 クゥアルコム・インコーポレイテッド 直接推定を用いた三角形レンダリング
JP2010539579A (ja) * 2007-09-12 2010-12-16 イマジネイション テクノロジーズ リミテッド 3次元コンピュータ画像を生成する方法及びシステム
JP2012513630A (ja) * 2008-12-23 2012-06-14 イマジネイション テクノロジーズ リミテッド タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
GB2378108B (en) * 2001-07-24 2005-08-17 Imagination Tech Ltd Three dimensional graphics system
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8768642B2 (en) 2003-09-15 2014-07-01 Nvidia Corporation System and method for remotely 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
US8194071B2 (en) 2004-05-24 2012-06-05 St-Ericsson Sa Tile based graphics rendering
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
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
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
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
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
US7737986B2 (en) * 2006-08-29 2010-06-15 Texas Instruments Incorporated Methods and systems for tiling video or still image data
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
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
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
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
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
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
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
US9832388B2 (en) 2014-08-04 2017-11-28 Nvidia Corporation Deinterleaving interleaved high dynamic range image by using YUV interpolation
US10249092B2 (en) * 2016-11-23 2019-04-02 Simbionix Ltd. System and method for rendering complex data in a virtual reality or augmented reality environment
US10430983B2 (en) 2017-06-05 2019-10-01 Microsoft Technology Licensing, Llc Vertex pixel buffer

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH036785A (ja) * 1989-06-05 1991-01-14 Matsushita Electric Ind Co Ltd クリッピング回路
JPH03201081A (ja) * 1989-12-28 1991-09-02 Nec Corp 画像生成装置
JPH04152483A (ja) * 1990-10-17 1992-05-26 Nec Corp 図形切り出し境界の抽出装置および抽出方法
JPH05274446A (ja) * 1991-12-23 1993-10-22 General Electric Co <Ge> 表面モデルを取扱うためのグラフィックス・ワークステーションおよび表面モデルの三次元グラフィック画像を生ずる方法
JPH064679A (ja) * 1992-06-24 1994-01-14 Toshiba Corp イメージ処理装置
WO1995009405A1 (fr) * 1993-09-28 1995-04-06 Namco Ltd. Processeur de detourage, simulateur tridimensionnel et procede de traitement de detourage
JPH08110953A (ja) * 1994-07-25 1996-04-30 Canon Inf Syst Res Australia Pty Ltd グラフィカルプログラミング言語の解釈方法
JPH0950537A (ja) * 1995-08-09 1997-02-18 Mitsubishi Electric Corp ボリューム・レンダリング装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2026527A1 (en) * 1989-10-11 1991-04-12 Douglas A. Fischer Parallel polygon/pixel rendering engine
US5729672A (en) * 1993-07-30 1998-03-17 Videologic Limited Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
GB9315852D0 (en) 1993-07-30 1993-09-15 Video Logic Ltd Shading three-dimensional images

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH036785A (ja) * 1989-06-05 1991-01-14 Matsushita Electric Ind Co Ltd クリッピング回路
JPH03201081A (ja) * 1989-12-28 1991-09-02 Nec Corp 画像生成装置
JPH04152483A (ja) * 1990-10-17 1992-05-26 Nec Corp 図形切り出し境界の抽出装置および抽出方法
JPH05274446A (ja) * 1991-12-23 1993-10-22 General Electric Co <Ge> 表面モデルを取扱うためのグラフィックス・ワークステーションおよび表面モデルの三次元グラフィック画像を生ずる方法
JPH064679A (ja) * 1992-06-24 1994-01-14 Toshiba Corp イメージ処理装置
WO1995009405A1 (fr) * 1993-09-28 1995-04-06 Namco Ltd. Processeur de detourage, simulateur tridimensionnel et procede de traitement de detourage
JPH08110953A (ja) * 1994-07-25 1996-04-30 Canon Inf Syst Res Australia Pty Ltd グラフィカルプログラミング言語の解釈方法
JPH0950537A (ja) * 1995-08-09 1997-02-18 Mitsubishi Electric Corp ボリューム・レンダリング装置及び方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006520963A (ja) * 2003-03-18 2006-09-14 クゥアルコム・インコーポレイテッド 直接推定を用いた三角形レンダリング
JP2010539579A (ja) * 2007-09-12 2010-12-16 イマジネイション テクノロジーズ リミテッド 3次元コンピュータ画像を生成する方法及びシステム
JP2012513630A (ja) * 2008-12-23 2012-06-14 イマジネイション テクノロジーズ リミテッド タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化
US9384584B2 (en) 2008-12-23 2016-07-05 Imagination Technologies Limited Display list control stream grouping in tile based 3D computer graphics system

Also Published As

Publication number Publication date
GB2343602B (en) 2003-03-19
EP1127337B2 (en) 2014-03-26
GB2343602A (en) 2000-05-10
US6741247B1 (en) 2004-05-25
DE69908966T2 (de) 2004-05-19
ATE243345T1 (de) 2003-07-15
WO2000028480A1 (en) 2000-05-18
EP1127337A1 (en) 2001-08-29
DE69908966T3 (de) 2014-09-04
DE69908966D1 (de) 2003-07-24
EP1127337B1 (en) 2003-06-18
GB9824412D0 (en) 1998-12-30
JP4576050B2 (ja) 2010-11-04

Similar Documents

Publication Publication Date Title
JP4499292B2 (ja) 3次元コンピュータ生成画像のシェーディング
JP4576050B2 (ja) 3次元コンピュータ生成画像のシェーディング
JP3390463B2 (ja) 3次元グラフィックスにおけるシャドウ・テスト方法
EP1081655B1 (en) System and method for rendering using ray tracing
US5594844A (en) Three dimensional view using ray tracing through voxels subdivided numerically using object based parameters
US6618047B1 (en) Visibility calculations for 3d computer graphics
US7167171B2 (en) Methods and apparatuses for a polygon binning process for rendering
Greene Detecting Intersection of a Rectangular Solid and a Convex Polyhedron.
EP1081646A2 (en) Programmable architecture for visualizing sampled and geometry data
GB2492227A (en) Improving sample test efficiency in graphics rendering
JPH117541A (ja) ボリューム・データ構成方法
EP1410337A2 (en) Method, apparatus and article of manufacture for determining visible parts of surfaces of three-dimensional objects and their parameters of shading while accounting for light and shadow volumes
JP3086426B2 (ja) オブジェクトのラスタ化方法及び装置
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
Hertel et al. A Hybrid GPU Rendering Pipeline for Alias-Free Hard Shadows.
KR100372901B1 (ko) 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법
JPH09305791A (ja) 立体画像生成装置および立体画像生成方法
CN116188552B (zh) 基于区域的深度测试方法、装置、设备及存储介质
JP2000207576A (ja) 画像処理方法,画像処理装置,および画像処理プログラムを記録した記録媒体
KR100269118B1 (ko) 사각형을이용한래스터화방법
JP3251744B2 (ja) 交点追跡法による画像生成方法
Lau et al. Accurate Image Generation and Interactive Image Editing with the A‐buffer
Lehn et al. Visibility Considerations
JPH06168340A (ja) 3dグラフィック表示装置
CN117523074A (zh) 一种面向Web端批量动态切换建筑白模纹理的方法及装置

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4576050

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term