JPH0727579B2 - グラフィクス処理装置及び方法並びにピクセル・メモリ装置 - Google Patents

グラフィクス処理装置及び方法並びにピクセル・メモリ装置

Info

Publication number
JPH0727579B2
JPH0727579B2 JP2099450A JP9945090A JPH0727579B2 JP H0727579 B2 JPH0727579 B2 JP H0727579B2 JP 2099450 A JP2099450 A JP 2099450A JP 9945090 A JP9945090 A JP 9945090A JP H0727579 B2 JPH0727579 B2 JP H0727579B2
Authority
JP
Japan
Prior art keywords
depth
buffer
sweep
solid
product
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
Application number
JP2099450A
Other languages
English (en)
Other versions
JPH0362276A (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
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH0362276A publication Critical patent/JPH0362276A/ja
Publication of JPH0727579B2 publication Critical patent/JPH0727579B2/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/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)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、広くコンピュータ・グラフィクスとソリッド
・モデルの生成に関し、特にコンストラクティブ・ソリ
ッド・ジオメトリ(CSG)において単純なプリミティブ
・ボリュームのプーリアン・コンビネーションと規定さ
れるソリッドの、実物に近い陰影の付いたイメージを生
成する装置に関する。
B.従来の技術及びその課題 ソリッド・モデリング・システムは、製造パーツおよび
製造プロセスのデザインにおいてますます重要な役割を
果たしつつある。上記システムは、ユーザに対して、デ
ザイン活動のコストを相当に削減するインターラクティ
ブなデザイン・ツールおよびデザイン・サイクルを短縮
し且つ最終製品の品質と製造プロセスの効率を向上させ
る解析ツールを提供する。
ソリッドは、タイプ、位置、ソリッドのすべての面の次
元のリストとして、境界によって記述される。しかしこ
のような記述は一般に、人間にとってあまりに冗漫であ
る。人間は、先に定義されているサブソリッドを組み合
わせたり変更したりすることによって、階層的にそして
漸進的にソリッドをデザインすることを好む。このよう
なサブソリッドの組み合わせは、多くはブーリアン・セ
ット・セオレティック・オペレーションによって正確に
指示される。たとえば、2つのパーツを組み立てて1つ
のソリッドを作ることは、数学的にはセット・セオレテ
ィック・ユニオン(和)としてモデル化することができ
る。スロット・ホール・ボスのような特殊な幾何学的フ
ィーチャを得るため形状に手を加えることは、しばしば
修正対象のソリッドと、該ソリッドに付加したりそれか
ら削除したりするシリンダやブロックなどの単純なプリ
ミティブ・ボリュームとの間の、セット・セオレティッ
ク・ユニオンおよびディファレンス(差)によって定式
化される。
ソリッド・モデルは、しばしば、ミリングやドリリング
によるマテリアル除去のような、ある加工操作の幾何学
的影響を表現し解析するのに使用される。そのような幾
何学的影響もまた、セット・セオレティック・オペレー
ションによって、たとえばパーツとカッタによってスイ
ープされる領域とのディファレンスとして、表現可能で
ある。このような一連のオペレーションを加えること
は、マシニング・プロセスをシミュレートする効果的な
方法である。カッタの軌跡が与えられれば、ソリッド・
モデラを使うことによって、カッタがフィクスチュアと
衝突しないことを確かめることができ、カッタのモーシ
ョンごとにどれだけのマテリアルが取り除かれるかを計
算することもできる。このような解析は、効率のよい、
そしてエラーの生じない製造プロセスを計画する上で重
要である。解析を行うためには、ソリッド同士のブーリ
アン・セット・インターセクション(積)を計算し、か
かるインターセクションが空か否かをチェックする能力
が要求される。
同様に、パーツの組立可能性は、ソリッド・モデラを使
って、指定された形状および位置公差に従って、組立対
象となる各パーツのモデルを数多く作成し、どのような
場合にモデルが衝突するかを判断することによって解析
可能である。一般に、2つのソリッドが衝突(干渉)す
るのは、それらのセット・セオレティック・インターセ
クションが空ではない3次元集合であるときに限られる
と考えられている。
マシニング・プロセスのシミュレーションを含む多くの
アプリケーションでは、2つの表現(レプレゼンテーシ
ョン)によって同一のシステムが決定されるか否かにつ
いての判断が要求される。たとえば、ストックに対する
金属切削の結果をシミュレートして得られるソリッド・
モデルが、所望の最終パーツのソリッド・モデルと一致
することを確認することが重要である。
このような重要なアプリケーションでは、パーツやツー
ルを表現したり、加工効果を反映したりすることのでき
るソリッド・モデルは、セット・セオレティック・ブー
リアン・オペレーションによって、サブソリッドつまり
プリミティブ・ボリュームを組み合わせることによって
指定することができる。そのようなオペレーションの例
としては、セットのユニオン(和)、インターセクショ
ン(積)、およびディファレンス(差)がある。かかる
ソリッドは、コンピュータ・メモリの中に2進木(バイ
ナリ・ツリー)表現の形で効率よく記憶することのでき
るセット・セオレティック・ブール式によって表現可能
である。第1図は、2つのサブソリッド(2、3)のユ
ニオンであるソリッド(1)の2進木表現を示したもの
である。サブソリッド(3)は、ブロック・プリミティ
ブ(4)とシリンダ・プリミティブ(5)のディファレ
ンスである。このようなツリーの形状(フォーム)は、
ブール式(2)+((4)−(5))のパーシング(pa
rsing)によって直に得られる。ツリーのルート(ソリ
ッド1)は、ブール式によって規定されるソリッドに関
連づけられている。ツリーの内部ノードは、ブール式に
対応し且つサブソリッドに関連づけられている。ツリー
の葉はプリミティブ・ボリュームに関連づけられてい
る。プリミティブ・ボリュームは概して、比較的単純な
代数学的半空間、すなわち3次元座標系において単純な
多項式で表される関数が正ではない値をとる領域、のイ
ンターセクションである。たとえば、原点を中心とする
半径Rのボールは、関数x2+y2+z2−R2≦0によって規
定される半空間である。任意に位置づけられ且つ方向づ
けられたプリミティブ・ボリュームは、剛体運動の変形
(rigid motion transformation)、つまり回転と並進
の組み合わせ、および簡便な局所座標系で規定された合
同プリミティブ・ボリュームによって記述することがで
きる。単純なプリミティブ・ボリュームは、球、シリン
ダ、コーンなどのタイプ、および半径、長さ、頂角など
のイントリンシック・パラメータによって表わすことが
出来る。かかるツリーは、コンストラクティブ・ソリッ
ド・ジオメトリ表現として知られており、以下ではCSG
と略す。
プリミティブ・ボリュームの位置や寸法、つまりイント
リンシック・パラメータは、CSGツリーによって表され
るソリッドの全ファミリ中の特定メンバーを特徴づける
数個の1次パラメータによって表現することも可能であ
る。したがって、このようにしてパラメータ化されたCG
S表現は、その寸法が公差限度内で変化し得るパーツの
組立をモデル化するのに便利であり、よって上述の問題
をモデル化して解くのに用いることができる。
デザイン活動は、一連のステップに分解すると好都合な
場合が多い。つまりサブソリッドのマージによって、あ
るいは幾何学的フィーチャ、ブレンド・フィレットなど
の細部を追加して変更することによって、最終的なソリ
ッド・モデルを段階的に作っていくのである。しかしこ
ういった複雑なプロセスでは、人間のミスはまず避けら
れず、多くの場合、デザイナがステップごとに結果をチ
ェックし、必要なら調整を行うという試行錯誤過程にな
る。そのような調整は、パラメータの値の変更に限られ
る場合もあり、特定のCGSツリーの構造を修正しなけれ
ばならない場合もある。幾何形状をデザインする対話的
プロセスの能率は、最終的には、視覚による確認に大き
く依存する。デザインが、表示装置上である特定のデザ
インまたは調整ステップの結果を直ちにテストできなけ
ればならないのである。CGSパラメータや構造の変更結
果がスクリーンに直ちに反映されるようにするだけでは
なく、デザイナが、対話的手法により、表示オブジェク
トを回転させたりズームしたりすることも可能でなけれ
ばならない。実用性を考慮すれば、表示されたイメージ
は、曖昧さのない明瞭なものでなければならない。この
点に関していえば、表示結果は、ソリッド表面の反射光
の強度を表示することで重要な形状や方向に関する情報
が伝えられる陰影付きイメージによって向上する。陰影
を正確にモデル化することによって、リアリズムと視覚
的な手がかりが加わる。ただし、シャドウ・モデリング
は、パーツのデザインや製造プロセスの解析に必須であ
るとは、一般には考えられておらず、ここでも詳細には
ふれない。
上述のように、組立解析および製造プロセスのシミュレ
ーションは、ソリッド干渉の反復検出に基づくものであ
り、これは、2つのソリッドのインターセクションが空
集合に相当するか否かのテストを伴う。また該シミュレ
ーションは、ソリッド同士のディファレンスの反復検出
に基づくものでもあり、これには、2つのソリッドのシ
ンメトリック・ディファレンスが空集合に相当するか否
かのテストが含まれる。このようなテストは、ソリッド
が複雑な場合は視認によっては実施できない。またソリ
ッドが単純な場合でも、解析が繰り返しの多いものであ
るために、自動化が必須条件になる。したがって、ここ
で重要なことは、ディファレンスや干渉を検出するタス
クを、コンピュータ・システムによって効率的かつ自動
的に行うことである。
複雑なCSGモデルから陰影付きイメージを生成するにあ
たっては、このプロセスが大量の演算とデータ処理を伴
うという問題がある。汎用コンピュータで実行されるシ
ェーディング・プログラムは、実行速度が遅すぎて対話
的デザインには適さず、このプログラムを使うことは、
デザイナの時間を有効に使うことにはならない。表示タ
スクの一部を実行する専用ハードウェアが一般に入手で
きるが、これはCSGモデルの処理には適さない。ほとん
どの場合、こういった専用ハードウェアは、ソフトウェ
アによる前処理と組み合わせなければならず、その場合
は、専用ハードウェアの性能は、対話的デザインに許容
し得る限度以下に落ちる。
ここで、本発明によるメリットをより明確にするため
に、ソリッド・モデルの陰影付きイメージを形成するた
めに開発された手法について説明する。説明から明らか
になるが、このような手法を汎用コンピュータに実施し
て得られる性能は、対話的デザインには適さない。ま
た、特殊用途向けハードウェアによる手法の欠点につい
ても述べる。
陰影付き平面や曲面のイメージを生成する機能は、グラ
フィック・ワークステーションで利用できる。これは、
GouraudシェーディングあるいはPhongシェーディングを
用いて多角形を塗りつぶす手法を提供する。ソリッド・
モデラのソフトウェアが、空間内の多角形の角の座標な
ど、ソリッドの各面を簡潔に記述し、ワークステーショ
ンが、面の陰影付きイメージを表示スクリーンに描く。
色と強度は、ユーザが光源の位置とモデル空間内の視点
とを定義していれば、面で反射される光の量を示すため
に選択される。ユーザは、視点の位置を変えることで、
たとえば表示されたオブジェクトの背面を確かめたり細
部を拡大したりできる。
このようなシステムでは、表示スクリーンが多数のピク
セルすなわち画素に分けられている。面の陰影付きイメ
ージをスクリーンに表示するためには、面が投影される
ピクセルを適宜色付けしなければならない。投影先のピ
クセルは、オブジェクト空間内のスクリーン・モデルを
用い、そのスクリーン・モデルを、実際のスクリーンの
1ピクセルに関連する小さい四角形に分割して決定され
る。第2図からわかるように、面の一点は、モデル空間
において、対応する点と視点とを結ぶ線が、対応する四
角形においてスクリーン・モデルと交わる場合は、ピク
セルを“カバー”する、つまりピクセルによって面の一
点が表示される。面が表示されると、カバーされたピク
セルに前に付けられた色は捨てられる。あるピクセル
は、ソリッド・モデルの数個の面の投影によってカバー
できるが、表示されるのは視点に最も近い可視面だけで
あり、“隠面”は消去される。このような隠れた面また
は表面を消去する手法はいくつか知られている。
前面や背面については(第3a図ないし第3d図参照)、面
の内側の各点において、法線はソリッドの外側に向けら
れる、と想定した手法がある。視点が与えられると、モ
デルの各面は、分離した2つのセット、すなわち前面か
ら構成されるセットと背面から構成されるセットに分け
られる。このように分ける際には、球などの曲面を、分
離したサブセットに分割しなければならない場合があ
る。前面の各点において、法線は、視点の方向へ向けら
れ、そのとき法線と視点に対する方向との角度は90°よ
り小さい。背面の各点において法線は、視点から離れる
方向へ向けられ、そのとき法線と視点に対する方向との
角度は、90°に等しいかまたはより大きい。ソリッド・
モデルでは、背面は見えない面である。面がすべて平面
である多面体モデルの場合、従来のほとんどのシステム
は、前面と背面を自動的に区別し、前面だけを表示する
ようにという指示を受け付ける。凸面モデルの場合各ピ
クセルは、多くとも1つの前面でカバーされる。その結
果、凸面モデルのイメージには、前面を表示するだけで
陰影が正しく付けられる。
しかし、第4図に示すように、凸面以外のソリッドの場
合は、表示スクリーンにおける数個の前面の投影像がオ
ーバラップし、処理された面が、たとえ前に処理された
他の面によって部分的にか全体的に隠されてもスクリー
ンに表示されることがある。
可視面だけを表示する最も簡単な方法は、可視面がさえ
ぎる面の後に可視面を表示するようにすることである。
この方法では、各面は、第4図に示すように、後方から
前方へ表示できるよう、よって、さえぎられる面よりも
視点に近い可視面が最後に表示されるように、順序付け
られる。このような順序付けは、視点に依存しないバイ
ナリ・スペース・パーティション(BSP)のツリーから
導かれる。ただし、BSPツリーの構造では、演算が多く
なり、ソフトウェアによる前処理が必要になる。そして
これは各面の分割を伴うことである。したがって、この
方法は、リアルタイムで対話的モデル化を行うシステム
には適さない。
このBSPツリーの前処理ステップをなくそうとする場
合、奥行バッファすなわちZバッファを用いれば、可視
面を各ピクセルに対して自動的に選択できる。このZバ
ッファ方式では、各ピクセルはZバッファ内の格納場所
に関連づけられる。Zバッファの内容は、現在表示され
ている点の奥行であり、代表的な奥行は、視点と表示点
との距離で表される。所定の表示ピクセルに新しい点が
表示されるごとに、投影される点の奥行が、所定のピク
セルのメモリ位置に格納された奥行と比較される。新し
い点が前面にあれば、すなわち、その奥行が、ピクセル
のメモリに格納されたものより小さい場合、新しい点が
表示され、ピクセルのメモリが更新されるので、このメ
モリに新しい点の奥行が反映される。他の場合、新しい
点は無視される。すなわち、新しい点は、すでに表示さ
れている点の背後に隠れるので見えなくなる。
ある面について、各ピクセルに投影される各点の奥行の
値を生成するプロセスは、スキャン・コンバージョンと
呼ばれる。代表的な奥行値は、ピクセルとピクセルとの
間で一定の奥行の増分を用いたスキャン・ラインの順序
で生成される。本発明との関係で以下に述べる方法で
は、面によってカバーされない各ピクセルに、奥行の省
略時の値(デフォルト)が割り当てられる。このデフォ
ルトは、Zバッファで表現可能な最大奥行または最小奥
行であり、最大/最小は面の役割によって決まる。
この方法を、複数の点をa、b、cとして第5a図ないし
第5d図に示す。第5a図において、各ピクセルの強度は、
背景の強度に等しく設定され、Zバッファに格納される
距離は初めに、無限大または一般に大きい値に等しく設
定される。第5b図では点“a"が処理される。強度は、点
“a"での反射強度に等しくされ、Zバッファに格納され
た対応するピクセルの距離は、視点から点“a"への距離
に等しくされる。第5c図では点“b"が処理される。“b"
までの距離は“a"までの距離より小さいので、点“b"が
表示され、強度は、点“b"での反射強度に等しくされ
る。さらに、“b"の奥行がZバッファのメモリに格納さ
れる。第5d図では点“c"が処理される。Z軸に沿った点
“c"までの距離は、その時点でZバッファ・メモリに格
納されている点“b"の距離より大きいので、点“c"は無
視され、この点の強度は結局、点“b"の強度となる。点
“b"が、対応するピクセルを通して見える点である。
BSTツリーあるいは従来のZバッファを採用する際に大
きな問題となるのが、ソリッドの各面は既知でなければ
ならないということである。ソリッドの各面は、CSGツ
リーでは明示的に表現されないため、表示する前に各面
を導く必要がある。このような導出は“バウンダリ・エ
バリュエーション”(境界評価)として知られ、時間の
かかる幾何計算を相当な回数行うという複雑なプロセス
である。代表的な境界評価プロセスでは、ソリッドの端
部の計算によって、プリミティブ・ボリュームの各面が
切り込まれる(trim)。端部は最初、曲面または対をな
す表面のインターセクションを生成することによって計
算され、次に、これらの曲面が、プリミティブ・ボリュ
ームの他の面とのインターセクションに従って細分化さ
れる。細分化された部分から、CSGツリーで得られたブ
ール式により、最終的なソリッドの端部が選択される。
曲面が3つ以上のプリミティブ面にかかると、選択時に
“端の近傍”を評価するというかなりコスト高になるオ
ペレーションが必要になることがある。ここから分かる
ように、プリミティブが相当数にのぼるオブジェクトの
場合、代表的な汎用コンピュータ上で実施される境界評
価プロセスは時間がかかりすぎて、対話的な用途には向
かない。その上、1個のプリミティブ・ボリュームの寸
法や位置など、1個のパラメータが変わると、境界全体
の表現を再計算しなければならない場合もある。このよ
うに、計算に時間がかかると、デザイン上のミスを訂正
するときよく必要になるような、オブジェクトを簡単に
処理するという機能が著しく制限される。
境界評価に伴うこの問題は、第6図に示したレイ・キャ
スティング・アルゴリズムを採用することによって回避
できる。このアルゴリズムは、視点とスクリーン・モデ
ルのピクセルとを通過する線あるいはレイ(半直線)を
計算する。次に、かかるレイのそれぞれとソリッドとの
交点が計算される。各レイに沿った最初の交点A(視点
に最も近い)が選択され、レイが当たるその点の面を基
に、関連するピクセルの色が求められる。レイとソリッ
ドとの交点の計算は、最初にレイを、プリミティブ・ボ
リュームの内側、表面、または外側に全体が位置するセ
グメントに分けることによって、各プリミティブ・ボリ
ュームに対してレイを分類し、次に分類結果を、ツリー
をさかのぼって、そのツリーの各ノードに関連するブー
ル演算子に従ってマージすることによって実行できる。
このようなマージは一般に、値の比較と論理演算を伴う
にすぎない。しかし、プリミティブに対してレイを細分
化するというプロセスでは、線や面の交点を計算する必
要があり、これは表面が複雑になると時間がかかる(こ
のような比較的複雑な面は、高次の多項式のOに対応す
る)。このように、レイ、キャスティング・アルゴリズ
ムをソフトウェアで実施したものは遅すぎて、対話的な
用途には適さない。
各ピクセルに対するスキャン・ライン方式では、所定の
ピクセル列のレイがすべてまとめられ、レイのグループ
として、表示スクリーンの水平の列または線に対応す
る。所定の列のレイはすべて、イメージがその列とオー
バラップするプリミティブと交差させるだけでもよい。
このスキャン・ライン方式は、現在の列で“アクティ
ブ”なプリミティブを記録する。アクティブなプリミテ
ィブとは、その投影像が列とオーバラップするプリミテ
ィブである。スクリーン上の列は、一列ごとに、あるい
は比較的小さい連続した列のグループごとにトップダウ
ンに処理される。プリミティブは、その最上位点が、処
理された列にあるときにアクティブ・リストに加わる。
該プリミティブは、その最下位点が、前に処理された列
にあるときにアクティブ・リストから外される。最上位
点と最下位点は、それぞれの頂点をスクリーンに投影し
たときの座標によって決定される。境界が平面であるソ
リッドの場合、最下位点は比較的簡単に計算できる。ま
た、連続した列とアクティブな面との交点を計算するた
めに、効率のよりインクリメンタル方式を用いることも
できる。このようなスキャン・ライン方式は、多面体の
境界を表示するために実施されている。しかし、これま
でのスキャン・ライン方式では、ソリッド境界の計算お
よび平面への分解や近似は遅すぎて、対話の速度で実行
することはできない。
表示プロセスの速度を上げることを目的とした専用ハー
ドウェア・システムが開発されている。このような専用
システムは当初、ビュー変換(viewing transformatio
n)とスキャン・コンバージョン・プロセスの各部を専
用ハードウェアによって実施していた。性能を改良する
ために、ハードウェアにパラレル・アーキテクチャを用
い、ピクセル・パラレル・アルゴリズムを採用したシス
テムが開発されている。このシステムでは、数個のプロ
セッサが、異なるイメージ・セグメントを並列に処理す
る。この方式を突きつめたものが、ディスプレイの各ピ
クセルに小型のプロセッサを用いるシステムによって提
供されている。いわゆるスキャン・ライン・システム
は、一本の仮想走査線に一列のプロセッサを準備するこ
とで、暫定的な手法を提供するものである。ピクセル値
が生成されると、この値はビデオ・ディスプレイに直接
書き込むか(この場合はビデオ・リフレッシュ・レート
で値を生成する必要がある)、またはフレーム・バッフ
ァに格納することができる。
このような専用ハードウェア・システムは一般に、汎用
コンピュータよりも実質上複雑でありコスト高になる。
さらに、その性質上、CSGソリッドに対して効率よく且
つ高速にシェーディングを行うという問題に答えていな
い。また、こうした専用システムにおいても、ソリッド
の各面と境界を決定する際およびソリッドのCSG表現を
処理する際に前述のような欠点がみられるので、システ
ムの速度が犠牲になる。
上述のように、レイ・キャスティング・アルゴリズムの
マージ・ステップでは、コスト高につながる複雑な計算
を要する。これを避けるために、また、CSGソリッドを
表示するとき、ハードウェアを充分活用して面のスキャ
ン・コンバージョンおよびビュー変換をサポートするた
めに、奥行バッファ・アルゴリズムが提案されている。
このアルゴリズムは、CSGツリーを積和の(選言)形に
変換する。この形式でプロダクトはそれぞれ、ソリッド
のプリミティブまたはそのコンプリメント(補集合)の
インターセクションである。このアルゴリズムでは、奥
行バッファを使用して各プリミティブの面上の点がプロ
ダクトの中の他の全プリミティブと比較される。この比
較が行われるごとにプロダクトにはない点が除外され
る。残りの点は、表示の前に奥行バッファを使用して処
理され、可視点が選択される。
この方法は、各プリミティブの点の奥行がプロダクト内
の他の全プリミティブと比較されることによってプロダ
クトが与えられるという点が大きな欠点と言える。この
ような比較では、各プロダクト内の各プリミティブにつ
いてスキャン・コンバージョンを何度も繰り返さなけれ
ばならない。たとえば、プロダクトABCDEのプリミティ
ブAがスキャン・コンバートされる場合、面B、C、
D、Eをスキャン・コンバートすることによって、プロ
ダクトABCDE内の可視部に相当する大きさにまでAを切
り込まなければならない。次に、Bのスキャン・コンバ
ージョンを行うには、残りのプリミティブC、D、Eを
再びスキャン・コンバートしてBをその可視部に相当す
る大きさにまで切り込まなければならない。このプロセ
スは、プロダクトの全プリミティブが処理されるまで繰
り返される。この例では、Eは5回スキャン・コンバー
トされる。
したがって、プロダクト内のプリミティブを繰り返しス
キャンすることをなくした方法、たとえばプロダクトの
プリミティブを1回スキャンするだけでプロダクトが与
えられる方法を目標とするのが望ましい。さらに、すで
に明らかにしが、CSG表現によるソリッドに対して、実
物に近いシェーディングを効率よく高速に実行でき、か
かるソリッド同士のディファレンスや干渉を簡単に検出
する装置も必要である。
C.課題を解決するための手段 前述の問題は、実物に近い陰影が付けられたソリッドを
生成する本発明による装置によって解決され、他のメリ
ットも得られる。ソリッドは、CSGにおいて単純なプリ
ミティブ・ボリュームのブーリアン・コンビネーション
と規定されているタイプである。本発明は、ソリッド同
士の干渉とディファレンスを容易に検出するものであ
る。本発明の装置は、アーキテクチャとして、前面と後
面の少なくとも一対の奥行バッファを採用している。こ
れはピクセル・パラレル・コンピュータ・システムで実
現することも、あるいはコンピュータ・グラフィクスで
用いられるスキャン・ライン・コンピュータ・システム
上で効率よくシミュレートすることもできる。本発明の
方法は、Z連結プロダクトと呼ばれる特殊なブール式を
CSG表現から抽出するものである。Z連結プロダクト式
および前面と後面の奥行バッファの対を併用すること
で、CSGで規定されたソリッド・オブジェクトの実物に
近いシェーディング像を生成するとき、あるいはかかる
ソリッド同士の干渉やディファレンスを検出するときの
処理効率が大幅に向上する。本発明を実施することで、
ソリッド・モデリングやCAD/CAMアプリケーションに用
いられるコンピュータ・システムの性能が大幅に向上す
る。
本発明はさらに、CSGで表現されるソリッドの陰影付き
イメージを生成するために、また、かかる2つのソリッ
ドの干渉とディファレンスを検出するために利用でき
る。本発明は、Z連結スイープという新規の概念および
関連概念を用いる。関連概念としては、任意のCSGツリ
ーによって表現されるソリッドは、Z連結プロダクトの
ユニオンとしても表現できること、またこのようなZ連
結プロダクトはそれぞれ、2つのZ連結スイープのイン
ターセクションとして表すことができるという考え方が
ある。このほか、このZ連結プロダクトは、Z連結スイ
ープの表現を用いて元のCSGツリー構造から直接かつ効
率的に抽出可能である。
本発明は、任意のZ連結プロダクトによって占有される
ボリュームが、2つの奥行バッファによって完全に表現
されることと、Z連結プロダクトから反射する光の強度
が、強度バッファに格納されるということを示すもので
ある。2つの奥行バッファと1つの強度バッファとを含
むZ連結プロダクトのトリプル・バッファ表現は、この
プロダクトを規定する各Z連結スイープを1回だけスキ
ャン・コンバートすることによって生成される。さら
に、スキャン・コンバーションの間、空プロダクトおよ
び特定のラインを含むプロダクトの空インターセクショ
ンが簡単に検出される。
本発明はさらに、各Z連結プロダクトの前面バッファを
従来の奥行バッファにマージすることによって最終的な
イメージが容易に得られることと、中間プロダクトを格
納して全体的なパフォーマンスを向上させるために、数
組のトリプル・バッファを採用できることを示すもので
もある。
本発明により、トリプル・バッファを備える数個のプロ
セッサが作動して、プロダクトが評価され、各プロダク
トの評価結果が1つのZバッファにマージされる。CSG
ツリーに沿って処理が進むと、積和ツリーを展開するこ
となく、各Z連結プロダクトの表現が得られる。この表
現は、各スイープを規定するプリミティブの前面または
後面に関するレファレンスのリストである。各Z連結プ
ロダクトのZバッファ表現は、直ちに生成され、プロダ
クトの各プリミティブ面は1回スキャン・コンバートす
るだけですむ。
干渉またはディファレンスの検出プロセスは、空でない
Z連結プロダクトが検知されたとき終了する。
陰影付きイメージの生成では、強度バッファが、各Z連
結プロダクトの奥行バッファ表現とともに計算される。
強度バッファは、Z連結プロダクトによって表現される
ソリッドのイメージを含む。各プロダクトの表現は、イ
ンクリメンタルに統合されて、最終イメージが表現され
る。このような組み合わせオペレーションの間、各ピク
セルについて、視点に最も近いZ連結プロダクトの前面
の奥行を格納することによって、各Z連結プロダクトの
可視部を選択するために、汎用奥行バッファが用いられ
る。また、Z連結プロダクトの前面の可視部(サブセッ
ト)のイメージを格納するために汎用強度バッファも採
用される。
本発明の方法は、上述のピクセル・パラレル・アルゴリ
ズムと同様に、スキャン・ライン・アーキテクチャを用
いることによって、並列の全ピクセルを対象として、あ
るいは一度に数列のピクセルのみを対象として実施でき
る。
本発明では、奥行バッファと強度バッファをそれぞれ追
加して、前面奥行バッファ、後面奥行バッファおよび強
度バッファを含むトリプレットのグループに分け、Z連
結プロダクトのユニオンへの展開が終了していないブー
ル式を1パスで処理することも可能である。バッファの
トリプレットを複数個用いることで、各プリミティブ面
の処理回数の合計が小さくなり、本発明の装置全体の効
率と速度も大きく改良される。
各プロダクトに3つのバッファ(前面奥行バッファ、後
面奥行バッファ、強度バッファ)を用いる代わりに、こ
こで示したアルゴリズムの中には、2つのバッファ(前
面奥行バッファと強度バッファ)および1つのビット・
マスクしか必要としないものがある。したがって後面奥
行バッファは(代表的なものは1ピクセル当り少なくと
も24ビットのメモリを要する)、メモリが1ピクセル当
り1ビットだけの小型のバッファと置き換えることがで
きる。フルスクリーンに奥行バッファが用いられる場
合、このような節約の意味は大きい。
本発明によるスキャン・アーキテクチャ・システムは、
プリミティブ面すなわち半空間をすべて処理することな
く、Z連結プロダクトを自動的に除外する。除外される
のは、Z連結プロダクトの規定に用いられるZ連結スイ
ープが、表示が計算されるピクセルの列と交差しないと
きである。また、所定のZ連結プロダクトですでに処理
されているすべてのZ連結スイープの、面の列に対する
投影像が交差しないときも除外が起こる。このような交
差(インターセクション)は、スキャン・ライン表示ア
ルゴリズムによってインクリメンタルに決定される。
D.実施例 ここではCSG表現は、プロダクトのユニオンによって表
し、各プロダクトが、前面と後面のスイープのインター
セクションとなり、一定のコネクティビティ・プロパテ
ィを示すセットを表すようにする。また、このような分
解が任意のCSG表現からどのように導かれるかを示し、
かかる分解を採用する方法についても説明する。陰影が
正しく付けられたイメージを生成するために、また、干
渉とディファレンスをCSGから直ちにテストするため
に、トリプル奥行バッファまたはZバッファを用いる方
法を示している。さらに、スキャン・ライン・アーキテ
クチャにおいてこのようなトリプル奥行バッファを使用
することについても説明している。
先にも述べたとおり、ソリッドの面が分かれば、ソリッ
ドの陰影付きイメージは、各面を表示することによっ
て、およびZバッファを用いて隠面を消去することによ
って生成できる。面が表示される順序は、可視面がZバ
ッファによって自動的に選択されるという意味において
重要ではない。その上、Zバッファを用いると、ソリッ
ドの内側にある別の面を表示しようとしても、別の面の
いずれの点も、ソリッド前面の少なくとも1点の背後に
くるという意味で、イメージに対しては効果がない。
この性質を生かし、また本発明によって、Zバッファの
用途を拡大してソリッドの陰影付けが行われる。その場
合、ソリッドは、交差すると考えられる有限個のサブソ
リッドのユニオンと定義される。このソリッドを、ここ
ではプロダクトという。ソリッドの面は、全プロダクト
の面のサブセットである。さらに、プロダクトの面上の
任意の点は、ソリッド上またはソリッドの内側にある。
所定のピクセルに投影される点の中では、視点に最も近
い1点だけが表示される。このピクセルのZバッファ・
メモリは、最も近い点の奥行を含む。この奥行は、ピク
セルに投影される全点の奥行のうち最小の奥行である。
実際、考慮すべきは、各プロダクトの前面上の点だけで
ある。そこで、プロダクトの前面が分かっている場合、
Zバッファは、ソリッド全体の正しい陰影付きイメージ
を生成する。ここで、本発明により、2つのZバッファ
と一時強度バッファを追加することで、CSGツリーによ
って表されるソリッドが、どのようにしてプロダクトの
ユニオンとして表され、各プロダクトの前面が決定され
るかについて説明する。
コンピュータによって作成するグラフィクスに用いられ
る標準座標系は、スクリーン・モデルがZ軸に対して直
角になると規定される。ソリッドは、Z軸に平行な任意
の線とのインターセクションが連結される場合(空集
合、単点または連結線分)にのみZ連結されているとい
う。この意味で、凸面ソリッドは、その方向はどうあ
れ、Z連結されているが、非凸面ソリッドはZ連結され
ている場合とそうでない場合もあり得る。これは非凸面
ソリッドの形状によって、また視点によって決まる。第
7a図では、非凸面ソリッドがZ連結されているが、同じ
非凸面ソリッドが、第7b図ではZ連結されていない。こ
れは、表面の凹部が視点からは見えないからである。さ
らに、共通のプリミティブ・ボリュームは、Z連結セッ
トに常に分解可能である。ブロック、球、シリンダおよ
びハーフ・コーンは凸面ソリッドであり、よって常にZ
連結される。ただし、トーラス(円環体)は、対称軸が
Z軸に対して充分に小さい角度をなす場合は、Z連結さ
れた非凸面プリミティブ・ボリュームの一つである。し
かしその角度が一定の値を超える場合、トーラスはZ連
結されなくなる。しかしそれでも、2つの分離したZ連
結ボリュームに分解することは可能である。このような
分解は、前面または後面を新たに導入することなく行え
るが、一般には、トーラスを、Z連結された部分に2等
分する方がはるかに容易である。
第8a図は、Z連結セットSを示す。第8b図は、ソリッド
Sの前面スイープSfが、初期位置から正のZ方向へ無限
に移動するとき、あるいは視点から無限に離れるとき、
Sによってスイープされる空間領域であることを示す。
同様に、第8c図は、Sの後面スイープSbが、初期位置か
ら負のZ方向へ無限に移動するとき、あるいは視点の方
向へ無限に移動するとき、Sによってスイープされる空
間領域であることを示す。SfとSbは、有界ではないZ連
結セットである。
第9図に示すように、SがZ連結されていれば、SはSf
とSbのインターセクションに等しい。さらに、前面また
は後面のスイープのコンプリメント(補集合)がZ連結
されることと、前面または後面の任意個数のスイープの
インターセクションPがZ連結されることは可能であ
る。その結果、インターセクションは、2つのスイープ
PfとPbだけのインターセクションとして表せる(それぞ
れPの前面スイープと後面スイープ)(第10図)。Pf
は、後面がないので、前面によって完全に表現される。
逆にPbは、後面によって完全に表現される。よって、Pf
とPbはそれぞれ、解像度すなわちピクセル数によって決
まる精度の範囲内で、単一のZバッファZfとZbによって
表すことができる。
プロダクト表現を決定する場合には、どのようなCSGツ
リーもプロダクトのユニオンとして表すことができ、各
プロダクトPは、複数の前面スイープと複数の後面スイ
ープのインターセクションになる。本発明により、シェ
ーディング・プロセスおよび干渉とディファレンスの検
出プロセスでは、かかるプロダクトが、Zバッファで表
され、2つのZバッファF、Bを使用することによって
形成される。Fの内容は、各ピクセルについて、ピクセ
ルに投影されるPbを規定するスイープの後面における全
点の最小奥行を格納することによって決定される。Bの
内容は、各ピクセルについて、ピクセルに投影されるPf
を規定するスイープの前面における全点の最大奥行を格
納することによって決定される。したがって、Fを計算
するためには、Pの前面スイープの各面をトラバースす
るだけでよい。さらに、前面はそれぞれ1回トラバース
するだけですむ。同様に、Bを計算するには、後面スイ
ープの各面を1回だけトラバースすればよい。
上述のように決定されるFとBはそれぞれ、Pを規定す
る前面スイープと後面スイープのすべてのインターセク
ションを表す。ただしPは、先にPbとPfとのインターセ
クションと示した。したがって、Pの前面は、第10図に
示すように、Fに格納された前面に含まれる(同一であ
る必要はない)。実際上、Pの前面は、Bに格納された
後面の前にくるFに格納された前面の部分と等しい。よ
って、Pの前面の範囲は、各ピクセルについて、Fに格
納された奥行とBに格納された奥行とを比較することに
よって決定される。
上述の内容は、本発明により、第11a図に示すようにト
リプルZバッファ・アーキテクチャを持つソリッド・モ
デリング、システム10にて実施される。ピクセル・メモ
リ12には、表示スクリーン14の全体に対応するフルフレ
ーム・バッファ、またはスキャン・ライン方式のシステ
ムに対応するライン・バッファを使用できる。いずれの
場合も、ピクセル・メモリ12に格納される各ピクセルに
ついて、5つのストレージ・エントリが5つのバッファ
にグループ分けされる。これらのバッファの1つは、一
時前面ZバッファF16として、現在処理されているZ連
結プロダクトの前面の奥行を格納する。他のバッファの
1つは、一時後面ZバッファB18として、現在処理され
ているZ連結プロダクトの後面の奥行を格納する。他の
バッファの1つは、最終ZバッファZ20として、表示さ
れたソリッド全体の前面に関連する奥行を格納する。残
りの2つのバッファは、現在のプロダクトの強度を格納
する一時強度バッファT22と、表示されたソリッド全体
の可視面の強度を格納する最終強度バッファI24であ
る。
実施例においてバス26は、これらのバッファを相互に接
続し、またプロセッサ28にも接続する。プロセッサ28
は、中央処理装置あるいは周辺装置プロセッサとして、
バッファを管理し、本発明の方法を実施する命令を実行
する。そのため、プロセッサ28は、バッファや表示の管
理、オペレータの操作、その他のプロセッサ28の機能に
必要なデータや命令を格納するほか、表示されたソリッ
ドを規定するCSGツリー構造を格納するメモリ30を備え
る。ピクセル・メモリ12は、いろいろな方法で構成で
き、また、Zバッファと強度バッファのそれぞれに関連
する24ビットのピクセル・ワードを規定するために、た
とえば、1ビットの格納場所を24プレーン含むメモリと
してもよい。
本発明の方法により、プロセッサ28は、元のCSGツリー
をトラバースして、Z連結プロダクトを個別に処理す
る。あるプロダクトを考えると、F16、B18、T22それぞ
れの内容は、各スイープにおいてZ連結プロダクトに寄
与する部分を取り込むことによって決定される。プロダ
クトの前面と後面のスイープがすべて処理されると、そ
の結果は、最終バッファZ20とI24に取り込まれる。以下
に、スキャン・ライン・アーキテクチャ・システムを対
象にしてこの方法を記述したアルゴリズムについて説明
する。このアルゴリズムは、ピクセルの各列について繰
り返されるものである。
この高度なアルゴリズムでは、符号LTは“より少ない”
を表す。
Z=後面奥行; I=背景色; FOREACH(プロダクトpについて)DOBEGIN F=後面奥行; B=前面奥行; T=背景色; left=0; right=0; FOREACH(プロダクト・スイープのp面hについて)DO BEGIN h1=hスタート・ピクセル; hr=hラスト・ピクセル; IF(hが正のとき)THEN BEGIN left=MAX(left、h1); right=MIN(right、hr); FOR(その列のピクセルxについて)DO IF(hが正では
ない、かつxはインターバル(lr、hr)、またはhが
正、かつxはインターバル(left、right)DO BEGIN d=h奥行(x); IF(hが前面)THEN BEGIN IF d GT F(x)THEN BEGIN F(x)=d; T(x)=h強度(x); END; END; ELSE IF d LT B (x)THEN B(x)=d; END; END; FOREACH(ピクセルxについて) DO IF(xはインターバル(left、right))THEN IF F(x)LT MAX(B(x)、Z(x)) THEN BEGIN Z (x)=F(x);I(x)=T(x);END; END; 第12図に、上記のアルゴリズムのオペレーションの流れ
図を示す。これはスキャン・ライン方式とは異なり、フ
ルフレーム・バッファとZバッファを用いたものであ
る。
本発明により、干渉またはディファレンスを検出するこ
とによって、たとえば2つのソリッドA、Bが干渉する
かどうか、あるいは同一かどうかを決定する装置が提供
される。前述の表示アルゴリズムに手を加えたものが、
A、Bまたは(A−B)ユニオン(B−A)のCSG表現
に適用される。この決定では、空ではないプロダクトが
検出されるまで各プロダクトが評価されるという意味
で、最終バッファZ20も、どのような強度バッファ(2
2、24)も必要ない。上述のアルゴリズムに従って、プ
ロダクトに対応する前面と後面のZバッファが決定され
ると、先に示した最後のFOREACHループに代えて下記の
テストが実行される。
FOREACH(xがleft、right)DO IF F(x) LT B(x)THEN RETURN(not-empty); END; (not-empty)がReturnすると、これは、干渉が存在す
るか、または2つのソリッドが同一でないことを示す。
ここで、任意のCSGツリーを考えた場合に、Z連結プロ
ダクトのユニオンであるCSGツリーを生成する一連の変
換処理について説明する。この場合、各プロダクトは前
面または後面のスイープのインターセクションである。
前面または後面のスイープは、元のCSGツリーのプリミ
ティブ・ボリュームの性質と位置から簡単に決定され
る。
第13図の流れ図に示すとおり、下記の変換シーケンスに
より、該CSGツリーが生成される。
ブロックAにおいて、Z連結されていない各プリミティ
ブ・ボリュームまたは半空間は、Z連結サブボリューム
のユニオンに置き換えられる。ブロックBにおいて、各
プリミティブ・ボリュームまたは半空間は、その前面ス
イープと後面スイープのインターセクションに置き換え
られる。ブロックCでは、ツリーの各ディファレンス演
算子がインターセクション演算子に置き換えられ、その
演算子の右側のサブツリーがコンプリメントされる。右
のサブツリーをコンプリメントするステップでは、この
サブツリーは、ド・モルガンのコンプリメンテーション
の法則を適用することによって、等価なサブツリーに変
換される。コンプリメントされた前面スイープは後面ス
イープと呼ばれ、この逆も成り立つ。
前記のステップが実行された結果、葉がZ連結スイープ
であり、内部ノードがユニオンまたはインターセクショ
ン・ノードに対応するCSGツリーが得られる。このツリ
ーは、元のソリッドを表すブール式に対応する。この式
のユニオンにインターセクションを分配すると、選言形
である別の等価な式すなわち積和ともいうインターセク
ションのユニオンが得られる。この等価式はまた、CSG
ツリーとして格納しやすい。
展開したツリーを作る必要はなく、実際上、展開したツ
リーは通常、元のツリーよりかなり大きくなるので、避
ける方が望ましい。本発明は、新しいツリーを形成する
代わりに、元のCSGツリーを用いて、前面と後面のスイ
ープのリストを生成できるようにするものである。この
リストは、各プロダクトの要素を構成し、よって該プロ
セスに必要な記憶域を大幅に節約できる。
選言標準形の連続項は、元のツリーを繰り返しトラバー
スすることによって、“速やかに”生成される。この方
法は、再帰的呼び出しを通して各ノードの符号を伝播す
るプリオーダ・ツリー・トラバーサルを実行するもので
ある。各内部ノードにおいて、等価な演算子すなわち正
の値をとる対応するノードの演算子の性質が決定され
る。所定のプロダクトのリテラルを得るために、この方
法では、元のCSGツリーがトップダウンにトラバースさ
れる。等価な演算子がインターセクションであるとき、
左右両方の子が再帰的に辿られる。等価な演算子がユニ
オンのとき、辿られる子は1個のみである。いずれの子
かは、どのプロダクトが計算されるかによる。葉に達す
ると、対応するリテラル、または元のツリーのプリミテ
ィブとその符号が表示アルゴリズムによって処理され
る。各ユニオン・ノードでとのパスを取るかを決定する
ために、方向フラグが初期化されて、左の子が指示され
る。左の子のプロダクトの組み合わせがすべて生成され
ると、方向フラグが変更され、右の子が指示される。右
の子のプロダクトの組み合わせがすべて生成されると、
方向フラグが変更され、再び左の子が指示される。この
プロセスは、全プロダクトが生成されるまで繰り返され
る。
本発明をマルチプロセッサで実施すれば、各プロセッサ
はトリプル・バッファに関連する。Z連結プロダクトを
規定する式は、別々のプロセッサに送られ、プロダクト
のトリプル・バッファ表現が並列に構成される。あるプ
ロセッサがZ連結プロダクトの評価を終了すると、その
プロセッサは結果を共通のZバッファにマージし、そこ
で次のプロダクトを処理できるようになる。
プリミティブ・ボリュームの面Aを何回スキャン・コン
バートすべきかは、Aを含む、すなわち展開されたCSG
ツリーの形のZ連結プロダクトが何個あるかの関数であ
る。以下の説明からわかるように、本発明により、ある
サブツリーについては全プロダクトの生成をなくすこと
によって、CSGツリーを処理するパフォーマンスがさら
に向上する。すなわち、本発明は、積和の形式ではない
CSGツリーを処理する方法を提供し、結果的に、各プリ
ミティブに対して必要なスキャン・コンバージョンの回
数を少なくするものである。特に、あるクラスのサブツ
リーが規定され、これが、どのようなプリミティブ面も
2回以上スキャン・コンバートすることなく処理され
る。詳しくは後述するが、このようなプロセスには、3
つのZバッファと2つの強度バッファを用いるプロセ
ス、および4つのZバッファと3つの強度バッファを用
いるプロセスが含まれる。またCSG表現の一般形も示す
が、これは、反復スキャンを行わずに処理しやすい。さ
らに、バッファを追加使用できることから、各プリミテ
ィブをスキャン・コンバートする回数がさらに減り、特
に、比較的大きいサブツリーの処理は、プロダクトのど
のプリミティブ面も2回以上スキャン・コンバートする
ことなく行える。
スキャン・コンバージョンは、規定された多角形のスク
リーン座標に基づき、多角形を連続スキャンして、多角
形が投影されるピクセルをカバーする点のリストを生成
するプロセスとして知られている。ピクセルのリストに
は、ピクセルのレファレンスとなる多角形上の点のZ軸
に沿った奥行のほか、各ピクセルのX/Y位置が含まれ
る。従来のシステムでは、この奥行は、多角形が投影さ
れる各ピクセルに関連した1個の奥行バッファまたはZ
バッファの場所に格納される。
面によってカバーされないピクセルについては、用いら
れる奥行は、スキャンされた面が正のプリミティブの前
面あるいは負のプリミティブの後面であれば、最大値で
ある。他の場合は、最小奥行値が用いられる。
先に示したように、Z連結プロダクトは2つのZバッフ
ァによって表現できる。さらに言えばZ連結プロダクト
のコンプリメントも2つのZバッファによって表現で
き、Z連結された前面と後面のスイープであるか、また
はZ連結セットのコンプリメントのいずれかであるセッ
トのプロダクトの前面は、2つのZバッファと1つの一
時強度バッファだけで決定でき、コンプリメントされて
いないスイープのスキャン・コンバージョンは1回行う
だけでよい。さらに付け加えれば、2つのZ連結プロダ
クトのディファレンスの前面は、最初のプロダクトが1
つの前面スイープしかもたない場合は、2つのZバッフ
ァと1つの一時強度バッファを使用するだけで決定で
き、各スイープは1回スキャン・コンバートするだけで
よい。また、2つのZ連結プロダクトのディファレンス
の前面は、3つのZバッファと1つの一時強度バッファ
を使用することによって決定でき、各スイープのスキャ
ン・コンバージョンは1回だけですむ。さらにまた、CS
Gで2つのプロダクトのディファレンスのユニオンと規
定されたソリッドであって、最初のディファレンスを除
き、各ディファレンスの最初のプロダクトが前面スイー
プを1つしかもたないソリッドは、3つのZバッファと
2つの強度バッファを用いることで決定でき、各スイー
プのスキャン・コンバージョンは1回ですむ。そして、
CSGにおいて2つのプロダクトのディファレンスのユニ
オンと規定されたソリッドは、4つのZバッファと2つ
の強度バッファだけで決定でき、各スイープのスキャン
・コンバージョンは1回ですむ。
数学的にはRセットと定義されるソリッドの表現は、本
来的にそのコンプリメントを規定する。したがって、Z
連結セットがその前面と後面のスイープによって表され
るのであるから、ソリッドのコンプリメントも、2つの
スイープが有界なソリッドまたはそのコンプリメントを
表現するとすれば、同じ2つのスイープによって表され
る。
ここで、プリミティブのプロダクトとプリミティブのコ
ンプリメントのプロダクトについて、Z連結された前面
と後面のスイープのプロダクトをPとする。コンプリメ
ントされたk個のZ連結セットをQ1、Q2、・・・、Qkと
する(k個のプリミティブ・ボリュームのコンプリメン
トなど)。PとQ1、Q2、・・・、QkのプロダクトをSと
する。1からkまでをiとしたとき、各Qiは、2つのZ
連結スイープのユニオンである。代表的なプリミティブ
・ボリュームは、Z連結スイープのインターセクション
であり、よってそのコンプリメントは、これらのスイー
プ(Z連結されている)のコンプリメントのユニオンで
あることが分かっている。したがって、各Qiを2つのZ
連結スイープのユニオンとすると、SをZ連結スイープ
の積和に展開すれば、2k個のプロダクトが得られる。各
プロダクトは、Pとk個のZ連結スイープとのインター
セクションであり、それぞれ異なるQiからのものであ
る。Sを、そのプロダクト全部を生成することによって
処理すれば、Pを規定する各スイープを2k回スキャン・
コンバートし、Q1のコンプリメントされた各スイープを
k回スキャン・コンバートする必要がある。ただし、以
下に述べる方法では、Sの一般形をもつ各サブツリーに
Pを規定するスイープを繰り返しスキャンする必要はな
い。それでも、このプロセスは、各Q1をk回スキャン・
コンバートするものである。
本発明により、以下のシーケンス(第14図の流れ図にも
示した)が、Z連結セットまたはZ連結セットのインタ
ーセクションである葉のインターセクションとして表現
できる各サブツリーについて実行される。特に、このよ
うなサブツリーは、Z連結プロダクトをCSGから抽出す
るための前述のプロセスを簡素化する場合に生じる。具
体的には、プリミティブ・ボリュームは、リテラルとし
て処理され、展開プロセスにおいては、その前面と後面
のスイープのインターセクションとみなす必要はない。
その結果は、各プロダクトが正または負のプリミティブ
のインターセクションである積和となり、Z連結する必
要がない。かかるプロダクトはそれぞれ、P*Q1*Q2*
・・*Qkと書ける。かかるプロダクトはそれぞれ、第11
a図のプロック図および第14図の流れ図に従って、下記
の方法によって処理される。
初めに、最大奥行テストによってPの前面スイープをス
キャン・コンバートして、結果をF16に置き、視点から
最も遠い点を得て、T22に格納された対応する強度と入
れ換える。そして以下のプロセスをk回繰り返す。すな
わち、各コンプリメントQiについて、Qiの後面スイープ
をスキャン・コンバートして、結果をB18に置き、Qiの
前面スイープをスキャン・コンバートして、結果がF16
の後にきて、B18がF16の前にくれば、結果をF16に格納
する。この場合、T22の強度も更新される。次に、Pの
後面スイープが最大奥行テストによってレングリングさ
れてB18に入る。最後に、B18の前にくるF16の部分がZ20
とI24に統合される。ここでは、コンプリメントされた
プリミティブの後面スイープが、元のプリミティブの前
面スイープに対応すること、また、その逆も成り立つこ
とに留意されたい。
2つのZバッファを用いてプリミティブ・マイナス・プ
ロダクトを考え、前面と後面のスイープのプロダクトを
Pとする。プリミティブを、あるいは広い意味では1個
の前面スイープと有限個の後面スイープとのインターセ
クションを、Aとする。ディファレンスA−Pは、2つ
のZバッファF16、B18と一時強度バッファT22を用い
て、以下のステップ(第15図の流れ図にも示した)によ
って各面を1回スキャン・コンバートすれば求められ
る。
最初に、奥行バッファ・テストによって、Pの後面スイ
ープをスキャン・コンバートして、結果をB18に置くこ
とによって、常に最大距離の点を格納する。次に、奥行
バッファ・テストによって、Pの前面スイープをスキャ
ン・コンバートして、結果をF16に置くことにより、常
に最小距離の点を格納し、前面に最も近い点に関連する
強度もT22に格納する。そして、Aの前面スイープだけ
をスキャン・コンバートし、B18の前またはF16の後にく
る各点の奥行をF16に格納し、関連する強度をT22に格納
する。次に、B18をクリアし、Aの後面スイープをすべ
てスキャン・コンバートして、結果をB18に置き、前記
の最小奥行テストによりそれらのインターセクションを
求める。最後に、B18の前にくるF16の部分をZ20とI24に
統合する。
3つのZバッファを用いたプロダクト・マイナス・プロ
ダクトを考え、前面と後面のスイープのプロダクトをA
およびPとする。ディファレンスA−Pは、(第16図の
流れ図にも示した)下記のステップによって、3つのZ
バッファF16、B18、Z20と2つの強度バッファT22、I24
を用いて各面を1回スキャン・コンバートすることによ
って求められる。
最初に、奥行バッファ・テストを適用してPの後面スイ
ープをスキャン・コンバートし、結果をB18に置く。次
に、奥行バッファ・テストを適用してPの前面スイープ
をスキャン・コンバートし、結果をF16に置き、そのユ
ニオンを得て、最小距離の点を格納し、前面に最も近い
点に関連する強度をT22に格納する。次に、Aの前面ス
イープをすべてスキャン・コンバートして、結果をZ20
に置き、最大奥行バッファ・テストによりそのインター
セクションを求め、前面に最も近い点の強度をI24に格
納する。そして、Z20とI24によって規定された各点につ
いて、その点がB18の前またはF16の後にくれば、その点
の奥行をF16に、関連する強度をT22にそれぞれ格納す
る。次に、B18をクリアし、Aの後面スイープをすべて
スキャン・コンバートして、結果をB18に置き、そのイ
ンターセクションを前述の最小奥行テストを適用して求
める。最後に、B18の前にくるF16の部分をZ20とI24に統
合する。
上記の各方法は、CSGにおいてサブツリーのユニオンと
して表せるソリッドの処理に適用できる。ここで各サブ
ツリーは2つのプロダクトのディファレンスである。こ
のような構成のとき、本発明によれば、各面のスキャン
・コンバージョンは1回だけ行われる。
CSGにおいて2つのプロダクトのディファレンスのユニ
オンとして規定され、最初のディファレンスを除き、各
ディファレンスの最初のプロダクトが1つの前面スイー
プしかもたないソリッドは、3つのZバッファと2つの
強度バッファによって決定される。これは、先に示した
とおり、5つのバッファをすべて用いることで最初のデ
ィファレンスが決定され、後のディファレンスに対して
は2つのZバッファと1つの強度バッファしか必要とし
ないからである。ただし、システム10において、4つの
Zバッファと3つの強度バッファが使用できれば(第11
b図参照)、CSGにおいて2つのZ連結プロダクトのディ
ファレンスのユニオンと規定されたソリッドは、表示あ
るいはヌル(空)オブジェクトの検出を目的として、上
述のように各プリミティブ・ボリュームの各面を1回だ
けスキャン・コンバートすることによって処理される。
プロダクトの各ディファレンスは、上述のように3つの
Zバッファと2つの強度バッファを用いることによって
処理され、その結果は後に、第4のグローバルZバッフ
ァ32と第3のグローバル強度バッファ34に統合される。
これまでに述べた本発明は、ハードウェアに専用バッフ
ァを使用したパラレル型あるいはスキャン・ライン型の
グラフィクス処理システムをはじめ、様々な形態で実施
できることが分かっている。また、各種のZバッファと
強度バッファにメモリ領域が割り当てられた汎用コンピ
ュータにも実施できる。さらに、前述の本発明の方法に
は、後面バッファBを必要としないか、または1ピクセ
ル当り1ビットのメモリしか持たない比較的小型のバッ
ファに置き換えられる場合にも実施できる方法のあるこ
とが確かめられている。たとえば、前面と後面のスイー
プのプロダクトの前面は、下記の方法によって、前面バ
ッファF16と強度バッファT22だけで計算でき、後面バッ
ファB18は全く使用する必要がないこの方法は第12図に
示した方法の変形である。各プロダクトについて、第12
図のように、最初に前面スイープをすべてスキャン・コ
ンバートする。次に、後面スイープをスキャン・コンバ
ートして、結果をB18に置いた後、B18を用いて、Z20に
マージされるF16の部分を切り込む代わりに、後面スイ
ープを一度に1つ用いてF16を直接切り込む。後面をス
キャン・コンバートする際には、面によってカバーされ
ないピクセルに対して最小奥行値を用いることを考慮し
て、F16は、F16に格納された奥行がスキャン・コンバー
ジョンによって生成された奥行を超えるピクセルにおい
て、表示可能な最大奥行に置き換えられる。
このほか、一定のオペレーションを実行する順序は重要
ではないこと、そしてオペレーションの順序を変更して
同じ機能を実行するときに、他の方法も導かれることが
確かめられている。
E.効果 本発明によれば、CSGで規定されたソリッド・オブジェ
クトの実物に近いシェーディング像を生成するとき、あ
るいはかかるソリッド同士の干渉やディファレンスを検
出するときの処理効率が大幅に向上する。本発明を実施
することで、ソリッド・モデリングやCAD/CAMアプリケ
ーションに用いられるコンピュータ・システムの性能が
大幅に向上する。
【図面の簡単な説明】
第1図は、ソリッド1のCSGの2進木表現を示す図であ
る。 第2a図は、スクリーン・モデルCのピクセルBを通して
見たソリッド1の面上の点Aを示す図である。 第2b図は、ピクセルBを通して見た点Aのスクリーン・
イメージを示す図である。 第3a図ないし第3d図は、非凸面ソリッドの各面の分類が
視点の関数であることを示す図である。 第4図は、非凸面ソリッドの前面を表示するための後面
から前面への順序付けを示す図である。 第5a図ないし第5d図は、所定のピクセルについて、ソリ
ッドA上の可視点が奥行の比較によって選択される従来
の奥行バッファ・アルゴリズムを示す図である。 第6図は、可視点Aを選択する従来のレイ・キャスティ
ング・アルゴリズムを示す図である。 第7a図は、視点に対して第1の方向をもつ、Z連結され
た非凸面ソリッドを示す図である。 第7b図は、第2の方向をもつ、Z連結されていない非凸
面ソリッドを示す図である。 第8a図は、Z連結されたセットSを、第8b図は、Sの前
面スイープSfを、第8c図は、Sの後面スイープSbを示す
図である。 第9図は、Z連結ソリッドがそのソリッドの前面と後面
のスイープのインターセクションであることを示す図で
ある。 第10図は、Z連結プロダクトPの前面が、後面スイープ
Pbの後面の前にくる前面スイープPfの前面の部分である
ことを示す図である。 第11a図と第11b図は、Zバッファと強度バッファをそれ
ぞれ複数個含む本発明によるソリッド・モデリング装置
10のブロック図である。 第12図は、CSGツリーのZ連結プロダクトを処理する本
発明の方法を示す流れ図である。 第13図は、CSGツリーを変換して、Z連結プロダクトの
ユニオンであるCSGツリーを生成する方法を示す流れ図
である。 第14図は、正負の(コンプリメントされた)プリミティ
ブのプロダクトを処理する方法を示す流れ図である。 第15図は、プリミティブAマイナス・プロダクトPの処
理方法を示す流れ図である。 第16図は、3つのZバッファを用いて、プロダクトAマ
イナス・プロダクトPを処理する方法を示す流れ図であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ナダー・ガラチヨーロ アメリカ合衆国ニユーヨーク州オシニン グ、スプリング・ポンド・ドライブ21番地 (72)発明者 フレデリツク・ウイリン・ジヤンセン アメリカ合衆国ニユーヨーク州ノース・テ リイタウン、マツプル・ストリート20番地 (72)発明者 クリストス・スターモーリス・ゾーラス アメリカ合衆国ニユーヨーク州イサカ、ア パートメント5ビイー、フエアビユー・ス クウエ 100番地 (56)参考文献 特開 昭62−296282(JP,A)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】コンストラクティブ・ソリッド・ジオメト
    リ(CSG)ツリー構造によって表わされ、視点からの視
    線と事実上平行なZ軸に沿って配置された、視点から見
    た前面と後面とを有するソリッド(S)を表示するディ
    スプレイ・システムであって、 (a)前記CSG構造の各プリミティブ・ボリュームを前
    面および後面のスイープのインターセクションで置換
    し、各ディファレンス演算子をインターセクション演算
    子で置換する処理を含む所定の変換処理を行なうことに
    より、前面または後面スイープのインターセクションで
    表現される少なくとも1個のZ連結プロダクトを決定す
    る処理手段と、 (b)前記決定されたZ連結プロダクトに関連する前面
    の奥行表現を格納する第1のZバッファ手段(F)と、 (c)前記決定されたZ連結プロダクトに関連する後面
    の奥行表現を格納する第2のZバッファ手段(B)と、 より成るディスプレイ・システム。
  2. 【請求項2】3次元オブジェクトの表現を表示する手段
    を有するグラフィクス処理システムを使用して、オブジ
    ェクトのコンストラクティブ・ソリッド・ジオメトリ
    (CSG)ツリー表現を処理して、各プロダクトを規定す
    るZ連結の前面及び後面のスイープのリストを生成する
    方法であって、 (a)表示されたソリッド全体の前面に関連する奥行を
    格納するための第1のZバッファ手段(Z)を最大奥行
    に及び表示されたソリッド全体の可視面の強度を格納す
    るための第1の強度バッファ手段(I)を所定の強度に
    それぞれ初期化するステップと (b)現在処理中の各プロダクト毎に、第2のZバッフ
    ァ手段(F)を各プロダクトに関連した最小奥行に及び
    第3のZバッファ手段(B)を各プロダクトに関連した
    最大奥行にそれぞれ初期化するステップと、 (c)各プロタクトのプリミティブの前面スイープをス
    キャン・コンバートして、前記前面スイープ上の点に関
    連する奥行を決定するステップと、 (d)前記前面スイープの億期をF内の対応する奥行と
    比較し、F内の対応する奥行よりも大きい奥行について
    は、奥行をFに、対応する強度を第2の強度バッファ手
    段(T)に格納するステップと、 (e)前記プリミティブの後面スイープをスキャン・コ
    ンバートして、前記後面スイープ上の点に関連する奥行
    を決定するステップと、 (f)前記後面スイープの奥行をB内の対応する奥行比
    較し、B内の対応する奥行よりも小さい奥行について
    は、奥行をBに格納するステップと、 (g)各プリミティブについてステップ(c)ないし
    (f)を実行した後、Fに格納された奥行を、Zおよび
    Bに格納された奥行と比較するステップと、(h)Fに
    格納された奥行がBに格納された対応する奥行よりも小
    さく、Zに格納された対応する奥行よりも大きいとき、
    Fの奥行をZ内の対応する場所に格納し、Tに格納され
    た対応する強度をI内の対応する場所に格納するステッ
    プと、 より成るZ連結プロダクト毎にグループ分けされたZ連
    結スイープのリストを生成する方法。
  3. 【請求項3】コンストラクティブ・ソリッド・ジオメト
    リ(CSG)ツリー構造によって表わされ、視点からの視
    線と実質的に平行なZ軸に沿って位置している前面およ
    び後面を有するソリッド(S)を表示するディスプレイ
    ・システムであって、 (a)CSGツリー構造からソリッドに関連してZ連結の
    前面および後面のスイープのインターセクションにより
    表わされる少なくとも1個のZ連結プロダクトを決定す
    るための処理手段と、 (b)前記決定されたZ連結プロダクト毎にそれに関連
    する前面の奥行表現を一時的に格納する一時前面Zバッ
    ファFと、 (c)前記各Z連結プロダクトに関連する後面の奥行表
    現を一時的に格納する一時後面ZバッファBと、 (d)ソリッドS全体の前面の奥行表現を格納する最終
    ZバッファZと、 (e)前記各Z連結プロダクトに関連する前面から反射
    する光の強さの表現を格納する一時強度バッファTと、 (f)ソリッドS全体の前面から反射する光の強さの表
    現を格納する最終強度バッファIと、 (g)前記一時前面ZバッファFおよび一時後面Zバッ
    ファBに結合され両Zバッファに格納されている奥行表
    現を比較するための手段と、 よりなるディスプレイ・システム。
  4. 【請求項4】3次元オブジェクトの表現を表示する手段
    を有するグラフィクス処理システムを使用して、オブジ
    ェクトのコンストラクティブ・ソリッド・ジオメトリ
    (CSG)ツリー表現を処理してプリミティブ・マイナス
    ・プロダクトに相当するディファレンスA−Pを決定す
    るための処理方法であって(ただし、プリミティブまた
    は1個の前面スイープと複数個の後面スイープとのイン
    ターセクションをAとし、前面スイープ及び後面スイー
    プを有するプロダクトをPとする)、 (a)基準点に関連する前記後面スイープの最大距離点
    を格納することによって、Pの前記後面スイープをスキ
    ャン・コンバートして、結果を第1のZバッファ手段B
    に置くステップと、 (b)基準点からの前面スイープの最小距離点を格納す
    ることによって、Pの前面スイープをスキャン・コンバ
    ートして、結果を第2のZバッファ手段Fに置くステッ
    プと、 (c)格納されたすべての最小距離点に関連する光の強
    さを第1の強度バッファ手段Tに格納するステップと、 (d)Aの前面スイープをスキャン・コンバートするス
    テップと、 (e)前記第1のZバッファ手段Bに格納された対応す
    る点の前にくるか、または前記第2のZバッファ手段F
    に格納された対応する点の後にくるような基準面から隔
    離したAの前面スイープの各点について、 前記の点の距離を前記第2のZバッファ手段Fに格納す
    るステップと、 (f)前記の点に関連する光の強さを前記第1の強度バ
    ッファ手段Tに格納するステップと、 (g)Aのすべての後面スイープをスキャン・コンバー
    トして、結果を前記第1のZバッファ手段Bに置くステ
    ップと、 (h)前記第1のZバッファ手段Zの前にくる前記第2
    のバッファ手段Fの部分を第3のZバッファ手段Zに、
    及び前記第1の強度バッファ手段Tの対応する部分を第
    2の強度バッファ手段Iにそれぞれ統合するステップ
    と、 より成るプリミティブ・マイナス・プロダクトの決定方
    法。
  5. 【請求項5】視点からの視線に対して事実上平行なZ軸
    に沿って配置される、視点から見て前面と後面とを有
    し、コンストラクティブ・ソリッド・ジオメトリ(CS
    G)ツリー構造によって関係づけられる1個以上のサブ
    ソリッドから成るソリッド・ジオブジェクト(S)をビ
    ジュアルに表示するための、各々が独立した複数のピク
    セルを含む連続した複数の表示ラインから成る表示手段
    を含むシステムにおける、ピクセル・メモリであって、 第1組及び第2組のピクセル格納手段を含み、 前記第1組のピクセル格納手段は、 サブソリッドの1個に関連する前面の奥行表現を格納す
    る第1のZバッファ手段(F)と、 前記サブソリッドに関連する後面の奥行表現を格納する
    第2のZバッファ手段(B)と、 前記サブソリッドに関連する前面から反射される光の強
    度の表現を格納する第1の強度バッファ手段(T)とか
    ら成り、 前記第2組のピクセル格納手段は、 Sの前面の奥行表現を格納する第3のZバッファ手段
    (Z)と、 Sの前記前面から反射される光の強度の表現を格納する
    第2の強度バッファ手段(I)とから成る ことを特徴とするピクセル・メモリ装置。
JP2099450A 1989-04-19 1990-04-17 グラフィクス処理装置及び方法並びにピクセル・メモリ装置 Expired - Lifetime JPH0727579B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US340322 1989-04-19
US07/340,322 US5027292A (en) 1989-04-19 1989-04-19 Multiple depth buffers for graphics and solid modelling

Publications (2)

Publication Number Publication Date
JPH0362276A JPH0362276A (ja) 1991-03-18
JPH0727579B2 true JPH0727579B2 (ja) 1995-03-29

Family

ID=23332855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2099450A Expired - Lifetime JPH0727579B2 (ja) 1989-04-19 1990-04-17 グラフィクス処理装置及び方法並びにピクセル・メモリ装置

Country Status (5)

Country Link
US (1) US5027292A (ja)
EP (1) EP0393309B1 (ja)
JP (1) JPH0727579B2 (ja)
CA (1) CA2007790C (ja)
DE (1) DE69020780T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2055532A1 (en) * 1990-11-26 1992-05-27 Xingzhang F. Niu Enhanced solid model generation
JPH07122908B2 (ja) * 1991-03-12 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 3次元のソリッド物体を表す表示可能情報を生成する装置と方法
CA2112464C (en) * 1991-06-28 2002-05-14 Lim Hong Lip Improvements in visibility calculations for 3d computer graphics
US5274760A (en) * 1991-12-24 1993-12-28 International Business Machines Corporation Extendable multiple image-buffer for graphics systems
US5428716A (en) * 1991-12-26 1995-06-27 International Business Machines Corporation Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers
US5377313A (en) * 1992-01-29 1994-12-27 International Business Machines Corporation Computer graphics display method and system with shadow generation
DE4303071A1 (de) * 1992-02-03 1993-10-28 Computervision Corp Verfahren und Vorrichtung zur Randbewertung in einer Nicht-Mannigfaltigkeits-Umgebung
US5497453A (en) * 1993-01-05 1996-03-05 International Business Machines Corporation Method and apparatus for detecting and visualizing interferences between solids
JP3557208B2 (ja) * 1993-05-10 2004-08-25 アプル・コンピュータ・インコーポレーテッド 高性能複数層zバッファを有するコンピュータ・グラフィックス・システム
US5583974A (en) * 1993-05-10 1996-12-10 Apple Computer, Inc. Computer graphics system having high performance multiple layer Z-buffer
US5684939A (en) * 1993-07-09 1997-11-04 Silicon Graphics, Inc. Antialiased imaging with improved pixel supersampling
GB9315852D0 (en) * 1993-07-30 1993-09-15 Video Logic Ltd Shading three-dimensional images
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
JP2616882B2 (ja) * 1993-12-17 1997-06-04 日本アイ・ビー・エム株式会社 非多様体データ構造に基づく数値制御加工シミュレーション・システム及び方法
EP0725365B1 (en) * 1995-01-31 2002-06-05 Imagination Technologies Limited Method and apparatus for shading three-dimensional images
JPH0969163A (ja) * 1995-08-31 1997-03-11 Fujitsu Ltd コンピュータグラフィックスモデルのポリゴン重なり抽出方法と、ポリゴンのグループ化方法及び装置
US7225404B1 (en) * 1996-04-04 2007-05-29 Massachusetts Institute Of Technology Method and apparatus for determining forces to be applied to a user through a haptic interface
US6084587A (en) * 1996-08-02 2000-07-04 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with a haptic virtual reality environment
US5926183A (en) * 1996-11-19 1999-07-20 International Business Machines Corporation Efficient rendering utilizing user defined rooms and windows
US5926182A (en) * 1996-11-19 1999-07-20 International Business Machines Corporation Efficient rendering utilizing user defined shields and windows
US6249600B1 (en) * 1997-11-07 2001-06-19 The Trustees Of Columbia University In The City Of New York System and method for generation of a three-dimensional solid model
US6552722B1 (en) * 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
US6421048B1 (en) 1998-07-17 2002-07-16 Sensable Technologies, Inc. Systems and methods for interacting with virtual objects in a haptic virtual reality environment
US7030877B1 (en) * 2002-03-04 2006-04-18 Advanced Micro Devices, Inc. Computer graphics processing system, computer memory, and method of use with computer graphics processing system utilizing hierarchical image depth buffer
US7990374B2 (en) * 2004-06-29 2011-08-02 Sensable Technologies, Inc. Apparatus and methods for haptic rendering using data in a graphics pipeline
US8208764B2 (en) * 2006-01-21 2012-06-26 Elizabeth Guckenberger Photo automatic linking system and method for accessing, linking, and visualizing “key-face” and/or multiple similar facial images along with associated electronic data via a facial image recognition search engine
ES2671457T3 (es) 2011-04-21 2018-06-06 Sergei Vladimirovich Lukyanets Cilindro de alta presión de materiales compuestos
US9111071B2 (en) * 2012-11-05 2015-08-18 Sap Se Expression rewriting for secure computation optimization
GB2520365B (en) * 2013-12-13 2015-12-09 Imagination Tech Ltd Primitive processing in a graphics processing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649498A (en) * 1984-05-08 1987-03-10 The University Of Rochester Computer systems for curve-solid classification and solid modeling
US4736306A (en) * 1985-04-29 1988-04-05 The United States Of America As Represented By The United States Department Of Energy System for conversion between the boundary representation model and a constructive solid geometry model of an object
US4821214A (en) * 1986-04-17 1989-04-11 Brigham Young University Computer graphics method for changing the shape of a geometric model using free-form deformation
JPH0634239B2 (ja) * 1986-06-16 1994-05-02 工業技術院長 3次元画像表示装置
GB2194656B (en) * 1986-09-03 1991-10-09 Ibm Method and system for solid modelling
US4888583A (en) * 1988-03-14 1989-12-19 Ligocki Terry J Method and apparatus for rendering an image from data arranged in a constructive solid geometry format

Also Published As

Publication number Publication date
CA2007790A1 (en) 1990-10-19
US5027292A (en) 1991-06-25
DE69020780T2 (de) 1996-03-14
EP0393309B1 (en) 1995-07-12
JPH0362276A (ja) 1991-03-18
EP0393309A1 (en) 1990-10-24
CA2007790C (en) 1994-03-29
DE69020780D1 (de) 1995-08-17

Similar Documents

Publication Publication Date Title
JPH0727579B2 (ja) グラフィクス処理装置及び方法並びにピクセル・メモリ装置
Wang et al. Volume sculpting
US6023279A (en) Method and apparatus for rapidly rendering computer generated images of complex structures
Jones The production of volume data from triangular meshes using voxelisation
JP3184327B2 (ja) 3次元グラフィックス処理方法及びその装置
TWI448983B (zh) 三維物體之三維模型之顯現方法與系統
US5497453A (en) Method and apparatus for detecting and visualizing interferences between solids
JP3759971B2 (ja) 3次元像を陰影付けする方法
JPH05266212A (ja) データプロセッサによってオブジェクトの作成を実行する方法及びグラフィックスディスプレイ装置
JPH0757117A (ja) テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム
JPH05266216A (ja) ボリュームレンダリングを行う方法及び装置
Dorward A survey of object-space hidden surface removal
CN103649856A (zh) 通过工具的动作模拟物体的加工的方法及其系统和计算机程序产品
JP2572515B2 (ja) 画素処理方法及び装置並びにグラフィックバッファ
Otaduy et al. CLODs: Dual Hierarchies for Multiresolution Collision Detection.
JPH05324776A (ja) 機能強化された立体モデル生成装置
Li et al. A GPU-based voxelization approach to 3D Minkowski sum computation
Plate et al. A flexible multi-volume shader framework for arbitrarily intersecting multi-resolution datasets
US6897863B2 (en) System and method for hidden object removal
Woodwark et al. Better and faster pictures from solid models
US6542154B1 (en) Architectural extensions to 3D texturing units for accelerated volume rendering
Fournier et al. Chebyshev polynomials for boxing and intersections of parametric curves and surfaces
Schollmeyer et al. Efficient and anti-aliased trimming for rendering large NURBS models
JPH09305791A (ja) 立体画像生成装置および立体画像生成方法
Maurel et al. A 4D ray tracing