JPH03144781A - コンピュータ・グラフィック装置 - Google Patents

コンピュータ・グラフィック装置

Info

Publication number
JPH03144781A
JPH03144781A JP24767390A JP24767390A JPH03144781A JP H03144781 A JPH03144781 A JP H03144781A JP 24767390 A JP24767390 A JP 24767390A JP 24767390 A JP24767390 A JP 24767390A JP H03144781 A JPH03144781 A JP H03144781A
Authority
JP
Japan
Prior art keywords
curve
data
coordinates
processor
control
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
Application number
JP24767390A
Other languages
English (en)
Other versions
JPH0766451B2 (ja
Inventor
Jr William L Luken
ウイリアム・ルイス・ルーケン、ジユニア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03144781A publication Critical patent/JPH03144781A/ja
Publication of JPH0766451B2 publication Critical patent/JPH0766451B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、−殻内には、コンピュータ・グラフィクスに
関し、特にパラメトリック・カーブの評価とレンダリン
グを行う装置および方法に関する。
B、従来技術及び課題 ]ンピュータ技術の発展に伴い、コンピュータによって
生成されたグラフィカルな情報を表現する方法に工夫が
凝らされ、洗練された技術が生まれている。この技術は
コンピュータ・グラフィクスと呼ばれる。この数年、実
物に近いイメージに対する需要の伸びと平行して、科学
技術分野に3次元(3D)コンピュータ・グラフィクス
を用いるケースが増えている。
現在のコンピュータ・グラフィクスのデイスプレィは、
線、マーカ、多角形に加えて、パラメトリック・カーブ
など、より一般的なジオメトリツク・プリミティブをサ
ポートしている。しかし、このようなコンピュータ・グ
ラフィクス・ディスプレイ・システムでカーブの評価と
レンダリングを行う方法は、いままでは、効率が悪く、
複雑で高価な外部制御ロジックを必要とすることが多か
った。
パラメトリック・カーブは、Bスプライン形式で表現で
きることが知られており、他の形式も、それからカーブ
の評価とレンダリングが試みられている。たとえば従来
のCAD/CAMアプリケージ日ンでは、グラフィクス
・ワークステージーンを用いるために、ホスト・コンピ
ュータのデータベースに格納されたカーブを形作るポリ
ラインをBスプライン・カーブとして送り込む。ホスト
・コンピュータは、このプロシージャに従って、スプラ
イン・カーブを直線ベクトルに分解し、直線ベクトルを
グラフィクス・ワークステージーンに送る。ここで従来
の処理とこれに続く表示が行われる。このプロシージャ
は効率が悪く、Bスプラインに特有のメリットを活かせ
ない。
米国特許第4760548号明細書は、カーブをビジュ
アルに表現する装置について説明している。ここでカー
ブ・データは、比例整変数を用いた前進差分法で求めら
れたBスプライン式によって与えられる。ただしこの方
法にはいくつか欠点がある。サポートされるのは、広範
なNURBS(non−unlfors ratlon
al b−sp目nes3クラスのサブセットである 
uniform non−rational b−sp
Hnesだけであり、円など、ある種のカーブについて
は効果的なレンダリングができない。これは初期の方法
であり、カーブを成す隣接するスパンから離れた個々の
スパンに適用され、前進差分アルゴリズムに浮動小数点
演算の場合に生じる誤差の累積を避けるために、整数演
算にたよる。ころした制限から、効率、高速性、有用性
がかなり犠牲になる。
米国特許第4855935骨切m書は“Methoda
nd  Apparatus  For  Renda
rlng  Vectors  UslngBrese
nham Parameters”について説明してい
る。
この方法も、米国特許第4760548号明細書と同様
、NURBSをサポートせず、前進差分アルゴリズムに
依存する度合いが高く、隣接するスパンから離れた個々
のスパンに適用され、整数演算にたよるほか、3次式に
特有のものと思われ、カーブを直接側々のビクセルに変
換する。
従来の方法には、パラメトリック・カーブの評価とレン
ダリングを行うときにNURBSデータを充分に活用し
ているものがない。ここから、パラメトリック・カーブ
を表すNURBSデータの評価とレンダリングの高効率
化、高精度化、高速化を実現する装置および方法が求め
られている。
インタラクティブな3Dグラフイクスの標準として提案
されているP HI G S (Programmer
’5HIerarch、Ical Interacti
ve Graphlcs 5tandard)PLUS
は、NURBSを基にカーブの定義をサポートしている
ことから、このニーズを促進する標準となっている。
C0発明の概要及びその解決課題 本発明は、このニーズを満たし、他のメリットを実現す
るために、オーダにのマルチスパン・パラメトリック・
カーブを表すNURBSデータを、データ・レコードの
シーケンスとしてメモリに配置する、カーブ評価システ
ムを提供するものである。データ・レコードのシーケン
スは、連続したカーブ・スパンが、シーケンスの直前の
複数のデータ・レコードとともに、連続した個々のレコ
ードによって定義されるように配置される。
データ・レコードは、グラフィクス制御プロセッサによ
ってシーケンシャルに読み取られる。制御プロセッサは
、NURBSデータとコマンドを、パイプライン型の浮
動小数点プロセッサに選択的に引き渡す。このパイプラ
インには、4個の並列プロセッサが含まれ、それぞれの
出力は次段のプロセッサの入力に接続される。並列プロ
セッサは、カーブに沿った所定のパラメータ点における
一組の同次座標(W X1W YlW Zs  W )
の各成分に対するBスプライン関数を同時評価するよう
にはたらく0次段の浮動小数点プロセッサが、同次座標
をジオメトリツク座標に変換することにより、グラフィ
クス・デイスプレィ・システムのスクリーン上でカーブ
のレンダリングが行われる。
本発明では、特にグラフィクス制御プロセッサが、パラ
メトリック・カーブに関係する制御点をモデリング座標
からビュー座標に変換し、変換された制御点座標を同次
座標に変えて、パラメトリック・カーブをテッセレート
するパラメータ座標間隔を決定し、間隔をとった一連の
パラメータ点を生成する。このパラメータ点が評価に用
いられる。
本発明の実施例では、並列浮動小数点プロセッサは、評
価を行うためにCox−DeBoorプロセスを実行す
る。並列プロセッサのいずれかは、評価されたパラメー
タ点に重み出力を与え、次段の浮動小数点プロセッサが
重みの逆数を計算して、他の3個の並列プロセッサの出
力をこの逆数に掛け、ジオメトリツク座標を得る。クリ
ッピング・プロセッサとフレーム・バッファは、次段の
浮動小数点プロセッサの出力と直列に接続することで効
果的に使用でき、プロセッサともにパイプライン動作を
行う。
本発明ではまた、NURBSデータが次のようなシーケ
ンスに配置され、このデータを連続した復雑なカーブ・
スパンによって共用できる。
カーブのオーダにと制御点数nを指定する第1シーケン
ス カーブの最初の節点ないしに一1位の節点の節点値を含
む第2シーケンス 連続したに一1個のデータ・セットを含み、各データ・
セットが、座標および制御点と節点値の重みWのほか、
カーブの最初の制御点ないしに一1位の制御点と、k位
の節点ないし2k一2位の節点とに対するデータを含む
第3シーケンス連続したn−に個のデータ・セットを含
み、データ・セットが、カーブのに位の制御点ないしn
位の制御点と、2k一1位の節点ないしn十に一1位の
節点とに対するデータおよびテッセレーシロン・パラメ
ータ!ないしn−に+1を含む第4シーケンス、および n+k位の節点値を含む第5シーケンスNURBSを基
にパラメトリック・カーブの評価とレンダリングを行う
本発明の装置および方法は、高性能、高速、高精度、カ
ーブ制御性、PHIGS  PLUSとの互換性、デー
タ冗長性の解消など様々なメリットを提供する。さらに
本発明では、コンピューターグラフィクス・デイスプレ
ィ・システムの特性および、低位のNURBSを用いて
複雑なカーブを形成する機能、ローカル制御、凸閉包性
(convex hull property)s 重
みを用いて円錐部の正確なレンダリングを行う機能、座
標変換に関する不変性、太線なデータ圧縮など、NUR
BSのメリットを活かすことができる。本発明のこのよ
うな特徴は、以下の説明から、より明確になるはずであ
る。
D、実施例 本発明は、性能向上を図り、N U RB S (no
n−unlform rational b−spHn
es)に基づき1.?イブライン型の並列プロセッサを
用いてパラメトリック・カーブを描くシステムに関する
。これに関連した用語や数学の詳細については、”An
Introduction to SpHnes fo
r Use In ComputerGripblcs
 & Geosetrlc Model目ng” by
 R,H。
Bartelg、 J、C,Beatty、 and 
B、A、 Barsky(Margin Kaufsa
nn、 1987)を参照されたい。
NURBSは、簡単に言えば、パラメトリック関数の1
クラスであり、パラメトリック・カーブを表現するため
に用いられる。NURBSカーブは、パラメトリック座
標(1)に依存する。パラメトリック座標は、カーブの
始点から終点への移動において単調に増加する。このパ
ラメトリック座標はジオメトリツク座標CXs  Yl
Z)に加えられる。したがって、たとえば3Dカーブの
場合は次のようになる。
x=X(t) Y=Y(t) z=Z(t)、 ここでX(t)、Y(t)、z(t)はパラメトリ、り
座標tの関数である(tl、≦t≦tmxL パラメトリック・カーブは、簡単な多項式によっても定
義でき、このようなパラメトリック多項式関数は、対応
するNURBS関数によって正確に表現できる。
NURBSカーブは有理式または非有理式で定義できる
。非有理式では、NURBSカーブの各成分(x、Ys
  z )は、パラメトリック座標の多項式関数を評価
することによって求められる。
X(t) Σ C11j’ 1=0 Y(t) Σ C。
1 i=0 Z  (t)  =  Σ   Czlj’I=O 有理式では、重みと呼ばれる関数が追加されるW(t)
=Σ   Cw+j’ 1=O この場合ジオメトリツク座標は次の多項式の比によって
求められる。
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)を指定する多項式と同様の多11i式である。
NURBS関数はそれぞれ、パラメトリ、り陣標の最高
ベキに対応する次数(m)と、次Fimの多項式におけ
る線形独立項の個数に対応するm+1に等しいオーダ(
k)によって特徴づけられる。
したがって、たとえば2次関数a x2+ b x +
 cは、次数2、オーダ3である。
