JP2771813B2 - 三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法 - Google Patents

三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法

Info

Publication number
JP2771813B2
JP2771813B2 JP63026402A JP2640288A JP2771813B2 JP 2771813 B2 JP2771813 B2 JP 2771813B2 JP 63026402 A JP63026402 A JP 63026402A JP 2640288 A JP2640288 A JP 2640288A JP 2771813 B2 JP2771813 B2 JP 2771813B2
Authority
JP
Japan
Prior art keywords
value
point
line segment
polygon
trimming
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
JP63026402A
Other languages
English (en)
Other versions
JPH01201777A (ja
Inventor
ジェームズ・ジー・フィアスコナロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
HP Inc
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 HP Inc filed Critical HP Inc
Publication of JPH01201777A publication Critical patent/JPH01201777A/ja
Application granted granted Critical
Publication of JP2771813B2 publication Critical patent/JP2771813B2/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
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G1/00Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
    • G09G1/06Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、高性能三次元図形処理システムに関する。
〔発明の技術的背景及びその問題点〕
典型的な高性能三次元図形処理システムはパッチごと
に関数により規定される表面パッチとなるべき表面を記
述する。このような関数としては、たとえば、不均一有
理Bスプライン(nonuniformrational B−spline)があ
る。Bスプラインを使用すると表面パッチの縁がある程
度制限される。Bスプライン関数と関連して通常長方形
のuvパラメータ空間がある。uおよびvのパラメトリッ
クパッチ発生関数がXYZ空間の座標の値を計算する。長
方形のuv空間により、Bスプライン・パッチ発生関数
が、ある形状の縁を有する表面パッチを表わすことがで
きる正確さが制限される。たとえば、その内部に取り除
かれた円形部分を持つ長方形領域であるパッチについて
良好なBスプライン記述を作ることは困難である。長方
形領域あるいは円形部分はいずれもそれ自身は実用的で
あるが、それらの組合せはパッチ・レベルでの単一統合
(single unified)Bスプライン記述としてはあまりに
も複雑で幼稚である。パッチを細分すれば、まず第一に
パッチを持たせるという目的が阻害される。トリミング
は円形部分に対して別の一つを持つ長方形領域のBスプ
ライン記述を増大し、一方のBスプライン記述が他方に
よって規定された表面を「刈り整える」ハイブリッド表
面パッチを作る方法である。
従来の技術では、トリミングは装置座標を表示ハード
ウェアに送る前に図形処理システムのソフトウェアによ
り行われていた。このようなトリミングは必然的に非常
に複雑な仕事であり、一般に活動映像または対話式シス
テムに使用するには速さが遅すぎる。
〔発明の目的〕
本発明はBスプラインの効用を保持するとともに表面
記述のその技術により得られる利点を活用し、しかも同
時に高速トリミングができる方法を提供することを目的
とする。
〔発明の概要〕
本発明の好ましい方法によれば、トリミングはハード
ウェア図形処理加速器でBスプライン表面パッチ記述に
関して行われる。この加速器はトリムしていないパッチ
のパッチ発生関数のBスプライン記述と、パッチ発生関
数のuvパラメータ空間におけるトリミング曲線のBスプ
ライン記述とを受取る。トリミング曲線のBスプライン
記述はそれ自身パラメータtの関数である。図形処理加
速器は、XYZ空間のその関連多角形がパッチを近似するu
v空間内の個々の要素スパンの一点一点の表示に加え
て、uv空間内の各トリミング曲線の充分密集した点ごと
の表示を計算する。図形処理加速器は、トリミング曲線
の直線近似線分がどこで要素スパン境界と交差し、関連
多角形の部分を刈込み整理する要素スパンの頂点を変え
るかを求める。加速器はトリムされていない多角形とこ
れを切断するトリミング曲線とを表わす頂点表の連結リ
ストのデータ構造を構築することによりそれを行う。デ
ータ構造のリストの上を適切に動き廻ることにより装置
座標で表わしたトリムずみ多角形の頂点のリストが作ら
れる。このリストは更に図形処理加速器の他のハードウ
ェアによりピクセル・レベルにまで処理することができ
る。
丸め誤差の害を避けるためかなりな注意を払う。スパ
ン内のどこにトリミング曲線があるかを記述する機構に
よりトリミング動作が処理中の多角形におそらく影響す
ることがあり得ないトリミング曲線を考えることから解
放される。他の機構はトリミング曲線機能の非理想的パ
ラメータ化の影響を補償し、不必要に数多くの多角形頂
点を発生しないようにする。トリミング方法は数多くの
トリミング曲線を用いてパッチを取扱うパッチの帰納的
細分化とも適合する。
〔発明の実施例〕
三次元表面が図形処理システムの内部で表わすことが
できるという一つの方法を考えることから始めよう。た
とえば、第1図に描いたもののようなくら形表面1を表
わそうとすることを考える。これは全表面1をより小さ
な部分(一般にパッチと呼ぶ)に分割することにより行
われる。この分割したものの中のパッチ2を図示してあ
る。表面を適宜にくら形1ほどに複雑にするには、非常
に多くのパッチが必要になるであろう。簡単のための一
つのパッチ2だけを示すことから始める。図形処理シス
テムは表面を適切なパッチに分割する或る手段を備えて
いることがわかるであろう。また、第1図の他の各種曲
線は他のパッチを示すためではなく、表面1の形状を認
める際の補助として示されている。更に、表面1は双曲
放物面に似ているが、説明する方法は不規則(「自由形
態」)表面、特にパラメトリックBスプライン記述から
得られるもの、に特に適用できる。
パッチに関連してパラメータ空間3の部分5がある。
この部分をスパンと言う。XYZ空間の三次元表面を記述
するには二次元パラメータ空間を採用する。現在の例で
は、二つのパラメータはuとvとであり、それぞれは関
連する最大値と最小値との間で変化することができる。
図に示すように、一組のパラメトリックパッチ発生式4
がパラメータ空間3内の値をXYZ空間に写像してパッチ
2の上に乗る(X、Y、Z)三数を発生する。
最新の高性能図形処理システムは、欲しくなる可能性
のある特定の図とは無関係に、対象の完全な記述を格納
する。この記述はデータスベースの形を取ることが非常
に多く、特に対象の部分が別々に記述されて、次に参考
のため、おそらくは何回も展開されるときにそうであ
る。表面の点を徹底的に集めてデータベースに格納する
のではなく、数値を所望の程度の分解能で発生する近似
関数のように、一層簡潔にまとまった形式の記述を使用
するのが普通である。特定の図が欲しいときは、データ
ベース内の近似関数を評価して最初に見つかった点に対
して平行移動または回転を計算すれば見つかる。Bスプ
ラインはこのような簡潔な表現をパラメトリック関数に
より得る技法である。
Bスプラインの導入説明でさえ、ここで説明できる範
囲を超えており、読者はこの主題に関する各種参考論文
を参照するのがよい(たとえば、J.D.FoleyおよびA.Van
Dam著の対話式コンピュータ・グラフィックスの基礎
(Fundamentals of Interactive Computer Graphic
s)、1984年、Addison−Wesley発行。また1983年9月の
IEEE Computer Graphics and Application、vol.3 No6
の曲線および表面を表現する有理Bスプラインと題する
論文)。幸いにも、ここではBスプラインとは何であ
り、これがどういう働きをするかについて深く理解する
必要はない。所望の固体対象および表面のBスプライン
記述を発生する各種ソフトウェア・パッケージが存在し
ている。ここで行おうとする要点は、本発明の方法が固
体対象および表面のBスプライン記述と組合せて使用す
るのに役立つが、Bスプラインを使用する必要が少しも
無いということである。しかしながら、好ましい方法が
Bスプラインを利用する図形処理システム内で使用され
てきたので、方法をその設定で記述するのが最も便利で
ある。その図形処理システムがヒューレット・パッカー
ド9000・320SRX型であり、これは特にHP98720A型図形処
理加速器を備えている。
特に、第1図は当該表面1の各点6をパラメータ空間
3の或る部分5の対応する点7で表わし得ることを示し
ている。図形処理システムのユーザはそのシステムの取
扱説明書に記された規定の方法でそのシステムと対話す
る。適切な命令を使用することにより所望の表面を作り
あげることができる。一般に、表面は複数のパッチで構
成される。XYZ空間の表面上の各パッチについて、図形
処理システムの内部動作によりuおよびvの三つ(また
は多分四つ)のパッチ発生関数が発生する。変数uおよ
びvはパラメータ空間3に属する。点6のx座標は(多
項式)関数Fx(u,v)を評価することにより見つかる。
対応する関数FyとFzとが点6のy座標とz座標とを作
る。3座標に関する更に一般的な場合(有理Bスプライ
ン)には次の四つの関数を利用する。
x=Fx(u,v)/H(u,v) y=Fy(u,v)/H(u,v) z=Fz(u,v)/H(u,v) この場合に各関数Fx、Fy、およびFzは関数Hで割るこ
とにより有理化されている。説明する方法は有理または
非有理の不均一Bスプライン表現のいずれにも適合する
ことができる。
概念的には、表面に関するすべてのピクセル値を、変
数uおよびvの充分に密度の濃いカルテシアン積につい
てBスプライン・パッチ発生関数を評価することによ
り、すなわち、パラメータ空間3の中の充分に密度の濃
い点の集まりを評価することにより計算することができ
る。ただし、実際上は、このような方法は法外な量の実
行時間を必要とするので、一層迅速に、かつ一層容易に
行われる計算だけを必要とする人々のために一般に回避
される。第6図〜第8図に関連して説明しようとする多
角形法はこのような好ましい方法である。この方法によ
れば、所定のパッチについてパラメータ空間で評価され
た点の集合が、濃淡により補間するとき、受容可能なな
めらかな表面を生ずる多角形の多角形頂点を生ずるのに
丁度充分なだけの濃さになるように選択される。各多角
形にはその値がハードウェアで行う直線補間で比較的容
易に見出される多数のピクセルが入っているので、映像
作製時間がかなり短縮される。
関数4の一つの集合が考慮中の完全な面を全部記述す
るということはありそうもない。その代わり、所望の表
面を小さな領域上で良く近似するBスプライン、パッチ
発生関数の集まりが見つかる。この断片式近似はパラメ
ータ空間をスパンと言う領域に分割する。断片式近似は
実際に表面を対応するパッチに分割するものである。パ
ッチにするには、その対応するBスプライン関数を対応
するスパンの範囲にわたり評価する。表示された対象の
所定の分解能(すなわち、多角形の大きさ)にしたが
い、uおよびvを増進させる適切なステップの大きさを
選択する。パラメータuはUminからUmaxまで等しいステ
ップにすることができる。一方、パラメータvはVminか
らVmaxまで等しいステップ(必らずしもuのステップと
同じではない)にすることができる。スパンのこの評価
により、評価されるまでに一般に更にかなりな量の処理
を受ける「生の」多角形頂点が作られる。
このように、表示すべき表面はパッチの集まりとして
記述され、その各々が、対応するスパンを備えているこ
とがわかる。各スパンに関連するのはBスプライン・パ
ッチ発生関数の特定の集まりである。
先に、適切な命令によりユーザは所望の表面を作り上
げることができると述べたことを思い起すこと。たとえ
ば、穴のあいている平板が所望の対象であると考えよ
う。典型的な固体モデル化パッケージを用いてユーザは
メニューから、長方形固体のような、適当な原子形状を
選択し、その寸法を指定する。次にユーザは穴の中心の
位置を指定し、板から所定直径の円筒を「差引く」。長
方形板のBスプライン記述を作ることは実際的事柄であ
る。穴を「キリもみする」ことにより除去する円筒のB
スプライン記述を求めることも実際上の事柄である。た
だし、既に穴があいている板が其自身の特定のBスプラ
イン記述を持っている原始形状であると考えることは実
際的でない。
本発明の方法は実用上のBスプライン記述を持ってい
ない複雑平面の問題に対する解答を与える。板の穴の縁
が丁度XYZ空間にあるときは、uv空間内に、評価したと
き、穴を作るように除去すべき材料の縁を正確に記述す
るか厳密に近似する対応点が存在する。これらの点はuv
空間内のトリミング曲線と呼ぶ曲線に沿って存在してい
る。トリミング曲線は一つ以上の関数で表わすことがで
きる。これらの関数は固体モデル化パッケージにより見
つけることができる。その後で、パッチ発生関数を対応
スパンについて適格に評価することにより、「差引かれ
た」部分を備えたパッチを描くことができる。この適性
化は、パッチ発生関数の評価中に、手近にある(u,v)
対がトリミング曲線の内側にあるか外側にあるかを確認
するという形を取る。適性化により、関連する(X、
Y、Z)三数を表示するか否かに関する判断が生ずる。
三数を表示することになれば、事は先述のとうりに進行
する。しかし、その(u,v)対の評価により発生する多
角形頂点が、差引くべき領域内に存在することになれ
ば、三数を表示することができず、現存する多角形構造
を修正しなければならない。
第2図はパッチ2から差引くべき領域9のXYZ空間に
おける境界を記述するトリミング曲線8の使用法を示
す。トリミング曲線8は、パラメータ空間3のスパン5
で規定される。好ましい方法ではトリミング曲線8はそ
れ自身Bスプラインで規定することができる。パラメー
タtの一対のパラメトリック式9はuv空間の2次元トリ
ミング曲線を規定することができる。パッチ発生関数を
作ってからは、トリミング曲線関数9は有理または非有
理の不均一Bスプラインのいずれであってもよい。
表面が丁度パッチとそれらに関連する別のパッチ発生
関数の集合である場合には、トリミング曲線は一般に線
分と呼ばれる要素部分から断片的に組立てられなければ
ならない。各線分にはそれ自身の特定のトリミング曲線
関数9がある。
この状態を第2図のトリミング曲線8について第3図
に描いてある。そのトリミング曲線は多数の線分S1から
S6に分かれている。各線分にはt空間10の対応するスパ
ンにわたり規定されているそれ自身の関数があることに
注意すること。
第4図はトリミング曲線の応用の一般化を示す。示し
たのは第2図および第3図に描いた状況と同じである
が、トリミング曲線11が今回はuv空間のいくつかのスパ
ン12〜15を横切っていることが異なる。この状況は、運
悪く、表面1から差引くべき部分9が対応する四つのパ
ッチ16〜19を占めているために生ずる。トリミング曲線
11の線分境界は第4図のその曲線上に示してある。一般
に、線分S1からS9までの間の境界はトリミング曲線11に
沿うどこかに落ちることに注意する。特に、スパン12〜
15の間の境界に特別な関係を持たせる必要はない。
第5図は第4図の線分化したトリミング曲線11の断片
式表現を示す。線分ごとに別のパラメトリック式を使用
すること、およびこれらの式の各集合はt空間20の中の
それ自身の関連スパンにわたり規定されていることに注
意。
第1図およびパッチ発生関数の説明中に、多角形の概
念を手短かに導入した。今度は第6図から始めて、この
話題に戻り、多角形を用いて表面を表わす技法にトリミ
ングがおよぼす効果について一層詳しく検討する。
第6図は、太い矢印にしたがって、4個のパッチ16〜
19に写像される4個のスパン12〜15を示す。各スパンを
トリミング曲線11が横断するが、その目的は結果的に得
られる表面の刈り込まれた(あるいは「差引かれた」)
領域9を画定することである。現在のところ第6図での
我々の関心は(刈り込まれていない)多角形の発生にあ
る。トリミング曲線11がそれら多角形に及ぼす影響をこ
の図および第6図に伴う本文から始めて考案することに
する。
パッチを発生するプロセスは一度に1パッチ行われ
る。したがってスパンは一度に一つ評価され、各スパン
は一つの対応するパッチを発生する。スパンの評価には
uおよびvに対するステップの大きさを求めることが含
まれる。これらステップの大きさはuおよびvに対して
必ずしも同じではなく、各々は次のスパンの評価が始ま
ると再び求められる。すなわち、スパン13に対するステ
ップの大きさΔuiとΔviとは互いに等しい必要はない
し、スパン12に対するステップの大きさΔujおよびΔvj
との間に何らかの関係がある必要もない。特に、簡単の
ため、図では等しいように描いてあったとしても、Δui
がΔumあるいはΔunと等しくなければならないという条
件はない。おなじことは各Δvにも適用される。
図形処理システムのユーザはステップの大きさを少な
くとも間接的に制御することになる。或るシステムでは
ユーザがそれらを直接に指定することが可能な場合もあ
るが、指定が間接的に行われる方が可能性が多い。たと
えば、ユーザは図形処理システムに、結果的に得られる
多角形の縁がほぼ特定数のピクセルを備えているように
ステップの大きさを選ぶように指示することができる。
一般に、ステップの大きさはスパンごとに新しく再決定
することができることに留意すること。
スパンに対してステップの大きさを選択するとそのス
パン内部の(u、v)対の集まりが決まる。これをスパ
ン12〜15の中の点線で表わしてある。点線同志の交点、
および点線と、スパンの境界を表わす実線との交点はパ
ッチ発生関数が評価される点である。たとえば、点21〜
23でパッチ発生関数を評価すると多角形頂点24〜26が生
ずる。
第6図から離れる前に注意する事項が更に二つある。
第1に、パッチ16〜19の多角形の隣り合う縁は直線線分
である。図でこのことを示す試みが行われてきた。対照
的に、パッチの境界と、トリムされた領域9の縁とはは
るかに滑らかに現れている。これらも直線線分にするこ
とができるが、かなり短い直線線分となる。すなわち、
パッチ内のこれらの線を作るのに評価されたuv空間には
もっと多数の点が存在する。実質的に、余分な点をスパ
ン評価プロセスに滑り込ませる機構が存在する。この微
分密度という概念についてはこの後の話題の中で更に説
明することにする。第2に、パッチ発生関数をuv空間内
の点で評価する上述のプロセスは、最終的に刈り取られ
てしまうことになるものをも含めて、スパンのあらゆる
部分で点を評価する。トリミングはかなり複雑なプロセ
スであり、可能な状況の幾つかを分析しなければならな
い。たとえば、所定の頂点は、トリミングによって全体
的に影響されない多角形に、そっくりそのまま刈り取ら
れることになる多角形に、あるいは、トリミング曲線と
交差する多角形に属する。この後者の場合に、多角形の
一部は残り、一部は残らない。このため多角形の形状を
変えてトリミング曲線に合わせる必要がある。このため
今度はその多角形の新しい頂点、すなわち第6図に示す
uおよびvのステップでスパンを評価して発生されなか
ったものを見つけることが必要となる。
今度は第7図を参照する。示したのは第6図の一部を
拡大したものである。特に、写像したトリミング曲線27
の一部とともにパッチ16および17の部分を描いてある。
「写像した」トリミング曲線とはパッチ発生関数により
パッチに写像されたトリミング曲線11を意味する。
パッチ境界に沿う2種類の多角形頂点を第7図に示し
てある。中空の円は、a)第6図の点線とスパン境界と
の交点の、およびb)点線同志の交点の、パッチへの写
像に対応する。黒塗り円はスパン境界に沿う別の(u、
v)対を評価することにより加えられる「余分の」頂点
に対応する。この余分な点はΔuの各ステップを等しい
要素部分に分割する。Δvのステップは同様に分割され
る。ユーザがこれらの余分の頂点を加えるプロセスを或
る程度管理するのが普通である。
第7図は写像されたトリミング曲線27に沿う多角形頂
点をも示している。図を検討することにより、トリミン
グ・プロセスの一部として多数の良好な余分の頂点が多
角形に加えられていることが明らかである。これに関し
て言うべきことが多くあり、今度は第8図に戻ると、写
像されたトリミング曲線27のパッチ17に関する部分を更
に拡大したものが示されている。
第8図に関しては重要な二つの基本的課題がある。第
1は黒く塗りつぶした正方形がどこから来るかというこ
とである。これらは写像されたトリミング曲線27が交差
する多角形の多角形頂点として取られる、写像されたト
リミング曲線27に沿う点である。トリミング曲線11は線
分から構成されているということが想定されよう(第5
図を参照)。第8図のこの例の基礎として役立つ第5図
の特定のトリミング曲線11について、線分S6からS8はパ
ッチ17をトリムするものである。
線分S6からS8までは(その、あるいは任意の他の、ト
リミング曲線の他のすべての線分と同様)、線分ごと
に、uv空間で、中空の円に対応するスパン境界に沿う点
とその最も近い、第7図のパッチ境界上で隣接する黒く
塗りつぶした円との間の距離に各々がほぼ等しいuとv
とのステップを理想的に発生するΔtを見つけることに
よって評価される。Δtを選定するこの仕事はパッチ境
界に対する余分な頂点に関連して行われるユーザの選択
に影響される。実際には(理想的な場合とは対象に)、
トリミング曲線11が評価すれば、上述のように、役に立
つにはあまりに互いに密接しすぎて配置された多数の
(u,v)対が発生する。更に洗練するにはパラメトリッ
ク関数(手近の例ではこれらはFu6とFv6、Fu7とFv7、F
u8とFv8)を評価することにより発生する対を検討し、
それらの先行者から充分離れていない対を削除する。第
8図の黒く塗りつぶした正方形は(第7図のものも)こ
れら洗練された(u,v)対でパッチ発生関数を評価する
ことにより得られたものである。
第8図で重要な第2の事柄は中空の正方形である。こ
れらは写像されたトリミング曲線27と多角形の縁との交
点を表わしている。XYZ空間で交点を探すよりは、交点
の対応する点をuv空間で探し、XYZ空間に写像する。特
に、探すのはuv空間の二つの直線線分の交点である。直
線線分の一つはトリミング曲線11に沿う二つの連続する
洗練された(u,v)対の間にある。他の直線線分は第6
図の点線またはスパン境界の一部(たとえば、第6図の
28または29)である。
第8図を離れる前に、多角形の部分を示す点線、およ
びトリミング・プロセスで見えなくなる多角形全体など
は表示してないことを注意しておく。
今度は第9図に目を転ずる。この図は高性能図形処理
システムのハードウェア装置の変換エンジン部が実行す
る活動の簡略疑似コードで説明したものである。このハ
ードウェア装置はこの明細書およびその図の後の部分に
現われる説明の主題を成すものである。上述の動作は第
8図に示したように主として多角形のトリミングであ
る。第9図は第8図と関連して記述した形式のトリミン
グを実行する圧縮した街路地図として理解することがで
きる。
好ましい方法では図形処理システムは、その各々をい
ろいろにトリムすることができる、いくつかのBスプラ
イン表面を表示することができる。各表面は一般に複数
のパッチから構成されることになる。トリミング動作は
各パッチ内の多角形処理のレベルで発生する。したがっ
て、第9図の(ステップ15と16とに関連する)ステップ
1と2とはステップ3〜14に関連して説明するプロセス
をすべての表面の各パッチに適用する。ステップ2は図
形処理システムと関連するコンピュータにより実行され
るソフトウェアで実施される。とりわけ、ステップ2
は、表面をパッチに分割し、表現すべきパッチを選択
し、関連スパンに対してUmin、Umax、Vmin、およびVmax
を計算し、どのトリミング曲線のどの線分がパッチをト
リムするのに必要かを決定する。ステップ3〜14は図形
処理システムのハードウェア内の多角形表現機構により
表示することができる、トリムされた多角形頂点を発生
する。
今度はステップ3から14までのFORループの範囲内の
動作を考察する。この動作は主として各種多角形の発生
(ステップ3および14により示した)とそれに続き(か
つ即座に)おこなわれるトリミング(ステップ4から13
まで示した)とを含んでいる。
パッチ内の多角形発生の一般的順序を第10図の例題ス
パン30により示す。そのスパンは、この例では、発生す
べき、トリムされていない各多角形について一つづつ、
16個の要素スパンに区切られている。各要素スパンの大
きさは表面の所定の視覚的なめらかさに関するユーザの
指示によって決まる。好ましい方法では多角形は前進差
分法(forward differencing)と呼ばれる技法によって
作られるが、この方法では各要素スパンの境界のu値お
よびv値を明白に計算する必要がない。前進差分法は要
素スパンの各隅角でパッチ発生関数を評価するより速い
ので望ましい方法である。前進差分法の説明については
FoleyとVan Damの535〜536ページを参照のこと。
トリミング動作の追求は、発生しつつある多角形の要
素スパンに対応するクリップ限界を利用しなければなら
ない。例のとうり、「クリップ限界」という言葉は当該
の窓を言う。窓の中の対象は保持されるが、窓の外の対
象は捨てられる。こゝで記述されるトリミングにとって
重要となるクリップ限界は発生する多角形に関連するuv
空間の要素スパン境界である。
残念ながら、上に注記したとうり前進差分法によりXY
Z空間で多角形頂点を計算する動作からは要素スパンの
境界であるu値およびv値を明白には得られない。上に
注記したクリップ限界を使用しようとする場合には、こ
れを別に探さなければならない。ステップ4は現在作ら
れトリムされている多角形のクリップ限界(uv空間で)
を計算する。第9A図にはクリップ限界ulift、uright、v
top、およびvbottomを備えた要素スパン35が描かれてい
る。たとえば、要素スパン35は第10図の要素スパン#6
に対応することができ、uleftは値31となり、uright
値32となり、vtopは値34となり、vbottomは値33にな
る。
第10図を参照して、各種要素スパンのクリップ限界を
みつけるにはu軸およびv軸を区切るuの値31、32…と
vの値33、34、…とを求めなければならないことに注意
する。好ましい実施例では、これらの値は32ビットの浮
動小数点2進数である。所定の要素スパンの四つの隅角
を独立に見つける手順を想像することができる。このよ
うな手順は、どの要素スパンに現在関心があるかにはか
かわりなく、同じ(u、v)対(すなわち、そのビット
・パターンが同一である)が割当てられた隅角に対して
常に得られる(すなわち、u値31とv値33とが第10図の
要素スパン1、2、5および6に対する共通隅角を記述
する)ことを絶対的に保証することができなければ回避
される。独立に選定した要素スパンに対してこのような
保証を行うよりは、好ましい方法は、次に説明するが、
当該の或る主値を記憶することにより、共通隅角が同じ
u値および同じv値を確実に備えるようにしながら、多
角形を別々の時刻に発生することができる。
第10図に示すように、多角形発生の順序は行の中の左
から右へから、次に行方向に下から上へである。ステッ
プの大きさの値(ΔuとΔv)は前述のように見つか
る。行を(たとえば、要素スパン2から要素スパン3
へ)横断しながら、要素スパン2のurightが記憶され要
素スパン3のuleftとして再使用される。行の始めにス
パンのuminが(正確に)uleftとして取られる。行に沿
って新しいurightがΔuをurightの古い値に加えること
により見つかる。行の終りにスパンのumaxを(正確に)
urightとして取る。Bスプライン発生ソフトウェアが表
面をパッチに分割すると値uminとumaxとが生ずる(第1
図を参照)。
最初の行を始めるとvminが(正確に)vbottomとして
取られる。vtopの値はΔvをvbottomに加えることによ
り見つかる。その後、新しい行の始めにvtopの古い値が
格納され、新しいvbottomとして再使用される。新しいv
topはΔvをvtopの古い値に加えれば見つかる。要素ス
パンの最上行を行うとvmaxが(正確に)vtopとして取ら
れる。
第9A図の(ステップ10と関連する)ステップ5は第11
図を参照すれば更に良く理解することができる。この図
は多数の関連トリミング曲線37〜40が交差しているスパ
ン36を示している。トリミング曲線は一般に分割された
Bスプラインとして定義されることを想起すること。特
定のパッチをトリミングする際にどんな処置を取るべき
かを考察するときは、関連スパンの内側にあるトリミン
グ曲線線分を考えなければならない。第9図のステップ
2と関連して言われていることにしたがい、図形処理シ
ステムのソフトウェアの機構がトリミング曲線の線分の
一つ以上リストを各スパンと関連づける。たとえば、第
11図のスパン36のパッチを表現しようとする場合には、
トリミング曲線線分の四つのリスト(すなわち、該線分
のBスプライン記述)、特定のパッチ発生関数、スパン
の定義、の他に或る他のスタッフを第9図のステップ3
〜14を実行する機構に送ることになる。現在の例におけ
るトリミング曲線の四つのリストの中で、トリミング曲
線37と38とに関連する二つは「閉じた」トリミング曲線
を記述するものとしてマークが付けられ、トリミング曲
線39と40とに対する二つのリストは「開いた」ものとし
てマークが付けられる。これにより意味することはトリ
ミング曲線37と38とのリストはそれ自身で閉じる完成曲
線を記述するということである。ただし、トリミング曲
線39と40との部分はスパン36を表現することによって生
じたパッチのトリミングに影響を及ぼさないので捨てる
ことができる。(ただし、捨てられる部分は或る他のパ
ッチを表現するとき必要になることがあり、その別のパ
ッチのスパンを伴うリストに現われる。)開いたトリミ
ング曲線はその関連スパンの外側で始まり、終わらなけ
ればならない。好ましい方法では開いたトリミング曲線
のリストに入れるべきトリミング曲線線分の数は増加し
て、丸め誤差により入って来る可能性のある不確かさあ
るいは誤差の他に、「明確に」スパンの内側にあるかま
たは「明確に」スパンの外側にある始まり線分または終
わり線分が入ることになる。これは、たとえば、スパン
が、点線41で示したように、実際よりたとえば5パーセ
ント大きいと考えれば達成される。
今度は第9図のステップ6に進むと、これは(ステッ
プ9と関連して)トリミング曲線に沿う直線線分の概念
に関する。トリミングの仕事は各トリミング曲線に沿う
多数の点を見出すことを含むように進んでいる。たとえ
ば第8図を想起すること。写像されたトリミング曲線27
に沿う中空の正方形および塗りつぶした正方形はすべて
トリミング・プロセスの一部として(局部的には、その
まま)見つからなければならない。特に、第9図のステ
ップ6の「直線線分」は第8図の塗りつぶした正方形の
間の直線に対応する。ステップ6に暗に含まれているの
は、パッチ発生関数4で評価するとき、塗りつぶした正
方形を発生する(u,v)対を見つけることである。これ
は丁度今考察中の(u,v)対を見つけることである。
第8図の写像されたトリミング曲線27は第5図にしめ
すトリミング曲線の線分S6からS8までに対応するという
ことを想起することができる。また同じトリミング曲線
が第6図のuv空間で示されていることを想起すること。
現在探している(u、v)対は第6図に示したのと同じ
uv空間に属している。多角形の発生のしかたの説明に関
連して第6図を最後に使用した。ここでは同様な動作が
(u,v)対の別の集まりを発生させて各トリミング曲線
の各Bスプライン線分の直線線分近似を作り上げようと
している。
求めたいのは、その間隔が多角形発生のスパン境界に
加えられた余分の頂点とはほぼ同じトリミング曲線に沿
う(u、v)対である。すなわち、トリミング曲線に沿
うuのステップは余分な頂点の間のuの距離より、もは
や大きくないようにすべきである。余分な頂点が存在し
なければ、最大距離を隅の頂点の間の距離とすべきであ
る。同じ要求条件はトリミング曲線に沿うvのステップ
に適用される。この(u、v)対の集まりは、他の、た
とえば、多角形発生に使用されたものとは異なる点の別
の集まりである。トリミング曲線に沿うステップは第8
図の塗りつぶした正方形に対応する。これらは第8図の
中空の正方形に対応する別の(u,v)対を求めるのに使
用される。今度はトリミング曲線に沿う最初のステップ
の見つけ方を説明する。
トリミング曲線はその独立変数としてtを有するパラ
メータ方程式により記述されることを想起すること。u
およびvのステップの大きさをどの位にしたいかを知る
ことが直ちにトリミング曲線関数を実際に評価するtの
ステップの大きさを意味するものではない。更に、前進
差分法の技法を、パッチ評価関数について説明したと丁
度同じように、トリミング曲線関数を評価するのに使用
できるならば望ましいことである。これにはtのステッ
プの大きさが一様でなければならない。必要なのはトリ
ミング曲線線分の評価を通じて不変のままであり、かつ
第8図の塗りつぶした正方形として使用するに充分な密
度の(u、v)対の集まりを発生する、tのステップの
大きさである。
基本的な考え方は各トリミング曲線の各線分を或る所
定の(および処理しやすい程に小さい)数の点で評価す
ることである。得られるuの増進量の最大および得られ
るvの増進量の最大がそれぞれ貯えられる。これら増進
量はパッチ境界に沿う余分の頂点の間のuおよびvのそ
れぞれの距離と比較される。比較が有利であればtの所
望のステップが見つかっている。比較が不利であれば、
tのステップの大きさは得られた最大のステップの大き
さと所望のステップの大きさとの比にしたがって調節さ
れる。この確認プロセスはuおよびvに対して別々に行
われ、tのステップの大きさに対して二つの座標を生ず
る。二つのステップの大きさのうち小さい方が選択され
る。
第9図のステップは第12図を参照し、コーエン(Cohe
n)およびサザーランド(Sutherland)のクリッピング
・アルゴリズムを理解すれば理解することができる。
(このアルゴリズムの説明については、FoleyおよびVan
Damの146〜149ペーを参照。)第12A図に考察中のクリ
ップ窓43を横切る(P1からP2への方向の)直線線分42を
描いてある。tの一様なステップの大きさを見つけ前進
差分法を使用してトリミング曲線関数を(tの増加する
方向に)評価する目的はトリミング曲線に沿う充分な数
の点を見つけることである。これらの点は塗りつぶされ
た正方形であり、それらの間の指示された直線線分はB
スプライン関数で記述された理想トリミング曲線の厳密
な近似である。クリッピングは各直線線分42とクリップ
窓43との交点(もし存在すれば)を見つける。これによ
り直線線分42の正確にどの部分44がクリップ窓内に存在
するかを確認することができる。部分44がNEWP1とNEWP2
との間の線である第12A図の例では、NEWP1とNEWP2とは
クリッピング・プロセスにより計算される。添字は線分
44の方向を示す。明らかになるように、説明するトリミ
ング方法はトリミング曲線に沿う誘導運動の概念を利用
している。簡単に言うと、トリミング曲線(またはその
直線近似)に沿って走行するにつれて右側の要素が刈り
取られる。
上述のコーエンとサザーサンドのクリッピング・アル
ゴリズムは多数の補強資料と関連して使用される。今度
は第12図とFoleyとVan Damの146〜149ページに記されて
いるコーエンとサザーランドのクリッピング・アルゴリ
ズムの方法とを参照して、好ましい方法は次の改善案を
取り入れている。
(1)クリップ限界はuleft、uright、vbottom、utop
順にチェックされる。そのわけはこれが多角形が発生さ
れる順序(すなわち、行内で左から右へ、行方向に下か
ら上へ)だからである。
(2)クリップ窓と直線線分との相対的位置により、NE
WP1またはNEWP2、または双方が計算される。(第12図は
多数の可能な情況の中の二つだけを示している。)クリ
ッピング・アルゴリズムの任意の段階でこのような交差
点の計算が元のP1に対して常に行われて、第12B図に示
すように、同じ交差点が隣のクリップ窓について確実に
計算されるようにする。窓1とP1からP2までの直線線分
とを考えると、窓1の中のNEWP2と記した交点が計算され
る。窓2について同じ直線線分を考えると、窓2の中のNE
WP1と記した交点が計算される。NEWP1について計算され
た数値はNEWP2について計算された数値と同一でなけれ
ばならない。
数式 NEWP2=v1+((uright−u1)/(u2−u1))(v2
v1) NEWP1=v1+((uleft−u1)/(u2−u1))(v2−v1) ただし、 u1とv1とはP1の座標であり、u2とv2とはP2の座標であ
る。
は二つの窓に対する交点のv座標の値を与える。u座標
は窓1に対してurightあり、窓2に対してulertである。
(3)左、右、下、および上の各境界に対してクリップ
すると、(浮動少数点丸め誤差のため)NEWP1またはNEW
P2の一つの座標をクリップ窓のわずか外側に置くことが
できる。これはNEWP1(および/またはNEWP2)のその外
側座標をクリップ後のクリップ境界に動かすことにより
補正される。このチェックは四つのクリップ境界のすべ
てに対して行われる。(丸め誤差は最終点の一つの座標
をクリップ窓の内側に容易に動かすことができる。この
場合は後にトリミング動作に問題を生ずることがなく、
無視することができる。)(4)トリミング曲線がBス
プラインとして表わされる場合には、所定の線分がその
スパンの終りで(すなわち、そのスパン内のtの最大値
に対して)評価されるとき得られる(u、v)対が次の
線分がそのスパンの始めで(すなわち、他のスパン内の
tの最小値に対して)評価されるとき得られる(u、
v)対と正確には等しくないというのが典型的な場合で
ある。これは浮動少数点丸め誤差の、または線分の間に
それらの「接合点」を正確に収束させるBスプライン近
似が失敗した、結果である。この問題は前の線分の最後
の点の代りに後の線分の最初の点を使用することにより
回避される。このようにして、所定のトリミング曲線線
分に対する直線線分近似の最後の直線線分がその線分の
最後の点の次から次の線分の最初の点まで進む。
(5)典型的には、所定の直線線分のP2が次の直線線分
のP1になる。こうなったら、P2の古い値をP1にコピーす
ることができる。次にクリッパはクリップ窓に対するP2
の位置に関する情報を保存し、この情報を再度計算しな
くてもよいようにできる。
(6)クリッパは三つのフラグをセットする(これは後
に使用される)。
ACCEPT:P1からP2までの直線線分が部分的にまたは完全
にクリップ窓の内側にあれば真である。
CNEWP1:新しいP1が計算された(すなわち、P1がクリッ
プ窓の外側にあった)場合に真である。
CNEWP2:新しいP2が計算された(すなわち、P2がクリッ
プ窓の外側にあった)場合に真である。
(7)ACCEPTフラグが真であればクリッパはNEWP1とNEW
P2とを更新する。P1がクリップ窓の縁または内側にあれ
ばNEWP1=P1・P2は同様に取り扱われる。
今度は第9図のステップ8を参照する。各直線線分が
現在のクリップ窓に対してクリップされると、点NEWP1
およびNEWP2に関する情報がACCEPTフラグが真の場合表
のリストに保存させる。一般に、トリミング曲線は現在
のクリップ窓の中に多数の点を備えることができる。
(第8図がここで役立つ。同図は写像されたトリミング
曲線27に沿う多角形頂点を示している。各要素スパンで
クリッピング・プロセスはトリミング曲線について複数
の点を戻している。)トリミング曲線はクリップ窓に入
り、その中で、出るまでに多数の点について続けること
ができる。トリミング曲線は出たり再び入ったりでき
る。トリミング曲線はクリップ窓の中間の或る場所を単
に出発(t=0の場合)することさえできる。トリミン
グ曲線はクリップ窓と窓の丁度一つの隅で交差すること
がある。リストに加えられた表の表現で、所定のトリミ
ング曲線はリストに加えるべき一つ以上の表を作ること
ができる。トリミング曲線にはこれに関連する方向(t
の増加する値)があるので、a)クリップ窓の、トリミ
ング曲線が窓に入る境界に沿う交点、b)クリップ窓の
内側にあるトリミング曲線に沿う点、およびc)クリッ
プ窓の、トリミング曲線が窓から出る境界に沿う点、を
区別するのに役立つ。これらの点をそれぞれ「BEGIN」
点、「MIDDLE」点、および「END」点と呼ぶことにす
る。一般にクリップ窓はいくつかのトリミング曲線によ
り切断することができる。各個々のトリミング曲線に対
する表を特定のクリップ窓について作られたすべての表
の、よりおおきなリストの中の円形に連結した別々の要
素リストに分けるのが望ましい。
表の一般的様式を第9図に示す。表の最初の二つの記
述項45と46とは考察中の点(NEWP1またはNEWP2)のu座
標およびv座標の2進浮動少数点値である。第3の記述
項47は三つの部分を含んでいる。0または非0のトリミ
ング曲線数(8ビットの整数)、uv空間の点が乗ってい
るトリミング曲線を区別する0または非0のBスプライ
ン線分数、および6ケのフラグ・フィールド。(最初の
二つの部分の0は後に好ましい実施例の更に詳しい説明
で述べる特別な場合を示している。)6ケのフラグ・フ
ィールドは次のとうりである。
FF1:この表が「BEGIN」点、「MIDDLE」点、「END」点、
または「OTHER」点のいずれに対すのものかを示す2ビ
ットのフィールド。
「OTHER」点は、下に記すように、隅角と余分な頂点と
を含む。
FF2:クリップ窓のどの縁(すなわち、左、右、下、また
は上の縁)に点が乗っているかを示す2ビットのフィー
ルド。このフィールドは主として隅角および余分な頂点
を記す表として使用される。
FF3:この表を飛び越すべきかどうかを示す1ビットのフ
ィールド。このビットはこの表が第9図のステップ11と
関連して説明すべき特別の場合の一つである場合にセッ
トされる。このフラグをSKIPフラグと呼ぶ。
FF4:第9図のステップ12に使用してこの表が既に取扱わ
れたことがあることを示す1ビットのフィールド。この
フラグをMARKフラグと呼び、最初はFALASE(偽)であ
る。
FF5:第9図のステップ12に使用してこの表が取扱われる
べき最初の表であることを示す1ビットのフィールド。
このフラグをSTARTフラグと呼び、最初はFALSEである。
FF6:第9図のステップ11で決まり、この表に対応するXY
Z空間の頂点が現在表面に残っている(「ON」。刈り取
られてしまっていない)か、あるいは表面に存在しない
(「OFF」。刈り取られてしまっている)かを示す1ビ
ットのフィールド。このフラグをONフラグと呼ぶ。
(現在表面上にのこっていることは頂点が実際に見え
ることを意味するものではない。陰れた表面の除去、裏
面の摘取り、およびクリップングの動作は表面上に存在
する点が最終的に表示されないようにすることができ
る。他方、表面上に存在しない点は決して見ることがで
きない。) 頂点の存在または非存在を、あるいは頂点が表面上に
あるか表面外にあるかを、参照する機会が後に沢山ある
であろう。同じ方法で多角形あるいはパッチ全体を存在
するか存在しないか、ONかOFFかとして参照するのが便
利である。多角形およびパッチにはそれ自身の個々のON
フラグは無い。その存在または不存在はそれらの中に一
定の頂点が存在するか存在しなかによって決まる。これ
ら重要な頂点のONフラグはそれらに遭遇したときに保存
される。
第4の記述項48は包みアドレスと次アドレスとを備え
ている。0でない包みアドレスは表のそうでない場合に
は直線形(すなわち、物理的に順序づけられた)リスト
の中の円形リンクである。0の包みアドレスは次の物理
的表もリスト内の次の論理表であることを示す。表はト
リミング曲線をtの値が増加する方向に横断するとき順
に表のリストの終りに挿入される。トリミング曲線に対
して所定の円形に連結した要素リストを作るには、その
トリミング曲線に対する最初の表のアドレスをそのトリ
ミング曲線に対する最後の表の包みアドレスに挿入する
だけでよい。
次のアドレスは第9図のステップ11と12とで決まる。
このアドレスは表を存在している多角形の部分を表示す
るのに使用される別のリストに結び付ける。
第9図のステップ8の説明の一部として、クリッパに
より供給される情報に応じて表のリストを作り上げるの
に使用される所定基準を述べることが適切である。一般
に、P1からP2までの線のクリップ窓に対する位置によ
り、リストに0、一つ、または二つの表を追加すること
が必要になる。下記判断表はこれを行う方法を示してい
る。これら判断表においてフラグINSIDEはP2がクリップ
窓の内側にあるか外側にあるかを想起するのに使用され
る。
ステップ9とステップ10とはそれぞれ上述のステップ
6および5と協働する。これら入れ子にしたFORループ
の結果は各トリミング曲線を直線線分に分割することで
ある。これら線分は次にステップ7によりその多角形を
表現しようとしている要素スパンに対してクリップされ
る。ステップ8はクリップされた直線線分を記述する表
のリストを作り上げる。
ステップ11(a)〜(d)で、ステップ8で作られた
表のリストが四つの方法で処理される。その第1は第13
A図および第13B図に示す二つの特別の場合に関するステ
ップ11(a)による検査である。
今度は第13A図を参照すると、要素スパン49とクリッ
プ窓の「丁度外側」に存在する点51を備えたトリミング
曲線50とが示されている。第9図のステップ7で説明し
たクリッピング・アルゴリズムにしたがい、トリミング
曲線50がクリップ窓49を「出て行く」場合の交点52が計
算される。例題によれば、トリミング曲線は右から再び
中に戻る。クリッパの他の交点53を忠実に作り出す。点
51がクリップ限界(これは例題では右側の縁であるが、
どの縁でもよい)に充分近ければ、計算に使用する数の
分解能が有限のため互いの最上部にある出口点と入口点
とを生ずることができる。これが第13A図が示すすべて
である。使用している演算精度の範囲内で、点52と点53
とは同じ点である。これが実際に「丁度かろうじて」外
側が意味するところである。
上述の状況が発生すると、一定の性質を備えた二つの
表が連続してリストに加えられる。特に、最初のものは
END表(第9図のステップ8に関連するFF1を参照)であ
り、第2のものはBEGIN表である。更に、二つの表のu
値は正確に同じであり、v値は正確に同じである。この
事態はステップ11(a)により表のリストを処理するこ
とに関連する第1の特別の場合である。
第1の特別の場合はトリミング曲線に関連する円形に
連結された各要素リストを調べることにより見つかる。
要素リストに論理的に隣接する(すなわち、包みアドレ
スを適切に考慮して正しい論理的順序を作る)、それぞ
れが同じ(u,v)対を備えているBEGIN表およびEND表を
含んでいるものがあれば、これら各表はMIDDLE表に変換
される。
チェックされる第2の特別の場合を第13B図に示す。
この場合は一般に第1の特別の場合に似ているが、トリ
ミング曲線54がクリップ窓の中に「丁度かろうじて」進
入しているところが違う。特に、交点の計算に使用する
数の分解能が有限であることから点56および57に対して
発生するBEGIN表とEND表とが同じ(u,v)対を備えるこ
とになる。ただし、この場合BEGIN表とEND表とは点58に
対するMIDDLE表により分離される。
第2の特別の場合はステップ11(a)で同じ(u,v)
対を含むBEGIN表とEND表とを備えたBEGIN−MIDDLE−END
のシーケンスを含む要素リストに対するリストを調べる
ことにより見つかる。このようなシーケンスが見つかる
とSKIPフラグ(第9図のステップ8を参照のこと)が三
つの表すべてにセットされる。これがこれらの表の後々
の処理に及ぼす正味の影響はそれらが効果的に削除され
ることである。すなわちそれらは簡単に無視される。
ステップ11(b)で表のリストが処理されて新しい四
つの要素リストが作られる。一つの要素リストはクリッ
プ窓の各縁に対するものであり、このような要素リスト
を用いて関連する縁を横断するトリミング曲線が数え上
げられる。これら新しい縁要素リストは、要素リストを
互いに結び付ける表のNEXT ADDRESSフィールドを用い
て、そのまま、所定の場所に作られる。(これはNEXT A
DDRESSフィールドの中間的利用に過ぎず、その最終的利
用ではない。) そのSKIPフラグがセットされていない単なるBEGIN表
とEND表とが縁要素リストに入れられる。縁要素リスト
を作るに際しては、BEGIN表またはEND表の(u,v)対も
クリップ窓の隅の点であるという場合に特別の注意を払
う。この場合には幾つかのトリミング曲線が横断してい
るクリップ窓を描いた第14図を参照するのが役に立つ。
その(u,v)対も隅の点Iを(偶然に)記述するBEGIN表
およびEND表が上縁59の縁要素リストに入る。同様に、
隅IIのBEGIN表またはEND表は左縁60の縁要素リストに入
る。隅IIIのBEGINまたはENDの各表は下縁61に関して入
る。同様の仕方で、隅IVのBEGIN表およびEND表は右縁62
に関して入る。
一旦形成されると、各縁要素リストは、どの縁を要素
リストが表わしているかにより、uまたはvの上昇値か
下降値かによって分類される。属性BEGINおよびENDは分
類に影響しない。左縁の縁要素リストはvの下降値がし
たがって分類される。下縁の縁要素リストはuの上昇値
にしたがって分類される。右縁の縁要素リストはvの上
昇値にしたがって分類される。上縁の縁要素リストはu
の下降値にしたがって分類される。
ステップ11(c)で表のリストが表を持つ四つの縁要
素リストを隅角および余分の頂点の主リストにはさみ込
んでリスト内に新しい円形順序を生ずるように処理され
る。これはNEXT ADDRESSフィールドの最終的利用であ
る。はさみ込みは(任意に)隅頂点Iから始まり、クリ
ップ窓の境界の周りを反時計方向に進む。境界に沿う点
の各表のNEXT ADDRESSフィールドは、それが余分な頂点
であろうとトリミング曲線との交点であろうと、更に境
界に沿う次の点と結び付けられる。次の頂点が次の隅で
あるという場合さえあり得る。この再順序付けは第14図
でC,X,B,およびEと記した点を接続する矢印で表わして
ある。任意に頂点Iから始まって、得られる順序はC−
X−E−X−X−C−X−B−X−E−C−B−C−E
−B−Cである。NEXT ADDRESSフィールドを用いるこの
再順序付けに含まれる表の種類は隅、余分な頂点、およ
びBEGINおよびENDの交点表だけである。乱されずにその
ままになっているのはクリップ窓内部の各トリミング曲
線に沿う点を数え上げる各トリミング曲線の要素リスト
である(BEGINとENDとのMIDDLE)。
この点で、隅角頂点の表および余分な頂点の表を考察
中のクリップ窓の表の全体リストに載せておくという方
法については特に言及されていないことがわかる。明ら
かに、このような表を追加するためおよび後に探すため
に何らかの機構が必要であり、したがって上述のはさみ
込みを行うことができる。この種の事柄を行う各種技法
が周知であり、特定の実施例に利用するものは、大部
分、設計者の傾向に依存することになる。提示した実施
例では、それらは関連ポインタにより区別されるそれ自
身の連結要素リスト内に配置されている。
第9図のステップ11(d)は第14図と第9図のステッ
プ11(c)とに関連して上に述べた円形連結リストの各
表に対するONフラグを計算する。ONフラグは頂点が表面
上に残存しているか刈り取られてしまっているかを示
す。ここで重要なのはONフラグをどう計算することがで
きるかである。簡単に言えば、これはトリミング曲線が
要素スパンを去る点を見つけることによって行われる。
定義により、トリミング曲線上の各点は存在するものと
仮定する。トリミングには更にトリミング曲線の左側
(tの増加する方向にトリミング曲線に沿って進むと
き)にある要素スパン内のものもすべて存在するという
仮定がある。したがって、トリミング曲線の出口でもあ
る要素スパン境界上の一点から出発すれば、反時計方向
の次の頂点、およびトリミング曲線に遭遇するまでのす
べての後続頂点も存在する。読者は第14図への懇請によ
り「(tが増加するとき)の左側」と「要素スパンの周
りに反時計方向」との間の関係に関して得心することが
できる。表面上に存在する頂点を摘み、時計方向と反時
計方向の両方に進ませてみよう。
ONフラグは、出発点、たとえば第14図の点63として任
意のEND表を拾うことにより計算される。そのONフラグ
は既にONを割当てている。次に、BEGIN表に遭遇するま
で、表の円形リストを横断し、各ONフラグもONを割当て
るようにセットする。後続の表に対するONフラグはEND
表に遭遇するまでOFFを割当てるようにクリアされる。
このプロセスは最初のEND表63に再び遭遇するまで続け
られる。これが第14図に示す例について、END点63から
始めて、行われると、ONフラグの下記シーケンスが得ら
れる(1/0はON/OFF):1、1、1、1、1、1、0、
1、1、1、0、1、1、0、0。
要素スパンの円形連結リストにBEGIN表またはEND表が
入っていない場合がある。これは二つの異なる方法で起
こり得る。第1は要素スパンにそれに関連するトリミン
グ曲線が全く無いことがある。このような要素スパンに
は隅角および余分な頂点のテーブルしか無い。第2の場
合は要素スパンに一つ以上のトリミング曲線が完全に含
まれている。(これらは要素スパン境界に接触または一
致することがあるが、それらと交差せず、影響は曲線が
接触せずに完全に内部にあるときと同じである。このよ
うな要素スパンは、隅角、余分な頂点、およびトリミン
グ曲線のMIDDLEに対する表を備えたリストを伴う。
上の第1の場合に対応する多角形を表現するときその
多角形の有無は隣接多角形の有無によって決まる。それ
は完全に存在するか全く存在しないかのいずれかであ
る。第2の場合にはトリミング曲線は「考察中の単位」
の最小のもの(すなわち多角形)より小さい。トリミン
グ曲線は無視され、多角形全体が試みに保存される。た
だし、多角形が存在したままでいるということは必ずし
も守られない。多角形はそれ自身更に大きなトリミング
曲線の内部にあることがあり、したがって刈り取られて
しまう。第2の場合には、第1の場合のように、多角形
の有無は隣接多角形の有無によって決まる。
第2の場合は内部トリミング曲線自身が他のトリミン
グ曲線を含んでいるときでも説明したとおりになる。多
分この状況は表面上の存在と不存在とが交互に変る領域
に対応するであろう。ただし、このような特徴は選択し
た多角形の大きさの内部で見るには小さすぎる。多角形
の大きさがトリミング曲線が要素スパン境界を横切り始
めるところまで減少する場合の状況と混同してはならな
い。比較に出した状況は通常どうり単に正常のトリミン
グを発生するだけである。
前述のことから、各個別の多角形を処理している間に
一定の多角形が存在していたか存在していなかったかを
思い出す或る機構が必要であることが明らかである。こ
の機構はパッチの処理中に所定の要素スパンに対する一
定の表のONフラグの値を保存することを含むことにな
る。今度は第10図と第14図とを参照して、要素スパンは
明確な順序で取られていることを想起する。各行の最初
の要素スパンについて頂点IV64のONフラグは次の行を処
理するのに使用するために保存される。行内で各要素ス
パンの頂点IIIのONフラグはその行内の次の多角形を表
現する際使用するために保存される。その他、最初の行
の最後の要素スパンの頂点III66のONフラグは現在のパ
ッチの右側のパッチを処理する際使用するために保存さ
れる。(これまでそう言わなかったが、表面はパッチの
行および列から作り上げられている。第10図はパッチ内
の要素スパンを参照するのと同じ程度容易にそれを参照
することができよう。)同様に、(パッチの行を収容す
るには)パッチ内の要素スパンの最後の行の最初の要素
スパンの頂点I67のONフラグも、頂点Iと正確に一致す
るBEGIN表またはEND表が存在すれば補足してから、保存
される。このような保存も後続のパッチを処理する際に
使用するためである。補足は次の章で説明する特別な場
合考慮している。
第9図のステップ11(b)と関連して頂点Iと同じ
(u,v)対を偶然に備えている。BEGIN表またはEND表は
要素スパンの上縁の縁要素リストに含まれることになる
と言ったことを想起しよう。ステップ11(c)で四つの
縁要素リストが、頂点Iから始めて、要素スパンの周り
に時計方向にはさみ込まれるということを言った。この
ことはトリミング曲線が頂点I67を通過することにより
境界を横切る特別の場合に円形連結リスト内に実際に頂
点Iを記述する二つの表があるということを意味する。
その一つは頂点Iそれ自身に対するものであり一つは頂
点Iと一致するBEGINまたはENDに対するものである。こ
れら各表にONフラグがある。それらをセットする規則お
よび手近にある特別な事柄に照らしてこれらをどう解釈
するかに特別な注意を払わなければならない。
ONフラグに適用される前述の三つの規則あるいは約束
事がある。それらは、 (1)トリミング曲線に沿う点はすべて表面上に存在す
る。
(2)トリミング曲線に沿ってtの値が増える方向に進
むとき、トリミング曲線の左側にある表面の点は表面上
に存在する。
(3)要素スパンの周りに反時計方向に進むとき、END
に直ぐ続く頂点は、やはりONの印の付いている次のBEGI
NまでONの印が付いた表を備えている。同様に、BEGINに
直ぐ続く頂点は、それ自身ONの印が付いている次のEND
までOFFである。
さてBEGINは頂点Iと一致しているとしよう。規則3
により、頂点IにはOFFの印が付く(不存在)ことにな
る。ただし、現在のパッチの上の隣接パッチは、規則2
により、ON(存在)である。したがって、次のパッチま
で伝播した頂点I67に対するONフラグの値はOFFからONに
変る必要がある。
ENDは頂点Iと一致しているとしよう。規則3によ
り、頂点IにはONの印が付くことになる。ただし、現在
のパッチの上の隣接パッチは、規則2により、OFFであ
る。したがって、次のパッチまで伝播した頂点I67に対
するONフラグの値はONからOFFに変る必要がある。
このように、最後の行の最初の要素スパンの頂点I67
のONフラグを伝播させる一般的規則は次のようになる。
頂点I67と一致するBEGINまたはENDでは頂点I67に対する
ONフラグの値が不変に伝播するものはない。頂点I67と
一致するBEGINまたはENDが存在すれば、頂点I67のONフ
ラグの値の補数が伝播する。
表面全体の文字どうり最初の頂点に対するONフラグを
計算するには特別な規則が必要である。このような規則
は慣習に帰するが、その文字どうり最初の頂点に適用さ
れるトリミング動作に適合すべきである。たとえば、文
字どうり最初の頂点が常に表面上に存在すると仮定する
ことはその頂点を刈り取らせない。文字どうり最初の頂
点のONフラグの計算に関する便利な規則は存在する(O
N)その表面縁または部分がトリミング曲線で束ねられ
なければならないとすることである。この方法を用いて
文字どうり最初の頂点をOFFと仮定することができる。
この仮定値はトリミング曲線が最初の多角形に対する少
くとも一組のBEGIN/END頂点表を生ずるならば無視され
る。というのはこのような場合には、上に示したよう
に、各頂点に対するONフラグの正しい値を計算すること
が可能だからである。このような一組の頂点表が存在し
ない場合には、最初の多角形全体が実際に刈り取られて
しまっている。
表面の縁の周りのトリミング曲線が文字どうり最初の
多角形と関連する唯一のトリミング曲線であるときは興
味ある特別な場合が生ずる。この場合にはその多角形の
左縁および下縁がそのトリミング曲線と一致し、これら
二つの縁を記述する二組の頂点が生ずる。一組はそれら
多角形の縁に対する隅および余分な頂点が表面から無く
なっていることを記述し、一方それらの縁とトリミング
曲線との交点について計算された頂点は、定義により、
表面上に存在する。クリッパが動作する方法により、OF
F隅角の頂点はトリミング曲線上の頂点として複製され
るので、最初の多角形の形状が保存される。第16図およ
び第17図と関連して下に述べる頂点表の連結リストを処
理する機構は二重の記述を容認し、OFF縁を無視してON
縁から多角形を作る。二つのOFF縁は二つのON縁と同じ
であることは気にならない。したがってON多角形に存在
するのはOFF隅角である。
今度は第9図のステップ12を考える。その任務は表の
リストを横断することである。ステップ11はどの最初の
頂点がトリミング後も残存しているかについての情報の
他に、どのトリミング曲線の頂点をトリムされた多角形
に組入れるべきかについての情報をリストに追加した。
ステップ11は元の多角形を二つ以上のより小さな多角形
に効果的に分割することができることに注意。ステップ
12には入れ子ループという簡単な手順を使用してステッ
プ11で準備されたデータ構造を横断する。そのデータ構
造が第14図の状況をどう表わすかを簡単に表現したもの
を第15図に示す。ステップ12による横断の結果はステッ
プ13により多角形を実際に表示する機構に送られる一連
の現在の多角形頂点である。ステップ12にはトリミング
・プロセスから現われる現在の各多角形または現在の要
素多角形(他の部分が刈り取られてしまってから残って
いる多角形の一部)に対する頂点の一つの完全なリスト
を作る。
第15図は第9B図のステップ11Cを第14図の例題に適用
して得られる頂点表の一つの可能な円形連結リストを簡
単に示したものである。トリミング曲線#1(この特定
の多角形に対する)は第14図の点68から出発し(t=
0)、他の二つのトリミング曲線は要素スパンの外側の
どこかから出発するという仮定を置く。第15図の円形連
結リスト全体は境界リストと言ってもよい。次のアドレ
ス・フィールドはトリムされない多角形頂点および多角
形の縁とトリミング曲線との交点を境界リストに結び付
ける。境界リストに埋込まれてトリミング曲線要素リス
トがある。トリミング曲線要素リストは物理的順序づけ
と包みアドレス・フィールドとを組合せて結び付けられ
る。各トリミング曲線に対して一つのトリミング曲線要
素リストが存在する。境界リストを横断しているときに
BEGINに出会うと、境界リストに沿って続行するか、ト
リミング曲線要素リストの横断へ切替えるかの選択を行
うことができる。(境界リストとトリミング曲線要素リ
ストとはBEGIN表とEND表とを分け持っている。切替えに
必要なのはリンクの別のチェーンをたどることだけであ
る。)トリミング曲線要素リストをそのENDまで横断す
ると、その点で境界に再び入ることになる。
ステップ12を第16図に簡略流れ図として示してあり、
第17図に第9図のステップ8で設定した情報を含む表の
リストで動作する擬似コードとして示してある。
第16図の流れ図はこれに先行するものが何かという文
脈でとらえるときかなり自明であると信ぜられている。
これには、第16A図に示すように、「最初」であったと
して印を付ける最初の頂点として円形に連結した境界リ
ストの中の任意の頂点を選択する外部ループが含まれて
いる。したがって外部ループは境界リストを横断する。
「最初」と印の付いた頂点に戻ったことがわかると、プ
ロセスは完了し、ループは終結する。外部ループの主な
動作はまだ巡見を受けないで表面上に存在する頂点を見
分けることである。このような頂点が見つかると、境界
リストにその位置が格納されるので、外部ループは中間
ループおよび内部ループがリストを自分自身で横断でき
るようになってからこの点でリストの横断を再開するこ
とができる。外部ループをこのように、そのまま「中
止」して、更に中間ループによるリストの処理が始ま
る。
中間ループは多角形リストに現在の非トリミング曲線
頂点を加え、BEGIN頂点またはEND頂点を見分ける。BEGI
N頂点が見つかると、これが多角形リストに追加され
て、内部ループに入る。END頂点も多角形リストに追加
される。何故ならそれは多角形上に存在する次の頂点で
あり、また今は巡見されたと印が付けられ、再び巡見さ
れなければ更に処理されることがないからである。
内部ループは外部ループおよび中間ループを備えた境
界リストに沿って横断することにより頭に到達したトリ
ミング曲線要素リストを横断する。中間ループはBEGIN
頂点を多角形リストに追加してから内部ループに入る。
内部ループはトリミング曲線要素リストの残りを完全に
横断し、かつ関連頂点を多角形リストに追加してしまう
と中間ループに戻る。次に中間ループは境界リストの横
断を再開する。内部ループは新しいトリミング曲線要素
リストの頭に出会うたびに必要に応じて再使用される。
中間リストは閉じた多角形全体が多角形リストに追加さ
れてしまうと完了する。この状態は中間ループが既に巡
見されている頂点に戻ったときに検出される。このこと
は境界リストが完全に処理されてしまったということを
必らずしも意味するものではない。トリミングは元の多
角形を二つ以上の要素多角形に切断することができる。
外部ループがまだ完了まで動いてしまわないかぎり、境
界リストが記述した要素多角形がまだ沢山ある可能性が
ある。
完成多角形を多角形リストに追加すると中間ループは
外部ループに戻る。外部ループは境界リストの立ち去っ
た点からその処理を再開する。外部ループはまだ巡見さ
れていない頂点を探してリストの横断を続ける。それが
見つかれば他の要素多角形全体を多角形リストに載せる
のに中間ループを再使用する。
頂点情報を隅角頂点および余分な頂点に対する多角形
リストに追加すること(第16図の動作69)はトリミング
曲線に沿う点に対する多角形リストに追加する(第16図
の動作70と71)より本質的に容易である。先に述べたと
うり、前者の情報は前進差分の技法により計算される。
後者の情報は、uv空間の任意の点に対し、XYZ空間の頂
点位置と頂点における表面法線ベクトルとを評価するこ
とを含んでいる。概念的に差違はないが、これははるか
に時間がかかる操作である。
第17図は第16図に流れ図の形で示したのと同じ動作を
行う擬似コードの簡略部分である。違うのは第17図が第
9図のステップ8〜11に関連して述べた表構造に更に多
く取入れていることである。
表面多角形をトリムする好ましい方法の提示を方法に
組入れることができる一定の向上操作を検討することで
締めくくることにする。次の数節でトリミング曲線関数
の理想的パラメータ化とはほど遠い効果を最小にし、各
要素スパンおよびその多角形を処理しながら考察しなけ
ればならないトリミング曲線の数を最小にまで減らす方
法を考えよう。
理想形には、uの等しい増進とvの等しい増進とを生
ずるのにtの等しいステップが欲しい。この性質はトリ
ミング曲線を表わすのに選定したBスプライン関数の性
質から生ずるもので、多かれ少かれ得ることができる。
このような同等性が得られれば、トリミング曲線関数に
対す良好なパラメータ化が存在すると言われる。悪いパ
ラメータ化はいつでも避けることができるとはかぎら
ず、補正されないままになっているとトリミング・プロ
セスに一定の問題が生ずる。特に、トリムされた多角形
に対する多角形頂点の数がはなはだしく大きくなる可能
性がある。こうなると、今度は、多角形のトリミングに
割当てなければならないメモリの量が増加する。特定の
利益の無い現象を収容するのにメモリを追加するのでは
なく、もっと満足な方法はトリミング曲線関数をtの所
定のステップの大きさで評価することにより生じたuv対
を調べ、その先行者から充分離れていないものを抑制す
ることである。説明しようとしているものへのこれ以上
の概説については、第8図の説明を参照のこと。
第18図によりuv空間のスパンで示したトリミング曲線
72を考える。Δt73の等しいステップの大きさから異な
るΔu74と異なるΔv75とが生ずる。曲線72に付けた区切
り印の離れた距離はどれだけ異なっているかに注意。こ
れらはt空間で等距離離れた区切り印に対応するuv空間
の評価座標である。
第8図のおよび第9図のステップ6の説明から、tの
ステップの大きさ(Δt)は、パッチの縁に沿って測っ
た多角形頂点間の距離(この距離をエッジ・ステップ・
サイズと言うことがある)にほぼ等しいΔuとΔvとの
最大値を生ずるように選ばれることを想起する。すなわ
ち第18図のΔt73の選び方である。例示の目的で、第18
図に示す最大Δv75を使用してΔtを求めると仮定す
る。手近の例ではΔvはΔuより大きくなる傾向があ
る。異なるトリミング曲線については、最大Δuは最大
Δvより大きくてΔtを選定するのに使用される場合が
ある。Δtを選定するプロセスを第9図のステップ6に
関連して説明する。Δt73の等しいステップの大きさで
その機能を評価することにより得られるトリミング曲線
72の直線線分近似は少くとも一つのΔuおよびΔvが縁
のメッシュの大きさの52パーセントより大きくなければ
ならないとすることにより向上する。こうするものがな
ければuv空間のその点が無視され、次のものが考慮さ
れ、以下同様。この技法によれば、点76が無視され、直
線線分77が点78から点79まで動くことになる。各Bスプ
ライン・トリミング曲線線分に沿う最初の点は点選定プ
ロセスが始まる最初の点である。これによりBスプライ
ン・トリミング曲線線分は意図どうり相互に確実に接合
される。
52パーセントという判定基準は受容可能な最短と最長
との直線線分の間に存在する関係から出て来る。この関
係は、一方において受容可能な最長直線線分(45゜にな
っているもの)がエッジ・ステップ・サイズを超す量と
他方において受容可能な最短直線線分(水平または垂直
になっているもの)がエッジ・ステップ・サイズより小
さい量との間の同等性を含んでいる。所望の同等性の関
係は選択判定基準がエッジ・ステップ・サイズのほぼ52
パーセントであるとき得られることが示される。
要素スパンおよびその多角形を処理しているときに考
慮しなければならないトリミング曲線の数は以下の技法
を使用すれば減らすことができる。簡単に言えば、スパ
ン内の各トリミング曲線線分の位置に関する情報はその
Bスプラインの定義と関係している。この情報はおそら
く処理されようとしている要素スパンと交差することが
できない線分を考察から除外するのに使用される。
新しいパッチに対する最初の多角形を作る前に各トリ
ミング曲線のBスプライン線分ごとにVextentを見つけ
る。Vextentは第18図に関連して説明したパラメータ化
を向上して得られる(u,v)対の集合の最小v値から最
大v値までのvの範囲である。以下に記すUextentも同
様に定義される。各Bスプライン線分に対するVextent
はパッチに対するトリミング曲線を備えたデータ構造内
の場所に格納される。
多角形は要素スパンを行方向に順序づけして作られる
ことを想起すること。第10図の説明を参照。多角形の各
行の始めにパッチに対する各トリミング曲線線分のVext
entを調べる。現在の行のvの範囲と重なるVextentを備
えるトリミング曲線線分を更に評価してその関連のUext
entを探す。このような各重なり線分のUextentもトリミ
ング曲線のデータ構造に格納される。
行に沿う各多角形についてそのUextentとVextentとが
共に現在の要素スパンと重なるBスプライン線分だけを
第6図〜第16図と関連して説明するクリッピング・トリ
ミング・プロセスで考える。たとえば、第6図を再び参
照して、トリミング曲線線分80はパッチ12の行82の要素
スパン・多角形に対しては重要でない。線分80は行82の
Vextentに重なるVextentを備えていない。一方、線分81
のVextentは行82のVextentと重ならず、線分81のUexten
tは行82に沿う要素スパンを処理する前に計算される。
線分81のUextentは要素スパン83のUextentと重なるか
ら、トリミング曲線11のBスプライン線分81はその要素
スパンに関するクリッピング・トリミング動作に含まれ
る。線分80は行82に沿う要素スパン・多角形に関する動
作に含まれず、更にたとえば、要素スパン84と関連して
使用されることもない。また同じように、線分80も線分
81も行85に沿う要素スパン・多角形に関する動作に含ま
れることはなく、それら線分に対するVextentがその行
に対するVextentと重なることはない。
今度は第19図を参照すると、本発明の方法を具体化す
る実際の図形処理システムを絵画的に表わしてある。特
に、図形処理システムは、コンピュータ86、キーボード
87、ノブ・ボックス88、ボタン・ボックス89、およびマ
ウス90を備えている。コンピュータ86はこの明細書の始
めに述べたソフトウェアを実行することができ、ユーザ
と対話して表面とそのトリミング曲線とのBスプライン
記述を作製する。コンピュータ86は高速ローカル図形処
理母線92を介して図形処理加速器91と結合している。図
形処理加速器91は、赤、緑、および青(RGB)の各ビデ
オ信号を伝える3本の同軸ケーブルを介してカラー・モ
ニタ94に結合されている。
上述のトリミング動作は完全に図形処理加速器91の内
部で行われる。今まで述べたトリミングの方法はコンピ
ュータ86のソフトウェアで行うことができると考えられ
るが、このような方法は適切なハードウェアによるトリ
ミングと比較して性能が落ちるため実質上不利である。
この目標および他の目標を達成するため、図形処理加速
器91は多数の命令を実行することによりコンピュータ86
に応答する。それらのいくつかを挙げると、図形処理加
速器に一つ以上のトリミング曲線をデータ構造に格納す
るように指示すること、データ構造に表面パッチの定義
を格納し、あらかじめ定義したトリミング曲線に従って
トリミングして表現すること、あらかじめ定義したすべ
てのトリミング曲線を削除する命令がある。ONフラグの
スタックを押してはじき出す命令もある。所定パッチの
右上隅および左下隅のONフラグは二つの別々のスタック
に保存されてパッチを細分しやすくしている。パッチを
要素パッチに細分するのは所定のパッチに入っているト
リミング曲線が多過ぎるときに行われる。図形処理加速
器91で処理することができる単一パッチに対してトリミ
ング曲線の数を制限する実際的、かつ費用に関連する問
題(すなわち、メモリの量)がある。
上述のメモリの限界はパッチに適用できるトリミング
曲線の数を実際上限定するものではない。コンピュータ
のソフトウェアは所定のパッチに対するトリミング曲線
の数が約40から60を超したときパッチを細分する必要性
を決定する。(ソフトウェアは図形処理加速器の限界を
認識するか、あるいは図形処理加速器から送られたオー
バーフローの指示に応じて細分するかのいずれかを行う
ことができる。)あらかじめ細分されていないパッチは
16回まで分割することができる。細分の動作ごとに手近
のパッチを4ケの要素パッチに分割することができる。
細分が発生するたびに、既に表現されている適切な他
のパッチのONフラグがそのスタック上に押される。各パ
ッチの多角形の最後の行の最初の多角形の頂点Iに対し
て一つのスタックがあり、各パッチの多角形の最初の行
の最後の多角形の頂点IIIに対してもう一つのスタック
がある。これらスタックはコンピュータ86が実行するソ
フトウェアと協同して別々に維持される。パッチ細分化
に対して得られた機構はパッチをトリミングする上述の
方法に対して透明である。その方法は、手近のパッチが
要素パッチであると否とに関係なく、常に同じ仕方で動
作する。
第20A図〜第20C図は第19図に示す図形処理加速器91の
ブロック図である。インターフェース機構95はトリミン
グ曲線およびコンピュータ86からのパッチ定義命令を変
換エンジン96と結び付ける。定義はマイクロシーケンサ
97によりデータRAM98に格納されている。マイクロシー
ケンサはこれらの定義に基いて動作し、トリムされた多
角形の頂点の座標を発生する。トリムされた多角形の頂
点の画面座標はDC(装置座標)母線99を経由して走査変
換器100に送られ、ここで多角形表現のプロセスがプク
セル・レベル(たとえば、区域充填、またはぼかしのた
めのカラー挿間)で更に行われる。
マイクロシーケンサ97は各種の整数・浮動小数点演算
ユニットと関連して動作するが、たとえばAdvanced Mic
ro Devices社のAMD2910を使用することができる。
〔発明の効果〕
以上説明したように、本発明を用いることにより、B
スプラインの効用を保持したまま表面記述のその技術に
より得られる利点が活用でき、しかも同時に、丸め誤差
が少なく、高速トリミングができるようになる。
【図面の簡単な説明】
第1図は不均一有理Bスプラインのようなパラメトリッ
クパッチ発生関数で二次元uvパラメータ空間のスパンを
XYZ空間へ写像することにより形成されたパッチによっ
てXYZ空間内に近似された表面を示す図である。 第2図は表面から削除される領域を区分するためにXYZ
空間へ写像されうる、uv空間内のトリミング曲線を、一
次元t空間のパラメトリック関数が規定しうる様子を示
す図である。 第3図は一次元t空間のいくつかのスパンにわたって分
けられ、二次元uv空間のトリミング曲線を規定するパラ
メトリック・トリミング曲線関数を示す図である。 第4図は分割されたトリミング曲線関数がuv空間の数ス
パンを横断し、XYZ空間の対応する数のパッチ内に、写
像されたトリミング曲線を規定する様子を示す図であ
る。 第5図は第4図の分割トリミング曲線を、より詳細に示
す図である。 第6図は、uv空間のスパンが要素スパンに分割されたXY
Z空間の表面用の表面近似多角形を生ずる様子を示し、
また、uv空間のトリミング曲線が要素スパンを横断する
一方、写像されたトリミング曲線が表面上の多角形をト
リムすることを示す図である。 第7図は第6図の部分拡大図である。 第8図は第7図の部分拡大図であって、写像されたトリ
ミング曲線が横断することにより多角形の形状が変化す
る様子を示す図である。 第9A図、第9B図、および第9C図は写像されたトリミング
曲線により横断され、それに従って形状が調整される多
角形を発生するのに用いられる処理ステップを記述した
擬似コードの簡略部を示す図である。 第10図はXYZ空間の表面用の近似多角形を作成するのに
要素スパンが取られるスパン内の順序を示す図である。 第11図はスパン上で規定されたトリミング曲線のいくつ
かの形式を示す図であって、算術丸め誤差を避けるのに
役立つスパンの回りのガード領域の存在を示す図であ
る。 第12A図及び第12B図は要素スパンを横断してトリミング
曲線の直線線分と要素スパンの境界との間の交点を生ず
るトリミング曲線の近似直線線分上で、クリッピング機
構が動作する様子を示す図である。 第13A図及び第13B図はトリミング曲線が当該要素スパン
の境界へきわめて近接しているuv空間内の点を表わす、
ある特別の場合を示す図である。 第14図はある特定のトリミング曲線によって横断される
uv空間内の要素スパンの有用な例を示す図である。 第15図は第14図の例に対応する頂点表用のトリミング曲
線サブリスト及びリンクされた境界リストの簡単化表示
を示す図である。 第16A図、第16B図、及び第16C図は第9C図のステップ12
にしたがって頂点表のリンクされたリストを処理するた
めの簡略フローチャートを含む図である。 第17図は第16A図ないし第16C図と同様の主題に適する擬
似コードの簡略部を示す図である。 第18図はuv空間におけるトリミング曲線を示す図であ
る。 第19図は本発明の好ましい方法を組み入れた一実施例に
用いられるハードウェアの簡略ブロック図である。 第20A図、第20B図、及び第20C図は第19図の図形処理加
速器の簡略ハードウェア・ブロック図を備えた図であ
る。 86:コンピュータ、91:図形処理加速器 94:カラーモニター

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】グラフィック表示システムにおける、多角
    形領域分割された2次元空間(J,K)でのトリミング方
    法において、 (a)2次元空間(J,K)において(J,K)空間内のトリ
    ムされていない多角形領域を記述する元の頂点の順序集
    合を選択するステップ、 (b)(J,K)空間のトリミング曲線に沿った第1と第
    2の点を選び、前記第1の点を始点とし前記第2の点を
    終点とする直線線分を選択するステップ、 (c)第1のフラグを、前記線分が少なくともトリムさ
    れていない多角形領域内にある時に第1の値に設定し、
    前記線分が完全に外にあってトリムされていない多角形
    領域から分離されているときには、第2の値に設定する
    ステップ、 (d)第2のフラグを、前記第1の点がトリムされてい
    ない多角形領域の外にあり、前記線分ががトリムされて
    いない多角形領域を横断しているときには、第3の値に
    設定し、前記第1の点と前記線分がその他の場合には第
    4の値に設定するステップ、 (e)前記ステップ(d)で第2のフラグを第3の値に
    設定した後で、前記第1の点の値を、前記線分がトリム
    されてない多角形領域を横断する点と等しい値に置き替
    えるステップ、 (f)第3のフラグを、前記線分がトリムされていない
    多角形領域の外に横断し、前記第2の点がトリムされて
    いない多角形領域の外にある時、第5の値に設定し、前
    記線分と前記第2の点がその他の時には第6の値に設定
    するステップ、 (g)前記ステップ(f)で第3のフラグを第5の値に
    設定した後で、前記第2の点の値を前記線分がトリムさ
    れていない多角形領域の外に横断する点と等しく調整さ
    れた値に置き換えるステップ、 (h)前記線分の向きに従い、第1の点の値と、第1の
    フラグが第1の値の場合には第2の点までの間に差挟ま
    れた点の値と、第2の点とを、トリムされていない多角
    形領域に属するトリミング曲線に沿った(J,K)空間中
    の点の順序付けリストに収集するステップ、 (i)前記ステップ(a)で選択された元の頂点の順序
    集合を、前記ステップ(h)で収集された順序リストと
    結合するステップ、 (j)リンクされたデータ構造を横断し、2次元の(J,
    K)空間でトリムされた多角形領域の隣接した頂点のシ
    ーケンスを生成するステップ、 (k)トリムされた多角形領域に従って、グラフィック
    ス表示システム上に視覚イメージを表示するステップ、 の各ステップを有する方法。
  2. 【請求項2】グラフィック表示システムにおける多角形
    領域分割された(u,v)パラメータ空間でのトリミング
    方法において、前記トリムされた多角形領域の頂点がマ
    ッピング関数の変数として使われ、(X,Y,Z)空間のト
    リムされた多角形の頂点を生成するような方法であっ
    て、 (a)(u,v)パラメータ空間において(u,v)空間中の
    トリムされていない多角形領域を記述する元の頂点の順
    序集合を選択するステップ、 (b)(u,v)空間のトリミング曲線に沿った第1と第
    2の点を選び、前記第1の点を始点とし前記第2の点を
    終点とする直線線分を選択するステップ、 (c)第1のフラグを、前記線分が少なくともトリムさ
    れていない多角形領域内にある時に第1の値に設定し、
    前記線分が完全に外にあってトリムされていない多角形
    領域から分離されているときには、第2の値に設定する
    ステップ、 (d)第2のフラグを、前記第1の点がトリムされてい
    ない多角形領域の外にあり、前記線分がトリムされてい
    ない多角形領域を横断しているときには、第3の値に設
    定し、前記第1の点と前記線分がその他の場合には、第
    4の値に設定するステップ、 (e)前記ステップ(d)で第2のフラグを第3の値に
    設定した後で、前記第1の点の値を、前記線分がトリム
    されていない多角形領域を横断する点と等しい値に置き
    換えるステップ、 (f)第3のフラグを、前記線分がトリムされていない
    多角形領域の外に横断し、前記第2の点がトリムされて
    いない多角形領域の外にある時、第5の値に設定し、前
    記線分と前記第2の点がその他の時には第6の値に設定
    するステップ、 (g)前記ステップ(f)で第3のフラグを第5の値に
    設定した後で、前記第2の点の値を前記線分がトリムさ
    れていない多角形領域の外に横断する点と等しく調整さ
    れた値に置き換えるステップ、 (h)前記線分の向きに従い、第1の点の値と、第1の
    フラグが第1の値の場合には第2の点までの間に差挟ま
    れた点の値と、第2の点とを、トリムされていない多角
    形領域に属するトリミング曲線に沿った(u,v)空間中
    の点の順序付けリストに収集するステップ、 (i)前記ステップ(a)で選択された元の頂点の順序
    集合を、前記ステップ(h)で収集された順序リストと
    結合するステップ、 (j)リンクされたデータ構造を横断し、(u,v)パラ
    メータ空間でトリムされた多角形領域の隣接した頂点の
    シーケンスを生成するステップ、 (k)前記ステップ(j)の横断で生成される(u,v)
    パラメータ空間の隣接した頂点のシーケンスをマッピン
    グ関数の変数として使い、トリムされた多角形領域の
    (X,Y,Z)空間の対応する座標のシーケンスを生成する
    ステップ、 (l)トリムされた多角形領域の(X,Y,Z)空間の座標
    で視覚イメージをグラフィック表示システム上に表示す
    るステップ、 の各ステップを有する方法。
  3. 【請求項3】グラフィック表示システムにおける多角形
    領域分割された(u,v)パラメータ空間でのトリミング
    方法において、前記トリムされた多角形領域の頂点がマ
    ッピング関数の変数として使われ、(X,Y,Z)空間のト
    リムされた多角形の頂点を生成し、(X,Y,)平面上の視
    覚的投射が、少なくともxy次元でアドレス可能位置の記
    憶装置から電子的に生成され、前記各位置は少なくとも
    1つの画素強度値とZ値を含むような方法において、 (a)(u,v)パラメータ空間において(u,v)空間内の
    トリムされていない多角形領域を記述する元の頂点の順
    序集合を選択するステップ、 (b)(u,v)空間のトリミング曲線に沿った第1と第
    2の点を選び、前記第1の点を始点とし前記第2の点を
    終点とする直線線分を選択するステップ、 (c)第1のフラグを、前記線分が少なくともトリムさ
    れていない多角形領域内にある時に第1の値に設定し、
    前記線分が完全に外にあってトリムされていない多角形
    領域から分離されているときには、第2の値に設定する
    ステップ、 (d)第2のフラグを、前記第1の点がトリムされてい
    ない多角形領域の外にあり、前記線分がトリムされてい
    ない多角形領域を横断しているときには、第3の値に設
    定し、前記第1の点と前記線分がその他の場合には第4
    の値に設定するステップ、 (e)前記ステップ(d)で第2のフラグを第3の値に
    設定した後で、前記第1の点の値を、前記線分がトリム
    されていない多角形領域を横断する点に等しい値に置き
    換えるステップ、 (f)第3のフラグを、前記線分がトリムされていない
    多角形領域の外に横断し、前記第2の点がトリムされて
    いない多角形領域の外にある時、第5の値に設定し、前
    記線分と前記第2の点がその他の時には第6の値に設定
    するステップ、 (g)前記ステップ(f)で第3のフラグを第5の値に
    設定した後で、前記第2の点の値を前記線分がトリムさ
    れていない多角形領域の外に横断する点と等しく調整さ
    れた値に置き換えるステップ、 (h)前記線分の向きに従い、第1の点の値と、第1の
    フラグが第1の値の場合には第2の点までの間に差挟ま
    れた点の値と、第2の点とを、トリムされていない多角
    形領域に属するトリミング曲線に沿った(u,v)空間の
    点の順序リストに収集するステップ、 (i)前記ステップ(a)で選択された元の頂点の順序
    集合を、前記ステップ(h)で収集された順序リストと
    結合するステップ、 (j)リンクされたデータ構造を横断し、(u,v)パラ
    メータ空間でトリムされた多角形領域の隣接した頂点の
    シーケンスを生成するステップ、 (k)前記ステップ(j)の横断で生成される(u,v)
    パラメータ空間の隣接した頂点のシーケンスをマッピン
    グ関数の変数として使い、トリムされた多角形領域の
    (X,Y,Z)空間の対応する座標のシーケンスを生成する
    ステップ、 (l)前記ステップ(k)で生成されたXとY座標によ
    り少なくともxy次元でアドレス可能な位置の記憶装置を
    アドレスし、前記ステップ(k)で生成された(X,Y,
    Z)座標で関連付けられた少なくとも1つの画素強度値
    をアドレスされた位置に記憶し、前記ステップ(k)で
    生成されたZ値をアドレスされた位置に記憶するステッ
    プ、 (m)前記ステップ(1)で記憶されたZ値と画素強度
    値によりXY平面に視覚的表示を電子的に生成するステッ
    プ、 の各ステップを有する方法。
