JPH01201777A - 三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法 - Google Patents
三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法Info
- Publication number
- JPH01201777A JPH01201777A JP63026402A JP2640288A JPH01201777A JP H01201777 A JPH01201777 A JP H01201777A JP 63026402 A JP63026402 A JP 63026402A JP 2640288 A JP2640288 A JP 2640288A JP H01201777 A JPH01201777 A JP H01201777A
- Authority
- JP
- Japan
- Prior art keywords
- trimming
- polygon
- list
- trimming curve
- span
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G1/00—Control 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/06—Control 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(発明の技術分野〕
本発明は、高性能三次元図形処理システムに関する。
典型的な高性能三次元図形処理システムはバッチごとに
関数により規定される表面パッチとなるべき表面を記述
する。このような関数としては、たとえば、不拘−有理
Bスプライン(nonunifor+5rationa
l B−spline )がある、Bスプラインを使用
すると表面パンチの緑がある程度制限される。
関数により規定される表面パッチとなるべき表面を記述
する。このような関数としては、たとえば、不拘−有理
Bスプライン(nonunifor+5rationa
l B−spline )がある、Bスプラインを使用
すると表面パンチの緑がある程度制限される。
生関数がxyz空間の座標の値を計算する。長方形のu
v空間に、より、Bスプライン・パンチ発生関数が、あ
る形状の縁を有する表面パンチを表わすことができる正
確さが制限される。たとえば、その内部に取り除かれた
円形部分を持つ長方形領域であるパンチについて良好な
りスプライン記述を作ることは困難である。長方形領域
あるいは円形部分はいずれもそれ自身は実用的であるが
、それらの組合せはパッチ・レベルでの単一統合(si
ngle unified) Bスプライン記述として
はあまりにも複雑で幼稚である。パッチを細分すれば、
まず第一にパッチを持たせるという目的が阻害される。
v空間に、より、Bスプライン・パンチ発生関数が、あ
る形状の縁を有する表面パンチを表わすことができる正
確さが制限される。たとえば、その内部に取り除かれた
円形部分を持つ長方形領域であるパンチについて良好な
りスプライン記述を作ることは困難である。長方形領域
あるいは円形部分はいずれもそれ自身は実用的であるが
、それらの組合せはパッチ・レベルでの単一統合(si
ngle unified) Bスプライン記述として
はあまりにも複雑で幼稚である。パッチを細分すれば、
まず第一にパッチを持たせるという目的が阻害される。
トリミングは円形部分に対して別の一つを持つ長方形領
域のBスプライン記述を増大し、−方のBスプライン記
述が他方によって規定された表面を「刈り整える」ハイ
ブリッド表面パンチを作る方法である。
域のBスプライン記述を増大し、−方のBスプライン記
述が他方によって規定された表面を「刈り整える」ハイ
ブリッド表面パンチを作る方法である。
従来の技術では、トリミングは装置座標を表示ハードウ
ェアに送る前に図形処理システムのソフトウェアにより
行われていた。このようなトリミングは必然的に非常に
複雑な仕事であり、−最に活動映像または対話式システ
ムに使用するには速さが遅すぎる。
ェアに送る前に図形処理システムのソフトウェアにより
行われていた。このようなトリミングは必然的に非常に
複雑な仕事であり、−最に活動映像または対話式システ
ムに使用するには速さが遅すぎる。
本発明はBスプラインの効用を保持するとともに表面記
述のその技術により得られる利点を活用し、しかも同時
に高速トリミングができる方法を提供することを目的と
する。
述のその技術により得られる利点を活用し、しかも同時
に高速トリミングができる方法を提供することを目的と
する。
本発明の好ましい方法によれば、トリミングはハードウ
ェア図形処理加速器でBスジ94フ表面パッチ記述に関
して行われる。この加速器はトリムしていないパッチの
バッチ発生関数のBスプライン記述と、パッチ発生関数
のUシパラメータ空間におけるトリミング曲線のBスプ
ライン記述とを受取る。トリミング曲線のBスプライン
記述はそれ自身パラメータtの関数である0図形処理加
速器は、XYz空間のその関連多角形がパンチを近似す
るuv空間内の個々の要素スパンの一点一点の表現に加
えて、uv空間内の各トリミング曲線の点表現により充
分密度の濃い点を計算する0図形処理加速器は、トリミ
ング曲線の直線近似線分がどこで要素スパン境界と交差
し、関連多角形の部分を刈込み整理する要素スパンの頂
点を変えるかを求める。加速器はトリムされていない多
角形とこれを切断するトリミング曲線とを表わす頂点表
の連結リストのデータ構造を構築することによりそれを
行う、データ構造のリストの上を適切に動き廻ることに
より装置座標で表わしたトリムずみ多角形の頂点のリス
トが作られる。このリストは更に図形処理加速器の他の
ハードウェアによりピクー セル・レベルにまで処理す
ることができる。
ェア図形処理加速器でBスジ94フ表面パッチ記述に関
して行われる。この加速器はトリムしていないパッチの
バッチ発生関数のBスプライン記述と、パッチ発生関数
のUシパラメータ空間におけるトリミング曲線のBスプ
ライン記述とを受取る。トリミング曲線のBスプライン
記述はそれ自身パラメータtの関数である0図形処理加
速器は、XYz空間のその関連多角形がパンチを近似す
るuv空間内の個々の要素スパンの一点一点の表現に加
えて、uv空間内の各トリミング曲線の点表現により充
分密度の濃い点を計算する0図形処理加速器は、トリミ
ング曲線の直線近似線分がどこで要素スパン境界と交差
し、関連多角形の部分を刈込み整理する要素スパンの頂
点を変えるかを求める。加速器はトリムされていない多
角形とこれを切断するトリミング曲線とを表わす頂点表
の連結リストのデータ構造を構築することによりそれを
行う、データ構造のリストの上を適切に動き廻ることに
より装置座標で表わしたトリムずみ多角形の頂点のリス
トが作られる。このリストは更に図形処理加速器の他の
ハードウェアによりピクー セル・レベルにまで処理す
ることができる。
丸め誤差の害を避けるためかなりな注意を払う。
スパン内のどこにトリミング曲線があるかを記述する機
構によりトリミング動作が処理中の多角形におそら(影
響することがあり得ないトリミング曲線を考えることか
ら解放される。他の機構はトリミング曲線機能の非理想
的パラメータ化の影響を補償し、不必要に数多くの多角
形頂点を発生しないようにする。トリミング方法は数多
くのトリミング曲線を用いてパッチを取扱うパッチの帰
納的細分化とも適合する。
構によりトリミング動作が処理中の多角形におそら(影
響することがあり得ないトリミング曲線を考えることか
ら解放される。他の機構はトリミング曲線機能の非理想
的パラメータ化の影響を補償し、不必要に数多くの多角
形頂点を発生しないようにする。トリミング方法は数多
くのトリミング曲線を用いてパッチを取扱うパッチの帰
納的細分化とも適合する。
三次元表面が図形処理システムの内部で表わすことがで
きるという一つの方法を考えることから始めよう、たと
えば、第1図に描いたもののような(ら形表面lを表わ
そうとすることを考える。
きるという一つの方法を考えることから始めよう、たと
えば、第1図に描いたもののような(ら形表面lを表わ
そうとすることを考える。
これは全表面lをより小さな部分(一般にパンチと呼ぶ
)に分割することにより行われる。この分割したものの
中のパッチ2を図示しである0表面を適宜にくら形1は
どに複雑にするには、非常に多くのパッチが必要になる
であろう、簡単のための一つのパッチ2だけを示すこと
から始める0図形処理システムは表面を適切なパッチに
分割する成る手段を備えていることがわかるであろう、
また、第1図の他の各種曲線は他のパッチを示すためで
はなく、表面1の形状を認める際の補助として示されて
いる。更に、表面lは双曲放物面に似ているが、説明す
る方法は不規則(「自由形態」)表面、特にパラメトリ
ックロスプライン記述から得られるもの、に特に適用で
きる。
)に分割することにより行われる。この分割したものの
中のパッチ2を図示しである0表面を適宜にくら形1は
どに複雑にするには、非常に多くのパッチが必要になる
であろう、簡単のための一つのパッチ2だけを示すこと
から始める0図形処理システムは表面を適切なパッチに
分割する成る手段を備えていることがわかるであろう、
また、第1図の他の各種曲線は他のパッチを示すためで
はなく、表面1の形状を認める際の補助として示されて
いる。更に、表面lは双曲放物面に似ているが、説明す
る方法は不規則(「自由形態」)表面、特にパラメトリ
ックロスプライン記述から得られるもの、に特に適用で
きる。
パッチに関連してパラメータ空間3の部分5がある。こ
の部分をスパンと言う、xyz空間の三次元表面を記述
するには二次元パラメータ空間を採用する。現在の例で
は、二つのパラメータはUとVとであり、それぞれは関
連する最大値と最小値との間で変化することができる0
図に示すように、−組のパラメトリックパッチ発生式4
がパラメータ空間3内の値をXYZ空間に写像してパッ
チ2の上に乗る(X、Y、Z)二数を発生する。
の部分をスパンと言う、xyz空間の三次元表面を記述
するには二次元パラメータ空間を採用する。現在の例で
は、二つのパラメータはUとVとであり、それぞれは関
連する最大値と最小値との間で変化することができる0
図に示すように、−組のパラメトリックパッチ発生式4
がパラメータ空間3内の値をXYZ空間に写像してパッ
チ2の上に乗る(X、Y、Z)二数を発生する。
最新の高性能図形処理システムは、欲しくなる可能性の
ある特定の図とは無関係に、対象の完全な記述を格納す
る。この記述はデータスペースの形を取ることが非常に
多く、特に対象の部分が別々に記述されて、次に参考の
ため、おそら(は何回も展開されるときにそうである0
表面の点を徹底的に集めてデータベースに格納するので
はな(、数値を所望の程度の分解能で発生する近似関数
のように、−層簡潔にまとまった形式の記述を使用する
のが普通である。特定の図が欲しいときは、データベー
ス内の近似関数を評価して最初に見つかった点に対して
平行移動または回転を計算すれば見つかる。Bスプライ
ンはこのような簡潔な表現をパラメトリック関数により
得る技法である。
ある特定の図とは無関係に、対象の完全な記述を格納す
る。この記述はデータスペースの形を取ることが非常に
多く、特に対象の部分が別々に記述されて、次に参考の
ため、おそら(は何回も展開されるときにそうである0
表面の点を徹底的に集めてデータベースに格納するので
はな(、数値を所望の程度の分解能で発生する近似関数
のように、−層簡潔にまとまった形式の記述を使用する
のが普通である。特定の図が欲しいときは、データベー
ス内の近似関数を評価して最初に見つかった点に対して
平行移動または回転を計算すれば見つかる。Bスプライ
ンはこのような簡潔な表現をパラメトリック関数により
得る技法である。
Bスプラインの導入説明でさえ、ここで説明できる範囲
を超えており、読者はこの主題に関する各種参考論文を
参照するのがよい(たとえば、J。
を超えており、読者はこの主題に関する各種参考論文を
参照するのがよい(たとえば、J。
D、FoleyおよびA、Van Da−著の対話式コ
ンピュータ・グラフィックスの基礎(Fundas+e
ntals ofInteractive Cos+p
utsr Graphics) 、1984年、Add
ison−Wesley発行、また1983年9月のI
E21IComputer Graphics and
Application % VOl、3N16の曲
線および表面を表現する有理Bスプラインと題する論文
)、幸いにも、ここではBスプラインとは何であり、こ
れがどういう働きをするかについて深く理解する必要は
ない、所望の固体対象および表面のBスプライン記述を
発生する各種ソフトウェア・パフケージが存在している
。ここで行おうとする要点は、本発明の方法が固体対象
および表面のBスプライン記述と組合せて使用するのに
役立つが、Bスプラインを使用する必要が少しも無いと
いうことである。しかしながら、好ましい方法がBスプ
ラインを利用する図形処理システム内で使用されてきた
ので、方法をその設定で記述するのが最も便利である。
ンピュータ・グラフィックスの基礎(Fundas+e
ntals ofInteractive Cos+p
utsr Graphics) 、1984年、Add
ison−Wesley発行、また1983年9月のI
E21IComputer Graphics and
Application % VOl、3N16の曲
線および表面を表現する有理Bスプラインと題する論文
)、幸いにも、ここではBスプラインとは何であり、こ
れがどういう働きをするかについて深く理解する必要は
ない、所望の固体対象および表面のBスプライン記述を
発生する各種ソフトウェア・パフケージが存在している
。ここで行おうとする要点は、本発明の方法が固体対象
および表面のBスプライン記述と組合せて使用するのに
役立つが、Bスプラインを使用する必要が少しも無いと
いうことである。しかしながら、好ましい方法がBスプ
ラインを利用する図形処理システム内で使用されてきた
ので、方法をその設定で記述するのが最も便利である。
その図形処理システムはヒユーレット・パラカード90
00・320SRX型であり、これは特にBP9872
0A型図形処理加速器を備えている。
00・320SRX型であり、これは特にBP9872
0A型図形処理加速器を備えている。
特に、第1図は当該表面1の各点6をパラメータ空間3
の成る部分5の対応する点7で表わし得ることを示して
いる0図形処理システムのユーザはそのシステムの取扱
説明書に記された規定の方法でそのシステムと対話する
。適切な命令を使用することにより所望の表面を作りあ
げることができる。一般に、表面は複数のパッチで構成
される。
の成る部分5の対応する点7で表わし得ることを示して
いる0図形処理システムのユーザはそのシステムの取扱
説明書に記された規定の方法でそのシステムと対話する
。適切な命令を使用することにより所望の表面を作りあ
げることができる。一般に、表面は複数のパッチで構成
される。
XYZ空間の表面上の各パッチについて、図形処理シス
テムの内部動作によりUおよびVの三つ(または多分四
つ)のパッチ発生関数が発生する。
テムの内部動作によりUおよびVの三つ(または多分四
つ)のパッチ発生関数が発生する。
変数UおよびVはパラメータ空間3に属する0点6のX
座標は(多項式)関数Fx (u、v )を評価するこ
とにより見つかる。対応する関数pyとFzとが点6の
y座標と2座標とを作る。3座標に関する更に一般的な
場合(有理Bスプライン)には次の四つの関数を利用す
る。
座標は(多項式)関数Fx (u、v )を評価するこ
とにより見つかる。対応する関数pyとFzとが点6の
y座標と2座標とを作る。3座標に関する更に一般的な
場合(有理Bスプライン)には次の四つの関数を利用す
る。
x swFx (u、v)/ H(u、v))l −F
y (u+v)/ H(u+v)z =Fz (u、v
)/ H(u、v)この場合に各関数FX% F3’%
およびPzは間数Hで割ることにより有理化されている
。説明する方法は有理または非有理の不拘−Bスプライ
ン表現のいずれにも適合することができる。
y (u+v)/ H(u+v)z =Fz (u、v
)/ H(u、v)この場合に各関数FX% F3’%
およびPzは間数Hで割ることにより有理化されている
。説明する方法は有理または非有理の不拘−Bスプライ
ン表現のいずれにも適合することができる。
概念的には、表面に関するすべてのビクセル値を、変数
UおよびVの充分に密度の濃いカルテシアン積について
Bスプライン・パッチ発生関数を評価することにより、
すなわち、パラメータ空間3の中の充分に密度の濃い点
の集まりを評価することにより計算することができる。
UおよびVの充分に密度の濃いカルテシアン積について
Bスプライン・パッチ発生関数を評価することにより、
すなわち、パラメータ空間3の中の充分に密度の濃い点
の集まりを評価することにより計算することができる。
ただし、実際上は、このような方法は法外な量の実行時
間を必要とするので、−層迅速に、かつ−層容易に行わ
れる計算だけを必要とする人々のために一般に回避され
る。第6図〜第8図に関連して説明しようとする多角形
法はこのような好ましい方法である。
間を必要とするので、−層迅速に、かつ−層容易に行わ
れる計算だけを必要とする人々のために一般に回避され
る。第6図〜第8図に関連して説明しようとする多角形
法はこのような好ましい方法である。
この方法によれば、所定のパッチについてパラメータ空
間で評価された点の集合が、濃淡により補間するとき、
受容可能ななめらかな表面を生ずる多角形の多角形頂点
を生ずるのに丁度充分なだけの濃さになるように選択さ
れる。各多角形にはその値がハードウェアで行う直線補
間で比較的容易に見出される多数のビクセルが入ってい
るので、映像作製時間がかなり短縮される。
間で評価された点の集合が、濃淡により補間するとき、
受容可能ななめらかな表面を生ずる多角形の多角形頂点
を生ずるのに丁度充分なだけの濃さになるように選択さ
れる。各多角形にはその値がハードウェアで行う直線補
間で比較的容易に見出される多数のビクセルが入ってい
るので、映像作製時間がかなり短縮される。
関数4の一つの集合が考慮中の完全な面を全部記述する
ということはありそうもない、その代わり、所望の表面
を小さな領域上で良く近似するBスプライン、バッチ発
生関数の集まりが見つかる。
ということはありそうもない、その代わり、所望の表面
を小さな領域上で良く近似するBスプライン、バッチ発
生関数の集まりが見つかる。
この断片式近似はパラメータ空間をスパンと言う領域に
分割する。断片式近似は実際に表面を対応するパッチに
分割するものである。バッチにするには、その対応する
Bスプライン関数を対応するスパンの範囲にわたり評価
する0表示された対象の所定の分解能(すなわち、多角
形の大きさ)にしたがい、UおよびVを増進させる適切
なステップの大きさを選択する。パラメータUはUmi
nからUmaxまで等しいステップにすることができる
。−方、パラメータVはVainからνwaxまで等し
いステップ(必らずしもUのステップと同じではない)
にすることができる。スパンのこの評価により、表示さ
れるまでに一般に更にかなりな量の処理を受ける「生の
」多角形頂点が作られる。
分割する。断片式近似は実際に表面を対応するパッチに
分割するものである。バッチにするには、その対応する
Bスプライン関数を対応するスパンの範囲にわたり評価
する0表示された対象の所定の分解能(すなわち、多角
形の大きさ)にしたがい、UおよびVを増進させる適切
なステップの大きさを選択する。パラメータUはUmi
nからUmaxまで等しいステップにすることができる
。−方、パラメータVはVainからνwaxまで等し
いステップ(必らずしもUのステップと同じではない)
にすることができる。スパンのこの評価により、表示さ
れるまでに一般に更にかなりな量の処理を受ける「生の
」多角形頂点が作られる。
このように、表示すべき表面はバッチの集まりとして記
述され、その各々が、対応するスパンを備えていること
がわかる。各スパンに関連するのはBスプライン・パン
チ発生関数の特定の集まりである。
述され、その各々が、対応するスパンを備えていること
がわかる。各スパンに関連するのはBスプライン・パン
チ発生関数の特定の集まりである。
先に、適切な命令によりユーザは所望の表面を作り上げ
ることができると述べたことを思い起すこと、たとえば
、穴のおいている平板が所望の対象であると考えよう、
典型的な固体モデル化パッケージを用いてユーザはメニ
エーから、長方形固体のような、適当な原始形状を選択
し、その寸法を指定する0次にユーザは穴の中心の位置
を指定し、板から所定直径の円筒を「差引<」、長方形
板のBスプライン記述を作ることは実際的事柄である。
ることができると述べたことを思い起すこと、たとえば
、穴のおいている平板が所望の対象であると考えよう、
典型的な固体モデル化パッケージを用いてユーザはメニ
エーから、長方形固体のような、適当な原始形状を選択
し、その寸法を指定する0次にユーザは穴の中心の位置
を指定し、板から所定直径の円筒を「差引<」、長方形
板のBスプライン記述を作ることは実際的事柄である。
穴を「キリもみする」ことにより除去する円筒のBスプ
ライン記述を求めることも実際上の事柄である。ただし
、既に穴がおいている板が其自身の特定のBスプライン
記述を持っている原始形状であると考えることは実際的
でない。
ライン記述を求めることも実際上の事柄である。ただし
、既に穴がおいている板が其自身の特定のBスプライン
記述を持っている原始形状であると考えることは実際的
でない。
本発明の方法は実用上のBスプライン記述を持っていな
い複雑平面の問題に対する解答を与える。
い複雑平面の問題に対する解答を与える。
板の穴の縁が丁度XYZ空間にあるときは、uv空間内
に、評価したとき、穴を作るように除去すべき材料の縁
を正確に記述するか厳密に近似する対応点が存在する。
に、評価したとき、穴を作るように除去すべき材料の縁
を正確に記述するか厳密に近似する対応点が存在する。
これらの点はUν空間内のトリミング曲線と呼ぶ曲線に
沿って存在している。トリミング曲線は一つ以上の関数
で表わすことができる。これらの関数は固体モデル化バ
フケージにより見つけることができる。その後で、パッ
チ発生関数を対応スパンについて適格に評価することに
より、「差引かれた1部分を備えたパンチを描くことが
できる。この適性化は、パッチ発生関数の評価中に、手
近にある(u、 v)対がトリミング曲線の内側にあ
るか外側にあるかを確認するという形を取る。適性化に
より、関連する(X、Y、2)二数を表示するか否かに
関する判断が生ずる。
沿って存在している。トリミング曲線は一つ以上の関数
で表わすことができる。これらの関数は固体モデル化バ
フケージにより見つけることができる。その後で、パッ
チ発生関数を対応スパンについて適格に評価することに
より、「差引かれた1部分を備えたパンチを描くことが
できる。この適性化は、パッチ発生関数の評価中に、手
近にある(u、 v)対がトリミング曲線の内側にあ
るか外側にあるかを確認するという形を取る。適性化に
より、関連する(X、Y、2)二数を表示するか否かに
関する判断が生ずる。
二数を表示することになれば、事は先述のとうりに進行
する。しかし、その(u、v)対の評価により発生する
多角形頂点が、差引(べき領域内に存在することになれ
ば、二数を表示することができず、現存する多角形構造
を修正しなければならない。
する。しかし、その(u、v)対の評価により発生する
多角形頂点が、差引(べき領域内に存在することになれ
ば、二数を表示することができず、現存する多角形構造
を修正しなければならない。
第2図はバッチ2から差引くべき領域9のXYZ空間に
おける境界を記述するトリミング曲線8の使用法を示す
、トリミング曲線8は、パラメータ空間3のスパン5で
規定される。好ましい方法2ε。
おける境界を記述するトリミング曲線8の使用法を示す
、トリミング曲線8は、パラメータ空間3のスパン5で
規定される。好ましい方法2ε。
でトリミング曲線8はそれ自身Bスプラインで規定する
ことができる。パラメータtの一対のパラメトリック式
9はuv空間の2次元トリミング曲線を規定することが
できる。バッチ発生関数を作ってからは、トリミング曲
線関数9は有理または非有理の不拘−Bスプラインのい
ずれであってもよい。
ことができる。パラメータtの一対のパラメトリック式
9はuv空間の2次元トリミング曲線を規定することが
できる。バッチ発生関数を作ってからは、トリミング曲
線関数9は有理または非有理の不拘−Bスプラインのい
ずれであってもよい。
表面が丁度バッチとそれらに関連する別のバッチ発生関
数の集合である場合には、トリミング曲線は一般に線分
と呼ばれる要素部分から断片的に組立てられなければな
らなむ1各線分にはそれ自身の特定のトリミング曲線関
数9がある。
数の集合である場合には、トリミング曲線は一般に線分
と呼ばれる要素部分から断片的に組立てられなければな
らなむ1各線分にはそれ自身の特定のトリミング曲線関
数9がある。
この状態を第2図のトリミング曲線8について第3図に
描いである。そのトリミング曲線は多数の線分Stから
Shに分かれている。各線分にはt空間10の対応する
スパンにわたり規定されているそれ自身の関数があるこ
とに注意すること。
描いである。そのトリミング曲線は多数の線分Stから
Shに分かれている。各線分にはt空間10の対応する
スパンにわたり規定されているそれ自身の関数があるこ
とに注意すること。
第4図はトリミング曲線の応用の一般化を示す。
示したのは第2図および第3図に描いた状況と同じであ
るが、トリミング曲線11が今回はuv空間のいくつか
のスパン12〜15を横切っていることが異なる。この
状況は、運悪く、表面1から差引くべき部分9が対応す
る四つのパンチ16〜19を占めているために生ずる。
るが、トリミング曲線11が今回はuv空間のいくつか
のスパン12〜15を横切っていることが異なる。この
状況は、運悪く、表面1から差引くべき部分9が対応す
る四つのパンチ16〜19を占めているために生ずる。
トリミング曲線11の線分境界は第4図のその曲線上に
示しである。一般に、線分S、からS、までの間の境界
はトリミング曲線11に沿うどこかに落ちることに注意
する。特に、スパン12〜150間の境界に特別な関係
を持たせる必要はない。
示しである。一般に、線分S、からS、までの間の境界
はトリミング曲線11に沿うどこかに落ちることに注意
する。特に、スパン12〜150間の境界に特別な関係
を持たせる必要はない。
第5図は第4図の線分化したトリミング曲&111の断
片式表現を示す、1分ごとに別のパラメトリック式を使
用すること、およびこれらの式の各集合はt空間20の
中のそれ自身の関連スパンにわたり規定されていること
に注意。
片式表現を示す、1分ごとに別のパラメトリック式を使
用すること、およびこれらの式の各集合はt空間20の
中のそれ自身の関連スパンにわたり規定されていること
に注意。
第1図およびバッチ発生関数の説明中に、多角形の概念
を手短かに導入した。今度は第6図から始めて、この話
題に戻り、多角形を用いて表面を表わす技法にトリミン
グがおよぼす効果について一層詳しく検討する。
を手短かに導入した。今度は第6図から始めて、この話
題に戻り、多角形を用いて表面を表わす技法にトリミン
グがおよぼす効果について一層詳しく検討する。
第6図は、太い矢印にしたがって、4個のパンチ16〜
19に写像される4個のスパン12〜15を示す。
19に写像される4個のスパン12〜15を示す。
各スパンをトリミング曲&illが横断するが、その目
的は結果的に得られる表面の刈り込まれた(あるいは「
差引かれたJ ) M域9を画定することである。現在
のところ第6図での我々の関心は(刈り込まれていない
)多角形の発生にある。トリミング曲線11がそれら多
角形に及ぼす影響をこの図および第6図に伴う本文から
始めて考案することにする。
的は結果的に得られる表面の刈り込まれた(あるいは「
差引かれたJ ) M域9を画定することである。現在
のところ第6図での我々の関心は(刈り込まれていない
)多角形の発生にある。トリミング曲線11がそれら多
角形に及ぼす影響をこの図および第6図に伴う本文から
始めて考案することにする。
バッチを発生するプロセスは一度に1バラF行われる。
したがってスパンは一度に一つ評価され、各スパンは一
つの対応するバッチを発生する。スパンの評価にはUお
よびVに対するステップの大きさを求めることが含まれ
る。これらステップの大きさは駄およびVに対して必ず
しも同じではなく、各々は次のスパンの評価が始まると
再び求められる。すなわち、スパン13に対するステッ
プの大きさΔu1とΔV!とは互いに等しい必要はない
し、スパンに対するステップの大きさΔujおよびΔV
jとの間に何らかの関係がある必要もない、特に、簡単
のため、図では 等しいように描いてあったとしても、
Δuiが Δ咳、あるいはΔhと等しくなければならな
いという条件はない、おなしことは各ΔVにも適用され
る。
つの対応するバッチを発生する。スパンの評価にはUお
よびVに対するステップの大きさを求めることが含まれ
る。これらステップの大きさは駄およびVに対して必ず
しも同じではなく、各々は次のスパンの評価が始まると
再び求められる。すなわち、スパン13に対するステッ
プの大きさΔu1とΔV!とは互いに等しい必要はない
し、スパンに対するステップの大きさΔujおよびΔV
jとの間に何らかの関係がある必要もない、特に、簡単
のため、図では 等しいように描いてあったとしても、
Δuiが Δ咳、あるいはΔhと等しくなければならな
いという条件はない、おなしことは各ΔVにも適用され
る。
図形処理システムのユーザはステップの大きさを少なく
とも間接的に制御することになる。成る方が可能性が多
い、たとえば、ユーザは図形処理システムに、結果的に
得られる多角形の縁がほぼ特定数のピクセルを備えてい
るようにステップの大きさを選ぶように指示することが
できる。一般に、ステップの大きさはスパンごとに新し
く再決定することができることに留意すること。
とも間接的に制御することになる。成る方が可能性が多
い、たとえば、ユーザは図形処理システムに、結果的に
得られる多角形の縁がほぼ特定数のピクセルを備えてい
るようにステップの大きさを選ぶように指示することが
できる。一般に、ステップの大きさはスパンごとに新し
く再決定することができることに留意すること。
スパンに対してステップの大きさを選択するとそのスパ
ン内部の(u、v)対の集まりが決まる。
ン内部の(u、v)対の集まりが決まる。
これをスパン12〜15の中の点線で表わしである。
点線同志の交点、および点線と、スパンの境界を表わす
実線との交点はパンチ発生関数が評価される点である。
実線との交点はパンチ発生関数が評価される点である。
たとえば、点21〜23でパッチ発生関数を評価すると
多角形頂点24〜26が生ずる。
多角形頂点24〜26が生ずる。
第6図から離れる前に注意する事項が更に二つある。第
1に、パンチ16〜19の多角形の隣り合う縁は直線線
分である0図でこのことを示す試みが行われてきた。対
照的に、パッチの境界と、トリムされた領域9の縁とは
はるかに滑らかに現れてでいる。これらも直vA腺分に
することができるが、かなり短い直線線分となる。すな
わち、パッチ内のこれらの線を作るのに評価されたuv
空間にはも9と多数の点が存在する。実質的に、余分な
点を゛ スパン評価プロセスに滑り込ませる機構が存
在する。この微分密度という概念についてはこの後の話
題の中で更に説明することにする。第2に、パッチ発生
関数をuv空間内の点で評価する上述のプロセスは、最
終的に刈り取られてしまうことになるものをも含めて、
スパンのあらゆる部分で点を評価する。トリミングはか
なり複雑なプロセスであり、可能な状況の幾つかを分析
しなければならない、たとえば、所定の頂点は、トリミ
ングによって全体的に影響されない多角形に、そっくり
そのまま刈り取られることになる多角形に、あるいは、
トリミング曲線と交差する多角形に属する。
1に、パンチ16〜19の多角形の隣り合う縁は直線線
分である0図でこのことを示す試みが行われてきた。対
照的に、パッチの境界と、トリムされた領域9の縁とは
はるかに滑らかに現れてでいる。これらも直vA腺分に
することができるが、かなり短い直線線分となる。すな
わち、パッチ内のこれらの線を作るのに評価されたuv
空間にはも9と多数の点が存在する。実質的に、余分な
点を゛ スパン評価プロセスに滑り込ませる機構が存
在する。この微分密度という概念についてはこの後の話
題の中で更に説明することにする。第2に、パッチ発生
関数をuv空間内の点で評価する上述のプロセスは、最
終的に刈り取られてしまうことになるものをも含めて、
スパンのあらゆる部分で点を評価する。トリミングはか
なり複雑なプロセスであり、可能な状況の幾つかを分析
しなければならない、たとえば、所定の頂点は、トリミ
ングによって全体的に影響されない多角形に、そっくり
そのまま刈り取られることになる多角形に、あるいは、
トリミング曲線と交差する多角形に属する。
この後者の場合に、多角形の一部は残り、一部は残らな
い、このため多角形の形状を変えてトリミング曲線に合
わせる必要がある。このため今度はその多角形の新しい
頂点、すなわち第6図に示すUおよびVのステップでス
パンを評価して発生されなかったものを見つけることが
必要となる。
い、このため多角形の形状を変えてトリミング曲線に合
わせる必要がある。このため今度はその多角形の新しい
頂点、すなわち第6図に示すUおよびVのステップでス
パンを評価して発生されなかったものを見つけることが
必要となる。
今度は第7図を参照する。示したのは第6図の一部を拡
大したものである。特に、写像したトリミング曲線27
の一部とともにパッチ16および17の部分を描いであ
る。「写像した」トリミング曲線とはパンチ発生関数に
よりパッチに写像されたトリミング曲線11を意味する
。
大したものである。特に、写像したトリミング曲線27
の一部とともにパッチ16および17の部分を描いであ
る。「写像した」トリミング曲線とはパンチ発生関数に
よりパッチに写像されたトリミング曲線11を意味する
。
パッチ境界に沿う2種類の多角形頂点を第7図に示しで
ある。中空の円は、a)第6図の点線とスパン境界との
交点の、およびb)点線同志の交点の、パッチへの写像
に対応する。黒塗り円はスパン境界に沿う別の(u、v
)対を評価することにより加えられる「余分の」頂点に
対応する。この余分な点はΔUの各ステップを等しい要
素部分室 に分割−る、ΔVのステップは同様に分割される。ユー
ザがこれら余分の頂点を加えるプロセスを成る程度管理
するのが普通である。
ある。中空の円は、a)第6図の点線とスパン境界との
交点の、およびb)点線同志の交点の、パッチへの写像
に対応する。黒塗り円はスパン境界に沿う別の(u、v
)対を評価することにより加えられる「余分の」頂点に
対応する。この余分な点はΔUの各ステップを等しい要
素部分室 に分割−る、ΔVのステップは同様に分割される。ユー
ザがこれら余分の頂点を加えるプロセスを成る程度管理
するのが普通である。
第7図ば写像されたトリミング曲線27に沿う多角形頂
点をも示している0図を検討することにより、トリミン
グ・プロセスの一部として多数の良好な余分の頂点が多
角形に加えられていることが明らかである。これに関し
て言うべきことが多(あり、今度は第8図に戻ると、写
像されたトリミング曲線27のパッチ17に関する部分
を更に拡大覆し 翼たちのが示されている。
点をも示している0図を検討することにより、トリミン
グ・プロセスの一部として多数の良好な余分の頂点が多
角形に加えられていることが明らかである。これに関し
て言うべきことが多(あり、今度は第8図に戻ると、写
像されたトリミング曲線27のパッチ17に関する部分
を更に拡大覆し 翼たちのが示されている。
第8図に関しては重要な二つの基本的課題がある。第1
は黒(塗りつぶした正方形がどこから来るかということ
である。これらは写像されたトリミング曲線27が交差
する多角形の多角形頂点として取られる、写像されたト
リミング曲線27に沿う点である。トリミング曲線11
は線分から構成されているということが想定されよう(
第5図を参照)。
は黒(塗りつぶした正方形がどこから来るかということ
である。これらは写像されたトリミング曲線27が交差
する多角形の多角形頂点として取られる、写像されたト
リミング曲線27に沿う点である。トリミング曲線11
は線分から構成されているということが想定されよう(
第5図を参照)。
第8図のか伊瞳・この例の基礎として役立つ第5図の特
定のトリミング曲線11について、線分S、からS、は
パッチ17をトリムするものである。
定のトリミング曲線11について、線分S、からS、は
パッチ17をトリムするものである。
線分S6からS、までは(その、あるいは任意の他の、
トリミング曲線の他のすべての線分と同様)、線分ごと
に、uv空間で、中空の円に対応するスパン境界に沿う
点とその最も近い、第7図のパッチ境界上で隣接する黒
く塗りつぶした円との間の距離に各々がほぼ等しいUと
Vとのステップを理想的に発生するΔtを見つけること
によって評価される。Δtを選定するこの仕事はパンチ
境界に対する余分な頂点に関連して行われるユーザの選
択二 に影響される。実際には(理想的な場合とは対象)、ト
リミング曲線11を評価すれば、上述のように、役に立
つにはあまりに互いに密接しすぎて配置された多数の(
u、v)対が発生する。更に洗練するにはパラメトリッ
ク関数(手近の例ではこれらはFu&とFVh% F、
tとFvt、FBIとF we)を評価することにより
発生する対を検討し、それらの先行者から光分離れてい
ない対を削除する。第8図の黒く塗りつぶした正方形は
(第7図のものも)これら洗練された(u、v)対でパ
ッチ発生関数を評価することにより得られたものである
。
トリミング曲線の他のすべての線分と同様)、線分ごと
に、uv空間で、中空の円に対応するスパン境界に沿う
点とその最も近い、第7図のパッチ境界上で隣接する黒
く塗りつぶした円との間の距離に各々がほぼ等しいUと
Vとのステップを理想的に発生するΔtを見つけること
によって評価される。Δtを選定するこの仕事はパンチ
境界に対する余分な頂点に関連して行われるユーザの選
択二 に影響される。実際には(理想的な場合とは対象)、ト
リミング曲線11を評価すれば、上述のように、役に立
つにはあまりに互いに密接しすぎて配置された多数の(
u、v)対が発生する。更に洗練するにはパラメトリッ
ク関数(手近の例ではこれらはFu&とFVh% F、
tとFvt、FBIとF we)を評価することにより
発生する対を検討し、それらの先行者から光分離れてい
ない対を削除する。第8図の黒く塗りつぶした正方形は
(第7図のものも)これら洗練された(u、v)対でパ
ッチ発生関数を評価することにより得られたものである
。
第8図で重要な第2の事柄は中空の正方形である。これ
らは写像されたトリミング曲線27と多角形の縁との交
点を表わしている。XYZ空間で交点を探すよりは、交
点の対応する点をuv空間で探し、XYZ空間に写像す
る。特に、探すのはuv空間の二つの直線線分の交点で
ある。直線線分の一つはトリミング曲線11に沿う二つ
の連続する洗練された(u、 v)対の間にある。他
の直線線分は第6図の点線またはスパン境界の一部(た
とえば、第6図の28または29)である。
らは写像されたトリミング曲線27と多角形の縁との交
点を表わしている。XYZ空間で交点を探すよりは、交
点の対応する点をuv空間で探し、XYZ空間に写像す
る。特に、探すのはuv空間の二つの直線線分の交点で
ある。直線線分の一つはトリミング曲線11に沿う二つ
の連続する洗練された(u、 v)対の間にある。他
の直線線分は第6図の点線またはスパン境界の一部(た
とえば、第6図の28または29)である。
第8図を離れる前に、多角形の部分を示す点線、および
トリミング・プロセスで見えな(なる多角形全体などは
表示してないことを注意しておく。
トリミング・プロセスで見えな(なる多角形全体などは
表示してないことを注意しておく。
今度は第9図に目を転する。この図は高性能図形処理シ
ステムのハードウェア装置の変換エンジン部が実行する
活動の簡略疑似コードで説明したものである。このハー
ドウェア装置はこの明細書およびその図の後の部分に現
われる説明の主題を成すものである。上述の動作は第8
図に示したように主として多角形のトリミングである。
ステムのハードウェア装置の変換エンジン部が実行する
活動の簡略疑似コードで説明したものである。このハー
ドウェア装置はこの明細書およびその図の後の部分に現
われる説明の主題を成すものである。上述の動作は第8
図に示したように主として多角形のトリミングである。
第9図は第8図と関連して記述した形式のトリミングを
実行する圧縮した街路地図として理解することができる
。
実行する圧縮した街路地図として理解することができる
。
好ましい方法では図形処理システムは、その各々をいろ
いろにトリムすることができる、い(つかのBスズ54
フ表面を表示することができる。
いろにトリムすることができる、い(つかのBスズ54
フ表面を表示することができる。
各表面は一般に複数のパンチから構成されることになる
。トリミング動作は各バッチ内の多角形処理のレベルで
発生する。したがって、第9図の(ステップ15と16
とに関連する)ステップ1と2とはステップ3〜14に
関連して説明するプロセスをすべての表面の各パッチに
適用する。ステップ2は図形処理システムと関連するコ
ンピュータにより実行されるソフトウェアで実施される
。とりわけ、ステップ2は、表面をパッチに分割し、表
現すべきパッチを選択し、関連スパンに対してυwin
sυ−aXs V−insおよびVmaxを計算し、ど
のトリミング曲線のどの線分がパッチをトリムするのに
必要かを決定する。ステップ3〜14は図形処理システ
ムのハードウェア内の多角形表現機構により表示するこ
とができる、トリムされた多角形頂点を発生する。
。トリミング動作は各バッチ内の多角形処理のレベルで
発生する。したがって、第9図の(ステップ15と16
とに関連する)ステップ1と2とはステップ3〜14に
関連して説明するプロセスをすべての表面の各パッチに
適用する。ステップ2は図形処理システムと関連するコ
ンピュータにより実行されるソフトウェアで実施される
。とりわけ、ステップ2は、表面をパッチに分割し、表
現すべきパッチを選択し、関連スパンに対してυwin
sυ−aXs V−insおよびVmaxを計算し、ど
のトリミング曲線のどの線分がパッチをトリムするのに
必要かを決定する。ステップ3〜14は図形処理システ
ムのハードウェア内の多角形表現機構により表示するこ
とができる、トリムされた多角形頂点を発生する。
今度はステップ3から14までのFORループの範囲内
の動作を考察する。この動作は主として各種多角形の発
生(ステップ3および14により示した)とそれに続き
(かつ即座に)おこなわれるトリミング(ステップ4か
ら13までに示した)とを含んでいる。
の動作を考察する。この動作は主として各種多角形の発
生(ステップ3および14により示した)とそれに続き
(かつ即座に)おこなわれるトリミング(ステップ4か
ら13までに示した)とを含んでいる。
パッチ内の多角形発生の一般的順序を第1θ図の例題ス
パン30により示す、そのスパンは、この例では、発生
すべき、トリムされていない各多角形について一つづつ
、16個の要素スパンに区切られている。各要素スパン
の大きさは表面の所定の視覚的なめらかさに関するユー
ザの指示によって決まる。好ましい方法では多角形は前
進差分法Uorward diHerencing)と
呼ばれる技法によって作られるが、この方法では各要素
スパンの境界のU値およびV値を明白に計算する必要が
、ない。
パン30により示す、そのスパンは、この例では、発生
すべき、トリムされていない各多角形について一つづつ
、16個の要素スパンに区切られている。各要素スパン
の大きさは表面の所定の視覚的なめらかさに関するユー
ザの指示によって決まる。好ましい方法では多角形は前
進差分法Uorward diHerencing)と
呼ばれる技法によって作られるが、この方法では各要素
スパンの境界のU値およびV値を明白に計算する必要が
、ない。
前進差分法は要素スパンの各隅角でパッチ発生関数を評
価するより速いので望ましい方法である。
価するより速いので望ましい方法である。
前進差分法の説明についてはFoleyとVan Da
−の535〜536ページを参照のこと。
−の535〜536ページを参照のこと。
トリミング動作の追求は、発生しつつある多角形の要素
スパンに対応するクリップ限界を利用しなければならな
い0例のとうり、「クリップ限界」という言葉は当該の
窓を言う、窓の中の対象は保持されるが、窓の外の対象
は捨てられる。こ\で記述されるトリミングにとって重
要となるクリップ限界は発生する多角形に関連するuV
室空間要素スパン境界である。
スパンに対応するクリップ限界を利用しなければならな
い0例のとうり、「クリップ限界」という言葉は当該の
窓を言う、窓の中の対象は保持されるが、窓の外の対象
は捨てられる。こ\で記述されるトリミングにとって重
要となるクリップ限界は発生する多角形に関連するuV
室空間要素スパン境界である。
残念ながら、上に注記したとうり前進差分法によりxY
z空間で多角形頂点を計算する動作からは要素スパンの
境界であるU値およびV値を明白には得られない、上に
注記したクリップ限界を使用しようとする場合には、こ
れを別に探さなければならない、ステップ4は現在作ら
れトリムされている多角形のクリップ限界(uv空間で
)を計算する。第9A図にはクリップ限界uLifいu
、□jht sV、。2、およびV、。1、。、を備え
た要素スパン35が描かれている。たとえば、要素スパ
ン35は第10図の要素スパン#6に対応することがで
き、u L*t*は値31となり、U、□、は値32と
なり、v topは値34となり、■、。い。、は値3
3になる。
z空間で多角形頂点を計算する動作からは要素スパンの
境界であるU値およびV値を明白には得られない、上に
注記したクリップ限界を使用しようとする場合には、こ
れを別に探さなければならない、ステップ4は現在作ら
れトリムされている多角形のクリップ限界(uv空間で
)を計算する。第9A図にはクリップ限界uLifいu
、□jht sV、。2、およびV、。1、。、を備え
た要素スパン35が描かれている。たとえば、要素スパ
ン35は第10図の要素スパン#6に対応することがで
き、u L*t*は値31となり、U、□、は値32と
なり、v topは値34となり、■、。い。、は値3
3になる。
第10図を参照して、各種要素スパンのクリップ限界を
みつけるにはU軸およびV軸を区切るUの値31.32
・・・とVの値33.34、・・・とを求めなければな
らないことに注意する。好ましい実施例では、これらの
値は32ビツトの浮動小数点2進数である。
みつけるにはU軸およびV軸を区切るUの値31.32
・・・とVの値33.34、・・・とを求めなければな
らないことに注意する。好ましい実施例では、これらの
値は32ビツトの浮動小数点2進数である。
所定の要素スパンの四つの隅角を独立に見つける手順を
想像することができる。このような手順は、どの要素ス
パンに現在関心があるかにはかかわりなく、同じ(U、
V)対(すなわち、そのビット・パターンが同一である
)が割当てられた隅角に対して常に得られる(すなわち
、U値31とV値33とが第10図の要素スパン1.2
.5および6に対する共通隅角を記述する)ことを絶対
的に保証することができなければ回避される。独立に選
定した要素スパンに対してこのような保証を行うよりは
、好ましい方法は、次に説明するが、当該の成る上値を
記憶することにより、共通隅角が同じU値および同じV
値を確実に備えるようにしながら、多才 角形を別々の時刻に発生ぼることができる。
想像することができる。このような手順は、どの要素ス
パンに現在関心があるかにはかかわりなく、同じ(U、
V)対(すなわち、そのビット・パターンが同一である
)が割当てられた隅角に対して常に得られる(すなわち
、U値31とV値33とが第10図の要素スパン1.2
.5および6に対する共通隅角を記述する)ことを絶対
的に保証することができなければ回避される。独立に選
定した要素スパンに対してこのような保証を行うよりは
、好ましい方法は、次に説明するが、当該の成る上値を
記憶することにより、共通隅角が同じU値および同じV
値を確実に備えるようにしながら、多才 角形を別々の時刻に発生ぼることができる。
第1θ図に示すように、多角形発生の順序は行の中の左
から右へから、次に行方向に下から上へである。ステッ
プの大きさの値(△UとΔV)は前述のように見つかる
0行を(たとえば、要素スパン2から要素スパン3へ)
横断しながら、要素スパン2のu righ&が記憶さ
れ要素スパン3のuLef&として再使用される0行の
始めにスパンのu、1.が(正確に) uLef&とし
て取られる0行に沿って新しいU□mk11がΔUをu
rA□、の古い値に加えることにより見つかる0行の終
りにスパンのU□8を(正確に) ur1wh&として
取る。Bスプライン発生ソフトウェアが表面をパッチに
分割すると値us!aとU、□とが生ずる(第1図を参
照)。
から右へから、次に行方向に下から上へである。ステッ
プの大きさの値(△UとΔV)は前述のように見つかる
0行を(たとえば、要素スパン2から要素スパン3へ)
横断しながら、要素スパン2のu righ&が記憶さ
れ要素スパン3のuLef&として再使用される0行の
始めにスパンのu、1.が(正確に) uLef&とし
て取られる0行に沿って新しいU□mk11がΔUをu
rA□、の古い値に加えることにより見つかる0行の終
りにスパンのU□8を(正確に) ur1wh&として
取る。Bスプライン発生ソフトウェアが表面をパッチに
分割すると値us!aとU、□とが生ずる(第1図を参
照)。
最初の行を始めるとu、ifiが(正確に)vb@L%
Lhmとして取られるe vt@11の値はΔVをV、
。1.。、に加えることにより見つかる。その後、新し
い行の始めにV、。、の古い値が格納され、新しいV&
6tl。、として再使用される。新しいV。。
Lhmとして取られるe vt@11の値はΔVをV、
。1.。、に加えることにより見つかる。その後、新し
い行の始めにV、。、の古い値が格納され、新しいV&
6tl。、として再使用される。新しいV。。
はΔVをv topの古い値に加えれば見つかる。要素
スパンの最上行を行うとV、□が(正確に)■、。、と
して取られる。
スパンの最上行を行うとV、□が(正確に)■、。、と
して取られる。
第9A図の(ステップ10と関連する)ステップ5は第
11図を参照すれば更に良(理解することができる。こ
の図は多数の関連トリミング曲線37〜40が交差して
いるスパン36を示している。トリミング曲線は一般に
分割されたBスプラインとして定義されることを想起す
ること、特定のパッチをトリミングする際にどんな処置
を取るべきかを考察するときは、関連スパンの内側にあ
るトリミング曲線線分を考えなければならない。第9図
のステップ2と関連して言われていることにしたがい、
図形処理システムのソフトウェアの機構がトリミング曲
線の線分の一つ以上リストを各スパンと関連づける。た
とえば、第11図のスパン36のパッチを表現しようと
する場合には、トリミング曲線線分の四つのリスト(す
なわち、該線分のBスプライン記述)、特定のパッチ発
生関数、スパンの定義、の他に成る他のスタッフを第9
図のステップ3〜14を実行する機構に送ることになる
。現在の例におけるトリミング曲線の四つのリストの中
で、トリミング曲線37と38とに関連する二つは「閉
じた」トリミング曲線を記述するものとしてマークが付
けられ、トリミング曲線39と40とに対する二つのリ
ストは「開いた」ものとしてマークが付けられる。これ
により意味することはトリミング曲137と38とのリ
ストはそれ自身で閉じる完成曲線を記述するということ
である。ただし、トリミング曲線39と40との部分は
スパン36を表現することによって生じたパッチのトリ
ミングに影響を及ぼさないので捨てることができる。(
ただし、を舎てられる部分は成る他のパッチを表現する
とき必要になることがあり、その別のパッチのスパンを
伴うリストに現われる。)開いたトリミング曲線はその
関連スパンの外側で始まり、終わらなければならない、
好ましい方法では開いたトリミング曲線のリストに入れ
るべきトリミング曲線線分の数は増加して、丸め誤差に
より入って来る可能性のある不確かさあるいは誤差の他
に、「明確に」スパンの内側にあるかまたは「明確に」
スパンの外側にある始まり線分または終わり線分が入る
ことになる。これは、たとえば、スパンが、点線41で
示したように、実際よりたとえば5パーセント大きいと
考えれば達成される。
11図を参照すれば更に良(理解することができる。こ
の図は多数の関連トリミング曲線37〜40が交差して
いるスパン36を示している。トリミング曲線は一般に
分割されたBスプラインとして定義されることを想起す
ること、特定のパッチをトリミングする際にどんな処置
を取るべきかを考察するときは、関連スパンの内側にあ
るトリミング曲線線分を考えなければならない。第9図
のステップ2と関連して言われていることにしたがい、
図形処理システムのソフトウェアの機構がトリミング曲
線の線分の一つ以上リストを各スパンと関連づける。た
とえば、第11図のスパン36のパッチを表現しようと
する場合には、トリミング曲線線分の四つのリスト(す
なわち、該線分のBスプライン記述)、特定のパッチ発
生関数、スパンの定義、の他に成る他のスタッフを第9
図のステップ3〜14を実行する機構に送ることになる
。現在の例におけるトリミング曲線の四つのリストの中
で、トリミング曲線37と38とに関連する二つは「閉
じた」トリミング曲線を記述するものとしてマークが付
けられ、トリミング曲線39と40とに対する二つのリ
ストは「開いた」ものとしてマークが付けられる。これ
により意味することはトリミング曲137と38とのリ
ストはそれ自身で閉じる完成曲線を記述するということ
である。ただし、トリミング曲線39と40との部分は
スパン36を表現することによって生じたパッチのトリ
ミングに影響を及ぼさないので捨てることができる。(
ただし、を舎てられる部分は成る他のパッチを表現する
とき必要になることがあり、その別のパッチのスパンを
伴うリストに現われる。)開いたトリミング曲線はその
関連スパンの外側で始まり、終わらなければならない、
好ましい方法では開いたトリミング曲線のリストに入れ
るべきトリミング曲線線分の数は増加して、丸め誤差に
より入って来る可能性のある不確かさあるいは誤差の他
に、「明確に」スパンの内側にあるかまたは「明確に」
スパンの外側にある始まり線分または終わり線分が入る
ことになる。これは、たとえば、スパンが、点線41で
示したように、実際よりたとえば5パーセント大きいと
考えれば達成される。
今度は第9図のステップ6に進むと、これは(ステップ
9と関連して)トリミング曲線に沿う直線線分の概念に
関する。トリミングの仕事は各トリミング曲線に沿う多
数の点を見出すことを含むように進んでいる。たとえば
第8図を想起すること、写像されたトリミング曲NlA
27に沿う中空の正方形および塗りつぶした正方形はす
べてトリミング・プロセスの一部として(局部的には、
そのまま)見つからなければならない、特に、第9図の
ステップ6の「直線線分」は第8図の塗りつぶした正方
形の間の直線に対応する。ステップ6WI暗に含まれて
いるのは、パッチ発生関数4で評価するとき、塗りつぶ
した正方形を発生する(u。
9と関連して)トリミング曲線に沿う直線線分の概念に
関する。トリミングの仕事は各トリミング曲線に沿う多
数の点を見出すことを含むように進んでいる。たとえば
第8図を想起すること、写像されたトリミング曲NlA
27に沿う中空の正方形および塗りつぶした正方形はす
べてトリミング・プロセスの一部として(局部的には、
そのまま)見つからなければならない、特に、第9図の
ステップ6の「直線線分」は第8図の塗りつぶした正方
形の間の直線に対応する。ステップ6WI暗に含まれて
いるのは、パッチ発生関数4で評価するとき、塗りつぶ
した正方形を発生する(u。
■)対を見つけることである。これは丁度今考察中の(
u、v)対を見つけることである。
u、v)対を見つけることである。
第8図の写像されたトリミング曲線27は第5図にしめ
ずトリミング曲線の線分S、からS、までに対応すると
いうことを想起することができる。
ずトリミング曲線の線分S、からS、までに対応すると
いうことを想起することができる。
また同じトリミング曲線が第6図のUν空間で示されて
いることを想起すること。現在探している(u、v)対
は第6図に示したのと同じuv空間に属している。多角
形の発生のしかたの説明に関連して第6図を最後に使用
した。ここでは同様な動作が(u、 v)対の別の集
まりを発生させて各トリミング曲線の各Bスプライン線
分の直線線分近似を作り上げようとしている。
いることを想起すること。現在探している(u、v)対
は第6図に示したのと同じuv空間に属している。多角
形の発生のしかたの説明に関連して第6図を最後に使用
した。ここでは同様な動作が(u、 v)対の別の集
まりを発生させて各トリミング曲線の各Bスプライン線
分の直線線分近似を作り上げようとしている。
求めたいのは、その間隔が多角形発生のスパン境界に加
えられた余分の頂点とはほぼ同じトリミング曲線に沿う
(u、v)対である。すなわち、トリミング曲線に沿う
Uのステップは余分な頂点の間のUの距離より、もはや
太き(ないようにすべきである、余分な頂点が存在しな
ければ、最大距離を隅の頂点の間の距離とすべきである
。同じ要求条件はトリミング曲線に沿うVのステップに
適用される。この(u、v)対の集まりは、他の、たと
えば、多角形発生に使用されたものとは異なる点な別の
集まりである。トリミング曲線に沿うステップは第8図
の塗りつぶした正方形に対応する。これらは第8図の中
空の正方形に対応する別の(u、v)対を求めるのに使
用される。今度はトリミング曲線に沿う最初のステップ
の見つけ方を説明する。
えられた余分の頂点とはほぼ同じトリミング曲線に沿う
(u、v)対である。すなわち、トリミング曲線に沿う
Uのステップは余分な頂点の間のUの距離より、もはや
太き(ないようにすべきである、余分な頂点が存在しな
ければ、最大距離を隅の頂点の間の距離とすべきである
。同じ要求条件はトリミング曲線に沿うVのステップに
適用される。この(u、v)対の集まりは、他の、たと
えば、多角形発生に使用されたものとは異なる点な別の
集まりである。トリミング曲線に沿うステップは第8図
の塗りつぶした正方形に対応する。これらは第8図の中
空の正方形に対応する別の(u、v)対を求めるのに使
用される。今度はトリミング曲線に沿う最初のステップ
の見つけ方を説明する。
トリミング曲線はその独立変数としてtを有するパラメ
ータ方程式により記述されることを想起すること、Uお
よびVのステップの大きさをどの位にしたいかを知るこ
とが直ちにトリミング曲線関数を実際に評価するtのス
テップの大きさを意味するものではない。更に、前進差
分法の技法を、パンチ評価関数について説明したと丁度
同じように、トリミング曲線関数を評価するのに使用で
きるならば望ましいことである。これにはtのステップ
の大きさが一様でなければならない、必要なのはトリミ
ング曲線線分の評価を通じて不変のままであり、かつ第
8図の塗りつぶした正方形として使用するに充分な密度
の(u、v)対の集まりを発生する、tのステップの大
きさである。
ータ方程式により記述されることを想起すること、Uお
よびVのステップの大きさをどの位にしたいかを知るこ
とが直ちにトリミング曲線関数を実際に評価するtのス
テップの大きさを意味するものではない。更に、前進差
分法の技法を、パンチ評価関数について説明したと丁度
同じように、トリミング曲線関数を評価するのに使用で
きるならば望ましいことである。これにはtのステップ
の大きさが一様でなければならない、必要なのはトリミ
ング曲線線分の評価を通じて不変のままであり、かつ第
8図の塗りつぶした正方形として使用するに充分な密度
の(u、v)対の集まりを発生する、tのステップの大
きさである。
基本的な考え方は各トリミング曲線の各線分を成る所定
の(および処理しやすい程に小さい)数の点で評価する
ことである。得られるUの増進量の最大および得られる
Vの増進量の最大がそれぞれ貯えられる。これら増進量
はパッチ境界に沿う余分の頂点の間のUおよびVのそれ
ぞれの距離と比較される。比較が有利であればtの所望
のステップが見つかっている。比較が不利であれば、t
のステップの大きさは得られた最大のステップの大きさ
と所望のステップの大きさとの比にしたがって調節され
る。この確認プロセスはUおよびVに対して別々に行わ
れ、tのステップの大きさに対して二つの座標を生ずる
。二つのステップの大きさのうち小さい方が選択される
。
の(および処理しやすい程に小さい)数の点で評価する
ことである。得られるUの増進量の最大および得られる
Vの増進量の最大がそれぞれ貯えられる。これら増進量
はパッチ境界に沿う余分の頂点の間のUおよびVのそれ
ぞれの距離と比較される。比較が有利であればtの所望
のステップが見つかっている。比較が不利であれば、t
のステップの大きさは得られた最大のステップの大きさ
と所望のステップの大きさとの比にしたがって調節され
る。この確認プロセスはUおよびVに対して別々に行わ
れ、tのステップの大きさに対して二つの座標を生ずる
。二つのステップの大きさのうち小さい方が選択される
。
第9図のステップは第12図を参照し、コーエン(Co
hen )およびサザーランド(Sutherland
)のクリッピング・アルゴリズムを理解すれば理解する
ことができる。(このアルゴリズムの説明については、
FoleyおよびVan Damの146〜149ペー
を参照、)第12A図に考察中のクリップ窓43を横切
る(p+からP2への方向の)直線線分42を描いであ
る。tの−様なステップの大きさを見つけ前進差分法を
使用してトリミング曲線関数を(tの増加する方向に)
評価する目的はトリミング曲線に沿う充分な数の点を見
つけることである。これらの点は図の塗りつぶされた正
方形であり、それらの間の指示された直線線分はBスプ
ライン関数で記述された理想トリミング曲線の厳密な近
似である。クリッピングは各直線線分42とクリップ窓
43との交点(もし存在すれば)を見つける。これによ
り直線線分42の正確にどの部分44がクリップ窓内に
存在するかを確認することができる0部分44がNEW
PI とNEWh との間の線である第12A図の例で
は、NEHP l とNEHhとはクリッピング・プロ
セスにより計算される。添字は線分44の方向を示す、
明らかになるように、説明するトリミング方法はトリミ
ング曲線に沿う誘導運動の概念を利用している。簡単に
言うと、トリミング曲線(またはその直線近似)に沿っ
て走行するにつれて右側の要素が刈り取られる。
hen )およびサザーランド(Sutherland
)のクリッピング・アルゴリズムを理解すれば理解する
ことができる。(このアルゴリズムの説明については、
FoleyおよびVan Damの146〜149ペー
を参照、)第12A図に考察中のクリップ窓43を横切
る(p+からP2への方向の)直線線分42を描いであ
る。tの−様なステップの大きさを見つけ前進差分法を
使用してトリミング曲線関数を(tの増加する方向に)
評価する目的はトリミング曲線に沿う充分な数の点を見
つけることである。これらの点は図の塗りつぶされた正
方形であり、それらの間の指示された直線線分はBスプ
ライン関数で記述された理想トリミング曲線の厳密な近
似である。クリッピングは各直線線分42とクリップ窓
43との交点(もし存在すれば)を見つける。これによ
り直線線分42の正確にどの部分44がクリップ窓内に
存在するかを確認することができる0部分44がNEW
PI とNEWh との間の線である第12A図の例で
は、NEHP l とNEHhとはクリッピング・プロ
セスにより計算される。添字は線分44の方向を示す、
明らかになるように、説明するトリミング方法はトリミ
ング曲線に沿う誘導運動の概念を利用している。簡単に
言うと、トリミング曲線(またはその直線近似)に沿っ
て走行するにつれて右側の要素が刈り取られる。
上述のコーエンとサザーサンドのクリッピング・アルゴ
リズムは多数の補強資料と関連して使用される。今度は
第12図とFoleyとVan Damの146〜14
9ページに記されているコーエン・とサザーランドのク
リ7ピング・アルゴリズムの方法とを参照して、好まし
い方法は次の改善案を取り入れている。
リズムは多数の補強資料と関連して使用される。今度は
第12図とFoleyとVan Damの146〜14
9ページに記されているコーエン・とサザーランドのク
リ7ピング・アルゴリズムの方法とを参照して、好まし
い方法は次の改善案を取り入れている。
(ll クリップ限界はu L11fイu rilh
t 、V bOttllljsV、。、の順にチエツク
される。そのわけはこれが多角形が発生される順序(す
なわち、行内で左から右へ、・行方向に下から上へ)だ
からである。
t 、V bOttllljsV、。、の順にチエツク
される。そのわけはこれが多角形が発生される順序(す
なわち、行内で左から右へ、・行方向に下から上へ)だ
からである。
(2) クリップ窓と直線線分との相対的位置により
、NEWPIまたはNEHP2、または双方が計算され
る。(第12図は多数の可能な情況の中の二つだけを示
している。)クリッピング・アルゴリズムの任意の段階
でこのような交差点の計算が藁のP、に対して常に行わ
れて、第12B図に示すように、同じ交差点が隣のクリ
ップ窓について確実に計算されるようにする。窓、とP
、からP2までの直線線分とを考えると、窓、の中のN
E、WPtと記した交点が計算される。窓、について同
じ直線線分を考えると、窓=の中のNEWP。
、NEWPIまたはNEHP2、または双方が計算され
る。(第12図は多数の可能な情況の中の二つだけを示
している。)クリッピング・アルゴリズムの任意の段階
でこのような交差点の計算が藁のP、に対して常に行わ
れて、第12B図に示すように、同じ交差点が隣のクリ
ップ窓について確実に計算されるようにする。窓、とP
、からP2までの直線線分とを考えると、窓、の中のN
E、WPtと記した交点が計算される。窓、について同
じ直線線分を考えると、窓=の中のNEWP。
と記した交点が計算される。 NEWPIについて計算
された数値はNEWPIについて計算された数値と同一
でなければならない。
された数値はNEWPIについて計算された数値と同一
でなければならない。
数式
%式%)
ただし、
は二つの窓に対する交点のV座標の値を与える。
U座標は窓、に対してurl、htあり、窓2に対して
uL*f%である。
uL*f%である。
(3) 左、右、下、および上の各境界に対してクリ
ップすると、(浮動少数点丸め誤差のため)Nl!WP
tまたはNEIIP!の−っの座標をクリップ窓のわず
か外側に置くことができる。これはNEWP。
ップすると、(浮動少数点丸め誤差のため)Nl!WP
tまたはNEIIP!の−っの座標をクリップ窓のわず
か外側に置くことができる。これはNEWP。
(および/またはNEWPx )のその外側座標をクリ
ップ後のクリップ境界に動かすことにより補正される。
ップ後のクリップ境界に動かすことにより補正される。
このチエツクは四つのクリップ境界のすべてに対して行
われる。(丸め誤差は最終点の一つの座標をクリップ窓
の内側に容易に動かすことができる。この場合は後にト
リミング動作に問題を生ずることがなく、無視すること
ができる。)(41トリミング曲線がBスプラインとし
て表わされる場合には、所定の線分がそのスパンの終り
で(すなわち、そのスパン内のtの最大値に対して)評
価されるとき得られる(u、v)対が次の線分がそのス
パンの始めで(すなわち、他のスパン内のtの最小値に
対して)評価されるとき得られる(u、v)対と正確に
は等しくないというのが典型的な場合である。これは浮
動少数点丸め誤差の、または線分の間にそれらの「接合
点」を正確に収束させるBスプライン近似が失敗した、
結果である。この問題は前の線分の最後の点の代りに後
の線分の最初の点を使用することにより回避される。
われる。(丸め誤差は最終点の一つの座標をクリップ窓
の内側に容易に動かすことができる。この場合は後にト
リミング動作に問題を生ずることがなく、無視すること
ができる。)(41トリミング曲線がBスプラインとし
て表わされる場合には、所定の線分がそのスパンの終り
で(すなわち、そのスパン内のtの最大値に対して)評
価されるとき得られる(u、v)対が次の線分がそのス
パンの始めで(すなわち、他のスパン内のtの最小値に
対して)評価されるとき得られる(u、v)対と正確に
は等しくないというのが典型的な場合である。これは浮
動少数点丸め誤差の、または線分の間にそれらの「接合
点」を正確に収束させるBスプライン近似が失敗した、
結果である。この問題は前の線分の最後の点の代りに後
の線分の最初の点を使用することにより回避される。
このようにして、所定のトリミング曲線線分に対する直
線線分近似の最後の直線線分がその線分の最後の点の次
から次の線分の最初の点まで進む。
線線分近似の最後の直線線分がその線分の最後の点の次
から次の線分の最初の点まで進む。
(5) 典型的には、所定の直vAvA分のP2が次
の直線線分のP、になる、こうなったら、P2の古い値
をPlにコピーすることができる0次にクリッパはクリ
ップ窓に対するPlの位置に関する情報を保存し、この
情報を再度計算しな(てもよいようにできる。
の直線線分のP、になる、こうなったら、P2の古い値
をPlにコピーすることができる0次にクリッパはクリ
ップ窓に対するPlの位置に関する情報を保存し、この
情報を再度計算しな(てもよいようにできる。
(6) クリンパは三つのフラグをセットする(これ
は後に使用される)。
は後に使用される)。
ACCEPT : P、からP2までの直線線分が部分
的にまたは完全にクリップ窓の内側にあれば真である。
的にまたは完全にクリップ窓の内側にあれば真である。
CNEWP、 :新しいPlが計算された(すなわち、
Plがクリップ窓の外側にあった)場合に真である。
Plがクリップ窓の外側にあった)場合に真である。
CNEWP、 ?新しいP8が計算された(すなわち、
Plがクリップ窓の外側にあった)場合に真である。
Plがクリップ窓の外側にあった)場合に真である。
(71ACCEPTフラグが真であればクリッパはNE
WP +とNEWPzとを更新する。P、がクリップ窓
の縁または内側にあればNEWP+ ”h、 hは同様
に取り扱われる。
WP +とNEWPzとを更新する。P、がクリップ窓
の縁または内側にあればNEWP+ ”h、 hは同様
に取り扱われる。
今度は第9図のステップ8を参照する。各直線線分が現
在のクリップ窓に対してクリップされると、点NEWP
、およびNEWPtに関する情報がACCEPTフラグ
が真の場合表のリストに保存させる。一般に、トリミン
グ曲線は現在のクリップ窓の中に多数の点を備えること
ができる。(第8図がここで役立つ。同図は写像された
トリミング曲線27に沿う多角形頂点を示している。各
要素スパンでクリッピング・プロセスはトリミング曲線
について複数の点を戻している。)トリミング曲線はク
リップ窓に入り、その中で、出るまでに多数の点につい
て続けることができる。トリミング曲線は出たり再び入
ったりできる。トリミング曲線はクリップ窓の中間の成
る場所を単に出発(t=0の場合)することさえできる
、トリミング曲線はクリップ窓と忘の丁度−つの隅で交
差することがある。リストに加えられた表の表現で、所
定のトリミング曲線はリストに加えるべき一つ以上の表
を作ることができる。トリミング曲線にはこれに関連す
る方向(tの増加する値)があるので、a)クリップ窓
の、トリップ曲線が窓に入る境界に沿う交点、b)クリ
ップ窓の内側にあるトリミング曲線に沿う点、およびC
)クリップ窓の、トリミング曲線が窓から出る境界に沿
う点、を区別するのに役立つ。これらの点をそれぞれr
BEGIN 4点、rMIDDLEJ点、およびrEN
D 4点と呼ぶことにする。一般にクリップ窓はいくつ
かのトリミング曲線により切断することができる。各個
々のトリミング曲線に対する表を特定のクリップ窓につ
いて作られたすべての表の、よりおおきなリストの中の
円形に連結した別々の要素リストに分けるのが望ましい
。
在のクリップ窓に対してクリップされると、点NEWP
、およびNEWPtに関する情報がACCEPTフラグ
が真の場合表のリストに保存させる。一般に、トリミン
グ曲線は現在のクリップ窓の中に多数の点を備えること
ができる。(第8図がここで役立つ。同図は写像された
トリミング曲線27に沿う多角形頂点を示している。各
要素スパンでクリッピング・プロセスはトリミング曲線
について複数の点を戻している。)トリミング曲線はク
リップ窓に入り、その中で、出るまでに多数の点につい
て続けることができる。トリミング曲線は出たり再び入
ったりできる。トリミング曲線はクリップ窓の中間の成
る場所を単に出発(t=0の場合)することさえできる
、トリミング曲線はクリップ窓と忘の丁度−つの隅で交
差することがある。リストに加えられた表の表現で、所
定のトリミング曲線はリストに加えるべき一つ以上の表
を作ることができる。トリミング曲線にはこれに関連す
る方向(tの増加する値)があるので、a)クリップ窓
の、トリップ曲線が窓に入る境界に沿う交点、b)クリ
ップ窓の内側にあるトリミング曲線に沿う点、およびC
)クリップ窓の、トリミング曲線が窓から出る境界に沿
う点、を区別するのに役立つ。これらの点をそれぞれr
BEGIN 4点、rMIDDLEJ点、およびrEN
D 4点と呼ぶことにする。一般にクリップ窓はいくつ
かのトリミング曲線により切断することができる。各個
々のトリミング曲線に対する表を特定のクリップ窓につ
いて作られたすべての表の、よりおおきなリストの中の
円形に連結した別々の要素リストに分けるのが望ましい
。
表の一般的様式を第9図に示す0表の最初の二つの記述
環45と46とは考察中の点(NEWP、またはNEW
P、 )のU座標およびV座標の2進浮動少数点値であ
る。第3の記述環47は三つの部分を含んでいる。0ま
たは非0のトリミング曲線数(8ピントの整数) 、L
IV空間の点が乗っているトリミング曲線を区別する0
または非OのBスプライン線分数、および6ケのフラグ
・フィールド、(最初の二つの部分の0は後に好ましい
実施例の更に詳しい説明で述べる特別な場合を示してい
る。)6ケのフラグ・フィールドは次のとうりである。
環45と46とは考察中の点(NEWP、またはNEW
P、 )のU座標およびV座標の2進浮動少数点値であ
る。第3の記述環47は三つの部分を含んでいる。0ま
たは非0のトリミング曲線数(8ピントの整数) 、L
IV空間の点が乗っているトリミング曲線を区別する0
または非OのBスプライン線分数、および6ケのフラグ
・フィールド、(最初の二つの部分の0は後に好ましい
実施例の更に詳しい説明で述べる特別な場合を示してい
る。)6ケのフラグ・フィールドは次のとうりである。
FFI :この表がrBEGIN 4点、rMI[1
DLIEJ点、rEND 4点、またはrOTllER
4点のいずれに対すのものかを示す2ビツトのフィール
ド。
DLIEJ点、rEND 4点、またはrOTllER
4点のいずれに対すのものかを示す2ビツトのフィール
ド。
rOTHER4点は、下に記すように、隅角と余分な頂
点とを含む。
点とを含む。
FF2 :クリップ窓のどの縁(すなわち、左、右、下
、または上の縁)に点が乗っているかを示す2ビツトの
フィールド、このフィールドは主として隅角および余分
な頂点を記す表として使用される。
、または上の縁)に点が乗っているかを示す2ビツトの
フィールド、このフィールドは主として隅角および余分
な頂点を記す表として使用される。
FF3 :この表を飛び越すべきかどうかを示す1ビ
ツトのフィールド、このビットはこの表が第9図のステ
ップ11と関連して説明すべき特別の場合の一つである
場合にセットされる。このフラグを5KIPフラグと呼
ぶ。
ツトのフィールド、このビットはこの表が第9図のステ
ップ11と関連して説明すべき特別の場合の一つである
場合にセットされる。このフラグを5KIPフラグと呼
ぶ。
FF4 :第9図のステップ12に使用してこの表が
既に取扱われたことがあることを示す1ビツトのフィー
ルド。このフラグをMARKフラグと呼び、最初はFA
LSE (偽)である。
既に取扱われたことがあることを示す1ビツトのフィー
ルド。このフラグをMARKフラグと呼び、最初はFA
LSE (偽)である。
FF5 :第9図のステップ12に使用してこの表が
取扱われるべき最初の表であることを示す1ビツトのフ
ィールド。このフラグを5TARTフラグと呼び、最初
はFALSEである。
取扱われるべき最初の表であることを示す1ビツトのフ
ィールド。このフラグを5TARTフラグと呼び、最初
はFALSEである。
FF6 :第9図のステップ11で決まり、この表に
対応するXYZ空間の頂点が現在表面上に残っている(
rONJ 、刈り取られてしまっていない)か、ある
いは表面に存在しない(rOFFJ 、刈り取られてし
まっている)かを示す1ビツトのフィールド。このフラ
グをONフラグと呼ぶ。
対応するXYZ空間の頂点が現在表面上に残っている(
rONJ 、刈り取られてしまっていない)か、ある
いは表面に存在しない(rOFFJ 、刈り取られてし
まっている)かを示す1ビツトのフィールド。このフラ
グをONフラグと呼ぶ。
(現在表面上にのこっていることは頂点が実際に見える
ことを意味するものではない、陰れた表面の除去、裏面
の摘取り、およびクリフプングの動作は表面上に存在す
る点が最終的に表示されないようにすることができる。
ことを意味するものではない、陰れた表面の除去、裏面
の摘取り、およびクリフプングの動作は表面上に存在す
る点が最終的に表示されないようにすることができる。
他方、表面上に存在しない点は決して見ることができな
い、) 頂点の存在または非存在を、あるいは頂点が表面上にあ
るか表面外にあるかを、参照する機会が後に沢山あるで
あろう。同じ方法で多角形あるいはパッチ全体を存在す
るか存在しないか、ONかOFFかとして参照するのが
便利である。多角形およびパンチにはそれ自身の個々の
ONフラグは無い、その存在または不存在はそれらの中
に一定の頂点が存在するか存在しないかによって決まる
。これら重要な頂点のONフラグはそれらに遭遇したと
きに保存される。
い、) 頂点の存在または非存在を、あるいは頂点が表面上にあ
るか表面外にあるかを、参照する機会が後に沢山あるで
あろう。同じ方法で多角形あるいはパッチ全体を存在す
るか存在しないか、ONかOFFかとして参照するのが
便利である。多角形およびパンチにはそれ自身の個々の
ONフラグは無い、その存在または不存在はそれらの中
に一定の頂点が存在するか存在しないかによって決まる
。これら重要な頂点のONフラグはそれらに遭遇したと
きに保存される。
第4の記述項48は包みアドレスと次アドレスとを備え
ている。0でない包みアドレスは表のそうでない場合に
は直線形(すなわち、物理的に順序づけられた)リスト
の中の円形リンクである。0の包みアドレスは次の物理
的表もリスト内の次の論理表であることを示す0表はト
リミング曲線をtの値が増加する方向に横断するとき順
に表のリストの終りに挿入される。トリミング曲線に対
して所定の円形に連結した要素リストを作るには、その
トリミング曲線に対する最初の表のアドレスをそのトリ
ミング曲線に対する最後の表の包みアドレスに挿入する
だけでよい。
ている。0でない包みアドレスは表のそうでない場合に
は直線形(すなわち、物理的に順序づけられた)リスト
の中の円形リンクである。0の包みアドレスは次の物理
的表もリスト内の次の論理表であることを示す0表はト
リミング曲線をtの値が増加する方向に横断するとき順
に表のリストの終りに挿入される。トリミング曲線に対
して所定の円形に連結した要素リストを作るには、その
トリミング曲線に対する最初の表のアドレスをそのトリ
ミング曲線に対する最後の表の包みアドレスに挿入する
だけでよい。
次のアドレスは第9図のステップ11と12とで決まる
。このアドレスは表を存在している多角形の部分を表示
するのに使用される別のリストに結び付ける。
。このアドレスは表を存在している多角形の部分を表示
するのに使用される別のリストに結び付ける。
第9図のステップ8の説明の一部として、クリッパによ
り供給される情報に応じて表のリストを作り上げるのに
使用される所定基準を述べることが適切である。一般に
、PlからPtまでの線のクリップ窓に対する位置によ
り、リストに0、一つ、または二つの表を追加すること
が必要になる。下記判断表はこれを行う方法を示してい
る。これら判断表においてフラグlN5IDEはP2が
クリップ窓の内側にあるか外側にあるかを想起するのに
使用される。
り供給される情報に応じて表のリストを作り上げるのに
使用される所定基準を述べることが適切である。一般に
、PlからPtまでの線のクリップ窓に対する位置によ
り、リストに0、一つ、または二つの表を追加すること
が必要になる。下記判断表はこれを行う方法を示してい
る。これら判断表においてフラグlN5IDEはP2が
クリップ窓の内側にあるか外側にあるかを想起するのに
使用される。
トリミング曲線に沿う第1の(P+、Pg)対のための
判断ACCEPT = FALSEのときlN5IDE
:= FALSEACCEPT = TRUEのときは
以下の表を参照。
判断ACCEPT = FALSEのときlN5IDE
:= FALSEACCEPT = TRUEのときは
以下の表を参照。
トリミング曲線の の(p、、 p、) のための
′1 中lN5IDE = TRUEのとき、 ACCEPT = FALSEならば次の(P、、 P
、)対へ行(。
′1 中lN5IDE = TRUEのとき、 ACCEPT = FALSEならば次の(P、、 P
、)対へ行(。
ステップ9とステップ10とはそれぞれ上述のステップ
6および5と協働する。これら入れ子にしたFORルー
プの結果は各トリミング曲線を直線線分に分割すること
である。これら線分は次にステップ7によりその多角形
を表現しようとしている要素スパンに対してクリップさ
れる。ステップ8はクリップされた直NIA線分を記述
する表のリストを作り上げる。
6および5と協働する。これら入れ子にしたFORルー
プの結果は各トリミング曲線を直線線分に分割すること
である。これら線分は次にステップ7によりその多角形
を表現しようとしている要素スパンに対してクリップさ
れる。ステップ8はクリップされた直NIA線分を記述
する表のリストを作り上げる。
ステップ11 (a)〜(d)で、ステップ8で作られ
た表のリストが四つの方法で処理される。その第1は第
13A図および第13B図に示す二つの特別の場・合に
関するステップ11 (a)による検査である。
た表のリストが四つの方法で処理される。その第1は第
13A図および第13B図に示す二つの特別の場・合に
関するステップ11 (a)による検査である。
今度は第13A図を参照すると、要素スパン49とクリ
ップ窓の「丁度外側」に存在する点51を備えたトリミ
ング曲線50とが示されている。第9図のステップ7で
説明したクリッピング・アルゴリズムにしたがい、トリ
ミング曲線50がクリップ窓49を「出て行く」場合の
交点52が計算される0例題によれば、トリミング曲線
は右から再び中に戻る。
ップ窓の「丁度外側」に存在する点51を備えたトリミ
ング曲線50とが示されている。第9図のステップ7で
説明したクリッピング・アルゴリズムにしたがい、トリ
ミング曲線50がクリップ窓49を「出て行く」場合の
交点52が計算される0例題によれば、トリミング曲線
は右から再び中に戻る。
クリッパの他の交点53を忠実に作り出す0点51がク
リップ限界(これは例題では右側の縁であるが、どの縁
でもよい)に充分近ければ、計算に使用する数の分解能
が有限のため互いの最上部にある出口点と入口点とを生
ずることができる。これが第13A図が示すすべてであ
る。使用している演算精度の範囲内で、点52と点53
とは同じ点である。これが実際に「丁度かろうじて」外
側が意味するところである。
リップ限界(これは例題では右側の縁であるが、どの縁
でもよい)に充分近ければ、計算に使用する数の分解能
が有限のため互いの最上部にある出口点と入口点とを生
ずることができる。これが第13A図が示すすべてであ
る。使用している演算精度の範囲内で、点52と点53
とは同じ点である。これが実際に「丁度かろうじて」外
側が意味するところである。
上述の状況が発生すると、一定の性質を備えた二つの表
が連続してリストに加えられる。特に、最初のものはE
ND表(第9図のステップ8に関連するFFIを参照)
であり、第2のものはBEGIN表である。更に、二つ
の表のU値は正確に同じであり、V値は正確に同じであ
る。この事態はステップ11 (alにより表のリスト
を処理することに関連する第1の特別の場合である。
が連続してリストに加えられる。特に、最初のものはE
ND表(第9図のステップ8に関連するFFIを参照)
であり、第2のものはBEGIN表である。更に、二つ
の表のU値は正確に同じであり、V値は正確に同じであ
る。この事態はステップ11 (alにより表のリスト
を処理することに関連する第1の特別の場合である。
第1の特別の場合はトリミング曲線に関連する円形に連
結された各要素リストを調べることにより見つかる。要
素リストに論理的に隣接する(すなわち、包みアドレス
を適切に考慮して正しい論理的順序を作る)、それぞれ
が同じ(u、v)対を備えているBEGIN表およびE
ND表を含んでいるものがあれば、これら各表はMID
DLE表に変換される。
結された各要素リストを調べることにより見つかる。要
素リストに論理的に隣接する(すなわち、包みアドレス
を適切に考慮して正しい論理的順序を作る)、それぞれ
が同じ(u、v)対を備えているBEGIN表およびE
ND表を含んでいるものがあれば、これら各表はMID
DLE表に変換される。
チエツクされる第2の特別の場合を第13B図に示す、
この場合は一般に第1の特別の場合に似ているが、トリ
ミング曲vA54がクリップ窓の中に「丁度かろうじて
」進入しているところが違う。
この場合は一般に第1の特別の場合に似ているが、トリ
ミング曲vA54がクリップ窓の中に「丁度かろうじて
」進入しているところが違う。
特に、交点の計算に使用する数の分解能が有限であるこ
とから点56および57に対して発生するBEGIN表
とEND表とが同じ(u、v)対を備えることになる。
とから点56および57に対して発生するBEGIN表
とEND表とが同じ(u、v)対を備えることになる。
ただし、この場合BEGIN表とEND表とは点58に
対するMIDDLE表により分離される。
対するMIDDLE表により分離される。
第2の特別の場合はステップ11 (a)で同じ(u。
V)対を含むBEGIN表とEND表とを備えたBll
:GIN−MIDDLE−ENDのシーケンスを含む要
素リストに対するリストを調べることにより見つかる。
:GIN−MIDDLE−ENDのシーケンスを含む要
素リストに対するリストを調べることにより見つかる。
このようなシーケンスが見つかると5KIPフラグ(第
9図のステップ8を参照のこと)が三つの表すべてにセ
ットされる。これがこれらの表の後々の処理に及ぼす正
味の影響はそれらが効果的に削除されることである。す
なわちそれらは簡単に無視される。
9図のステップ8を参照のこと)が三つの表すべてにセ
ットされる。これがこれらの表の後々の処理に及ぼす正
味の影響はそれらが効果的に削除されることである。す
なわちそれらは簡単に無視される。
ステップ11 (b)で表のリストが処理されて新しい
四つの要素リストが作られる。一つの要素リストはクリ
ップ窓の各緑に対するものであり、このような要素リス
トを用いて関連する緑を横断するトリミング曲線が数え
上げられる。これら新しい線要素リストは、要素リスト
を互いに結び付ける表(DNEXT ADDRESS7
4−7L、ドを用いて、そのまま、所定の場所に作られ
る。(これはNEXT ADDRESSフィールドの中
間的利用に過ぎず、その最終的利用ではない、) その5KIPフラグがセットされていない単なるBEG
IN表とEND表とが線要素リストに入れられる。
四つの要素リストが作られる。一つの要素リストはクリ
ップ窓の各緑に対するものであり、このような要素リス
トを用いて関連する緑を横断するトリミング曲線が数え
上げられる。これら新しい線要素リストは、要素リスト
を互いに結び付ける表(DNEXT ADDRESS7
4−7L、ドを用いて、そのまま、所定の場所に作られ
る。(これはNEXT ADDRESSフィールドの中
間的利用に過ぎず、その最終的利用ではない、) その5KIPフラグがセットされていない単なるBEG
IN表とEND表とが線要素リストに入れられる。
線要素リストを作るに際しては、BEGIN表またはE
ND表の(u、v)対もクリンプ窓の隅の点であるとい
う場合に特別の注意を払う、この場合には幾つかのトリ
ミング曲線が横断しているクリップ窓を描いた第14図
を参照するのが役に立つ、その(u、v)対も隅の点I
を(偶然に)記述するBEGIN表およびEND表が上
縁59の線要素リストに入る。同様に、隅■のBEGI
N表またはEND表は左縁60の線要素リストに入る。
ND表の(u、v)対もクリンプ窓の隅の点であるとい
う場合に特別の注意を払う、この場合には幾つかのトリ
ミング曲線が横断しているクリップ窓を描いた第14図
を参照するのが役に立つ、その(u、v)対も隅の点I
を(偶然に)記述するBEGIN表およびEND表が上
縁59の線要素リストに入る。同様に、隅■のBEGI
N表またはEND表は左縁60の線要素リストに入る。
隅■のBl!G I NまたはENDの各表は下縁61
に関して入る。同様の仕方で、隅■のBEGIN表およ
びEND表は右縁62に関して入る。
に関して入る。同様の仕方で、隅■のBEGIN表およ
びEND表は右縁62に関して入る。
一旦形成されると、各線要素リストは、どの縁を要素リ
ストが表わしているかにより、UまたはVの上昇値か下
降値かによって分類される。属性。
ストが表わしているかにより、UまたはVの上昇値か下
降値かによって分類される。属性。
BEGINおよび[’NOは分類に影響しない、左縁の
線要素リストはVの下降値にしたがって分類される。
線要素リストはVの下降値にしたがって分類される。
下縁の線要素リストはUの上昇値にしたがって分類され
る。右縁の線要素リストはVの上昇値にしたがって分類
される。上縁の線要素リストはUの下降値にしたがって
分類される。
る。右縁の線要素リストはVの上昇値にしたがって分類
される。上縁の線要素リストはUの下降値にしたがって
分類される。
ステップ11 (C1で表のリストが表を持つ四つの線
要素リストを隅角および余分の頂点の主リストにはさみ
込んでリスト内に新しい円形順序を生ずるように処理さ
れる。これはNEXT ADDRESSフィールドの最
終的利用である。はさみ込みは(任意に)隅頂点Iから
始まり、クリップ窓の境界の周りを反時計方向に進む、
境界に沿う点の各表のNEXTADDRESSフィール
ドは、それが余分な頂点であろうとトリミング曲線との
交点であろうと、更に境界に沿う次の点と結び付けられ
る0次の頂点が次の隅であるという場合さえあり得る。
要素リストを隅角および余分の頂点の主リストにはさみ
込んでリスト内に新しい円形順序を生ずるように処理さ
れる。これはNEXT ADDRESSフィールドの最
終的利用である。はさみ込みは(任意に)隅頂点Iから
始まり、クリップ窓の境界の周りを反時計方向に進む、
境界に沿う点の各表のNEXTADDRESSフィール
ドは、それが余分な頂点であろうとトリミング曲線との
交点であろうと、更に境界に沿う次の点と結び付けられ
る0次の頂点が次の隅であるという場合さえあり得る。
この再順序付けは第14図でC,X、B、およびEと記
した点を接続する矢印で表わしである。任意に頂点!か
ら始まって、得られる順序はC−X−E−X−X−C−
X−B−X−E−C−B−C−E−B−Cである。 o
xf ADDRESSフィールドを用いるこの再順序付
けに含まれる表の種類は隅、余分な頂点、およびBEG
I NおよびENDの交点表だけである。乱されずに
そのままになっているのはクリップ窓内部の各トリミン
グ曲線に沿う点を数え上げる各トリミング曲線の要素リ
ストである( BIl’GINとENDと)?lID0
LE) 。
した点を接続する矢印で表わしである。任意に頂点!か
ら始まって、得られる順序はC−X−E−X−X−C−
X−B−X−E−C−B−C−E−B−Cである。 o
xf ADDRESSフィールドを用いるこの再順序付
けに含まれる表の種類は隅、余分な頂点、およびBEG
I NおよびENDの交点表だけである。乱されずに
そのままになっているのはクリップ窓内部の各トリミン
グ曲線に沿う点を数え上げる各トリミング曲線の要素リ
ストである( BIl’GINとENDと)?lID0
LE) 。
この点で、隅角頂点の表および余分な頂点の表を考察中
のクリップ窓の表の全体リストに載せておくという方法
については特に言及されていないことがわかる、明らか
に、このような表を追加するためおよび後に探すために
何らかの機構が必要であり、したがって上述のはさみ込
みを行うことができる。この種の事柄を行う各種技法が
周知であり、特定の実施例に利用するものは、大部分、
設計者の傾向に依存することになる。提示した実施例で
は、それらは関連ポインタにより区別されるそれ自身の
連結要素リスト内に配置されている。
のクリップ窓の表の全体リストに載せておくという方法
については特に言及されていないことがわかる、明らか
に、このような表を追加するためおよび後に探すために
何らかの機構が必要であり、したがって上述のはさみ込
みを行うことができる。この種の事柄を行う各種技法が
周知であり、特定の実施例に利用するものは、大部分、
設計者の傾向に依存することになる。提示した実施例で
は、それらは関連ポインタにより区別されるそれ自身の
連結要素リスト内に配置されている。
第9図のステップ11 (d+は第14図と第9図のス
テップ11 (C1とに関連して上に述べた円形連結リ
ストの各表に対するONフラグを計算する。ONフラグ
は頂点が表面上に残存しているか刈り取られてしまって
いるかを示す。ここで重要なのはONフラグをどう計算
することができるかである。簡単に言えば、これはトリ
ミング曲線が要素スパンを去る点を見つけることによっ
て行われる。定義により、トリミング曲線上の各点は存
在するものと仮定する。トリミングには更にトリミング
曲線の左側(tの増加する方向にトリミング曲線に沿っ
て進むとき)にある要素スパン内のものもすべて存在す
るという仮定が□ある。したがって、トリミング曲線の
出口でもある要素スパン境界上の一点から出発すれば、
反時計方向の次の頂点、およびトリミング曲線に遭遇す
るまでのすべての後続頂点も存在する。読者は第14図
への懇請によりr(tが増加するとき)の左側」と「要
素スパンの周りに反時計方向」との間の関係に関して得
心することができる0表面上に存在する頂点を摘み、時
計方向と反時計方向の両方に進ませてみよう。
テップ11 (C1とに関連して上に述べた円形連結リ
ストの各表に対するONフラグを計算する。ONフラグ
は頂点が表面上に残存しているか刈り取られてしまって
いるかを示す。ここで重要なのはONフラグをどう計算
することができるかである。簡単に言えば、これはトリ
ミング曲線が要素スパンを去る点を見つけることによっ
て行われる。定義により、トリミング曲線上の各点は存
在するものと仮定する。トリミングには更にトリミング
曲線の左側(tの増加する方向にトリミング曲線に沿っ
て進むとき)にある要素スパン内のものもすべて存在す
るという仮定が□ある。したがって、トリミング曲線の
出口でもある要素スパン境界上の一点から出発すれば、
反時計方向の次の頂点、およびトリミング曲線に遭遇す
るまでのすべての後続頂点も存在する。読者は第14図
への懇請によりr(tが増加するとき)の左側」と「要
素スパンの周りに反時計方向」との間の関係に関して得
心することができる0表面上に存在する頂点を摘み、時
計方向と反時計方向の両方に進ませてみよう。
ONフラグは、出発点、たとえば第14図の点63とし
て任意のEND表を拾うことにより計算される。
て任意のEND表を拾うことにより計算される。
そのONフラグは既にONを割当てている。次に、BE
GIN表に遭遇するまで、表の円形リストを横断し、各
ONフラグもONを割当てるようにセントする。
GIN表に遭遇するまで、表の円形リストを横断し、各
ONフラグもONを割当てるようにセントする。
後続の表に対するONフラグはEND表に遭遇するまで
OFFを割当てるようにクリアされる。このプロセスは
最初のEND表63に再び遭遇するまで続けられる。こ
れが第14図に示す例について、END点63から始め
て、行われると、ONフラグの下記シーケンスが得られ
る(110は0N10FF) : 1.1.1、L
1,1.0.1,1.1.0.1,1 0.0゜ 要素スパンの円形連結リストにBEGIN表またはEN
D表が入っていない場合がある。これは二つの異なる方
法で起こり得る。第1は要素スパンにそれに関連するト
リミング曲線が全く無いことがある。このような要素ス
パンには隅角および余分な頂点のテーブルしか無い、第
2の場合は要素スパンに一つ以上のトリミング曲線が完
全に含まれている。(これらは要素スパン境界に接触ま
たは一致することがあるが、それらと交差せず、影響は
曲線が接触せずに完全に内部にあるときと同じである。
OFFを割当てるようにクリアされる。このプロセスは
最初のEND表63に再び遭遇するまで続けられる。こ
れが第14図に示す例について、END点63から始め
て、行われると、ONフラグの下記シーケンスが得られ
る(110は0N10FF) : 1.1.1、L
1,1.0.1,1.1.0.1,1 0.0゜ 要素スパンの円形連結リストにBEGIN表またはEN
D表が入っていない場合がある。これは二つの異なる方
法で起こり得る。第1は要素スパンにそれに関連するト
リミング曲線が全く無いことがある。このような要素ス
パンには隅角および余分な頂点のテーブルしか無い、第
2の場合は要素スパンに一つ以上のトリミング曲線が完
全に含まれている。(これらは要素スパン境界に接触ま
たは一致することがあるが、それらと交差せず、影響は
曲線が接触せずに完全に内部にあるときと同じである。
このような要素スパンは、隅角、余分な頂点、およびト
リミング曲線のMIDOLEに対する表を備えたリスト
を伴う。
リミング曲線のMIDOLEに対する表を備えたリスト
を伴う。
上の第1の場合に対応する多角形を表現するときその多
角形の有無は隣接多角形の有無によって決まる。それは
完全に存在するか全く存在しないかのいずれかである。
角形の有無は隣接多角形の有無によって決まる。それは
完全に存在するか全く存在しないかのいずれかである。
第2の場合にはトリミング曲線は「考察中の単位」の最
小のもの(すなわち多角形)より小さい、トリミング曲
線は無視され、多角形全体が試みに保存される。ただし
、多角形が存在したままでいるということは必ずしも守
られない、多角形はそれ自身更に大きなトリミング曲線
の内部にあることがあり、したがって刈り取られてしま
う、第2の場合には、第1の場合のように、多角形の有
無は隣接多角形の有無によって決まる。
小のもの(すなわち多角形)より小さい、トリミング曲
線は無視され、多角形全体が試みに保存される。ただし
、多角形が存在したままでいるということは必ずしも守
られない、多角形はそれ自身更に大きなトリミング曲線
の内部にあることがあり、したがって刈り取られてしま
う、第2の場合には、第1の場合のように、多角形の有
無は隣接多角形の有無によって決まる。
第2の場合は内部トリミング曲線自身が他のトリミング
曲線を含んでいるときでも説明したとおりになる。多分
この状況は表面上の存在と不存在とが交互に変る領域に
対応するであろう、ただし、このような特徴は選択した
多角形の大きさの内部で見るには小さすぎる。多角形の
大きさがトリミング曲線が要素スパン境界を横切り始め
るところまで減少する場合の状況と混同してはならない
。
曲線を含んでいるときでも説明したとおりになる。多分
この状況は表面上の存在と不存在とが交互に変る領域に
対応するであろう、ただし、このような特徴は選択した
多角形の大きさの内部で見るには小さすぎる。多角形の
大きさがトリミング曲線が要素スパン境界を横切り始め
るところまで減少する場合の状況と混同してはならない
。
圧絞に出した状況は通常どうり単に正常のトリミングを
発生するだけである。
発生するだけである。
前述のことから、各個別の多角形を処理している間に一
定の多角形が存在していたか存在していなかったかを思
い出す成る機構が必要であることが明らかである。この
機構はパッチの処理中に所定の要素スパンに対する一定
の表のONフラグの値を保存することを含むことになる
。今度は第10図と第14図とを参照して、要素スパン
は明確な順序で取られていることを想起する。各行の最
初の要素スパンについて頂点IV64のONフラグは次
の行を処理するのに使用するために保存される。行内で
各要素スパンの頂点■のONフラグはその行内の次の多
角形を表現する際使用するために保存される。
定の多角形が存在していたか存在していなかったかを思
い出す成る機構が必要であることが明らかである。この
機構はパッチの処理中に所定の要素スパンに対する一定
の表のONフラグの値を保存することを含むことになる
。今度は第10図と第14図とを参照して、要素スパン
は明確な順序で取られていることを想起する。各行の最
初の要素スパンについて頂点IV64のONフラグは次
の行を処理するのに使用するために保存される。行内で
各要素スパンの頂点■のONフラグはその行内の次の多
角形を表現する際使用するために保存される。
その他、最初の行の最後の要素スパンの頂点11166
のONフラグは現在のパンチの右側のパッチを処理する
際使用するために保存される。(これまでそう言わなか
ったが、表面はパッチの行および列から作り上げられて
いる。第1O図はパッチ内の要素スパンを参照するのと
同じ程度容易にそれを参照することができよう、)同様
に、(パッチの行を収容するには)パンチ内の要素スパ
ンの最後の行の最初の要素スパンの頂点167のONフ
ラグも、頂点Iと正確に一致するBEGIN表またはE
ND表が存在すれば補足してから、保存される。このよ
うな保存も後続のパッチを処理する際に使用するためで
ある。補足は次の章で説明する特別な場合考慮している
。
のONフラグは現在のパンチの右側のパッチを処理する
際使用するために保存される。(これまでそう言わなか
ったが、表面はパッチの行および列から作り上げられて
いる。第1O図はパッチ内の要素スパンを参照するのと
同じ程度容易にそれを参照することができよう、)同様
に、(パッチの行を収容するには)パンチ内の要素スパ
ンの最後の行の最初の要素スパンの頂点167のONフ
ラグも、頂点Iと正確に一致するBEGIN表またはE
ND表が存在すれば補足してから、保存される。このよ
うな保存も後続のパッチを処理する際に使用するためで
ある。補足は次の章で説明する特別な場合考慮している
。
第9図のステップ11(blと関連して頂点■と同じ(
u、 v)対を偶然に備えているBEGIN表またはE
ND表は要素スパンの上縁の縁要素リストに含まれるこ
とになると言ったことを想起しよう。ステップ11 (
C1で四つの縁要素リストが、頂点Iから始めて、要素
スパンの周りに時計方向にはさみ込まれるということを
言った。このことはトリミング曲線が頂点16?を通過
することにより境界を横切る特別の場合に円形連結リス
ト内に実際に頂点■を記述する二つの表があるというこ
とを意味する。
u、 v)対を偶然に備えているBEGIN表またはE
ND表は要素スパンの上縁の縁要素リストに含まれるこ
とになると言ったことを想起しよう。ステップ11 (
C1で四つの縁要素リストが、頂点Iから始めて、要素
スパンの周りに時計方向にはさみ込まれるということを
言った。このことはトリミング曲線が頂点16?を通過
することにより境界を横切る特別の場合に円形連結リス
ト内に実際に頂点■を記述する二つの表があるというこ
とを意味する。
その一つは頂点!それ自身に対するものであり一つは頂
点Iと一致するBEGINまたはENDに対するもので
ある。これら各表にはONフラグがある。それらをセッ
トする規則および手近にある特別な事例に照らしてこれ
らをどう解釈するかに特別な注意を払わなければならな
い。
点Iと一致するBEGINまたはENDに対するもので
ある。これら各表にはONフラグがある。それらをセッ
トする規則および手近にある特別な事例に照らしてこれ
らをどう解釈するかに特別な注意を払わなければならな
い。
ONフラグに適用される前述の三つの規則あるいは約束
事がある。それらは、 (l)トリミング曲線に沿う点はすべて表面上に存在す
る。
事がある。それらは、 (l)トリミング曲線に沿う点はすべて表面上に存在す
る。
(2)トリミング曲線に沿ってtの値が増える方向に進
むとき、トリミング曲線の左側にある表面の点は表面上
に存在する。
むとき、トリミング曲線の左側にある表面の点は表面上
に存在する。
(3)要素スパンの周りに反時計方向に進むとき、EN
Dに直ぐ続(頂点は、やはりONの印の付いている次の
BEG I NまでONの印が付いた表を備えている。
Dに直ぐ続(頂点は、やはりONの印の付いている次の
BEG I NまでONの印が付いた表を備えている。
同様に、BEGINに直ぐ続く頂点は、それ自身ONの
印が付いている次のENDまでOFFである。
印が付いている次のENDまでOFFである。
さてBEGINは頂点■と一致しているとしよう。
規則3により、頂点■にはOFFの印が付((不存在)
ことになる。ただし、現在のパッチの上の隣接パッチは
、規則2により、ON (存在)である。
ことになる。ただし、現在のパッチの上の隣接パッチは
、規則2により、ON (存在)である。
したがって、次のパッチまで伝ttした頂点167に対
するONフラグの値はOFFからONに変る必要がある
。
するONフラグの値はOFFからONに変る必要がある
。
ENDは頂点Iと一致しているとしよう、規則3により
、頂点IにはONの印が付(ことになる、ただし、現在
のパッチの上の隣接バッチは、規則2により、OFFで
ある。したがって、次のパッチまで伝播した頂点167
に対するONフラグの値はONからOFFに変る必要が
ある。
、頂点IにはONの印が付(ことになる、ただし、現在
のパッチの上の隣接バッチは、規則2により、OFFで
ある。したがって、次のパッチまで伝播した頂点167
に対するONフラグの値はONからOFFに変る必要が
ある。
このように、最後の行の最初の要素スパンの頂点167
のONフラグを伝播させる一般的規則は次のようになる
。頂点167と一致するBEGINまたはENDでは頂
点167に対するONフラグの値が不変に伝播するもの
はない、頂点167と一致するBEGINまたはEND
が存在すれば、頂点夏67のONフラグの値の補数が伝
播する。
のONフラグを伝播させる一般的規則は次のようになる
。頂点167と一致するBEGINまたはENDでは頂
点167に対するONフラグの値が不変に伝播するもの
はない、頂点167と一致するBEGINまたはEND
が存在すれば、頂点夏67のONフラグの値の補数が伝
播する。
表面全体の文字どうり最初の頂点に対するONフラグを
計算するには特別な規則が必要である。このような規則
は慣習に帰するが、その文字どうり最初の頂点に適用さ
れるトリミング動作に適合すべきである。たとえば、文
字どうり最初の頂点が常に表面上に存在すると仮定する
ことはその頂点を刈り取らせない0文字どうり最初の頂
点のON)ラグの計算に関する便利な規則は存在する(
ON)その表面縁または部分がトリミング曲線で束ねら
れなければならないとすることである。この方法を用い
て文字どうり最初の頂点をOFFと仮定することができ
る。この仮定値はトリミング曲線が最初の多角形に対す
る少くとも一組のBEGIN/END頂点表を生ずるな
らば無視される。というのはこのような場合には、上に
示したように、各頂点に対するONフラグの正しい値を
計算することが可能だからである。このような−組の頂
点表が存在しない場合には、最初の多角形全体が実際に
刈り取られてしまっている。
計算するには特別な規則が必要である。このような規則
は慣習に帰するが、その文字どうり最初の頂点に適用さ
れるトリミング動作に適合すべきである。たとえば、文
字どうり最初の頂点が常に表面上に存在すると仮定する
ことはその頂点を刈り取らせない0文字どうり最初の頂
点のON)ラグの計算に関する便利な規則は存在する(
ON)その表面縁または部分がトリミング曲線で束ねら
れなければならないとすることである。この方法を用い
て文字どうり最初の頂点をOFFと仮定することができ
る。この仮定値はトリミング曲線が最初の多角形に対す
る少くとも一組のBEGIN/END頂点表を生ずるな
らば無視される。というのはこのような場合には、上に
示したように、各頂点に対するONフラグの正しい値を
計算することが可能だからである。このような−組の頂
点表が存在しない場合には、最初の多角形全体が実際に
刈り取られてしまっている。
表面の縁の周りのトリミング曲線が文字どうり最初の多
角形と関連する唯一のトリミング曲線であるときは興味
ある特別な場合が生ずる。この場合にはその多角形の左
縁および下縁がそのトリミング曲線と一致し、これら二
つの縁を記述する二組の頂点が生ずる。−組はそれら多
角形の縁に対する隅および余分な頂点が表面から無くな
っていることを記述し、一方それらの縁とトリミング曲
線との交点について計算された頂点は、定義により、表
面上に存在する。クリンパが動作する方法により、OF
F隅角の頂点はトリミング曲線上の頂点として複製され
るので、最初の多角形の形状が保存される。第16図お
よび第17図と関連して下に述べる頂点表の連結リスト
を処理する機構は二重の記述を容認し、OFF縁を無視
してON縁から多角形を作る。二つのOFFgは二つの
ON縁と同じであることは気にならない。したがってO
N多角形に存在するのはOFF隅角である。
角形と関連する唯一のトリミング曲線であるときは興味
ある特別な場合が生ずる。この場合にはその多角形の左
縁および下縁がそのトリミング曲線と一致し、これら二
つの縁を記述する二組の頂点が生ずる。−組はそれら多
角形の縁に対する隅および余分な頂点が表面から無くな
っていることを記述し、一方それらの縁とトリミング曲
線との交点について計算された頂点は、定義により、表
面上に存在する。クリンパが動作する方法により、OF
F隅角の頂点はトリミング曲線上の頂点として複製され
るので、最初の多角形の形状が保存される。第16図お
よび第17図と関連して下に述べる頂点表の連結リスト
を処理する機構は二重の記述を容認し、OFF縁を無視
してON縁から多角形を作る。二つのOFFgは二つの
ON縁と同じであることは気にならない。したがってO
N多角形に存在するのはOFF隅角である。
今度は第9図のステップ12を考える。その任務は表の
リストを横断することである。ステップ11はどの最初
の頂点がトリミング後も残存しているかについての情報
の他に、どのトリミング曲線の頂点をトリムされた多角
形に組入れるべきかについての情報をリストに追加した
。ステップ11は元の多角形を二つ以上のより小さな多
角形に効果的に分割することができることに注意、ステ
ップ12には入れ子ループという簡単な手順を使用して
ステップ11で準備されたデータ構造を横断する。その
データ構造が第14図の状況をどう表わすかを簡単に表
現したものを第15図に示す、ステップ12による横断
の結果はステップ13により多角形を実際に表示する機
構に送られる一連の現在の多角形頂点である。ステップ
12にはトリミング;プロセスから現われる現在の各多
角形または現在の要素多角形(他の部分が刈り取られて
しまってから残っている多角形の一部)に対する頂点の
一つの完全なリストを作る。
リストを横断することである。ステップ11はどの最初
の頂点がトリミング後も残存しているかについての情報
の他に、どのトリミング曲線の頂点をトリムされた多角
形に組入れるべきかについての情報をリストに追加した
。ステップ11は元の多角形を二つ以上のより小さな多
角形に効果的に分割することができることに注意、ステ
ップ12には入れ子ループという簡単な手順を使用して
ステップ11で準備されたデータ構造を横断する。その
データ構造が第14図の状況をどう表わすかを簡単に表
現したものを第15図に示す、ステップ12による横断
の結果はステップ13により多角形を実際に表示する機
構に送られる一連の現在の多角形頂点である。ステップ
12にはトリミング;プロセスから現われる現在の各多
角形または現在の要素多角形(他の部分が刈り取られて
しまってから残っている多角形の一部)に対する頂点の
一つの完全なリストを作る。
第15図は第9B図のステップ11Cを第14図の例題
に通用して得られる頂点表の一つの可能な円形連結リス
トを簡単に示したものである。トリミング曲線#1 (
この特定の多角形に対する)は第14図の点68から出
発しく1=0)、他の二つのトリミング曲線は要素スパ
ンの外側のどこかから出発するという仮定を置く、第1
5図の円形連結リスト全体は境界リストと言ってもよい
0次のアドレス・フィールドはトリムされない多角形頂
点および多角形の縁とトリミング曲線との交点を境界リ
ストに結び付ける。境界リストに埋込まれてトリミング
曲線要素リストがある。トリミング曲線要素リストは物
理的順序づけと包みアドレス・フィールドとを組合せて
結び付けられる。各トリミング曲線に対して一つのトリ
ミング曲線要素リストが存在する。境界リストを横断し
ているときにBEGINに出会うと、境界リストに沿っ
て続行するか、トリミング曲線要素リストの横断へ切替
えるかの選択を行うことができる。(境界リストとトリ
ミング曲線要素リストとはBEGIN表とEND表とを
分は持っている。切替えに必要なのはリンクの別のチェ
ーンをたどることだけである。)トリミング曲線要素リ
ストをそのENDまで横断すると、その点で境界に再び
入ることになる。
に通用して得られる頂点表の一つの可能な円形連結リス
トを簡単に示したものである。トリミング曲線#1 (
この特定の多角形に対する)は第14図の点68から出
発しく1=0)、他の二つのトリミング曲線は要素スパ
ンの外側のどこかから出発するという仮定を置く、第1
5図の円形連結リスト全体は境界リストと言ってもよい
0次のアドレス・フィールドはトリムされない多角形頂
点および多角形の縁とトリミング曲線との交点を境界リ
ストに結び付ける。境界リストに埋込まれてトリミング
曲線要素リストがある。トリミング曲線要素リストは物
理的順序づけと包みアドレス・フィールドとを組合せて
結び付けられる。各トリミング曲線に対して一つのトリ
ミング曲線要素リストが存在する。境界リストを横断し
ているときにBEGINに出会うと、境界リストに沿っ
て続行するか、トリミング曲線要素リストの横断へ切替
えるかの選択を行うことができる。(境界リストとトリ
ミング曲線要素リストとはBEGIN表とEND表とを
分は持っている。切替えに必要なのはリンクの別のチェ
ーンをたどることだけである。)トリミング曲線要素リ
ストをそのENDまで横断すると、その点で境界に再び
入ることになる。
ステップ12を第16図に簡略流れ図として示してあり
、第17図に第9図のステップ8で設定した情報を含む
表のリストで動作する擬似コードとして示しである。
、第17図に第9図のステップ8で設定した情報を含む
表のリストで動作する擬似コードとして示しである。
第16図の流れ図はこれに先行するものが何かという文
脈でとらえるときかなり自明であると信ぜられている。
脈でとらえるときかなり自明であると信ぜられている。
これには、第16A図に示すように、「最初」であった
として印を付ける最初の頂点として円形に連結した境界
リストの中の任意の頂点を選択する外部ループが含まれ
ている。したがって外部ループは境界リストを横断する
。「最初」と印の付いた頂点に戻ったことがわかると、
プロセスは完了し、ループは終結する。外部ループの主
な動作はまだ巡見を受けないで表面上に存在する頂点を
見分けることである。このような頂点が見つかると、境
界リストにその位置が格納されるので、外部ループは中
間ループおよび内部ループがリストを自分自身で横断で
きるようになってからこの点でリストの横断を再開する
ことができる。
として印を付ける最初の頂点として円形に連結した境界
リストの中の任意の頂点を選択する外部ループが含まれ
ている。したがって外部ループは境界リストを横断する
。「最初」と印の付いた頂点に戻ったことがわかると、
プロセスは完了し、ループは終結する。外部ループの主
な動作はまだ巡見を受けないで表面上に存在する頂点を
見分けることである。このような頂点が見つかると、境
界リストにその位置が格納されるので、外部ループは中
間ループおよび内部ループがリストを自分自身で横断で
きるようになってからこの点でリストの横断を再開する
ことができる。
外部ループをこのように、そのまま「中止」して、更に
中間ループによるリストの処理が始まる。
中間ループによるリストの処理が始まる。
中間ループは多角形リストに現在の非トリミング曲線頂
点を加え、BEGIN頂点またはEND頂点を見分ける
。 BEGIN頂点が見つかると、これが多角形リス
トに追加されて、内部ループに入る。END頂点も多角
形リストに追加される。何故ならそれは多角形上に存在
する次の頂点であり、また今は巡見されたと印が付けら
れ、再び巡見されなければ更に処理されることがないか
らである。
点を加え、BEGIN頂点またはEND頂点を見分ける
。 BEGIN頂点が見つかると、これが多角形リス
トに追加されて、内部ループに入る。END頂点も多角
形リストに追加される。何故ならそれは多角形上に存在
する次の頂点であり、また今は巡見されたと印が付けら
れ、再び巡見されなければ更に処理されることがないか
らである。
内部ループは外部ループおよび中間ループを備えた境界
リストに沿って横断することにより頭に到達したトリミ
ング曲線要素リストを横断する。
リストに沿って横断することにより頭に到達したトリミ
ング曲線要素リストを横断する。
中間ループはBEGIN頂点を多角形リストに追加して
から内部ループに入る。内部ループはトリミング曲線要
素リストの残りを完全に横断し、かつ関連頂点を多角形
リストに追加してしまうと中間ループに戻る0次に中間
ループは境界リストの横断を再開する。内部ループは新
しいトリミング曲線要素リストの頭に出会うたびに必要
に応じて再使用される。中間リストは閉じた多角形全体
が多角形リストに追加されてしまうと完了する。この状
態は中間ループが既に巡見されている頂点に戻ったとき
に検出される。このことは境界リストが完全に処理され
てしまったということを必らずしも意味するものではな
い、トリミングは元の多角形を二つ以上の要素多角形に
切断することができる。
から内部ループに入る。内部ループはトリミング曲線要
素リストの残りを完全に横断し、かつ関連頂点を多角形
リストに追加してしまうと中間ループに戻る0次に中間
ループは境界リストの横断を再開する。内部ループは新
しいトリミング曲線要素リストの頭に出会うたびに必要
に応じて再使用される。中間リストは閉じた多角形全体
が多角形リストに追加されてしまうと完了する。この状
態は中間ループが既に巡見されている頂点に戻ったとき
に検出される。このことは境界リストが完全に処理され
てしまったということを必らずしも意味するものではな
い、トリミングは元の多角形を二つ以上の要素多角形に
切断することができる。
外部ループがまだ完了まで動いてしまわないかぎり、境
界リストが記述した要素多角形がまだ沢山ある可能性が
ある。
界リストが記述した要素多角形がまだ沢山ある可能性が
ある。
完成多角形を多角形リストに追加すると中間ループは外
部ループに戻る。外部ループは境界リストの立ち去った
点からその処理を再開する。外部ループはまだ巡見され
ていない頂点を探してリストの横断を続ける。それが見
つかれば他の要素多角形全体を多角形リストに載せるの
に中間ループを再使用する。
部ループに戻る。外部ループは境界リストの立ち去った
点からその処理を再開する。外部ループはまだ巡見され
ていない頂点を探してリストの横断を続ける。それが見
つかれば他の要素多角形全体を多角形リストに載せるの
に中間ループを再使用する。
頂点情報を隅角頂点および余分な頂点に対する多角形リ
ストに追加すること(第16図の動作69)はトリミン
グ曲線に沿う点に対する多角形リストに追加する(第1
6図の動作70と71)より本質的に容易である。先に
述べたとうり、前者の情報は前進差分の技法により計算
される。後者の情報は、uv空間の任意の点に対し、x
yz空間の頂点位置と頂点における表面法線ベクトルと
を評価することを含んでいる。概念的に差違はないが、
これははるかに時間がかかる操作である。
ストに追加すること(第16図の動作69)はトリミン
グ曲線に沿う点に対する多角形リストに追加する(第1
6図の動作70と71)より本質的に容易である。先に
述べたとうり、前者の情報は前進差分の技法により計算
される。後者の情報は、uv空間の任意の点に対し、x
yz空間の頂点位置と頂点における表面法線ベクトルと
を評価することを含んでいる。概念的に差違はないが、
これははるかに時間がかかる操作である。
第17図は第16図に流れ図の形で示したのと同じ動作
を行う擬似コードの簡略部分である。違うのは第17図
が第9図のステップ8〜11に関連して述べた裏構造を
更に多く取入れていることである。
を行う擬似コードの簡略部分である。違うのは第17図
が第9図のステップ8〜11に関連して述べた裏構造を
更に多く取入れていることである。
表面多角形をトリムする好ましい方法の提示を方法に組
入れることができる一定の向上操作を検討することで締
めくくることにする0次の数節でトリミング曲線関数の
理想的パラメータ化とはほど遠い効果を最小にし、各要
素スパンおよびその多角形を処理しながら考察しなけれ
ばならないトリミング曲線の数を最小にまで減らす方法
を考えよう。
入れることができる一定の向上操作を検討することで締
めくくることにする0次の数節でトリミング曲線関数の
理想的パラメータ化とはほど遠い効果を最小にし、各要
素スパンおよびその多角形を処理しながら考察しなけれ
ばならないトリミング曲線の数を最小にまで減らす方法
を考えよう。
理想的には、Uの等しい増進とVの等しい増進とを生ず
るのにtの等しいステップが欲しい、この性質はトリミ
ング曲線を表わすのに選定したBスプライン関数の性質
から生ずるもので、多かれ少かれ得ることができる。こ
のような同等性が得られれば、トリミング曲線関数に対
する良好なパラメータ化が存在すると言われる。悪いパ
ラメータ化はいつでも避けることができるとはかぎらず
、補正されないままになっているとトリミング・プロセ
スに一定の問題が生ずる。特に、トリムされた多角形に
対する多角形頂点の数がはなはだしく大きくなる可能性
がある。こうなると、今度は、多角形のトリミングに割
当てなければならないメモリの量が増加する。特定の利
益の無い現象を収容するのにメモリを追加するのではな
く、もっと満足な方法はトリミング曲線関数をtの所定
のステップの大きさで評価することにより生じたuv対
を調べ、その先行者から光分離れていないものを抑制す
ることである。説明しようとしているものへのこれ以上
の概説については、第8図の説明を参照のこと。
るのにtの等しいステップが欲しい、この性質はトリミ
ング曲線を表わすのに選定したBスプライン関数の性質
から生ずるもので、多かれ少かれ得ることができる。こ
のような同等性が得られれば、トリミング曲線関数に対
する良好なパラメータ化が存在すると言われる。悪いパ
ラメータ化はいつでも避けることができるとはかぎらず
、補正されないままになっているとトリミング・プロセ
スに一定の問題が生ずる。特に、トリムされた多角形に
対する多角形頂点の数がはなはだしく大きくなる可能性
がある。こうなると、今度は、多角形のトリミングに割
当てなければならないメモリの量が増加する。特定の利
益の無い現象を収容するのにメモリを追加するのではな
く、もっと満足な方法はトリミング曲線関数をtの所定
のステップの大きさで評価することにより生じたuv対
を調べ、その先行者から光分離れていないものを抑制す
ることである。説明しようとしているものへのこれ以上
の概説については、第8図の説明を参照のこと。
第18図によりuv空間のスパンで示したトリミング曲
線72を考える。Δt73の等しいステップの大きさか
ら異なるΔu74と異なるΔv75とが生ずる6曲線7
2に付けたq印の離れた距離はどれだけ異なっているか
に注意、これらはt空間で等距離離れたV印に対応する
uv空間の評価座標である。
線72を考える。Δt73の等しいステップの大きさか
ら異なるΔu74と異なるΔv75とが生ずる6曲線7
2に付けたq印の離れた距離はどれだけ異なっているか
に注意、これらはt空間で等距離離れたV印に対応する
uv空間の評価座標である。
第8図のおよび第9図のステップ6の説明から、tのス
テップの大きさ(Δt)は、パッチの縁に沿って測った
多角形頂点間の距離(この距離をエツジ・ステップ・サ
イズと言うことがある)にほぼ等しいΔUとΔVとの最
大値を生ずるように選ばれることを想起する。すなわち
第18図の△t73の選び方である0例示の目的で、第
18図に示す最大ΔV75を使用して△tを求めると仮
定する。手近の例ではΔVは△Uより大きくなる傾向が
ある。
テップの大きさ(Δt)は、パッチの縁に沿って測った
多角形頂点間の距離(この距離をエツジ・ステップ・サ
イズと言うことがある)にほぼ等しいΔUとΔVとの最
大値を生ずるように選ばれることを想起する。すなわち
第18図の△t73の選び方である0例示の目的で、第
18図に示す最大ΔV75を使用して△tを求めると仮
定する。手近の例ではΔVは△Uより大きくなる傾向が
ある。
異なるトリミング曲線については、最大ΔUは最大ΔV
より大き(て△tを選定するのに使用される場合がある
。Δtを選定するプロセスを第9図のステップ6に関連
して説明する。△t73の等しいステップの大きさでそ
の機能を評価することにより得られるトリミング曲線7
2の直線線分近似は少くとも一つのΔUおよび△Vが縁
のメツシュの大きさの52パーセントより大きくなけれ
ばならないとすることにより向上する。こうするものが
なければuv空間のその点が無視され、次のものが考慮
され、以下同様、この技法によれば、点76が無視され
、直線線分77が点78から点79まで動くことになる
。各Bスプライン・トリミング曲線線分に沿う最初の点
は点選定プロセスが始まる最初の点である。これにより
Bスプライン・トリミング曲線線分は意図どうり相互に
確実に接合される。
より大き(て△tを選定するのに使用される場合がある
。Δtを選定するプロセスを第9図のステップ6に関連
して説明する。△t73の等しいステップの大きさでそ
の機能を評価することにより得られるトリミング曲線7
2の直線線分近似は少くとも一つのΔUおよび△Vが縁
のメツシュの大きさの52パーセントより大きくなけれ
ばならないとすることにより向上する。こうするものが
なければuv空間のその点が無視され、次のものが考慮
され、以下同様、この技法によれば、点76が無視され
、直線線分77が点78から点79まで動くことになる
。各Bスプライン・トリミング曲線線分に沿う最初の点
は点選定プロセスが始まる最初の点である。これにより
Bスプライン・トリミング曲線線分は意図どうり相互に
確実に接合される。
52パーセントという判定基準は受容可能な最短と最長
との直線線分の間に存在する関係から出て来る。この関
係は、一方において受容可能な最長直線線分(45°に
なっているもの)がエツジ・ステップ・サイズを超す量
と他方において受容可能な最短直線線分(水平または垂
直になりでいるもの)がエツジ・ステップ・サイズより
小さい量との間の同等性を含んでいる。所望の同等性の
関係は選択判定基準がエツジ・ステップ・サイズのほぼ
52パーセントであるとき得られることが示される。
との直線線分の間に存在する関係から出て来る。この関
係は、一方において受容可能な最長直線線分(45°に
なっているもの)がエツジ・ステップ・サイズを超す量
と他方において受容可能な最短直線線分(水平または垂
直になりでいるもの)がエツジ・ステップ・サイズより
小さい量との間の同等性を含んでいる。所望の同等性の
関係は選択判定基準がエツジ・ステップ・サイズのほぼ
52パーセントであるとき得られることが示される。
要素スパンおよびその多角形を処理しているときに考慮
しなければならないトリミング曲線の数は以下の技法を
使用すれば減らすことができる。
しなければならないトリミング曲線の数は以下の技法を
使用すれば減らすことができる。
簡単に言えば、スパン内の各トリミング曲線線分の位置
に関する情報はそのBスプラインの定義と関係している
。この情報はおそらく処理されようとしている要素スパ
ンと交差することができない線分を考察から除外するの
に使用される。
に関する情報はそのBスプラインの定義と関係している
。この情報はおそらく処理されようとしている要素スパ
ンと交差することができない線分を考察から除外するの
に使用される。
新しいパッチに対する最初の多角形を作る前に各トリミ
ング曲線のBスプライン線分ごとにVex ten t
を見つける。 Vextentは第18図に関連して
説明したパラメータ化を向上して得られる(u。
ング曲線のBスプライン線分ごとにVex ten t
を見つける。 Vextentは第18図に関連して
説明したパラメータ化を向上して得られる(u。
■)対の集合の最小V値から最大V値までのVの範囲で
ある。以下に記すUex ten tも同様に定義され
る。各Bスプライン線分に対するVextentはパッ
チに対するトリミング曲線を備えたデータ構造内の場所
に格納される。
ある。以下に記すUex ten tも同様に定義され
る。各Bスプライン線分に対するVextentはパッ
チに対するトリミング曲線を備えたデータ構造内の場所
に格納される。
多角形は要素スパンを行方向に順序づけして作られるこ
とを想起すること、第1O図の説明を参照。
とを想起すること、第1O図の説明を参照。
多角形の各行の始めにパッチに対する各トリミング曲線
線分のVextentを調べる。現在の行のVの範囲と
重なるVextentを備えるトリミング曲線線分を更
に評価してその関連のUextentを探す、このよう
な各型なり線分のUex ten tもトリミング曲線
のデータ構造に格納される。
線分のVextentを調べる。現在の行のVの範囲と
重なるVextentを備えるトリミング曲線線分を更
に評価してその関連のUextentを探す、このよう
な各型なり線分のUex ten tもトリミング曲線
のデータ構造に格納される。
行に沿う各多角形についてそのUextentとVex
ten tとが共に現在の要素スパンと重なるBスプ
ライン線分だけを第6図〜第16図と関連して説明する
クリッピング・トリミング・プロセスで考える。たとえ
ば、第6図を再び参照して、トリミング曲線線分80は
パッチ12の行82の要素スパン・多角形に対しては重
要でない。線分8oは行82のVex ten tに重
なるVex ten tを備えていない。一方、線分8
1のVex ten tは行82のVex ten t
と重ならず、線分81のUextentは行82に沿う
要素スパンを処理する前に計算される。線分81のUe
xtentは要素スパン83のUextentと重なる
から、トリミング曲線11のBスプライン線分81はそ
の要素スパンに関するクリッピング・トリミング動作に
含まれる。線分80は行82に沿う要素スパン・多角形
に関する動作に含まれず、更にたとえば、要素スパン8
4と関連して使用されることもない、また同じように、
線分80も線分81も行85に沿う要素スパン・多角形
に関する動作に含まれることはなく、それら線分に対す
るVextentがその行に対するVextentと重
なることはない。
ten tとが共に現在の要素スパンと重なるBスプ
ライン線分だけを第6図〜第16図と関連して説明する
クリッピング・トリミング・プロセスで考える。たとえ
ば、第6図を再び参照して、トリミング曲線線分80は
パッチ12の行82の要素スパン・多角形に対しては重
要でない。線分8oは行82のVex ten tに重
なるVex ten tを備えていない。一方、線分8
1のVex ten tは行82のVex ten t
と重ならず、線分81のUextentは行82に沿う
要素スパンを処理する前に計算される。線分81のUe
xtentは要素スパン83のUextentと重なる
から、トリミング曲線11のBスプライン線分81はそ
の要素スパンに関するクリッピング・トリミング動作に
含まれる。線分80は行82に沿う要素スパン・多角形
に関する動作に含まれず、更にたとえば、要素スパン8
4と関連して使用されることもない、また同じように、
線分80も線分81も行85に沿う要素スパン・多角形
に関する動作に含まれることはなく、それら線分に対す
るVextentがその行に対するVextentと重
なることはない。
今度は第19図を参脇すると、本発明の方法を具体化す
る実際の図形処理システムを絵画的に表わしである。特
に、図形処理システムは、コンピュータ86、キーボー
ド87、ノブ・ボックス88、ボタン・ボックス89、
およびマウス90を備えている。
る実際の図形処理システムを絵画的に表わしである。特
に、図形処理システムは、コンピュータ86、キーボー
ド87、ノブ・ボックス88、ボタン・ボックス89、
およびマウス90を備えている。
コンピュータ86はこの明細書の始めに述べたソフトウ
ェアを実行することができ、ユーザと対話して表面とそ
のトリミング曲線とのBスプライン記述を作製する。コ
ンピュータ86は高速ローカル図形処理母線92を介し
て図形処理加速器91と結合している0図形処理加速器
91は、赤、緑、および青(RGB)の各ビデオ信号を
伝える3本の同軸ケーブルを介してカラー・モニタ94
に結合されている。
ェアを実行することができ、ユーザと対話して表面とそ
のトリミング曲線とのBスプライン記述を作製する。コ
ンピュータ86は高速ローカル図形処理母線92を介し
て図形処理加速器91と結合している0図形処理加速器
91は、赤、緑、および青(RGB)の各ビデオ信号を
伝える3本の同軸ケーブルを介してカラー・モニタ94
に結合されている。
上述のトリミング動作は完全に図形処理加速器91の内
部で行われる。今まで述べたトリミングの方法はコンピ
ュータ86のソフトウェアで行うことができると考えら
れるが、このような方法は適切なハードウェアによるト
リミングと比較して性能が落ちるため実質上不利である
。この目標および他の目標を達成するため、図形処理加
速器91は多数の命令を実行することによりコンビエー
タ86に応答する。それらのいくつかを挙げると、図形
処理加速器に一つ以上のトリミング曲線をデータ構造に
格納するように指示すること、データ構造に表面パッチ
の定義を格納し、あらかじめ定義したトリミング曲線に
従ってトリミングして表現すること、あらかじめ定義し
たすべてのトリミング曲線を削除する命令がある。ON
フラグのスタックを押してはじき出す命令もある。所定
パッチの右上隅および左下隅のONフラグは二つの別々
のスタックに保存されてパンチを細分しやすくしている
。
部で行われる。今まで述べたトリミングの方法はコンピ
ュータ86のソフトウェアで行うことができると考えら
れるが、このような方法は適切なハードウェアによるト
リミングと比較して性能が落ちるため実質上不利である
。この目標および他の目標を達成するため、図形処理加
速器91は多数の命令を実行することによりコンビエー
タ86に応答する。それらのいくつかを挙げると、図形
処理加速器に一つ以上のトリミング曲線をデータ構造に
格納するように指示すること、データ構造に表面パッチ
の定義を格納し、あらかじめ定義したトリミング曲線に
従ってトリミングして表現すること、あらかじめ定義し
たすべてのトリミング曲線を削除する命令がある。ON
フラグのスタックを押してはじき出す命令もある。所定
パッチの右上隅および左下隅のONフラグは二つの別々
のスタックに保存されてパンチを細分しやすくしている
。
パッチを要素パッチに細分するのは所定のパッチに入っ
ているトリミング曲線が多過ぎるときに行われる0図形
処理加速器91で処理することができる単一パッチに対
してトリミング曲線の数を制限する実際的、かつ費用に
関連する問題(すなわち、メモリのりがある。
ているトリミング曲線が多過ぎるときに行われる0図形
処理加速器91で処理することができる単一パッチに対
してトリミング曲線の数を制限する実際的、かつ費用に
関連する問題(すなわち、メモリのりがある。
上述のメモリの限界はパッチに適用できるトリミング曲
線の数を実際上限定するものではない。
線の数を実際上限定するものではない。
コンピュータのソフトウェアは所定のパンチに対するト
リミング曲線の数が約40から60を超したときパッチ
を細分する必要性を決定する。(ソフトウェアは図形処
理加速器の限界を認識するか0、あるいは図形処理加速
器から送られたオーバーフローの指示に応じて細分する
かのいずれかを行うことができる。)あらかじめ細分さ
れていないパッチは16回まで分割することができる。
リミング曲線の数が約40から60を超したときパッチ
を細分する必要性を決定する。(ソフトウェアは図形処
理加速器の限界を認識するか0、あるいは図形処理加速
器から送られたオーバーフローの指示に応じて細分する
かのいずれかを行うことができる。)あらかじめ細分さ
れていないパッチは16回まで分割することができる。
細分の動作ごとに手近のパッチを4ケの要素パッチに分
割することができる。
割することができる。
細分が発生するたびに、既に表現されている適切な他の
パンチのONフラグがそのスタック上に押される。各パ
ッチの多角形の最後の行の最初の多角形の頂点!に対し
て一つのスタックがあり、各パッチの多角形の最初の行
の最後の多角形の頂点■に対してもう一つのスタックが
ある。これらスタックはコンピュータ86が実行するソ
フトウェアと協同して別々に維持される。パッチ細分化
に対して得られる機構はパンチをトリミングする上述の
方法に対して透明である。その方法は、手近のバッチが
要素パッチであると否とに関係な(、常に同じ仕方で動
作する。
パンチのONフラグがそのスタック上に押される。各パ
ッチの多角形の最後の行の最初の多角形の頂点!に対し
て一つのスタックがあり、各パッチの多角形の最初の行
の最後の多角形の頂点■に対してもう一つのスタックが
ある。これらスタックはコンピュータ86が実行するソ
フトウェアと協同して別々に維持される。パッチ細分化
に対して得られる機構はパンチをトリミングする上述の
方法に対して透明である。その方法は、手近のバッチが
要素パッチであると否とに関係な(、常に同じ仕方で動
作する。
第20A図〜第20C図は第19図に示す図形処理加速
器91のブロック図である。インターフェース機構95
はトリミング曲線およびコンピュータ86からのバッチ
定義命令を変換エンジン96と結び付ける。
器91のブロック図である。インターフェース機構95
はトリミング曲線およびコンピュータ86からのバッチ
定義命令を変換エンジン96と結び付ける。
定義はマイクロシーケンサ97によりデータRAM98
に格納されている。マイクロシーケンサはこれらの定義
に基いて動作し、トリムされた多角形の頂点の座標を発
生する。トリムされた多角形の頂点の画面座標はDC(
装置座標)母線99を経由して走査変換器100に送ら
れ、ここで多角形表現のプロセスがピクセル・レベル(
たとえば、区域充填、またはぼかしのためのカラー挿間
)で更に行われる。
に格納されている。マイクロシーケンサはこれらの定義
に基いて動作し、トリムされた多角形の頂点の座標を発
生する。トリムされた多角形の頂点の画面座標はDC(
装置座標)母線99を経由して走査変換器100に送ら
れ、ここで多角形表現のプロセスがピクセル・レベル(
たとえば、区域充填、またはぼかしのためのカラー挿間
)で更に行われる。
マイクロシーケンサ97は各種の整数・浮動小数点演算
ユニットと関連して動作するが、たとえば八dvanc
ed Micro Devices社のA M D29
10を使用することができる。
ユニットと関連して動作するが、たとえば八dvanc
ed Micro Devices社のA M D29
10を使用することができる。
以上説明したように、本発明を用いることにより、Bス
プラインの効用を保持したまま表面記述のその技術によ
り得られる利点が活用でき、しかも同時に、丸め誤差が
少なく、高速トリミングができるようになる。
プラインの効用を保持したまま表面記述のその技術によ
り得られる利点が活用でき、しかも同時に、丸め誤差が
少なく、高速トリミングができるようになる。
第1図は不拘−有理Bスプラインのようなパラメトリッ
クバッチ発生関数で二次元uvパラメータ空間のスパン
をXYZ空間へ写像することにより形成されたパンチに
よってXYZ空間内に近似された表面を示す図である。 第2図は表面から削除される領域を区分するためにXY
Z空間へ写像されうる、uv空間内のトリミング曲線を
、−次元を空間のパラメトリック関数が規定しうる様子
を示す図である。 第3図は一次元を空間のいくつかのスパンにわたって分
けられ、二次元uv空間のトリミング曲線を規定するパ
ラメトリック・トリミング曲線関数を示す図である。 第4図は分割されたトリミング曲線関数がuv空間の数
スパンを横断し、xYZ空間の対応する数のパッチ内に
、写像されたトリミング曲線を規定する様子を示す図で
ある。 第5図は第4図の分割トリミング曲線を、より詳細に示
す図である。 第6図は、uv空間のスパンが要素スパンに分割された
XYZ空間の表面用の表面近似多角形を生ずる様子を示
し、また、uV空間のトリミング曲線が要素スパンを横
断する一方、写像されたトリミング曲線が表面上の多角
形をトリムすることを示す図である。 第7図は第6図の部分拡大図である。 第8図は第7図の部分拡大図であって、写像されたトリ
ミング曲線が横断することにより多角形の形状が変化す
る様子を示す図である。 第9A図、第9B図、及び第9C図は写像されたトリミ
ング曲線により横断され、それに従って形状が調整され
る多角形を発生するのに用いられる処理ステップを記述
した擬似コードの簡略部を示す図である。 第10図はxyz空間の表面用の近似多角形を作成する
のに要素スパンが取られるスパン内の順序を示す図であ
る。 第11図はスパン上で規定されたトリミング曲線のいく
つかの形式を示す図であって、算術丸め誤差を避けるの
に役立つスパンの回りのガード領域の存在を示す図であ
る。 第12A図及び第12B図は要素スパンを横断してトリ
ミング曲線の直線線分と要素スパンの境界との間の交点
を生ずるトリミング曲線の近似点、v!線分上で、クリ
ッピング機構が動作する様子を示す図である。 第13A図及び第13B図はトリミング曲線が当該要素
スパンの境界へきわめて近接しているuv空間内の点を
表わす、ある特別の場合を示す図である。 第14図はある特定のトリミング曲線によって横断され
るuv空間内の要素スパンの有用な例を示す図である。 第15図は第14図の例に対応する頂点表層のトリミン
グ曲線サブリスト及びリンクされた境界リストの簡略化
表示を示す図である。 第16A図、第16B図、及び第16C図は第9C図の
ステップ12にしたがって頂点表のリンクされたリスト
を処理するための簡略フローチャートを含む図である。 第17図は第16A図ないし第16C図と同様の主題に
適する1412コードの簡略部を示す図である。 第18図はuv空間におけるトリミング曲線を示施例に
用いられるハードウェアの簡略プロ7り図 。 である。 第20A図、第20B図、及び第20C図は第19図の
図形処理加速器の簡略ハードウェア・ブロック図を備え
た図である。 86:コンピュータ 91:図形処理加速器94
:カラーモニター cカ ()−J O〕 d、1 へ (イ) 図面の、′i・ガ 舅 ト ド C,R1− 手続補正書 昭和63年02月1乙日 1、事件の表示 昭和63年02月05日出願
の特許111(2)3、補正をする者 事件との関係 特 許 出 願 人4、代
理人
クバッチ発生関数で二次元uvパラメータ空間のスパン
をXYZ空間へ写像することにより形成されたパンチに
よってXYZ空間内に近似された表面を示す図である。 第2図は表面から削除される領域を区分するためにXY
Z空間へ写像されうる、uv空間内のトリミング曲線を
、−次元を空間のパラメトリック関数が規定しうる様子
を示す図である。 第3図は一次元を空間のいくつかのスパンにわたって分
けられ、二次元uv空間のトリミング曲線を規定するパ
ラメトリック・トリミング曲線関数を示す図である。 第4図は分割されたトリミング曲線関数がuv空間の数
スパンを横断し、xYZ空間の対応する数のパッチ内に
、写像されたトリミング曲線を規定する様子を示す図で
ある。 第5図は第4図の分割トリミング曲線を、より詳細に示
す図である。 第6図は、uv空間のスパンが要素スパンに分割された
XYZ空間の表面用の表面近似多角形を生ずる様子を示
し、また、uV空間のトリミング曲線が要素スパンを横
断する一方、写像されたトリミング曲線が表面上の多角
形をトリムすることを示す図である。 第7図は第6図の部分拡大図である。 第8図は第7図の部分拡大図であって、写像されたトリ
ミング曲線が横断することにより多角形の形状が変化す
る様子を示す図である。 第9A図、第9B図、及び第9C図は写像されたトリミ
ング曲線により横断され、それに従って形状が調整され
る多角形を発生するのに用いられる処理ステップを記述
した擬似コードの簡略部を示す図である。 第10図はxyz空間の表面用の近似多角形を作成する
のに要素スパンが取られるスパン内の順序を示す図であ
る。 第11図はスパン上で規定されたトリミング曲線のいく
つかの形式を示す図であって、算術丸め誤差を避けるの
に役立つスパンの回りのガード領域の存在を示す図であ
る。 第12A図及び第12B図は要素スパンを横断してトリ
ミング曲線の直線線分と要素スパンの境界との間の交点
を生ずるトリミング曲線の近似点、v!線分上で、クリ
ッピング機構が動作する様子を示す図である。 第13A図及び第13B図はトリミング曲線が当該要素
スパンの境界へきわめて近接しているuv空間内の点を
表わす、ある特別の場合を示す図である。 第14図はある特定のトリミング曲線によって横断され
るuv空間内の要素スパンの有用な例を示す図である。 第15図は第14図の例に対応する頂点表層のトリミン
グ曲線サブリスト及びリンクされた境界リストの簡略化
表示を示す図である。 第16A図、第16B図、及び第16C図は第9C図の
ステップ12にしたがって頂点表のリンクされたリスト
を処理するための簡略フローチャートを含む図である。 第17図は第16A図ないし第16C図と同様の主題に
適する1412コードの簡略部を示す図である。 第18図はuv空間におけるトリミング曲線を示施例に
用いられるハードウェアの簡略プロ7り図 。 である。 第20A図、第20B図、及び第20C図は第19図の
図形処理加速器の簡略ハードウェア・ブロック図を備え
た図である。 86:コンピュータ 91:図形処理加速器94
:カラーモニター cカ ()−J O〕 d、1 へ (イ) 図面の、′i・ガ 舅 ト ド C,R1− 手続補正書 昭和63年02月1乙日 1、事件の表示 昭和63年02月05日出願
の特許111(2)3、補正をする者 事件との関係 特 許 出 願 人4、代
理人
Claims (1)
- (1)次の(イ)〜(ト)の各段階を含むことを特徴と
する表面パッチ・パラメトリック記述のトリミング方法
。 (イ)相互連結線線分がトリムされるべき領域の境界で
あるパラメータ空間のトリムされていない点の順序集合
を選択する段階。 (ロ)トリミング関数を評価して前記パラメータ空間の
トリミング点の順序集合を得る段階。 (ハ)前記トリミング点を結ぶ直線線分とトリムされる
べき前記表面パッチの境界との間の交点を求める段階。 (ニ)トリムされるべき前記表面パッチの内側にあるト
リミング点の順序集合を区別する段階。 (ホ)トリムされていない点の前記順序集合と、前記交
点と、トリムされるべき前記表面パッチの内側点の順序
集合とをデータ構造内へ差挟む段階。 (ヘ)トリムされる領域を記述する前記点を識別し、選
択するために前記データ構造を横断する段階。 (ト)トリムされる前記表面パッチとして識別され、選
択された点を表現する段階。
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 true JPH01201777A (ja) | 1989-08-14 |
| JP2771813B2 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) | EP0464962B1 (ja) |
| JP (1) | JP2771813B2 (ja) |
| DE (6) | DE3855541T2 (ja) |
Families Citing this family (83)
| 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 |
| JPH0766451B2 (ja) * | 1989-10-24 | 1995-07-19 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | コンピュータ・グラフィック装置 |
| 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データ変換方法及び装置 |
| 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 |
| WO1995012485A1 (en) * | 1993-11-02 | 1995-05-11 | Hitachi, Ltd. | Method of correcting thickness of excessive curing of photomolded article and apparatus therefor |
| US5649079A (en) * | 1994-02-28 | 1997-07-15 | Holmes; David I. | Computerized method using isosceles triangles for generating surface points |
| AU2365595A (en) * | 1994-04-25 | 1995-11-16 | 3D Systems, Inc. | 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 |
| 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 |
| 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 |
| 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> | 領域分割処理装置およびその方法 |
| JP2003505800A (ja) * | 1999-07-23 | 2003-02-12 | カーヴエンタ ソフトワークス,エルエルシー | 制御幾何(コントロールジェオメトリ)を用いた幾何学的設計およびモデリングシステム |
| 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 |
| EP1139294B1 (en) * | 2000-03-30 | 2016-09-21 | S3 Graphics Co., Ltd. | Graphical image system and apparatus |
| 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 |
| AU2010354051B2 (en) * | 2010-05-27 | 2014-07-10 | Landmark Graphics Corporation | Method and system of rendering well log values |
| 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 | 华中科技大学 | 一种可在线插补的机器人小线段轨迹局部光顺方法及系统 |
| US12272018B2 (en) * | 2022-07-15 | 2025-04-08 | The Boeing Company | Modeling system for 3D virtual model |
| US20260087740A1 (en) * | 2024-09-24 | 2026-03-26 | Roblox Corporation | Merging coplanar convex polygons in constructive solid geometry (csg) |
Family Cites Families (12)
| 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 |
| CA1274919A (en) * | 1985-07-27 | 1990-10-02 | Akio Ohba | Method of forming curved surfaces and the apparatus |
| 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 |
-
1987
- 1987-02-05 US US07/011,667 patent/US4999789A/en not_active Expired - Lifetime
-
1988
- 1988-02-04 DE DE3855541T patent/DE3855541T2/de not_active Expired - Fee Related
- 1988-02-04 DE DE3855639T patent/DE3855639T2/de not_active Expired - Fee Related
- 1988-02-04 DE DE3856110T patent/DE3856110D1/de not_active Expired - Lifetime
- 1988-02-04 DE DE3855011T patent/DE3855011T2/de not_active Expired - Fee Related
- 1988-02-04 DE DE3889134T patent/DE3889134T2/de not_active Expired - Fee Related
- 1988-02-04 EP EP91202443A patent/EP0464962B1/en not_active Expired - Lifetime
- 1988-02-04 EP EP88300942A patent/EP0277832B1/en not_active Expired - Lifetime
- 1988-02-04 DE DE3855012T patent/DE3855012T2/de not_active Expired - Fee Related
- 1988-02-04 EP EP91202441A patent/EP0466281B1/en not_active Expired - Lifetime
- 1988-02-04 EP EP91202445A patent/EP0464963B1/en not_active Expired - Lifetime
- 1988-02-04 EP EP91202442A patent/EP0466282B1/en not_active Expired - Lifetime
- 1988-02-04 EP EP91202444A patent/EP0466283B1/en not_active Expired - Lifetime
- 1988-02-05 JP JP63026402A patent/JP2771813B2/ja not_active Expired - Lifetime
-
1991
- 1991-12-06 US US07/804,863 patent/US5353389A/en not_active Expired - Lifetime
- 1991-12-06 US US07/803,503 patent/US5303386A/en not_active Expired - Fee Related
- 1991-12-06 US US07/804,861 patent/US5363478A/en not_active Expired - Lifetime
-
1992
- 1992-08-05 US US07/926,140 patent/US5299302A/en not_active Expired - Fee Related
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH01201777A (ja) | 三次元図形処理システムにおけるパッチのbスプライン記述のトリミング方法 | |
| US5509110A (en) | Method for tree-structured hierarchical occlusion in image generators | |
| US7292255B2 (en) | Image data acquisition optimisation | |
| US5500927A (en) | System and method for simplifying a computer-generated path | |
| US20170124761A1 (en) | Compression of a three-dimensional modeled object | |
| JP2002501640A (ja) | プログレッシブメッシュの適応細分方法および装置 | |
| US7692652B2 (en) | Selectively transforming overlapping illustration artwork | |
| JPH0251786A (ja) | 走査変換方法 | |
| JPH04287292A (ja) | トリミングされたパラメトリック面のレンダリング方法及び装置 | |
| JPH03176784A (ja) | コンピュータ・グラフィックスにおけるポリゴン分解方法及びシステム | |
| US5226115A (en) | Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system | |
| TWI470577B (zh) | 重疊物件的繪製方法及裝置 | |
| US5243694A (en) | Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system | |
| US6147689A (en) | Displaying 2D patches with foldover | |
| JP3706662B2 (ja) | 画像処理方法及び装置 | |
| Buzer | Optimal simplification of polygonal chains for subpixel-accurate rendering | |
| JP2002208028A (ja) | 多角形のジオメトリクリッピング装置 | |
| JP3018151B2 (ja) | 3次元図形データの演算処理方法及びその装置 | |
| CN121353571A (zh) | 基于虚幻引擎的模型制作开发方法、设备、介质及产品 | |
| JPH0554148A (ja) | 多角形クリツピング方式 | |
| JPH09185700A (ja) | 基準線周りのポリゴン自動作成方法およびそのための装置 | |
| JPH1021402A (ja) | 画像分割方法及びその装置 |