NURBS関数は、F!i数の係数の組によって表せ、
6紹は、一定範囲のパラメトリック座標に対してのみf
1効である。したがってカーブは、連続したスパンのン
ーケ/スに分けることができ、呂スパンはソーiなる多
項j(によって表せる。これは第1図に、二つのスパン
から成る2次元カーブCとして示した。第1スバ/は、
toから【1におよぶパラメトリック値によって定義さ
れ、カーブのこの部分の座標は次の2珀式によって求め
られる。
X+(t)=Σ   Cx1lj’ 1=0 Yl(t)=Σ   C++llt’ ;:O 第2スパンは、j+からt2kおよぶノfラメトリック
値によって定義され、カーブのこの部分の座標は次の多
項式によって求められる。
X2(t)=Σ  Cx2+j’ I=0 Y2(t)=Σ   Cy21(’ 1=O NURB Sは、制御点、重み、および節点ベクトルに
よって決定される。制御点は、カーブのジオメトリを制
御する主要素である。カーブにはn個の制御点を考える
ことができる。ここでnはカーブのオーダ(k)よりも
大きいかそれに等しい。カーブの各スパンはに個の制御
点を持つ。制御点により、カーブの一般形状が決まるが
、カーブは普通、これらの点を通過しない。第2図に、
6個の制御点を持つカーブCを示した。
重み値は、NURBSカーブの有理式を定義するために
のみ用いられる。有理式では、重み(W)は、制御点の
各座標CXs  Y12)に関連する。
重みと座標は結合されて同次座標(WX% WYsw 
zs  w )を成し、これが4個のパラメトリック多
項式関数WX (t )、WY(t)、WZ(t)、W
 (t)の組に対する制御点を定義する。ころして得ら
れるジオメトリツク座標は次の比によって求められる。
x (t)=WX (t)/W (t)Y (t)=W
Y (t)/W Ct>z (t)=WZ (t)/W
(t) 重みは、Oより大きい正の値とする必要がある。
普通、重みの値は1に近<、重みがすべて等しい場合、
有理式は非有理式に縮分される。
カーブの節点ベクトルは、パラメトリック座標(1)に
対してパラメータ空間の分割を定義する。
n個の制御点を持つオーダにのカーブの節点ベクトルは
、n + k個の成分を持ち、そのうち最初と最後の成
分は決して用いられない。カーブの各スパンは、2m個
の連続した節点値に依存する。ここでmはに−1であり
、kはカーブのオーダである。これらの節点値は二つの
グループに分けられる。一つはスパンの前のm個の節点
値を持つグループであり、もう一つはスパンの後のm個
の節点値を持つグループである。第3図に示すとおり、
カーブCのスパン(t 3− t 4)の前には3個の
節点値(tt、t2、t、)、後には3個の節点値(1
,、t5、ta)がある。節点値は、Bスプラインが一
様か一様でないかを決定する。節点の各位の間隔が一様
であれば(011,2,3など)、結果は一様なりスプ
ラインとなる。−様でないBスプラインでは、節点値は
不規則な間隔をとって分けられ、節点値は、節点ベクト
ル(0,0、!、  2. 1. 5.1. 5.2.
 7.9. 0)のように反復し得る。
ここでは、NURBSといつ用語は一般的な意味で用い
、非有理な(重みを1に等しく設定した)−様Bスプラ
イ7ンの特殊なケースを指すものとする。
以上の基本的な数学をベースに、ここで本発明の実施例
について説明する。本発明に従って構成されたカーブ評
価/レンダリング・システム(10)は第4図に示すと
おりである。このシステムは主として次のコンポーネン
トを含ム。
(1)システム・メモリ(12) (2)グラフィクス制御プロセッサ(14)およびパイ
プライン方式で動作する、 (3)並列に配置された4個の浮動小数点プロセッサ(
18x118yt  18z1 few)のグループ(
16) (4)M列浮動小数点プロセッサ(16)の出力に接続
された次段の浮動小数点プロセッサ(18) (5)クリツピング・プロセッサ(20)(6)フレー
ム・バッファ(22) システム・メモリ(12)には、各パラメトリック・カ
ーブのNURBSデータが含まれる。
データはメモリ12k格納され、構造化された(すなわ
ち連続した)グラフィクス制御プロセッサ(14)に転
送される。これにより、データは、連続したスパンによ
って共用され、データの冗長性がなくなる。
第5図は、シーケンスの各部lないし5によって示され
るデータの構造である。第1シーケンスでは、予備ヘッ
ダ情報がシステム・メモリに置かれる。ヘッダ情報には
、オーダ(k)(kは2ないしkma xの整数−−k
maxは浮動小数点プロセッサによってサポートされる
最大オーダ)、制御点数(n)(常に& k ) 、カ
ーブ・タイプ・フラグ(非有理のとき11  有理のと
き0をとる)、カーブ・ステータス・フラグ(未定義の
テッセレーンβン・パラメータでは0、定義済みテッセ
レーションパラメータでは0をとる)、tminとtm
ax(パラメトリック座標の範囲を指定する)が含まれ
る。テッセレーシロン・パラメータについては後述する
第2シーケンスでは、カーブの初めの節点工ないし接点
に−1がシステム・メモリに置かれる。
第3シーケンスでは、節点にないし節点2k−2の値、
連続した制御点lないしに−1のXly%2座標、およ
び制御点!ないしに−1に関連する重みがシステム・メ
モリに置かれる。このデータは縦の列に示すようにグル
ープ分けされる。第5図の縦の列はそれぞれデータ・セ
ットすなわちレコードから構成される。
第4シーケンスも上記と同様の連続したデーク◆セット
すなわちレコードを格納する。各レコードにはテッセレ
ーシgン・パラメータ(d)が付加される。第4シーケ
ンスの連続したデータ・レコードはそれぞれ、連続した
カーブ・スパンを完成する。スパンは、k個の制御点と
2k一2個の節点によって定義される。第2シーケンス
の節点1は、カーブ評価には用いられない。したがって
、第1スパンを完成するのは、24aとした、節点値2
k−1を含む列すなわちデータ・レコード、制御点座標
x (k)、Y (k)、z (k)、重みw(k)、
およびテブセレーシずンデータd (1)のほか、第3
シーケンスのデータ・レコードと、第2シーケンスの節
点2ないしに−1の節点値である。第2スパンを完成す
るのは、第4シーケンスのデータの第2のセットすなわ
ち列のほか、前の2k一3個のデータ列である(すなわ
ち前のに一1個の制御点と関連する重み、および2k一
3個の節点値)。後続するスパンも同様に構成される。
このように処理することで、新しいスパンのそれぞれに
、後続する第4シーケンスのデータ・セットと先に格納
された直前の2k一3個のデータ・レコードが用いられ
、データの冗長性がなくなる。
第5シーケンスでは、最後の節点値n+kがシステム・
メモリに置かれる。ただしこの節点はカーブ評価プロセ
スには用いられない。
ここで第4図を参照する。グラフィクス制御プロセッサ
(14)は、システム・メモリに格納されたデータを、
先に説明したシーケンスで読み込み、第4図に2方向を
指す矢印で示したように、システム・メモリにデータを
書き戻すことができる。グラフィクス制御プロセッサは
、制御点データをモデリング座標からビュー座標に変換
し、変換された制御点データを同次S標(WX% wY
1WZ%W)に変えて、パラメトリック座標間隔(d 
t)を求める。これによりパラメトリック座標がテブセ
レートされ、間隔をとった一連のパラメータ点(PC)
が生成される。グラフィクス制御プロセ、すはまた、コ
マンドとデータを4個の並列浮動小数点プロセッサ(1
6)に転送する。
以下これについて詳述する。プロセッサ16X。
187118z% 16wはそれぞれ独立に、同期して
、各パラメータ点PCの同次座標wx1 wy、WZ、
WのそれぞれのBスプライン関数を同時+if価する。
プロセッサIElx、16Vs  18zs  16w
の出力wx(t)、wY(t)、wz (t)、w(t
)はそれぞれ、浮動小数点プロセ、す18に直列に供給
される。プロセッサ18は、w(t)の逆数を計算し、
wx(t)、wY(t)、wz(1)にこの逆数を掛け
て、カーブを表すポリラインの頂点のジオメトリツク座
標X1Vs  Zを求める。ポリライン座標は、クリッ
ピング・プロセッサ(20)により従来の方法で処理さ
れ(すなわち順列頂点の各ペアによって定義されたベク
トルが現在のビュー・ウィンドウにクリップされ)、フ
レーム−バッファ22k送られる。ここでコンピュータ
・グラフィクス・デイスプレィのモニタースクリーン(
図示なし)上で従来の方法によりカーブのレンダリング
が行われる。
ここで本発明の実施例について述べる。システム・メモ
リ12は2ないし4Mバイト(またはそれ以上)のRA
 M (random access memory)
から構成できる。システム・メモリは、少なくとも1個
のパラメトリック・カーブのデータを格納できなければ
ならない。また代表的なシステム・メモリは、様々なグ
ラフィクス・ニレメン) (NURBSカーブを含めた
プリミティブと属性)から成るデイスプレィ・リストを
格納する。グラフィクス制御プロセッサ14は、浮動小
数点乗算器、浮動小数点演算用、シーケンサ、少なくと
も32kのデータ・メモリをアクセスする機能、32個
の整数レジスタ、および浮動小数点演算用の32個のレ
ジスタを備える。プロセッサ14は、IOMH2のWe
itekチ1プ・全1ト(プログラマブル・シーケンサ
XL−8138、浮動小数点プロセッサ◆ユニットXL
−3132、および整数処理ユニットが連係)によって
効果的に実現できる。
浮動小数点プロセッサ16 X%  18 yll 8
 zsl 8 W%  および18には、それぞれ32
