JP3759971B2 - 3次元像を陰影付けする方法 - Google Patents
3次元像を陰影付けする方法 Download PDFInfo
- Publication number
- JP3759971B2 JP3759971B2 JP17857794A JP17857794A JP3759971B2 JP 3759971 B2 JP3759971 B2 JP 3759971B2 JP 17857794 A JP17857794 A JP 17857794A JP 17857794 A JP17857794 A JP 17857794A JP 3759971 B2 JP3759971 B2 JP 3759971B2
- Authority
- JP
- Japan
- Prior art keywords
- dimensional image
- depth value
- base region
- shading
- visible
- 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
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- 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/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Studio Circuits (AREA)
Description
【産業上の利用分野】
本発明は、3次元像を陰影付け(シェーディング)するシステムに係り、より詳細には、実質的にリアルタイムでこれを行うことのできるシステムに係る。
【0002】
【従来の技術】
完全に隠れたリアルタイム3D像を発生するための公知の最良のシステムは、Zバッファ又は深度バッファ像高精度アルゴリズムである。これは、ソフトウェア又はハードウェアのいずれかで実施することができ、シリコン・グラフィックス社、イベンツ・アンド・スサーランド社、及びヒューレット・パッカード社のような会社で製造されたシステムに使用される。
【0003】
Zバッファアルゴリズムは、像の各ピクセルごとにカラー値を記憶するフレームバッファを必要とする。これに加えて、各ピクセルごとにエントリを有するZバッファを必要とする。これには、各ピクセルごとにZ値(深度値)が記憶される。3D表示を発生するためには、三角形のような多角形が任意の順序でフレームバッファにレンダリングされる。多角形の走査変換中に、多角形上の点が、そのピクセルに対してバッファに既に存在する点よりも観察者から離れない場合には、その新たな点のカラー及びZ値が古い値に取って代わる。予めの分類は不要であり、オブジェクトとオブジェクトの比較も不要である。
【0004】
【発明が解決しようとする課題】
Zバッファ型のシステムは、高レベルの集積及び性能を必要とする上に、非常に高価である。又、リアルタイム性能を得るべき場合には、高性能のフレームバッファ及びZバッファを使用する必要がある。
【0005】
【課題を解決するための手段】
本発明の好ましい実施例は、高度に集積された低コストで高性能のリアルタイム3次元グラフィックシステムを形成できるようにする。
【0006】
好ましくは、本発明は、コスト効率の良いVLSI(超大規模集積)実施に非常に適した規模変更可能な(scalable)通常のパイプライン構造で実施される。このような規模変更可能な解決策を用いることは、3Dグラフィックレンダリングシステムを単一チップ上に設けられることを意味する。
【0007】
システムを精巧にすることは、影(シャドー)、アンチエリアジング、ソフトな影、透明度、視野深度の効果、動きのぼけ、カーブした面、及び構造上の立体形状(CSG)の直接実施をサポートできるようにする。これら特徴の幾つか、例えば、リアルタイムの影発生は、Zバッファ技術を用いて実施することが非常に困難であり、それ故、実際にそれらを実施する高性能システムは、ほとんどない。本発明による解決策は、影のような特徴を比較的単純なやり方で得られるようにする。
【0008】
本発明は、従来の多角形に基づくレンダリング技術ではなく、3次元像をレンダリングするための射線投射(ray casting) 技術の使用に基づくものである。
【0009】
本発明の好ましい実施例において、オブジェクトは、各々、データのセットとして記憶された1組の面によって表される。像平面は、観察者と、見るべき場面との間に存在すると考えられ、これは、複数の基礎領域(ピクセル)で構成される。射線は、観察点からスクリーンの基礎領域を経て見られるべき場面へと通過すると仮定され、その場面内のオブジェクトを表す種々の面に交差する。これらの交差と、観察者からの距離とを分析することにより、面が見えるかどうか、ひいては、そのピクセルを特定のシェードでレンダリングしなければならないかどうかを判断することができる。
【0010】
この解決策を用いるには、連続的に流れる同様の計算を実行する必要がある。場面の各オブジェクトに対する1組の面を各ピクセルにおいてテストし、そして目に見える最も近い面に指定されたシェードがそのピクセルに与えられる。このような技術は、パイプライン形態で実施することができる。これは、高度な集積化を可能にし、性能/複雑さとコストとの間の妥協をなし得るようにする。
【0011】
【実施例】
本発明はその種々の特徴について特許請求の範囲に詳細に定められる。以下、添付図面を参照し、本発明の実施例を詳細に説明する。
【0012】
図1は、3D像合成パイプライン2を示しており、像表面の操作が所定の1組のルールに基づいて実行されて、個々の画素(ピクセル)にシェード(濃淡)が割り当てられる。パイプライン2が作用する3次元像データは、3Dデータベース4に記憶される。データベースとパイプラインとの間には形状プロセッサ6が設けられており、データベースからのデータを、パイプラインによりレンダリングする前に、操作できるようになっている。操作は、オブジェクトの回転、並進移動、視点変更及びシェーディング計算のような機能を含むことができる。ある形式のユーザ入力をこれに与えて、3Dデータベースのリアルタイム対話操作を行うことができる。形状プロセッサによってパイプラインに送られる像は、パイプラインにより表示のためのピクセルデータに変換される面データである。
【0013】
図1のパイプラインプロセッサは、多角形をベースとするレンダリングアルゴリズムではなくて、射線トレースアルゴリズムに基づくものである。射線トレースアルゴリズムにおいては、表示されるべき各3次元形状が、図2に示すようにオブジェクトの集合としてモデリングされる。これらは、図3に示すように、元の形状の近似形を作るために何が必要とされるかに基づいて互いに交差する。元のオブジェクトの凹所は、図4に示すように、多数のブロックに分割される。
【0014】
各オブジェクトは、多数の表面のみで定められる。図2ないし4に示した例では、これらの面が全て平らであるが、本システムは、カーブした面を取り扱うに充分な融通性を有している。各オブジェクトの縁及び頂点は、面の交差から暗黙のうちに定められ、従って、縁及び頂点のデータを記憶する必要はない。
【0015】
場面のレンダリングを開始できる前に、その場面の各面は、前方の面又は逆向きの面として分類される。これは、各面を定めるデータと共に記憶されるフラグをセットすることによって行われる。前方の面は、その面に直角な線が観察者を向くような状態を表す。逆向きの面は、その反対である。
【0016】
射線トレース技術は、各オブジェクトを順次取り上げそして観察者の目から像平面内の選択された点(ピクセル)を通る射線がそのオブジェクトに定められた全ての面に交差することをイメージすることによって動作する。これが行われると、目から最も離れた前方面の交差と、目に最も近い逆向き面の交差とが決定される。これが図5に示されている。
【0017】
図5において、射線1及び射線2の両方は観察点8からスタートする。オブジェクトは、図5の断面の平面において4つの面で定められる。観察点8から最も離れた射線1の前方面の交差はF1であり、そして観察点に最も近い逆向き面の交差はR1である。
【0018】
最も近い逆向き面の交差が、最も遠い前方交差よりも観察点の近くにあるこの状態は、射線1がオブジェクトに交差しないことを示す。それ故、この特定のオブジェクトは、射線1が通過する像平面内のピクセルにおいて見えない。一方、射線2は、その最も近い逆向き交差R4が最も遠い前方面交差F3よりも観察点8から離れている。これは、射線2が通過するピクセルにおいて像平面内でオブジェクトが見えることを指示する。それ故、このピクセルには、その面に割り当てられたシェード(濃淡)が割り当てられる。このシェードは、通常、面を定めるデータと共に記憶され、グレースケール値であってもよいし、全色システムの場合にはR、G、B値であってもよい。単一オブジェクトの特定のピクセルにシェードを割り当てるこの技術は、ルール間セット(inter-rule set)と称する。
【0019】
場面内の各オブジェクトに対してプロセスが繰り返され、そして目に最も近いオブジェクトの目に見える面であって、特定のピクセルを通過する射線に交差する面がもしあれば、それはそのピクセルに対するシェードを導出するように選択される。これをルール内セット(intra-rule set)と称する。
【0020】
従って、特定のピクセルに適用されるシェードは、目に見える面の特性及び向きから計算することができる。射線が交差する目に見える面がない場合には、その射線が通過するピクセルに割り当てられたシェードは、バックグランドシェードとなる。シェードは、グレースケール値であってもよいし、全R、G、B値であってもよい。
【0021】
面と射線の交差を見つけるプロセスは、各面を定めるデータからの非常に簡単な動作に簡略化することができる。これは、以下に説明する。
【0022】
各面は、ベクトル形態で次のように表すことができる。
n.x=k
但し、n=原点(通常は観察点)に向いた面に対する単位直角ベクトルで、通常は原点からの角度のコサインとして記憶される。
k=面から原点への垂直距離である。
x=面上の点(座標)である。
【0023】
線即ち射線は、ベクトル形態で次のように表される。
p1+U(p2−p1)
但し、p1=ベースベクトル、即ち原点から観察点までの距離である。
p2=像平面上のピクセルの中心における射線上の点である。
U=射線に沿ってどれほど遠くで点xにおいて交差が生じるかの尺度である。
それ故、n(P1+u(p2−p1))=k、及び
u=(k−n.p1)/n.(p2−p1)
パラメータuは、交差する面の後方では負であり、p1とp2との間で0ないし1の範囲であり、そして像平面の前方の点については1より大きい。従って、パラメータuは、観察者から像平面上の点を経て所与の面までの距離の尺度を与える。これは、像平面上の各ピクセルに射線を通すときにピクセルごとの分割を必要とする。しかしながら、このパラメータの逆数1/uは、分割を必要とせず、依然として面までの距離の尺度を与える。この場合に、これは、面までの距離が無限に向かうにつれて0に近づく。この距離の逆の尺度を通常は深度と称している。それ故、次の式を用いて各ピクセルにおける各面の深度を比較することにより、各ピクセルにおいてどの面が見えるかを見つけることができる。
1/u=n(p2−p1)/(k−n.p1)
この式においてベクトルを拡張すると、次の結果が得られる。
1/u=(n1.(xs−xe)+n2.(ys−ye)+n3.(zs−ze))/(k−(n1.xe+n2.ye+n3.ze))
但し、xs、ys、zsは、像平面交差座標であり、そしてxe、ye、zeは目点の座標である。
【0024】
目点である投影の中心が像平面の中心でもある場合には、上記式は次のように簡略化される。
1/u=(n1.xs+n2.ys+n3.(zs−ze))/(k−n3.ze)
これは、次のようなより一般的な形態に有理化することができる。
1/u=A.xs+B.ys+C
A、B、Cは、特定の場面における各面の定数であり、従って、上記の式を用いて、各射線上の各面への距離を導出することができる。
【0025】
xs及びysは、この式を用いて各面への距離を計算すべき像平面内のピクセルの座標である。
【0026】
像は、通常は、像平面をラスタ形態で走査することにより構成され、従って、特定の面については、スタート深度が計算された後に、像平面において水平方向に進行するときにAだけ増加しそして垂直方向に進行するときにBだけ増加することにより、各ピクセルの深度を計算することができる。前記したように、各面の深度は、像平面内の各ピクセルごとに計算しなければならない。これは、相当の数の計算である。しかしながら、水平に隣接するピクセル間の深度計算は単一の加算しか必要とせずそして多数のピクセルを並列に動作させることができるので、非常に効率的なアーキテクチャを案出することができる。シャドー及び透明なオブジェクトも処理することのできる1つの考えられるアーキテクチャを、図4について説明する。
【0027】
本発明を実施するプロセッサの内部のコアは、パイプライン構成された一連の同じセルで構成される。セルの典型的な個数は32ないし64である。2つのこのようなセルが図6に示されている。各セルは単一のピクセルについて機能し、そして隣接するセルは隣接ピクセルについて機能する。即ち、
セルNは、ピクセル(x,y)を処理し、
セルN+1は、ピクセル(x+1,y)を処理し、そして
セルN+2は、ピクセル(x+2,y)を処理する。
【0028】
これは、図6に示すように、セルの上部によって達成される。特定の面に対して、パラメータAが各サイクルの始めにレジスタ10に入れられ、そしてAxs+Bys+Cを表す深度パラメータが各サイクルの始めにレジスタ12に入れられる。これら2つの値は加算器14において合成され、水平に隣接するピクセルに対する新たな深度パラメータ2Axs+By+Cを生じ、これは、次のセルのレジスタ12に入れられる。又、パラメータAは、次のセルの対応するレジスタ10にも入れられる。次のセルにおけるレジスタ10及び12の値は、対応する加算器14において合成され、その出力は、パイプラインの次のセルのレジスタ12への入力を形成する。
【0029】
種々のオブジェクトを定める面はリストとして記憶され、順次に処理される。これらの面は、それが定めるオブジェクトに関してグループ分けされ、そして全ての前方面がそのグループのスタート時の基礎となり、その後に逆向きの面が続くというような順序にされる。これを以下に示す。
オブジェクトN+1の面 M+9逆向き面
オブジェクトN+1の面 M+8逆向き面
オブジェクトN+1の面 M+7前方面
オブジェクトN+1の面 M+6前方面
オブジェクトNの面 M+5逆向き面
オブジェクトNの面 M+4逆向き面
オブジェクトNの面 M+3逆向き面
オブジェクトNの面 M+2前方面
オブジェクトNの面 M+1前方面
オブジェクトNの面 M前方面
【0030】
各面を定めるパラメータA、B及びCは、他の面のアトリビュートを含むオペレーションコードと共に記憶される。これらの1つは、面を陰影付けするためにルックアップテーブルのインデックスとして使用される面タグである。或いは、このタグは、その面に対する実際のR、G、B値を含むこともできる。オペレーションコードの更に別の情報がプロセッサによって使用されて、各面で何を行うべきかが判断される。コードに含まれる情報の形式は、次の通りである。
新たなオブジェクトのスタート
前方又は逆向きの面
全場面に対する面データの開始
全場面に対する面データの終了
シャドーオブジェクト
透明オブジェクト
【0031】
この情報は、セルのレジスタ28へ送られて記憶される制御信号によって表される。そこから必要に応じてアクセスされる。
【0032】
新たなオブジェクトのスタートにおいて、処理されているピクセルに対しそのオブジェクトの第1の面の深度が深度内レジスタ18に記憶される。面のシェードのような面タグデータは、タグ内レジスタ22に記憶される。それと同時に、手前のオブジェクトからの手前の深度内の値が深度間レジスタ16の値と比較され、このレジスタは、処理されているピクセルに対し処理された目に見える面の深度を記憶する。深度内の値がそのピクセルに対する深度間よりも大きい場合には、深度内レジスタの値が深度間レジスタ16に転送される。従って、システムは、オブジェクトの面の処理の終了と共に、そのオブジェクトの最も近い目に見える面を、その特定のピクセルに対して場面内でそれまでに検出されている最も近い目に見える面と比較する。必要に応じて、レジスタ16が更新される。
【0033】
深度内の値を深度間の値と比較するために、MUX24を用いて、レジスタ16の出力が比較器26の入力の一方へと切り換えられ、その他方の入力はレジスタ18の出力を受け取る。
【0034】
単一のオブジェクトの面が処理されている間に、MUX24はレジスタ28に入れられた制御信号によって制御されて、レジスタ12及びレジスタ18を比較器26の入力に接続する。前方面に対し、現在の面深度が深度内の値より大きい場合には、深度内抵抗が同一に保たれる。逆向き面の場合には、逆の動作が生じる。従って、オブジェクトの処理の始めに、深度内レジスタは、その手前のオブジェクトから目までの最も近い面を含んでいる。全てのオブジェクトが処理された後に、タグ内及び深度内レジスタは、セルが機能しているピクセルに対し目までの最も近い面を定めるデータを含む。
【0035】
ルール発生器30は、目に見えるより近い面が検出されたときに深度間レジスタ16及びタグ間レジスタ32に対して更新を行うのに使用される。
【0036】
幾つかのオブジェクトをシャドーボリュームとしてフラグを立てることによりシステムによって影がレンダリングされる。シャドーボリュームは、点光源から照射されるオブジェクトのシルエットエッジによってスイープされるスペースの領域である。このボリューム内のオブジェクトは、影に入ると考えられる。
【0037】
シャドーオブジェクトは、立体オブジェクトと同様に処理される。全てのシャドー及び非シャドーオブジェクトが処理されたときには、ピクセルに指定された面が影に入るかどうかを決定することは簡単である。これは、その面の位置をシャドーオブジェクトの最も遠い前方面及び最も近い逆向き面と比較しそして目に見える面がその範囲内にあるかどうかチェックすることにより行われる。もしそうであれば、その面に関連したフラグがセットされて、その陰影付けの効果をシュミレーションするためにそのシェード又はカラーの変更を行う必要があることを指示する。システムは、2つ以上の点光源からの照射、ひいては、2つ以上の影シェードを取り扱うに充分な融通性をもたせることができる。
【0038】
図6の回路において、シャドーオブジェクトは、全ての前方面が処理された後に、深度内レジスタ18が深度間レジスタ16と比較されるという点で、若干異なるように取り扱われる。深度内の値が深度間の値よりも大きい場合には、タグ間レジスタ32においてフラグがセットされる。全ての逆向き面が処理された後に、深度内の値が深度間の値と再び比較される。深度内の値が深度間の値より大きい場合は、フラグがクリアされる。影を投げることのできる各光源ごとに1つのフラグが設けられる。全てのシャドーオブジェクトを処理した後に、いずれかのシャドーフラグがセットされた場合には、そのピクセルの面のカラーが、影の状態をシュミレーションするように変更される。これら全ての動作は、図6のルール発生器によって行われる。これは、全ての制御信号を受信し、そして充分な選択ロジックを介して、更新のためにレジスタを選択的にイネーブルする。
【0039】
システムは、透明度、特に吸収透明度を取り扱うことができる。これは、光線が透明なオブジェクトを通過するときに特定の波長においてエネルギーを失い、これにより、光線の色を変化させるような状態である。
【0040】
吸収効果は、あるオブジェクトを透明であるとフラグを立てることにより刺激される。これらは、不透明なオブジェクトの後に処理される。透明なオブジェクトは、通常のルール内セットによって処理される。特定のピクセルに対し、そのピクセルにおける目に見える面の前に透明オブジェクトが現れた場合には、この状態を指示するためにフラグがセットされる。フラグがセットされた場合には、そのピクセルの面の色が、透明度をシュミレーションするように変更される。透明なオブジェクトの厚みを導出し、そのピクセルの色に対して更に別の適当な変更を行うように更に別のソフトウェアを設けることができる。
【0041】
この方法は、全く透明なオブジェクトに対して使用される。しかしながら、オブジェクトの1つの面を目に見えないようにすることができ、例えば、チューブにすることができる。従って、閉じていない凸状の体積が形成される。この形式の構成を作るために、オブジェクトが処理された後に、逆向き面が再び通過される。前方面がピクセルにおいて目に見えるものであり、そして目に見えないフラグをセットした場合には、その深度及びタグ値が、観察点に最も近い逆向き面と置き換えられる。これは、次いで、全ての更に別の動作に対し前方面として分類される。逆向き面も目に見えない場合に、その面は逆向き面のままとされ、深度動作においてそれ以上の部分を持たない。従って、開放端円筒が形成される。
【0042】
図6の回路において、透明なオブジェクトが処理されたときに、内部ルールは同じままである。しかしながら、透明の深度内の値が深度間レジスタに対して比較されるときには、深度間の値は常に同じままである。透明な深度内の値が深度間の値より大きい場合には、タグ内においてフラグがセットされる。次いで、これを用いて、後で色を変更し、透明度をシュミレーションすることができる。
【0043】
図7は、40で示された図6の複数のセルを含む簡単なプロセッサを示している。全部でM個のセルがカスケード構成にされ、典型的にMは32に等しい。メモリ42は、表示されるべき像の各面を表す値A、B及びCを記憶する。レジスタ44は、処理されるべき像の各ブロックの始めにX及びYの値を記憶する。
【0044】
処理の始めに、表示されるべき第1オブジェクトの第1面の値A、B及びCがメモリからの出力に供給される。値Aは、乗算器46において初期X座標即ちブロックの第1ピクセルによって乗算され、そして加算器48の入力として送られる。それに対応する値Bは、乗算器50において処理されるべきピクセルの第1行のYの値によって乗算され、その出力は加算器48の別の入力を形成し、そして値Cは、加算器48の入力に直接送られる。
【0045】
加算器の出力は、第1ピクセルにおける第1面の深度値を表す。これは、第1のセル40に供給される。
【0046】
第1のセル40において、深度間及び深度内レジスタ16及び18は、どちらも最初は0にセットされ、従って、この初期深度値は両方のレジスタに対して読み取られる。又、パラメータAは、セル40に直接的にも供給され、そこで、加算器14において初期深度値と合成される。
【0047】
次のクロックサイクルに、パラメータAは、第2のセルのレジスタ10に送られ、そして加算器14によって供給される更新された深度値がレジスタ12に送られる。それと同時に、処理されているオブジェクトの次の面に対するパラメータA、B及びCが乗算器46及び50によって加算器48に供給され、そしてそこから深度値が第1セルに供給され、このセルは、第2面の深度を第1面の深度と比較し、そして深度内レジスタ18に記憶されている現在値との比較に基づくと共に、その新たな面及び既存の面が前方面であるか逆向き面であるかに基づいて、深度内レジスタ18に記憶された値を更新する。レジスタが更新された場合には、面アトリビュートを記憶するタグ内レジスタ22も更新される。
【0048】
オブジェクトに対する面のリストの終わりに、深度内レジスタの値が深度間レジスタの値と比較され、後者のレジスタをより近い目に見える面で更新すべきかどうか調べる。
【0049】
このプロセスは、オブジェクトの全ての面がセル40のアレーに通されるまでこれらの面に対して続けられる。オブジェクトの最後の面がメモリ42によって送られてしまうと、次のオブジェクトの第1面が送られる。従って、セル40に送られる面の連鎖に途切れはない。
【0050】
全てのオブジェクトの全ての面が処理されると、レジスタ44のX部分は、プロセッサ内のセルの数であるMだけ増加され、例えば、32だけ増加される。次いで、オブジェクトの全リストが、セルの新たなブロックに対して再び逐次処理される。このプロセスは、ピクセルのライン全体が処理されるまで続けられ、その点において、レジスタ44のY部分が1だけ増加されそしてX部分が、処理されるべきデータの次のラインの開始を表すその初期値にリセットされる。レジスタ44のX及びY部分を増加するための接続は、図7には示さない。
【0051】
出力画像の質を向上するためにシステムに対して種々の拡張を行うことができる。これらについて、以下に説明する。
【0052】
アンチエリアジング
アンチエリアジングは、マルチパス技術を用いて非常に簡単に得ることができる。この方法では、各オブジェクトは何回も処理される。オブジェクトが処理されるたびに、その位置がピクセル以下の量だけ変更され、ピクセルカラーがパスの上に蓄積される。パスの終わりに、最終カラー値がパスの回数で除算される。行われるパスの回数は、必要とされる最終的な像の質に基づく。例えば、1/2ピクセル精度が要求される場合には、4回のパスが行われ、そのたびに半ピクセル増分だけオブジェクトが移動される。従って、射線はピクセルの各四半分を通して効率的に投影され、その結果が平均化される。
【0053】
ソフトシャドー
ソフトシャドーは、点光源ではない光を用いることによって生じ、従って、面上の点は、光の一部分のみを見る。半影に対応する部分的に不鮮明な光を見ることから本影に対応する完全な暗黒を見ることへの移行は、影にソフトな縁を生じさせ、影の縁のアンチエリアジングが必要とされる。
この効果は、シャドーボリュームを形成するのに使用される光の点をパス間で移動するようなマルチパス技術によってシュミレーションすることができる。その結果がパス間で累積され、最終的なカラー値が、行ったパスの回数で除算される。
【0054】
視野の深度
カメラからの距離の関数としてオブジェクトの焦点が合ったりぼけたりする視野の深度は、人間の目の視野ではなくて、カメラの視野を模擬するものである。この効果も、マルチパス解決策を用いて達成することができる。これを行うために、A及びBのパラメータがパス間で若干変更され、前記のように結果が累積される。
【0055】
動きのぼけ
動きのぼけは、カメラと場面との間の相対的な動きの効果を模擬するものであり、一時的なアンチエリアジングの実用的な方法である。この効果は、マルチパス解決策によっても形成される。ぼけさせるべきオブジェクトはパス間に移動され、前記の場合と同様に結果が累積される。
【0056】
カーブした面
順方向微分技術を用いることによりカーブした面を処理するようにアルゴリズムを拡張することができる。各面に関連した3つのパラメータのみをもつのではなく、ここでは、例えば、二次及び三次導関数があって、これらも累積される。これは、二次及び三次曲線面を再現することができ、従って、よりリアルな像を形成することができる。
【0057】
構造上の立体形状
ルール発生器、並びに前方及び逆向きの両方の深度を記憶する特別なレジスタへと拡張すると、CSGブールプリミティブの幾つかを実施することができる。これは、例えば、2つのオブジェクトを互いに差し引きすることができる。従って、オブジェクトから小さな立体を差し引くことにより穴をもつオブジェクトを形成することができる。
【0058】
目点交差
目点を直接通るように面を方向付けする状態では、ゼロで除算する状態、即ちシルエットの縁において生じる状態が存在する。従って、面は、正の無限大から単一ピクセルを横切って負の無限大へと進まねばならない。これは、ここに述べるシステムでは不可能であるから、この状態を避けるように面を擾乱しなければならない。しかしながら、このような擾乱は、この面により形成されたシルエットの縁が動くように見えることになり、像のリアルさを低減する。
【0059】
面にフラグを立ててそれが目点を通ることを指示することにより、この問題を取り除くことができる。フラグがアサートされそして面が正の深度を有するときには、システムによって許容された最大値に深度がセットされる。フラグがアサートされそして面が負の深度を有するときには、システムにより許容された最小深度値に深度がセットされる。従って、面は、1つのピクセルにおいて最大深度から最小深度へ進むことができる。
【0060】
性能の向上
ここに提案するアーキテクチャの性能は、セルの個数を増加することによって非常に容易に向上させることができる。上記例では32個のセルが使用された。しかしながら、256個又はそれ以上のセルが使用できない理由はない。セルの総数は、使用すべき技術が与えられた場合、コストと性能との間の妥協となる。又、ここに提案した多数の装置を互いにカスケード構成にして性能を向上させることも非常に容易である。これは、多数の装置をパイプライン構成にするか又は並列に動作させるか或いはその両方の組み合わせによって行うことができる。
【0061】
上記と組み合わせることのできる更に別の方法は、その場面にもはや必要ないことが検出されたときにオブジェクトを廃棄することである。これに必要なことは、視野がオブジェクト内に入ったときにセットされそして視野がもはやオブジェクトにないときにクリアされるフラグを設けることだけである。フラグがクリアされると、そのオブジェクトは、そのラスタ線に対する処理においてそれ以上の部分を担わない。
【0062】
システムアーキテクチャ
本発明のアーキテクチャを用いたシステムが図8に示されている。このシステムは汎用マイクロプロセッサ52を備え、これはゲームポートのようなインターフェイスと通信する。マイクロプロセッサ52は、32ビットバスを経て本発明による複数のプロセッサ54と通信する。バスが接続された第1プロセッサは、2つのバスを経て、場面の全ての面座標が記憶されたパラメータ記憶及びメインメモリへも接続される。これは、異なる場面に関するデータで更新することのできるランダムアクセスメモリである。
【0063】
各プロセッサ54のメインコアは、図6及び7について説明したセルのアレーであり、図9に更に詳細に示されている。
【0064】
図9には、パラメータ記憶及びメインメモリと、マイクロプロセッサ52のプロセッサポートとにインターフェイスするメモリコントローラ56が示されている。セルアレー40、乗算器46及び50、加算器48は、図7に示されたものに対応し、X及びYのスタート値はコントロールレジスタ58によって供給される。又、コントロールレジスタ58は、メモリコントローラにも制御信号を供給し、これは、次いで、適当な制御信号を面アトリビュートと共にセル40に供給する。
【0065】
先入れ先出し(FIFO)レジスタ60は、マルチプレクサ62を経てセル40の出力に接続され、そして処理された値を累積するのに使用され、従って、プロセッサの出力をセルから減結合する。ピクセルアキュムレータ64は、上記の種々のマルチパス技術を実施できるように設けられている。
【0066】
図9の出力は、ピクセルデータをフレームバッファに供給するための高性能バスに接続することもできるし、或いはデジタル/アナログコンバータに直結されてディスプレイユニットに供給することもできる。このユニットへの入力は、ジョイスティック、ROMカートリッジ及び他のゲーム入力装置にインターフェイスするゲーム型ポートであってもよいし、或いはIBM PCバスインターフェイスのようなホストコンピュータインターフェイスであってもよい。
【0067】
メモリコントローラ57は、プロセッサポートから送られる信号に応答して、処理されている場面において回転や並進移動等の機能を実行できる。
【0068】
図9に示す回路は全て単一のチップで供給することができる。或いは又、この回路の一部分のみを単一のチップに設けることもできる。
【図面の簡単な説明】
【図1】本発明によるシステムの概略ブロック図である。
【図2】本発明の実施例により操作及びレンダリングされる形状を示す図である。
【図3】本発明の実施例により操作及びレンダリングされる形状を示す図である。
【図4】本発明の実施例により操作及びレンダリングされる形状を示す図である。
【図5】オブジェクトの2本の射線/面の交差の断面図で、本発明の実施例を示す図である。
【図6】本発明によるパイプラインプロセッサの2つのセルを示す図である。
【図7】本発明によるプロセッサのブロック図である。
【図8】本発明によるプロセッサを用いたシステムを示す図である。
【図9】図8のプロセッサのアーキテクチャーを示すブロック図である。
【符号の説明】
2 3次元(3D)像合成パイプライン
4 3Dデータベース
6 形状プロセッサ
8 観察点
10、12 レジスタ
14 加算器
16 深度間レジスタ
18 深度内レジスタ
22 タグ内レジスタ
24 MUX
26 比較器
30 ルール発生器
32 タグ間レジスタ
Claims (10)
- スクリーン上に表示するための3次元像を陰影付けする方法において、
該3次元像における各オブジェクトを表す1群の多数の無限面を定めるデータを、像平面の各基礎領域(p2)について供給する工程と、
交差する射線を観察点(p1)から前記基礎領域を経て前記3次元像に投影する工程と、
交差する各面について該面の前記像平面からの距離に基づいて深度値(1/u)を発生させる工程と、
いずれかの面の前記基礎領域で見えるかどうかを、生成された前記深度値に基づいて決定する工程と、
前記決定の結果に基づいて前記基礎領域を陰影付けする工程と、
を備えており、
前記深度値1/uは、次の式で表され、
1/u=n(p2−p1)/(k−n.p1)
ここで、nは、原点に向いた面に対する単位直角ベクトルであり、
kは、面から原点への垂直距離であり、
p1は、原点から観察点までの距離であり、
p2は、像平面上の基礎領域の中心における射線上の点であり、
uは、射線に沿ってどれほど遠くで面との交差が生じるかの尺度であり、
前記各面は、前方を向いた面または逆方向を向いた面として指定され、前記前方を向いた面は、その面に直角な線が観察点を向くような面であり、前記逆方向を向いた面は、その反対の面であり、
前記深度値に基づいて決定する工程は、最も遠い前方を向いた面についての深度値が最も近い逆方向を向いた面についての深度値よりも小さい場合には、該面が基礎領域で見えるものと決定する、
ことを特徴とする方法。 - 各基礎領域について、深度値は、前記3次元像における各オブジェクトを表す各群の面を通して順次決定される請求項1に記載のスクリーン上に表示するための3次元像を陰影付けする方法。
- 各基礎領域について、深度値は、オブジェクトを表す各群の面における各面について決定される請求項2に記載のスクリーン上に表示するための3次元像を陰影付けする方法。
- オブジェクトを表す1群の面における最も近い目に見える面をその手前のすべての群の面からの最も近い目に見える面と比較し、該比較の結果に基づいて前記基礎領域を陰影付けする請求項2または請求項3に記載のスクリーン上に表示するための3次元像を陰影付けする方法。
- オブジェクトをシャドーオブジェクトとして指定する工程と、
該シャドーオブジェクトの境界を決定する工程と、
前記基礎領域において見える面が前記シャドーオブジェクトの前記境界内にある場合には、変更したシェードで基礎領域を陰影付けする工程と、
を備えた請求項1から請求項4のいずれかに記載のスクリーン上に表示するための3次元像を陰影付けする方法。 - オブジェクトを透明なオブジェクトとして指定する工程と、
前記基礎領域において目に見える面が前記3次元像における前記透明なオブジェクトの後方にある場合には、基礎領域に適用されるシェードを変更する工程と、
を備えた請求項1から請求項5のいずれかに記載のスクリーン上に表示するための3次元像を陰影付けする方法。 - スクリーン上に表示するための3次元像を陰影付けする装置において、
該3次元像における各オブジェクトを表す1群の多数の無限面を定めるデータを供給する手段と、
交差する射線を観察点(p1)から像平面の各基礎領域(p2)を経て前記3次元像に投影する手段と、
交差する各面について該面の前記像平面からの距離に基づいて深度値(1/u)を発生させる手段と、
いずれかの面が前記基礎領域で見えるかどうかを、生成された前記深度値に基づいて決定する手段と、
前記決定の結果に基づいて前記基礎領域を陰影付けする手段と、
を備えており、
前記深度値1/uは、次の式で表され、
1/u=n(p2−p1)/(k−n.p1)
ここで、nは、原点に向いた面に対する単位直角ベクトルであり、
kは、面から原点への垂直距離であり、
p1は、原点から観察点までの距離であり、
p2は、像平面上の基礎領域の中心における射線上の点であり、
uは、射線に沿ってどれほど遠くで面との交差が生じるかの尺度であり、
前記各面は、前方を向いた面または逆方向を向いた面として指定され、前記前方を向いた面は、その面に直角な線が観察点を向くような面であり、前記逆方向を向いた面は、その反対の面であり、
前記深度値に基づいて決定する手段は、最も遠い前方を向いた面についての深度値が最も近い逆方向を向いた面についての深度値よりも小さい場合には、該面が基礎領域で見えるものと決定する、
ことを特徴とする装置。 - 各基礎領域における各オブジェクトについて、前記3次元像における見える面の相対的な深度を比較し、前記比較の結果に基づいて前記基礎領域を陰影付けする手段を含む請求項7に記載のスクリーン上に表示するための3次元像を陰影付けする装置。
- 前記深度値を発生させる手段は、前記3次元像における各基礎領域について、各オブジェクトの各面についての深度値を順次発生させる請求項7または8に記載のスクリーン上に表示するための3次元像を陰影付けする装置。
- 単一集積回路に設けられた請求項7または8または9に記載のスクリーン上に表示するための3次元像を陰影付けする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9315852:5 | 1993-07-30 | ||
GB939315852A GB9315852D0 (en) | 1993-07-30 | 1993-07-30 | Shading three-dimensional images |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07152926A JPH07152926A (ja) | 1995-06-16 |
JP3759971B2 true JP3759971B2 (ja) | 2006-03-29 |
Family
ID=10739738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17857794A Expired - Lifetime JP3759971B2 (ja) | 1993-07-30 | 1994-07-29 | 3次元像を陰影付けする方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5596685A (ja) |
JP (1) | JP3759971B2 (ja) |
GB (2) | GB9315852D0 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08329276A (ja) * | 1995-06-01 | 1996-12-13 | Ricoh Co Ltd | 3次元グラフィックス処理装置 |
US6359624B1 (en) * | 1996-02-02 | 2002-03-19 | Kabushiki Kaisha Toshiba | Apparatus having graphic processor for high speed performance |
GB9717656D0 (en) | 1997-08-20 | 1997-10-22 | Videologic Ltd | Shading three dimensional images |
GB2343602B (en) † | 1998-11-06 | 2003-03-19 | Videologic Ltd | Shading 3-dimensional computer generated images |
GB2343600B (en) * | 1998-11-06 | 2003-03-12 | Videologic Ltd | Depth sorting for use in 3-dimensional computer shading and texturing systems |
JP2000163601A (ja) * | 1998-11-24 | 2000-06-16 | Sega Enterp Ltd | 画像処理装置、画像処理方法および記録媒体 |
GB2354416B (en) * | 1999-09-17 | 2004-04-21 | Technologies Limit Imagination | Depth based blending for 3D graphics systems |
JP4803909B2 (ja) * | 2001-06-21 | 2011-10-26 | 株式会社バンダイナムコゲームス | 画像生成システム、プログラム及び情報記憶媒体 |
GB2378108B (en) * | 2001-07-24 | 2005-08-17 | Imagination Tech Ltd | Three dimensional graphics system |
GB2383248B (en) * | 2001-12-14 | 2005-12-07 | Imagination Tech Ltd | 3-dimensional computer graphics system |
US7092558B2 (en) * | 2002-08-14 | 2006-08-15 | General Electric Company | Automated optimization of medical 3D visualizations |
EP1576545A4 (en) * | 2002-11-15 | 2010-03-24 | Sunfish Studio Llc | SYSTEM AND METHOD FOR VISIBLE SURFACE DETERMINATION, USED IN INFOGRAPHY, USING INTERVAL ANALYSIS |
JP4193979B2 (ja) * | 2003-03-17 | 2008-12-10 | 任天堂株式会社 | シャドウボリューム生成プログラム及びゲーム装置 |
US7406123B2 (en) * | 2003-07-10 | 2008-07-29 | Mitsubishi Electric Research Laboratories, Inc. | Visual complexity measure for playing videos adaptively |
US20050134588A1 (en) * | 2003-12-22 | 2005-06-23 | Hybrid Graphics, Ltd. | Method and apparatus for image processing |
JP4327175B2 (ja) | 2005-07-12 | 2009-09-09 | 株式会社ソニー・コンピュータエンタテインメント | マルチグラフィックプロセッサシステム、グラフィックプロセッサおよび描画処理方法 |
GB0524804D0 (en) | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
GB2449399B (en) | 2006-09-29 | 2009-05-06 | Imagination Tech Ltd | Improvements in memory management for systems for generating 3-dimensional computer images |
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 |
JP4670887B2 (ja) * | 2008-03-31 | 2011-04-13 | ソニー株式会社 | 画像処理装置 |
GB0900700D0 (en) | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
GB201004675D0 (en) | 2010-03-19 | 2010-05-05 | Imagination Tech Ltd | Memory management system |
US9171396B2 (en) * | 2010-06-30 | 2015-10-27 | Primal Space Systems Inc. | System and method of procedural visibility for interactive and broadcast streaming of entertainment, advertising, and tactical 3D graphical information using a visibility event codec |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US10204391B2 (en) | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
KR20160047316A (ko) * | 2014-10-22 | 2016-05-02 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
GB2553744B (en) | 2016-04-29 | 2018-09-05 | Advanced Risc Mach Ltd | Graphics processing systems |
CN108736993B (zh) * | 2017-04-17 | 2022-01-25 | 中兴通讯股份有限公司 | 一种可见面判定方法、反向射线追踪方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4862392A (en) * | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
US4967375A (en) * | 1986-03-17 | 1990-10-30 | Star Technologies, Inc. | Fast architecture for graphics processor |
WO1988002156A2 (en) * | 1986-09-11 | 1988-03-24 | Hughes Aircraft Company | Digital simulation system for generating realistic scenes |
JPH0769972B2 (ja) * | 1987-07-16 | 1995-07-31 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | 画像生成方法 |
US5088054A (en) * | 1988-05-09 | 1992-02-11 | Paris Ii Earl A | Computer graphics hidden surface removal system |
JPH0727581B2 (ja) * | 1988-09-09 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 図形処理装置 |
US5142617A (en) * | 1988-10-27 | 1992-08-25 | Tektronix, Inc. | Method of shading a graphics image |
GB8828342D0 (en) * | 1988-12-05 | 1989-01-05 | Rediffusion Simulation Ltd | Image generator |
US5101475A (en) * | 1989-04-17 | 1992-03-31 | The Research Foundation Of State University Of New York | Method and apparatus for generating arbitrary projections of three-dimensional voxel-based data |
US5027292A (en) * | 1989-04-19 | 1991-06-25 | International Business Machines Corporation | Multiple depth buffers for graphics and solid modelling |
US5226113A (en) * | 1989-10-30 | 1993-07-06 | General Electric Company | Method and apparatus for volumetric projection rendering using reverse ray casting |
EP0459761A3 (en) * | 1990-05-31 | 1993-07-14 | Hewlett-Packard Company | Three dimensional computer graphics employing ray tracking to compute form factors in radiosity |
JPH07122908B2 (ja) * | 1991-03-12 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 |
GB2259432A (en) * | 1991-09-06 | 1993-03-10 | Canon Res Ct Europe Ltd | Three dimensional graphics processing |
US5377313A (en) * | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
JP3426647B2 (ja) * | 1992-06-24 | 2003-07-14 | 日本電信電話株式会社 | 3次元トポグラフィシミュレーションのための一般化されたソリッドモデリング |
US5355442A (en) * | 1992-12-16 | 1994-10-11 | Loral Aerospace Corp. | Terrain visualization by ray tracing a conical height field transformation |
-
1993
- 1993-07-30 GB GB939315852A patent/GB9315852D0/en active Pending
-
1994
- 1994-07-22 GB GB9414834A patent/GB2281682B/en not_active Expired - Lifetime
- 1994-07-26 US US08/280,649 patent/US5596685A/en not_active Expired - Lifetime
- 1994-07-29 JP JP17857794A patent/JP3759971B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB2281682B (en) | 1995-10-25 |
US5596685A (en) | 1997-01-21 |
JPH07152926A (ja) | 1995-06-16 |
GB9414834D0 (en) | 1994-09-14 |
GB9315852D0 (en) | 1993-09-15 |
GB2281682A (en) | 1995-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3759971B2 (ja) | 3次元像を陰影付けする方法 | |
US5729672A (en) | Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces | |
US8115763B2 (en) | Device for the photorealistic representation of dynamic, complex, three-dimensional scenes by means of ray tracing | |
US11069124B2 (en) | Systems and methods for reducing rendering latency | |
US6744430B1 (en) | Image processing method and its apparatus | |
Westermann et al. | Efficiently using graphics hardware in volume rendering applications | |
US7948487B2 (en) | Occlusion culling method and rendering processing apparatus | |
US7812837B2 (en) | Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method | |
US20080122838A1 (en) | Methods and Systems for Referencing a Primitive Located in a Spatial Index and in a Scene Index | |
EP0840915A1 (en) | Method and apparatus for span sorting rendering system | |
WO1997005576A9 (en) | Method and apparatus for span and subspan sorting rendering system | |
US10553012B2 (en) | Systems and methods for rendering foveated effects | |
US20190318528A1 (en) | Computer-Graphics Based on Hierarchical Ray Casting | |
US20230230311A1 (en) | Rendering Method and Apparatus, and Device | |
KR910009102B1 (ko) | 화상합성 장치 | |
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 | |
Vyatkin et al. | Voxel Volumes volume-oriented visualization system | |
US20090284524A1 (en) | Optimized Graphical Calculation Performance by Removing Divide Requirements | |
JP3629243B2 (ja) | モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法 | |
EP0725365B1 (en) | Method and apparatus for shading three-dimensional images | |
Rohmer et al. | Tiled frustum culling for differential rendering on mobile devices | |
KR100372901B1 (ko) | 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법 | |
JPH09305791A (ja) | 立体画像生成装置および立体画像生成方法 | |
CN116993894B (zh) | 虚拟画面的生成方法、装置、设备、存储介质及程序产品 | |
KR0164160B1 (ko) | 그래픽 처리장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050711 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060106 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090113 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110113 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110113 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120113 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130113 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130113 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |