JPH0766451B2 - コンピュータ・グラフィック装置 - Google Patents
コンピュータ・グラフィック装置Info
- Publication number
- JPH0766451B2 JPH0766451B2 JP24767390A JP24767390A JPH0766451B2 JP H0766451 B2 JPH0766451 B2 JP H0766451B2 JP 24767390 A JP24767390 A JP 24767390A JP 24767390 A JP24767390 A JP 24767390A JP H0766451 B2 JPH0766451 B2 JP H0766451B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- curve
- coordinates
- span
- processor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Description
【発明の詳細な説明】 A. 産業上の利用分野 本発明は、一般的には、コンピュータ・グラフィクに関
し、特にパラメトリック・カーブの評価とレンダリング
を行う装置に関する。
し、特にパラメトリック・カーブの評価とレンダリング
を行う装置に関する。
B. 従来技術及び課題 コンピュータ技術の発展に伴い、コンピュータによって
生成されたグラフィカルな情報を表現する方法に工夫が
凝らされ、洗練された技術が生まれている。この技術は
コンピュータ・グラフィクスと呼ばれる。この数年、実
物に近いイメージに対する需要の伸びと平行して、科学
技術分野に3次元(3D)コンピュータ・グラフィクスを
用いるケースが増えている。
生成されたグラフィカルな情報を表現する方法に工夫が
凝らされ、洗練された技術が生まれている。この技術は
コンピュータ・グラフィクスと呼ばれる。この数年、実
物に近いイメージに対する需要の伸びと平行して、科学
技術分野に3次元(3D)コンピュータ・グラフィクスを
用いるケースが増えている。
現在のコンピュータ・グラフィクスのディスプレイは、
線、マーカ、多角形に加えて、パラメトリック・カーブ
など、より一般的なジオメトリック・プリミティブをサ
ポートしている。しかし、このようなコンピュータ・グ
ラフィクス・ディスプレイ・システムでカーブの評価と
レンダリングを行う方法は、いままでは、効率が悪く、
複雑で高価な外部制御ロジックを必要とすることが多か
った。
線、マーカ、多角形に加えて、パラメトリック・カーブ
など、より一般的なジオメトリック・プリミティブをサ
ポートしている。しかし、このようなコンピュータ・グ
ラフィクス・ディスプレイ・システムでカーブの評価と
レンダリングを行う方法は、いままでは、効率が悪く、
複雑で高価な外部制御ロジックを必要とすることが多か
った。
パラメトリック・カーブは、Bスプライン形式で表現で
きることが知られており、他の形式も、それからカーブ
の評価とセンタリングが試みられている。たとえば従来
のCAD/CAMアプリケーションでは、グラフィクス・ワー
クステーションを用いるために、ホスト・コンピュータ
のデータベースに格納されたカーブを形作るポリライン
をBスプライン・カーブとして送り込む。ホスト・コン
ピュータは、このプロシージャに従って、スプライン・
カーブを直線ベクトルに分解し、直線ベクトルをグラフ
ィクス・ワークステーションに送る。ここで従来の処理
とこれに続く表示が行われる。このプロシージャは効率
が悪く、Bスプラインに特有のメリットを活かせない。
きることが知られており、他の形式も、それからカーブ
の評価とセンタリングが試みられている。たとえば従来
のCAD/CAMアプリケーションでは、グラフィクス・ワー
クステーションを用いるために、ホスト・コンピュータ
のデータベースに格納されたカーブを形作るポリライン
をBスプライン・カーブとして送り込む。ホスト・コン
ピュータは、このプロシージャに従って、スプライン・
カーブを直線ベクトルに分解し、直線ベクトルをグラフ
ィクス・ワークステーションに送る。ここで従来の処理
とこれに続く表示が行われる。このプロシージャは効率
が悪く、Bスプラインに特有のメリットを活かせない。
米国特許第4760548号明細書は、カーブをビジュアルに
表現する装置について説明している。ここでカーブ・デ
ータは、比例整変数を用いた前進差分法で求められたB
スプライン式によって与えられる。ただしこの方法には
いくつか欠点がある。サポートされるのは、広範なNURB
S(non−uniform rational b−splines)クラスのサブ
セットである。uniform non−rational b−splinesだけ
であり、円など、ある種のカーブについては効果的なレ
ンダリングができない。これは初期の方法であり、カー
ブを成す隣接するスパンから離れた個々のスパンに適用
され、前進差分アルゴリズムに浮動小数点演算の場合に
生じる誤差の累積を避けるために、整数演算にたよる。
こうした制限から、効率、高速性、有用性がかなり犠牲
になる。
表現する装置について説明している。ここでカーブ・デ
ータは、比例整変数を用いた前進差分法で求められたB
スプライン式によって与えられる。ただしこの方法には
いくつか欠点がある。サポートされるのは、広範なNURB
S(non−uniform rational b−splines)クラスのサブ
セットである。uniform non−rational b−splinesだけ
であり、円など、ある種のカーブについては効果的なレ
ンダリングができない。これは初期の方法であり、カー
ブを成す隣接するスパンから離れた個々のスパンに適用
され、前進差分アルゴリズムに浮動小数点演算の場合に
生じる誤差の累積を避けるために、整数演算にたよる。
こうした制限から、効率、高速性、有用性がかなり犠牲
になる。
米国特許第4855935号明細書は、“Method and Apparatu
s For Rendering Vectors Using Bresenham Parameter
s"について説明している。この方法も、米国特許第4760
548号明細書と同様、NURBSをサポートせず、前進差分ア
ルゴリズムに依存する度合いが高く、隣接するスパンか
ら離れた個々のスパンに適用され、整数演算にたよるほ
か、3次式に特有のものと思われ、カーブを直接個々の
ピクセルに変換する。
s For Rendering Vectors Using Bresenham Parameter
s"について説明している。この方法も、米国特許第4760
548号明細書と同様、NURBSをサポートせず、前進差分ア
ルゴリズムに依存する度合いが高く、隣接するスパンか
ら離れた個々のスパンに適用され、整数演算にたよるほ
か、3次式に特有のものと思われ、カーブを直接個々の
ピクセルに変換する。
従来の方法には、パラメトリック・カーブの評価とレン
ダリングを行うときにNURBSデータを充分に活用してい
るものがない。ここから、パラメトリック・カーブを表
すNURBSデータの評価とレンダリングの高効率化、高精
度化、高速化を実現する装置および方法が求められてい
る。インタラクティブな3Dグラフィクスの標準として提
案されているPHIGS(Programmer′s Hierarchical Inte
ractive Graphics Standard)PLUSは、NURBSを基にカー
ブの定義をサポートしていることから、このニーズを促
進する標準となっている。
ダリングを行うときにNURBSデータを充分に活用してい
るものがない。ここから、パラメトリック・カーブを表
すNURBSデータの評価とレンダリングの高効率化、高精
度化、高速化を実現する装置および方法が求められてい
る。インタラクティブな3Dグラフィクスの標準として提
案されているPHIGS(Programmer′s Hierarchical Inte
ractive Graphics Standard)PLUSは、NURBSを基にカー
ブの定義をサポートしていることから、このニーズを促
進する標準となっている。
C. 発明の概要及びその解決課題 本発明は、このニーズを満たし、他のメリットを実現す
るために、オーダkのマルチスパン・パラメトリック・
カーブを表すNURBSデータを、データ・レコードのシー
ケンスとしてメモリに配置する、カーブ評価システムを
提供するものである。データ・レコードのシーケンス
は、連続したカーブ・スパンが、シーケンスの直前の複
数のデータ・レコードとともに、連続した個々のレコー
ドによって定義されるように配置される。データ・レコ
ードは、グラフィクス制御プロセッサによってシーケン
シャルに読み取られる。制御プロセッサは、NURBSデー
タとコマンドを、パイプライン型の浮動小数点プロセッ
サに選択的に引き渡す。このパイプラインには、4個の
並列プロセッサが含まれ、それぞれの出力は次段のプロ
セッサの入力に接続される。並列プロセッサは、カーブ
に沿った所定のパラメータ点における一組の同次座標
(wx、wy、wz、w)の各成分に対するBスプライン関数
を同時評価するようにはたらく。次段の浮動小数点プロ
セッサが、同次座標をジオメトリック座標に変換するこ
とにより、グラフィクス・ディスプレイ・システムのス
クリーン上でカーブのレンダリングが行われる。
るために、オーダkのマルチスパン・パラメトリック・
カーブを表すNURBSデータを、データ・レコードのシー
ケンスとしてメモリに配置する、カーブ評価システムを
提供するものである。データ・レコードのシーケンス
は、連続したカーブ・スパンが、シーケンスの直前の複
数のデータ・レコードとともに、連続した個々のレコー
ドによって定義されるように配置される。データ・レコ
ードは、グラフィクス制御プロセッサによってシーケン
シャルに読み取られる。制御プロセッサは、NURBSデー
タとコマンドを、パイプライン型の浮動小数点プロセッ
サに選択的に引き渡す。このパイプラインには、4個の
並列プロセッサが含まれ、それぞれの出力は次段のプロ
セッサの入力に接続される。並列プロセッサは、カーブ
に沿った所定のパラメータ点における一組の同次座標
(wx、wy、wz、w)の各成分に対するBスプライン関数
を同時評価するようにはたらく。次段の浮動小数点プロ
セッサが、同次座標をジオメトリック座標に変換するこ
とにより、グラフィクス・ディスプレイ・システムのス
クリーン上でカーブのレンダリングが行われる。
本発明では、特にグラフィクス制御プロセッサが、パラ
メトリック・カーブに関係する制御点をモデリング座標
からビュー座標に変換し、変換された制御点座標を同次
座標に変えて、パラメトリック・カーブをテッセレート
するパラメータ座標間隔を決定し、間隔をとった一連の
パラメータ点を生成する。このパラメータ点が評価に用
いられる。
メトリック・カーブに関係する制御点をモデリング座標
からビュー座標に変換し、変換された制御点座標を同次
座標に変えて、パラメトリック・カーブをテッセレート
するパラメータ座標間隔を決定し、間隔をとった一連の
パラメータ点を生成する。このパラメータ点が評価に用
いられる。
本発明の実施例では、並列浮動小数点プロセッサは、評
価を行うためにCox−DeBoorプロセスを実行する。並列
プロセッサのいずれかは、評価されたパラメータ点に重
み出力を与え、次段の浮動小数点プロセッサが重みの学
習を計算して、他の3個の並列プロセッサの出力とこの
逆数に掛け、ジオメトリック座標を得る。クリッピング
・プロセッサとフレーム・バッファは、次段の浮動小数
点プロセッサの出力と直列に接続することで効果的に使
用でき、プロセッサとともにパイプライン動作を行う。
価を行うためにCox−DeBoorプロセスを実行する。並列
プロセッサのいずれかは、評価されたパラメータ点に重
み出力を与え、次段の浮動小数点プロセッサが重みの学
習を計算して、他の3個の並列プロセッサの出力とこの
逆数に掛け、ジオメトリック座標を得る。クリッピング
・プロセッサとフレーム・バッファは、次段の浮動小数
点プロセッサの出力と直列に接続することで効果的に使
用でき、プロセッサとともにパイプライン動作を行う。
本発明ではまた、NURBSデータが次のようなシーケンス
に配置され、このデータを連続した複雑なカーブ・スパ
ンによって共用できる。
に配置され、このデータを連続した複雑なカーブ・スパ
ンによって共用できる。
カーブのオーダkと制御点数nを指定する第1シーケン
ス カーブの最初の節点ないしk−1位の節点の節点値を含
む第2シーケンス 連続したk−1個のデータ・セットを含み、各データ・
セットが、座標および制御点と節点値の重みwのほか、
カーブの最初の制御点ないしk−1位の制御点と、k位
の節点ないし2k−2位の節点とに対するデータを含む第
3シーケンス 連続したn−k個のデータ・セットを含み、データ・セ
ットが、カーブのk位の制御点ないしn位の制御点と、
2k−1位の節点ないしn+k−1位の節点とに対するデ
ータおよびテッセレーション・パラメータ1ないしn−
k+1を含む第4シーケンス、および n+k位の節点値を含む第5シーケンス NURBSを基にパラメトリック・カーブの評価とレンダリ
ングを行う本発明の装置および方法は、高性能、高速、
高精度、カーブ制御性、PHIGS PLUSとの互換性、デー
タ冗長性の解消なお様々なメリットを提供する。さらに
本発明では、コンピュータ・グラフィクス・ディスプレ
イ・システムの特性および、低位のNURBSを用いて複雑
なカーブを形成する機能、ローカル制御、凸閉包性(co
nvex hull property)、重みを用いて円錐部の正確なレ
ンダリングを行う機能、座標変換に関する不変性、大幅
なデータ圧縮など、NURBSのメリットを活かすことがで
きる。本発明のこのような特徴は、以下の説明から、よ
り明確になるはずである。
ス カーブの最初の節点ないしk−1位の節点の節点値を含
む第2シーケンス 連続したk−1個のデータ・セットを含み、各データ・
セットが、座標および制御点と節点値の重みwのほか、
カーブの最初の制御点ないしk−1位の制御点と、k位
の節点ないし2k−2位の節点とに対するデータを含む第
3シーケンス 連続したn−k個のデータ・セットを含み、データ・セ
ットが、カーブのk位の制御点ないしn位の制御点と、
2k−1位の節点ないしn+k−1位の節点とに対するデ
ータおよびテッセレーション・パラメータ1ないしn−
k+1を含む第4シーケンス、および n+k位の節点値を含む第5シーケンス NURBSを基にパラメトリック・カーブの評価とレンダリ
ングを行う本発明の装置および方法は、高性能、高速、
高精度、カーブ制御性、PHIGS PLUSとの互換性、デー
タ冗長性の解消なお様々なメリットを提供する。さらに
本発明では、コンピュータ・グラフィクス・ディスプレ
イ・システムの特性および、低位のNURBSを用いて複雑
なカーブを形成する機能、ローカル制御、凸閉包性(co
nvex hull property)、重みを用いて円錐部の正確なレ
ンダリングを行う機能、座標変換に関する不変性、大幅
なデータ圧縮など、NURBSのメリットを活かすことがで
きる。本発明のこのような特徴は、以下の説明から、よ
り明確になるはずである。
D. 実施例 本発明は、性能向上を図り、NURBS(non−uniform rati
onal b−splines)に基づき、パイプライン型の並列プ
ロセッサを用いてパラメトリック・カーブを描くシステ
ムに関する。これに関連した用語や数学の詳細について
は、“An Introduction to Splines for Use in Comput
er Graphics & Geometric Modelling" by R.H.Bartel
s,J.C.Beatty,and B.A.Barsky(Morgen Kaufmann,198
7)を参照されたい。
onal b−splines)に基づき、パイプライン型の並列プ
ロセッサを用いてパラメトリック・カーブを描くシステ
ムに関する。これに関連した用語や数学の詳細について
は、“An Introduction to Splines for Use in Comput
er Graphics & Geometric Modelling" by R.H.Bartel
s,J.C.Beatty,and B.A.Barsky(Morgen Kaufmann,198
7)を参照されたい。
NURBSは、簡単に言えば、パラメトリック関数の1クラ
スであり、パラメトリック・カーブを表現するために用
いられる。NURBSカーブは、パラメトリック座標(t)
に依存する。パラメトリック座標は、カーブの始点から
終点への移動において単調に増加する。このパラメトリ
ック座標はジオメトリック座標(x、y、z)に加えら
れる。したがって、たとえば3Dカーブの場合は次のよう
になる。
スであり、パラメトリック・カーブを表現するために用
いられる。NURBSカーブは、パラメトリック座標(t)
に依存する。パラメトリック座標は、カーブの始点から
終点への移動において単調に増加する。このパラメトリ
ック座標はジオメトリック座標(x、y、z)に加えら
れる。したがって、たとえば3Dカーブの場合は次のよう
になる。
x=X(t) y=Y(t) z=Z(t)、 ここでX(t)、Y(t)、Z(t)はパラメトリック
座標tの関数である(tmin≦t≦t max)。
座標tの関数である(tmin≦t≦t max)。
パラメトリック・カーブは、簡単な多項式によっても定
義でき、このようなパラメトリック多項式関数は、対応
するNURBS関数によって正確に表現できる。
義でき、このようなパラメトリック多項式関数は、対応
するNURBS関数によって正確に表現できる。
NURBSカーブは有理式または非有理式で定義できる。非
有理式では、NURBSカーブの各成分(x、y、z)は、
パラメトリック座標の多項式関数を評価することによっ
て求められる。
有理式では、NURBSカーブの各成分(x、y、z)は、
パラメトリック座標の多項式関数を評価することによっ
て求められる。
有理式では、重みと呼ばれる関数が追加される この場合ジオメトリック座標は次の多項式の比によって
求められる。
求められる。
X(t)=WX(t)/W(t) Y(t)=WY(t)/W(t) Z(t)=WZ(t)/W(t) ここでWX(t)、WY(t)、WZ(t)は、非有理な場合
にX(t)、Y(t)、Z(t)を指定する多項式と同
様の多項式である。
にX(t)、Y(t)、Z(t)を指定する多項式と同
様の多項式である。
NURBS関数はそれぞれ、パラメトリック座標の最高ベキ
に対応する次数(m)と次数mの多項式における線形独
立項の個数に対応するm+1に等しいオーダ(k)によ
って特徴づけられる。したがって、たとえば2次関数ax
2+bx+cは、次数2、オーダ3である。
に対応する次数(m)と次数mの多項式における線形独
立項の個数に対応するm+1に等しいオーダ(k)によ
って特徴づけられる。したがって、たとえば2次関数ax
2+bx+cは、次数2、オーダ3である。
NURBS関数は、複数の係数の組によって表せ、各組は、
一定範囲のパラメトリック座標に対してのみ有効であ
る。したがってスパンは、連続したスパンのシーケンス
に分けることができ、各スパンは異なる多項式によって
表せる。これは第1図に、三つのスパンから成る2次元
カーブCとして示した。第1スパンは、t0からt1におよ
ぶパラメトリック値によって定義され、カーブのこの部
分の座標は次の多項式によって求められる。
一定範囲のパラメトリック座標に対してのみ有効であ
る。したがってスパンは、連続したスパンのシーケンス
に分けることができ、各スパンは異なる多項式によって
表せる。これは第1図に、三つのスパンから成る2次元
カーブCとして示した。第1スパンは、t0からt1におよ
ぶパラメトリック値によって定義され、カーブのこの部
分の座標は次の多項式によって求められる。
第2スパンは、t1からt2におよぶパラメトリック値によ
って定義され、スパンのこの部分の座標は次の多項式に
よって求められる。
って定義され、スパンのこの部分の座標は次の多項式に
よって求められる。
NURBSは、制御点、重み、および節点ベクトルによって
決定される。制御点は、カーブのジオメトリを制御する
主要素である。カーブにはn個の制御点を考えることが
できる。ここでnはカーブのオーダ(k)よりも大きい
かそれに等しい。カーブの各スパンはk個の制御点を持
つ。制御点により、カーブの一般形状が決まるが、カー
ブは普通、これらの点を通過しない。第2図に、6個の
制御点をカーブCを示した。
決定される。制御点は、カーブのジオメトリを制御する
主要素である。カーブにはn個の制御点を考えることが
できる。ここでnはカーブのオーダ(k)よりも大きい
かそれに等しい。カーブの各スパンはk個の制御点を持
つ。制御点により、カーブの一般形状が決まるが、カー
ブは普通、これらの点を通過しない。第2図に、6個の
制御点をカーブCを示した。
重み値は、NURBSカーブの有理式を定義するためにのみ
用いられる。有理式では、重み(W)は、制御点の各座
標(x、y、z)に関連する。重みと座標は結合されて
同次座標(wx、wy、wz、w)を成し、これが4個のパラ
メトリック多項色関数WX(t)、WY(t)、WZ(t)、
W(t)の組に対する制御点を定義する。こうして得ら
れるジオメトリック座標は次の比によって求められる。
用いられる。有理式では、重み(W)は、制御点の各座
標(x、y、z)に関連する。重みと座標は結合されて
同次座標(wx、wy、wz、w)を成し、これが4個のパラ
メトリック多項色関数WX(t)、WY(t)、WZ(t)、
W(t)の組に対する制御点を定義する。こうして得ら
れるジオメトリック座標は次の比によって求められる。
x(t)=WX(t)/W(t) y(t)=WY(t)/W(t) z(t)=WZ(t)/W(t) 重みは、0より大きい正の値とする必要がある。普通、
重みの値は1に近く、重みがすべて等しい場合、有理式
は非有理式に縮分される。
重みの値は1に近く、重みがすべて等しい場合、有理式
は非有理式に縮分される。
カーブの節点ベクトルは、パラメトリック座標(t)に
対してパラメータ空間の分割を定義する。n個の制御点
を持つオーダkのカーブの節点ベクトルは、n+k個の
成分を持ち、そのうち最初と最後の成分は決して用いら
れない。カーブの各スパンは、2m個の連続した節点値に
依存する。このでmはk−1であり、kはカーブのオー
ダである。これらの節点値は二つのグループに分けられ
る。一つはスパンの前のm個の節点値を持つグループで
あり、もう一つはスパンの後のm個の節点値を持つグル
ープである。第3図に示すとおり、カーブCのスパン
(t3−t4)の前には3個の節点値(t1、t2、t3)、後に
は3個の節点値(t4、t5、t6)がある。節点値は、Bス
プラインが一様か一様でないかを決定する。節点の各値
の間隔が一様であれば(0、1、2、3など)、結果は
一様なBスプラインとなる。一様でないBスプラインで
は、節点値は不規則な間隔をとって開けられ、節点値
は、節点ベクトル(0.0、1.2、1.5、1.5、2.7、9.0)の
ように反復し得る。
対してパラメータ空間の分割を定義する。n個の制御点
を持つオーダkのカーブの節点ベクトルは、n+k個の
成分を持ち、そのうち最初と最後の成分は決して用いら
れない。カーブの各スパンは、2m個の連続した節点値に
依存する。このでmはk−1であり、kはカーブのオー
ダである。これらの節点値は二つのグループに分けられ
る。一つはスパンの前のm個の節点値を持つグループで
あり、もう一つはスパンの後のm個の節点値を持つグル
ープである。第3図に示すとおり、カーブCのスパン
(t3−t4)の前には3個の節点値(t1、t2、t3)、後に
は3個の節点値(t4、t5、t6)がある。節点値は、Bス
プラインが一様か一様でないかを決定する。節点の各値
の間隔が一様であれば(0、1、2、3など)、結果は
一様なBスプラインとなる。一様でないBスプラインで
は、節点値は不規則な間隔をとって開けられ、節点値
は、節点ベクトル(0.0、1.2、1.5、1.5、2.7、9.0)の
ように反復し得る。
ここでは、NURBSという用語は一般的な意味で用い、非
有理な(重みを1に等しく設定した)一様Bスプライン
の特殊なケースを指すものとする。
有理な(重みを1に等しく設定した)一様Bスプライン
の特殊なケースを指すものとする。
以上の基本的な数学をベースに、ここで本発明の実施例
について説明する。本発明に従って構成されたカーブ評
価/レンダリング・システム(10)は第4図に示すとお
りである。このシステムは主としてコンポーネントを含
む。
について説明する。本発明に従って構成されたカーブ評
価/レンダリング・システム(10)は第4図に示すとお
りである。このシステムは主としてコンポーネントを含
む。
(1)システム・メモリ(12) (2)グラフィクス制御プロセッサ(14)およびパイプ
ライン方式で動作する、 (3)並列に配置された4個の浮動小数点プロセッサ
(16x、16y、16z、16w)のグループ(16) (4)並列浮動小数点プロセッサ(16)の出力に接続さ
れた次段の浮動小数点プロセッサ(18) (5)クリップピング・プロセッサ(20) (6)フレーム・バッファ(22) システム・メモリ(12)には、各パラメトリック・カー
ブのNURBSデータが含まれる。データはメモリ12に格納
され、構造化された(すなわち連続した)グラフィクス
制御プロセッサ(14)に転送される。これにより、デー
タは、連続したスパンによって共用され、データの冗長
性がなくなる。
ライン方式で動作する、 (3)並列に配置された4個の浮動小数点プロセッサ
(16x、16y、16z、16w)のグループ(16) (4)並列浮動小数点プロセッサ(16)の出力に接続さ
れた次段の浮動小数点プロセッサ(18) (5)クリップピング・プロセッサ(20) (6)フレーム・バッファ(22) システム・メモリ(12)には、各パラメトリック・カー
ブのNURBSデータが含まれる。データはメモリ12に格納
され、構造化された(すなわち連続した)グラフィクス
制御プロセッサ(14)に転送される。これにより、デー
タは、連続したスパンによって共用され、データの冗長
性がなくなる。
第5図は、シーケンスの各部1ないし5によって示され
るデータの構造である。第1シーケンスでは、予備ヘッ
ダ情報がシステム・メモリに置かれる。ヘッダ情報に
は、オーダ(k)(kは2ないしk maxの整数−−k max
は浮動小数点プロセッサによってサポートされる最大オ
ーダ)、制御点数(n)(常に≧k)、カーブ・タイプ
・フラグ(非有理のとき1、有理のとき0をとる)、カ
ーブ・ステータス・フラグ(未定義のテッセレーション
・パラメータでは0、定義済みテッセレーションパラメ
ータでは0をとる)、t minとt max(パラメトリック座
標の範囲を指定する)が含まれる。テッセレーション・
パラメータについては後述する。
るデータの構造である。第1シーケンスでは、予備ヘッ
ダ情報がシステム・メモリに置かれる。ヘッダ情報に
は、オーダ(k)(kは2ないしk maxの整数−−k max
は浮動小数点プロセッサによってサポートされる最大オ
ーダ)、制御点数(n)(常に≧k)、カーブ・タイプ
・フラグ(非有理のとき1、有理のとき0をとる)、カ
ーブ・ステータス・フラグ(未定義のテッセレーション
・パラメータでは0、定義済みテッセレーションパラメ
ータでは0をとる)、t minとt max(パラメトリック座
標の範囲を指定する)が含まれる。テッセレーション・
パラメータについては後述する。
第2シーケンスでは、カーブの始めの節点1ないし接点
k−1がシステム・メモリに置かれる。
k−1がシステム・メモリに置かれる。
第3シーケンスでは、節点kないし節点2k−2の値、連
続した制御点1ないしk−1のx、y、z座標、および
制御点1ないしk−1に関連する重みがシステム・メモ
リに置かれる。このデータは縦の列に示すようにグルー
プ分けされる。第5図の縦の列はそれぞれデータ・セッ
トすなわちレコードから構成される。
続した制御点1ないしk−1のx、y、z座標、および
制御点1ないしk−1に関連する重みがシステム・メモ
リに置かれる。このデータは縦の列に示すようにグルー
プ分けされる。第5図の縦の列はそれぞれデータ・セッ
トすなわちレコードから構成される。
第4シーケンスも上記と同様の連続したデータ・セット
すなわちレコードを格納する。各レコードにはテッセレ
ーション・パラメータ(d)が付加される。第4シーケ
ンスの連続したデータ・レコードはそれぞれ、連続した
カーブ・スパンを完成する。スパンは、k個の制御点と
2k−2個の節点によって定義される。第2シーケンスの
節点1は、カーブ評価には用いられない。したがって、
第1スパンを関数するのは、24aとした、節点値2k−1
を含む列すなわちデータ・レコード、制御点座標x
(k)、y(k)、z(k)、重みw(k)、およびテ
ッセレーションデータd(1)のほか、第3シーケンス
のデータ・レコードと、第2シーケンスの節点2ないし
k−1の節点値である。第2スパンを完成するのは、第
4シーケンスのデータの第2のセットすなわち列のほ
か、前記の2k−3個のデータ列である(すなわち前のk
−1個の制御点と関連する重み、および2k−3個の節点
値)。後続するスパンも同様に構成される。このように
処理することで、新しいスパンのそれぞれに、後続する
第4シーケンスのデータ・レコードと先に格納された直
前の2k−3個のデータ・レコードが用いられ、データの
冗長性がなくなる。
すなわちレコードを格納する。各レコードにはテッセレ
ーション・パラメータ(d)が付加される。第4シーケ
ンスの連続したデータ・レコードはそれぞれ、連続した
カーブ・スパンを完成する。スパンは、k個の制御点と
2k−2個の節点によって定義される。第2シーケンスの
節点1は、カーブ評価には用いられない。したがって、
第1スパンを関数するのは、24aとした、節点値2k−1
を含む列すなわちデータ・レコード、制御点座標x
(k)、y(k)、z(k)、重みw(k)、およびテ
ッセレーションデータd(1)のほか、第3シーケンス
のデータ・レコードと、第2シーケンスの節点2ないし
k−1の節点値である。第2スパンを完成するのは、第
4シーケンスのデータの第2のセットすなわち列のほ
か、前記の2k−3個のデータ列である(すなわち前のk
−1個の制御点と関連する重み、および2k−3個の節点
値)。後続するスパンも同様に構成される。このように
処理することで、新しいスパンのそれぞれに、後続する
第4シーケンスのデータ・レコードと先に格納された直
前の2k−3個のデータ・レコードが用いられ、データの
冗長性がなくなる。
第5シーケンスでは、最後の接点値n+kがシステム・
メモリに置かれる。ただしこの節点はカーブ評価プロセ
スには用いられない。
メモリに置かれる。ただしこの節点はカーブ評価プロセ
スには用いられない。
ここで第4図を参照する。グラフィクス制御プロセッサ
(14)は、システム・メモリに格納されたデータを、先
に説明したシーケンスで読み込み、第4図に2方向を指
す矢印で示したように、システム・メモリにデータを書
き戻すことができる。グラフィクス制御プロセッサは、
制御点データをモデリング座標からビュー座標に変換
し、変換された制御点データを同次座標(wx、wy、wz、
w)に変えて、パラメトリック座標間隔(dt)を求め
る。これによりパラメトリック座標がテッセレートされ
間隔をとった一連のパラメータ点(PC)が生成される。
グラフィクス制御プロセッサはまた、コマンドとデータ
を4個の並列浮動小数点プロセッサ(16)に転送する。
以下これについて詳述する。プロセッサ16x、16y、16
z、16wはそれぞれ独立に、同期して、各パラメータ点PC
の同次座標wx、wy、wz、wのそれぞれのBスプライン関
数を同時評価する。プロセッサ16x、16y、16z、16wの出
力wx(t)、wy(t)、wz(t)、w(t)はそれぞ
れ、浮動小数点プロセッサ18に直列に供給される。プロ
セッサ18は、w(t)の逆数を計算し、wx(t)、wy
(t)、wz(t)にこの逆数を掛けて、カーブを表すポ
リラインの頂点のジオメトリック座標x、y、zを求め
る。ポリライン座標は、クリッピング・プロセッサ(2
0)により従来の方法で処理され(すなわち順列頂点の
各ペアによって定義されたベクトルが現在のビュー・ウ
ィンドウにクリップされ)、フレーム・バッファ22に送
られる。ここでコンピュータ・グラフィクス・ディスプ
レイのモニタ・スクリーン(図示しない)上で従来の方
法によりカーブのレンダリングが行われる。
(14)は、システム・メモリに格納されたデータを、先
に説明したシーケンスで読み込み、第4図に2方向を指
す矢印で示したように、システム・メモリにデータを書
き戻すことができる。グラフィクス制御プロセッサは、
制御点データをモデリング座標からビュー座標に変換
し、変換された制御点データを同次座標(wx、wy、wz、
w)に変えて、パラメトリック座標間隔(dt)を求め
る。これによりパラメトリック座標がテッセレートされ
間隔をとった一連のパラメータ点(PC)が生成される。
グラフィクス制御プロセッサはまた、コマンドとデータ
を4個の並列浮動小数点プロセッサ(16)に転送する。
以下これについて詳述する。プロセッサ16x、16y、16
z、16wはそれぞれ独立に、同期して、各パラメータ点PC
の同次座標wx、wy、wz、wのそれぞれのBスプライン関
数を同時評価する。プロセッサ16x、16y、16z、16wの出
力wx(t)、wy(t)、wz(t)、w(t)はそれぞ
れ、浮動小数点プロセッサ18に直列に供給される。プロ
セッサ18は、w(t)の逆数を計算し、wx(t)、wy
(t)、wz(t)にこの逆数を掛けて、カーブを表すポ
リラインの頂点のジオメトリック座標x、y、zを求め
る。ポリライン座標は、クリッピング・プロセッサ(2
0)により従来の方法で処理され(すなわち順列頂点の
各ペアによって定義されたベクトルが現在のビュー・ウ
ィンドウにクリップされ)、フレーム・バッファ22に送
られる。ここでコンピュータ・グラフィクス・ディスプ
レイのモニタ・スクリーン(図示しない)上で従来の方
法によりカーブのレンダリングが行われる。
ここで本発明の実施例について述べる。システム・メモ
リ12は2ないし4Mバイト(またはそれ以上)のRAM(ran
dom access memory)から構成できる。システム・メモ
リは、少なくとも1個のパラメトリック・カーブのデー
タを格納できなければならない。また代表的なシステム
・メモリは、様々なグラフィクス・エレメント(NURBS
カーブを含めたプリミティブと属性)から成るディスプ
レイ・リストを格納する。グラフィクス制御プロセッサ
14は、浮動小数点乗算器、浮動小数点加算器、シーケン
サ、少なくとも32kのデータ・メモリをアクセスする機
能、32個の整数レジスタ、および浮動小数点演算用の32
個のレジスタを備える。プロセッサ14は、10MHzのWeite
kチップ・セット(プログラマブル・シーケンサZL−813
6、浮動小数点プロセッサユニットXL−3132、および整
数処理ユニットが連係)によって効果的に実現できる。
リ12は2ないし4Mバイト(またはそれ以上)のRAM(ran
dom access memory)から構成できる。システム・メモ
リは、少なくとも1個のパラメトリック・カーブのデー
タを格納できなければならない。また代表的なシステム
・メモリは、様々なグラフィクス・エレメント(NURBS
カーブを含めたプリミティブと属性)から成るディスプ
レイ・リストを格納する。グラフィクス制御プロセッサ
14は、浮動小数点乗算器、浮動小数点加算器、シーケン
サ、少なくとも32kのデータ・メモリをアクセスする機
能、32個の整数レジスタ、および浮動小数点演算用の32
個のレジスタを備える。プロセッサ14は、10MHzのWeite
kチップ・セット(プログラマブル・シーケンサZL−813
6、浮動小数点プロセッサユニットXL−3132、および整
数処理ユニットが連係)によって効果的に実現できる。
浮動小数点プロセッサ16x、16y、16z、16w、および18に
は、それぞれ32ビット浮動小数点演算機能を組み込んだ
VLSIプロセッサを採用できる。各プロセッサは、浮動小
数点乗算器、浮動小数点加算器(乗算器用のアキュムレ
ータとしても用いられる)、簡易シーケンサ、マイクロ
コード用RAM、インタフェース入出力用FIFO、およびデ
ータ格納用の64個のレジスタを備える。浮動小数点プロ
セッサは一般に知られているとおりである。米国特許出
願第331021号(1989年3月28日出願)では、特殊な入出
力FIFOにより、ここに述べている並列/パイプライン接
続の効果が高められる。クリッピング・プロセッサ20と
フレーム・バッファ22は、性能に問題がなければ、それ
ぞれ、複数の類似のプロセッサを備えることができ、個
数と構成は任意である。
は、それぞれ32ビット浮動小数点演算機能を組み込んだ
VLSIプロセッサを採用できる。各プロセッサは、浮動小
数点乗算器、浮動小数点加算器(乗算器用のアキュムレ
ータとしても用いられる)、簡易シーケンサ、マイクロ
コード用RAM、インタフェース入出力用FIFO、およびデ
ータ格納用の64個のレジスタを備える。浮動小数点プロ
セッサは一般に知られているとおりである。米国特許出
願第331021号(1989年3月28日出願)では、特殊な入出
力FIFOにより、ここに述べている並列/パイプライン接
続の効果が高められる。クリッピング・プロセッサ20と
フレーム・バッファ22は、性能に問題がなければ、それ
ぞれ、複数の類似のプロセッサを備えることができ、個
数と構成は任意である。
一般に、NURBSカーブがメモリ12のディスプレイ・リス
トに現れると、制御点はグラフィクス制御プロセッサ14
によって変換される。変換された制御点は同次座標(w
x、wy、wz、w)に変えられ、パイプライン型の並列プ
ロセッサ16に送られる。ここで各座標はプロセッサ16
x、16y、16z、16wによって保持される。グラフィクス制
御プロセッサ14は次に、パラメトリック座標(t)をテ
ッセレートする方法を判定し、一連のパラメータ値をパ
イプラインに送り出す。プロセッサ16は、パラメトリッ
ク座標の各値に対してwx、wy、wz、wの各成分を並列に
同時に評価する。こうして得られた値wx(t)、wy
(t)、wz(t)、w(t)はプロセッサ18に引き渡さ
れ、プロセッサ18はこれらを(x、y、z)座標に変換
する。各点は後に、クリッピング・プロセッサ20とフレ
ーム・バッファ22によって、通常のポリラインの一部で
あるかのように処理される。メモリ12内のNURBSデータ
の編成と、上述のパイプライン型の装置による処理は、
本発明に多大のメリットをもたらす。
トに現れると、制御点はグラフィクス制御プロセッサ14
によって変換される。変換された制御点は同次座標(w
x、wy、wz、w)に変えられ、パイプライン型の並列プ
ロセッサ16に送られる。ここで各座標はプロセッサ16
x、16y、16z、16wによって保持される。グラフィクス制
御プロセッサ14は次に、パラメトリック座標(t)をテ
ッセレートする方法を判定し、一連のパラメータ値をパ
イプラインに送り出す。プロセッサ16は、パラメトリッ
ク座標の各値に対してwx、wy、wz、wの各成分を並列に
同時に評価する。こうして得られた値wx(t)、wy
(t)、wz(t)、w(t)はプロセッサ18に引き渡さ
れ、プロセッサ18はこれらを(x、y、z)座標に変換
する。各点は後に、クリッピング・プロセッサ20とフレ
ーム・バッファ22によって、通常のポリラインの一部で
あるかのように処理される。メモリ12内のNURBSデータ
の編成と、上述のパイプライン型の装置による処理は、
本発明に多大のメリットをもたらす。
カーブ評価システム10におけるグラフィクス制御プロセ
ッサ14の動作並びに他のプロセッサの動作は第6a図ない
し第6d図に示した。以下これについて説明する。
ッサ14の動作並びに他のプロセッサの動作は第6a図ない
し第6d図に示した。以下これについて説明する。
第6a図では、最初に、オーダ(k)、制御点数(n)、
カーブ・タイプ・フラグ、カーブ・ステータス・フラ
グ、t minとt maxを含むヘッダ情報がシステム・メモリ
に読み込まれ(30)、グラフィクス制御プロセッサ14内
のレジスタに格納される。制御点が何個処理されたかを
帰路しておくためにレジスタ(カウンタという)が用い
られ、最初は0にセットされる。
カーブ・タイプ・フラグ、カーブ・ステータス・フラ
グ、t minとt maxを含むヘッダ情報がシステム・メモリ
に読み込まれ(30)、グラフィクス制御プロセッサ14内
のレジスタに格納される。制御点が何個処理されたかを
帰路しておくためにレジスタ(カウンタという)が用い
られ、最初は0にセットされる。
次にグラフィクス制御プロセッサが“パラメトリック・
カーブ開始”コマンド(34)とオーダ(k)(36)を各
浮動小数点プロセッサ(16)へ送る。
カーブ開始”コマンド(34)とオーダ(k)(36)を各
浮動小数点プロセッサ(16)へ送る。
グラフィクス制御プロセッサは次に、システム・メモリ
からk−1個の初期節点を読み出し(38)、すべての並
列浮動小数点プロセッサ(16)に転送する。並列浮動小
数点プロセッサに転送された節点値は、各プロセッサの
スタック39に保持される。スタック39はそれぞれ、デー
タ行2k−2行を保持するのに充分な大きさであり、FIFO
方式で動作する。このスタックの一例(k=4)を第7a
図に示した。k−1個の最初の節点がスタックにプッシ
ュされており、スタックの他の部分の初期状態は未使用
である。
からk−1個の初期節点を読み出し(38)、すべての並
列浮動小数点プロセッサ(16)に転送する。並列浮動小
数点プロセッサに転送された節点値は、各プロセッサの
スタック39に保持される。スタック39はそれぞれ、デー
タ行2k−2行を保持するのに充分な大きさであり、FIFO
方式で動作する。このスタックの一例(k=4)を第7a
図に示した。k−1個の最初の節点がスタックにプッシ
ュされており、スタックの他の部分の初期状態は未使用
である。
次に、節点値(t(k))、制御点(x(1)、y
(1)、z(1))、重み(w(1))、およびテッセ
レーション・データを含むデータ・レコードがあれば、
システム・メモリから読み込まれる(40)。カウンタは
1だけ更新され(42)、カーブ・タイプが1に等しいな
ら(44)、各データ・レコードに対する重みが1にセッ
トされる(46)。これは非有理Bスプラインを示す。
(1)、z(1))、重み(w(1))、およびテッセ
レーション・データを含むデータ・レコードがあれば、
システム・メモリから読み込まれる(40)。カウンタは
1だけ更新され(42)、カーブ・タイプが1に等しいな
ら(44)、各データ・レコードに対する重みが1にセッ
トされる(46)。これは非有理Bスプラインを示す。
次にグラフィクス制御プロセッサは、システム・メモリ
から受信されたばかりの制御点を、モデリング座標から
ビュー座標(x、y、z)に変換する。グラフィクス制
御プロセッサにロードされた変換マトリックスにより、
x、y、zが従来の方法で必要に応じて変換、回転、あ
るいは拡大縮小される。
から受信されたばかりの制御点を、モデリング座標から
ビュー座標(x、y、z)に変換する。グラフィクス制
御プロセッサにロードされた変換マトリックスにより、
x、y、zが従来の方法で必要に応じて変換、回転、あ
るいは拡大縮小される。
変換プロスセが終わると、グラフィクス制御プロセッサ
は、節点値(t)と制御点座標(x、y、z)をグラフ
ィクス制御プロセッサのローカル・メモリにあるスタッ
ク49にプッシュする。スタック49は、制御点データ行k
行を保持するのに充分(1スパンに充分)な大きさであ
り、これもFIFOベースで動作する。このローカル・メモ
リ・スタックの一例(k=4)を第8a図に示した。デー
タの最初の行はスタックにプッシュされており、スタッ
クの他の部分は空である。
は、節点値(t)と制御点座標(x、y、z)をグラフ
ィクス制御プロセッサのローカル・メモリにあるスタッ
ク49にプッシュする。スタック49は、制御点データ行k
行を保持するのに充分(1スパンに充分)な大きさであ
り、これもFIFOベースで動作する。このローカル・メモ
リ・スタックの一例(k=4)を第8a図に示した。デー
タの最初の行はスタックにプッシュされており、スタッ
クの他の部分は空である。
次に、グラフィクス制御プロセッサにおいて、システム
・メモリから読み込まれたばかりの制御点座標(x、
y、z)に重み(w)が掛けられ、重みつき座標(wx、
wy、wz、w)が得られる(52)。
・メモリから読み込まれたばかりの制御点座標(x、
y、z)に重み(w)が掛けられ、重みつき座標(wx、
wy、wz、w)が得られる(52)。
次に、グラフィクス制御プロセッサは、“スパン開始”
コマンド(54)を並列浮動小数点プロセッサ(16)のそ
れぞれに転送する。このコマンドには、オーダ(k)、
節点値(t(k))、および重みつき座標(wx、wy、w
z、w)が続く(56)。節点値は各並列浮動小数点プロ
セッサの節点スタック39にプッシュされる(この値がプ
ッシュされた後の節点スタックについては第7b図を参
照)。座標セット(wx、wy、wz、w)の各成分は浮動小
数点プロセッサ1個にのみ転送される。したがってwxは
第1並列浮動小数点プロセッサ(16x)へ、wyは第2並
列浮動小数点プロセッサ(16y)へ転送される、という
動作になる。各並列プロセッサ内のスタック57が、座標
セット(wx、wy、wz、w)の各成分を保持するのに用い
られる。各スタックは、データ行k行を保持でき、FIFO
方式で動作する。第9a図は、並列浮動小数点プロセッサ
内のスタック57x、57y、57z、57wに、初めに重みつき座
標がプッシュされた様子を示す。
コマンド(54)を並列浮動小数点プロセッサ(16)のそ
れぞれに転送する。このコマンドには、オーダ(k)、
節点値(t(k))、および重みつき座標(wx、wy、w
z、w)が続く(56)。節点値は各並列浮動小数点プロ
セッサの節点スタック39にプッシュされる(この値がプ
ッシュされた後の節点スタックについては第7b図を参
照)。座標セット(wx、wy、wz、w)の各成分は浮動小
数点プロセッサ1個にのみ転送される。したがってwxは
第1並列浮動小数点プロセッサ(16x)へ、wyは第2並
列浮動小数点プロセッサ(16y)へ転送される、という
動作になる。各並列プロセッサ内のスタック57が、座標
セット(wx、wy、wz、w)の各成分を保持するのに用い
られる。各スタックは、データ行k行を保持でき、FIFO
方式で動作する。第9a図は、並列浮動小数点プロセッサ
内のスタック57x、57y、57z、57wに、初めに重みつき座
標がプッシュされた様子を示す。
次に、カウンタがkより大きいかkに等しいかどうかが
判定される(58)。kより小さい場合、処理はライン
(60)を介して40(1データ・レコード読み込み)に戻
る。kに等しい場合、1スパンに充分なデータが浮動小
数点プロセッサに送られている。そこで各並列浮動小数
点プロセッサ内の節点スタック39は、第7c図に示すよう
に、節点2ないし2k−1のデータを持つ。グラフィクス
制御プロセッサ14内のスタック49には、第8b図に示すよ
うに、節点kないし2k−1の値と、制御点1ないしkの
座標(x、y、z)が置かれる。ここでkは4である。
並列浮動小数点プロセッサ16内の重みつき座標スタック
57は、第9b図に示すように、制御点1ないしkの重みつ
き座標データを持つ(k=4)。
判定される(58)。kより小さい場合、処理はライン
(60)を介して40(1データ・レコード読み込み)に戻
る。kに等しい場合、1スパンに充分なデータが浮動小
数点プロセッサに送られている。そこで各並列浮動小数
点プロセッサ内の節点スタック39は、第7c図に示すよう
に、節点2ないし2k−1のデータを持つ。グラフィクス
制御プロセッサ14内のスタック49には、第8b図に示すよ
うに、節点kないし2k−1の値と、制御点1ないしkの
座標(x、y、z)が置かれる。ここでkは4である。
並列浮動小数点プロセッサ16内の重みつき座標スタック
57は、第9b図に示すように、制御点1ないしkの重みつ
き座標データを持つ(k=4)。
1スパンに充分なデータが各浮動小数点プロセッサ16に
送られると、スパンの有効性が判定される(62)。スパ
ンは次の場合に有効である。
送られると、スパンの有効性が判定される(62)。スパ
ンは次の場合に有効である。
T1<T max T2>T min and T2>T1 ここでT1は、グラフィクス制御プロセッサ14のスタック
49にある第1節点値に、T2は第2節点値にそれぞれ等し
い。
49にある第1節点値に、T2は第2節点値にそれぞれ等し
い。
スパンが無効であれば、処理はライン64を介して再び40
(1データ・レコード読み込み)に戻る。スパンが有効
で、カーブ・ステータス・フラグが0なら(65)、テッ
セレーション・パラメータ(d)がグラフィクス制御プ
ロセッサによって計算される(66)、システム・メモリ
にセーブされる(68)。カーブ・ステータス・フラグが
0に等しくない場合、処理はライン67を介して70(dt計
算)に飛ぶ。これはテッセレーション・パラメータがす
でに計算されていることを示す。
(1データ・レコード読み込み)に戻る。スパンが有効
で、カーブ・ステータス・フラグが0なら(65)、テッ
セレーション・パラメータ(d)がグラフィクス制御プ
ロセッサによって計算される(66)、システム・メモリ
にセーブされる(68)。カーブ・ステータス・フラグが
0に等しくない場合、処理はライン67を介して70(dt計
算)に飛ぶ。これはテッセレーション・パラメータがす
でに計算されていることを示す。
テッセレーションは、曲線をセグメントに分けるプロセ
スである。セグメントは直線で近似できる。テッセレー
ション・パラメータの計算は、スパン内の点数に依存す
る。スパンはカーブのオーダによって定義される。第10
a図ないし第10b図に示すように、オーダkのカーブはス
パン当たりk個の制御点とk−1個のセクションを持
つ。k個の制御点は、終点2個と中間点k−2個から成
る。したがって、k=3であれば、セクションは2個、
中間点は1個であり、d=|ax|+|ay|+|az|となる。こ
こでdはベクトルaの流さ限界、ax、ay、azは弦偏差の
限界である。k=4のとき、セクションは3個、中間点
は2個であり、次のようになる。
スである。セグメントは直線で近似できる。テッセレー
ション・パラメータの計算は、スパン内の点数に依存す
る。スパンはカーブのオーダによって定義される。第10
a図ないし第10b図に示すように、オーダkのカーブはス
パン当たりk個の制御点とk−1個のセクションを持
つ。k個の制御点は、終点2個と中間点k−2個から成
る。したがって、k=3であれば、セクションは2個、
中間点は1個であり、d=|ax|+|ay|+|az|となる。こ
こでdはベクトルaの流さ限界、ax、ay、azは弦偏差の
限界である。k=4のとき、セクションは3個、中間点
は2個であり、次のようになる。
d=|ax|+|bx|+ |ay|+|by|+ |az|+|bz| ここでdはベクトルa、bの長さ限界、ax、ay、azおよ
びbx、by、bzは弦偏差の限界である。
びbx、by、bzは弦偏差の限界である。
テッセレーション・パラメータ(d)が計算されると、
パラメトリック座標間隔(dtという)がグラフィクス制
御プロセッサ14によって次のように計算される(70)。
パラメトリック座標間隔(dtという)がグラフィクス制
御プロセッサ14によって次のように計算される(70)。
dt=(T2−T1)/NStep ここでNStepは次の操作によって求められる。
(a)スクリーン(ピクセル)座標とデータ座標の比に
等しいスケールsを計算する。
等しいスケールsを計算する。
(b)dにsを掛けて、dをピクセル・ユニット(デバ
イス座標)に変換し、d′を得る。
イス座標)に変換し、d′を得る。
(c)NStepを次のように計算する。
NStep=Max(1、IntSQRT(d′)) dtの計算後、T1とT2が、境界TminとTmax内に収まるよう
に、次のように調整される。TminがT11とT2の間にある
場合は、T1はTminに等しくセットされ、TmaxがT1とT2の
間にある場合には、T2はTmaxに等しくセットされる(7
1)。次に、グラフィクス制御プロセッサは、“パラメ
トリック・カーブ評価”コマンドを並列浮動小数点プロ
セッサ16に送る(72)。並列浮動小数点プロセッサは、
このコマンドを受け取ると、“パラメトリック・カーブ
評価”コマンドを浮動小数点プロセッサ18に送り(7
4)、プロセッサ18はそこで“ポリライン開始”コマン
ドをクリッピング・プロセッサ(20)へ送る(76)。こ
の様子は第6c図に示した。これらのコマンドが送られて
いる間、グラフィクス制御プロセッサは動作を継続す
る。この様子は第6b図にライン73で示した。グラフィク
ス制御プロセッサはオーダ(k)を並列浮動小数点プロ
セッサ16へ送る(78)。次にパラメータ・ポイント(P
C)がT1に初期化される。T1はスパンの最初の節点値で
ある。PCは各並列浮動小数点プロセッサに送られる(8
2)。
に、次のように調整される。TminがT11とT2の間にある
場合は、T1はTminに等しくセットされ、TmaxがT1とT2の
間にある場合には、T2はTmaxに等しくセットされる(7
1)。次に、グラフィクス制御プロセッサは、“パラメ
トリック・カーブ評価”コマンドを並列浮動小数点プロ
セッサ16に送る(72)。並列浮動小数点プロセッサは、
このコマンドを受け取ると、“パラメトリック・カーブ
評価”コマンドを浮動小数点プロセッサ18に送り(7
4)、プロセッサ18はそこで“ポリライン開始”コマン
ドをクリッピング・プロセッサ(20)へ送る(76)。こ
の様子は第6c図に示した。これらのコマンドが送られて
いる間、グラフィクス制御プロセッサは動作を継続す
る。この様子は第6b図にライン73で示した。グラフィク
ス制御プロセッサはオーダ(k)を並列浮動小数点プロ
セッサ16へ送る(78)。次にパラメータ・ポイント(P
C)がT1に初期化される。T1はスパンの最初の節点値で
ある。PCは各並列浮動小数点プロセッサに送られる(8
2)。
並列プロセッサと後続プロセッサの内部動作は、第6d図
をみれば最もよく理解できよう。これらのプロセッサ内
のタスクは、グラフィクス制御プロセッサが動作を続け
ている間に実行される。この様子は第6b図のライン99で
示した。第6d図で、パラメータ・ポイント(PC)が各並
列浮動小数点プロセッサに送られた後、各プロセッサ
は、制御点座標セット(wx、wy、wz、w)の1成分につ
いてBスプライン関数の評価を始める(84)。たとえば
第1並列浮動小数点プロセッサ16xは、パラメータ・ポ
イントのx座標を評価し、第2並列浮動小数点プロセッ
サ16yはy座標を評価する。4個の並列浮動小数点プロ
セッサ16はすべて、座標を同時に評価する。
をみれば最もよく理解できよう。これらのプロセッサ内
のタスクは、グラフィクス制御プロセッサが動作を続け
ている間に実行される。この様子は第6b図のライン99で
示した。第6d図で、パラメータ・ポイント(PC)が各並
列浮動小数点プロセッサに送られた後、各プロセッサ
は、制御点座標セット(wx、wy、wz、w)の1成分につ
いてBスプライン関数の評価を始める(84)。たとえば
第1並列浮動小数点プロセッサ16xは、パラメータ・ポ
イントのx座標を評価し、第2並列浮動小数点プロセッ
サ16yはy座標を評価する。4個の並列浮動小数点プロ
セッサ16はすべて、座標を同時に評価する。
実施例では、Cox−DeBorr(またはDeCasteljau)プロセ
スとして知られているプロセスが評価に用いられる。こ
のプロセスでは、制御点の成分相互間の線形補間が行わ
れる。各座標について浮動小数点プロセッサへ送られた
PCの各値に対して、合計k(k−1)/2回の補間が行わ
れる。
スとして知られているプロセスが評価に用いられる。こ
のプロセスでは、制御点の成分相互間の線形補間が行わ
れる。各座標について浮動小数点プロセッサへ送られた
PCの各値に対して、合計k(k−1)/2回の補間が行わ
れる。
このプロセスを説明するために、3次曲線の例を挙げ
る。第11a図は、k個の制御点のx座標(k=4)、節
点値T1を開始とし節点値T2を終点とするスパン(T1とT2
はグラフィクス制御プロセッサのスタック49にある第1
節点値と第2節点値を表す−−このスタックついては第
8b図を参照)、パラメータ・ポイント(PC)、スパンの
前の3個の節点値(t1、t2、t3)、およびスパンの後の
3個の節点値(t4、t5、t6)を示す。6個の節点値(t1
ないしt6)は、各浮動点小数点プロセッサのスタック39
にある節点値を表す(このスタックについては第7c図を
参照)。
る。第11a図は、k個の制御点のx座標(k=4)、節
点値T1を開始とし節点値T2を終点とするスパン(T1とT2
はグラフィクス制御プロセッサのスタック49にある第1
節点値と第2節点値を表す−−このスタックついては第
8b図を参照)、パラメータ・ポイント(PC)、スパンの
前の3個の節点値(t1、t2、t3)、およびスパンの後の
3個の節点値(t4、t5、t6)を示す。6個の節点値(t1
ないしt6)は、各浮動点小数点プロセッサのスタック39
にある節点値を表す(このスタックについては第7c図を
参照)。
第11b図は前節点(t1、t2、t3)の位置をづけを示し、
前節点は補間される各成分の始点を表す。第11c図は後
節点(t4、t5、t6)の位置をづけを示し、後節点は補間
される各成分の終点を表す。したがって補間は、t1とt4
の間、t2とt5の間、およびt3とt6の間で行われる。
前節点は補間される各成分の始点を表す。第11c図は後
節点(t4、t5、t6)の位置をづけを示し、後節点は補間
される各成分の終点を表す。したがって補間は、t1とt4
の間、t2とt5の間、およびt3とt6の間で行われる。
Cox−BeBoorの評価プロセスでは、上述の変数が次式に
用いられる。これは3次曲線の例である。
用いられる。これは3次曲線の例である。
f1=((t4−PC)x1+(PC−t1) x2)/(t4−t1) f2=((t5−PC)x2+(PC−t2) x3)/(t5−t2) f3=((t6−PC)x3+(PC−t3) x4)/(t6−t3) この三つの式は、3次曲線に対する線形補間の第1段階
で用いられる。補間はt1とt4の間、t2とt5の間、および
t3とt6の間で行われ、3個の点が得られる。第11d図に
これら3個の点を、中心点を描いた円で示した。
で用いられる。補間はt1とt4の間、t2とt5の間、および
t3とt6の間で行われ、3個の点が得られる。第11d図に
これら3個の点を、中心点を描いた円で示した。
補間の第2段階では、節点値をもう一度位置づける必要
がある。この段階では3点しかないので、必要は節点は
t2ないしt5だけである。節点t2とt3は新しい前節点、t4
とt5は新しい後節点である。3次曲線の場合、線形補間
のこの第2段階で次の二つの式が用いられる。
がある。この段階では3点しかないので、必要は節点は
t2ないしt5だけである。節点t2とt3は新しい前節点、t4
とt5は新しい後節点である。3次曲線の場合、線形補間
のこの第2段階で次の二つの式が用いられる。
f1=((t4−PC)f1+(PC−t2) f2)/(t4−t2) f2=((t5−PC)f2+(PC−t3) f3)/(t5−t3) 補間はt2とt4の間、およびt3とt5の間で行われ、2個の
点が得られる。これら2個の点を第11e図に、中心点を
描いた円として示した。
点が得られる。これら2個の点を第11e図に、中心点を
描いた円として示した。
補間の最後の段階では再び節点値の位置づけが必要であ
る。この段階では2点しかないので、必要な節点はt3と
t4だけである。3次曲線の点のx座標を得るには、次式
が用いられる。
る。この段階では2点しかないので、必要な節点はt3と
t4だけである。3次曲線の点のx座標を得るには、次式
が用いられる。
f(t)=((t4−PC)f1+(PC− t3)f2)/(t4−t3) この点は第11f図に、中心点を描いた円として示した。
上記の評価プロセスは、同じPC値と同じ節点値を用い
て、並列浮動小数点プロセッサ内の各座標(x、y、
z、w)に対して同時に実行される。ただし各プロセッ
サは制御点の1座標だけを処理する。第1プロセッサ16
xはx座標を処理し、第2プロセッサ16yはy座標を処理
する、という動作になる。
上記の評価プロセスは、同じPC値と同じ節点値を用い
て、並列浮動小数点プロセッサ内の各座標(x、y、
z、w)に対して同時に実行される。ただし各プロセッ
サは制御点の1座標だけを処理する。第1プロセッサ16
xはx座標を処理し、第2プロセッサ16yはy座標を処理
する、という動作になる。
PCの各座標値について補間が終了すると、並列浮動小数
点プロセッサ16は、結果の座標値(wx(t)、wy
(t)、wz(t)、w(t))を浮動小数点プロセッサ
18へ送るが、この転送は、座標値が直列に受信されるよ
うに同期をとって行われる(86)。プロセッサ18は、座
標値の各組を受信すると、1/w(t)を計算し、これに
(wx(t)、wy(t)、wz(t)、w(t))を掛けて
(88)ジオメトリック座標(x、y、z、w)を得る。
これらの座標は次に、クリッピング・プロセッサ20に送
られる(90)。
点プロセッサ16は、結果の座標値(wx(t)、wy
(t)、wz(t)、w(t))を浮動小数点プロセッサ
18へ送るが、この転送は、座標値が直列に受信されるよ
うに同期をとって行われる(86)。プロセッサ18は、座
標値の各組を受信すると、1/w(t)を計算し、これに
(wx(t)、wy(t)、wz(t)、w(t))を掛けて
(88)ジオメトリック座標(x、y、z、w)を得る。
これらの座標は次に、クリッピング・プロセッサ20に送
られる(90)。
クリッピング・プロセッサはプロセッサ18から送られた
座標を受け取り、順列座標の各組によって定義されたベ
クトルを現在のビュー境界にクリップする(92)。クリ
ップされたベクトルの組は、フレーム・バッファ22に送
られ(94)、ここで直線セグメントとして描画される
(96)。
座標を受け取り、順列座標の各組によって定義されたベ
クトルを現在のビュー境界にクリップする(92)。クリ
ップされたベクトルの組は、フレーム・バッファ22に送
られ(94)、ここで直線セグメントとして描画される
(96)。
第6d図をみると、上記の評価プロセスとそれに続くステ
ップは、NStep+1回行われ、各PCは、PC≧T2となるま
でdtの値だけインクリメントされる(98)。PCがT2より
大きくなると(100)、PCはT2と等しくセットされ(10
2)、この最後の値も、先に説明したとおり、並列浮動
小数点プロセッサへ送られる(104)。
ップは、NStep+1回行われ、各PCは、PC≧T2となるま
でdtの値だけインクリメントされる(98)。PCがT2より
大きくなると(100)、PCはT2と等しくセットされ(10
2)、この最後の値も、先に説明したとおり、並列浮動
小数点プロセッサへ送られる(104)。
PCの値がすべて評価されると、カウンタは制御点数より
小さいかどうかが調べられる(106)。小さい場合、処
理はライン108を経て40(1データ・レコード読み込
み)へ戻り、このプロセス全体が、n回まで繰り返され
る。
小さいかどうかが調べられる(106)。小さい場合、処
理はライン108を経て40(1データ・レコード読み込
み)へ戻り、このプロセス全体が、n回まで繰り返され
る。
プロセスがn回実行されると、グラフィクス制御プロセ
ッサ14は、“カーブの終わり”コマンドを並列浮動小数
点プロセッサ16へ送る(110)。
ッサ14は、“カーブの終わり”コマンドを並列浮動小数
点プロセッサ16へ送る(110)。
次に、ステータス・フラグが調べられ(112)、0に等
しい場合は、1に更新される(114)。この変更は次
に、システム・メモリに書き戻される(116)。
しい場合は、1に更新される(114)。この変更は次
に、システム・メモリに書き戻される(116)。
パイプライン型の並列プロセッサを用い、NURBS(non−
uniform rational b−splines)を基にパラメトリック
・カーブの評価とレンダリングを行う装置および方法に
ついて説明した。並列/パイプライン型のプロセッサの
使用方法に工夫を凝らすことにより、カーブの評価とレ
ンダリングをいままでよりもはるかに高速に実行でき
る。またシステム・メモリに格納されたデータを本発明
のように構成することで、データの冗長性がなくなり、
データの処理効率が向上する。
uniform rational b−splines)を基にパラメトリック
・カーブの評価とレンダリングを行う装置および方法に
ついて説明した。並列/パイプライン型のプロセッサの
使用方法に工夫を凝らすことにより、カーブの評価とレ
ンダリングをいままでよりもはるかに高速に実行でき
る。またシステム・メモリに格納されたデータを本発明
のように構成することで、データの冗長性がなくなり、
データの処理効率が向上する。
その性質から、NURBSには様々なメリットがある。本発
明はこれらのメリットを最大限に活用している。NURBS
ではカーブをスパンのシーケンスに分けることができ
る。そのとき各スパンは一組の異なるパラメトリック多
項式によって表される。NURBSカーブの隣接したスパン
を表すパラメトリック多項式は、特定の連続性を与え
る。連続性の程度は、滑らかなカーブが急峻なカーブが
描けるように制御することができる。連続スパンを特定
の連続性と一致させられるので、低位のNURBSを用い、
多数の点を通る複雑なカーブが得られる。この性質はき
わめて有益である。通常は評価コストが高くなり、数値
が不安定になりやすい高位の関数を避けることができる
からである。
明はこれらのメリットを最大限に活用している。NURBS
ではカーブをスパンのシーケンスに分けることができ
る。そのとき各スパンは一組の異なるパラメトリック多
項式によって表される。NURBSカーブの隣接したスパン
を表すパラメトリック多項式は、特定の連続性を与え
る。連続性の程度は、滑らかなカーブが急峻なカーブが
描けるように制御することができる。連続スパンを特定
の連続性と一致させられるので、低位のNURBSを用い、
多数の点を通る複雑なカーブが得られる。この性質はき
わめて有益である。通常は評価コストが高くなり、数値
が不安定になりやすい高位の関数を避けることができる
からである。
NURBSにはローカル制御という特性もある。NURBSは制御
点、重み、および節点ベクトルによって決まるので、カ
ーブ全体に影響を与えずに、制御点を移動させることに
よって、カーブのスパンを変更することができる。
点、重み、および節点ベクトルによって決まるので、カ
ーブ全体に影響を与えずに、制御点を移動させることに
よって、カーブのスパンを変更することができる。
凸閉包性のメリットも見逃せない。NURBSカーブは、そ
の制御点の凸閉包内に含まれる。凸閉包は、所定数の点
を含む最小の凸多角形(2次元のとき)または最小の凸
多面対(3次元のとき)である。カーブの各スパンは、
そのスパンを決定するk個の制御点の凸閉包内に存在し
なければならない。この特性から、点を評価することな
く、NURBSカーブの大きさと位置を予測し、それぞれの
境界を設定することができる。これは特に自明な棄却テ
ストで重要である。いいかえれば、凸閉包が現在のスク
リーンとオーバラップしない場合、カーブは評価されず
に棄却される。カーブが棄却されない場合、凸閉包を用
いて、カーブが評価される点を決定できる。
の制御点の凸閉包内に含まれる。凸閉包は、所定数の点
を含む最小の凸多角形(2次元のとき)または最小の凸
多面対(3次元のとき)である。カーブの各スパンは、
そのスパンを決定するk個の制御点の凸閉包内に存在し
なければならない。この特性から、点を評価することな
く、NURBSカーブの大きさと位置を予測し、それぞれの
境界を設定することができる。これは特に自明な棄却テ
ストで重要である。いいかえれば、凸閉包が現在のスク
リーンとオーバラップしない場合、カーブは評価されず
に棄却される。カーブが棄却されない場合、凸閉包を用
いて、カーブが評価される点を決定できる。
制御点に関連する重みは、円と楕円を含む円錐セクショ
ンに正確な表現を与える。これは、円形を必要とするオ
ブジェクトが多いので、特に重要なメリットである。
ンに正確な表現を与える。これは、円形を必要とするオ
ブジェクトが多いので、特に重要なメリットである。
本発明のメリットはさらに、変換が、頂点ではなく制御
点を用いて行われるということである。通常、制御点は
頂点よりも少ないため、この方法はより経済的である。
点を用いて行われるということである。通常、制御点は
頂点よりも少ないため、この方法はより経済的である。
本発明に採用した評価方法は、制御点を直接的に用いる
ことで、セットアップ・コストを抑えるものである。補
間式は、NURBS関数の数値安定性を保つので、スパンに
対して演算を進めるとき累積誤差が生じない。
ことで、セットアップ・コストを抑えるものである。補
間式は、NURBS関数の数値安定性を保つので、スパンに
対して演算を進めるとき累積誤差が生じない。
NURBSカーブは、非常にコンパクトなデータ構造をつく
るので、従来のポリライン・データと比較した場合、デ
ータ転送率が大幅に向上し、システム資源の利用効率が
上がり、より複雑なグラフィクスもサポートできる。こ
のようなメリットは、NURBSデータをその本来の形式で
処理することによって保たれ、本発明のスパン共用デー
タ・シーケンシング法によって高度化される。
るので、従来のポリライン・データと比較した場合、デ
ータ転送率が大幅に向上し、システム資源の利用効率が
上がり、より複雑なグラフィクスもサポートできる。こ
のようなメリットは、NURBSデータをその本来の形式で
処理することによって保たれ、本発明のスパン共用デー
タ・シーケンシング法によって高度化される。
上述の内容から明らかなように、NURBSに基づいてパラ
メトリックカーブの評価とレンダリングを行う装置およ
び方法には、高性能、数値安定性、対コスト効果、高
速、高精度、カーブ制御性、3Dグラフィクスの標準とし
て提案されているPHIGS PLUSとの互換性、データ冗長
性の解消など、数々のメリットがある。
メトリックカーブの評価とレンダリングを行う装置およ
び方法には、高性能、数値安定性、対コスト効果、高
速、高精度、カーブ制御性、3Dグラフィクスの標準とし
て提案されているPHIGS PLUSとの互換性、データ冗長
性の解消など、数々のメリットがある。
E. 発明の効果 上述のごとく本発明によれば、NURBSデータの評価とレ
ンダリングの高効率化、高精度化、高速化が実現され
る。
ンダリングの高効率化、高精度化、高速化が実現され
る。
第1図は、異なる多項式の組によって表される三つの連
続スパンから成る2次元カーブの図である。 第2図は、NURBSカーブCとその6個の制御点の図であ
る。 第3図は、2次元座標空間におけるカーブCのスパン
(t3−t4)と、パラメータ空間におけるそのスパン、そ
の前の3個の節点値(t1、t2、t3)およびその後の3個
の接点値(t4、t5、t6)の図である。 第4図は、本発明に従って構成されたカーブ評価/レン
ダリング装置のコンポーネントと相互接続を示すブロッ
ク図である。 第5図は、3次元NURBSカーブがシステム・メモリに格
納されたときのデータ構造を示す図である。 第6a図と第6b図は、本発明によるカーブ評価システムの
動作のフローチャートである。 第6c図は、パイプライン型の並列浮動小数点プロセッサ
と次段のプロセッサによって送られたコマンドのフロー
チャートである。 第6d図は、本発明による、並列浮動小数点プロセッサと
後続のプロセッサ内の動作を示すフローチャートであ
る。 第7a図ないし第7c図は、動作の各段階における並列浮動
小数点プロセッサ内の節点スタックを示す図である。 第8a図と第8b図は、動作の各段階におけるグラフィクス
制御プロセッサ内のスタックを示す図である。 第9a図と第9b図は、各段階における各並列浮動小数点プ
ロセッサ内の制御点スタックを示す図である。 第10a図と第10b図は、本発明に用いられるテッセレーシ
ョン・パラメータの計算方法の理解に役立つ図である。 第11a図と第11f図は、本発明に用いられるのが望まれる
Cox−DeBoorの評価法を示す図である。
続スパンから成る2次元カーブの図である。 第2図は、NURBSカーブCとその6個の制御点の図であ
る。 第3図は、2次元座標空間におけるカーブCのスパン
(t3−t4)と、パラメータ空間におけるそのスパン、そ
の前の3個の節点値(t1、t2、t3)およびその後の3個
の接点値(t4、t5、t6)の図である。 第4図は、本発明に従って構成されたカーブ評価/レン
ダリング装置のコンポーネントと相互接続を示すブロッ
ク図である。 第5図は、3次元NURBSカーブがシステム・メモリに格
納されたときのデータ構造を示す図である。 第6a図と第6b図は、本発明によるカーブ評価システムの
動作のフローチャートである。 第6c図は、パイプライン型の並列浮動小数点プロセッサ
と次段のプロセッサによって送られたコマンドのフロー
チャートである。 第6d図は、本発明による、並列浮動小数点プロセッサと
後続のプロセッサ内の動作を示すフローチャートであ
る。 第7a図ないし第7c図は、動作の各段階における並列浮動
小数点プロセッサ内の節点スタックを示す図である。 第8a図と第8b図は、動作の各段階におけるグラフィクス
制御プロセッサ内のスタックを示す図である。 第9a図と第9b図は、各段階における各並列浮動小数点プ
ロセッサ内の制御点スタックを示す図である。 第10a図と第10b図は、本発明に用いられるテッセレーシ
ョン・パラメータの計算方法の理解に役立つ図である。 第11a図と第11f図は、本発明に用いられるのが望まれる
Cox−DeBoorの評価法を示す図である。
Claims (14)
- 【請求項1】コンピュータ・グラフィックス・システム
によってレンダリングと表示を行なうために、パラメト
リック・カーブを表わすNURBS(ノン・ユニフォーム・
レイショナル・Bスプライン)データをジオメトリック
座標に変換する装置であって、 上記カーブが上記カーブに沿ったパラメータ点(t)を
有し、1つ以上のスパンからなり、各スパンが制御点と
節点値によって定義され、NURBSデータが上記制御点を
定義する制御点データと上記節点値を定義する節点ベク
トルを含み、 NURBSデータをデータ・レコード列として、カーブの連
続するスパンの各々が、対応する個々のデータ・レコー
ドによって定義されるように、上記列の所定数の直前の
データ・レコードと共に格納する手段と、 上記データ・レコード列を読取り、NURBSデータに含ま
れる制御点データ(x、y、z)を重みwを掛けて同次
座標(wx、wy、wz、w)に変換し、変換された制御点デ
ータを生成するグラフィックス制御プロセッサ(14)
と、 上記同次座標に各々対応し、上記変換された制御点デー
タを受取り、上記カーブに沿った上記パラメータ点の各
々における上記カーブの同次座標を同時に決定し、上記
パラメータ点における上記座標を表わす出力(wx
(t)、wy(t)、wz(t)、w(t))を生成する複
数の並列浮動小数点プロセッサ(16x、16y、16z、16w)
と、 上記グラフィックス・システムによるレンダリングと表
示を目的に、上記並列浮動小数点プロセッサの出力を受
取り、上記出力を上記パラメータ点のジオメトリック座
標(x、y、z)に変換する浮動小数点プロセッサであ
って、上記1つの並列浮動小数点プロセッサの上記出力
(w(t))を反転して上記出力の逆数出力(1/w
(t))を得、他の並列浮動小数点プロセッサの出力に
上記逆数出力を掛けることによって上記ジオメトリック
座標(x、y、z)を得る浮動小数点プロセッサ(18)
と、を含むデータ変換装置。 - 【請求項2】上記データ・レコード列が、 上記カーブの次数kと制御点数nとを指定する予備デー
タと、 上記カーブの初期節点値と、 上記カーブの第1スパンに関連づけられ、各々が後節点
及び制御点のモデリング座標と重みとからなる一連とデ
ータ・セットと、 各々がカーブの連続スパンを完成し、連続した節点値、
連続した制御点のモデリング座標と重み及び上記カーブ
を直線線分に分けるためのテッセレーション・パラメー
タからなる一連の拡張データ・セットと、 上記カーブの最終節点値と、を含む請求項1記載のデー
タ変換装置。 - 【請求項3】上記グラフィックス制御プロセッサが最初
に制御点のモデリング座標をビュー座標に変換し、次に
変換された座標を上記同次座標群に変換し、 上記パラメトリック・カーブを直線線分に分けるための
パラメトリック座標区間を決定して、 上記複数の並列浮動小数点プロセッサによって使用する
ために区間離隔した一連のパラメータ点を生成する、請
求項1記載のデータ変換装置。 - 【請求項4】上記グラフィックス制御プロセッサが、上
記拡張データ・セットの上記カーブを直線線分に分ける
ためのテッセレーション・パラメータをもとに上記カー
ブの連続スパンについてパラメトリック座標区間を決定
する、請求項1記載のデータ変換装置。 - 【請求項5】コンピュータ・グラフィックス・システム
によるレンダリングと表示を目的に、パラメトリック・
カーブを表わすNURBS(ノン・ユニフォーム・レイショ
ナル・Bスプライン)データをジオメトリック座標に変
換する装置であって、上記カーブが上記カーブに沿った
パラメータ点(t)を有し、連続したスパンからなり、
各スパンが制御点と節点値によって定義され、NURBSデ
ータが上記制御点を定義する制御点データと、上記節点
値を定義する節点ベクトルを含み、 上記カーブの連続したスパンを定義するNURBSデータ
を、データ・レコード列として、上記カーブの連続スパ
ンの各々が対応する個々のデータ・レコードによって定
義されるように、上記列の所定数の直前のデータ・レコ
ードと共に格納する第1メモリ手段と、 上記制御点データ(x、y、z)を重みwを掛けて同次
座標(wx、wy、wz、w)に変換し、変換された制御点デ
ータを生成するグラフィックス制御プロセッサと、 ある特定のスパンを定義するNURBSデータを格納する、
第1行を含む複数の行を有する第2メモリ手段(39、4
9、57x−57w)であって、新しいスパンについて、新し
いデータを上記第1行に格納し、先に格納されたデータ
を上記第1行の後続の行にシフトさせることによってデ
ータが更新され、上記第2メモリ手段に格納されたNURB
Sデータが上記グラフィックス制御プロセッサによって
処理される第2メモリ手段と、 上記グラフィックス制御プロセッサによる処理を目的
に、上記データ・レコードを上記第1メモリ手段から上
記第2メモリ手段に転送する手段であって、最初に、上
記第1スパンに沿ったパラメータ点の座標を決定するこ
とを目的に、上記第1メモリ手段から上記第2メモリ手
段へ上記カーブの第1スパンを転送するために動作し、
次に、別のスパンの各々に沿ったパラメータ点の座標を
決定することを目的に、上記第1メモリ手段から上記第
2メモリ手段へ別のデータ・レコードを転送するために
動作する転送手段と、 各々が上記同次座標に対応し、上記変換された制御点デ
ータを受取り、上記カーブに沿った上記パラメータ点の
各々における上記カーブの同次座標を同時に決定し、上
記点における上記座標を表わす出力(wx(t)、wy
(t)、wz(t)、w(t))を生成する複数の並列浮
動小数点プロセッサ(16x、16y、16z、16w)と、 上記グラフィックス・システムによるレンダリングと表
示を目的に、上記並列浮動小数点プロセッサの出力を受
取り、上記出力を上記パラメータ点のジオメトリック座
標(x、y、z)に変換する浮動小数点プロセッサであ
って、上記1つの並列浮動小数点プロセッサの上記出力
(w(t))を反転して上記出力の逆数出力(1/w
(t))を得、他の並列浮動小数点プロセッサの出力に
上記逆数出力を掛けることによって上記ジオメトリック
座標(x、y、z)を得る浮動小数点プロセッサ(18)
と、を含むデータ変換装置。 - 【請求項6】上記第2メモリ手段が上記グラフィックス
制御プロセッサに関連づけられ、スパンを定義する制御
点を格納するスタック(49)を含む、請求項5記載のデ
ータ変換装置。 - 【請求項7】上記第2メモリ手段が上記並列浮動小数点
プロセッサの各々に関連づけられ、スパンを定義する制
御点の対応する同次座標を格納するスタック(57x、57
y、57z、57w)からなる、請求項5記載のデータ変換装
置。 - 【請求項8】上記グラフィックス制御プロセッサが上記
変換された制御点データを使用して上記パラメータ点を
生成し、上記パラメータ点を上記並列浮動小数点プロセ
ッサに転送する、請求項7記載のデータ変換装置。 - 【請求項9】上記第2メモリ手段が上記並列浮動小数点
プロセッサの各々に関連づけられ、スパンを定義する節
点値を格納するスタック(39)を含む、請求項5記載の
データ変換装置。 - 【請求項10】上記グラフィックス制御プロセッサが最
初に制御点のモデリング座標をビュー座標に変換するこ
とを含む請求項5記載のデータ変換装置。 - 【請求項11】コンピュータ・グラフィックス・システ
ムによるレンダリングと表示を目的に、NURBS(ノン・
ユニフォーム・レイショナル・Bスプライン)データを
パラメトリック・カーブに変換する装置であって、 上記カーブが連続したスパンからなり、上記スパンにパ
ラメータ点が沿っており、 上記カーブを定義するNURBSデータをデータ・レコード
列として、上記カーブの連続スパンの各々が、対応する
個々のデータ・レコードによって定義されるように、上
記列の所定数の直前のデータ・レコードと共に格納する
RAMと、 上記カーブのある特定のスパンに沿ったパラメータ点の
座標を決定する、上記カーブの上記スパンを定義するNU
RBSデータを格納するメモリ手段を有する処理手段と、 上記パラメータ点の座標を上記処理手段によって決定す
るために、上記データレコードを上記RAMから上記メモ
リ手段に転送する手段であって、最初に上記カーブの第
1スパンを定義するデータ・レコードを上記RAMから上
記メモリ手段に転送して、上記第1スパンに沿ったパラ
メータ点の座標を判定し、次に、別のデータ・レコード
を上記RAMから上記メモリ手段に転送して、別のスパン
の各々に沿ったパラメータ点の座標を決定する転送手段
と、を含むデータ変換装置。 - 【請求項12】上記メモリ手段が第1行を含む連続した
複数の行を有し、新しいスパンについて、上記第1行に
新しいデータを格納し、先に格納されたデータを上記第
1行の後続の行にシフトさせることによってデータが更
新される、請求項11記載のデータ変換装置。 - 【請求項13】各スパンが制御点によって定義され、上
記メモリ手段がスパンを定義する制御点を格納するスタ
ック(49)を含む、請求項12記載のデータ変換装置。 - 【請求項14】各スパンが節点値によって定義され、上
記メモリ手段がスパンを定義する制御点を格納するスタ
ック(39)を含む、請求項12記載のデータ変換装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US42691289A | 1989-10-24 | 1989-10-24 | |
US426912 | 1989-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03144781A JPH03144781A (ja) | 1991-06-20 |
JPH0766451B2 true JPH0766451B2 (ja) | 1995-07-19 |
Family
ID=23692710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24767390A Expired - Lifetime JPH0766451B2 (ja) | 1989-10-24 | 1990-09-19 | コンピュータ・グラフィック装置 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0425174A3 (ja) |
JP (1) | JPH0766451B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6525725B1 (en) * | 2000-03-15 | 2003-02-25 | Sun Microsystems, Inc. | Morphing decompression in a graphics system |
JP5967946B2 (ja) * | 2012-01-23 | 2016-08-10 | 株式会社アドテックエンジニアリング | 露光描画装置、露光描画システム、プログラム及び露光描画方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4760548A (en) * | 1986-06-13 | 1988-07-26 | International Business Machines Corporation | Method and apparatus for producing a curve image |
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 |
US4912659A (en) * | 1987-10-30 | 1990-03-27 | International Business Machines Corporation | Parallel surface processing system for graphics display |
-
1990
- 1990-09-19 JP JP24767390A patent/JPH0766451B2/ja not_active Expired - Lifetime
- 1990-10-17 EP EP19900311369 patent/EP0425174A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JPH03144781A (ja) | 1991-06-20 |
EP0425174A3 (en) | 1992-10-07 |
EP0425174A2 (en) | 1991-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5317682A (en) | Parametric curve evaluation method and apparatus for a computer graphics display system | |
US5278948A (en) | Parametric surface evaluation method and apparatus for a computer graphics display system | |
Gallagher et al. | Computer visualization: graphics techniques for engineering and scientific analysis | |
US5448686A (en) | Multi-resolution graphic representation employing at least one simplified model for interactive visualization applications | |
US6031548A (en) | Progressive multi-level transmission and display of triangular meshes | |
US7924278B2 (en) | Real-time GPU rendering of piecewise algebraic surfaces | |
US8537158B2 (en) | Parallel triangle tessellation | |
US6906718B1 (en) | Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics | |
JPH07120434B2 (ja) | ボリュームレンダリングを行う方法及び装置 | |
WO2000002165A1 (fr) | Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees | |
WO2009002882A1 (en) | Direct manipulation of subdivision surfaces using a graphics processing unit | |
JPH0683978A (ja) | 等値サーフェイスを効率的に生成し等値サーフェイス画像データ及び表面等値線画像データをディスプレイするための方法及び装置 | |
US5537520A (en) | Method and system for displaying a three dimensional object | |
JP2926637B2 (ja) | ボリュームレンダリング装置及びこれに好適な方法 | |
US7724254B1 (en) | ISO-surface tesselation of a volumetric description | |
JPH0766451B2 (ja) | コンピュータ・グラフィック装置 | |
US20230038647A1 (en) | Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer | |
Vyatkin et al. | Optimized finite element method using free-form volume patches for deformation of three-dimensional objects | |
Zhou et al. | Pixel-exact rendering of spacetime finite element solutions | |
Shah et al. | GPU-accelerated post-processing and animated volume rendering of isogeometric analysis results | |
JP2001067491A (ja) | 再分割多角形を用いる画像表示方法及び装置 | |
Bruijns | Quadratic Bezier triangles as drawing primitives | |
JP3229384B2 (ja) | ベクトル形状編集装置 | |
Zheng et al. | An Efficient Parallel Implementation of the Marching-cubes Algorithm | |
JPS63118982A (ja) | 多角形に対する点の内外判定演算処理方法 |