ビット浮動小数点演算機能を組み込んだVLS Iプロ
セッサを採用できる。各プロセッサは、浮動小数点乗算
器、浮動小数点加算VS(乗算器用のアキエムレータと
しても用いられる)、簡易シーケンサ、マイクロコード
用RA M、  インタフェース入出力用F I F 
O,およびデータ格納用の84個のレジスタを備える。
浮動小数点プロセッサは一般に知られているとおりであ
る。米国特許出願第331021号(1989年3月2
8日出願)では、特殊な入出力FIFOにより、ここに
述べている並列/パイプライン接続の効果が高められる
。クリッピング・プロセッサ20とフレーム・バブファ
22は、性能に問題がなければ、それぞれ、複数の類似
のプロセッサを備えることができ、個数と構成は任意で
ある。
一般に、NURBSカーブがメモリ12のデイスプレィ
・リストに現れると、制御点はグラフィクス制御プロセ
ッサ14によって変換される。変換された制御点は同次
座標(W X、W YN  W ZNW)に変えられ、
パイプライン型の並列プロセッサ16に送られる。ここ
で各座標はプロセッサ18x% t8yx ”16z1
 lawによって保持される。グラフィクス制御プロセ
ッサ14は次に、パラメトリック座W (t)をテッセ
レートする方l去を判定し、一連のパラメータ値をパイ
プラインに送り出す。プロセッサ16は、パラメトリッ
ク座標の各位に対してWX% W VlW ZI  W
の各成分を並列に同時評価する。こうして得られた値W
X(1)、wY (t)、WZ (t)、w (t)は
プロセッサ18に引き渡され、プロセッサ18はこれら
を(X%  ys  z)座標に変換する。各点は後に
、クリッピング・プロセッサ20とフレーム・バッフy
22kよって、通常のポリラインの一部であるかのよう
に処理される。メモリ12内のNURBSデータの編成
と、上述のパイプライン型の装置による処理は、本発明
に多大のメリットをもたらす。
カーブ評価システム10におけるグラフィクス制御プロ
セッサ14の動作並びに他のプロセッサの動作は第6a
図ないし第6d図に示した。以下これについて説明する
第6a図では、最初に、オーダ(k)、制御点数(n)
、カーブ・タイプ・フラグ、カーブ・ステータス◆フラ
グ、jmfnとtma xを含むヘッダ情報がシステム
・メモリに読み込まれ(30)、グラフィクス制御プロ
セッサ14内のレジスタに格納される。制御点が何個処
理されたかを記録しておくためにレジスタ(カウンタと
いう)が用いられ、最初はOにセットされる。
次にグラフィクス制御プロセッサが“パラメトリック・
カーブ開始”コマンド(34)とオーダ(k)(36)
を各浮動小数点プロセッサ(I6)へ送る。
グラフィクス制御プロセッサは次に、システム・メモリ
からに一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にセットされる(4θ)。これは非存FIBスプラ
インを示す。
次にグラフィクス制御プロセッサは、システム−メモリ
から受信されたばかりの制御点を、モデリング座標から
ビュー座標(XN  ys  z)に変換する。グラフ
ィクス制御プロセッサにロードされた変換マトリックス
により%  Xs  Y% 2が従来の方法で必要に応
じて変換、回転、あるいは拡大縮小される。
変換プロセスが終わると、グラフィクス制御プロセッサ
は、節点値(1)と制御点座標(XsYs2)をグラフ
ィクス制御プロセッサのローカル・メモリにあるスタッ
ク49にブツシュする。スタック49は、制御点データ
行に行を保持するのに充分(1スパンに充分)な大きさ
であり、これもFIFOベースで動作する。このローカ
ル・メモリ・スタックの一例(k=4)を第8a図に示
した。データの最初の行はスタックにブツシュされてわ
り、スタックの他の部分は空である。
次に、グラフィクス制御プロセッサにおいて、システム
・メモリから読み込まれたばかりの制御点座標(X17
1  z)に重み(w)が掛けられ、重みつき座標(V
ir Xs  W Ys  W 2m  W )が得゛
られる(52)。
次に、グラフィクス制御プロセッサは、 ′スパン開始
”コマンド(54)を並列浮動小数点プロセッサ(16
)のそれぞれに転送する。このコマンドには、オーダ(
k)、節点値(t (k) )、および重みつき座標(
W X1W ”!s  W 21W )が続< (58
)。節点値は各並列浮動小数点プロセッサの節点スタッ
ク39にブツシュされる(この値がブツシュされた後の
節点スタックについては第7b図を参照)。座標セット
(WXlWylwzl w)の各成分は浮動小数点プロ
セッサ1個にのみ転送される。したがってWXは第if
列浮動小数点プロセッサ(16x)へ、wylti2f
fi列浮動小数点プロ全浮動小数点プロセッサ送される
、という動作になる。各苓列プロセッサ内のスタック5
7が、 座標セラ ト (W XN  W 7%  W
 Zz  W )の各成分を保持するのに用いられる。
