JPH0792842B2 - オブジェクトのソリッド表現データ発生器および発生方法 - Google Patents

オブジェクトのソリッド表現データ発生器および発生方法

Info

Publication number
JPH0792842B2
JPH0792842B2 JP1078725A JP7872589A JPH0792842B2 JP H0792842 B2 JPH0792842 B2 JP H0792842B2 JP 1078725 A JP1078725 A JP 1078725A JP 7872589 A JP7872589 A JP 7872589A JP H0792842 B2 JPH0792842 B2 JP H0792842B2
Authority
JP
Japan
Prior art keywords
solid
surface area
space
representation
logic
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
JP1078725A
Other languages
English (en)
Other versions
JPH01290080A (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 JPH01290080A publication Critical patent/JPH01290080A/ja
Publication of JPH0792842B2 publication Critical patent/JPH0792842B2/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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes

Landscapes

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

Description

【発明の詳細な説明】 A.産業上の利用分野 この発明は、ソリッド・モデリング(solid modellin
g)に関し、さらにはオブジェクト(対象物)のソリッ
ド表現に関する。
B.従来技術 一般的に「構成的ソリッド幾何学(CSG)」と呼ばれる
ソリッド・モデリング技術に従うと、3次元ソリッド・
オブジェクトは、コンピュータなどにおいて、ある点が
オブジェクト内にあると評価されたならば、「真」を返
し、そうでないならば「偽」を返すブール関数によって
表現される。CSG技術は、オブジェクトの体積ではなく
その表面が決定される境界技術と対照的であると考える
ことができる。
CSG技術に基づくソリッド・モデリング・システムは、
境界表現あるいは通常「B−表現」として知られている
表現に基づくモデリング・システムに対して利点を有す
る。すなわち、ソリッド・モデリング・システムにおい
てオブジェクトが一たん決定されると、ある点がソリッ
ドの内側と外側のどちらにあるかを決定するためにその
点について関数の値を評価するだけでよい。「B−表
現」システムの場合、ある点がオブジェクトの内側と外
側のどちらにあるかは、決定が体積でなく境界で与えら
れているので、決定がより一層困難である。この理由か
ら、境界技術のみを採用するシステムは、本明細書で言
うところのオブジェクトの「ソリッド・モデリング」を
提供しない。
「B−表現」システムの主要な利点の1つとして、オブ
ジェクトの表現を生成するのが比較的簡単である、とい
うことがある。それは本質的には、オブジェクトを形成
する表面と、その表面を区画する辺と、その辺を決定す
る線を画定し、これらの情報を連結するべくトリー構造
をつくり上げるということである。そのとき、大型のオ
ブジェクトには大量のデータがあり、結果として表現を
作成するには大量のステップが必要とされるけれども、
個々のステップは簡単であり、直接自動化するには適し
ている。
それに比較して、今後「ソリッド表現」と称するCSGタ
イプの表現を生成することは、特に複雑で不規則な形状
をもつオブジェクトの場合一層困難となる。実際、オブ
ジェクトの体積(内部)を決定する表現を生成すること
は、どれがオブジェクトの内部であり、どれが外部であ
るかを決定する必要があるために、ソリッド・モデリン
グ・システムの主要な欠点となる。
CSGシステムにおいては、半空間(すなわち無限平面の
一方の側である空間)や、球や、無限円筒などの基本的
なソリッド・オブジェクトまたは「プリミティブ」の関
数式を結合することによって複合オブジェクトが決定さ
れる。例えば、四面体のソリッド表現は、4つの適当な
半空間を結合させる集合共通部分演算子を含む式から形
成することができる。各半空間は四面体の個々の面と同
一延長面上にあり、四面体の内部に対応する側のソリッ
ドである。他のソリッド・オブジェクトのCSG表現は、
合併、対称差、及び差演算子などの他の集合演算子を含
むことがある。例えば、集合差演算子を用いて、切出し
または穴をもつ複合オブジェクトを決定することが可能
である。このようにして、大きいオブジェクトから別の
オブジェクトを「差し引く」ことによって中空の複合オ
ブジェクトを画定することができる。そのような複合オ
ブジェクトは、本明細書で言うところの「ソリッド」で
ある。なぜなら、ある特定の点がオブジェクトの内部ま
たは外部のどちらにあるかを決定するために、空間内の
特定の点につきオブジェクトの表現を評価することがで
きるからである。
プリミティブから形成されるCSGオブジェクトは典型的
にはプリミティブを結合するための論理式をあらわす構
造のとして決定され、連結された一組のノード(例え
ば、トリー構造)を含み、プリミティブは第1のノード
(例えばトリーの葉ノード)において決定され、演算子
は、構造中の下位ノードで決定されるプリミティブまた
はサブオブジェクトからオブジェクトを構成するために
実行すべき組合せ演算をあらわすために第2または中間
ノードにおいて決定され、複合オブジェクトは、演算子
ノードの適宜のノード(例えばトリーの根)において決
定されている。
尚、現実においては、モデリングすべきオブジェクトは
上述の四面体よりもはるかに複雑であり、オブジェクト
のソリッド表現を正しく生成するべくプリミティブと集
合演算子をあらわすことがきわめて困難であることを理
解されたい。その結果、今までのところ、オブジェクト
のソリッド表現を生成することは、高度のユーザー操作
を要する非常に時間のかかる処理となっている。
C.発明が解決しようとする問題点 本発明の目的は、ソリッド・オブジェクトの表現式の作
成を容易ならしめることにある。
D.問題点を解決するための手段 本発明の一態様に従えば、ソリッド・モデリング・シス
テムのためのオブジェクト画定発生器が与えられる。こ
の発生器は、オブジェクトの個々の表面領域に基づき、
オブジェクト空間中の共通基準点に関連して画定される
構成ソリッドの対称差としてオブジェクトのソリッド表
現を形成するためのオブジェクト画定論理を有する。
空間中の共通基準点に関連して構成ソリッドを画定し構
成ソリッドの対称差を形成することによって、オブジェ
クトの内部の関数表現が自動的に生成される。ソリッド
表現は、オブジェクトの表面が表面領域によって完全に
画定される限りは常に生成され、表面の画定が不完全で
ある場合ですらも生成されることがある。対称差演算は
オブジェクトの外の空間を自動的に削除するが、これに
ついては後で説明する。この処理の基となる論理はある
種の領域充填アルゴリズムに類似している(例えば、IB
M Graphical Data Display Manager(GDDM)Base Progr
amming Reference(文書番号NO SC33-0101-4)の167ペ
ージを参照)。対称差演算は、排他的論理和(EXOR)に
相当する集合演算である。
本発明は、オブジェクトの複雑度に拘らず、オブジェク
トの境界または表面の表現からオブジェクトのソリッド
表現を生成することを可能ならしめる。それゆえ好適に
は、画定発生器は、オブジェクトの表面領域としてその
表面を初期的に画定するための手段を有してもよい。た
だし、そのような手段は、画定発生器に外部的に与えて
もよい。
本発明に従う画定発生器の好適な実施例においては、オ
ブジェクトの表面を初期的に画定するための手段が、表
面領域としてその表面を画定するデータ構造のためのデ
ータ記憶のかたちで与えられる。このようにして、本発
明は、オブジェクトの現存する表面表現からソリッド・
オブジェクトのソリッド表現を与えることを可能ならし
める。
オブジェクトの表面を初期的に画定するための手段は、
追加的に、あるいは代替的に、表面領域として表面を画
定するデータ構造を発生するために、オブジェクトに関
して外部的に供給されたデータを処理するための前処理
論理手段を有してもよい。このようにすると、本発明に
従う画定発生器は、先ずオブジェクトの表面の表現を生
成し、次にその表面の表現からソリッド表面を作成する
ことによって、ソリッド・モデルの生成を容易ならしめ
ることができる。
CSG原理に従うと、後述する本発明の特定の実施例に従
うオブジェクト画定論理は、表面領域自体に基づくソリ
ッド・プリミティブの共通部分と、表面領域の境界に基
づく1つまたはそれ以上の構成表面と、共通点を表現す
ることによって、表面領域に基づく構成ソリッドを形成
する。ある表面の構成プリミティブの数または形状で
は、表面領域の形式に依存することになる。またそれは
空間中で共通共通基準データとして何が使用されている
かにも依存する。
例えば、オブジェクト空間中の共通基準データは、オブ
ジェクト空間中の特別な点であってもよい。このような
場合、表面領域の境界および空間中の共通点を含む構成
表面を画定させることもできる。
あるいは、オブジェクト空間中の共通基準データは、例
えば、オブジェクト空間中の特定の方向であることもあ
る。このとき、生成される構成表面は、表面領域の境界
を包含し所与の方向へ延びるように画定することができ
る。このことは、その方向の無限遠点に共通基準データ
を選択することと等価である。
構成面の生成は、各平面領域が平坦で不連続領域によっ
て接続された複数の直線によって区画されているときに
簡易化される。というのは、そのとき構成面が平坦で構
成プリミティブが半空間の形式となるからである。
もしオブジェクトの各表面領域が三角形であるなら、構
成ソリッドの生成はさらに簡易化される。このことは、
ピラミッド形状の基底が平坦で凸状の境界をもつことを
保証し、以て凹状表面領域があるかどうかを判断する必
要性を解消する。この場合、もし予備処理論理手段が与
えられるなら、その論理手段は、外部から供給されたデ
ータが三角形の表面領域によって境界を画定しえないと
き、そのデータを処理してオブジェクトの境界を画定す
るための小面化(facetting)論理手段を有しているこ
とが望ましい。しかし、本発明は、この形式をもつ表面
領域を使用することには限定されない。本発明は、平坦
でもなく三角形でもない表面領域をもつオブジェクトに
も適用可能である。ただし、そのとき、オブジェクトの
処理が複雑になることを理解されたい。
従って、後述する画定発生器の例では、モデリングすべ
きオブジェクトの表面は三角形の平面領域として画定さ
れ、オブジェクト画定手段は次のものを具備する。
(a)表面領域自体に基づくプリミティブ及び各々が表
面領域の各辺と空間の共通基準点に基づく3つの構成プ
リミティブを各表面領域毎に画定するためのプリミティ
ブ画定論理手段。
(b)表面領域自体に基づくプリミティブ及び各々が表
面領域の各辺と空間の共通基準点に基づく3つの構成プ
リミティブの共通部分によってあらわされる構成ソリッ
ドを各表面領域毎に形成するための共通部分論理手段。
(c)共通部分論理手段によって生成された対称差とし
てオブジェクトのソリッド表現を形成するための対称差
論理手段。
表面領域が三角形で共通データが空間における特定の点
である場合、各構成ソリッドは、その先端が予定の位置
に規定され、その基底が、表面領域に画定されるような
台形状ピラミッドである。
このことは原理的には、共通基準点が特定の方向の無限
遠点でありすなわち無限ピラミッドの頂点が無限遠点に
ある場合にもあてはまるけれども、この場合、ピラミッ
ドは、実際のモデルの有限的な制約により収束すること
はない。
好適には、オブジェクト画定論理手段は、オブジェクト
のソリッド表現を画定するデータ構造を生成する。そし
てこれは、画定発生器の一部であってもなくてもよいオ
ブジェクト画定記憶に記憶することができる。
本発明に従うオブジェクト画定発生器によって発生され
たソリッド表現は、慣用的に作成されたソリッド表現と
同様に処理することができる。結局、本発明に従うオブ
ジェクト画定発生器と、その発生器によって発生された
オブジェクトのソリッド表現を処理するためのオブジェ
クト画定処理論理手段をもつソリッド・モデリング・シ
ステムが与えられる。
本発明の別の態様によれば、オブジェクトのソリッド表
現を生成するための方法が与えられ、この方法は、オブ
ジェクトの個々の表面領域に基づいており、オブジェク
ト空間中の共通データに関連して画定された構成ソリッ
ドの対称差を形成することに関与している。
この方法は好適には、表面領域としてオブジェクトの表
面を初期的に画定することに関与し、これにより第1の
原理からソリッド・モデルを生成することが容易ならし
められる。
本発明に基づく方法の特定の例においては、表面領域に
基づく構成ソリッドは、表面領域自体に基づくソリッド
・プリミティブと、表面領域の境界及び空間中の共通デ
ータに基づく1つまたはそれ以上の構成表面との共通部
分を表現することによって形成される。
E.実施例 第1A図及び第1B図は、本発明に従うオブジェクト画定発
生器の機能を説明するために使用されるオブジェクト10
の斜視図及び平面図である。その平面図から見てとれる
ように、オブジェクトは、矢形の基底をもち、オブジェ
クト10の辺が頂点5で合一する。
第2図は、第1及び第2の組の表形式のレコードをあら
わし、それらの表は結合さると、オブジェクト10の表面
をあらわすデータ構造を形成する。符号12で参照される
第1の組のレコードは、第1の5つのレコード(すなわ
ち、レコード群12の最初の5つの行)におけるオブジェ
クトの5つの頂点1ないし5の、オブジェクト空間にお
ける座標位置をあらわす。それらのレコードの第1、第
2及び第3のフィールドにX、Y及びZ座標が格納され
る。符号14で参照される第2の組のレコードは、オブジ
ェクト10の境界を形成する6個の三角形領域を決定す
る。すなわち、それぞれのレコードは、頂点1、2、3;
1、2、4;1、5、3;1、5、4;2、5、3及び2、5、4
である(ここで、1、2、3などはレコード群12の左側
に付されているレコード番号1ないし5に対応する)。
三角形領域の3つの頂点は、レコード群14の第1、第2
及び第3のフィールドであらわされる。
ここで、第1図のオブジェクトの各表面領域が三角形で
あることに注意されたい。オブジェクトの基底の場合、
オブジェクトの面は矢形であるけれども、その境界画定
面は、2つの三角形表面領域に分割される。このこと
は、オブジェクトのソリッド表現の生成を簡易化するた
めに行われる。
その理由を述べると、第1に、三角形は表面領域のきわ
めてコンパクトな表現を与える。というのは、3点によ
り三角形状の表面領域が一意的に決定されるからである
(ただし、三角形は平坦であると想定する)。4点ある
いはそれ以上の場合、面を正しく決定するためにはこれ
らの点をつなぐ線についての余分なデータが必要であ
る。例えば、オブジェクトの矢形基底面の4つの頂点を
以てすれば、3つの異なる閉表面を決定することができ
る。その第1のものは、点1、4、2、3、1をこの順
に結んだ面であり、その第2のものは、点1、3、4、
2、1をこの順に結んだ面であり、その第3のものは、
点1、2、3、4、1をこの順に結んだ面である。この
ように、三角形の表面領域を使用することは、オブジェ
クトの境界の表現を簡易化するのである。
さらに述べると、三角形で平坦な表面領域を使用するこ
とが構成ソリッド生成の簡易化につながる。すなわち、
各表面領域の境界が凸状であるため、表面領域の境界に
凹状部分があるかどうかのチェックをする必要がなく、
簡単なソリッド表現をもつ有効構成ソリッドを高い信頼
性で生成することができる。
オブジェクトの境界表現によって画定されるオブジェク
トの表面を、平坦な三角形表現領域を形成するように細
分割するアルゴリズムは既知である。オブジェクトの境
界表現を細分割するこの処理は一般的に小面化(facett
ing)と呼ばれ、結果の表面領域は一般的に小面(face
t)と呼ばれる。平坦面から形成されていない表面をも
つオブジェクトの場合、オブジェクトを小面化する最初
のステップは、オブジェクトのその表面を平坦なn側面
小面体で近似し、その後n側面小面体を三角形小面に細
分割する段階を有する。この三角形小面体を形成する処
理は任意の適宜な方法でよく、それは当技術分野の熟練
した技術者には明らかであり、本発明の一部を形成する
ものではない。
第3図は、本発明に基づくオブジェクト画定発生器18を
含むソリッド・モデリング・システムの論理及び記憶手
段の全体的な概要の機能ブロック図である。第2図に示
されている表面表示のデータ構造は、表面表示データ記
憶(SRS)20に記憶されている。オブジェクト画定論理
(ODL)22は、そのオブジェクトの表面表示から、モデ
リングすべきオブジェクトのソリッド表現を発生するた
めにSRS20にアクセスする。ODL22は、オブジェクトの結
果のソリッド・モデルをオブジェクト画定記憶(ODS)2
4に記憶する。
第3図に示されているオブジェクト画定発生器18はま
た、SRS20に記憶するためのモデルの表面表現を生成す
るためにモデリングすべきオブジェクトに関連する入力
データ28を処理するための前処理理論(PPL)26を含ん
でいる。この入力データは、キーボード入力、オブジェ
クトの直接的なディジタイズによるか、そのオブジェク
トのスケール・ドローイングによるか、他の適当な手段
により慣用的な方法で取り込んで、前処理論理に適当な
形式で処理入力してもよい。あるいは、入力データは、
直接SRS20に記憶するための前処理されたデータのファ
イルの形式をとってもよい。前処理論理はまた、例えば
上述したオブジェクトの表面の小面化のために、第2図
に示すような形式でない境界表現を変更するための論理
手段を含んでいてもよい。
ソリッド・モデルあるいはオブジェクト画定処理論理
(ODPL)30は、オブジェクト画定発生器18が組みこまれ
るソリッド・モデリング・システムの一部を形成する。
ODPLは、CGS原理に従って所望の結果を与えるために、O
DL22によって作成されたオブジェクトのソリッド表現を
処理するためのものである。ODPLは、例えば、英国特許
第2194715号に記載されているようなオブジェクトの2
次元イメージを発生するための論理手段を含んでいても
よい。
第3図に図示され、以下説明されるオブジェクト画定発
生器の例は、モデリングされるオブジェクトの表面表示
が、第2図に関連して説明した三角形小面に基づいてい
ることを想定している。後述のリスト1は、オブジェク
トの表面領域に基づく構成ソリッドの対称差を形成する
ために第3図に示されているODL22の動作の全体的な概
要を示すものである。第4図には、モデリングすべきオ
ブジェクトのソリッド表現のためのデータ構造が示され
ている。
1.1.オブジェクトのソリッド表現(SR)を、空にセット 1.2.オブジェクトの第1の表面領域を現在表面として選
択 1.3.現在表面領域に基づき構成ソリッド(CS)を画定 1.4.CSと前記SRの対称差を形成することによってSRを更
新 1.5.さらに表面領域があるなら、次の表面領域を現在表
面領域として選択し、1.3へ行く、さもなければ終了。
リスト1−対称差論理 ステップ1.1では、論理状態「空」を決定するプリミテ
ィブ・ノードを指し示すデータ構造のための先頭ノード
HNを作成することによって、ODS中にソリッド表現のた
めのデータ構造が確立される。言いかえると、オブジェ
クトは初期的には空の空間であるとして定義される。
ステップ1.2では、レコード群12のうちのどの点が、オ
ブジェクトの第1の表面領域の頂点を形成するかを判断
するために、レコード群14の第1の行にODL22がアクセ
スする。
ステップ1.3では、ODLが表面領域に基づく構成ソリッド
のソリッド表現を生成する。このことは、後述のリスト
2を参照してより詳細に説明される。
ステップ1.4では、オブジェクト(42P、44P、46P、48
P、50P)の以前のソリッド表現と、ステップ1.3で生成
された構成ソリッド(42C、44C、46C、48C、50C)のソ
リッド表現の対称差を決定する中間ノード(42、44、4
6、48、50)を導入することによって、オブジェクトの
ソリッド表現(第4図)をODLが更新する。
第4図に示す各ブロックは、トリー状データ構造中のノ
ードをあらわす。各ノードは、ノードの定義(例えば、
対称差ノードSDである、など)を含む第1のフィールド
と、従属ノード(例えば前のソリッド表現42Pなど)あ
るいは構成ソリッド(42Cなど)へのポインタを形成す
る1つまたはそれ以上のフィールドを含む。第4図に示
すトリー構造は、多くのノードにおいて、左側のポイン
タによって指し示されるサブトリーが、右側のポインタ
によって指し示されるサブトリーよりも長いという点で
かなり非対称である。対称差論理は、平衡サブトリーを
生成するように変更することもできる。尚、第7図及び
リスト2を参照して後で説明することであるが、構成ソ
リッドを決定する各ノードは事実上サブトリーを含む。
ステップ1.5では、もし処理すべき表面領域がさらにあ
るなら、ODLはレコード群14の次の行にアクセスし、ス
テップ1.3へ制御を渡す。このことは、オブジェクトの
表面表現の各表面領域が順番に処理され、各表面領域に
基づく構成ソリッドが生成され、それが対称差演算子に
よって、同様に生成された他の構成ソリッドと論理的に
結合されることを意味する。「対称差」演算子は、排他
的論理和関数と等価な、集合算である。すなわち、2つ
の容量体の対称差は、容量が存在するけれども共存しな
い場合に真である。このことは、第5図に示す、プリミ
ティブA、B、C及びDについてのベン図に示されてい
る。ここで、A、B、C及びDの対称差が真である領域
Tとラベルされている。これらは奇数個のプリミティ
ブが共存する領域である(この場合、0を偶数と考え
る)。
対称差演算子の効果は、第1図に示したオブジェクトに
関連して第6図にも示されている。第6図においては、
6つの四面体の辺が重ね書きされており、その四面体の
各々は、オブジェクトの三角形表面の1つを基底とし、
オブジェクト空間中の共通基準データ点Pに関連して規
定されている。尚、四面体を規定するための論理は、リ
スト2及び3に関連して後で説明される。6つの四面体
は、それぞれ、頂点P、1、2、3;P、1、2、4;P、
1、5、3;P、1、5、4;P、2、5、3及びP、2、
5、4である。Pは座標(−2、2、−2)をもつと仮
定する。第6図を眺めることにより、頂点1、2、3、
4及び5をもつソリッド・オブジェクトの内側が、奇数
個の四面体が存在しあるいは共存する箇所の空間領域に
よって決定されることが見てとれよう。これに対して、
偶数の四面体が共存し、あるいは四面体が存在しない領
域は、オブジェクトの外側である。
以下に示すリスト2は、構成ソリッド(リスト1のステ
ップ1.3)を形成するための共通部分論理である。
2.1.現在の表面を画定する頂点を選び、空間中の予定の
共通基準データに関連して現在表面領域の半空間を画定
する。
2.2.現在の表面領域の第1の辺を画定する2つの頂点を
選び、その表面領域の残りの頂点に関連してこの辺と予
定の共通基準データを含む半空間を画定し、ステップ2.
1で生成した半空間との共通部分を形成する。
2.3.現在の表面領域の第2の辺を画定する2つの頂点を
選び、その表面領域の残りの頂点に関連してこの辺と予
定の共通基準データを含む半空間を画定し、ステップ2.
2で生成した半空間との共通部分を形成する。
2.4.現在の表面領域の第3の辺を画定する2つの頂点を
選び、その表面領域の残りの頂点に関連してこの辺と予
定の共通基準データを含む半空間を画定し、ステップ2.
3で生成した半空間との共通部分を形成する。
リスト2−共通部分論理 ステップ2.1において、ODLは、レコード群14で現在アド
レスされている表面領域の内容によって識別されたレコ
ード群12の頂点の画定データにアクセスする。次に、OD
Lは、この表面領域に基づく半空間の関数式を計算す
る。実行すべき実際の計算は、使用されるデータの形式
に依存するが、これについては、リスト3乃至5に関連
して示されるプリミティブ・ソリッド、またはオブジェ
クトのソリッド表示のためのプリミティブのうちの1つ
を形成し、その半空間を画定するデータは、第7図のプ
リミティブ・ノード52に記憶される。
ステップ52において、ODLは、三角形表面領域の3つの
辺のうちの第1の辺を決定する現在の表面領域の頂点の
うちの2つの頂点を選択する。ODLは次に、この辺と共
通点を含む半空間を画定する計算を行う。これについて
は、リスト3乃至5に関連して示されるプリミティブ画
定論理に関連して後で説明する。この半空間が、第2の
プリミティブ・ノード56でソートされることになるデー
タである、第2のプリミティブを形成する。ODLは、集
合共通部分演算子を規定するノード60をもちいて、第1
の2つのプリミティブ・ノードを連結する構成ソリッド
のソリッド表現(第7図)を更新する。
ステップ2.3及び2.4において、三角形表面領域の第2及
び第3の辺のおのおのについてステップ2.2の処理が反
復されて、第3及び第4のノードが生成され、これは、
第7図に示すように、共通部分ノード62及び64を用いて
構成ソリッドの表現へとリンクされる。なお、第7図
は、構成ソリッドの結果のソリッド表現を示すものであ
る。
ステップ2.1に関連して既述のように、表面領域に基づ
く半空間の関数式を計算するために実行すべき実際の計
算は、使用される基準データの形式に依存する。三角形
の頂点の組に基づき半空間を形成するための論理は、リ
スト3に記述されており、その場合、オブジェクト空間
中の共通基準データはその空間中の点Pである。
リスト3で設定されるプリミティブ画定論理によって要
求される入力データは、半空間の境界上の3点J、K及
びLの座標Cと、半空間内の点Tの座標Cである。表面
領域自体に基づき半空間を規定するとき(すなわち、上
記ステップ2.1)、三角形表面領域の頂点が、点J、K
及びLを形成し、オブジェクト空間中の共通点が点Tを
形成する。表面領域の辺のうちの1つに基づき半空間を
規定するとき(すなわち、上記ステップ2.2、2.3、2.
4)三角形表面領域の頂点が点J、K及びTを形成し、
空間中の共通点が点Lを形成する。
3.1.点J、K及びLの座標を用いて2つのベクトルを決
定: ベクトル JK=C(J)−C(K) ベクトル JL=C(J)−C(L) 3.2.その平面の法線を決定: 法線=ベクトルJKとベクトルJLの外積 3.3.原点からその平面のオフセットを決定: オフセット(d)=法線と点Jの内積 3.4.その平面の半空間決定: もし法線と点Pの内積がdより大きいなら、 半空間:=(Nx、Ny、Nz、−d) そうでないなら、 半空間:=(Nx、Ny、Nz、d) ここで、Nx、Ny、NzはそれぞれX、Y及びZ方向のベク
トル定義であり、dは、原点からのオフセットである。
リスト3−基準データ=点の場合のプリミティブ画定論
理 リスト3のプリミティブ画定論理の動作の原理は、ある
平面上で3つの点J、K及びLの座標を与えたとき、そ
の平面の数学的な表示は、その法線と、その平面の座標
系の原点からのオフセットとして決定することができ
る。原点からのオフセットは、法線と、その平面上の一
点の座標との内積によって計算することができる。
ステップ3.1では、生成すべき半空間に対応する平面上
にある3つの点から第1及び第2のベクトルが生成され
る。第1のベクトルである、ベクトルJKは、第1の点J
の座標値x、y及びzを、第2の点Kの対応する値から
個別に減算し、その結果を個別に記憶することによって
生成される。第2のベクトルである、ベクトルJLは、第
1の点Jと第3の点Lの座標をそれぞれ使用して同様に
計算され記憶される。各ベクトルの記憶値は、それぞ
れ、x、y及びz軸に関する勾配をあらわす。
ステップ3.2では、第1及び第2のベクトルの外積を形
成することによって表面に対する法線を生成することが
できる。外積は次のように定義される。
((JKy*JLz)‐(JKz*JLy)、(JKz*JLx)‐(JKx
*JLz)、(JKx*JLy)‐(JKy*JLx)) ここで、JKx、JKy、JKzは、それぞれベクトルJKのx、
y、z方向のベクトル定数であり、JLx、JLy、JLzは、
それぞれベクトルJLのx、y、z方向のベクトル定数で
ある。
ステップ3.3では、ベクトルと、平面上の点との内積と
して原点からのオフセットが計算される。内積は次のよ
うに定義される。
(Nx*Wx)+(Ny*Wy)+(Nz*Wz) ここで、Nx、Ny、Nzは、それぞれ法線Nのx、y、zの
方向のベクトル定数であり、Wx、Wy、Wzは、それぞれ点
Wのx、y、z座標である。この内積は、平面上の任意
の点Wにおける平面のオフセットを与える。
四面体の小面の1つと同一平面上にある平面の方程式
と、その小面のソリッド側の点の座標が与えられると、
四面体のソリッド表現を形成するために使用することの
できる半空間を画定することが可能になる。
このことは、ステップ3.4で実行される。最初にまず、
四面体の残りの点が平面のどちらの側に有るべきかにつ
いての判断がなされる。その判断は、法線と四面体の第
4の点の内積が、平面上の点と法線の内積よりも大きい
か小さいかによりなされる。この半空間は次に、上記判
断の結果に応じて、上記ステップ3.4に示すように、平
面に対する法線のx、y及びz勾配と、原点からのその
平面のオフセットによって画定される。この画定により
ソリッド・プリミティブの関数的画定が形成され、これ
は、ソリッド・オブジェクトをあらわすデータ構造中の
プリミティブ・ノードにおいてODS24に記憶される。
尚、この段階で、法線と点Tの内積がdに等しいなら、
このことは、点Tはその平面上にあり、四面体が平坦
(すなわち共通点が、三角形平面領域の3つの頂点によ
って決定される平面上にある)であることを意味するこ
とに留意されたい。その場合、その平面の構成ソリッド
は、オブジェクトのソリッド表現の画定には寄与せず、
「空」を定義するプリミティブで置きかえることができ
る。こうして、もし平坦な構成ソリッドのための追加的
論理手段が例えばリスト2のステップ2.1の前に設けら
れるなら、処理時間を節約し、そのような場合のオブジ
ェクトのソリッド表現を簡易化することができる。尚、
この追加的論理手段は構成ソリッドの画定を簡易化する
ものであるけれども、ODL22の動作には本質的ではない
ことに留意されたい。
オブジェクトの表面表現が不完全であっても場合によっ
てはソリッド・オブジェクトの有効なソリッド表現を作
成することが可能であるのは、ある表面と共面的な平面
が場合によっては基準点を含むことがあり、結局オブジ
ェクトのソリッド表現に寄与しないという理由による。
このことは、空間中で基準点を正しく選択することを保
証する。
リスト2に示されている共通部分論理を用いると、その
ような4つのプリミティブ・ノードが画定され、各四面
体毎にそれらのプリミティブの共通部分を画定するノー
ドによってそれらのノードが第7図に示すように連結さ
れることが理解される。プリミティブの共通部分は、す
べてのプリミティブによって占められている空間の領
域、すなわちピラミッド内の空間領域を画定する。
リスト3は、データが空間中の予定の点である場合に半
空間を生成するためのプリミティブ画定論理をあらわし
ている。しかし、その点がある方向の無限遠に移動され
るなら、構成ソリッドを生成するための計算式は簡略化
することができる。このことは、実際のシステムの有限
の節約条件が与えられたとき、構成表面が収束しないと
いう利点を有し、しかも予定の基準線をその方向とする
ことができる。三角形領域の頂点の組に基づき半空間を
形成するための論理手段は、予定の基準データが空間中
の所与の方向である場合について、リスト4及び5を参
照して後で説明される。
リスト4及び5に示されている論理に必要な入力データ
は、半空間の境界上の2点J及びKの座標C、すなわち
その境界が延びる方向のベクトルVの画定と、半空間内
の点Tの座標である。
リスト4に示されている論理は、表面領域自体に基づき
半空間を生成するために(すなわちリスト2のステップ
2.1)使用される。この論理は本質的にはリスト3の論
理と同一であるが、入力パラメータとして、空間中の共
通点でなく共通ベクトルVと、点J、K及びLとしての
三角形平面領域の頂点を使用する。
4.1.点J、K及びLの座標を用いて2つのベクトルを決
定: ベクトル JK=C(J)−C(K) ベクトル JL=C(J)−C(L) 4.2.その平面の法線を決定: 法線=ベクトルJKとベクトルJLの外積4.3.その平面の原
点からのオフセット オフセット(d)=法線と点Jの内積 4.4.その平面についての半空間を決定: もし法線とベクトルVの内積が0より大きいなら、半空
間:=(Nx、Ny、Nz、−d)さもなければ 半空間:=(−Nx、−Ny、−Nz、d) ここでNx、Ny及びNzは、それぞれX、Y及びZ方向のベ
クトル定数であり、dは原点からのオフセットである。
リスト4−基準データ=ベクトルである場合の表面領域
に基づくプリミティブのプリミティブ画定論理 リスト4に示した論理は、入力パラメータが異なりまた
ステップ4.4での判断が異なる点でしかリスト3とは異
ならないことが見てとれよう。法線とベクトルVとの内
積は、平面のどちらの側がソリッドであるかを判断する
ために使用される。もし法線とベクトルが垂直なら(す
なわち内積=0)、半空間の方向ベクトルはその平面内
にある。この結果は、目下の表面領域の構成ソリッドが
平坦でオブジェクトのソリッド表現に寄与しない、とい
うことになる。リスト3に関連して指摘すると、もし平
坦な構成ソリッドについてチェックするための追加的な
論理が設けられるなら、その構成ソリッドに対応して、
オブジェクトのソリッド表現には「空白」を規定するプ
リミティブを挿入することができる。
リスト5に示されている論理は、表面領域の辺の1つオ
ブジェクト空間の方向に基づき半空間を生成するために
(リスト2のステップ2.2、2.3、または2.4)使用さ
れ、この場合、点J、K及びTが三角形の頂点であり、
ベクトルVが空間の予定の方向である。
5.1.座標を用いてベクトルの決定: ベクトル JK=C(J)−C(K) 5.2.平面に対する法線の決定: 法線=ベクトルJKとベクトルVの外積 5.3.平面の原点からの法線オフセット決定: オフセット(d)=法線と点Jの内積 5.4.平面の半空間の決定: もし法線と点Tの内積がdより大きいなら、 半空間:=(Nx、Ny、Nz、−d)そうでないなら 半空間:=(−Nx、−Ny、−Nz、d) ここでNx、Ny及びNzはそれぞれX、Y及びZ方向のベク
トル定数であり、dは原点からのオフセットである。
リスト5−基準データ=ベクトルである場合の表面領域
の辺に基づくプリミティブのためのプリミティブ画定論
理 ここで、ステップ5.1ないし5.4は、ベクトルVがステッ
プ5.2で第2のベクトルとして使用されるのでステップ
5.1で第2のベクトルを計算する必要がないということ
を除けば、リスト3のステップにほぼ対応していること
が見てとれよう。
ベクトルによって決定される、方向としてのデータの使
用は、さまざまな構成ソリッドのすべてが構成平面が有
限空間内のある点で収束する訳ではないという点で好都
合である。これは、無限空間の点を基準点として使用し
た場合である。点を基準データとして選択したときに、
その点の付近の構成表面を解像することには、実際のシ
ステムの有限の解像度のため問題が生じることがある
が、この問題はベクトルを用いることにより回避され
る。
結果のデータ構造によって画定されるオブジェクトのソ
リッド表現は、ソリッド・オブジェクトの画定のために
必要な多くの構成プリミティブを含むことになるが、こ
れは直接にはオブジェクト自体の表面に寄与しない。こ
の状況は、本発明に従いオブジェクト画定発生器によっ
て発生されるソリッド表現に特有ではない。実際、得ら
れたデータ構造は慣用的なCSG形式のものである。
オブジェクトの空間的表現(例えば2次元イメージ)を
発生するためにオブジェクトのソリッド表現を処理する
ための慣用的なCSG細分割論理は、そのような空間的表
現ではレンダリングされることになっていないプリミテ
ィブまたはプリミティブの一部を除去する能をもつ。そ
のような2次元イメージの生成の例は、英国特許第2194
715号に記載されている。そのような慣用的な論理手段
はまた、基底を2つの三角形平面領域に分割する(第1
図に示すような線)が、結果のイメージにあらわれず、
以て後処理論理がオブジェクトの基底を平坦であると考
慮するようにすることを意図している。
オブジェクトのソリッド表現の処理効率を高めるために
は、構成プリミティブにラベルをつけることが望ましい
が、必ずしも本質的ではない。このことは、プリミティ
ブ・ノードに、そのプリミティブが構成プリミティブで
あるか否かを識別するフラグを設けることにより行うこ
とができる。このフラグは、ソリッド表現の処理の間
に、その作成の間とその後のどちらでも、任意の時点で
セットすることができ、そのときプリミティブが構成プ
リミティブであるか否かが決定される。構成プリミティ
ブのラベル付けは、オブジェクトのソリッド表現の処理
効率を高めることができる。というのは、それによりス
ペースまたはボクセル(VOXEL)を「空」または「充
填」として記述することが可能となり、そのとき非構成
表面がそのボクセル内に含まれていないと判断される。
慣用的なCSG細分割論理はボクセル内にプリミティブの
計数値を保持し、その計数値がゼロになったときボクセ
ル内の処理が終了する。また、非構成プリミティブの第
2の計数値を追加的に保持することにより、その第2の
計数値がゼロに達したときに処理が停止するようにする
ことができる。
オブジェクト画定論理によって生成されたソリッド表現
を簡単化するための既存の技術を、オブジェクトの空間
表現を生成するためのソリッド表現の処理の前またはそ
の間に使用することもできる。そのような技術として
は、ソリッド表現を決定するデータ構造を簡単化するた
めに反復プリミティブまたはプリミティブのコンプリメ
ントを識別するようにしたものがある。また、冗長プリ
ミティブを識別するための技術として、本出願人に係る
1987年12月18日付英国特許出願第8729630号に記載のも
のがある。
本発明に従うオブジェクト画定発生器と、それを組込ん
だソリッド・モデリング・システムは、パーソナル・コ
ンピュータや、ホスト処理システムなどの汎用コンピュ
ータを適宜プログラミングすることにより、実施するこ
とができる。その場合、リスト1ないし5で示した論理
は、適当なプログラミング・コードによって与えること
ができ、SRS及びODSなどの記憶素子はシステム・メモリ
を適宜構成することにより与えることができる。そのデ
ータ構造は、場合によっては、オペレーティング・シス
テムまたはプログラミング言語で管理することもできよ
う。このようにすれば、ノード及びポインタの生成は透
過的となる。また、大域変数と同様に手続内で局所変数
を定義することにより再帰的手続の呼出を可能ならしめ
る言語でコンピュータをプログラミングすることによっ
て上記論理を実施した場合、特に有利にその実施が行わ
れる。
その場合、リスト1ないし5のめいめいに記述された論
理は、別個の手続として実施し得る。
しかし、本発明は、そのような実施に限定されるもので
はなく、専用プロセッサあるいは汎用プロセッサに使用
される専用アダプタとして実施することもできる。
その場合、上述の1つまたはそれ以上の記憶素子は、デ
ィスクリート記憶のユニットによって提供してもよい。
同様に、上記論理は、その全体あるいは一部を専用論理
回路として与えることができる。
尚、本発明の論理手段が第2図では個別のブロックに分
けられ、またリスト1ないし5で個別に記述されている
のは、説明の便宜のためであって、本発明に従うオブジ
ェクト画定発生器の別の例では、論理手段の一部または
全体を他の様式で配列することもできよう。さらに、論
理ブロックのうちのあるもので実行される動作は、論理
の他のブロックで代替的にあるいは追加的に実行するこ
とができる。
さらに、第2図においてオブジェクト画定発生器は、オ
ブジェクト画定処理論理を組込むソリッド・モデリング
・システムの一部を形成するものとして図示されている
が、必ずしもそのようにしなくともよい。すなわち、オ
ブジェクト画定発生器は、後でソリッド・モデリング・
システムによって処理するためのオブジェクトのソリッ
ド表示を生成するために単独的に実施することもでき
る。
また、既述のように、本発明に従うソリッド・モデリン
グ・システムの別の例では、SRSに記憶されるオブジェ
クトの表面表示が平坦な三角形表面領域に基づく必要は
ない。しかし、この場合、構成プリミティブとソリッド
の生成と処理はより複雑になると思われる。
F.発明の効果 本発明は、オブジェクトの複雑さに拘らず、ソリッド・
オブジェクトのソリッド表現を自動生成することを可能
ならしめるものであって、そのソリッド表現は、オブジ
ェクトの表面表現から慣用的なCSG技術に従い処理する
ことができる。オブジェクトの境界または表面(サーフ
ィス)表現は、オブジェクトの実物例または設計図面を
ディジタイズすることにより比較的容易に生成すること
ができ、本発明はオブジェクトのソリッド表現のきわめ
て容易ならしめるのである。
【図面の簡単な説明】
第1A図は、本発明に従うソリッド・モデリング・システ
ムの機能を説明するために使用されるオブジェクトの斜
視図、 第1B図は、第1A図の平面図、 第2図は、第1A図及び第1B図に示すオブジェクトの表面
表示のレコードをあらわす図、 第3図は、本発明に従うオブジェクト画定発生器を組込
んだソリッド・モデリング・システムのブロック図、 第4図は、オブジェクトのソリッド表現のためのデータ
構造の一部をあらわす図、 第5図は、第3図に示すオブジェクト画定発生器の動作
を説明するためのベン図、 第6図は、第3図に示すオブジェクト画定発生器の一部
の動作を説明するためのベン図、 第7図は、オブジェクトのソリッド表現のデータ構造の
別の部分を示す図である。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】オブジェクトの表面領域に基づいて、ソリ
    ッド表現データを発生するソリッド表現データ発生器で
    あって、 上記表面領域を表すデータを記憶する手段と、 上記データおよびオブジェクト空間中の共通基準点に基
    づく複数のプリミティブを画定する手段と、 上記複数のプリミティブの共通部分から表面領域毎に構
    成ソリッドを形成する手段と、 上記構成ソリッドの対称差によって、オブジェクトのソ
    リッド表現を形成する手段と、 を有するオブジェクトのソリッド表現データ発生器。
  2. 【請求項2】オブジェクトの表面領域に基づいて、ソリ
    ッド表現データを発生するソリッド表現データ発生方法
    であって、 上記表面領域を表すデータを記憶する段階と、 上記データおよびオブジェクト空間中の共通基準点に基
    づく複数のプリミティブを画定する段階と、 上記複数のプリミティブの共通部分から表面領域毎に構
    成ソリッドを形成する段階と、 上記構成ソリッドの対称差によって、オブジェクトのソ
    リッド表現を形成する段階と、 を有するオブジェクトのソリッド表現データ発生方法。
JP1078725A 1988-04-29 1989-03-31 オブジェクトのソリッド表現データ発生器および発生方法 Expired - Lifetime JPH0792842B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8810301A GB2217958A (en) 1988-04-29 1988-04-29 Solid modelling
GB8810301.5 1988-04-29

Publications (2)

Publication Number Publication Date
JPH01290080A JPH01290080A (ja) 1989-11-21
JPH0792842B2 true JPH0792842B2 (ja) 1995-10-09

Family

ID=10636181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1078725A Expired - Lifetime JPH0792842B2 (ja) 1988-04-29 1989-03-31 オブジェクトのソリッド表現データ発生器および発生方法

Country Status (6)

Country Link
EP (1) EP0339778B1 (ja)
JP (1) JPH0792842B2 (ja)
BR (1) BR8902035A (ja)
DE (1) DE68909094T2 (ja)
ES (1) ES2044090T3 (ja)
GB (1) GB2217958A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2253772B (en) * 1991-03-12 1995-01-25 Honda Motor Co Ltd Method of creating solid model
US6735912B2 (en) * 2001-10-30 2004-05-18 Steve Riggio Method and apparatus of weather sealing adjacently jointed building panels

Also Published As

Publication number Publication date
JPH01290080A (ja) 1989-11-21
EP0339778A1 (en) 1989-11-02
DE68909094T2 (de) 1994-04-21
GB2217958A (en) 1989-11-01
GB8810301D0 (en) 1988-06-02
EP0339778B1 (en) 1993-09-15
DE68909094D1 (de) 1993-10-21
ES2044090T3 (es) 1994-01-01
BR8902035A (pt) 1989-12-05

Similar Documents

Publication Publication Date Title
JP2625621B2 (ja) オブジェクトを作成する方法
EP1021798B1 (en) Longest-edge refinement and derefinement system and method for automatic mesh generation
EP0248919B1 (en) Method for generating representations of 3-dimensional objects and system performing this method
US6154215A (en) Method and apparatus for maintaining multiple representations of a same scene in computer generated graphics
US5943056A (en) Interference checking method
US6307555B1 (en) Boolean operations for subdivision surfaces
Woodwark et al. Reducing the effect of complexity on volume model evaluation
EP1899854A2 (en) Triangulating procedural geometric objects
JP2002501640A (ja) プログレッシブメッシュの適応細分方法および装置
JPH0683978A (ja) 等値サーフェイスを効率的に生成し等値サーフェイス画像データ及び表面等値線画像データをディスプレイするための方法及び装置
US5640589A (en) Method and device for generating graphic data using a writing motion model
JPH06511576A (ja) 境界内更新を備えたグラフィックス出力システム
USRE40693E1 (en) Method and apparatus for creating a wireframe and polygon virtual world
US7388584B2 (en) Method and program for determining insides and outsides of boundaries
Veltkamp 3D computational morphology
JPH0792842B2 (ja) オブジェクトのソリッド表現データ発生器および発生方法
Shah et al. Comparative study of procedural and declarative feature based geometric modeling
US6078330A (en) Solid model construction method and apparatus
Li et al. Efficient ray casting polygonized isosurface of binary volumes
US7031790B2 (en) Operator for sculpting solids with sheet bodies
CN115087983A (zh) 使用几何面片进行混合建模的方法和系统
Zhou et al. Selectively meshed surface representation
Hong et al. Rotation and translation of objects represented by octrees
Alciatore et al. Importing and reshaping digitized data for use in rapid prototyping: a system for sculpting polygonal mesh surfaces
CA1303223C (en) Solid modelling