JP63026402A 1987-02-05 1988-02-05 三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法 Expired - Lifetime JP2771813B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/011,667 US4999789A (en) 1987-02-05 1987-02-05 Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
US11667 1987-02-05

Publications (2)

Publication Number Publication Date
JPH01201777A JPH01201777A (ja) 1989-08-14
JP2771813B2 true JP2771813B2 (ja) 1998-07-02

Family

ID=21751457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63026402A Expired - Lifetime JP2771813B2 (ja) 1987-02-05 1988-02-05 三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法

Country Status (4)

Country Link
US (5) US4999789A (ja)
EP (6) EP0277832B1 (ja)
JP (1) JP2771813B2 (ja)
DE (6) DE3889134T2 (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390292A (en) * 1987-01-26 1995-02-14 Ricoh Company, Ltd. Apparatus for converting a gregory patch
US4999789A (en) * 1987-02-05 1991-03-12 Hewlett-Packard Co. Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
US5965079A (en) 1995-04-25 1999-10-12 3D Systems, Inc. Method and apparatus for making a three-dimensional object by stereolithography
US5448687A (en) * 1988-09-13 1995-09-05 Computer Design, Inc. Computer-assisted design system for flattening a three-dimensional surface and for wrapping a flat shape to a three-dimensional surface
US5241654A (en) * 1988-12-28 1993-08-31 Kabushiki Kaisha Toshiba Apparatus for generating an arbitrary parameter curve represented as an n-th order Bezier curve
FR2646256A1 (fr) * 1989-04-24 1990-10-26 Digital Equipment Int Procede pour realiser des dessins a l'aide d'un ordinateur
US5257203A (en) * 1989-06-09 1993-10-26 Regents Of The University Of Minnesota Method and apparatus for manipulating computer-based representations of objects of complex and unique geometry
US5317682A (en) * 1989-10-24 1994-05-31 International Business Machines Corporation Parametric curve evaluation method and apparatus for a computer graphics display system
JPH0776991B2 (ja) * 1989-10-24 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Nurbsデータ変換方法及び装置
JPH0766451B2 (ja) * 1989-10-24 1995-07-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・グラフィック装置
GB9009127D0 (en) * 1990-04-24 1990-06-20 Rediffusion Simulation Ltd Image generator
US5283860A (en) * 1990-11-15 1994-02-01 International Business Machines Corporation System and method for displaying trimmed surfaces using bitplane masking
KR930004215B1 (ko) * 1990-11-16 1993-05-21 고재용 디지탈하드웨어장치 및 디지탈데이터처리 방법
EP0488563A3 (en) * 1990-11-30 1993-11-03 Ibm Method and apparatus for rendering trimmed parametric surfaces
JPH04280374A (ja) * 1991-03-08 1992-10-06 Hitachi Ltd 曲面生成方法及びその装置
US5420970A (en) * 1991-03-13 1995-05-30 Martin Marietta Corporation Method for determining computer image generation display pixels occupied by a circular feature
US5412401A (en) * 1991-04-12 1995-05-02 Abekas Video Systems, Inc. Digital video effects generator
US5408598A (en) * 1991-05-23 1995-04-18 International Business Machines Corporation Method for fast generation of parametric curves employing a pre-calculated number of line segments in accordance with a determined error threshold
US6084586A (en) * 1991-10-29 2000-07-04 Sony Corporation Method and apparatus for forming objects based on free-form curves and free-form surfaces generated by minimizing sum of distances from an input series of points to a free-form curve
JP3137245B2 (ja) * 1991-10-30 2001-02-19 ソニー株式会社 自由曲線作成方法及び自由曲面作成方法
US5448686A (en) * 1992-01-02 1995-09-05 International Business Machines Corporation Multi-resolution graphic representation employing at least one simplified model for interactive visualization applications
EP0551543A1 (en) * 1992-01-16 1993-07-21 Hewlett-Packard GmbH Method of modifying a geometric object and computer aided design system
EP0578841A1 (de) * 1992-07-11 1994-01-19 International Business Machines Corporation Verfahren zur Erzeugung von Höhenlinien mit einem Computersystem
US5333248A (en) * 1992-07-15 1994-07-26 International Business Machines Corporation Method and system for the smooth contouring of triangulated surfaces
US5377320A (en) * 1992-09-30 1994-12-27 Sun Microsystems, Inc. Method and apparatus for the rendering of trimmed nurb surfaces
GB9223314D0 (en) * 1992-11-06 1992-12-23 Canon Res Ct Europe Ltd Processing image data
GB9223375D0 (en) * 1992-11-06 1992-12-23 Canon Res Ct Europe Ltd Processing image data
US5680531A (en) * 1993-07-02 1997-10-21 Apple Computer, Inc. Animation system which employs scattered data interpolation and discontinuities for limiting interpolation ranges
AU671927B2 (en) * 1993-07-29 1996-09-12 Output Australia Pty Ltd Curved object embellishment process
WO1995003855A1 (en) * 1993-07-29 1995-02-09 Output Australia Pty. Ltd. Curved object embellishment process
US5858297A (en) * 1993-11-02 1999-01-12 Hitachi, Ltd. Method and apparatus of correcting superfluous curing thickness of optical modeling product
US5649079A (en) * 1994-02-28 1997-07-15 Holmes; David I. Computerized method using isosceles triangles for generating surface points
CA2186613A1 (en) * 1994-04-25 1995-11-02 John J. Gigl Enhanced building techniques in stereolithography
US5886703A (en) * 1995-02-01 1999-03-23 Virtus Corporation Perspective correct texture mapping system and methods with intelligent subdivision
JP2755289B2 (ja) * 1996-02-16 1998-05-20 日本電気株式会社 レンダリング方法
US6044170A (en) * 1996-03-21 2000-03-28 Real-Time Geometry Corporation System and method for rapid shape digitizing and adaptive mesh generation
CA2200659A1 (en) * 1996-04-12 1997-10-12 Softimage Inc. Method and system for efficiently trimming a nurbs surface with a projected curve
US5701404A (en) * 1996-05-31 1997-12-23 Softimage Method and system for efficiently trimming a nurbs surface with a projected curve
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
US5847956A (en) * 1996-09-26 1998-12-08 Computervision Corporation Automatic trimming of geometric objects in CAD/CAM systems
US5945996A (en) * 1996-10-16 1999-08-31 Real-Time Geometry Corporation System and method for rapidly generating an optimal mesh model of a 3D object or surface
US5886702A (en) * 1996-10-16 1999-03-23 Real-Time Geometry Corporation System and method for computer modeling of 3D objects or surfaces by mesh constructions having optimal quality characteristics and dynamic resolution capabilities
US6141373A (en) * 1996-11-15 2000-10-31 Omnipoint Corporation Preamble code structure and detection method and apparatus
US7616198B2 (en) * 1998-02-20 2009-11-10 Mental Images Gmbh System and computer-implemented method for modeling the three-dimensional shape of an object by shading of a two-dimensional image of the object
US5995109A (en) * 1997-04-08 1999-11-30 Lsi Logic Corporation Method for rendering high order rational surface patches
US6246784B1 (en) * 1997-08-19 2001-06-12 The United States Of America As Represented By The Department Of Health And Human Services Method for segmenting medical images and detecting surface anomalies in anatomical structures
US6173271B1 (en) 1997-11-26 2001-01-09 California Institute Of Technology Television advertising automated billing system
AU3991799A (en) 1998-05-14 1999-11-29 Metacreations Corporation Structured-light, triangulation-based three-dimensional digitizer
US6389154B1 (en) * 1998-07-15 2002-05-14 Silicon Graphics, Inc. Exact evaluation of subdivision surfaces generalizing box splines at arbitrary parameter values
US7196702B1 (en) 1998-07-23 2007-03-27 Freedesign, Inc. Geometric design and modeling system using control geometry
US6981695B1 (en) * 2003-10-14 2006-01-03 Polaris Industries Inc. All terrain vehicle with multiple winches
US8836701B1 (en) 1998-07-23 2014-09-16 Freedesign, Inc. Surface patch techniques for computational geometry
US6307555B1 (en) * 1998-09-30 2001-10-23 Silicon Graphics, Inc. Boolean operations for subdivision surfaces
US6356263B2 (en) 1999-01-27 2002-03-12 Viewpoint Corporation Adaptive subdivision of mesh models
US7242414B1 (en) * 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6683620B1 (en) * 1999-04-21 2004-01-27 Autodesk, Inc. Relational modeling of trimmed nurbs surfaces
JP2001022962A (ja) * 1999-06-25 2001-01-26 Internatl Business Mach Corp <Ibm> 領域分割処理装置およびその方法
HUP0700118A2 (en) * 1999-07-23 2007-05-29 Curventa Softworks Method for determining a blended geometric object, for generating a geometric object on a computational system, and for generating, modifying a representation of a geometric object, as well as for modifying the representation of a surface
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6798411B1 (en) * 1999-10-29 2004-09-28 Intel Corporation Image processing
US7065242B2 (en) * 2000-03-28 2006-06-20 Viewpoint Corporation System and method of three-dimensional image capture and modeling
US6972760B2 (en) * 2000-03-30 2005-12-06 S3 Graphics Co., Ltd. Area and span based Z-buffer
US7180523B1 (en) * 2000-03-31 2007-02-20 Intel Corporation Trimming surfaces
US6920415B1 (en) * 2000-04-12 2005-07-19 California Institute Of Technology Method of trimming a representation of an object surface comprising a mesh of tessellated polygons and related system
US6624811B1 (en) * 2000-08-31 2003-09-23 Nvidia Corporation System, method and article of manufacture for decomposing surfaces using guard curves and reversed stitching
US6812925B1 (en) 2000-11-01 2004-11-02 At&T Corp. Map simplification system
US7239316B1 (en) * 2000-11-13 2007-07-03 Avaya Technology Corp. Method and apparatus for graphically manipulating data tables
US6897863B2 (en) * 2001-11-30 2005-05-24 Caterpillar Inc System and method for hidden object removal
US6744434B2 (en) 2001-11-30 2004-06-01 Caterpillar Inc Cuts removal system for triangulated CAD Models
US7174280B2 (en) * 2002-04-23 2007-02-06 Ford Global Technologies, Llc System and method for replacing parametrically described surface features with independent surface patches
US7260250B2 (en) * 2002-09-30 2007-08-21 The United States Of America As Represented By The Secretary Of The Department Of Health And Human Services Computer-aided classification of anomalies in anatomical structures
JP5101080B2 (ja) * 2006-10-19 2012-12-19 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
US11907617B2 (en) 2008-07-18 2024-02-20 Cad-Sense Llc Surface patch techniques for computational geometry
US20100241638A1 (en) * 2009-03-18 2010-09-23 O'sullivan Patrick Joseph Sorting contacts
EA023320B1 (ru) * 2010-05-27 2016-05-31 Лэндмарк Графикс Корпорейшн Способ и система для визуализации значений каротажной диаграммы скважины
DE102013207658A1 (de) * 2013-04-26 2014-10-30 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bestimmen eines Fahrspurverlaufes einer Fahrspur
AU2013267004A1 (en) * 2013-12-04 2015-06-18 Canon Kabushiki Kaisha Method, apparatus and system for tessellating a parametric patch
US9984496B1 (en) 2016-08-23 2018-05-29 Bentley Systems, Incorporated Technique for compact and accurate encoding trim geometry for application in a graphical processing unit
CN107146230A (zh) * 2017-04-14 2017-09-08 西安电子科技大学 基于k‑s距离合并代价的sar图像分割方法
US11403816B2 (en) * 2017-11-30 2022-08-02 Mitsubishi Electric Corporation Three-dimensional map generation system, three-dimensional map generation method, and computer readable medium
CN113985817B (zh) * 2021-12-06 2023-04-11 华中科技大学 一种可在线插补的机器人小线段轨迹局部光顺方法及系统
US20240020935A1 (en) * 2022-07-15 2024-01-18 The Boeing Company Modeling system for 3d virtual model

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5952380A (ja) * 1982-09-17 1984-03-26 Victor Co Of Japan Ltd 補間装置
JPS6120128A (ja) * 1984-07-07 1986-01-28 Daikin Ind Ltd Crtデイスプレイ装置のクリツプ回路
US4601224A (en) * 1984-10-05 1986-07-22 Clark Iii William T Hot wire cutting system
US4625289A (en) * 1985-01-09 1986-11-25 Evans & Sutherland Computer Corp. Computer graphics system of general surface rendering by exhaustive sampling
CA1250064A (en) * 1985-03-29 1989-02-14 Kenichi Anjyo Method for constructing three-dimensional polyhedron model
US4791581A (en) * 1985-07-27 1988-12-13 Sony Corporation Method and apparatus of forming curved surfaces
US4791582A (en) * 1985-09-27 1988-12-13 Daikin Industries, Ltd. Polygon-filling apparatus used in a scanning display unit and method of filling the same
US4788538A (en) * 1986-11-17 1988-11-29 Lotus Development Corporation Method and apparatus for determining boundaries of graphic regions
US4999789A (en) * 1987-02-05 1991-03-12 Hewlett-Packard Co. Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
JP2630605B2 (ja) * 1987-07-29 1997-07-16 三菱電機株式会社 曲面創成方法
JPH077456B2 (ja) * 1988-11-11 1995-01-30 大日本スクリーン製造株式会社 重合度による図形の認識装置
US5175809A (en) * 1989-09-22 1992-12-29 Ampex Corporation Pipeline architecture for generating video signal

Also Published As

Publication number Publication date
EP0464962B1 (en) 1996-09-11
EP0466282A3 (en) 1992-05-20
EP0466283A3 (en) 1992-05-27
EP0466281A2 (en) 1992-01-15
EP0466282A2 (en) 1992-01-15
EP0466283B1 (en) 1996-02-14
EP0277832A2 (en) 1988-08-10
EP0466281B1 (en) 1996-02-14
US4999789A (en) 1991-03-12
EP0464963A2 (en) 1992-01-08
EP0466283A2 (en) 1992-01-15
US5363478A (en) 1994-11-08
EP0464962A3 (en) 1992-05-20
DE3855011T2 (de) 1996-06-13
DE3855639D1 (de) 1996-12-05
EP0277832B1 (en) 1994-04-20
DE3855012T2 (de) 1996-06-13
EP0277832A3 (en) 1989-08-09
EP0466281A3 (en) 1992-05-20
DE3855011D1 (de) 1996-03-28
EP0464963A3 (en) 1992-05-20
DE3889134T2 (de) 1994-10-27
DE3889134D1 (de) 1994-05-26
US5353389A (en) 1994-10-04
EP0466282B1 (en) 1998-01-14
DE3856110D1 (de) 1998-02-19
DE3855012D1 (de) 1996-03-28
DE3855541T2 (de) 1997-01-16
US5299302A (en) 1994-03-29
DE3855639T2 (de) 1997-03-13
DE3855541D1 (de) 1996-10-17
EP0464963B1 (en) 1996-10-30
EP0464962A2 (en) 1992-01-08
JPH01201777A (ja) 1989-08-14
US5303386A (en) 1994-04-12

Similar Documents

Publication Publication Date Title
JP2771813B2 (ja) 三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法
US5509110A (en) Method for tree-structured hierarchical occlusion in image generators
US5115402A (en) Scan-conversion process and processor for converting a graphic primitive to a pixel map
US20020027563A1 (en) Image data acquisition optimisation
JPH0362266A (ja) 計算機援助図面作成方法
JP4464657B2 (ja) 曲面画像処理装置及び曲面画像処理方法
US7692652B2 (en) Selectively transforming overlapping illustration artwork
US5835095A (en) Visible line processor
US5243694A (en) Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
US5226115A (en) Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
CN109359224B (zh) 一种材质的数据处理方法、装置、电子设备及存储介质
US6147689A (en) Displaying 2D patches with foldover
KR20050013511A (ko) 숨겨진 라인이 제거된 벡터 이미지를 제공하는 방법
JPH07121699A (ja) 画像処理装置
Buzer Optimal simplification of polygonal chains for subpixel-accurate rendering
JP3706662B2 (ja) 画像処理方法及び装置
JP2002208028A (ja) 多角形のジオメトリクリッピング装置
JPH11144066A (ja) 図形処理装置
JPH05233733A (ja) 直線位置算出方法
JPH1021402A (ja) 画像分割方法及びその装置
JPH03278275A (ja) 編集後図形の再表示方法
JPH08202728A (ja) 画像検索方法及びその装置
JPH08329227A (ja) 対話型図面認識処理方法
JPH08221596A (ja) 曲面内挿方式及び曲面内挿方法
JPH07296042A (ja) Cadシステムのハッチング方法