各スタックは、データ行に行を保持でき、FIFO方式
で動作する。第9a図は、qrr列1?動小数点プロセ
ッサ内のスタック57 x1575’157 z157
 wに、初めに重みつき座標がプッンユされた様子を示
す。
次に、カウンタがkより大きいかkに等しいかどうかが
判定される(58)。kより小さい場合、処理はライン
(60)を介して40(1データ・レコード読み込み)
に戻る。kに等しい場合、1スパンに充分なデータが浮
動小数点プロセッサに送られている。そこで各並列浮動
小数点プロセッサ内の節点スタック39は、第7c図に
示すように、節点2ないし2k−1のデータを持つ。グ
ラフィクス制御プロセッサ14内のスタック49には、
第8b図に示すように、節点にないし2k−1の値と、
制御点工ないしkの座標(xi  y、  z)が置か
れる。ここでkは4である。並列浮動小数点フロセッサ
le内の重みつき座標スタック57は、第9b図に示す
ように、制御点1ないしkの重みつき座標データをt寺
つ(k=4)。
1スパンに充分なデータが各浮動小数点プロセッサ16
に送られると、スパンの有効性が判定される(62)。
スパンは次の場合に有効である。
7、   <    Tmax T2  >  Tm1n  and T2  >  TI ここでT、は、グラフィクス制御プロセッサ14のスタ
ック49にあるff11節点硝に、T2は第2節点値に
それぞれ等しい。
スパンが無効であれば、処理はライン64を介して再び
40(lデーターレコード読み込み)に戻る。スパンが
有効で、カーブ・ステータス・フラグが0なら(E35
)、テフセレーシ6ン・パラメータ(d)がグラフィク
ス制御プロセッサによって計算され(66)、ンステム
・メモリにセーブされる(68)。カーブ・ステータス
−フラグがOに等しくない場合、処理はライン67を介
して70(dt計算)に飛ぶ。これはテッセレーン窪ン
・パラメータがすでに計算されていることを示す。
テッセレーシeンは、曲線をセグメントに分けるプロセ
スである。セグメントは直線で近似できる。テッセレー
シ璽ン・パラメータの計算は、スパン内の点数に依存す
る。スパンはカーブのオーダによって定義される。第1
0a図ないし第10b図に示すように、オーダにのカー
ブはスパン当たりに個の制御点とに一1個のセクシ茸ン
を持つ。
k個の制御点は、終点2個と中間点に一2個から戚る。
したがって、k=3であれば、セフシロンは2個、中間
点信1個であり、d :: I a X l +a7+
+IaZlとなる。ここでdはベクトルaの長さ限界s
  aXl ass  aZは弦偏差の限界である。k
