JPH06101019B2 - ソリッド・モデリング・システム - Google Patents

ソリッド・モデリング・システム

Info

Publication number
JPH06101019B2
JPH06101019B2 JP63263014A JP26301488A JPH06101019B2 JP H06101019 B2 JPH06101019 B2 JP H06101019B2 JP 63263014 A JP63263014 A JP 63263014A JP 26301488 A JP26301488 A JP 26301488A JP H06101019 B2 JPH06101019 B2 JP H06101019B2
Authority
JP
Japan
Prior art keywords
logic
primitive
node
primitives
logical
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 - Fee Related
Application number
JP63263014A
Other languages
English (en)
Other versions
JPH01169677A (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 JPH01169677A publication Critical patent/JPH01169677A/ja
Publication of JPH06101019B2 publication Critical patent/JPH06101019B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は3次元の物体の立体的な形状を描写する際に、
その物体の冗長な部分を自動的に判別して、その部分を
除外することが出来るソリツド・モデリング(solid mo
delling)システムに関する。
B.従来の技術 種々の技術を使つたモデリング(表象化)システムによ
つて物体を立体的に描写することが出来る。固体の対象
物を立体的に描写する方法の中で特に好ましいものに、
コンストラクテイブ・ソリツド・ジオメトリ(Construc
tive Solid Geometry−CSG)と称される技術がある。こ
の技術に従うと、3次元(3−D)の固体の対象物は、
対象物の内部に含まれる点の群れを判別する関数的な定
義によつて表わされる。通常は、一群の点が対象物の内
部に含まれれば、論理値、真(true)となり、そうでな
ければ論理値、偽(false)となるブール関数によつて
対象物が定義される。この技術は、例えば、対象物の体
積を定義付けする技法とは異なつた、対象物の縁及び面
を定義付けする線引き式の技術に比べて対照的である。
対象物の関数的な定義は、対象物を形づくる一群の点で
効果的に決めることが出来る。例えば、球体の関数的な
定義は、中心点から所定の半径の範囲内に含まれる一群
の点を定義することによつて行われる。複合的な対象物
は、3次元の基本体、即ち「プリミテイブ」(primitiv
e)の関数的な定義を組合せて定義することによつて行
われる。「プリミテイブ」の例は、球体や、ハーフ・ス
ペース(half−space)(即ち、無限大の平面の一方の
側の空間)や、無限に長い円筒形などである。例えば、
唖鈴の形状の関数的な定義は、異なつた位置にある2つ
の球体の関数的な定義と、その球体の中心を通る中心軸
を持つ無限長の円筒形の関数的な定義と、球体の処で円
筒形を切断する2つの平面ハーフ・スペースの関数的な
定義と、セツト連結演算子やセツト横断演算子などのセ
ツト演算子(set operator)を含む(即ち設定理論の原
理を使つた)論理表示を使つて組み合わされた球体、円
筒形及び平面ハーフ・スペースの関数的な定義とを含ん
でいる。また、論理表示は、例えば開孔を有する対象物
を定義するために減算セツト演算子(set subtracting
operator)のような他の組合せ演算子を含んでもよい。
このようにすることによつて、開孔を持つ対象物が大き
い対象物から小さい対象物を差し引くことによつて定義
することが出来る。空間中の点が対象物の外側にあるの
か、または内側にあるのかを決定するための対象物を定
義する論理表示法を用いて、空間中の点をテストするこ
とが出来るので、上述のような複合的な対象物は、本明
細書では「3次元の立体」として取り扱われる。
通常、プリミテイブで構成された複合的な対象物は、そ
の対象物を定義する論理表示(logical expression)で
表現され、かつ相互連結された一群のノードを含む構造
(例えばトリー(木)構造)によつて定義される。そし
て、この構造は、第1のノード(例えばトリーのリーフ
(leaf)ノード)において定義されるプリミテイブと、
その構造中の低位のノードにおいて定義されたプリミテ
イブ、即ち低位の立体(sub−object)からその物体を
形成させるのに遂行された組合せ動作を識別するため
に、第2のノード、即ち中間ノードにおいて定義されて
いる演算子と、それらの演算子用ノードのうちの専用の
ノード(例えばトリー構造のルート・ノード)で定義さ
れた複合的な対象物とを含んでいる。
このようにして対象物が定義されると、点が内側にある
か、外側にあるかを決めることが出来、従つて、固体の
境界を決めることが出来る。このテスト動作を行うこと
によつて、空間中における対象物の表示が作られる。空
間的表示、即ち立体的表示(spatial representation)
は、表示方法に従つて種々の形式がある。例えば、立体
的表示は、表面のイメージの形、即ち対象物の縁の形状
で表わすことが出来る。ソリツド・モデリング・システ
ムがグラフイツク・システムを形成し、またはグラフイ
ツク・システムの一部を形成する場合には、これは、し
ばしば必要である。その上、ソリツド・モデリング・シ
ステムは、ロボツトのモデル化をしたり、ロボツトの動
きを制御したり、または、部分品の製造に際して工具の
動きを制御するために、ロボツトの制御システムを構成
することが出来る。他の用途として、立体的表示は対象
物の重さなどのようなデータを計算するのに使うことが
出来る。
立体的表示の細部の形式や、その用途とは無関係に、複
雑な対象物のCSGの定義を処理するためには、独立した
プリミテイブの個数が非常に多いので、膨大な計算量を
必要とすることは当業者であれば容易に理解することが
出来るであろう。
ある場合には、冗長なプリミテイブがCSGの定義に含ま
れていることがある。若し、CSGの定義が特定のプリミ
テイブを必要としないで再度書くことが出来るとすれ
ば,そのプリミテイブは「冗長」(redundant)と称さ
れる。プリミテイブそれ自身ではなく、プリミテイブの
グループ(例えば6つの平和ハーフ・スペースで構成さ
れる立体)を含むビルデイング・ブロツクがCSGの定義
の発生に単に使用された場合、上述の冗長が生じる。そ
の代りに、またはそれに加えて、若し、プリミテイブの
境界が、3次元的細分化の処理において取り扱われる空
間領域(ボクセル(voxel)という術語で呼ばれる)中
に共存(co−extensive)するならば、プリミテイブ
は、対象物を評価(evaluate)するときに冗長になる。
例えば、側面同志が接触しており、一方の側面が他方の
側面の一部と共存している異なつた寸法の2つの直方体
から表象化、即ちモデル化され、かつ各ブロツクは6つ
の平面ハーフ・スペースの組で規定されている段付の対
象物を考えてみる。ブロツクの側面を規定しているハー
フ・スペースは、最初は冗長ではないけれども、3次元
の立体の側面が共存している処では、それらは相互に打
消しあつて、この領域の対象物だけを考えたときには、
冗長である。
最初から冗長であつたプリミテイブにせよ、または定義
の処理中に冗長になつたプリミテイブにせよ、従来、そ
れらは冗長であるとは考えていなかつたので、CSGの対
象物の評価の間で、多くの不必要な処理が慣習的に行わ
れている。
C.発明が解決しようとする問題点 本発明の目的は、冗長なプリミテイブを自動的に検知す
るのに適した1つ以上の組合せ論理演算子を含む論理表
示によつて組合された立体的な図形的(geographic)な
プリミテイブによつて規定された物体の立体的な表示を
発生する手段を含むソリツド・モデリング・システムを
提供することにある。
D.問題点を解決するための手段 本発明に従つて、2つ以上の組合せ型の論理演算子を含
む論理表示によつて組合された立体的図形のプリミテイ
ブの立体的表示を発生するための手段を含むソリツド・
モデリング・システムが与えられ、このソリツド・モデ
リング・システムは、プリミテイブ用のプリミテイブ・
ノード及び演算子用の演算子ノードを含む複数個の連結
されたノードを有する構造を持つ対象物の定義付け手段
と、少なくとも幾つかのノードを横断し、この横断の間
で遭遇した演算子ノードにおいて定義された論理表示、
又はその論理表示の一部を表示するビツト・マツプを発
生するための第1のロジツクと、冗長な図形プリミテイ
ブの論理的冗長の表示をするために、ビツト・マツプを
テストする第2のロジツクとを含んでいる。
本発明に従つたソリツド・モデリング・システムの特定
の実施例において、ビツト・マツプ中の各ビツトは、プ
リミテイブに関連する要素(constituent)を表示する
ことと、この要素は、プリミテイブ、またはプリミテイ
ブの「補元」(complement)の交差によつて形成された
立体物であること、プリミテイブuの冗長をテストする
ために、第2のロジツクはビツト・マツプ中の対応する
u「真」及び「偽」の等価をテストすることを含んでい
る。
更に、第1のロジツクは、上記の横断の間で遭遇したプ
リミテイブに対するポインタのテーブルを発生するこ
と、そして第2のロジツクは、冗長であると決定された
プリミテイブに対するポインタを上記のテーブルから除
去することを含むのが好ましい。また、第2のロジツク
で発生された修正ビツト・マツプと、残りのプリミテイ
ブを定義するノードのポインタとを含む単一の真数テー
ブルのノードによつて、第1のロジツクが訪問したノー
ドを置き換える第3のロジツク手段を具備することが好
ましい。
本発明に従つたソリツド・モデリング・システムの特定
の実施例は、対象物が存在する空間を正義するための包
括的空間(world space)定義手段と、上記の包括的空
間を小さな空間の領域、即ちボクセル(voxel)に累進
的に細分するための空間細分化ロジツクと、立体的表示
を定義するプリミテイブが形成されるまで、空間細分化
手段によつて発生されたボクセルの中で、対象物を定義
する構造を単純化するための対象物単純化ロジツクと、
構造中で残つたプリミテイブの数を計数するための計数
ロジツクと、または対象物単純化手段によつて発生され
単純化された構造の一部と、そして、プリミテイブの数
が所定の数よりも少ない場合、上記の単純化された構造
を処理するように第1及び第2のロジツクを動作させる
ことを含んでいる。
この実施例において、対象物単純化ロジツクは、空間細
分化手段によつて発生されたボクセル内で第1のロジツ
クによつて発生されたビツト・マツプを単純化するため
のロジツクを含んでいる。
加えて、上述のソリツド・モデリング・システムは、ビ
ツト・マツプのビツトがそのボクセル内の対象物の定義
に無関係であると決定されたとき(例えば、関連した要
素がボクセルの中で空であることが証明されたとき)
に、表示するための図形情報の関連マツプ表示を処理す
るためのロジツクを付加的に含ませることが出来る。
E.実施例 本発明の細部を説明する前に、本発明の原理の理解を早
めるために、第2図、第3A図、第3B図及び第4図を参照
して、対象物の関数的な定義を評価するためのCSGの原
理を先ず説明する。
概略的に言えば、立体モデルの評価は、対象物の外側及
び内側を決め、結果として固体の境界を決めるプロセス
である。
第3A図は立体20によつて規定され空間と、他の領域の空
間を占めているように示された段付きの対象物(objec
t)10を示している。第3B図は、座標軸Zに垂直な断面
で、接触した2つのブロツク12及び14で形成された上述
の対象物10を示す図である。両方のブロツクは、面Z1か
ら面Z2まで同じ奥行を持つており、断面は、それらの面
中間にあり、かつ平行な面である。第1のブロツク12は
6つの平面ハーフ・スペースX1、X2、Y1、Y3、Z1及びZ2
の論理的組合せによつて規定され、そして、第2のブロ
ツク14は、6つの平面ハーフ・スペースX2、X3、Y1、Y
2、Z1及びZ2の論理的な組合せによつて定義される。第3
B図の矢印は、図に示されたラインの側が固体であるこ
とを示している(ラインは実際に目で見える平面を示し
ている)。上述の平面は平面ハーフ・スペースの境界を
形成する。
従来通りに、これらのハーフ・スペース(即ちプリミテ
イブ)を組合せた論理表示は、CSGの原理に従つて、第
2図に示されたようなトリー構造によつて定義される。
第2図に示されたトリー形式の構造30は、異なつたタイ
プのノードを含み連結された一群のノードで構成されて
いる。
従来と同様に、中間のノード、即ち演算子ノード32乃至
43は、論理演算子を持つ第1のフイールド(例えば32
a)と、ポインタを持つ更に1つ以上のフイールドを含
んでいる。第2図に示したように、第2のフイールド
(例えば32b)は他のノードを指示する第1のポインタ
を定義し、そして必要に応じて設けられる第3のフイー
ルド(例えば32c)は他のノードを指示する第2のポイ
ンタを定義する。従来と同じように、演算子はブール演
算子「連結」(UNION)、「相違」(DIFFERENCE)、
「横断」(INTERSECT)、「対称的な相違」(SYMMETRIC
DIFFERENCE)及び「補元」(COMPLEMENT)を含んでお
り、勿論、他の型の演算子を含んでもよい。演算子ノー
ドは、演算子が「補元」演算子(例えばノード43)の場
合、ただ1つのポインタのフイールドを含み、その他の
場合は、2つのポインタ・フイールドを含む。第2図に
おいて、「U」、「I」及び「C」は、夫々「連結」、
「横断」及び「補元」の演算子を表わしている。
リーフ(leaf)ノード、即ちプリミテイブ・ノード44乃
至51は対象物を形成するプリミテイブを定義する。各リ
ーフ・ノードは、少なくとも3つのフイールド、即ちそ
のプリミテイブを定義する論理表示を含む第1のフイー
ルド(例えば44a)と、フラグを含む第2のフイールド
(例えば44b)と、ロジツクによる決定の結果を含む第
3のフイールド(44c)とを有している。複合的なプリ
ミテイブの場合、そのプリミテイブの定義に適合出来る
ようにするために、これらのフイールドは、より大きく
なることがあり得る。第2及び第3のフイールドは、後
述するように、単純化ロジツクで使われる。後述する本
発明の実施例において、リーフ・ノードは更に付加的
に、少なくとも1つの他のフイールドを含んでいる。ノ
ード31はユーザのプログラムによつて、制御ロジツクへ
供給されるポインタであつて、第1の中間ノード、即ち
ルート・ノード32を指示(point)する。
CSG論理表示の処理について不必要な重複を避けて、処
理を簡単化するために、中間ノードにおいて定義された
複数個の下位の立体(sub−object)のなかで、プリミ
テイブが生じたとすれば、リーフ・ノードは、2つ以上
の中間ノードによつて指示される。プリミテイブ・ノー
ドが重複しているトリー構造が、最初に作成されたとし
ても、そのような重複は、トリー構造を横断するテスト
手段により、同一のプリミテイブであるか、或は補元の
プリミテイブであるかのテストを行うことによつて自動
的に除去することが出来る。若し同一のプリミテイブが
発見されれば、そのプリミテイブ・ノードの1つを除去
することが出来、そして、関連する中間ノード中に維持
されるプリミテイブ・ノードを指示するポインタを置
く。このような場合の例として、中間ノード37及び43に
よつて指示されたリーフ・ノード45において定義された
プリミテイブが第2図に示されている。補元的なプリミ
テイブが検出された場合は、第2図に示した「補元」ノ
ード43のように、「補元」ノードを構造中の該当する位
置に導入しなければならない場合を除いて、上述したの
と同様な処理をすることが出来る。
CSGシステムで対象物が定義された後に、空間に対する
対象物の表示(換言すれば、その対象物の立体的表示)
を作成するために、その対象物を評価することが必要で
ある。立体的表示はCSGの適用に従つて種々の形式を取
ることが出来る。例えば、立体的表示(spatial repres
entation)は、若しCSGシステムがグラフイツク・シス
テムの一部を形成しているとすれば、表面のイメージの
形、即ち対象物の縁の形で表わすことが出来る。このイ
メージは印字装置を持つデイスプレーの画面上に通常の
方法で与えることが出来る。他の方法として、若しCSG
システムがロボツトの制御システムに組入れられたとす
れば、立体的表示はロボツトのモデルそれ自身の一部、
及びその周辺部を表わすことも出来る。デイスプレーの
画面、プリンタなど用いて表示するためのワイヤ・フレ
ーム・イメージ(wire−frame image)形式の立体的表
示が以下に説明されるけれども、この説明によつて本発
明はワイヤ・フレーム・イメージ形式に限定して解釈さ
れるべきではない。
簡潔に言えば、対象物のCSG表示、即ち対象物の立体的
表示を評価するプロセスは、空間の領域を細分(subdiv
ision)することを含んでおり、このプロセスによつ
て、対象物(例えば領域20)を、細分された下位領域
(sub−region)(例えば第3A図に示した下位領域21乃
至28)に、累進的に細分し、対象物の定義と、連続した
下位領域との間の関係を決定し、CSGの表示と、空間の
領域との間の関係が要素的レベルで評価され、これによ
り対象物の3次元的な配分を決定することが出来る。ソ
リツド・モデリング・システムは細分化プロセスを行う
細分化ロジツクを含んでいる。また、ソリツド・モデリ
ング・システムは細分化の動作を制御し、システム中の
他のロジツクを制御する制御ロジツクを含んでいる。
第3A図に示されたように、立体20の箱形の領域を細分化
する第1のステツプは、立体20を8個の下位領域21、2
2、23、24、25、26、27及び28に細分することである。
次に、これらの各下位領域は更に8個の下位領域に細分
され、以下同様に細分化される。細分化動作は、反復的
な態様で遂行されることは注意を要する。下位領域が、
定義「包含」か、あるいは「空」である場合、または、
以下に説明されるように、その下位領域内の対象物の一
部を直接に与えることが出来ることが決められた場合、
下位領域の細分化は行われない。この道の専門家であれ
ば、他の細分化のアルゴリズムでもこの動作は達成可能
であることは容易に理解出来るであろう。
対象物を表示する構造は、細分化プロセスの各ステツプ
の間で検査され、そして、検討される低位の3次元領域
(以下ボルセル(voxel)と言う)で単純化、即ち「除
去」(prune)される。構造を単純化するためのプロセ
スは、それ自身、繰り返されるプロセスであり、反復さ
れる細分化プロセスの各ステツプの間で、単純化ロジツ
クによつて遂行される。換言すれば、単純化ロジツク
は、対象物を定義する構造中で識別されたプリミテイブ
と、そのボクセルとの間の関係をテストすることによつ
て、対象物を定義するその構造を、与えられたボクセル
に対して処理し、そして可能な場合には、その構造を単
純化する。単純化ロジツクは第1図の流れ図によつて説
明される。
単純化ロジツクは、ソリツド・モデリング・システムの
制御ロジツクによつて始動されるロジツクであり、新し
いボクセルに対するCSG論理表示を単純化するために動
作するロジツクである。ソリツド・モデリング・システ
ムの制御ロジツクは、単純化ロジツクへの入力パラメー
タとしてポインタ31(即ちルート・ノード32を指示する
ポインタ)の内容を転送する。そのボクセルの単純化の
処理を完了すると、単純化ロジツクは、単純化されたト
リー構造の第1の有効ノードを指示するポインタを、シ
ステムの制御ロジツクに対して返還する。通常、第1の
有効ノードはルート・ノードである。
第1図の入力制御段階(参照数字54の段階)において、
単純化ロジツクは、指示されたノードがリーフ・ノード
であるか否かをテストする(55の段階で)。以下に説明
されるように、そのノードがリーフ・ノードであれば、
図形のテストが行われ、若しそうでなければ、ロジツク
のテストが遂行される。
指示されたノードがリーフ・ノードであることが、段階
55で設定されたとすれば、単純化ロジツクは、単純化フ
ラグがプリミテイブ・ノードのフラグ・フイールドにセ
ツトされる前に、プリミテイブ・ノードが以前に訪問さ
れたか否かをテストする(段階56において)。フラグが
セツトされていなければ、単純化ロジツクは「訪問カー
ド」と呼ばれる数値を用いたフラグをセツトし、そのノ
ードにおけるプリミテイブの論理表示と、細分化ロジツ
クによつて供給された現在のボクセルの論理表示との間
の関係を決定し、そして、プリミテイブ・ノードの結果
フイールド中に、決定の結果を記憶する。決定の結果は
以下に述べる可能性、即ち「空」か、「包含」かまたは
「その他」の内の1つである。上述の単純化フラグは、
単純化ロジツクが構造を横断するときに与えられる独特
な数値であつて、これは、各横断の開始時においてフラ
グ・フイールドをリセツトする必要をなくす。
次に、段階58において、このボクセル中のプリミテイブ
・ノードに対する今回の訪問、または前回の訪問によつ
て、単純化ロジツクによつて、結果フイールドに記憶さ
れた結果は、単純化ロジツクのこの訪問により返還され
るべき情報を決定するのに用いられる。若しプリミテイ
ブとボクセルが交差しなければ、結果としてボクセルの
定義が「空」により置き換えられるように、結果値
「空」が記憶される。その結果、この場合には、単純化
ロジツクによつて、この定義を含んでいるノード(例え
ば第2図のノード52)のポインタが返還される。プリミ
テイブがボクセル全体を包含しいる場合は、ボクセルの
定義「包含」で置き換えられるように、決定結果である
値「包含」が記憶される。従つて、この場合は、この状
態を含むノード(例えば第1図のノード53)のポインタ
が返還される。上述以外の他のすべての場合は、プリミ
テイブを単純化することは出来ず、決定結果である論理
値、「その他」が記憶される。この場合、プリミテイブ
・ノードそれ自身のポインタが返還される。
段階55において、指示されたノードが演算子ノードであ
る場合、単純化ロジツクは、演算子が「補元」(comple
ment)演算子であるか否かをテストする(59におい
て)。若し補元演算子であれば、単純化ロジツクは、現
在のノードに従属するノードを指示する現在のノード中
のポインタをアクセスして、反復的訪問(recursive ca
ll)用としてそのポインタを使用する(60において)。
段階61において、反復的訪問から復帰するときに、返還
されたポインタが単純化ロジツクによつて検査される。
若しそのポインタが定義「包含」を指示するものなら
ば、単純化ロジツクによつて、定義「空」を指示するポ
インタが返還される。反復的訪問によつて返還されたポ
インタが定義「空」を指示するものであれば、単純化ロ
ジツクによつて、定義「包含」を指示するポインタが返
還される。その他の場合は、現在のノード(即ち単純化
ロジツクの現在の訪問に使用されたノード)を指示する
ポインタが返還される。
ノードが「補元」演算子を含んでいない場合、単純化ロ
ジツクは、現在のノードに依存する第1のノードの第1
のポインタ、即ち左側のポインタを使用して、単純化ロ
ジツクの第1の反復的訪問を遂行する(段階62におい
て)。この第1の反復的訪問から復帰するときに、単純
化ロジツクは、その訪問から返還されたポインタを記憶
し、そして、現在のノードに依存する第2ノードの第2
ポインタ、即ち右側のポインタを使用して、単純化ロジ
ツクの第2の反復的訪問を遂行する(段階63におい
て)。この第2の反復的訪問から復帰するときに、それ
らの訪問によつて返還されたポインタが、単純化ロジツ
クによつて評価される(64において)。反復的訪問によ
つて返還されたポインタが定義「包含」、または定義
「空」のどちらも指示するものでなければ、ノードを単
純化することは不可能であり、その結果、単純化ロジツ
クによつて、現在のノードのポインタが返還される。こ
れらのポインタのうちの1つのポインタが定義「包
含」、または「空」を指示するものであれば、単純化が
可能であり、現在のノードのポインタとは異なつたポイ
ンタが返還される。演算子「連結」及び「横断」につい
ての単純化処理が、第I表に示されている。
第I表に示した例において、論理表示1は、現在の第1
のポインタの従属ノードによつて表示された論理表示で
あり、論理表示2は、現在のノードの第2ポインタで指
示された従属ノードによつて表示された論理表示であ
る。
反復的訪問用の入力パラメータとして与えられたポイン
タが、演算子ノードを指示した場合、単純化ロジツクの
反復的訪問は、単純化ロジツクの入れ子(nested)にさ
れた反復的訪問となる。単純化が演算子ノードにおいて
可能であれば、これは、トリー構造中でそれよりも下流
にあるノードの内の或るノードはバイパスすることが出
来ることを意味する。第4図は、第3A図及び第3B図に示
したボクセル29を含む段付の対象物の定義付けの構造を
単純化したことによつて得られたトリー構造を示してい
る。第3B図において、面Z1はボクセルを通過している
が、ボクセル全体はハーフ・スペースZ2の範囲内にある
ものと仮定している。プリミテイブX1、X2、Y2、Y3及び
Z2は、ボクセル中で夫々「包含」と等価であるため第2
図の中間ノード37乃至42が冗長となり、第4図のトリー
構造からは取除かれているので、プリミテイブX1、X2、
Y2、Y3及びZ2はイメージに何も寄与しないということに
は注意を払う必要がある。
然しながら、単純化は、すべての処で有効ではなく、原
対象物が考慮されているボクセルの範囲内で、そのボク
セルと等価であるときに単純化が可能になる。若し上述
の単純化プロセスの結果が「空」であれば、単純化ロジ
ツクの現在の訪問によつて評価されているノードによつ
て表示された対象物(object)、またはその低位の立体
(sub−object)は、考慮中のボクセル内には存在せ
ず、その結果、このボクセルは発生されているワイヤ・
フレーム・イメージに寄与しない。同様に、若し評価の
結果が「包含」であれば、このボクセルは対象物によつ
て完全に抱合されているから、このボクセルはイメージ
に寄与しない。
ボクセルの寸法は、最小の限界値である或る最低限度
に、最終的には到達することになる。立体的表示を発生
するためのCSG論理表示が、任意のボクセル内で十分に
単純(例えばデイスプレー装置に与えられるワイヤ・フ
レーム)である場合には、従来の手段によつて停止点が
設けられる。上述の従来の手段の例は、コンピユータ・
エイデツド・デザイン誌の1986年の6月号乃至8月号の
編集号(第18巻第6号)で発表された「空間分割によつ
てセツト理論的な固体モデルからワイヤ・フレームを発
生すること」(Generating Wireframes from Set−Teor
etic Solid Models by Spatial Division)と題するウ
ツドワーク(Woodwark)の文献に記載されている。立体
的な表示(例えばワイヤ・フレームの図面)の作成を可
能とするのに必要な細分のレベルは、対象物の部分的な
複雑性に従つて、交差する空間が変化することは注意を
要する。
然しながら、既に述べたように、上述の単純化プロセス
の下でも、結果的に不必要な処理が行われるような最初
から冗長であるプリミテイブや、細分化プロセスの或る
段階のボクセル内で冗長になるプリミテイブを含むよう
な対象物を定義することも可能である。
次に、第3A図及び第3B図に示された段付の対象物内のボ
クセル29がハーフ・スペースZ2を包含しており、面Z1と
交差している場合の単純化の効果を考えてみる。
ボクセル29内で段付の対象物の一部を表示するための単
純化した構造が第4図に示されている。この構造によつ
て表示された論理表示は、Y1がZ1を横切つていること、
及びXが冗長であることと等価であることを、この構造
を分析することによつて理解することは、この道の専門
家には可能である。第4図に示された構造の場合は、比
較的単純であるように見えるけれども、単純化ロジツク
によつて発生される構造は、一般に、より複雑である。
加えて、この種の動作をコンピユータで自動化すること
は、元来、非常に困難である。従来のソリツド・モデリ
ング・システムは、上述の冗長なプリミテイブを処理し
ていたので、本来不必要な処理のために多くの時間を浪
費していた。加えて、従来は、例えば対象物のワイヤ・
フレーム・イメージが、不要なラインで混乱するのを回
避する場合のように、不正確な結果を回避するために、
多くの前処理及び後処理を行わねばならなかつた。
本発明の目的の1つは、上述のような冗長を自動的に、
そして効果的に認識することの出来るソリツド・モデリ
ング・システムを提供することにある。これは、ボクセ
ル内で、対象物を定義する構造を処理するための第1図
の単純化ロジツクに他のロジツクを付加することによつ
て達成される。本発明に従つたソリツド・モデリング・
システムの特定の実施例の構造を処理するためのロジツ
クの全体的な流れ図を第5図に示す。
プリミテイブ計数ロジツク(PCL)は、単純化ロジツク
(SL)の動作に続いて、単純化ロジツクの動作から生じ
た単純化された構造30sを横断し、そして、遭遇したプ
リミテイブの数を計数する。構造中において計数が2度
以上発生して、1つのプリミテイブを2度計数するのを
避けるために、プリミテイブ計数ロジツクは、「計数終
了」フラグが、プリミテイブ・ノードのフイールド中に
セツトされたか否かをチエツクすることによつて、各プ
リミテイブ・ノードが現在の横断行程の間で訪問された
か否かをテストする。このフラグがセツトされていなけ
れば、プリミテイブ計数ロジツクは、「計数済」フラグ
として、フラグ・フイールド中に特別な訪問カードを記
憶させ、プリミテイブの数を1つ増加する。「計数済」
フラグは、PCL用の独特な数字に選ばれているので、そ
れはSL訪問カードとは異なつているので、フラグ・フイ
ールドはPCLにでも、SLにでも両方に使用することが出
来る。
プリミテイブ計数ロジツクが、その横断を完了したと
き、段階65において、プリミテイブの数が所定の数より
も小さいことが検出されると、システムの制御ロジツク
は、第6図の流れ図に示したビツト・マツプ発生ロジツ
ク(bitmap generation logic−BGL)を呼出して、構造
を横断し、そして単純化ロジツク中の残りのプリミテイ
ブの間の論理的関係を設立する。ビツト・マツプ発生ロ
ジツクは、構造を処理するために初期値を表示するバイ
ナリ・ワードを含む定数テーブル66と、処理の間で中間
値を臨時的に記憶するためのスタツク記憶装置67と、上
記の処理の間に遭遇するプリミテイブにポインタを記憶
させるための結果テーブル68とをアクセスする。定数テ
ーブル66中に記憶されている初期値は、BGLで処理され
るプリミテイブの数のフアクタを含んで、幾つかのフア
クタに依存する。例えば、若し3個のプリミテイブが処
理されるとすれば、以下に説明されるように、初期値
は、バイナリ・ワード00001111、00110011及び01010101
である。
第6図の段階70において、ビツト・マツプ発生ロジツク
は、入力パラメータとして、単純化された構造のノード
を指示するノード・ポインタと、スタツク記憶装置67を
アクセスするためのスタツク・ポイントと、構造を横断
している間で遭遇したプリミテイブの数の計数値とを受
け取る。ビツト・マツプ発生ロジツクは、返還パラメー
タとしてスタツク・ポインタと、プリミテイブの計数値
を返還する。制御ロジツクがビツト・マツプ発生ロジツ
クを呼出したとき、ビツト・マツプ発生ロジツクは、ス
タツク・ポインタを初期化し、構造を横断させるために
構造の一部、または構造全体のヘッド・ノードに、ノー
ド・ポインタをセツトし、そして、プリミテイブの計数
をゼロにセツトする。
段階70において、ビツト・マツプ発生ロジツクがシステ
ムからの制御を受け取つた時、ノード・ポインタによつ
て指示されたノードの形式が、71f、71e、71p及び71cで
設定され、種々のタイプのノードの処理が第6図に示さ
れたように進行して、構造中のプリミテイブの間の論理
的関係が設定される。
以下に説明する本発明に従つたソリツド・モデリング・
システムの特定の実施例において、対象物を表示する構
造中のプリミテイブ・ノードは、プリミテイブの定義に
付加するフイールドと、第2図に関連して説明したポイ
ンタのフイールド、即ちプリミテイブの計数フイールド
とを含んでいる。このフイールドについては、後で説明
する。
指示されたノードが「包含」を表示した場合(即ち71f
の答えがイエスの場合)、段階72において、スタツク・
ポインタは増加され、1のバイナリ・ワードはすべて、
スタツク記憶装置に入力され、そして制御は段階82で復
帰される。指示されたノードが「空」であれば(即ち71
eの答えがイエスの場合)、段階73において、スタツク
・ポインタは増加され、ゼロのバイナリ・ワードはすべ
て、スタツク記憶装置に入力され、制御は段階92で復帰
される。実際は、ボクセル内でのSL処理の終期におい
て、すべての「包含」及び「空」ノードは構造から除去
されていなければならない。従つて、これらのロジツク
の径路は使用する必要性はない。
指示されたノードがプリミテイブを表示する場合(即ち
71pの答えがイエスの場合)、ビツト・マツプ発生ロジ
ツク(BGL)は、プリミテイブ・ノードのフラグ・フイ
ールド中にBGLのフラグがセツトされたか否かを、現在
の横断の過程の間でチエツクする以前に、このプリミテ
イブ・ノードが訪問されたことがあつたか否かを段階74
においてテストする。フラグがセツトされていなけれ
ば、75において、ロジツクはBGL訪問カードを用いて、
フラグをセツトし、遭遇したプリミテイブの数を増加
し、プリミテイブ・ノードのプリミテイブ計数フイール
ド中にその数を記憶し、そして、結果テーブル中にその
ノードを指示するポインタを記憶する。次に、76におい
て、これが最初の訪問であるか否かに従つて、スタツク
・ポインタが増加され、そして、現在の遭遇、または依
然の遭遇によつて、そのノード中のプリミテイブ計数フ
イールドに記憶されている数値は、定数テーブルからの
定数のバイナリ・ワードを選択するために使用され、そ
のバイナリ・ワードは、スタツク・ポインタによつて指
示された位置のスタツク記憶装置に加えられる。
ノードが「補元」演算子を定義している場合(71cにお
いて、答えがイエスの場合)、現在のノードに依存する
ノードを指示するノードのポインタが選択され、77にお
いて、これは、現在のスタツク・ポインタとして使用さ
れ、そして、遭遇したプリミテイブの現在の計数値を、
ビツト・マツプ発生ロジツクの反復的訪問のための入力
パラメータとして使用する。反復的訪問から復帰すると
きに、78において、スタツク記憶装置の先頭のワードが
読出され、そして読出されたワードの各ビツトは反転さ
れる。次に、78において、その結果の「補元」はスタツ
ク・ポインタによつて、指示された位置のスタツク記憶
装置中にロードし戻され、そして、82において、制御は
現在のスタツク・ポインタとプリミテイブの数値とで復
帰される。
ノードが「補元」以外の論理演算子を定義したとすると
(即ち71cにおける答えがノーの場合)、ビツト・マツ
プ発生ロジツクは、79において、入力パラメータとし
て、現在のノードに従属する第1のノードの第1のポイ
ンタ、即ち左側のポインタと、現在のスタツク・ポイン
タ及び遭遇したプリミテイブの計数値とを使つて、単純
化ロジツクの第1の反復的訪問を遂行し、そして、復帰
するときに、80において、入力パラメータとして、現在
のノードに従属する第2のノードの第2のポインタ、即
ち右側ポインタと、現在のスタツク・ポインタ及び遭遇
したプリミテイブの計数値とを用いて、第2の反復的訪
問ヲ遂行する。スタツク・ポインタの値は変化し、そし
てプリミテイブの計数値は、上述の第1の反復的訪問と
の間で変化することは注意を要する。
第2の反復的訪問からの復帰に続く段階81において、ス
タツク記憶装置の先頭のワードが読出され、スタツク・
ポインタは減少され、スタツク記憶装置の新しい次の先
頭のワードが読出され、論理演算がこれら2つのワード
に遂行される。遂行される論理演算は、現在のノードに
おいて定義された論理演算子に基づいて決定される。例
えば、若し演算子が「横断」演算子であれば、2つのワ
ードは論理的にアンド化される。論理演算の結果はスタ
ツク記憶装置の先頭にロードし戻される。次に、82にお
いて、制御は現在のスタツク・ポインタ及びプリミテイ
ブ計数値で復帰される。
構造が横断された時、スタツク記憶装置は、構造の横断
の間で遭遇した演算ノードにおいて定義された論理表
示、またはその表示の一部を定義する唯1つのバイナリ
・ワードを含む。CSGの構造を横断するときに遂行され
る動作を説明するために、第4図に示された構造を横断
する間で生じるスタツク記憶装置の内容の変化を第II表
に示す。
第II表において、「現在の訪問」欄中の数字は、テーブ
ルの該当部分に示された訪問、または訪問の復帰の順番
を示している。「ノード」欄に示した数字及び矢印は、
第4図のノードを示しており、該当部分に示された動作
がそれらのノードから発生し、そして括弧書きの1、2
またはRは、動作が、第1のポインタを用いた訪問であ
ること、または、第2のポインタを用いた訪問であるこ
と、または、前の訪問に対する復帰であることを、夫々
示している。「スタツク記憶装置の内容」の欄は、処理
の種々の段階におけるスタツク記憶装置の内容を示して
いる。スタツク記憶装置の内容の欄の中に示され
た「″」印は、直前の段階から与えられたスタツク記憶
装置の内容に変化がないことを示す。
スタツク記憶装置、またはそれと等価の循環機能を持つ
ストレージ媒体はプロセスの反復的な性質の見地から必
要であることは注意を払う必要がある。この実施例にお
いて、任意の1つの時間におけるスタツク素子の最大数
は3個であるけれども、構造がより多く、より長い分岐
点を有している場合は、上記の数はもつと大きな数にな
る。後述されるように、本発明は汎用コンピユータを適
当にプログラムすることによつて実施することが出来
る。この場合、若し使用するコンピユータのプログラム
言語が、反復的の訪問を行うための言語を含んでいれ
ば、この道の専門家には明らかなように、スタツク・ポ
インタはそれらに定義された変数によつて与えることが
出来る。若し、その特定のコンピユータでは反復的の訪
問を行うことが不可能な場合、または、本発明が、部分
的にせよ少なくとも独立したロジツクで実行される場合
には、スタツク記憶装置は、通常の方法によりスタツク
・ポインタで実行することが出来る。
個々のプリミテイブ及びビツト・マツプの発生のための
バイナリ・ワードの選択を説明するために、夫々が別個
の3個のプリミテイブu、v及びwを含む円グラフを示
す第7図を参照する。これらの3つの領域は、8個(23)
の下位領域、即ち要素(constituent)を発生するよう
重複している。各要素は、第III表に示されたように、
プリミテイブ及びプリミテイブの「補元」として定義さ
れている。
第III表において、「−」は要素の補元を表わしている
(例えば−u=uの補元、即ちNOTuであり、INTは横断
演算子を表わす)。これは、与えられた数nに対して、
2のn乗個(2n)の要素があるといつたように、プリミテ
イブの任意の数に対して一般化することが出来る。
第III表において、第4図の構成によつて表示された論
理表示用の真数テーブル中の各ビツトは、与えられた
u、v及びwの値(即ち与えられた要素に対する値)の
論理表示を表わす。ここで、u、v、w及びそれらの要
素は論理値「真」(1、内部)及び論理値「偽」(0、
外部)を持ち、uは第1のプリミテイブX2であり、vは
第2のプリミテイブY1であり、そしてwは第3のプリミ
テイブZ1である。従つて、第4の要素(即ち−uINTvINT
w)は、第4のビット値が「1」を持つているから、対
象物の内部であり、他方、第3の要素(即ち−uINTvINT
−w)は、第3のビツト値が「0」を持つているから、
対象物の外部であることがわかる。第7図において、斜
線を施した部分の要素は対象物の内部の要素に対応す
る。u、v及びwの対応値はプリミテイブ対象物u、v
及びwのための真数テーブルを夫々表わしている。第1
プリミテイブuのビツト・マツプは、値00001111で構成
され、この場合、上述の表に示すために、各ビツトは関
連する要素のプリミテイブ論理表示の値を表示してい
る。第2のプリミテイブvに対して、ビツト・マツプは
同じ順序で、値00110011で構成される。第3のプリミテ
イブwに対しては、ビツト・マツプは値01010101で構成
されている。
真数テーブルtt1及びtt2(例えばu及びv)で2つの論
理表示の連結した場合のこれらの同じ要素に対する値
は、値tt(u,v,w)=tt1(u,v,w)オアtt2(u,v,w)に
よつて表示される。即ち0は、それら両方の外側の要素
であり、1は、その他のすべての要素(u「連結」vに
対して00111111)である。真数テーブルtt1及びtt2(例
えばu及びv)で2つの論理表示の交差した場合の要素
の値は、tt(u,v,w):=tt1(u,v,w)アンドtt2(u,v,
w)によつて表わされる値を持つ。即ち1は、それらの
両方に共通な要素であり、0は、その他の全ての要素で
ある。同じような論理表示を、他の演算子に対して発生
することが出来る。
この論理表示を用いて、若し、全てのv及びwに対して
tt(0,v,w)=tt(1,v,w)であれば、評価中の論理表示
中のuは冗長であると決めることが出来る。換言すれ
ば、若し、uの値が問題にならなければ、uは、その論
理表示において冗長である。uが冗長である論理表示の
真数テーブルtt(u,v,w)は、tt1(v,w):=tt(1,v,
w)であるとしたv及びwの論理表示の真数テーブルtt1
として再書込することが出来る。
換言すれば、与えられたボクセルにおいて、CSG論理表
示を評価することは、ボクセルがCSG対象物の内側であ
るか、または外側であるかを表示することである。従つ
て、若し、各プリミテイブu、及び全てのu−真数の要
素に対して、この評価を検査する際に、論理表示が対応
するu−偽の要素の値と同じ値を持つていれば、プリミ
テイブuは、そのボクセル内の論理表示において冗長で
ある。然しながら、若し、u−真の要素があり、かつそ
れに対する論理表示がu−偽の要素中に異なつた値を持
つていれば、uはそのボクセル内の論理表示において冗
長ではない。
これは、「真」値を「偽」値と比較することによつて、
ブリミテイブの論理表示中の冗長をテストすることが可
能であることを意味する。これは、後述するように、第
8図に示したような特に設計されたハードウエアを用い
ることによつて行うことが出来る。その代りに、以下に
説明するような汎用のハードウエアとソフトウエアのア
ルゴリズムを使用することによつて、比較動作を遂行す
ることも出来る。
このアルゴリズムにおいて、プリミテイブの真値を通常
保持されている位置に、プリミテイブの偽値を移動する
ように、論理表示用の真数テーブルを右方向にシフトす
ることによつて、真値及び偽値の比較が遂行され、対応
する値は、全ての不整合位置にあるすべてのものを与え
る排他的オア(EXOR)機能によつて比較することが出来
る。シフトは、第1のプリミテイブu、第2のプリミテ
イブv及び第3のプリミテイブwに対して、夫々4位
置、2位置及び1位置を移動し、値に拘らず偽値を通常
保持している位置に置く。プリミテイブが冗長であるか
否かをテストする時、若し無関係の偽値位置がマスクで
被われるならば、排他的オアは、プリミテイブが冗長の
場合、0である。X2、Y1及びZ1が夫々、第1プリミテイ
ブ、第2プリミテイブ及び第3プリミテイブ(u、v及
びwを比較する)である場合の上述の動作の例を、第4
図に示した単純化された構造によつて発生された真数テ
ーブルに関連させて第IV表に示している。
この技術はビツト・マツプ発生ロジツクによつて発生さ
れたビツト・マツプを単純化するのに使用することが出
来る。これを行なうために、制御ロジツクは上述したよ
うなビツト・マツプにシフト及びテスト動作を遂行する
冗長プリミテイブ・ロジツク(RPL)に制御を転送す
る。若し、プリミテイブが論理表示中で冗長であること
が発見されたならば、プリミテイブを指示するポインタ
は、遭遇したプリミテイブのテーブルから除去され、そ
して残りのプリミテイブの計数値は、1だけ減らされ
る。
冗長プリミテイブ・ロジツクがビツト・マツプの処理を
完了すると、制御は対象物を定義する構造に対して新し
いノードを発生するノード発生ロジツクに転送され、ノ
ード発生ロジツクは、残りのプリミテイブの計数値と、
残りのプリミテイブを指定するポインタのビツト・マツ
プ及びテーブルとを含んでいる。ノード発生ロジツク
は、ビツト・マツプ発生ロジツクによつて横断された構
造、または構造の一部を新しいノードによつて置き換
え、横断されたノードのポインタを新しいノードの単一
のポインタに置き換える。
本発明の原理を容易に理解する目的のために、3個のプ
リミテイブの例を説明してきたが、この数は任意の数に
選ぶことができること勿論である。然しながら、プリミ
テイブの数をnとしたとき、関連する素子を表わすため
に必要とするビツトの数は、2nになるから、ビツト・マ
ツプの大きさは、プリミテイブの数が増加すると急激に
増加する。従つて、実際には、32ビツト・ワード(32=
25)を用いて真数テーブルが作れるように、真数テーブ
ルの評価及び発生は最大5つに止めることが好ましい。
ノード発生ロジツクによつて作成された新しいノードを
既に含んでいる論理表示を簡単化するために、第1図に
示したロジツクに加えて単純化ロジツクが必要である。
この付加的なロジツクはそのような新しいロジツクを認
識し、そしてノードを単純化することが出来る。ノード
を単純化するためのそのような単純化動作は、ノードに
よつて指示された各プリミテイブに対して単純化ロジツ
クの反復的な訪問を遂行する段階と、そして反復的な訪
問の結果を分析する段階とを含んでいる。「包含」また
は「空」によつて置換されるプリミテイブに対して、ビ
ツト・マツプの適当な部分が重複され、ノード中の元の
ビツト・マツプは「真」位置(または「偽」位置)だけ
を選択するようにマスクされ、左方向のシフト(または
右方向のシフト)が「偽」(または「真」)の位置の下
で重複された「真」(または「偽」)を有するコピーを
作るために遂行され、そして2つのコピーがビツト・マ
ツプを単純化するために、一緒にオア論理作用が施され
る。この動作は第V表に示されている。
上述したように、本発明のソリツド・モデリング・シス
テムにおいて、ボクセルの中での対象物の定義の構造を
処理している間に、冗長になつたプリミテイブを自動的
に除去することが可能である。
上述の実施例に加えて、プリミテイブの間の関係につい
て付加的な図形情報(geometric information)を入手
することが出来る論理表示の単純化の他の実施例を以下
に説明する。そのような付加的な図形情報の例は、第1
のプリミテイブが特定のボクセルにおいて、他のプリミ
テイブ中に完全に含まれている場合である。従つて、通
常、u及びvに従属している論理表示u及びvの結合
は、若しそのプリミテイブがそのボクセルのvの中に
(即ちuがvを含む)完全に含まれているとすれば、与
えられたボクセル中のuと事実上等価である。
上述のソリツド・モデリング・システムのこの特別の実
施例において、ビツト・マツプ発生ロジツクによつて発
生されたビツト・マツプがマスクと関連付けられ、ビツ
ト・マツプの各要素に対して1ビツト位置を持つマツプ
が設けられる。このマツプは関連マツプ、またはリレマ
ツプ(relmap)と名付けられている。ビツト・マツプ・
ロジツクが、ビツト・マツプを発生することに加えて、
すべて1のリレマツプを発生するように、ビツト・マツ
プ・ロジツクを修正する。リレマツプは、相互従属性を
設定するよう結合した論理的構造のプリミテイブを図形
的に、かつ独立的に比較することによつて後で整理され
る。この図形情報は、例えば上述のウツドワークの文献
に記載されているような月並なライン発生の副次的効果
として発生されうる。また、これは上述の単純化ロジツ
クのプロセスによつても発生することが出来る(例えば
v=「包含」は図形情報の一端である)。
リレマツプの位置の中の1の値は、関連した要素が空で
あることが知られておらず、そしてビツト・マツブの値
が関連するであろうことを表示する。より多くの図形情
報が、プリミテイブ・ノードにおいて、任意の手段で決
定されうるから、ビツトは存在するリレマツプ情報とア
ンド演算を与えることによつてリレマツプ中でオフにさ
れる。若し、両方の関連する位置が関係していれば、与
えられた位置だけが関連しているので、リレマツプ中の
このビツトはアンド演算が施される。
RPLもまた、リレマツプを処理するために修正される。
uがvの範囲内に完全に含まれている場合(即ちuはv
を含む)の上述の論理表示、u「連結」vに対するリレ
マツプの処理を説明する。
リレマツプのビツトが夫々、要素−uINT−v、−uINT
v、uINT−v及びuINTvに夫々対応する場合、1011=uの
リレマツプはvを含む。第2位置の0は、順序付けられ
ている2番目の要素、即ち−uINTvは「空」であるとこ
とは知られている。
ビツト・マツプ及びリレマツプにシフトを適用すること
が出来、次にマスクとして使用することが出来る冗長プ
リミテイブ除去ロジツクが必要である。ビツト・マツプ
中の対応する論理値、真及び偽は、若し、両方が関連し
ていることを表示するリレマツプ中のビツトにそれらの
論理値が関連しているときのみ、等価テストのために関
連付けられる。
第VI表に示された順序は、上述の実施例のプリミテイブ
uの関連性をテストすることを示している。
第VII表に示された順序は、上述の実施例のプリミテイ
ブvの関連性をテストすることを示している。
上述の冗長であることを決定されたプリミテイブの除去
は結果のビツト・マツプ及び結果のリレマツプの発生を
含んでいる。結果のビツト・マツプの発生は、第VIII表
の段階(1)乃至(5)に示されており、この表は、ビ
ツト・マツプからの関連ビツトを含むワード(3)を発
生するために、ビツト・マツプ(1)及びリレマツプ
(2)とをアンド論理演算を施す段階と、リレマツプ
(5)を与えるそのワードからの対応するプリミテイブ
偽ビツト(4)及び対応するプリミテイブ真ビツトとに
オア論理演算を施す段階とを含んでいる。結果のリレマ
ツプの発生は、第VIII表の段階(6)乃至(10)に示さ
れており、この表は、リレマツプ中の対応するプリミテ
イブの真マスク及び対応するプリミテイブの偽マスクと
にオア論理演算を施してワード(8)の中に入れる段階
と、シフト・プロセスによつて発生された優越した値を
取り除き、且つ結果のリレマツプ(10)を形成するため
に、マスク(9)でワード(8)にアンド論理演算を施
す段階とを含んでいる。
従つて、本質的に、ビツト・マツプは論理情報を表示す
るのに用いられ、他方リレマツプは図形情報を表示する
のに用いられる。
上述の第VIII表の段階の順序は、1つのプリミテイブの
除去が最早、冗長ではない第2のプリミテイブを生じる
事実を考慮に入れて選択される。例えば、形状的の情報
A=Bを持つ論理表示A連結Bにおいて、AまたはBの
何れかは冗長であるかもしれないが、両方が冗長になる
ことはない。上述の順序は、ただ1つのプリミテイブが
除去することはあつても、両方のプリミテイブが除去さ
れることはないことを保証する。
本発明に従つたソリツド・モデリング・システムは、汎
用コンピユータを適当にプログラムすることによつて実
行することが出来る。この場合、上述のロジツクは、例
えばスタツク記憶装置とか、定数のテーブルとか、遭遇
したプリミテイブに対するポインタのテーブルとかのス
トレージ素子などを、システムのメモリで適当に編成す
ることと、適当なプログラム・コードを与えることとに
よつて達成することが出来る。包括的なプロシージヤと
同様なプロシージャの中で、特定の個別的な変数の定義
で反復的なプロシージヤ的な訪問が可能なプログラム言
語によつて、コンピユータをプログラムすることが出来
る場合は、本発明の実施は、特に利益が顕著である。そ
のような場合、第5図に示したロジツクの各ブロツク
は、個々の独立したプロシージヤとして実行することが
出来る。然しながら、本発明はそのような実施例に限定
されるべきではなく、汎用コンピユータに特別目的のプ
ロセツサ、または特別目的のアダプタを取付けることに
よつても実行することが出来る。
このような場合、1つ以上の上述のストレージ素子が別
個のストレージとして与えられる。同様に、本発明のロ
ジツクは、特別目的のロジツクによつて、全体的に、ま
たはその一部が与えられてもよい。例えば、上述の冗長
プリミテイブ・ロジツクは、第8図に示した構造を持つ
ハードウエア的なロジツクによつて与えることが可能で
ある。説明を簡明にするために、第8図は、8ビツトだ
け(即ち3個のプリミテイブ)を含むビツト・マツプ中
の対応する真位置及び偽位置を比較するためのロジツク
の模式図を示している。ビツト・マツプのビツトは夫々
の入力92乃至99に入力される。第8図のハードウエア的
なロジツクは、プリミテイブu、v及びwのうちの1つ
以上が冗長であるか否かを決めるためのデコーダのブロ
ツクを含んでいる。各デコーダ・ブロツクはプリミテイ
ブの関連する1つに対して、ビツト・マツプ中の該当す
るプリミテイブの真ビツト及び該当するプリミテイブの
偽ビツトを比較する。該当ビツトの選択はハードウエア
的な接続103によつて遂行され、そして比較は各デコー
ダ・ブロツク中の排他的オア、即ちEXORによつて遂行さ
れる。各デコーダ・ブロツクにおいて、EXORゲートの出
力は、デコーダ・ブロツク100、101及び102の夫々の出
力106、107及び108を形成するために、オア・ゲート105
によつてオア作用が施される。デコーダ・ブロツク100
の出力106における信号レベル「ゼロ」は、対応するプ
リミテイブuが冗長であることを表示する。同様に、デ
コーダ・ブロツク101及び102の出力107及び108における
信号レベル「ゼロ」は、対応するプリミテイブv及びw
が夫々冗長であることを表示する。以上の説明から、こ
の道の専門家には、ビツト・マツプのこのロジツクの実
施化の際に、第8図及び上述の説明で与えたプリミテイ
ブの数から任意のプリミテイブの数を選んで実行するこ
とは自明の事柄に属する。また、第8図に示したロジツ
クをリレマツプの処理に適用することも同様に、当業者
には容易である。
これに対して、例えば上述のソリツド・モデリング・シ
ステムの特定の実施例において、ボクセルの単純化処理
の間で、構成からプリミテイブを除去することは、「包
含」/「空」のノードを指示するポインタによつて、プ
リミテイブ・ノードを指示するポインタを置換すること
により達成され、これは除去されるプリミテイブに符号
を付すために、リレマツプを使用することにより達成す
ることが出来る。
また、ロジツクを第1図の独立したプロツクに分離した
ことは、説明を容易にするためであつて、本発明のソリ
ツド・モデリング・システムにおいて、これらのロジツ
クの一部または全部を結合することは容易になし得るこ
とは注意を要する。加えて、ロジツクのブロツクの或る
もので遂行される動作は、他のロジツクで代用するこ
と、または、他のロジツクを付加することにより実行す
ることが出来る。例えば、プリミテイブ計数ロジツクで
遂行されるプリミテイブの計数に機能を単純化ロジツク
と併合することが出来る。
F.発明の効果 上述のように、本発明は1つ以上の組合せ論理演算子を
含む論理表示によつて組立てられた立体図形のプリミテ
イブによつて定義された対象物の立体的表示を発生する
手段において、冗長なプリミテイブを自動的に検出する
ソリツド・モデリング・システムを提供する。
第IV表 00010001 元のビツト・マツプ。
00000001 ビツト・マツプはX2真の下でX2 偽と整列するように右へシフトされ る。
00010000 比較を行ために排他的オアにする。
00001111 比較からのX2真の値だけを選択す るためにマスクする。
00000000 マスクした結果は全て0なので、X 2は冗長である。
00010001 元のビツト・マツプ。
00000100 ビツト・マツプはY1真の下でY1 偽と整列するように右へシフトされ る。
00010101 比較を行ために排他的オアにする。
00110011 比較からのY1真の値だけを選択す るためにマスクする。
00010001 マスクした結果は全て0なので、 Y1は冗長ではない。
第V表 00101010 v真に対して除去されるビツト・マツ プ。
00110011 v真をマスクする。
00100010 ビツト・マツプv真の部分(上記の2 つの値をアンド論理演算する)。
10001000 v真のビツト・マツプのコピーをv偽 領域の方へ左へ2桁シフトする。
10101010 除去される論理表示のためのビツト・ マツプ(上記の2つのワードのオア論理演算
の結果) 第VI表 0111 1:u結合vのビツト・マツプ。
0001 2:ビツト・マツプ1はu真を越えてu偽 を移動するように右へ2桁シフトされ る。
0110 3:同等であるか否かのテストをするため に1と2に排他的オア論理演算をする。
1011 4:uのリレマツプはvを含む。
0010 5:リレマツプ4をu真を越えてu偽を移 動するようにシフトする。
0010 6:両方のビツトが関連なければ、4と5 は比較が阻止される。
0011 7:u真はu偽にシフトされた悪い値をマ スクする。
0010 8:該当する比較ビツトだけをマスクする ために6及び7をアンド論理演算する。
0010 9:3及び8のアンド論理演算の結果は1 を含むから、uは冗長ではない。
第VII表 0111 1:u結合vのビツト・マツプ。
0011 2:ビツト・マツプ1をv真を越えてv偽 を移動するように右へ1桁シフトする。
0100 3:同等のテストをするために1と2を排 他的オア論理演算する。
1011 4:uのリレマツプはvを含む。
0101 5:リレマツプ4をv真を越えてv偽を移 動するためにシフトする。
0001 6:両方のビツトが関連なければ、4及び 5のアンド論理演算の結果は比較を阻 止する。
0101 7:v真はv偽にシフトされた悪い値をマ スクする。
0001 8:該当する比較ビツトだけをマスクする ために6及び7をアンド論理演算する。
0000 9:3及び8のアンド論理演算の結果は1 を含むから、vは冗長ではない。
第VIII表 0111 1:u結合vのビツト・マツプ。
1011 2:uのリレマツプはvを含む。
0011 3:1及び2の関連はビツト・マツプから のものである。
0001 4:3はn真の位置を越えてv偽位置を移 動するようにシフトされる。
0011 5:結果のビツト・マツプを形成するため に、3と4にオア論理演算を介して全 ての1ビツトをセツトする。
1011 6:uのリレマツプはvを含んでいる。
0101 7:リレマツプ6はv真を越えてv偽を移 動するようにシフトされる。
1111 8:すべての関連ビツトを表示するために 6と7にオア論理演算を施す。
0101 9:リレマツプ中のv偽をマスクオフした v真ビツト・マツプ。
0101 10:結果のリレマツプを与えるために8 及び9にアンド理論演算を施す。
【図面の簡単な説明】
第1図は第2図に示した構造を単純化するための動作全
体を示す流れ図、第2図はCSGの原理に従つて第3A図及
び第3B図に示した対象物を表示するための構造の模式
図、第3A図、第3B図は公知であるが本発明を適用するこ
との出来るCSGの原理を説明するための立体的な対象物
の斜視図及びその断面図、第4図は第1図に示されたよ
うな動作を行うロジツクによつて単純化した時の第2図
の構造の模式図、第5図は本発明に従つて、ソリツド・
モデリング・システムの動作全体を示す流れ図、第6図
は第4図に示されたような構造においてプリミテイブの
間の関係を表わすビツト・マツプを発生するためのロジ
ツクの動作全体を示す流れ図、第7図は本発明の動作を
説明するための円グラフ、第8図は第5図に示したロジ
ツクの一部を実行するための特定の回路図である。 10……段付きの対象物、29……ボクセル、30、30s……
トリー構造、32乃至43……演算子ノード(中間ノー
ド)、44乃至51……プリミテイブ・ノード(ルーフ・ノ
ード)、66……定数テーブル、67……スタツク記憶装
置、68……結果テーブル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・アラン・グレイ イギリス国ハンプシヤー、ウインチエスタ ー、スタンモー、スタンモー・レーン24番 地

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】1つまたはそれ以上の組合せ論理演算子に
    よつて結合された幾何的プリミテイブとして定義された
    対象物の空間的表現を生成するための手段をもつソリツ
    ド・モデリング・システムであつて、 (a)上記プリミテイブと上記演算子のための連結され
    た複数のノードをもつ構造を有する対象物決定手段と、 (b)上記ノードのうちの少なくともあるものを横切
    り、その横断の間に遭遇した幾何的プリミテイブを含む
    論理表現を表すビツトマツプを有するテーブルを生成す
    るための第1の論理手段と、 (c)上記ビツトマツプにつき、冗長幾何的プリミテイ
    ブを表す論理冗長性を検査するための第2の論理手段、 とを具備するソリツド・モデリング・システム。
JP63263014A 1987-12-18 1988-10-20 ソリッド・モデリング・システム Expired - Fee Related JPH06101019B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8729630A GB2214037A (en) 1987-12-18 1987-12-18 Solid modelling system
GB8729630 1987-12-18

Publications (2)

Publication Number Publication Date
JPH01169677A JPH01169677A (ja) 1989-07-04
JPH06101019B2 true JPH06101019B2 (ja) 1994-12-12

Family

ID=10628738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63263014A Expired - Fee Related JPH06101019B2 (ja) 1987-12-18 1988-10-20 ソリッド・モデリング・システム

Country Status (5)

Country Link
US (1) US5086495A (ja)
EP (1) EP0321080B1 (ja)
JP (1) JPH06101019B2 (ja)
DE (1) DE3889882T2 (ja)
GB (1) GB2214037A (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278983A (en) * 1988-09-30 1994-01-11 International Business Machines Corporation Boundary representation solid modeling system
US5113357A (en) * 1989-05-18 1992-05-12 Sun Microsystems, Inc. Method and apparatus for rendering of geometric volumes
GB2231759B (en) * 1989-05-18 1993-12-08 Sun Microsystems Inc Method and apparatus for the rendering of geometric volumes
US5644689A (en) * 1992-01-13 1997-07-01 Hitachi, Ltd. Arbitrary viewpoint three-dimensional imaging method using compressed voxel data constructed by a directed search of voxel data representing an image of an object and an arbitrary viewpoint
US5821940A (en) * 1992-08-03 1998-10-13 Ball Corporation Computer graphics vertex index cache system for polygons
US5347459A (en) * 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
US5563991A (en) * 1993-11-24 1996-10-08 Xerox Corporation Using an image showing a perimeter relationship representation to obtain data indicating a relationship among distinctions
DE19528735A1 (de) * 1994-08-06 1996-02-15 Toyoda Automatic Loom Works Motor zur Umwandlung der Drehung einer Welle in eine lineare Bewegung
US5692184A (en) * 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
US5760778A (en) * 1995-08-15 1998-06-02 Friedman; Glenn M. Algorithm for representation of objects to enable robotic recongnition
US5883629A (en) * 1996-06-28 1999-03-16 International Business Machines Corporation Recursive and anisotropic method and article of manufacture for generating a balanced computer representation of an object
NO306526B1 (no) * 1997-12-30 1999-11-15 Animagic Systems As Fremgangsmaate for aa representere geometriske figurer og geometriske strukturer i datamaskinsystemer
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
US20010047251A1 (en) * 2000-03-03 2001-11-29 Kemp William H. CAD system which designs 3-D models
AU5826301A (en) * 2000-04-07 2001-10-23 Sony Dadc Austria Ag Optical disc copy prevention system
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
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
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
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
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
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
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
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for 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
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US7844842B2 (en) * 2008-11-21 2010-11-30 Apple Inc. Variable refresh rate for power management
US8947444B1 (en) * 2008-12-09 2015-02-03 Nvidia Corporation Distributed vertex attribute fetch
GB2497762B (en) * 2011-12-20 2018-05-23 Advanced Risc Mach Ltd Intermediate value storage within a graphics processing apparatus
US10148499B2 (en) * 2016-11-09 2018-12-04 Seagate Technology Llc Verifying distributed computing results via nodes configured according to a tree structure
JP2019128641A (ja) * 2018-01-22 2019-08-01 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
CN109522239A (zh) * 2018-09-30 2019-03-26 上海恺英网络科技有限公司 一种共同特征数据确定的方法及设备
US11321904B2 (en) 2019-08-30 2022-05-03 Maxon Computer Gmbh Methods and systems for context passing between nodes in three-dimensional modeling
US11714928B2 (en) 2020-02-27 2023-08-01 Maxon Computer Gmbh Systems and methods for a self-adjusting node workspace
US11373369B2 (en) * 2020-09-02 2022-06-28 Maxon Computer Gmbh Systems and methods for extraction of mesh geometry from straight skeleton for beveled shapes

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
US4649498A (en) * 1984-05-08 1987-03-10 The University Of Rochester Computer systems for curve-solid classification and solid modeling
JPH0756678B2 (ja) * 1985-11-01 1995-06-14 株式会社日立製作所 対話形形状モデリングシステム
US4809201A (en) * 1985-12-02 1989-02-28 Schlumberger Systems, Inc. Graphic display region defining technique
US4862392A (en) * 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
GB2194656B (en) * 1986-09-03 1991-10-09 Ibm Method and system for solid modelling
US4816999A (en) * 1987-05-20 1989-03-28 International Business Machines Corporation Method of detecting constants and removing redundant connections in a logic network

Also Published As

Publication number Publication date
EP0321080A2 (en) 1989-06-21
US5086495A (en) 1992-02-04
JPH01169677A (ja) 1989-07-04
DE3889882T2 (de) 1994-12-08
GB8729630D0 (en) 1988-02-03
GB2214037A (en) 1989-08-23
EP0321080B1 (en) 1994-06-01
DE3889882D1 (de) 1994-07-07
EP0321080A3 (en) 1991-10-09

Similar Documents

Publication Publication Date Title
JPH06101019B2 (ja) ソリッド・モデリング・システム
Weiler Polygon comparison using a graph representation
US6862026B2 (en) Process and device for collision detection of objects
US4858149A (en) Method and system for solid modelling
US5125038A (en) Face and edge trim method for an automatic mesh generation system
EP1021798B1 (en) Longest-edge refinement and derefinement system and method for automatic mesh generation
Cavalcanti et al. Non-manifold modelling: an approach based on spatial subdivision
Bossen Anisotropic mesh generation with particles
JPH07175507A (ja) 非多様体データ構造に基づく数値制御加工シミュレーション・システム及び方法
Shostko et al. Surface triangulation over intersecting geometries
US6043825A (en) Method of displaying 3D networks in 2D with out false crossings
EP1547020B1 (en) Irregular mesh and embedded geometric description in a computer graphics system
US20040128648A1 (en) Face correlation between computer aided design models
Stolte et al. Discrete Ray‐Tracing of Huge Voxel Spaces
Frisch et al. Visualization and pre-processing of independent finite-element meshes for car crash simulations
CN115087983A (zh) 使用几何面片进行混合建模的方法和系统
Atallah et al. Multisearch techniques for implementing data structures on a mesh-connected computer (preliminary version)
Shah et al. Investigation of declarative feature modeling
Zhou et al. Selectively meshed surface representation
JP3624015B2 (ja) 有限要素分割モデルから辺,面,要素を抽出する方法及びその装置
JP3162391B2 (ja) 有向オブジェクトのコンピュータエイド形状設計のための関連エンティティシステム
Mäkinen Line-segment insertion in constrained triangulations with applications in path-planning
EP0339778B1 (en) Solid modelling
JPS63178372A (ja) 多面体形状作成装置
JP3912854B2 (ja) 有限要素モデル処理方法及び装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees