JPH0581438A - 三次元ソリツド対象物を表現する表示可能情報を発生する装置と方法 - Google Patents

三次元ソリツド対象物を表現する表示可能情報を発生する装置と方法

Info

Publication number
JPH0581438A
JPH0581438A JP4002910A JP291092A JPH0581438A JP H0581438 A JPH0581438 A JP H0581438A JP 4002910 A JP4002910 A JP 4002910A JP 291092 A JP291092 A JP 291092A JP H0581438 A JPH0581438 A JP H0581438A
Authority
JP
Japan
Prior art keywords
depth
primitive
point
stored
reference plane
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
JP4002910A
Other languages
English (en)
Other versions
JPH07122908B2 (ja
Inventor
David A Epstein
デービツド・アレキサンダー・エプスタイン
Jaroslaw R Rossignac
ジヤロスロウ・ロマン・ロシグナツク
Jeffrey W Wu
ジエフレイ・ウエンフオン・ウー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0581438A publication Critical patent/JPH0581438A/ja
Publication of JPH07122908B2 publication Critical patent/JPH07122908B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【目的】 三次元のソリッド対象物を表現する表示可能
情報を発生する装置と方法とを提供する。 【構成】 1つ以上のプリミティブ対象物からなるよう
に対象物をCGS表示法で表現するプロセッサ12、1
6と、1つ以上のプリミティブ対象物を繰り返し評価し
てその表示可能面を決定するプロセッサ18、20とが
設けられる。深度間隔バッファ20が、スキャン変換プ
ロセッサ18の動作に応答して表示可能面の決定におい
て何ら変化をもたらすことなく、かつ評価プロセッサの
動作を終了させることなく所定数の繰返し評価の発生す
るときを検出する。ダングリング面やエッジを除去し、
一致した面を適正に扱うように公差を付した深度試験が
用いられる。深度試験の精度を向上させ、かつ製品から
の上に投影するピクセルを識別するためにピクセル中心
付けが採用される。補助シャドウバッファZSを用いる
2パススキャン変換技術を用いてシャドウイングを達成
する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にはコンピュー
タディスプレイ装置と方法とに関し、特にコンストラク
ティブ・ソリッド・ジオメトリ(CGS)式を提供する
装置と方法とに関する。
【0002】
【従来の技術】例えばパートあるいはツールを表示する
ソリッドモデルは例えば合併、交差およびセットの差の
ようなセットされた論理的ブール演算を介してサブソリ
ッドあるいはプリミティブボリュームを組み合わせるこ
とにより特定化しうる。ソリッドは、バイナリツリー表
示、即ちより正確にはバイナリ指向のルーテッド・アシ
クリック・グラフ(rooted acyclic g
raph)の形でコンピュータメモリ内に効率的に記憶
しうるセットされた論理的ブール式により表示される。
【0003】図1は2個のサブソリッド2および3の合
併からなるソリッド1のバイナリツリー表示を示す。サ
ブソリッド3はブロックプリミティブ4と円筒形プリミ
ティブ5との差から構成されている。そのようなツリー
の形態はブール式(2)+((4)−(5))を分解す
ることにより直接得られる。ツリー(ソリッド1)のル
ートは、ブール式によって定義されたソリッドと関連し
ている。ツリーの内部ノードは、ブール演算に対応し、
かつサブソリッドと関連している。ツリーのリーフは、
プリミティブボリュームと関連しており、プリミティブ
ボリュームは比較的単純な代数的半空間の交差、即ち、
3つの空間座標の単純な多項式関数が非正の値を有して
いる空間領域であることが多い。例えば、原点に中心付
けされた半径Rの球は、x2 +y2 +z2−r2 ≦0
の関数で定義される半空間である。任意に位置し、かつ
方向づけたプリミティブボリュームは、リジッドモーシ
ョン変換、回転と移行との組合せ、および都合のよい局
部座標系で定義された合同のプリミティブボリュームに
よって記述しうる。単純なプリミティブボリュームは、
例えば球、円筒体あるいは円錐体のようなそれらのタイ
プと、例えば半径、長さ、項角のような比較的少ない真
性パラメータによって表わすことができる。そのような
ツリーが、コンストラクティブ・ソリッド・ジオメトリ
表示として知られ、以下CSGと略記する。
【0004】プリミティブボリュームの位置および寸
法、即ち真性パラメータは、CSGツリーによって表示
されるソリッドの全体ファミリにおける特定のメンバを
特徴化する若干の主要パラメータによって表現しうる。
従って、その結果のパラメータ化したCSG表示を都合
よく用いて、例えばその寸法が許容限度内で変動するパ
ーツの組立体をモデル化することができる。
【0005】CSGの対象物は、その面が重なるプリミ
ティブから構成される。しかしながら、境界が重なった
ソリッドに対するブール演算により非規則化(non−
regularized)セットを作り出しうる。した
がって、CSG演算を常に規則化(regulariz
ed)されたソリッドを作るように都合よく修正してき
た。しかしながら、これらの修正は付加的な処理を必要
とする。
【0006】境界評価を介してCSGソリッドをシェー
ディングすることは一般的に高価なデータ処理手順であ
る。光線投影によりCSGモデルにシェーディングする
効率的で直接的な方法が、フアセット(facet)し
たモデルや、二次の半空間のブール組合せに対して使用
しうる。しかしながら光線投影は、多数の光線−表面交
差を計算することを含み、高次の代数あるいはパラメト
リックな表面が含まれる場合は特に非効率である。
【0007】面評価が光線−表面公差より速いという点
において、適応性のあるモザイクを用いるスキャン変換
技術が境界モデルのシェーディングに度々使用される。
モデルの可視面を自動的に選択するためにハードウェア
深度バッファ(zバッファ)が用いられる。CSGソリ
ッドの面は直接は利用できないので、ソリッド上に位置
するプリミティブ面の部分を選択するトリミング処理と
深度バッファ可視性試験を組み合せる必要がある。
【0008】この選択のソフトウエア実行は本発明の発
明者の一人によりハードウェア深度試験と組み合わされ
ており、J.R.RossignacおよびA.A.
G.Requichaによる1986年9月のIEEE
のComputerGraphics and App
licationsのvol.6,No.9の29〜3
9頁に記載の「Depth buffering di
splay techniques for cons
tructive solid qeometry」と
いう名称の論文に説明されている。この技術は、一般的
にプリミティブAの正面を向いた面上の点Pを対応する
ピクセルのzバッファに記憶された深度と比較すること
を含む。もしPがzバッファに記憶されているものの前
方にあるとすれば、それは「分類される」、即ちCSG
グラフに対して試験される。ソリッドの境界上の点はz
バッファに提供される。ソリッドの境界の内側あるいは
外側の点は棄てられる。ソリッドの内側の点はzバッフ
ァ可視性試験により自動的に不合格とされる。従って、
PをAのIゾーンに対して分類することによりグラフに
おけるあるプリミティブに対するPの試験を回避するこ
とにより性能が向上する。IゾーンはオリジナルのCS
Gグラフのノートのサブセットの交差である。もしPが
AのIゾーンの内側に位置しているとすれば、それは最
終のソリッド上が、最終ソリッドの内側に位置する。
【0009】スキャン変換法は、観察方向に沿って個々
のスクリーンピクセル上に投影される表面の点を発生さ
せる周知の技術である。観察者から離れる方向に観察方
向に沿って計算された三次元の点の深度は、対応するピ
クセルと関連したzバッファメモリに記憶しうる。その
深度があるピクセルのzバッファに記憶されている三次
元の点は、プリミティブの境界をスキャン変換し、かつ
試験されている点の後ろにあるプリミティブの表面の層
の数のパリティを計算することにより、プリミティブに
対して分類される。このことは、試験した点として同じ
ピクセル上に投影される表面の点の深度値をzバッファ
に記憶された値に対して比較することにより達成され
る。スキャンされた点の深度が、記憶された点より大き
い度毎にそのピクセルと関連したバイナリ・パリテイ・
フラッグが反転される。
【0010】CSG式に対してある点を分類するには、
その点を全てのプリミティブに対して分類するだけでは
十分ではない。点とプリミティブとの分類結果をさらに
ブール式に従って組み合わせる必要がある。例えば交差
のようなある単純なブール式に対しては、その結果をブ
ールの結果の論理積として公式化しうるので記憶は必要
でない。分離アルゴリズムはプリミティブをいずれの順
序で処理してもよく、結果の1つが「偽」であれば直ち
に停止する。このことは、例えば点がブール交差におけ
るプリミティブから外れていた場合にいえる。もし全て
のプリミティブが処理され、しかも「偽」という結果が
判明しないとすれば、点はブール式により定義されたソ
リッドの内側にある。
【0011】しかしながら、より複雑なCSG式を評価
することにより、中間のバイナリ結果に対して大量の一
時的な記憶が必要とされうるという点で問題を提起す
る。通常一時的な記憶に対してスタック機構が使用され
る。必要なスタックの深さはCSGグラフの深さに到達
しうる。
【0012】ピクセル当りのシステムメモリの量が制限
されているという点で、各ピクセルにおいて任意の深さ
のスタックを提供することは実用的でない。しかも、必
要なプリミティブスキャン変換の数を最小とするために
全てのピクセルに対して並列に分類演算を実行すること
が望ましい。
【0013】J.Goldfeather他による、1
989年5月刊IEEECG&A,vol.9,No.
3,20〜28頁の「Near Real−TimeC
SG Rendering using Tree N
ormalization and Geometri
c Pruning」という名称の技術は、CSG式
を、プリミティブインスタンス(instance)を
何回も重複しうることによって数個の積で現われる著し
く大きい積和形式へ変換することにより、メモリの限界
を回避している。冗長(空の)積を排除する技術も論じ
られている。 この技術においては、プリミティブ面
は、プリミティブスキャン変換を繰返し用いることによ
り適当な積に対してまずトリムされる。その結果のトリ
ムされた面は、次いで最終深度バッファを用いて併合さ
れ全ての積の間で最前方の面を選択する。可視表面選択
とソリッドに対して内側の面を棄てることの双方に対し
てzバッファが用いられる。
【0014】しかしながら、積は干渉し、従って積の前
面がソリッド上に位置しない可能性のあることが注目さ
れる。
【0015】その結果、CSG処理に対する投影方法に
関して積の可視前面を決定するための効率的かつ正確な
方法に対する必要性がある。深度バッファ比較がzバッ
ファの限定された分解能の範囲内で行われるという点に
おいて、数個のプリミティブの面が重なるか、あるいは
ピクセルの光線がそれらの共通のエッジに極めて近接し
て2つの隣接面を交差するといった状況を正確に対処す
る別の必要性がある。これらの場合の双方に対して、ス
キャン変換の丸めの誤差により、計算された深度値は正
確でないかもしれない。しかしながら、これらの固有の
不正確さにもかかわらず、CSG式の規則化したバージ
ョンに対応する表示可能のイメージを発生させる必要性
は残る。ソリッドは、それが三次元のユークリッド空間
に関するその内側の位相閉包に等しい場合規則化される
ものと考えられる。従って、規則化したソリッドは、定
義により何らダングリング(dangling)エッジ
あるいは面を有さない。このように、数個のプリミティ
ブ上に位置するが、最終結果においていずれの三次元ボ
リュームも境界付けしない面あるいはエッジは表示すべ
きでない。
【0016】以下の米国特許はイメージの表示またはC
SGあるいはこれらの双方の提供の種々局面を教示して
いる。T.Y.Shenへの米国特許第4,609,9
17号(1986年9月2日付)は、zバッファを用い
た一般に使用されるグラフイックアーキテクチャの変形
を開示している。A.P.Rockwoodへの米国特
許第4,625,289号(1986年11月25日
付)は、表面上の点が該表面を記述する関数をサンプリ
ングすることによって発生する面表示の方法を開示して
いる。サンプリングによってカバーされた各ピクセルに
対して観察者に最も近いサンプリングした点を見つける
ためにzバッファが採用されている。1988年4月5
日Christensen他に発行された米国特許第
4,736,306号においては境界からCSGへの変
換技術を開示している。1988年4月12日発行のG
oldwasser他への米国特許第4,737,92
1号においては、ピクセルデータを表示するためのマル
チプロセッサシステムを開示している。詳しくは、数台
のプロセッサによって並列に計算されるイメージ(強度
と深度)を併合するハードウエアアーキテクチャが提案
され、リアルタイムで個々のイメージを移動させる可能
性があり、またこのシステムにおいてシャドウイングプ
ロセッサも設けられている。1989年4月11日T.
W.Sederbergに発行された米国特許第4,8
21,214号においては三変量ベクトル有理多項式を
用いることによりモデルの自由形式変形を得る技術を開
示している。この方法はCSGソリッドモデリングシス
テムに適用可能といわれている。1989年4月25日
D.M.Merzに発行された米国特許第4,825,
391号において深度メモリの代りにスパン比較が用い
られている可視表面アーキテクチヤを開示している。1
989年8月8日J.Lopez他に発行された米国特
許第4,855,398号は多角形の可視線を表示する
方法を開示している。zバッファは、多角形の稜に対す
る特殊なz値で初期化される。多角形は、zバッファへ
ラスタ化され、依然として特殊なz値を有するピクセル
のみが適当に色付けされる。1990年3月6日C.P
riemに発行された米国特許第4,907,174号
は、どのグラフイック表示ウインドウにzバッファが専
用とされているかを識別するためにzバッファの一部に
おいてある範囲のz深度を使用することを開示してい
る。
【0017】最後に、1989年8月15日P.Qua
rendonに発行された米国特許第4,858,14
9号は、CSG対象物を提供するソリッドモデリングを
開示している。立方体がいずれのプリミティブの境界と
も交差しなくなるまで、あるいは立方体が現在の分解能
より小さくなるまで領域(ユニバース)が帰納的に段々
と小さい立方体に分解される。この特許は本発明により
解決された問題の解に関するものの、その方法は効率的
でなく、ハードウエア深度バッファを採用していない。
【0018】研究者は、プリミティブの面を、ある積に
おける全てのプリミティブの全ての前面と後面と比較す
ることによりプリミティブ面をトリミングするためハー
ドウエアアルゴリズムを実行した。各ピクセルにおいて
独立して比較が行われ、深度試験、マスク、計数および
各ピクセルで実行された論理ビット演算を含む。この技
術は単に2つの追加のバッファを用いるのみである。ア
ルゴリズムは、各ピクセルにおいてローカルメモリを備
えた1つのプロセッサを有するピクセル−パワーグラフ
ィックシステムにおいて実行されてきた。この方法は、
J.Goldfeather他による、1989年5月
のIEEE CG&A,vol.9,No.3、20〜
28頁に既に述べた論文「Near Real−Tim
e CSG Rendering using Tre
e Normalizationand Geomet
ric Pruning」に記載されている。
【0019】本発明者の中のある者を含むその他の研究
者は、積を処理するためのさらに効率的な技術を開発し
た。この技術は、「トリックル(trickle)」ア
ルゴリズムと称され、一般的に、Goldfeathe
r他の技術より少ないプリミティブスキャン変換および
バッファ併合演算を必要とする。その結果この技術は、
出現するグラフイックワークステーションで実行するの
により適したものと考えられている。トリックルアルゴ
リズムは、D.A.Epstein,F.W.Jans
enおよびJ.R.Rossignacによる1989
年11月のIBM Research Divisio
nのRC 15182(#67629)の研究報告「Z
−buffer Rendering from CS
G:the Trickle Algorithm」に
記載されている。
【0020】Goldfeather他により記述され
た技術と、Epstein他により記述された技術の双
方共、プリミティブの隠面の一連の層を発生させ、かつ
トリミングすることにより非凸状のプリミティブを処理
する。
【0021】トリックルアルゴリズムの重要な特徴は、
(観察者からは離れる方向で)前から後ろへの順序で各
ピクセルにおいて独立して製品のプリミティブ面を処理
することである。この順序により本技術では可視点即ち
バックグラウンドが製品の投影によりカバーされる各ピ
クセルに到来するやいなや所与の製品の処理を停止する
ことができるようにする。さらに、一方のプリミティブ
面層から別の層へ(観察者から離れる方向に)「より深
く」動いている間にトリックルアルゴリズムは、製品に
おける少なくとも1つのプリミティブから外れているの
で、製品上に位置できないことが明らかなプリミティブ
−面層を有利にスキップする。
【0022】トリックルアルゴリズムは3つの、深度お
よび強度バッファを用いている。これらは、可視表面選
択に使用される標準的な深度および強度バッファと、2
つの深度バッファと2つの強度バッファとに複合した1
つの付加的な深度−強度バッファとである。トリックル
アルゴリズムは、スクリーンの各象限に対して1度、4
つのパスを通るように構成しうることを注目すべきであ
る。スクリーンを4象限に分割することによって、グラ
フィックワークステーションで通常使用しうる1つの深
度バッファと2つの強度バッファという標準的な構成に
対してさえも、トリックルアルゴリズムに対して十分な
バッファを提供する。
【0023】
【発明が解決しようとする課題】従って本発明の目的
は、CSG表示ソリッドの処理をさらに改良するために
トリックルアルゴリズムをさらに改良、向上させること
にある。
【0024】本発明の別の目的は、ソリッド対象物をC
SG表示するための効率的で正確なシャドウイング技術
を提供することである。
【0025】本発明の別の目的は、製品の可視前面を決
定し、数個のプリミティブ面が重なっているか、あるい
はピクセルの光線が共通のエッジに近い点において2つ
の隣接する面と交差する状態に正確に対処する効率的な
方法であって、小さい交差値を採用してスキャン変換中
丸めの誤差の影響を除去する方法を提供することであ
る。
【0026】本発明の別の目的は、それ以上のスキャン
変換が不要であることが決定されると一時製品のプリミ
ティブのスキャン変換を停止させる方法を提供すること
である。
【0027】本発明のさらに別の目的は面を提供する
(即ちスキャン変換)ことの精度を上げる方法であっ
て、その上に表面の頂点サブセットが突出するピクセル
の中心における表面の正確な深度値を決定することを採
用している方法を提供することである。
【0028】
【課題を解決するための手段】まず積和の形に分解され
るCSG式を提供する装置と方法とにより前述およびそ
の他の問題は克服され、本発明の目的が実現される。各
プリミティブの面は前方に向いているか、後方に向いて
いるかで分類され、複数の深度バッファ(zバッファ)
にスキャンされる。本方法を繰り返す毎に、前方に向い
ている面が検討され、もし製品上に無いとその背後に位
置している他の前方に向いている面と置換する。
【0029】本方法は、各ピクセルの可視面が得られる
と各製品の処理を終了する。次いで各製品の可視前面は
従来の隠面除去技術を用いて最終のzバッファに併合さ
れる。
【0030】各ピクセルの製品のプリミティブ面を独立
して処理することにより、本方法は、従来技術では必要
とされた境界評価を排除し、比較的単純な試験を使用し
て各ピクセルに対して、ある製品の境界に位置している
プリミティブ面の一部を決定する。ピクセルのための正
しい面は、前面の背後にあり、かつ製品の交互の正のプ
リミティブに対する後面の前にあり、さらに各負のプリ
ミティブに対して対向関係を保っている前面と考えられ
る。
【0031】本方法の別の利点は、製品の他のプリミテ
ィブの外側に位置するあるプリミティブ面をスキップし
うるという点において製品の最も遠い前面から移動する
ことにより得られる。処理は、その上に製品が突出する
ピクセルのいずれにおいても何ら変化がないとすれば最
終パスにおいて終了する。
【0032】さらに、本方法は、深度試験中およびまた
最終のzバッファへのビット併合演算中スキャンされた
面の深度から交差値を差し引く。その結果、一致した面
が正確に扱われ、かつソリッドはダングリングエツジヤ
クラックを除去することにより規則化される。本方法は
また、各ピクセルにおいてz深度を正確に決定するため
にサブピクセル修正を用い、かつ面が所与のピクセルに
突出しているか否か決定するためにピクセル中心試験を
採用している。
【0033】本発明の一実施例によれば、三次元のソリ
ッド対象物を表現する表示可能情報を発生させる装置と
方法が開示されている。本装置は、1つ以上のプリミテ
ィブ対象物から構成されるように前記対象物をコンスト
ラクティブ・ソリッド・ジオメトリ表示により表示する
プロセッサを含む。本装置はさらに、1つ以上のプリミ
ティブ対象物を繰返し評価してその表示可能面を決定す
るプロセッサを含む。深度間隔バッファが、スキャン変
換プロセッサの演算に応答して、表示可能面の決定にお
いて何ら変化を発生させることなく所定回数の繰返し評
価が行われたときを決定する。深度間隔バッファは評価
プロセッサの演算を終了させる信号を発生する。
【0034】本発明の装置と方法とは、ダングリング面
やエッジを除去し、一致した面を適正に扱うように公差
を付けた深度試験を採用している。深度試験の精度を向
上させ、製品がその上に投影するピクセルを識別するた
めに、ピクセル中心付けを採用している。
【0035】また、本発明の装置には、プリミティブ対
象物の面上の一点から光源の平面への投影の、対象物を
照射する光源の平面を基準にした深度を記憶するための
補助シャドウ深度バッファを設けることができる。補助
シャドウバッファと関連して2パスのスキヤン変換技術
を用いてシャドウイングが達成される。
【0036】本発明の前述並びにその他の特徴は、添付
図面と関連して以下の本発明の詳細説明を読めばより明
らかとなる。
【0037】
【実施例】図2を参照すれば、CSG提供ならびに表示
パイプラインシステム10の実施例がブロック線図の形
態で示されている。例えば、CADシステムのようなア
プリケーションプロセッサ12がCSGデータをCSG
記憶装置即ちデータベース14に提供する。このCSG
データは、モデル化されている三次元のソリッドを表わ
す。また、アプリケーションプロセッサ12は、CSG
プリミティブをCSG記憶装置14から受け取り、そこ
からプリミティブの面を生成する製品抽出プロセッサ1
6に指令を提供する。カウンタ24aと比較器24bと
が設けられ、TERMINATE(終了)信号をアプリ
ケーションプロセッサ16に対して発生する。TERM
INAE信号を発生するカウンタ24aと比較器24b
との動作は以下詳細に説明する。面をスキャン変換する
スキャン変換プロセッサ18にプリミティブ面が提供さ
れる。本発明の一局面によれば、スキャン変換プロセッ
サ18はスキャン変換演算中以下に記述するようにピク
セル中心法を採用している。スキャン変化プロセッサ1
8の出力は、プリミティブ面がその上に投影される各ス
クリーンピクセルに対するx,y,zの位置情報であ
る。また、スキャン変換プロセッサ18から、赤
(R)、緑(G)および青(B)のにような表現された
ピクセル色情報が出力される。スキャン変換プロセッサ
18の出力は深度間隔バッファプロセッサ(DIB)2
0に提供される。
【0038】DIB20は、アプリケーション12から
指令を受け取り、以下詳述する疑似コード表示に従って
DIB20内でのデータの流れや処理を制御するコント
ロールブロック22を含む。DIB20は、複数のzバ
ッファ(Z3、Z2)と、関連の強度バッファ(I3、
I2)とを含む。DIB20により達成される深度比較
は、本発明の別の局面に従って、スキャン変換プロセッ
サ18内で発生する計算の丸めの誤差を補償するように
交差がついている。またDIB20には後述のように変
更フラッグ(cf)23と前方に向いたフラッグ(f
f)25とが設けられている。
【0039】DIB20の出力は、製品の可視即ち表示
可能の前面を表現したデータであって、このデータは第
3の深度バッファ(Z1)と第3の強度バッファ(I
1)とに提供される。I1はピクセル平面メモリを形成
し、その中味はディスプレイ・スクリーン26上で表示
される。例えば、Z1は各スクリーンピクセルに対する
深度情報を表現するための多数の24ビットメモリロケ
ーションからなる。I1は多数の24ビットメモリロケ
ーションからなり、その各々は3色(R,G,B)の強
度を表示するために3つのバイトに仕切られる。このよ
うに、各スクリーンピクセルに対して、対応する24ビ
ットZ1メモリロケーションと、対応する24ビットI
1メモリロケーションとがある。バッファZ3,Z2,
I3及びI2も同様に構成されている。
【0040】アプリケーション12からDIB20に送
られた指令は、バッファを初期化し、スキャン変換のた
めの動作をセットアップし、かつバッファ間の動作を実
行する指令を含む。例えば、INITBUFFER
(1,MAX DEPTH,BLACK)のような指令
は、バッファ1を、Z1に対する最大の深度値と、I1
に対するバックグランドの色とで初期化する。典型的な
バッファ演算指令はフォーマットCOPYBUFFER
(3,2,TRUE,′NE′,0)を有し、これは、
(ff)25が真で、Z2がZ3+eps(以下説明す
る交差値)に等しくないときはいつでもバッファ3をバ
ッファ2にコピイする。この指令は、後記の疑似コード
表示の表−1の26〜30行に対応する。スキャン変換
演算をセットアップする指令は、交差値を特定の値や、
後記の疑似コード表示の表−1の23〜34行における
スキャンした値の受領したものとしてバッファ3をセッ
トするSCAN INTO(3)のような指令とを含
む。終了条件は、疑似コード表示の表−1の12行にお
けるように(cf)フラッグ23をリセットするために
指令SET CHANGE FLAG(FALSE)を
用いることにより試験しうる。各プリミティブスキャン
変換の後、IF GET CHANGE FLAG()
THEN k=0のような指令は、疑似コード表示の
表−1の31行におけるようにカウンタ24aをリセッ
トする作用を有する。
【0041】製品抽出ブロック16に向けられた指令の
例は、CSGツリーにおける製品の合計数をカウントす
る指令N=COUNT PRODUCTS(CSGTR
EE)と、製品kがその表がバッファ2において構成さ
れるまでそのプリミティブをバッファ3へ繰り返しスキ
ャン変換することにより処理されるようにする指令RE
NDER PRODUCT(k)とを含む。これらの種
々の指令の演算は以下の説明において明らかとなる。
【0042】高レベルにおいてはトリックルアルゴリズ
ムの演算は以下の疑似コードセグメントのように表現し
うる。
【0043】バッファ1を初期化させ、各製品Pに対し
て、バッファ2におけるPの前方を計算し、その結果
を、可視面を選択してバッファ1に併合する。
【0044】バッファ1(Z1とI1)は製品のユニオ
ンの可視面を選択するために使用される。各製品の可視
前面は、別の疑似コードセグメントにおいて以下要約す
るようにバッファ2、DIB20を用いて相前後して計
算される。
【0045】Z2をバッファグランドに対して初期化
し、初期化の未だの間にPのプリミティブQを循環し、
かつZ2の後ろに位置するQの次の面をZ3へ計算し、
Qの次の面が前方に向いているピクセルにおいてZ3を
Z2へコピイする。
【0046】トリックルアルゴリズムは、Z2における
点が深度においてプリミティブQのの前面をすぐ先行す
る場合、前記点はQの外側、従って製品の外側に位置す
るという点において特に効果的である。さらに、試験し
た点と、Q上の対応する前方点との間の間隔もQの外
側、従って製品の外側にある。
【0047】図3から判るように、観察点から離れる方
向にZ軸に沿って前進するとき、点pは、現在の製品の
プリミティブQに位置することが判り、その深度はZ2
に記憶される。プリミティブQはスキャン変換され、Q
上のqの深度はZ3に記憶される。それは、Q上の点q
がpによって隠れる(深度に関して)Q上の最初の点で
あるためである。点qはQに対する前方点である。従っ
てセグメント(p,q)はQの外側にあり、従って製品
の外側にある。次にトリックルアルゴリズムはpの深度
と強度とをZ2とI2とに記憶する。製品における別の
プリミティブ上の点rは、それがpとqとの間に位置
し、従って製品上にないのでスキップされる。
【0048】システム10を構成する各種プロセッサの
動作を記述する疑似コード表示を以下説明する。前述の
トリックルアルゴリズムに対する著しい改良が、シルエ
ットエッジの投影の近傍における一致したプリミティブ
面とピクセルとを含み、「オン−オン」ケースとも称さ
れる全ての単一ケースに対して正しい処理を提供する公
差付きの深度試験によって達成される。トリックルアル
ゴリズムに対するその他の著しい改良はシステム10の
動作についての以下の説明の間に明らかとなる。
【0049】以下現れる全ての行番号参照符号は、以下
直ちに提供される改良トリックルアルゴリズムの疑似コ
ード表示を言及する。
【0050】 前述の改良トリックルアルゴリズムの疑似コード表示に
対して、深度バッファZ1と強度バッファI1の各ピク
セルに対する初期化により、これら2つの要素をそれぞ
れ最大深度と、選定したバッファグランドの色とに設定
する(表−1の1〜3行)。次に、各製品に対して、Z
2が最小深度まで初期化され、I2がバックグラウンド
の色に対して初期化される。次に、製品の可視前面が計
算され、かつ深度バッファZ2と強度バッファI2に記
憶される(表−1の9〜31行)。最終的に、結果が、
現在の製品の前面が先に処理された製品の前方に位置し
ているときは常にZ1に併合される。(表−1の33〜
35行)。
【0051】詳細には、製品の可視前面を計算するため
に本方法は以下の通り進行する。図2のカウンタ24a
に対応するカウンタkがまず−1に初期化される(表−
1の9行)。本発明によれば、カウンタ24aは、Z2
に影響を与えることなく処理される現在の製品のプリミ
ティブの数をカウントするために採用されている。カウ
ンタ24aの値が製品のプリミティブの数と等しくなる
ように増分されるとき、現在の前面を表示するピクセル
に何ら変化の起らなかったことが示される。カウンタ2
4aの出力は、カウンタの出力が製品のプリミティブの
数と比較される比較器24bに提供される。カウンタ2
4aの中味がプリミティブの数と等しいとき、TERM
INATE信号がアプリケーション12に対して発生
し、スキャン変換(表−1の10〜31行のUNTIL
ループ)を停止させ、これにより製品に含まれる全ての
プリミティブの後続の全数スキャン変換を終了させる。
もし製品に唯一のプリミティブがあるとすれば単一のプ
リミティブは規則化効果を適正に発生させるため2回の
みスキャンされる。
【0052】最悪の場合、本方法は、その製品の全ての
プリミティブにおいて「層」がある限り概ね何回でも製
品の各プリミティブをスキャン変換する。各層が、Z2
に対して一時的な点を発生しうるという点において、Z
2の点が製品の外側にあることを示すために製品の1つ
のプリミティブを除いて全てをスキャンする必要があ
る。本明細書で採用している層の概念は、プリミティブ
のボリュームに対する、z軸に平行の光源を交差させる
ことにより得られる分解したセグメントに対応する。
【0053】しかしながら、典型的なテースに対して、
本方法の動作は早期段階でのループ処理を停止させる。
kは−1(表−1の行9)に初期化され、単一のプリミ
ティブを有する製品の適正な処理を保証することが注目
される。
【0054】ループ内において、変更フラッグ(cf)
23が表−1の12行において初期化され、表−1の3
0行において更新され、Z2が前進したか、かつカウン
タ24aが零にリセットされたか否かを決定する(表−
1の3行)。もし変更が示されるとすれば、カウンタ2
4aはリセットされ、その結果、ループを通るその特定
のパス対するTERMINATE信号を発生させない。
【0055】内側ループ(表−1の13〜31行)は製
品のプリミティブ(Q)に対して実行され、プリミティ
ブのリストは一貫した円形の態様で処理される(表−1
の13行)。まずZ3、I3および前方に面したフラッ
グ(ff)25が初期化される(表−1の14〜17
行)。そのピクセルの前方に面したフラッグを保持する
ために各ピクセルと関連した1ビットの記憶がある。も
し現在のプリミティブが正、即ち境界が付けられたとす
れば前方に面したフラッグ(ff)25は1にセットさ
れる。この点について、各プリミティブは境界付けされ
た境界を有するものと想定する。内部が境界の付いたプ
リミティブは正と称され、他は負と称される。またこの
点に関して、もし元のCSGグラフの複数のリーフが、
境界付けされたボリュームであるとすれば、負のプリミ
ティブは、奇数回差し引かれたこれらのリーフに対応す
る。前方に面したフラッグ(ff)25は、各ピクセル
において、本方法がZ2を前進させるべきか否かを決定
する(表−1の27行)ために使用される。
【0056】次に、本発明の方法と装置とは、現在のプ
リミティブQの面をスキャン変換する(表−1の18〜
25行)。Qの投影によりカバーされる各ピクセルに対
して、Z3とI3とは、適当なところで、スキャンされ
た面の点の深度と強度とにより更新される(表−1の2
2〜24行)。更新は、スキャンされたzの値がZ2に
記憶された深度とZ3内に記憶されたものの間に位置す
るときのみ発生する(表−1の22行)。
【0057】本発明の一局面によれば、比較的小さい公
差値(eps)(処理されているモデルの寸法と比較し
て小さい)は、深度試験の前に差し引かれ、一致した面
の正しい処理を保証する。またこの点に関して、I3
は、スキャンされた表面が前方に向いているときのみ更
新される。このことは、もし後方に向いた面が、シルエ
ットエッジ近傍の前方に向いた面と重ならないとすれ
ば、後方に向いた面の強度がI3内に記憶されないよう
に保証する。本発明のこの局面を以下詳述する。前方に
向いたフラッグ(ff)25は、Z2の後ろを通るQの
各面に対してトグルされる(表−1の25行)。更びe
ps値が、スキャン変換精度と丸めの誤差とが不正確な
結果をもたらさないように保証するために使用される。
【0058】本発明において使用するように、前方を向
いたフラッグ(ff)25は、プリミティブQ内あるい
はその外側のいずれかに位置する点のパリティを示す作
用をする。例えば、図4のCを参照すれば、z方向に観
察平面から離れる方向に移動するとき、第1の点(P
1)は、その点の後ろに位置するQの3つの面を有して
いることが判る。このように、点P1は、奇数のパリテ
ィを有するものと考えられ、定義によりプリミティブQ
内に位置するものと考えられる。点P2とP3とは、そ
れぞれz方向に沿って位置したQの2つの面を有し、従
って偶数のパリティを有するものと考えられる。定義に
より、偶数のパリティを有する点は、プリミティブQの
外側に位置するものと考えられる。試験は、点をzバッ
ファに記憶させ、かつプリミティブをスキャン変換し、
さらに点の後ろに位置することが決定された各面に対し
て前方に向いたフラッグ(ff)25をトグルすること
により、達成される。スキャン変換の完了時、前方に向
いたフラッグ(ff)25の状態は、点のパリティ、従
って点がプリミティブ内に含まれるか否かを指示する。
【0059】前述のトリックルアルゴリズムにおいて、
面のトリミング即ち製品のプリミティブQに対する面の
点を試験することは、試験された点の後ろで出会ったQ
の第1の面が前方に向いているか、あるいは後方に向い
ているかを試験することにより達成される。しかしなが
ら、Qのエッジの近傍において、あるいはもしzバッフ
ァの分解能内でQが平担に見えるのであれば、前方に向
いた面と後方に向いた面とは同じ深さを有することがあ
りうる。この問題を克服するために、本発明による方法
は、前述のJ.Goldfeather他による、IE
EECG&A、vol.9,No.3 20〜28頁、
1989年5月の「NearReal−Time CS
G Rendering using Tree No
rmalization and Geometric
Pruning」という名称の論文に記述されている
ように試験した点の後ろの面の数のパリティ(表−1の
25行)を採用している。ある点の後にあるQの偶数の
面は点が、Q(例えば正のQ)の外側にあることを意味
する。
【0060】最後に、全体のプリミティブQがスキャン
変更された後に、Z3は、前方に向いたフラッグ(f
f)25がセットされているとき(表−1の27〜31
行)はいつでも、即ちZ2に記憶された点がQの外側に
あるときはいつでもZ2にコピイされる。このように、
Z2におけるこれらの点は、Z3に記憶されずみのQ
(もしあるとすれば)上の前方を向いた点により置換さ
れる。
【0061】Z2とZ3とに記憶された深度が相違する
ことを要する追加の条件、Z2〔x〕!=Z3〔x〕
(表−1の27行)は、正のプリミティブの投影の外側
の点の適正な処理を保証するために設けられている。し
かし、これらの点ff=1に対して、Z2とZ3の双方
は共に最大深度に等しい。
【0062】前述の単一の状態(オン−オンのケース)
は、異なる2つの面が同じピクセルをカバーし、そのピ
クセルに投影する点において同じ深さあるいは概ね同じ
深さを有する場合に発生する。単一の状態(SC)は、
それぞれソリッドAとBとに対して図4のAとBとに示
されている。そのような状態は、数個の面が重なる場合
数学的(正確な)モデルにおいて発生する。さらに、そ
れらはまた、図4のBに示すように前面および後面を接
続するエッジ近く、あるいは図4のAに示すようにzバ
ッファの深度分解能より小さい深さを有する薄い壁ある
いは内部のクラックのようなくびれ部における打切られ
たグラフイックモデルにおいて発生する。これらの単一
のケースの全てに対して正確なイメージを計算するため
の方法は、スキャン変換の固有の丸めの誤差による深度
誤差をも補償するように十分確固としたものであらねば
ならない。
【0063】このように、もしプリミティブ層の深さが
zバッファの深度分解能より小さいとすれば、それがあ
たかも平担(深度零)の如く処理されるように補償方法
が必要とされる。
【0064】さらに、比較的大きいプリミティブ層に対
してさえも、プリミティブが局部的に平担に見える状態
が存在しうる。例えば図4のBに示すようにシルエット
のエッジに近づくとき、同じプリミティブの当接してい
る2個の面(1個の前方に面したものと、1個の後方に
面したもの)は深度において相互に任意に近接してい
る。シルエットエッジにおいて、前面と後面とは同じ深
度を有する。ディスプレイ26上のエッジ投影に近く位
置したピクセルをスキャン変換する間、スクリーンは双
方の面に対して同じ整数に丸めた深度値を有することが
判る。このように、その特定のピクセルに対して、プリ
ミティブは、平担で(深度零)縮退したソリッドとして
現われる。本方法が全てのピクセルに対して独立して進
行するという点において、本方法は、そのような縮退し
たプリミティブを正確に扱う必要があり、さもなけれ
ば、表示されたソリッドは不正確にクラックやダングリ
ングエッジを表わしうる。
【0065】本発明の一局面によれば、カウンタ24a
を−1の値に初期化する(表−1の9行)ことにより、
単一のプリミティブを備えた製品が2回スキャン変換さ
れることを保証する。このため、本発明による方法が最
初のスキャン変換中にZ2で一時的な点を発生させ、次
いで、もし適当であるとすればその一時的な点を2回目
のスキャン変換中にプリミティブの外側にあるものと分
類する。
【0066】さらに、単一性即ち「オン/オン」のケー
スの処理は、1985年1月号のIEEEの会報vo
l.73,No.1のA.A.G.Requichaと
H.B.Voelckerとによる「Boolean
Operations inSolid Modeli
ng:Boundary Evaluation an
d Merging Algorithms」において
報告されているように近隣評価を含むことが知られてい
る。本発明の方法は前方から後方への要領でプリミティ
ブの複数の面を試験するという点において、面の後ろの
近隣のみが関係している。この点に関して、近隣は、面
の後ろに製品に関して材料があるか否かを示す。もし面
の前方に材料があるとすれば、本方法は、ピクセルに対
して早期に終了し、当該面には到達しない。従って、も
し製品の材料が面の後ろに存在するとすれば、面の点は
製品上にあり、対応するピクセルを介して見える最前方
の点である。
【0067】その結果、1986年9月号IEEE C
omputer Graphicsand Appli
cationsのvol.6,No.9,29〜39頁
のJ.R.RossignacおよびA.A.G.Re
quichaによる「Depth buffering
display techniquesforcon
structive solid geometry」
という名称の前述の論文で提供された技術を採用して、
スキャン変換した点をZ2に記憶した深度と比較する
(表−1の22行)前にそのスキャン変換した点の後ろ
に位置する点を試験することが好ましい。
【0068】ある計算に採用した前述の公差値(ep
s)の使用を以下詳細に説明する。
【0069】まず、プリミティブを位置づけるために従
来から使用している回転は、それらの境界平面あるいは
項点の係数内で丸めの誤差を導入することが注目され
る。その結果、もしプリミティブが、面のあるものを整
合させるために回転するとすれば、重なるべき面を含む
表面は典型的には一致しない。さらに、スキャン変換丸
めの誤差は、いずれかのピクセルにおいていずれかの理
論的に一致する2つの面を予測不可能に深度で順序付け
うる。その結果、専ら深度に基く面の順序付けは、双方
の面の全体の重なり領域にわたって一貫した結果を提供
しない。
【0070】従って、一致した面の問題を指向する全て
の動作において、本発明の装置と方法とは、比較的小さ
い公差(eps)を採用している。公差値を用いること
により、等しくあるべき2つの深度値が等しいものと確
実に見做されるようにする。勿論、大きすぎるepsの
値の選択は、等しくあるべきでない2つの値を等しいも
のとして扱うようになる可能性がある。そのような場
合、本方法は、ソリッドの規則化「モジュロ(modu
lo)eps」に対応するイメージを発生させる。即
ち、本方法は、浅いz深度を有するモデルの部分を除去
し、一方いずれかの場所で正しい面を表示するよう作用
する。
【0071】このように、(eps)に対する値は、限
定されたzバッファ分解能と表面スキャン変換中の深度
計算中に導入される丸めの誤差との組合せ効果を上廻る
ように選択される。もし大きすぎるeps値が使用され
るとすれば、浅い特徴のようなある細部が、前方に面す
る面と後方に面する面とが一致したものと見做されると
いう点において消えることがありうる。
【0072】前述した一致した面の「オン/オン」のケ
ースを正確に処理している間に、epsに対して比較的
小さい値を採用するには、各々スキャンラインに沿った
最初の深度を正確に決定する必要がある。この深度を正
確に検出する方法を以下詳細に説明する。
【0073】まず、zバッファZ1の整数表示能力のた
め、ある面によってカバーされた全てのピクセルの表面
の点を計算する従来のスキャン変換手順は、大体の、即
ち切り捨てた深度値を発生させることが注目される。そ
の結果、2つの共通平面の重なり部分に位置した点の深
度は、点を発生するためにどの面をスキャン変換したか
によって異なりうる。
【0074】この欠点を克服するために、かつ所期の一
致性が正確にかつ確実に扱われるようにするために、本
方法は、同じピクセルに投影された2個の点が、もしz
軸に沿ったそれぞれの深さがeps以下の分だけ異なる
とすれば、同一であると見做す。epsの値は、シーン
(光景)のサイズから、zバッファの解像力によって決
定される。
【0075】図5を参照すれば、もしプリミティブの面
がz軸に対して鋭角にあるとすれば、サンプリングされ
た深度値はピクセル(P)の幅にわたって広く変動しう
る。その結果、例えば面AとBのように一致した面を正
確に処理するには、各面をピクセル内の正確に同じ点で
サンプリングすることが重要である。本方法によって採
用されているように、この点はピクセルが全体的に平担
な正方形の表面領域であると考えられるピクセルの幾何
学的中心であるように選択される。もし2つの面が一致
したとすれば、双方の面によってカバーされたピクセル
に対する深度値のサンプリングにより各々カバーされた
ピクセルにおける双方の面に対して同じ深度を生ずる。
【0076】本方法は、ある従来のスキャニングアルゴ
リズムに対して行われたようにピクセルの先導縁に沿っ
たz増分を単に用いるのでなく、開始ピクセルの中心に
投影される表面の点を決定することにより、各水平スパ
ンの上記開始ピクセルの深度を決定するように作用す
る。その結果、z増分の計算の数値上の精度内で、スキ
ャンラインに沿った後続の点の深度を決定するためにス
キャンラインに沿ってz増分を用いることにより、全て
のカバーされたピクセルに対する深度は、スキャンされ
た表面に対して正確で、このようにその表面に位置する
全ての面に対して同じである。
【0077】本発明のこの局面は、第1の点の投影から
ピクセルの中心までの正確な水平方向のオフセット距離
を得るために浮動小数点計算を採用することにより達成
でき、このオフセット距離は、面のスキャンラインに沿
った他の点のz深度を決定する際以下適用する。代替的
に、ピクセル領域は、多数の領域に仕切られ、各領域
は、ピクセル中心に対するオフセット値が割り当てられ
ている。次いでオフセット値はルックアップテーブル内
に記憶され、ピクセル領域内で第1の点が投影する場所
の関数として正確なオフセット値を引き出す。
【0078】本発明の別の局面は、2つのプリミティブ
面間の境界で一貫したスキャン変換を提供することに関
連する。図6を参照すれば、その上に投影されたプリミ
ティブの2つの面(AとB)を有する複数のピクセルが
図示されている。2つの面の間の境界即ちエッジをEで
示す。前述のトリックルアルゴリズムは、プリミティブ
の投影によりカバーされた各ピクセルが、そのプリミテ
ィブの後面の数と等しくする数の前面によってカバーさ
れることを要する。この要件は、プリミティブの境界
を、内部の面あるいはダングリング面を何ら有さない有
効2サイクルであることを要することを示している。こ
の状態は、CSGの推定であるソリッドの規則化を意味
している。しかしながら、同じプリミティブの2つの面
を処理するスキャン変換手順は、そのようなバリティを
自動的に保証するものではない。例えば、従来のブレセ
ンハム(Bresenham)あるいはアンチエイリア
シングアルゴリズムは保証しない。
【0079】スパンにわたる深度値、あるいは面の投影
によりカバーされる水平列のピクセルを単純補間するこ
とにより、もしスパンの終りが単に部分的に関連のピク
セルをカバーしないとすれば、スパンの終りで深度を間
違って計算することになりうる。このことは、たとえピ
クセルの中心が面によってカバーされていないとして
も、面を含む平面の傾斜を用いて、深度は外挿されるか
らである。
【0080】例えば、まず、その長方形領域が前面と後
面との間のエッジ投影が横切られるが、その中心がこれ
らの面によってカバーされていないピクセル(P1)が
考えられる。もしスキャン変換アルゴリズムが、これら
2つの面に対してP1を訪ねる(visit)とすれ
ば、ピクセルの中心に対して深度値を計算する。しかし
ながらzバッファの深度分解の大きさあるいは(ep
s)公差値の大きさにもかかわらず、2つの面に対する
傾斜は、ピクセルP1の中心において、前面に対して計
算した深度が後面の計算深度を越えるように選択するこ
とができる。この「オーバシュート」の状態は、プリミ
ティブのシルエットエッジ近傍で不正確な表示を生ぜし
める。
【0081】本発明のこの局面によれば、この問題に対
する解決は、スキャン変換の間、特定の面によってその
中心がカバーされるピクセルのみを処理することを含
む。図6の例の場合、面Aに関連したクロスハッチング
したピクセルのみが、面Aの投影がピクセルの中心をカ
バーするのはこれらのピクセルのみであるという点にお
いて面Aに対してスキャン変換される。同じ状態が、そ
の中心が面Bによってカバーされるクロスハッチングし
たピクセルについても存在する。そのように、スキャン
変換プロセッサ18は、ピクセルP1を考慮せず、前述
のオーバシュートの問題が克服される。
【0082】さて図7のAとBのフローチャートとを参
照すれば、表示されたソリッドのシャドウイングに関す
る本発明の別の局面が示されている。本発明によれば、
シャドウイングは、光源(LS)から可視の表面部分を
選択する補助的な「シャドウ」zバッファ(ZS)を使
用することにより達成される。ZSは、まず目をLSに
位置させる座標系において、強度情報を何ら計算するこ
となく前述のトリックルアルゴリズムを実行することに
より構成される。次に、トリックルアルゴリズムは、可
視点により反射された強度を計算している間に、LSに
対する距離がZSに記憶されている距離と比較されるこ
とを除いて、通常の目の方向(EO)から再度実行され
る。このため、LSから見ることのできるこれらの表面
点を設定する。そのことは、もし可視表面点が照射され
るか、あるいはLSに一層近いその他の面のシャドウに
あることが前提である。
【0083】この技術は、ZSが計算された後の最終の
スキャン変換中に、表面点の座標が、双方の座標系、詳
しくはEOと整合した座標系と、LSと整合した座標系
とにおいて表示されることを要する。スキャン変換した
表面によってカバーされる全てのピクセルが、正確に処
理されることを保証するためには、スキャン変換は、E
O座標系における増分を利用する。これらの増分は、一
定のマトリックスを介してLS座標系の増分へマッピン
グされ、スキャン変換処理の速度を増大することがで
る。
【0084】ZSにおいて発生するエイリアシング作用
は、もしシャドウイングが投影される表面がEO観察方
向に直交し、かつ概ねLSに平行であるとすれば著しく
強調しうる。しかしながら、そのような好ましくない可
視アーチフアクトは、例えば、1990年フインランド
のHelsinki University ofTe
chnologyのMathematics and
ComputerScience Series,N
o.56におけるC.Woodwardによる「Met
hods for Computer−aided d
esignof free−form Object
s」と題する論文において論じられているような従来の
技術を用いて減衰させることができる。
【0085】システム10の動作の数例を以下説明す
る。これらの例は、製品の和(即ち和集合)が、従来の
zバッファリングの隠面除去法により実行しうる点にお
いて単純な製品の可視前面の計算のみに集中している。
【0086】2つの凸状プリミティブAおよびBを示す
図8を最初に参照する。製品はAとBの交差である。プ
リミティブAは、前面F1と後面F4とを有する。プリ
ミティブBは、前面F2と後面F3とを有する。AとB
との外側の面は、この例において対象のピクセルには投
影されず、従って考慮されていない。観察点は左側にあ
り、従って、z方向は水平方向で左方から右方である。
観察点を通して水平方向の線により符号表示される特定
のピクセルを検討する。ピクセルを通して見える製品の
面はBの前面F2である。
【0087】システム10の動作は以下のように進行す
る。スキャン変換が始まる前に、ピクセルバッファメモ
リが初期化される。Z2は、単純にするために、ワール
ドがZ=O平面の正の側に位置するものと想定して、零
に初期化する(表−1の6行)。I2もバックグラウン
ドの色に初期化される(表−1の7行)。冗長スキャン
変換パスの計数k(カウンタ24a)は、−1に初期化
される。
【0088】プリミティブAは、まず製品のプリミティ
ブの循環(circular)リストに現われ、そのた
めまずスキャン変換される。Aが正であって、境界付け
がされているので、各ピクセルに対するパリティビット
フラッグ「(ff)25」は1に初期化される。その結
果、Aの投影によってカバーされていないピクセルにお
いて記憶さた点はAの外側にあるものとして適正に扱わ
れる。Z3は「無限」に、即ちzバッファの最大深度を
表わす値に初期化され、I3はバッファグラウンドの色
にセットされる(表−1の15〜17行)。
【0089】Aの面のスキャン変換の間、少なくともピ
クセルに対して以下の関係があるものと想定しているこ
とが判る。即ち、Z2<F1<F4<Z3。表−1の2
2行における試験は、epsの適当に小さい値に対して
は成功しF1の深度がZ3に記憶され、F1の色がI3
に記憶される。即ちAの前面はZ3に記憶される。F1
とF4の双方はZ2の後ろにあり、パリティフラッグf
fがAのスキャン変換の間2回トグルされ、従ってAの
スキャン変換が終了するとき1の値を有する。Z2にお
ける試験した点はAの外側にあり、さらに後の点と置換
すべきである。また、スキャン変換の間、詳細に前述し
たようにピクセル中心の検討と、公差付き(eps)深
度試験の使用とを含む、向上したトリックルアルゴリズ
ム特性が採用されていることが注目される。
【0090】更新ステップ(表−1の26〜30行)の
間、今や面F1に対応するZ3およびI3の中味が、Z
2とI2とにコピイされる。冗長パスの計数kは、若干
のピクセルが更新ずみなので0にリセットされる。Aの
投影の外側にあるピクセルは、今やZ2においてバック
グラウンド深度と色とを含んでいることが注目される。
【0091】次に、プリミティブBがスキャン変換され
る。プリミティブBは面F2とF3とを有する。kの値
(カウンタ24a)が、1まで増加され、前方を向いた
フラッグ(ff)25は1にセットされ、Z3が「無
限」に初期化される。Z2<F2<F3<Z3がF2の
深度と強度とをZ3とI3とにコピイさせることが判
る。再度Z2はF2およびF3より小さく、このためパ
リティフラッグを2回トグルさせる。このことは、Z2
における試験した点がBの外側にあるために発生す。Z
2とI2の中味は面F2からのデータで重ね書きされ、
カウンタ24aは、変更フラッグ(cf)23の作用に
より再度零にリセットされる。
【0092】次のプリミティブを検討する必要がある。
まず、kが1に増加され、(ff)25が各ピクセルに
おいて1にセットされる。プリミティブリストが循環性
であるため、プリミティブAは再度スキャン変換され、
F1<Z2<F4<Z3であることが判明する。このよ
うに、面F1はZ2の後ろにないので考慮されない。F
4の深度はZ3に記憶されるが、F4が後方を向いてい
るので、F4の色はI3にコピイされない。Aの一つの
面F4のみがZ2の後ろにあるので、パリティフラッグ
は一回のみトグルされ、このように零の値を有する。そ
の結果、Z2は変更されず、カウンタ24aはリセット
されず1の値を保持する。
【0093】プリミティブBは再度スキャン変換され
る。kの値は2に増分され、パリティフラッグは1にセ
ットされる。Z2はすでにF2の深度を含んでおり、B
のスキャン変換の後Z2<F3<Z3が判明する。従っ
て、F3の深度がZ3へコピイされるが、F3が後方を
向いているので色はI3にコピイされない。F3のみが
Z2の後ろにあり、そのためパリティフラッグはF3の
投影によりカバーされている各ピクセルにおいて零にト
グルされる。従って、Z2は変化せず、(cf)23は
カウンタ24aをリセットさせず、カウンタ24aが保
持する計数は2のままである。Z2はBの前面F2を保
持する。
【0094】kの値(カウンタ24a)が製品のプリミ
ティブの数と等しいので、TERMINATE信号が比
較器24bにより発生し、製品の可視前面(F2)をZ
2に位置させて変換ループが終了する(表−1の10
行)。Z2とI2の中味が、Z2がZ1より小さければ
いつでも表示バッファZ1およびI1にコピイされ、こ
の製品を論理和形態の他の製品と併合する。
【0095】図9を参照すれば、非凸状プリミティブA
を凸状プリミティブBと交差させるためのシステム10
の動作の別の例が示されている。プリミティブAは面F
1、F3、F4およびF5を、Bは面F2およびF6と
を有している。前面F1とF2とは一致している。
【0096】前述と同様、プリミティブAをスキャン変
換する前にZ2が初期化される。前例と同様に、Aが正
であるのでパリティフラッグがセットされる。Z2<F
1<F3<F4<F5であるので、面F1はZ3に記憶
されている。Z2の後ろにプリミティブAの4つの面が
あるので、ffは1にセットされ、F1はZ2とI2と
にコピイされる(表−1の26〜30行)。
【0097】Bのスキャン変換の間、面F2はF1と一
致しており、F2<Z2+eps<F6であることが判
明する。プリミティブBの一つの面のみがZ2の後ろに
あるので、パリティフラッグは零にトグルされ、Z2は
変らないままである。カウンタ24aは1に増分され
る。
【0098】プリミティブAは再度スキャンされ、Z2
<F3<F4<F5であることが判明する。F3の深度
はZ3に記憶されるが、F3が後方を向いているのでI
3は変らない。Z2の後ろのプリミティブAの面の数は
奇数なので、パリティフラッグは零にトグルされ、Z2
は変らないままである。カウンタ24aは製品における
プリミティブの数に等しい値である。2に増分され、T
ERMINATE信号を発生してスキャン変換ループ処
理を停止する。Z2は製品の前方にあるF1を含む。Z
2は後でZ1に併合される。
【0099】単純なプリミティブAおよびBの減算に対
する別の例を図10に示す。製品A−Bにおいて、Aの
前面F1はBの前面F2と一致する。Bが製品において
負なので、F2は、AがBの相補部と交差するため後面
として扱われることが注目される。製品の可視面は非相
補プリミティブBの元の後面であるF3である。
【0100】前例と同様に初期化が行われ、プリミティ
ブAはZ2に記憶されているF1とスキャン変換され
る。
【0101】次に、プリミティブBがスキャン変換され
る。Bが負であるので、パリティフラッグffは零に初
期化される。F2<Z2+eps<F3<Z3であるこ
とが判明する。従って、プリミティブBが負であるため
F3は前向きであるので、F3は、I3の強度を含みZ
3に記憶される。Bの一つの面がZ2の後ろにあるの
で、ffはスキャン変換により出合う(visite
d)ピクセルにおいて1にトグルされる。F2はBの外
側にありZ3はZ2にコピイされる。
【0102】プリミティブAは再度スキャン変換され、
パリティフラッグは1にセットされる。F4のみがZ2
の後ろにあり、従って(ff)25は一旦トグルされ零
にセットされる。その結果、Z2は変らないままであ
る。同じことが、プリミティブBの2回目のスキャンの
間に発生する。カウンタ24aに含まれた値がプリミテ
ィブの数、この場合2に、リセットされずに達すると、
TERMINATE信号が発生しスキャン変換ループを
出ていく。F3を含むZ2が次いでZ1に併合される。
【0103】図11を参照すれば、内部クラックを含む
プリミティブに対する前後の例が提供されている。プリ
ミティブAは面F1、F4、F5およびF7を有し、一
方プリミティブBは面F2、F3、F6およびF8を有
している。対象のピクセルに投影されるA−Bの非規則
化した差が、空のセットである。この例は、内部クラッ
クを有する非凸状プリミティブBを、これも内部クラッ
クを有する別の非凸状プリミティブAから減算すること
を含む。さらに、プリミティブBの内部クラックはプリ
ミティブAの内部クラックと一致している。そのような
クラックは、モデル内あるいは限定された深度分解能の
ため同じプリミティブの2つの面が一致したとき発生す
る。これらの特異性(singularity)はまた
前述のようにシルエットエッジ近傍で現われうる。
【0104】前例のように、プリミティブAを初期化
し、かつスキャン変換した後、F1はZ2に記憶され
る。
【0105】プリミティブBはスキャン変換され、かつ
パリティフラッグはBが負のため零にセットされる。F
2はF1と一致するので、F2<Z2+eps<F3=
F6<F8<Z3となる。F3またはF6のいずれかの
深度が、プリミティブBの面がスキャン変換される順序
に応じてZ3にコピイされる。しかしながら、F6は後
方に向いているので、F3の強度はI3に保存される。
Z2の後ろにBの面が3つあるので、(ff)25は1
にトグルされ、Z3はZ2にコピイされる。
【0106】プリミティブAは再度スキャン変換され、
パリティフラッグがセットされる。F4はF5並びにZ
2と一致し、以下の状態が存在することが判る。即ち、
F1<F4=F5<Z2+eps<F7<Z3である。
F7はZ3に書き込まれる。F7のみがZ2の後ろにあ
るので、(ff)25は零にリセットされ、Z2は変わ
らないままで、従って依然としてF3を含んでいる。
【0107】プリミティブBは再びスキャン変換され、
F6とF3とはZ2と一致していることが判明し、F2
<F3=F6<F2+eps<F8<Z3が得られる。
F8はZ3に書き込まれる。プリミティブBの1つの面
F8のみがZ2の後ろにあるので、パリティフラッグは
一旦1にトグルされ、F8はZ2にコピイされる。
【0108】プリミティブAは再度スキャン変換され、
Aの最も後ろの面F7がF8と一致し、F1<F4=F
5<F7<Z2+eps<Z3を提供することが判る。
従って、Z3には何もコピイされず、パリティフラッグ
はセットされたままである。このように、Z3がそれら
で初期化されたそれらのバックグラウンドの色と最大深
度(無限)とがZ2にコピイされる。
【0109】プリミティブBの別のスキャン変換パスは
何ら変化をもたらさず、プロセスは、カウンタ24aが
プリミティブの数に対応する2の計数に達したとき終了
する。
【0110】要約すれば、多重深度バッファ技術を用い
て規則化されたCSGソリッドを適正に表示するため
に、2つの面が、あるピクセルにおいて同じ深度を有す
るという単一のケースを適正に考慮する必要のあること
が示された。そのような面が一致する状態は、CSGプ
リミティブがそれらの境界に沿って二次元の接触を有し
て位置決めされるときのみならず発生する。くびれ部、
あるいはシルエットエッジ近傍の鋭い隅部における表面
の点が、同じピクセルに投影され、かつ相互に十分近い
深度値を有し、それがスキャン変換処理によって同じ整
数の深度値に丸められたときも偶然に発生する。
【0111】この問題は、交差値(eps)を用いてス
キャン変換中の丸めの誤差による投影を除去することに
よって克服される。このように、一致すべき面は、たと
え実際の深度が同じピクセルにおいて異なることがあり
うるとしても一致する。また、CSG式の規則化した解
釈に関して正しい表示イメージを発生させるには交差を
付した深度試験が用いられ、さもなければ現れるダング
リング面やエッジを除去する。
【0112】さらに、小さい特徴の損失を回避するため
モデルのサイズに対してepsの小さい値を保つため
に、改良されたスキャン変換技術が提供される。この改
良された技術は、ピクセルの中心に投影して全ての出合
ったピクセルに対して実際の表面深度を生成する。この
ように、もし空間で重なる2つの面が独立してスキャン
変換されるとすれば、双方の面によってカバーされた全
てのピクセルに対して発生した対の値が、深度増分累積
の間に発生しうる極めて小さい丸めの誤差を除いて等し
い。
【0113】また、プリミティブの点の分類に対してス
キャン変換法が正しく使用できるようにするには、スキ
ャン変換技術が、ある面によってその中心がカバーされ
るピクセルのみがその面のスキャン走査の間に出合うよ
うに保証すべく修正される。さらに、本発明によれば、
シャドウウイングは補助シャドウバッフア(ZS)を用
いた単純な2回パススキャン変換技術により達成され
る。
【0114】本発明を特定実施例に関して説明してきた
が、本発明の範囲と精神とから逸脱することなく修正を
施しうることを認識すべきである。
【0115】例えば、強度バッファI2およびI3が設
けられていないところでは修正されたDIB 20 ア
ーキテクチャを用いることができる。本発明の方法は、
強度の計算並びに更新が実施されないことを除いて、プ
リミティブ対象物を繰り返し評価するため前述の通り進
行する。その結果は、強度情報は無いが、全てのCSG
式に対してZ1を計算することである。次いで、全ての
プリミティブの前方に面した面の一回のみのスキャン変
換を実行する強度決定パスが実行される。強度決定パス
は、Z1に記憶された深度が現在処理されている点にお
ける表面深度と等しいピクセルに対してピクセルメモリ
I1において対応する強度値を記憶する。本発明のこの
変更はピクセルメモリを著しく節約するが、像の質を僅
かに低下させうる。
【図面の簡単な説明】
【図1】3個のプリミティブからなるソリッドに対する
従来技術によるCSGバイナリツリーを示す斜視図。
【図2】本発明により構成され、かつ動作するイメージ
表示処理システムの実施例を示すブロック線図。
【図3】プリミティブQを処理する上での図2に示す深
度インターバルバッファの動作を示す図。
【図4】Aは、縮退した零厚さの壁としてくびれ部が現
われ、かつクラックとして狭い空洞が現われる、限定さ
れた深度分解能の作用を示す図であり、Bは、シルエッ
トの後面と前面とが一致するように見える個所近傍での
限定された深度分解能の作用を示す図であり、Cは、ソ
リッドに対する別の関係に位置する点の分類を決定する
ことを示す図。
【図5】ある表面に対して正確なz値を発生させるため
にスキャンラインの初期深度を調整することを採用す
る、正確なスキャン変換を達成する技術を示す図。
【図6】複数のピクセル上に投影する2つの面を有する
プリミティブの調整されたスキャン変換を達成する技術
を示す図。
【図7】Aは、2パスのシャドウイング技術に採用され
た補助シャドウバッファを示す図であり、Bは、Aに示
す補助シャドウバッファの動作を示すフローチャート。
【図8】本システムの動作の複数例による2個のプリミ
ティブの処理を示す図のうちの、2個の凸状のプリミテ
ィブの交差を示す図。
【図9】本システムの動作の複数例による2個のプリミ
ティブの処理を示す図のうちの、双方のプリミティブが
共通の前面を共用している、非凸状のプリミティブと凸
状のプリミティブとの交差を示す図。
【図10】本システムの動作の複数例による2個のプリ
ミティブの処理を示す図のうちの、2個の凸状のプリミ
ティブの間の差を示す図。
【図11】本システムの動作の複数例による2個のプリ
ミティブの処理を示す図のうちの、非凸状のプリミティ
ブの各々が内部クラックを有している、一方の非凸状の
プリミティブから別の非凸プリミティブを減算する図。
フロントページの続き (72)発明者 デービツド・アレキサンダー・エプスタイ ン アメリカ合衆国10562、ニユーヨーク州 オシニング、イースターン・アベニユー 53番地 (72)発明者 ジヤロスロウ・ロマン・ロシグナツク アメリカ合衆国10562、ニユーヨーク州 オシニング、リンカーン・プレイス 1956 番地 (72)発明者 ジエフレイ・ウエンフオン・ウー アメリカ合衆国10011、ニユーヨーク州 ニユーヨーク、ウエスト・トウエンテイー サード・ストリート 208番地、アパート メント 1003

Claims (37)

    【特許請求の範囲】
  1. 【請求項1】 三次元ソリッド対象物を表現する表示可
    能情報を発生する装置において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法で表現する手段と、 前記1つ以上のプリミティブ対象物を繰り返し評価して
    その表示可能面を決定する評価手段と、 前記評価手段の動作に応答して、表示可能面の決定にお
    いて変化を生じさせることなく所定数の繰返し評価の行
    われる状態を決定する決定手段であって、評価を計数
    し、かつ前記所定数の評価が行われたとき前記評価手段
    の動作を終了させるための信号を発生する手段を含む決
    定手段と、を備える表示可能情報を発生する装置。
  2. 【請求項2】 前記所定数が前記対象物を構成するプリ
    ミティブ対象物の数に等しい請求項1に記載の装置。
  3. 【請求項3】 前記評価手段は、複数の深度バッファ手
    段を含み、さらに、評価されつつあるプリミティブ対象
    物の面上のある点の、基準平面に対する深度を、第1の
    深度バッファ手段(Z3)内に記憶された第1の点の深
    度と、および第2の深度バッファ手段(Z2)内に記憶
    された第2の点とに比較する比較手段を含み、前記第1
    の点および第2の点の深度は同じ、あるいは別のプリミ
    ティブ対象物の先行評価中に決定される請求項1に記載
    の装置。
  4. 【請求項4】 前記評価手段は、前記比較手段の動作に
    応答して、Z2<Z<Z3のとき、Z3内に記憶された
    深度を現在の点の深度(Z)と置換する手段を含む請求
    項3に記載の装置。
  5. 【請求項5】 前記評価手段は、前記比較手段の動作に
    応答して、Z2<Z<Z3のとき、Z3内に記憶された
    深度を現在の点(Z)の深度と置換する置換手段を含
    み、さらに、前記置換手段の動作に応答して、計数手段
    をプリミティブ対象物の数より小さい値にリセットする
    手段をさらに含む請求項3に記載の装置。
  6. 【請求項6】 前記評価手段は、前記比較手段の動作に
    応答して、Z2+eps<Z<Z3+epsでepsは
    公差値であるとき、Z3内に記憶された深度を現在の点
    の深度(Z)と置換する手段を含む請求項3に記載の装
    置。
  7. 【請求項7】 前記評価手段は、前記比較手段の動作に
    応答して、Z2<Z<Z3のとき、Z3に記憶された深
    度を現在の点の深度(Z)と置換する手段を含み、さら
    に、現在の点を通して基準平面から投影されたラインに
    対して、該ラインが交差する、評価中のプリミティブ対
    象物の複数の面を記録する手段を含む請求項3に記載の
    装置。
  8. 【請求項8】 指示手段が、評価されているプリミティ
    ブ対象物上にあるいはその内部に現在の点が位置してい
    ることを示すときのみ、Z2内に記憶された深度をZ3
    内に記憶されている深度と置換する第2の置換手段をさ
    らに含む請求項7に記載の装置。
  9. 【請求項9】 Z3が関連の強度バッファI3を有し、
    Z2が関連の強度バッファI2を有し、前記第2の置換
    手段がまた、I2内に記憶された強度を、現在の点が前
    記プリミティブ対象物の前面上に位置しているときの
    み、I3内に記憶された強度と置換する請求項8に記載
    の装置。
  10. 【請求項10】 前記評価手段は、前記プリミティブ対
    象物の面上の点から前記基準平面へ投影する手段を含
    み、前記基準平面が複数のピクセルに仕切られ、前記評
    価手段はさらに、前記投影手段の動作に応答して、前記
    面の投影によりカバーされるピクセルの位置を決定し、
    かつ中心点が前記プリミティブ対象物の面の点からの投
    影内に位置する中心を有するピクセルのみを選択する手
    段を含む請求項3に記載の装置。
  11. 【請求項11】 前記基準平面が複数のピクセルに仕切
    られ、前記評価手段は、前記プリミティブ対象物の面上
    の点から前記基準平面に投影し、かつピクセルからの点
    の深度を検出する手段を含み、該深度がピクセルの中心
    を基準としている請求項3に記載の装置。
  12. 【請求項12】 第3の深度バッファ手段(Z1)をさ
    らに含み、前記装置はまた、信号の発生に応答して、Z
    2<Z1のときのみ、Z1内に記憶された深度をZ2内
    に記憶された深度と置換する第3の手段を含む請求項8
    に記載の装置。
  13. 【請求項13】 ソリッド対象物を照射する光源の平面
    を基準とした、前記プリミティブ対象物の面上の点から
    前記光源の平面への投影の深度を記憶するシャドウ深度
    バッファ手段(ZS)をさらに含む請求項3に記載の装
    置。
  14. 【請求項14】 前記基準平面を基準とした、点の深度
    を、ZS内に記憶された深度と比較して、もしその点が
    前記光源から見うるかどうか決定する手段をさらに含む
    請求項13に記載の装置。
  15. 【請求項15】 三次元ソリッド対象物を表現する表示
    可能情報を発生する装置において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法で表現する手段と、 前記1つ以上のプリミティブ対象物を繰り返し評価して
    表示可能面を決定する評価手段とを備え、 前記評価手段は、前記プリミティブ対象物の面上の点か
    ら前記基準平面に投影する投影手段を含み、前記基準平
    面が複数のピクセルに仕切られ、前記評価手段は、前記
    投影手段の動作に応答して、面の投影によってカバーさ
    れるピクセルの位置を決定し、かつ前記プリミティブ対
    象物の面上の点からの投影内に位置した中心を有するピ
    クセルのみを選択する手段をさらに含む表示可能情報を
    発生する装置。
  16. 【請求項16】 三次元ソリッド対象物を表現する表示
    可能情報を発生する装置において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法により表現する手段と、 前記1つ以上のプリミティブ対象物を評価して表示可能
    の面を決定する評価手段とを備え、 前記評価手段は、評価されているプリミティブ対象物の
    面上の点の、基準平面に対する深度を決定する手段を含
    み、前記基準平面が複数のピクセルに仕切られ、深度が
    前記点が投影されるピクセルの中心を基準とする、表示
    可能情報を発生する装置。
  17. 【請求項17】 三次元のソリッド対象物を表現する表
    示可能情報を発生する装置において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法により表現する手段と、 前記1つ以上のプリミティブ対象物を評価して表示可能
    面を決定する手段とを備え、 前記評価手段は、評価されているプリミティブ対象物の
    面上の点の、基準面に対する深度を、第1の深度バッフ
    ァ手段内に記憶された第1の点の深度と、および第2の
    深度バッファ手段内に記憶された第2の点の深度とに比
    較する比較手段を含み、前記比較手段は、所定の公差内
    で深度比較を行い、前記所定の公差が、計算によりもた
    らされた丸めの誤差および前記第1および第2の深度バ
    ッファ手段の最小分解能とを補償するように選択された
    値を有する、表示可能情報を発生する装置。
  18. 【請求項18】 三次元のソリッド対象物を表現する表
    示可能情報を発生する装置において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法で表現する手段と、 前記1つ以上のプリミティブ対象物を評価して表示可能
    面を決定する評価手段とを備え、 前記評価手段は、評価されているプリミティブ対象物の
    面上に位置する点の深度を、先に決定された深度と繰り
    返し比較し、かつ深度バッファ手段(Z1)内で、前記
    プリミティブ対象物の表示可能面上に位置することが決
    定された各点の深度を記憶する第1の比較手段を含み、
    前記深度が基準平面に対する深度であり、 前記評価手段は、前記第1の比較手段の動作の終了に応
    答して、前記プリミティブ対象物の前方に向いた面上の
    複数の点を比較し、かつ強度バッファ手段(I1)内
    に、Z1内に記憶されている対応の深度と等しいことが
    決定された深度を有する前方を向いた面上の点の強度を
    記憶する第2の比較手段を含み、 前記第1および第2の比較手段はそれぞれ、所定公差内
    で深度比較を行い、該所定の公差が、少なくとも計算に
    よりもたらされた丸めの誤差を補償するように選択され
    た値を有する、表示可能情報を発生する装置。
  19. 【請求項19】 三次元のソリッド対象物を表現する表
    示可能情報を発生する方法において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法で表現し、 前記1つ以上のプリミティブ対象物の表示可能面を決定
    するため、前記1つ以上のプリミティブ対象物を繰り返
    し評価し、 各々の繰返し評価に対して計数を増分し、 該計数が、表示可能面の決定において変化を生じさせる
    ことなく発生した繰返し評価の所定回数を指示する状態
    を検出し、 前記所定回数の評価が発生するとき評価手段の動作を終
    了させる信号を発生するステップを備える表示可能情報
    を発生する方法。
  20. 【請求項20】 前記所定回数が、対象物を構成するプ
    リミティブ対象物の数と等しい請求項19に記載の方
    法。
  21. 【請求項21】 前記評価するステップは、評価されて
    いるプリミティブ対象物の面上の点の、基準平面に対す
    る深度を、第1の深度バッファ手段(Z2)内に記憶さ
    れた深度と、および第2の深度バッファ手段(Z2)内
    に記憶された第2の点の深度とに比較するステップを含
    み、前記第1の点および第2の点の深度が同じ、あるい
    は別のプリミティブ対象物の先行評価の間に決定される
    請求項19に記載の方法。
  22. 【請求項22】 前記評価するステップは、Z2<Z<
    Z3のとき、Z3内に記憶された深度を現在の点の深度
    (Z)と置換するステップを含む請求項21に記載の方
    法。
  23. 【請求項23】 前記評価するステップは、Z2<Z<
    Z3のとき、Z3内に記憶された深度を現在の点の深度
    (Z)と置換するステップを含み、さらに計数手段をプ
    リミティブ対象物の数より小さい値にリセットするステ
    ップを含む請求項21に記載の方法。
  24. 【請求項24】 前記評価するステップは、Z2+ep
    s<Z<Z3+epsでepsは公差値であるとき、Z
    3内に記憶された深度を現在の点の深度(Z)と置換す
    るステップを含む請求項21に記載の方法。
  25. 【請求項25】 前記評価するステップは、 Z2<Z<Z3のとき、Z3内に記憶された深度を現在
    の点の深度(Z)と置換し、 現在の点を介して前記基準平面から投影されたラインに
    対して、該ラインが公差する、評価中のプリミティブ対
    象物の面の数を記録するステップを含む請求項21に記
    載の方法。
  26. 【請求項26】 面の記録された数は、現在の点が評価
    されているプリミティブ対象物上にあるいはその内部に
    位置することを指示するときのみ、Z2内に記憶された
    深度をZ3内に記憶された深度と置換するステップをさ
    らに含む請求項25に記載の方法。
  27. 【請求項27】 Z3が関連の強度バッファI3を有
    し、Z2が関連の強度バッファI2を有し、さらに、現
    在の点が前記プリミティブ対象物の前面に位置するとき
    のみ、I2内に記憶された強度をI3内に記憶された強
    度と置換するステップを含む請求項26に記載の方法。
  28. 【請求項28】 前記基準平面が複数のピクセルに仕切
    られ、前記評価するステップが前記プリミティブ対象物
    の面上の点から前記基準平面へ投影するステップを含
    み、 いずれのピクセルが面によってカバーされたか決定し、
    ピクセルは、もしその中心が前記プリミティブ対象物の
    面上の点からの投影内に位置するときのみ前記面によっ
    てカバーされたことが決定される請求項21に記載の方
    法。
  29. 【請求項29】 前記基準平面が複数のピクセルに仕切
    られ、前記評価のステップが前記プリミティブ対象物の
    面上の点から前記基準平面に投影してピクセルからの前
    記点の深度を決定し、該決定された深度がピクセルの中
    心を基準としている請求項21に記載の方法。
  30. 【請求項30】 前記信号を発生するステップは、Z2
    <Z1であるときのみ、第3のZバッファ手段(Z1)
    内に記憶された深度をZ2内に記憶された深度と置換す
    るステップを含む請求項26に記載の方法。
  31. 【請求項31】 前記プリミティブ対象物の面上の点か
    ら光源の平面への投影の、前記ソリッド対象物を照射す
    る前記光源の平面を基準にした深度を記憶するステップ
    をさらに含み、前記深度がシャドウ深度バッファ手段
    (ZS)内に記憶される請求項21に記載の方法。
  32. 【請求項32】 前記基準平面を基準とした点の深度
    を、ZS内に記憶された深度と比較して、前記点が前記
    光源から見えるか否かを決定するステップをさらに含む
    請求項31に記載の方法。
  33. 【請求項33】 三次元のソリッド対象物を表現する表
    示可能情報を発生する方法において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法で表現し、 1つ以上のプリミティブ対象物の表示可能面を決定する
    ため、該1つ以上のプリミティブ対象物を評価するステ
    ップを備え、 前記評価するステップは、前記プリミティブ対象物の面
    上の点から、複数のピクセルに仕切られた基準平面に投
    影して、いずれのピクセルが前記面によってカバーされ
    ているか決定するステップを含み、前記の投影するステ
    ップが、もしピクセルの中心が前記プリミティブ対象物
    の面上の点からの投影内に位置するときのみ所与のピク
    セルが前記面によってカバーされたことを決定するステ
    ップを含む、表示可能情報を発生する方法。
  34. 【請求項34】 三次元ソリッド対象物を表現する表示
    可能情報を発生する方法において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法により表現し、 前記1つ以上のプリミティブ対象物の表示可能面を決定
    するため前記1つ以上のプリミティブ対象物を評価する
    ステップを備え、 前記評価するステップは、評価されているプリミティブ
    対象物の面上の点の、基準平面に対する深度を決定する
    ステップを含み、前記基準平面が複数のピクセルに仕切
    られ、深度がその上に点が投影されるピクセルの中心を
    基準としている、表示可能情報を発生する方法。
  35. 【請求項35】 三次元ソリッド対象物を表現する表示
    可能情報を発生する方法において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法で表現し、 前記1つ以上のプリミティブ対象物の表示可能面を決定
    するため前記1つ以上のプリミティブ対象物を評価する
    ステップを備え、 前記評価するステップは、評価されているプリミティブ
    対象物の面上の点の、基準平面に対する深度を、第1の
    深度バッファ手段内に記憶された第1の点の深度と、お
    よび第2の深度バッファ手段内に記憶された第2の点の
    深度とに比較するステップを含み、前記比較するステッ
    プは、所定の公差内で深度を比較し、該所定の公差は少
    なくとも計算によりもたらされた丸めの誤差を補償する
    ように選択した値を有する、表示可能情報を発生する方
    法。
  36. 【請求項36】 三次元のソリッド対象物を表現する表
    示可能情報を発生する方法において、 1つ以上のプリミティブ対象物からなるように対象物を
    コンストラクティブ・ソリッド・ジオメトリ(CGS)
    表示法において表現し、 前記1つ以上のプリミティブ対象物の表示可能面を決定
    するため前記1つ以上のプリミティブ対象物を評価する
    ステップを備え、 前記評価するステップは、 評価されているプリミティブ対象物の面の点の深度を、
    先に決定された深度と繰返し比較し、 プリミティブ対象物の表示可能面に位置すると決定され
    た各点の、基準平面に対する深度を深度バッファ手段
    (Z1)内に記憶し、 前記プリミティブ対象物の前方を向いている面上の点の
    深度をZ1内に記憶さた対応する深度と比較し、 Z1内に記憶された対応の深度と等しいと決定された深
    度を有する前方に向いている表面上の点の強度を強度バ
    ッファ手段(I1)内に記憶するステップを含む表示可
    能情報を発生する方法。
  37. 【請求項37】 前記繰返し比較するステップは、所定
    の公差を用いて深度を各々比較し、該所定の公差が少な
    くとも計算によりもたらされた丸めの誤差を補償するよ
    うに選択した値を有している請求項36に記載の方法。
JP4002910A 1991-03-12 1992-01-10 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 Expired - Lifetime JPH07122908B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67205891A 1991-03-12 1991-03-12
US672058 1991-03-12

Publications (2)

Publication Number Publication Date
JPH0581438A true JPH0581438A (ja) 1993-04-02
JPH07122908B2 JPH07122908B2 (ja) 1995-12-25

Family

ID=24696985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4002910A Expired - Lifetime JPH07122908B2 (ja) 1991-03-12 1992-01-10 3次元のソリッド物体を表す表示可能情報を生成する装置と方法

Country Status (3)

Country Link
US (1) US5402532A (ja)
EP (1) EP0503251A2 (ja)
JP (1) JPH07122908B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997009370A1 (en) * 1995-09-01 1997-03-13 Raychem Corporation Extruded silicone gel profiles
JP2014174867A (ja) * 2013-03-12 2014-09-22 Takumi Corp 画像処理装置及び画像処理方法

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07501162A (ja) * 1991-06-28 1995-02-02 リム ホン リップ 3dコンピュータグラフィック用可視性計算の改善
JP3332165B2 (ja) * 1992-08-08 2002-10-07 株式会社リコー 画像処理装置
WO1994027240A1 (en) * 1993-05-10 1994-11-24 Apple Computer, Inc. Computer graphics system having high performance multiple layer z-buffer
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
GB9406509D0 (en) * 1994-03-31 1994-05-25 Argonaut Software Limited Rendering 3-d scenes in computer graphics
JPH0877356A (ja) * 1994-09-09 1996-03-22 Fujitsu Ltd 三次元多眼画像の処理方法及び処理装置
US5561750A (en) * 1994-09-22 1996-10-01 Seiko Epson Corporation Z-buffer tag memory organization
US5649078A (en) * 1995-03-22 1997-07-15 International Business Machines Corporation Efficient two-pass rasterization scheme utilizing visibility information
US6275233B1 (en) * 1996-11-01 2001-08-14 International Business Machines Corporation Surface simplification preserving a solid volume
US5933156A (en) * 1997-12-03 1999-08-03 Margolin; Jed Z-Buffer for row addressable graphics memory with flash fill
AU5688199A (en) 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US6577317B1 (en) 1998-08-20 2003-06-10 Apple Computer, Inc. Apparatus and method for geometry operations in a 3D-graphics pipeline
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
GB2343600B (en) * 1998-11-06 2003-03-12 Videologic Ltd Depth sorting for use in 3-dimensional computer shading and texturing systems
GB9904901D0 (en) * 1999-03-03 1999-04-28 Canon Kk Computer graphics apparatus
US6674894B1 (en) 1999-04-20 2004-01-06 University Of Utah Research Foundation Method and apparatus for enhancing an image using data optimization and segmentation
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6664962B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6980218B1 (en) * 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
DE10144710A1 (de) * 2001-09-11 2003-03-27 Heidenhain Gmbh Dr Johannes Verfahren und Vorrichtung zur Bearbeitung von Konturtaschen
US7120286B2 (en) * 2001-11-21 2006-10-10 Mitutoyo Corporation Method and apparatus for three dimensional edge tracing with Z height adjustment
US7599044B2 (en) 2005-06-23 2009-10-06 Apple Inc. Method and apparatus for remotely detecting presence
US7242169B2 (en) * 2005-03-01 2007-07-10 Apple Inc. Method and apparatus for voltage compensation for parasitic impedance
US9298311B2 (en) * 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7577930B2 (en) 2005-06-23 2009-08-18 Apple Inc. Method and apparatus for analyzing integrated circuit operations
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
US7441230B2 (en) * 2005-10-07 2008-10-21 Lucasfilm Entertainment Company Ltd. Method of utilizing product proxies with a dependency graph
US7598711B2 (en) * 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
US9116915B1 (en) * 2012-03-29 2015-08-25 Emc Corporation Incremental scan
US9305370B2 (en) * 2013-07-31 2016-04-05 Qualcomm Incorporated Graphical rendering with implicit surfaces
KR20150042095A (ko) * 2013-10-10 2015-04-20 삼성전자주식회사 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법
US20160364845A1 (en) * 2015-06-11 2016-12-15 Rahul P. Sathe Pixel merge unit efficiency by identifying silhouette pixels
US10643336B2 (en) 2018-03-06 2020-05-05 Sony Corporation Image processing apparatus and method for object boundary stabilization in an image of a sequence of images
US10614340B1 (en) * 2019-09-23 2020-04-07 Mujin, Inc. Method and computing system for object identification

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083287A (en) * 1988-07-14 1992-01-21 Daikin Industries, Inc. Method and apparatus for applying a shadowing operation to figures to be drawn for displaying on crt-display
JP2690110B2 (ja) * 1988-08-15 1997-12-10 沖電気工業株式会社 走査変換方法
US5027292A (en) * 1989-04-19 1991-06-25 International Business Machines Corporation Multiple depth buffers for graphics and solid modelling
US5200740A (en) * 1989-08-01 1993-04-06 Adobe Systems Incorporated Dropout-free center point fill method for displaying characters

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997009370A1 (en) * 1995-09-01 1997-03-13 Raychem Corporation Extruded silicone gel profiles
JP2014174867A (ja) * 2013-03-12 2014-09-22 Takumi Corp 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
JPH07122908B2 (ja) 1995-12-25
EP0503251A3 (ja) 1994-01-12
US5402532A (en) 1995-03-28
EP0503251A2 (en) 1992-09-16

Similar Documents

Publication Publication Date Title
JPH0581438A (ja) 三次元ソリツド対象物を表現する表示可能情報を発生する装置と方法
US4888583A (en) Method and apparatus for rendering an image from data arranged in a constructive solid geometry format
Slabaugh et al. A survey of methods for volumetric scene reconstruction from photographs
JP4078716B2 (ja) 画像処理装置および方法、並びに提供媒体
US6040835A (en) System for depicting surfaces using volumetric distance maps
EP0501635B1 (en) Accelerated shadow testing method for three dimensional graphics render system
US6791540B1 (en) Image processing apparatus
EP0638875B1 (en) A 3-dimensional animation generating apparatus and a method for generating a 3-dimensional animation
US5596685A (en) Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
US5497453A (en) Method and apparatus for detecting and visualizing interferences between solids
EP0314288B1 (en) Improvements in computer graphics generation and display
JP4409139B2 (ja) 3dモデルをつくる方法および装置
TW473693B (en) Method and apparatus for handling translucency in 3D graphics
WO2008013605A1 (en) Real-time gpu rendering of piecewise algebraic surfaces
GB2275155A (en) Image processing
EP0782105B1 (en) Processing image data
JPH07311856A (ja) 画像データ処理方法および装置
CN110874858B (zh) 用于渲染反射的系统和方法
Schollmeyer et al. Efficient and anti-aliased trimming for rendering large NURBS models
JPH07225854A (ja) 3次元物体の2次元表示を生成するシステム及び方法
Rossignac et al. Correct shading of regularized CSG solids using a depth-interval buffer
Hable et al. CST: Constructive solid trimming for rendering BReps and CSG
US5821942A (en) Ray tracing through an ordered array
EP0596666B1 (en) Processing image data
JPH09138865A (ja) 3次元形状データ処理装置