=4のとき、セクシシンは3個、中間点は2個であり、
次のようになる。
d=laxl+Ibxl+ 1aYI+Ib5’l+ 1azl+Ibzl ここでdはベクトルa1 bの長さ限界N  aXxa
)’tazおよびb xs  b 7%  b zは弦
偏差の限界である。
テッセレーシ冒ン・パラメータ(d)が計算されると、
バラメトリ1り座標間隔(dtという)がグラフィクス
制御プロセッサ14によって次のように計算される(7
0)。
d t = (T2−T、) /NS t e pここ
でNS t e pは次の操作によって求められる。
(a)スクリーン(ビクセル)座標とデータ座標の比に
等しいスケールSを計算する。
(b)dにSを掛けて、dをピクセル・ユニット(デバ
イス座標)に変換し、d′を得る。
(c)NStel)を次のように計算する。
NStep=Max(1,Int SQRT (d’ )’) dtの計算後、T、とT2が、境界T m I aとT
1.8内に収まるように、次のように調整される。
T11がT、1とT2の間にある場合は、T、はT m
1mに等しくセットされ、 T、1.がT1とT2の間
にある場合はN  T2はT、&、に等しくセットされ
る(71)。次に、グラフィクス制御プロセッサは、U
パラメトリック・カーブ評価”コマンドを並列浮動小数
点プロセッサ18に送る(72)。並列浮動小数点プロ
セッサは、このコマンドを受け取ると、 “パラメトリ
ック・カーブ評価”コマンドを浮動小数点プロセッサ1
8に送り(74)、  プロセッサ18はそこで“ポリ
ライン開始”コマンドをクリッピング・プロセッサ(2
0)へ送る(76)。この様子は第6C図に示した。こ
れらのコマンドが送られている間、グラフィクス制御プ
ロセッサは動作を継続する。この様子は第6b図にライ
ン73で示した。グラフィクス制御プロセッサはオーダ
(k)を並列浮動小数点プロセッサ16へ送る(78)
。次にパラメータ・ポイン) (PC)がT、に初期化
される。T、はスパンの最初の節点値である。PCは各
並列浮動小数点プロセッサに送られる(82)。
並列プロセッサと後続プロセッサの内部動作は、第6d
図をみれば最もよく理解できよう。これらのプロセッサ
内のタスクは、グラフィクス制御プロセッサが動作を続
けている間に実行される。この様子は第6b図のライン
99で示した。第6d図で、パラメータ・ポイン) (
PC)が各並列浮動小数点プロセッサに送られた後、各
プロセッサは、制御点座標セット(W Xs  W Y
s  W ZlW )のl成分についてBスプライン関
数の評価を始める(84)。たとえば第1並列浮動小数
点プロセッサ18xは、パラメーターポイントのX座標
を評偏し、第2M列浮動小数点プロセッサlayはX座
標を評価する。4個の並列浮動小数点プロセッサ16は
すべて、座標を同時に評価する。
実施例では、Cox−DeBoor (またはDeCa
stelJau)プロセスとして知られているプロセス
が評価に用いられる。このプロセスでは、制御点の成分
相互間の線形補間が行われる。各座標について浮動小数
点プロセッサへ送られたPCの6値に対して、合計k(
k−1)/2同の補間が行われる。
このプロセスを説明するために、3次Lltl lit
の例を挙げる。第11a図は、k個の制御点のX座標(
k=4)、節点値T、を始点とし節点値T2を終点とす
るスパン(T、とT2はグラフィクス制御プロセッサの
スタック49にある第1節点値と第2節点値を表すm−
このスタックについては第8b図を参照)、パラメータ
・ポイン) (PC)、スパンの前の3個の節点(if
ll(t、、t2.1.)、およびスパンの後の3f4
の節点値(1,、t6、t6)を示す。6個の節点値(
1,ないしtg)は、各浮動小数点プロセッサのスタッ
ク39にある節点値を表す(このスタックについては第
7c図を参照)。
第fib図は前節点(1,、t2、t3)の位置づけを
示し、前節点は補間される各成分の始点を表す。第11
c図は後節点(14、tl、1.)の位置づけを示し、
後節点は捕間される各成分の終点を表す。したがって補
間は、t、とt4の間、t2とt、の間、およびt3と
t6の間で行われる。
Cox−DeBoorの評価プロセスでは、上述の変数
が次式に用いられる。これは3次曲線の例である。
f+= ((t4−PC)x、+ (PCtt)x2)
/(t4−t、) f 2=  ((t、−PC)x2+  (PC−t、
)X 、)/  (ts−t 2) rs=  ((tg−PC)X3+  (PC−t 3
)X4)/  (tg−t、) この三つの式は、3次曲線に対する線形補間の第1段階
で用いられる。補間はt、とt4の間、t、とt、の間
、およびt、とt6の間で行われ、3個の点が得られる
。第1id図にこれら3個の点を、中心点を描いた円で
示した。
補間の第2段階では、節点値をもう一度位置づける必要
がある。この段階では3点しかないので、必要な節点は
t2ないし【、だけである。節点t2とt、は新しい前
節点、t4とt、は新しい後節点である。3次曲線の場
合、線形補間のこの第2段階で次の二つの式が用いられ
る。
f’+= ((j4 PC)r、+ (PC−t2)f
 2/ (t4− tz) fx= ((ts−PC)f2+ (PC−tt)f、
/(t、−t、) 補間はt2とt4の間、およびt、とt、の間で行われ
、2個の点が得られる。これら2個の点を第1ie図に
、中心点を描いた円として示した。
補間の最後の段階では再び節点値の位置づけが必要であ
る。この段階では2点しかないので、必要な節点はt、
とt4だけである。3次曲線の点のX座標を得るには、
次式が用いられる。
f (t)= ((t、−PC)f、+ (PC−ts
) f2/ (ta−ts) この点は第11f図に、中心点を描いた円として示した
。上記の評価プロセスは、同じPC値と同じ節点値を用
いて、並列浮動小数点プロセッサ内の台座m Cxs 
 712%  W)に対して同時に実行される。ただし
各プロセ、すは制御点の1座標だけを処理する。第1プ
ロセツサ113xはX座標を処理し、第2プロセツサ1
6yはX座標を処理する、という動作になる。
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)ジ
オメトリツク座標(X1Ys  Z)を得る。これらの
座標ハ次に、クリッピング・プロセッサ20に送られる
(90)。
クリッピング・プーロセブサはプロセッサ18から送ら
れた座標を受け取り、順列座標の各組によって定義され
たベクトルを現在のビュー境界にクリップする(92)
。クリップされたベクトルの組は、フレーム・バッフ1
22k送られ(94)、ここで直線セグメントとして痛
画される(96)。
第6d図をみると、上記の評価プロセスとそれに続くス
テップは、N5tep+1回行われ、各PCは、PCi
!;T2となるまでdtの値だけインクリメントされる
(98)。PCがT2より大きくなると(100)、P
CはT2と等しくセットされ(102)、この最後の値
も、先に説明したとおり、並列浮動小数点プロセッサへ
送られる(104)。
PCの値がすべて評価されると、カウンタは制御点数よ
り小さいかどうかが調べられる(106)。小さい場合
、処理はライン108を経て40(1データ・レコード
読み込み)へ戻り、このプロセス全体が、n回まで繰り
返される。
プロセスがn回実行されると、グラフィクス制御プロセ
ッサ14は、 4カーブの終わり”コマンドを並列浮動
小数点プロセッサ18へ送る(110)。
次に、ステータス・フラグが調べられ(112)、Oに
等しい場合は、1に更新される(114)。この変更は
次に、システム・メモリに書き戻される(118)。
パイプライン型の並列プロセッサを用い、NURB S
 (non−unlforv rational b−
splines)を基にパラメトリック・カーブの評価
とレンダリングを行う装置および方法について説明した
。並列/パイプライン型のプロセッサの使用方法に工夫
を凝らすことにより、カーブの評価とレンダリングをい
ままでよりもはるかに高速に実行できる。またシステム
・メモリに格納されたデータを本発明のように構成する
ことで、データの冗長性がなくなり、データの処理効率
が向上する。
その性質から、NURBSには様々なメリットがある。
本発明はこれらのメリットを最大限に活用している。N
URBSではカーブをスパンのシーケンスに分けること
ができる。そのとき各スパン(よ一組の異なるパラメト
リック多項式によって表される。NURBSカーブの隣
接したスパンを表すパラメトリック多項式は、特定の連
続性を与える。連続性の程度は、滑らかなカーブや急峻
なカーブが描けるように制御することができる。
連続スパンを特定の連続性と一致させられるので、低位
のNURBSを用い、多数の点を通る6i雑なカーブが
得られる。この性質はきわめて有益である。通常は評価
コストが高くなり、数値が不安定になりやすい高位の関
数を避けることができるからである。
NURBSにはローカル制御という特性もある。
NURBSは制御点、重み、および節点ベクトルによっ
て決まるので、カーブ全体に影響を与えずに、制御点を
移動させることによって、カーブのスパンを変更するこ
とができる。
凸閉包性のメリットも見逃せない。NURBSカーブは
、その制御点の凸閉包内に含まれる。凸閉包は、所定数
の点を含む最小の凸多角形(2次元のとき)または最小
の凸条面体(3次元のとき)である。カーブの各スパン
は、そのスパンを決定するに個の制御点の凸閉包内に存
在しなければならない。この特性から、点を評価するこ
となく、NURBSカーブの大きさと位置を予測し、そ
れぞれの境界を設定することができる。これは特に自明
な棄却テストで重要である。いいかえれば、凸閉包が現
在のスクリーンとオーバラップしない場合、カーブは評
価されずに棄却される。カーブが棄却されない場合、凸
閉包を用いて、カーブが評価される点を決定できる。
制御点に関連する重みは、円と楕円を含む円錐セフシー
ンに正確な表現を与える。これは、円形を必要とするオ
ブジェクトが多いので、特に重要なメ リ ッ トであ
る。
本発明のメリットはさらに、変換が、頂点ではなく制御
点を用いて行われるということである。
通常、制御点は頂点よりも少ないため、この方法はより
経済的である。
本発明に採用した評価方法は、制御点を直を変向に用い
ることで、セットアツプ・コストを抑えるものである。
補間式は、NURBS関数の数値安定性を保つので、ス
パンに対して演算を進めるとき累積誤差が生じない。
NURBSカーブは、非常にコンパクトなデータ構造を
つくるので、従来のポリライン・データと比較した場合
、データ転送率が大幅に向上し、システム資源の利用効
率が上がり、より複雑なグラフィクスもサポートできる
。このようなメリットは、NURBSデータをその本来
の形式で処理することによって保たれ、本発明のスパン
共用データ・ンーケンシ/グ法によって高度化される。
上述の内容から明らかなように、NURBSに基づいて
パラメトリックカーブの評価とレンダリングを行う装置
および方法には、高性能、数値安定性、対コスト効果、
高速、高精度、カーブ制御性、3Dグラフイクスの標準
として提案されているPHIGS  PLUSとの互換
性、データ冗長性の解消など、数々のメリットがある。
E0発明の効果 上述のごとく本発明によれば、NURBSデータの評価
とレンダリングの高効率化、高精度化、高速化が実現さ
れる。
【図面の簡単な説明】
第1図は、異なる多項式の組によって表される三つの連
続スパンから成る2次元カーブの図である。 第2図は、NURBSカーブCとその6個の制御点の図
である。 第3図は、2次元座標空間におけるカーブCのスパン(
t*−t4)と、パラメータ空間におけるそのスパン、
その前の3個の節点[(t+、t7.1、)およびその
後の3個の節点値Cta、(6,1、)の図である。 第4図は、本発明に従って構成されたカーブ評価/レン
ダリング装置のコンポーネントと相互接続を示すブロッ
ク図である。 第5図は、3次元NURBSカーブがシステム・メモリ
に格納されたときのデータ構造を示す図である。 第6a図と第6b図は、本発明によるカーブ評価システ
ムの動作のフローチャートである。 第6c図は、パイプライン型の並列浮動小数点プロセッ
サと次段のプロセッサによって送られたコマンドのフロ
ーチャートである。 第6d図は、本発明による、並列浮動小数点プロセッサ
と後続のプロセッサ内の動作を示すフローチャートであ
る。 第7a図ないし第7C図は、動作の各段階における並列
浮動小数点プロセッサ内の節点スタックを示す図である
。 第8a図と第8b図は、動作の各段階におけるグラフィ
クス制御プロセッサ内のスタックを示す図である。 第9a図と第9b図は、各段階における各並列浮動小数
点プロセッサ内の制御点スタックを示す図である。 第10a図と第10b図は、本発明に用いられるテフセ
レーシロン・パラメータの計算方法のf11i解に役立
つ図である。 第11a図ないし第iff図は、本発明に用いるのが望
まれるCox−DeBoorの評価法を示す図である。

Claims (20)

    【特許請求の範囲】
  1. (1)コンピュータ・グラフィクス・ディスプレイ・シ
    ステムのスクリーンにレンダリングするために、連続し
    たスパンから構成されたパラメトリック・カーブを表す
    NURBS(ノン・ユニフォーム・レイショナル・Bス
    プライン)データを、ポリラインの頂点のジオメトリッ
    ク座標に変換する方法であって、 上記カーブの第1スパンがデータ・レコードのシーケン
    スの第1サブセットによって定義されるとき、NURB
    Sデータを該シーケンスとして先のデータ・レコードと
    ともにメモリ内に配置して、該カーブの対応する連続ス
    パンを定義するステップと、 上記シーケンス内のデータ・レコードの上記第1サブセ
    ットを読み取り、該サブセットを用いて、上記カーブの
    第1スパンに沿った所定のパラメータ点の座標を評価す
    るステップと、 上記シーケンスの連続した個々のデータ・レコードを読
    み取り、上記対応する連続スパンに沿った所定のパラメ
    ータ点の座標を評価するステップとを含む、方法。
  2. (2)請求項(1)に記載の方法であって、パラメトリ
    ック・カーブのオーダをkとしたとき、対応する連続ス
    パンに沿った点の評価に、連続した個別データ・レコー
    ドと2k−3個の直前のデータ・レコードを用いる方法
  3. (3)請求項(2)に記載の方法であって、NURBS
    データがスパン当たりk個の制御点から構成され、評価
    の前に、該制御点をモデリング座標からビュー座標へ変
    換するステップと含む、方法。
  4. (4)請求項(3)に記載の方法であって、重みをwと
    したとき、変換された制御点座標を同次座標セットwx
    、wy、wz、wに変換するステップを含み、上記評価
    ステップに、上記カーブに沿った所定パラメータ点に対
    する該座標セットの各成分のBスプライン関数の同時評
    価が含まれ、パラメータ点のパラメトリック値をtとし
    たとき、wx(t)、wy(t)、wz(t)、w(t
    )の各値が得られ、さらに、wx(t)、wy(t)、
    およびwz(t)の比を計算することによって、各パラ
    メータ点のジオメトリック座標を決定するステップを含
    む、方法。
  5. (5)請求項(4)に記載の方法であって、上記評価が
    、(a)Cox−DeBoorプロセスに従い、(b)
    上記座標セットの異なる成分を同時評価する複数の並列
    浮動小数点プロセッサによって実行される方法。
  6. (6)請求項(5)に記載の方法であって、上記カーブ
    の各スパンが、k個の制御点と2k−2個の節点値によ
    って定義され、上記シーケンスが、カーブのオーダkと
    制御点数nを指定する第1シーケンスと、 カーブの初期節点ないしk−1の節点に対する節点値を
    含む第2シーケンスと、 k−1個の連続したデータ・セットから成り、各セット
    が、制御点と節点値の座標と関連する重みwとから成り
    、該データ・セットがカーブの初期制御点ないしk−1
    の制御点およびkないし2k−2の節点に対するデータ
    を含む、第3シーケンスと、 n−k+1個の連続したデータ・セットから成り、該デ
    ータ・セットが、カーブのkないしnの制御点および2
    k−1ないしn+k−1の節点に対するデータを含む、
    第4シーケンスと、 n+k個の節点値を含む第5シーケンスとを含む、方法
  7. (7)請求項(6)に記載の方法であって、上記第4の
    各データ・セットがテッセレーション・パラメータを含
    む方法。
  8. (8)請求項(7)に記載の方法であって、テッセレー
    ション・パラメータを基にパラメトリック座標間隔を求
    めるステップと、 上記パラメトリック座標間隔がとられた所定のパラメー
    タ点の組を生成するステップとを含む、方法。
  9. (9)請求項(8)に記載の方法であって、上記パラメ
    トリック・カーブが非有理式を持ち、重みwを1に等し
    くセットするステップを含む、方法。
  10. (10)コンピュータ・グラフィクス・ディスプレイ・
    システムのスクリーンにおいて、オーダkのパラメトリ
    ック・カーブの評価とレンダリングを行う方法であって
    、該カーブが、NURBSデータによって表され、連続
    スパンから構成されて、各スパンが、k個の制御点と2
    k−2個の節点値によって定義されるとき、 制御点のモデリング座標および関連する重みと節点値を
    含むNURBSデータをデータ・レコードのシーケンス
    としてメモリに配置することにより、上記パラメトリッ
    ク・カーブの連続スパンが、シーケンスの直前の2k−
    3個のデータ・レコードとともに連続した個々のデータ
    ・レコードによって定義されるステップと、 上記データ・レコードをメモリから上記シーケンスで読
    み取るステップと、 上記制御点モデリング座標をビュー座標に変換するステ
    ップと、 変換された制御点座標に、関連する重みを掛けて、各制
    御点に対する同次座標セットwx、wy、wz、wを得
    るステップと、 パラメトリック座標間隔を計算し、該間隔がとられたパ
    ラメータ点の組を生成するステップと、並列浮動小数点
    プロセッサが、上記組の各パラメータ点の座標セットの
    各成分に対するBスプライン関数を同時評価するステッ
    プと、 上記評価ステップの結果から重みを消去して、上記パラ
    メータ点の組のジオメトリック座標を得るステップと、 ジオメトリック座標の順列点の各組によって定義された
    ベクトルを現在のビュー・ウィンドウにクリップするス
    テップと、 クリップされたベクトルを直線セグメントとしてコンピ
    ュータ・グラフィクス・ディスプレイ・システムのスク
    リーンに描き、よってパラメトリック・カーブのレンダ
    リングを行うステップとを含む、方法。
  11. (11)請求項(10)に記載の方法であって、計算ス
    テップに続く全ステップがパイプライン方式で実行され
    る方法。
  12. (12)請求項(11)に記載の方法であって、上記N
    URBSデータが配置されるシーケンスが、上記カーブ
    のオーダkと制御点数nを指定する予備データと、 上記カーブの初期節点値と、 後節点および制御点のモデリング座標と重みから成り、
    上記カーブの第1スパンに関連するデータ・セットの組
    と、 上記カーブの連続スパンを完成し、連続した節点値、連
    続した制御点のモデリング座標と重み、およびテッセレ
    ーション・パラメータから成る、個別付加データ・セッ
    トの組と、 上記カーブの最終節点値とを含む、方法。
  13. (13)コンピュータ・グラフィクス・ディスプレイ・
    システムのスクリーンにおいてレンダリングを行うため
    に、オーダkのパラメトリック・カーブを表すNURB
    Sデータをポリラインの頂点のジオメトリック座標に変
    換する装置であって、該カーブが、連続したスパンから
    成り、各スパンが、k個の制御点と2k−2個の節点値
    によって定義されるとき、 上記カーブのNURBSデータをデータ・レコードのシ
    ーケンスとして格納することにより、該カーブの連続ス
    パンが、該シーケンスの直前の複数のデータ・レコード
    とともに連続した個別データ・レコードによって定義さ
    れるメモリ手段と、 上記データ・レコードを上記メモリ手段から上記シーケ
    ンスで読み取り、制御点座標を一組の同次座標に変換す
    るグラフィクス制御プロセッサ手段と、 上記グラフィクス制御プロセッサ手段からデータを受け
    取り、上記カーブに沿った一組のパラメータ点の各点に
    おける上記一組の同次座標の各座標のBスプライン関数
    を同時評価する複数の並列浮動小数点プロセッサと、 上記コンピュータ・グラフィクス・ディスプレイ・シス
    テムのスクリーンにおいて上記カーブのレンダリングを
    行うために、上記並列浮動小数点プロセッサの出力を受
    け取り、該出力を上記パラメータ点のジオメトリック座
    標に変換する次段の浮動小数点プロセッサとを含む、装
    置。
  14. (14)請求項(13)に記載の装置であって、上記グ
    ラフィクス制御プロセッサ手段、複数の浮動小数点プロ
    セッサ、および次段の浮動小数点プロセッサがパイプラ
    イン方式で動作する装置。
  15. (15)請求項(14)に記載の装置であって、上記複
    数の浮動小数点プロセッサが、 上記パラメータ点のそれぞれの重みを表す出力を与える
    プロセッサ1個を含めた4個のプロセッサから成り、 上記次段の浮動小数点プロセッサが上記並列浮動小数点
    プロセッサの他のプロセッサの出力に、上記1個の浮動
    小数点プロセッサの出力の逆数を掛ける、装置。
  16. (16)請求項(15)に記載の装置であって、上記並
    列浮動小数点プロセッサが、Cox−DeBoorプロ
    セスを用いて評価を行い、上記複数の浮動小数点プロセ
    ッサの出力が上記次段の浮動小数点プロセッサへシーケ
    ンシャルに供給される、装置。
  17. (17)請求項(16)に記載の装置であって、上記シ
    ーケンスが、 上記カーブのオーダkと制御点数nを指定する予備デー
    タと、 上記カーブの初期節点値と、 後節点および制御点のモデリング座標と重みから成り、
    上記カーブの第1スパンに関連するデータ・セットの組
    と、 上記カーブの連続スパンを完成し、連続した節点値、連
    続した制御点のモデリング座標と重み、およびテッセレ
    ーション・パラメータから成る、個別付加データ・セッ
    トの組と、 上記カーブの最終節点値とを含む、装置。
  18. (18)請求項(17)に記載の装置であって、上記グ
    ラフィクス制御プロセッサ手段が、 最初に制御点のモデリング座標をビュー座標に変換し、
    次に、変換された座標を上記一組の同次座標に変換し、 パラメトリック座標間隔を決定して上記パラメトリック
    ・カーブのテッセレーションを行い、間隔をとった一組
    のパラメータ点を生成して、上記複数の並列浮動小数点
    プロセッサに供給する、装置。
  19. (19)請求項(18)に記載の装置であって、上記グ
    ラフィクス制御プロセッサ手段が、上記付加データ・セ
    ットのテッセレーション・パラメータに基づいて上記カ
    ーブの連続スパンのパラメトリック座標間隔を決定する
    装置。
  20. (20)請求項(19)に記載の装置であって、上記次
    段の浮動小数点プロセッサの出力に直列に接続され、該
    プロセッサとパイプライン方式で動作するクリッピング
    ・プロセッサとフレーム・バッファとを含む装置。
JP24767390A 1989-10-24 1990-09-19 コンピュータ・グラフィック装置 Expired - Lifetime JPH0766451B2 (ja)

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 true JPH03144781A (ja) 1991-06-20
JPH0766451B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013148840A (ja) * 2012-01-23 2013-08-01 Fujifilm Corp 露光描画装置、露光描画システム、プログラム及び露光描画方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
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
CN116880060B (zh) * 2023-07-18 2025-10-03 常州星宇车灯股份有限公司 一种基于b样条的光学曲面构建方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013148840A (ja) * 2012-01-23 2013-08-01 Fujifilm Corp 露光描画装置、露光描画システム、プログラム及び露光描画方法

Also Published As

Publication number Publication date
EP0425174A2 (en) 1991-05-02
JPH0766451B2 (ja) 1995-07-19
EP0425174A3 (en) 1992-10-07

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
US6952204B2 (en) 3D computer modelling apparatus
US7508394B1 (en) Systems and methods of multi-pass data processing
US4858149A (en) Method and system for solid modelling
US6664960B2 (en) Apparatus for processing non-planar video graphics primitives and associated method of operation
US8537158B2 (en) Parallel triangle tessellation
JP3466661B2 (ja) 画像処理装置及びその方法
US6906718B1 (en) Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics
JPH0935075A (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
WO2000002165A1 (fr) Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees
KR100717676B1 (ko) Cad 시스템 및 cad 프로그램을 기록한 기록 매체
WO2020174215A1 (en) Joint shape and texture decoders for three-dimensional rendering
WO2008013605A1 (en) Real-time gpu rendering of piecewise algebraic surfaces
EP0782105A2 (en) Processing image data
EP0596667A1 (en) Processing image data
US6650324B1 (en) Defining surface normals in a 3D surface mesh
JP2926637B2 (ja) ボリュームレンダリング装置及びこれに好適な方法
JPH03144781A (ja) コンピュータ・グラフィック装置
JP2005149245A (ja) Cadシステム、曲面解析装置、曲面再生装置、その方法及びそのプログラム
EP0596666A1 (en) Processing image data
JP2671652B2 (ja) 3次元形状モデリング装置
JP3229384B2 (ja) ベクトル形状編集装置
JPS63118982A (ja) 多角形に対する点の内外判定演算処理方法
KR100647323B1 (ko) 섭동 함수를 이용한 3차원 객체 처리 장치 및 방법