JPH03201073A - Nurbsデータ変換方法及び装置 - Google Patents

Nurbsデータ変換方法及び装置

Info

Publication number
JPH03201073A
JPH03201073A JP2239185A JP23918590A JPH03201073A JP H03201073 A JPH03201073 A JP H03201073A JP 2239185 A JP2239185 A JP 2239185A JP 23918590 A JP23918590 A JP 23918590A JP H03201073 A JPH03201073 A JP H03201073A
Authority
JP
Japan
Prior art keywords
coordinates
parameter
span
point
points
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
JP2239185A
Other languages
English (en)
Other versions
JPH0776991B2 (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 JPH03201073A publication Critical patent/JPH03201073A/ja
Publication of JPH0776991B2 publication Critical patent/JPH0776991B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明は、コンピュータ・グラフィックス、特にパラ
メトリック・サーフェスを評価およびレンダリングする
装置及び方法に関するものである。
B、従来技術及びその課題 ]ンピュータ・テクノロジの評価は、コンピュータによ
って作成されるグラフィカル情報の表現に適用される技
巧を凝らしたテクニカル・アートの創作に依存している
。このテクニカル・アートは、コンピュータ・グラフィ
・/リスと呼ばれている。近年、サイエンティフィック
・アプリケーション及びエンジニアリング・アプリケー
ションへの3次元コンピュータ・グラフィックスの使用
が、リアリスティツタなイメージが要求されるに従って
、拡大してきている。
最近のコンピュータ・グラフィックス・デイスプレィは
、ライン、マーカ、ポリゴンのほかに、パラメトリック
・サーフェスのようなより一般的な ジオメトリツク・
プリミティブをサポートしている。しかし、コンピュー
タ・グラフィックス・ディスプレイ・システムにおける
そのようなパラメトリック・サーフェスを評価及びレン
ダリングするのに現在用いられている方法は、多くの場
合非能率的であり、複雑で大規模な外部コントロール・
ロジックを必要とする。
パラメトリック・サーフェスはb−スプライン・フオー
ムで表すことができ、過去においては、他者がb−スプ
ライン・フオームからパラメトリンク・サーフェスを評
価及びし・ンダリングしまうと試みたことが知られてい
る。例えば、従来のCAD/CAMアプリケーションは
、データベースに蓄積されたb−スプライス・サーフェ
ス・フオーム・データよりはむしろ、ホスト・コンピュ
ータのデータベースに蓄積されているオブジェクトを形
成するポリゴンを送出することによってグラフィックス
・ワークステーションを使用している。
この手法によれば、ホスト・コンピュータは、スプライ
ン・サーフェスをフラット・ポリゴンに分解し、ポリゴ
ンをグラフィック・ワークステーションに送り、通常の
処理を行った後、表示させている。この手法は非能率的
であり、b−スプラインの多くの魅力的な性質を利用で
きない。
1987年lO月30日出願の米国特許出願第07/1
15.465号明細書は、非一様有理b−スプライン(
NURB S :non−uniform ratio
nal b−spline)サーフェスを、次の処理の
ためにBezierパッチに分解する並列パイプライン
・サーフェス処理システムを開示している。バッチ・ア
プローチによるこの処理は、分解ステップのための演算
リソースを必要とし、スクリーンにレンダされたサーフ
ェスにアーティファクト(例えば、ピンホールあるいは
リップ)を発生させる危険性がある。
公知の従来技術はいずれも、パラメトリック・サーフェ
スの評価及びレンダリングに、NURBSデータを全く
利用していない。したがって、効率的、正確かつ迅速に
、パラメトリック・サーフェスを表すNURBSデータ
を評価及びレンダリングする方法及び装置が要求されて
いる。既に提案されている3次元グラフィックスに対す
るPHr G S (Programmer’s Hi
erarchical Interactive Gr
aphics 5tandard) P L U S標
準は、NURBSによるサーフェスの定義をサポートし
ており、したがって前述の要求は、ますます太き(なっ
てく る。
C1課題を解決するための手段 本発明の原理によれば、直交するu、vパラメトリック
座標に沿って延在するサーフェスを、■パラメータのテ
サレイシゴンにより定められる一連のストリップに分割
するサーフェス評価システムを提供することにより、前
記必要性は満たされ、多くの利点が実現される。各スト
リップは、現在の値すなわちトップ値と、前の値すなわ
ちボトム値とからなる2つの連続するVパラメータ値に
より特徴づけられる。各ストリップのトップは、続くス
トリップのボトムとなる。グラフィックス・コントロー
ル・プロセッサは、サーフェスの各Vスパンに対しVパ
ラメータをどのようにテサレイトするかを決定し、各ス
トリップのトップ、ボトムに沿ったV依存度とV導関数
を評価する。各ストリップのトップ及びボトムに対して
得られた斉次座標及びV導関数は、4つの並列浮動小数
点プロセッサに送られる。グラフィックス・コントロー
ル・プロセッサは、ストリップの各Uスパンに対しUパ
ラメータをどのようにテサレイトするかを決定し、一連
のUパラメータ値を浮動小数点プロセッサに送る。各U
パラメータ値に対し、並列に動作する浮動小数点プロセ
ッサは、トップ及びボトム座標のU依存度と、これら座
標のU導関数と、対応するV導関数のU依存度とを評価
する。
得られた値は、次段の浮動小数点プロセッサに連続的に
送られる。この浮動小数点プロセッサは、これら値を1
組のジオメトリツク座標と1対のポイントに関連する頂
点ベクトルとに変換する。各Uパラメータに対し、ニガ
のポイントの一方はストリップのトップにあり、他方は
ストリップのボトムにある。2つの連続する対は、後で
行うレンダリングのための4辺ポリゴンを定める。上述
の処理は、サーフェスの続くストリップのそれぞれに対
し繰り返し行われる。
この発明によれば、グラフィック・コントロール・プロ
セッサは、初期Vスパンを定めるkv行のコントロール
・ポイントを格納するために、kv個の行及びNu個の
列(kvはVパラノー5階数であり、NuはUパラメー
タ次元である〉を有するFIF○コントロール・ポイン
ト・スタックを採用している。連続するVスパンは、続
く個々の行のコントロール・ポイントをFIFOのトッ
プにロードすることにより定められる。続く各Vスパン
は、対応する連続行のコントロール・ポイントと、直前
のkv−1個の行によって定められる。
またこの発明によれば、サーフェスの初期のUスパンは
、FIFOスタックの最初のku個の列によって定めら
れ、続く各Uスパンは、対応する続く列と、直前のku
−1個の列とによって定められる。
さらにこの発明によれば、グラフィックス・コントロー
ル・プロセッサは、コントロール・ポイント・データを
モデリング座標からビュー座標に変換し、変換された座
標に重みWを乗算して、斉次座標を得る。
この発明の好適な実施例では、Cox−DeBoorプ
ロセスに従って評価を行う。並列浮動小数点プロセッサ
の1つは、評価された各Uパラメータ・ポイントに対し
重み出力を与え、次段の浮動小数点プロセッサは、重み
の逆数を計算し、得られた逆数に残る3つの並列浮動小
数点プロセッサの出力を乗算する。クリッピング・プロ
セッサ及びフレーム・バッファを、次段の浮動小数点プ
ロセッサの出力に直列に接続し、パイプライン処理的に
動作させることができる。
この発明のNURBSに基づくパラメトリック・サーフ
ェスを評価及びレンダリングする方法及び装置は、高性
能、良好な数値安定性、コストの有効性、高速及び精度
、既に提供されているPHIGS  PLUS標準との
コンパチビリティ、データ冗長性の排除、レンダリング
されたサーフェスにおけるピンホールあるいはリップの
ようなアーティファクトを避けること、各サーフェスを
表すために選択されたポリゴンの組を、サーフェスの瞬
時表示要求に合致するように最適化することのできるト
ラパーサル・タイム・テサレイションの可能性を含む多
くの効果を提供する。さらに、この発明は、コンピュー
タ・グラフィックス・ディスプレイ・システムが、低階
数のNURBSを用いて複雑なサーフェスを構成する能
力5 ローカル・コントロール、凸閉包、座標変換及び
有効なデータ圧縮に対する分散に重みを用いて2次サー
フェスを正確にレンダリングする能力を含む、NURB
Sの固有の特性及び利点を十分に利用することを可能に
する。
D、実施例 この発明は、高性能を達成するために、並列パイプライ
ン・プロセッサを用いて、非一様有理す一スプライン(
NUR,BS)に基づくパラメトリック・サーフェスの
シェーブラド像を作成するシステムに関するものである
。関連する用語及び数学的表現については、文献”An
 Introduction t。
5plines for Use in Comput
er Graphics & Geometric M
odelling” by R,11,Bartels
、J、C,Beatty。
and B、A、 Barsky (Morgan K
aufman、 1987)を参照されたい。
簡単に言うと、非一様有理b−スプライン(NU R,
B S )は、パラメトリック・サーフェスを表すのに
用いられるパラメトリック関数のクラスである。NUR
BSサーフェスは、折り曲げたり、伸ばしたり、捻じっ
たりして3次元形状を形成することのできる2次元矩形
サーフェスにより構成される。
第1図のうち下側の図は、x、y、z座標空間における
パラメトリック・サーフェスSを示す図である。第1図
の上側の図は、同一サーフェスSの内部パラメトリック
座標を示している。
NURBSサーフェスは、サーフェスの一方のエツジか
ら他方のエツジへ動くに従って単調増加するパラメトリ
ック座標(U、V)に基づいている。これらのパラメト
リック座標は、ジオメトリツク座標(x、y、z)に加
えられる。したがって、サーフェスに対し、 x=X (u、v) y=Y (u、v) z=Z (u、v) ただし、Umin≦U≦Umax Vmin≦V≦Vmax が戒り立つ。
パラメトリック・サーフェスはζ単純多項式によって定
義することもでき、このようなパラメトリック多項式関
数は、対応するNURBS関数で正確に表すことができ
る。
NURBSサーフェスは、有理形式あるいは非有理形式
によって定義できる。非有理形式では、次式のパラメト
リック座標の多項式関数X (u、 V) = :ff
 E C,1ju’V’1−OJsll Y (u、 v) =、’E、 、”f:、。yiju
’V’Z (u、 V) =、): E C,iju’
V’息llOjllO を評価することによって、NURBSサーフェスの各成
分(x、y、z)を定義することができる。
有理形式では、 で表される重みと呼ばれる追加の関数が存在する。
この場合、ジオメトリツク座標は、 X (u、v)=WX (u、v)/W (u、V)Y
 (u、v)=WY (u、v)/W (u、v)Z 
(u、v)=WZ (u、v)/W (u、v)のよう
に多項式の比で定義される。ここに、wX(u、v)、
WY (u、v)、WZ (u、v)は、非有理の場合
のX (u、v)、Y (u、v)、Z(u、v)を特
定する多項式に類似している。
各NURBSは、パラメトリック座標の最大ベキ数に相
当する次数mu及びmvと、n+u+1及びmv+1に
等しく、かつ、次数mu及びmvの多項式において直線
的に独立な項の数にそれぞれ相当する階数ku及びにν
によって、特徴づけることができる。したがって例えば
、2次関数ax2+bx+cは、次数2及び階数3を有
する。
NtJRBS関数は、それぞれがジオメトリツク座標の
制限された範囲に対してのみ有効である多数組の係数に
よって表すことができる。したがって、1つのサーフェ
スは、それぞれが異なる多項式によって表される1組の
パッチに分割できる。
第1のパッチは、u0〜u1のパラメトリック値Uと、
v0〜v1のパラメトリック値Vとによって定められ、
サーフェスのこの部分の座標は、多項式 %式% によって定義される。
第2のパッチは、u1〜u2のパラメトリック値uと、
Vo%V1 のパラメトリック値Vとによって定められ
、この部分の座標は、多項式によって定義される。以下
同様にして、定義される。
NURBSは、コントロール・ポイント、重み。
ノット・ベクトルにより決定される。コントロール・ポ
イントは、サーフェスの形状に1次コントロールを与え
る。サーフェスは、Nu X Nvマトリクスのコント
ロール・ポイントを有している。ここで、NuはUパラ
メータの階数kuより大きいかまたは等しくなければな
らず、NvはVパラメータの階数kvよりも大きいか等
しくなければならない。サーフェスは、1セツトのパッ
チにより構成され、各ハツチはNu X Nvマトリク
スのコントロール・ポイントの中のku X kvのサ
ブセットにより定められる。
Nu X Nvコントロール・ポイント・マトリクスは
、サーフェスの全体形状を定めるが、サーフェスは通常
これらのコントロール・ポイントを通過しない。
重み値は、NURBSサーフェスの有理形式を定めるの
に用いられる。有理形式では、重み(W)は、コントロ
ール・ポイントの座標(x、  y+  z)のそれぞ
れに関係している。重みと座標とは結合され、斉次座標
(wx、wy、wz、w)を形成する。この斉次座標は
、4つのパラメトリック多項式関数WX (u、v)、
WY (u、v)、WZ(u、v)、W (u、v)の
組に対するコントロール・ポイントを定める。その結果
として得られるジオメトリツク座標は、 X (u、v)=WX (u、v)/W (u、v)Y
 (u、v)=WY  (u、v)/W (u、v)Z
  (u、v)=WZ  (u、v)/W (u、v)
の比により定義される。
重みは、正であり、かつ、0より大きいことが要求され
る。重みの値は、通常lに近く、もし重みがすべて等し
ければ、有理形式は非有理形式に変化する。
サーフェスに対するノット・ベクトルは、パラメトリッ
ク座標(u、v)のパラメータ空間の分割を定めている
。サーフェスは、各パラメトリック座標(u、v)に対
するノット・ベクトル及び一連のスパンを有している。
Nu個のコントロール・ポイントを有するU階数(ku
)のノット・ベクトルはNu + ku個の成分を有し
、NVコントロール・ポイントを有するV階数(kv)
のノット・ベクトルはNv+kv個の成分を有している
。各ベクトルの最初及び最終のノット値は、この発明で
は用いられないが、標準PHTGS+により必要とされ
る。
サーフェスにおける各スパンは、2m個の連続ノット値
に依存する。ここに、m=ku−1またはkv=1であ
り、kuはサーフェスのU階数であり、kvはサーフェ
スのV階数である。これらのノット値は、2つのグルー
プに分けられる。すなわち、−方のグループはスパンに
先行するm個のノット値を有し、他方のグループはスパ
ンに後続するm個のノット値を有している。例えば、k
u=4ならば、各スパンに対し6個のノット値、すなわ
ちスパンの荊の3個のノット値とスパンの後の3個のノ
ット値とが存在する。b−スプラインが−様または非一
様であれば、ノット値が決定される。ノ・ント値が−様
な間隔の値をとるならば(例えば、0゜1.2.3とい
うように)、結果は一様り−スプラインである。非一様
b−スプラインに対しては、ノット値を不規則間隔で分
離することができ、ノット値はノット・ベクトルにおけ
るように(10,0゜1.2.1.5.1.5.2.7
.9.0)繰り返す。
この明細書では、NURBSという用語は総称的に用い
られており、非有理(重みは1に等しくセットされる)
及び−様b−スプラインの特殊なケースを包含すること
を意味している。
以下、この発明の好適な実施例を説明する。
この発明の原理に基づいて構成されるサーフェス評価及
びレンダリング・システム10を、第2図に示す。この
システムは、 (1)システム・メモリ12 (2)グラフィックス・コントロール・プロセッサ14
及びローカル・メモリ15;バイブライン処理的に動作
する。
(3)並列に配置された4個のプロセッサ16x、 1
6y。
16、z、 16wのグループ16 (4)並列の浮動小数点プロセッサに接続された浮動小
数点プロセッサ18 (5)クリッピング・プロセッサ20 (6)フレーム・バッファ22 システム・メモリ12は、各パラメトリック・サーフェ
スに関するデータを格納している。データは、有理また
は非有理となり得るサーフェス・タイプ;未定義のテサ
レイション・パラメータに対しO3または定義されたテ
サレイション・パラメータに対し1とすることのできる
サーフェス・ステータス・フラグ; 2〜kmax (
kmaxは、種々のプロセッサによりサポートされる最
大階数)の範囲内の整数であるU階数(ku)及びV階
数(kv)  ;ku″−Numax及びkv 〜Nv
max  (Numax及びNvmaxは、グラフィッ
クス・コントロール・プロセッサ14に関連するローカ
ル・メモリ15によりサポートされる最大値)の範囲内
の整数であるU次元(Nu)およびV次元(Nv);u
ノット値(u(1)−u (Nu+kU));Uテサレ
イション・パラメータ(d u (1)・・・du(N
u−ku+1)) i Vノット値(v(1)−v(N
v+kv))  ; vテサレイション・パラメータ(
dv(1)−dv(Nu−kv+1));N9行または
データ・レコードよりなるコントロール・ポイント・マ
トリクス、ここで各データレコードは、i=1〜Nuに
対しNu組の座標(Xi。
Yi、 Zi、旧)を含む;である。
この発明における前記データの使用については、第13
図を参照すれば、最も良く理解できるであろう。第13
図は、U座標方向に連続するUスパンと、■座標方向に
連続するVスパンとを有するパラメトリック・サーフェ
スを示している。サーフェスは、それぞれがトップ・エ
ッジとボトム・エッジとを有するストリップにテサレイ
トされる。トップ・エッジ及びボトム・エッジは、連続
するVパラメータ・ポイント(パラメータ・インタバル
(dv)で分離される)に対する斉次座標wx、wy、
wz、wのV依存度の評価により取り出される。各スト
リップは、続くuスパンのそれぞれに対し連続するUパ
ラメータ・ポイント(パラメータ・インタバル(du)
で分離される)にテサレイトされる。
グラフィックス・コントロール・プロセッサ14は、シ
ステム・メモリ12に格納されているデータを読み取り
、システム・メモリにデータを書き込むことができる。
グラフィックス・コントロール・プロセッサ14は、ま
た、第2図に2方向の矢印で示すように、ローカル・メ
モリ15にデータを書き込み、ローカル・メモリからデ
ータを読み取ることができる。グラフィックス・コント
ロール・プロセッサは、コントロール・ポイント・デー
タを、モデリング座標からビュー座標に変換し;各バッ
チがビジプルであるか否かを決定し;各Vスパンに対す
るVパラメトリック座標をテサレイトし、一連の離間さ
れたVパラメータ・ポイント(V)を生成する、パラメ
トリック座標インタバル(Dv)を決定し;変換コント
ロール・ポイント・データを斉次座標(wx、wy、w
z、w)に変換し;U座標方向にサーフェスを完全に横
切って延在し、初期Vパラメータ・ポイント及び連続V
パラメータ・ポイントによりV座標において区切られた
ストリップに対し、それぞれ、一連のNuボトム座標及
びNuボトム導関数と、一連のNu)ツブ座標及びNu
トエツV導関数を与えるwx、wy。
wz、wの■依存度を評価し;Uパラメトリック座標を
テサレイトし、ストリップの各Uスパンに対し一連の離
間されたUパラメータ・ポイントPCを生成する、パラ
メトリック座標インタバル(Du)を決定し;より詳細
に後述するように、4個の並列浮動小数点プロセッサ1
6ヘコマンド及びデータを送る。。
プロセッサ16x、 16y、 16z、 16−は、
各Uパラメータ・ポイントPCに対する、斉次−座標w
x、wy、wz、wの各1つの、トップ座標及びボトム
座標のU依存度と、対応する■導関数トップ座標及びボ
トム座標のU依存度とを含む4つのb−スプライン関数
を独立して、同時に、かつ同期して評価する。各座標に
対する、トップ及びボトム座標と、トップ及びボトムU
導関数と、トップ及びボトムV導関数とを含む評価を、
ストリップの各Uパラメータ・ポイントPCに対する各
プロセッサ16x、 16y、 16z、 lhから、
浮動小数点プロセッサ18に連続して与える。プロセッ
サ18は、w (u。
■)の逆数を計算し、トップ座標及びボトム座標のそれ
ぞれに、この逆数を乗算し、対応するジオメトリツク座
標を決定し、対応するU及びvl関数を決定し、各Uパ
ラメトリック・ポイントPCに対するストリップ・ポイ
ントとストリップ・ボトム・ポイントのジオメトリツク
U及びV接線を決定する。U及びV接線と、頂点法線の
大きさとのクロス乗積をとることによって頂点法線を演
算する。連続するUパラメータ・ポイントPCの各組に
対する、座標及び頂点法線は、3次元ポリゴンを定め、
プロセッサ18によってクリッピング・プロセッサ20
へ送られる。クリッピング・プロセッサでは、3次元ポ
リゴンは既知のように処理される(すなわち、クリッピ
ング・プロセッサは現在の3次元ビュウイング・ウィン
ドウに対してポリゴンをクリップし、クリップされたエ
ツジに沿って頂点法線を補間し、頂点法線を単位ベクト
ルに変換する)。クリッピング・プロセッサは、ウィン
ドウ内に残るポリゴンのどの部分に対しても、一連の3
次元法線座標及び正規化頂点法線を、フレーム・バッフ
ァ22へ送る。フレーム・バッファ22は、従来の方法
で、コンピュータ・グラフィックス・デイスプレィのモ
ニタ・スクリーン(図示せず)上のサーフェスを、レン
ダリングする。
次に、この発明の詳細な説明する。システム・メモリ1
2は、2〜4 Mbyte (またはそれ以上)のラン
ダム・アクセス・メモリ(RAM)を備えることができ
る。このシステム・メモリ12は、少なくともIパラメ
トリック・サーフェスに対するデータを保持できなけれ
ばならず、NURBSサーフェスを含む、種々のグラフ
ィックス・エレメント、すなわちプリミティブ及びアト
リビュートよりなるデイスプレィ・リストを有している
。グラフィックス・コントロール・プロセッサ14は、
浮動小数点乗算器、乗算器に対するアキュムレータとし
て用いることもできる浮動小数点加算器、シーケンサ、
少なくとも32にコード・メモリをアクセスする機能、
少なくとも32にデータ・メモリをアクセスする機能、
32個の整数レジスタ、浮動小数点演算のための32個
のレジスタを有している。
プロセッサ14は、Weitek of 5unnyv
ale、 Ca1iforniaから市販されている1
0MHz Weitekチップセッ) (XL−813
6プログラマブ)Lt−’y−ケンサ、XL−3132
浮動小数点プロセッサ・ユニット、XL−8137整数
プロセシング・ユニット、これらは−緒に動作する)に
よって構成できる。
ローカル・メモリ15は、グラフィックス・コントロー
ル・プロセッサ14によりスクラッチ・エリアとして使
用される1ブロツクのランダム・アクセス・メモリ(R
AM)である。ローカル・メモリに蓄積されるデータ値
の最大数は、4 Nmax (k+sax+ 7 )で
ある。ここに、Nmaxは、最大次元(Nu及びNv)
であり、kmaxは最大階数(ku及びkv)である。
各浮動小数点プロセッサ16x、 16y、 16z、
 16z。
16w、 18は、32ビット浮動小数点性能を有する
■LSIプロセッサとすることができる。各プロセッサ
は、浮動小数点乗算器、乗算器に対しアキュムレータと
しても用いられる浮動小数点加算器、単一シーケンサ、
マイクロコードのためのRAM、インタフェースへの入
力及び出力のためのFIFO、データを蓄積するための
64個のレジスタを有している。浮動小数点プロセッサ
は、当業者間では周知である。1989年3月28日出
願の米国特許出願第331,021号明細書は、この発
明におけるように、効果的な並列及び/またはパイプラ
インによる相互接続のための特殊な人出力FIFOを設
ける技術を開示している。クリッピング・プロセッサ2
0及びフレーム・バッファ22は、それぞれ、多数の類
似プロセッサと、適切な性能を与える構成とを有するこ
とができる。
第3図は、この発明のサーフェス評価システムの一般的
な動作を説明するためのフローチャートである。−船釣
に、NURBSサーフェスがシステム・メモリ12のデ
イスプレィ・リストにあれば、グラフィックス・コント
ロール・プロセッサ14は、データを読み取り、ローカ
ル・メモリ及び/またはレジスタに格納する(ステップ
24)。コントロール・ポイント・マトリクスの行をシ
ステム・メモリ12から読み取り、グラフィックス・コ
ントロール・プロセッサ14で変換し、グラフィックス
・コントロール・プロセッサのローカル・メモリ内のF
 I F O(first 1n−first out
)スタック(kv行×Nu列)に格納する(ステップ2
6)。これを、1つのVスパンに対し十分な行がスタッ
クに格納されるまで繰り返す。成るVスパンに対するコ
ントロール・ポイント・スタックの各列内の個々の座標
に対する値を、対応する重みで乗算して、斉次座標(w
x、wy、wz、w)を生成する(ステップ28)。次
に、斉次座標を、現在のVパラメトリック・ポイントに
基づいて評価する。■スパンの各列内の各コントロール
・ポイントの座標に対し、上記評価が終了すると、一連
のトップ座標及びトップV導関数が生成される。前のス
トリップのトップ値はコピーされ、現在のストリップに
対するトップ座標及び導関数の値として用いられる(ス
テップ30)。
現在のストリップの各Uスパンに対し、1組のUノット
と、各座標(wx、wy、wzまたはW)に対する複数
組のトップ及びボトム座標と導関数は、4個の並列プロ
セッサ16のそれぞれ1つに送られる。各プロセッサ内
では、4つのb−スプライン(トップ座標、トップV導
関数、ボトム座標。
ボトムV導関数)は、連続するUパラメータ・ポイント
PCに対して評価され、ストリップ内の各Uパラメータ
・ポイントに対し、トップ及びボトム座標と、トップ及
びボトムU導関数と、トップ及びボトムV導関数に対す
る値を結果として得る(ステップ32)、各Uパラメー
タ・ポイントPCに対する各評価後の結果は、プロセッ
サ18に送られる。プロセッサ18では、各座標から重
みを評価し、頂点ジオメトリツク座標、頂点、U及びV
接線を決定し、これからストリップの各Uパラメトリッ
ク・ポイントPCに相当する1対のストリップのトップ
及びボトム・ポイントに対する頂点法線を決定する。2
つの連続するUパラメータ・ポイントに対する頂点はポ
リゴンを定める(ステップ34)。プロセッサ18から
の頂点情報は、クリッピング・プロセッサ20へ送られ
る。クリッピング・プロセッサは、ポリゴンを従来の方
法でクリップしくステップ36)、結果をフレーム・バ
ッファ22へ送る(ステップ38)。
サーフェスの初期uスパンは、FIFOスタックのコン
トロール・ポイント・データの最初のku個の列により
定められる。次のUスパンは、すぐその後に続(ku−
1個の列と共に、続く列のそれぞれによって定められる
現在のストリップの各Uスパンが評価された後に、トッ
プ座標及び導関数は、次のストリップのトップ座標及び
導関数にコピーされ、パラメータ・ポイントVが更新さ
れ、フローは新しいストリフプの評価に戻る。これは、
現在のVスパン及び次のVスパンに対するパラメータ・
ポイント■のすべての値に対して繰り返される。続くv
スパンのそれぞれは、コントロール・ポイント・マトリ
クスの続く行をFIFOコントロール・ポイント・スタ
ックのトップにロードすることにより定められる。上述
したようなNURBSデータの特定の処理は、この発明
の多くの利点を与える。
グラフィックス・コントロール・プロセッサ14の特定
の動作、及びサーフェス評価システム10の他のプロセ
ッサの動作を、第4A〜第4J図、第5図、第6図にフ
ローチャートに示し、以下詳細に説明する。
第4A図において、前述したサーフェス・データをシス
テム・メモリ12から読み取り(ステップ52)、グラ
フィックス・コントロール・プロセッサ14のレジスタ
及び/またはローカル・メモリ15に記憶する。サーフ
ェス・タイプ及びステータス・フラグを、レジスタに記
憶する。■パラノー5階数(ku) 、  u次元(N
u) 、 Umin、 Llmax、  vパラノー5
階数(kv)、v次元(Nv) 、 Vain、 Vm
axを、グラフィックス・コントロール・プロセッサ(
GCP)内のレジスタ及びローカル・メモリに記憶する
(ステップ54)。Uノット値、Uテサレイション・パ
ラメータ、Vノット(直、■テサレイション・パラメー
タ、コントロール・ポイント・マトリクスを、グラフィ
ックス・コントロール・プロセッサのローカル・メモリ
に記憶する(ステップ56)。ローカル・メモリには、
Uテサレイション・パラメータ及びUノット値が1つの
ベクトルとして記憶される。このベクトルは、それぞれ
N2ワードを有する2つの行を保持するのに十分な容量
を有している。ここに、N2はローカル・メモリによっ
てサポートされる最大U次元(例えば64)に等しい。
第1行は、すべてのUテサレイション・パラメータ及び
ku個のノット植を含んでいる。
次表は、Uテサレイション及びUノツト・ベクトルを示
す。この表において5、行はヘクトル内の行を示し、ポ
ジショ ンを示している。
一丘−,ポジション 1 ンは特定の行内のロケーショ ー値− au(1) ■ Nu−ku+1 dU(2) dU(Nu−ku+1) u (ku) II(ku+1) u(ku+Nu) デスクリプジョン 第1uテサレイシヨン ・パラメータ 第2uテサレイシヨン ・パラメータ 最終Uテサレイシゴン ・パラメータ 第1uノツト(使用せず) 第2uノツト Uノット数ku Uノット数ku+ 1 最終Uノット この表は、また、■テサレイション・パラメータ及びV
ノット値に対し真を保持している。次表は、■テサレイ
ション及びVノット・ベクトルを示す。
一丘一 ポジション  −逼− 11dV(1) 2       dV(2) Nv−kv+1 dV(Nv−kv+1) ■(1) ■(2) v (kv) v(kv+1) v(kv+Nv) 一゛スクiプション 第1vテサレイシヨン ・パラメータ 第2vテサレイシヨン ・パラメータ 最終Vテサレイション ・パラメータ 第1vノツト(使用せず) 第2vノツト Vノット数kv Vノット数kv+1 最終Vノット 第4A図において、次のステップは、グラフィックス・
コントロール・プロセッサ内のステータス・フラグを調
べることである(ステップ58)。
ステータス・フラグは、コントロール・ポイント・マト
リクスの各Uスパンに対しUテサレイション・パラメー
タが計算されたか否かを識別するために用いられる。ス
テータス・フラグが0ならば、これらdU値を計算する
必要がある(ステップ60)。
コントロール・ポイント・マトリクスの各Uスパンに対
し、テサレイション・パラメータを計算するのに必要な
ステップは、第5図のフローチャートによって最も良く
理解できるであろう。このフローチャートは、第4図の
ステップ60 (dUの計算)を詳細に示している。
テサレイション(tessellajion)は、曲面
をフラット・ポリゴンで近似できる領域へ分割する処理
である。
Uテサレイション・パラメータの計算は、サーフェスの
U階数(ku)で定まるUスパン内のポイント数に依存
する、第7A図及び第7B図に示すように、U階数(k
u)のサーフェスは、1個のUスパン当りku個のコン
トロール・ポイントと、Nv個のコントロール4・ポイ
ントの各行に対してku −1個のセクションとを有し
ている。ku個のコントロール・ポイントは、2個のエ
ンド・ポイントと、ku−2個のインターメディエイト
・ポイントより構成される。したがって、ku=3なら
ば、dU= 1axl + 1ayl + lazを生
成する2個のセクションと1個のインターメディエイト
・ポイントが存在する。ku−4ならば、dU= la
x  + lbx  + ayl+1byl+ 1azl+lbz を生成する3個のセクションと、2個のインターメディ
エイト・ポイントが存在する。ここに、dUはベクトル
a及びbの長さの和における境界である。
第5図において、各Uスパンに対するすべてのUテサレ
イション・パラメータは、最初に0に初期化しなければ
ならない(ステップ350)、これは、du (uco
unt) = Oにセットすることにより行われる。こ
こに、スパンの数であるNu−ku+1に対しucou
nt= lである。次に、特定のdU計算に用いられる
コントロール・マトリクス内の現在のデータ行を表すv
countと呼ばれるレジスタを、Oにセットシ(ステ
ップ352)、その直後に、lだけ更新する(ステ・ン
ブ354)。次に、コントロール・ポイント・マトリク
スから行(vcount)を読み取る(ステップ356
)。次に、ucoun tと呼ばれるレジスタをOにセ
ットしくステップ358)、その直後に1だけ更新する
(ステップ360)。この例では、ucountは、特
定のdU計算に用いられるコントロール・ポイント・マ
トリクス内の特定のデータ列を表している。
次に、Uスパンの初めを示すU、をuknot  (u
count+ku  l)にセットし、Uスパンの終わ
りを示すU2をuknot  (ucount+ku)
にセットする(ステップ361)。
これらの初期ステップが完了した後、次のステップは、
有効なUスパンがあるか否かを判断することである(ス
テップ362)。Uスパンは、Ul  <Umax Uz  >Umin U2  > U+ ならば有効である。ここに、U、及びU2は、前のステ
ップで与えられた値に等しく 、Umax及びUsin
の値は、システム・メモリから読み取られ、グラフィッ
クス・コントロール・プロセッサ内のレジスタ及びロー
カル・メモリに記憶されている。
Uスパンが無効ならば、ライン364を経てステップ3
76  (ucount=Nu−ku+ 1か?)に進
み、次のUスパンにスキップする。Uスパンが有効なら
ば、最大Uテサレイション・パラメータ(dU) (7
)計算が続けられる(ステップ366)。
この時点で、dUテサレイション・パラメータ(−時的
にdと称する)は、X(n、 vcount)+ Y(
n。
vcount) 、 Z(n、 vcount) + 
W(n、 vcount)に基づいて計算される。ここ
に、nは、vcoun tの多値に対し、ucount
〜ucount+ku −1の範囲にある。例えば、k
u= 3 、 vcount= 1 、 ucount
= lならば、dはs XII+  yII+  ZI
l+  W目; XZl+  y!I+  Z21+w
、、 ; X3++  )’!l+  Zffl+  
W:lIで表されるコントロール・ポイントの値に基づ
いて計算される。次に、dの計算値は、dU (uco
unt)と比較される(ステップ368)。dがdLl
 (ucount)により表される値より大きければ、
dU (ucount)はdに等しくなるようにセット
され(ステップ370)、グラフィックス・コントロー
ル・プロセッサのローカル・メモリに記憶される(ステ
ップ372〉。
次に、ucountが、Uスパンの数であるNu−ku
+1に等しいか否かが判断される(ステップ376)。
等しくなければ、フローはライン378を経てステップ
360  (ucountを更新する)に戻る。等しけ
れば、成る行の各Uスパンに対する最大Uテサレイショ
ン・パラメータを調べる。次に、vcoun tを、コ
ントロール・ポイント・マトリクスの行の数に相当する
Nvと比較する(ステップ380)。vcountがN
vに等しくなければ、ライン382を経てステップ35
4  (vcountをインクリメントする)に戻り、
新しい行のUスパンに対し上記テサレイション処理を繰
り返す。vcoun tがNvに等しければ、Uテサレ
イション・パラメータのベクトルは、コントロール・ポ
イント・マトリクスの各Uスパンに対スル最大値dUを
含む。次に、コントロール・ポイント・マトリクスに対
するポインタをリセットし、第4A図のステップ62 
(vcountを初期化する)に戻る(ステップ384
)。
再び第4A図において、vcountはOに初期化され
(ステップ62)、次にコントロール・ポイント(cT
RL  PTS)の1行が、グラフィックス・コントロ
ール・プロセッサ14によりシステム・メモリ12から
読み取られる。これらのコントロール・ポイントは、モ
デリング座標からビュー座標(x、  y+  z)に
変換される(ステップ64)。この変換は、従来の方法
により、x、y、z座標を所望なように平行移動し、回
転し、スケールする処理である。この処理に用いられる
変換マトリクスは、グラフィックス・コントロール・プ
ロセッサに予めロードされている。
変換処理が終了した後、変換座標をローカル・メモリの
スタックに格納する。このスタックは、Nu列及びkv
行のデータを保持するのに十分な容量を有し、ファース
トイン・ファーストアウト(FIFO)的に動作する。
コントロール・ポイントの1行が格納された後のこのス
タックの説明については、第8A図を参照されたい。次
に、グラフィックス・コントロール・プロセッサは、v
countが階数(kν)より小さいか否かを判断する
(ステップ70)。vcountかにνより小さければ
、ライン72を経てステップ64(コントロール・ポイ
ントの1行を読み込め)に戻る。vcoun tがkv
以上であれば、これは、■スパンに対する十分なデータ
行がコントロール・ポイント・スタックに格納されたこ
とを示している。次に、■スパンの始まりである■cを
vknot  (vcount)に等しくなるようにセ
ットしくステップ74) 、vスパンの終わりである■
2を、vknot  (vcount+ 1 )に等し
くなるようにセットする(ステップ76)。
次に、■スパンが有効であるか否かを判断する(ステッ
プ78)。■スパンは、 ■I<vIlax Vz  >Vmin V、>V。
ならば有効である。ここに、■1及びv2は、前のステ
ップで与えられた値に等しく、V++ax及びV+ni
nの値は、システム・メモリから前に読み取られて、グ
ラフィックス・コントロール・プロセッサ内のレジスタ
及びローカル・メモリに記憶されている。
■スパンが無効ならば、次のVスパンに続くために、ラ
イン80を経て第4F図のステップ280(vcoun
t<Nvか)に行く。■スパンが有効ならば、各パッチ
に対する最小及び最大座標が決定される。
パッチは、ku列及びkv行によって決定される。した
がって、例えばku= 3 、 kv= 4なら、パッ
チはコントロール・ポイント・スタック内の12個のロ
ケーションすなわち“ボックス”によって決定される。
このようなパッチの説明については、第8B図を参照さ
れたい。パッチに対して最小及び最大座標を計算するに
は、コントロール・ポイント・スタックの各列に対する
最小及び最大座標を、最初に決定しなければならない(
第4A図のステップ82)、得られる結果の値は、(x
min(i)、 y輪1n(iL zmin(i)、 
vsbl(i))、または(x+wax(i)、 ys
ax(i)、 zmax(i)、 Qmin(i))の
いずれかに相当するストーレッジ内に蓄積された行内に
配置される。なお、iは現在の列である。
コントロール・ポイント・スタックの各列に対する最小
及び最大座標を決定するためには、1つの列のX、yま
たは2の多値を、同一列内のX。
yまたは2の残りの値と比較しなければならない。
例えば、コントロール・ポイント・スタックが、次のよ
うな2列4行を有するならば、 第 1 列       第2列 次に、第1列内の最小及び最大X値を決定するために、
その列(X 11.X +!+  X 13+  X 
+4)内のすべてのX値を、互いに比較する。その結果
得られた最小値は、X+ll1n(i)に格納され、最
大値はX5ax(i)に格納される。y及び2の最小値
及び最大値を決定するのに同じ手順を用いる。その結果
は、ymin(i)、 ymax(i)、 zmin(
i)、 zmax(i)にそれぞれに格納される。しか
し、W座標の最小及び最大値を計算する必要はない。し
たがって、Weiin(i)及びWmax(i)に相当
する記憶エリアは、vsbl(i)及びQmin(i)
にそれぞれリザーブされている。この時点で、レジスタ
vsbl(i)の多値は、0に初期化され、レジスタQ
win(i)の多値はOに初期化される。これらレジス
タについては、後に詳述する。
列内の各座標に対する最小及び最大値の決定から得られ
る結果は、各Uスパンに対する最小及び最大値を見つけ
るのに用いられる(ステップ84)。
例えば、列数(Nu)が9に等しい各列に対するX座標
の最小値の計算が、xmxnl、 X111n2+Xl
11n3+ X1lin4. xmin5. x+*i
n6. xmin’L xmin8. xmin9のよ
うな結果の列を生成するならば、Uスパンに対する最小
値は、 Xm1n(S) =Xmin(i)の最小値ここにi=
s Ns+ku−1 s = 1〜Nu  ku+ 1 のように計算される。No−ku+1はUスパンの数で
あり、kuはサーフェスのU階数である。したがって、
Nu−9,ku=3ならば、Uスパンの数は7に等しく
、最初のXm1n値は、Xm1n1. Xm1n2. 
Xm1n3 (この時点においてこの例では、5=1(
したがってs+ku  1=3)、及び、iは行の第1
〜第3列に関連するl〜3の範囲にある)を比較するこ
とに決定される。この比較の結果得られる値は、ローカ
ル・メモリ内のそのロケーションに値を置き換えている
Xm1n(s)に記憶される。同じ手順が、最大値を見
つけるために行われるが、結果はXmax (s)に記
憶される。この処理がすべての座標(’X+  y、Z
)及びすべてのUスパンに対して終了すると、結果は現
在のVスパン内の各バッチに対する最小及び最大座標に
なる。
次に、ucoun tを1に初期化する(ステップ86
)。
次に、各パッチに対して決定されたばかりの最小値及び
最大値との間で、ウィンドウ境界に対する比較を行う(
第4B図のステップ88)。これらがオーバラップする
ならば(ステップ90) 、vsbl(ucount)
と称される前述のレジスタと、visと称されるステー
タス・レジスタにおけるビットとが、1に初期化される
(ステップ92.94)。次に、法線しきい値口5in
(ucount)が計算される(ステップ96)。Qm
in値に必要なストーレッジは早めに記憶されている。
Qninは、 Qa+1n(s) = (e・(xmax(s)−xm
in(s))”+(ymax(s)−ymin(s))
” +(zmax(s)−zmin(s))”))”の
ように計算される。ここに、Sは1〜Nu−ku+1 
 (uスパンの数)を表しており、eは10−’=0゜
00001のような小さな値であり、これは座標及び法
線ベクトルの計算に用いられる浮動小数点数の精度を表
している。
次に、ucountをUスパンの数Nu−ku+1と比
較する(ステップ98)。これらが等しくなければ、u
coun tを1だけインクリメントしくステップ10
0)、ライン102を経てステップ88(uスパン(u
count)に対する最小と最大とを比較する)。ステ
ップ98において等しければ、visを0と比較する(
ステップ104)。vis=oならば、パッチの全列は
ビジプルでなく、ライン105を経て第4F図のステッ
プ280  (vcoun t < Nvか)に進む。
visが0に等しくないならば、1以上のパッチがビジ
プルであり、処理が続けられる。
次に、ステータス・フラグをOと比較する(ステップ1
06)。ステータス・フラグは、■テサレイション・パ
ラメータが計算されたか否かを識別する。ステータス・
フラグが0に等しくないならば、■テサレイション・パ
ラメータが決定され、ステップ112  (Dvを計算
する)にスキップする。5tatUS=Oなら、テサレ
イション・パラメータdVが計算され、グラフィックス
・コントロール・プロセッサのローカル・メモリに記憶
される(ステップ110)。
■テサレイション・パラメータを計算するのに必要なス
テップは、第6図のフローチャートにより良く理解でき
るであろう。このフローチャートは、第4B図のステッ
プ110  (dVを計算する)を詳細に示している。
第6図において、フローチャートは、全Vスパンに対す
る最大Vテサレイション・パラメータを計算するのに必
要なステップを示している。この最大dV値を計算する
には、以下のステップが実行される。まず初めに、dV
及びucountをOに初期化しくステップ386.3
88) 、その直後にucountをlだけインクリメ
ントする(ステップ390)。
次に、■テサレイション・パラメータを、x (uco
unt、 vcountl)y (ucount、 v
countl)z (ucount、 vcountl
)w (ucount、 vcountl)に基づいて
計算する(ステップ392)。ここに、νCount=
 1−kvであり、■はサーフェスの階数である。この
計算の結果は、dと称されるレジスタに格納される。次
に、dをレジスタdVに格納されている値と比較する(
ステップ394)。dがdVより大きければ、dVはd
に等しくなるようにセットされる(ステップ396)。
dがdV以下であれば、ucoun tがコントロール
・ポイント・マトリクスの列の数であるNuに等しいか
否かを判断する(ステップ398)。これらが等しくな
ければ、ライン400を経てステップ390  (uc
ountを1だけインクリメントする)に戻る。uco
un tがNuに等しければ、dV (ucounOは
dVに等しくなるようにセットされる(ステップ402
)。この時点では、dV (ucount)は、全Vス
パンに対する最大Vテサレイション・パラメータを含ん
でいる。そして、第4B図のステップ112  (Dv
を計算する)に進む。
第4B図において、次のステップは、■パラメトリック
座標インタバルであるDvを計算することである。Dv
は、グラフィックス・コントロール・プロセッサによっ
て、 Dv= (Vz  V+) /Nvstepのように計
算される(ステップ112)。ここに、Nvs tep
は、 (a)スクリーン(ビクセル)座標/データ座標の比に
等しいスケールSを計算する、 (b ) dv (vcount−kv+ 1 )にS
を乗じてdV’を生成する、デバイス座標であるピクセ
ル・ユニットにdv (vcount−kv+ 1 )
を変換する、(c ) Nvstep=n+ax(1+
 Int 5qrt(dv’)を計算する、 によって決定される。
■パラメトリック座標インタバルを計算した後、■スパ
ンの開始及び終了が、Vmin及びVmaxによってセ
ットされる境界の外側にないようにするために、■、及
びV2を次のように調整する。Vminが■、とv2と
の間にあるならば、VlはVminに等しくなるように
セットされ、V+maxが■1と■2との間にあるなら
ば、V2はVmaxに等しくなるようにセットされる。
次に、最初のVスパンの開始を表すvflagと称され
るレジスタ、及びVインタバル・ループを出るときを表
すvlastを称されるレジスタを、0に初期化する(
第4C図のステップ116.118)。次に、現在のV
パラメータ・ポイントVを、■スパンの始まりであるv
Iに等しくなるようにセットしくステップ120〉、u
coun tをOに初期化する(ステップ122)。次
に、vcountを1だけインクリメントする(ステッ
プ124〉。
初期化が終了した後に、グラフィックス・コントロール
・プロセッサは、■パラメータ・ポイント■の現在の値
に対し、斉次座標(wx、wy。
wz、w)のV依存度を評価する。斉次座標を得るため
には、x、y、zの多値を、対応する重みWの値で乗算
する。したがって、x(ucount、 vcount
)+y(ucount、 vcount)、 z(uc
ount、 vcount)は、w(ucount、 
vcount)により乗算される(ステップ126)。
好適な実施例では、Cox−DeBoor (またはD
eCasteljau)プロセスとして当業者に知られ
ているプロセスを、評価に用いる。このプロセスは、コ
ントロール・ポイントの成分量の直線補間を実行する。
Vの多値に対し全体でkv(kv −1−) / 2個
の補間を実行する。
このアルゴリズムを説明するために、kv=4であるサ
ーフェスについての例を示す。第9A図は、kvコント
ロール・ポイントに対するX座標を示している。第9A
図において、kv=4であり、スパンはノット値V、で
始まりノット値v2で終了する。Vl及びVzは、vk
not(vcount)及びvknot(vcount
+ 1 )にそれぞれ位置するVノット及びテサレイシ
ョン・ベクトルにおける値に等しい。
■はパラメータ・ポイントであり、スパンの前に3個の
ノット値(V z、V 3+ va )があり、スパン
の後に3個のノット値(V 5. V 6. V T)
がある。
6個のノット値■2〜V、は、それぞれVcoun t
kv+ 2 、 vcount−kv+ 3 、 vc
ount、 vcount+1 。
vcount+ 2 、 vcount+kv −1で
のノット・ベクトル内のノット値を示している。
第9B図は、補間される各部分の始まりを示す前ノット
(v2.v3.v4)の配置を示し、第9C図は、補間
される各部分の終わりを示す後ノット(V S+ V 
b、V 7 )の配置を示している。したがって、補間
は、vt &vsとの間、v:lとv6との間、v4と
v7との間で行われる。
Cox−Deboorのアルゴリズムは、上述した変数
を次式に用いている。以下の例は、7階数、kv=4の
サーフェスに対するものである。
f+ = ((Vs  V)Xz+ (V  V2)X
I2)/ (V、−V、) fz = ((V6  V)xB+ (v  V:+)
X+ff)/(V、−V、) fz = ((V7  V) X11+ (V  Vl
) X14)/ (V、−Vl) これら3つの式は、kv=4であるサーフェスに対する
直線補間の第1段階で用いられる。補間は、3つのポイ
ントを作成するために、v2とV、との間、v3と■6
との間、■4とV、との間で行われる。これら3つのポ
イントを、第9D図にOで囲って示す。補間の第2段階
は、ノット値の再配置を必要とする。この段階では、3
つのポイントしかもっていないので、ノットv3〜vb
を必要とするだけである。ノットv:l+ v4は、新
しい前ノットであり、vSr vhは新しい後ノットで
ある。次の2つの式は、kν=4であるサーフェスに対
する直線補間の第2段階の間に用いられる。
f+ = ((vs  v)r++ (V  V3)f
z )/ (V、−V、) ft = ((V&  v)fz+ (V  Vl)f
z )/ (V、−V、) 補間は、2つのポイントを作成するために、■。
とV、との間、v4とV、との間で行われる。これら2
つのポイントは、第9E図に○で囲んで示している。
この補間は、導関数を計算するのに用いられる接線をも
作成する。接線を得るために、Bでの値からAでの値を
減算する。A、Bは第9E図に禾されている。
補間の最終段階では、再びノット値の再配置を必要とす
る。この段階では、2つのポイントしかもっていないの
で、ノットv4及びvsを必要とするだけである。次式
は、サーフェス上のポイントのX座標を作成するのに用
いられる。
f (v)= ((vs  v)r、+ (V−V4)
fz )/ (V、−V、) このポイントは、第9F図にOで囲って示す。
接線の計算を含む上述のアルゴリズムは、WX。
wxv、  wy、  wyv、  wz、  wzv
、  w、  wv(VはV導関数を示している)を作
成するために、グラフィックス・コントロール・プロセ
ッサ内の各座標(wx、wy、wz、w)上で実行され
る(第4C図のステップ128)。
wx、wy、wz、wの評価後、結果として得られるポ
イント及び導関数は、トップ座標TC(第4D図のステ
ップ130〉及びトップV導関数TVD (ステップ1
32)としてVインタバル・スタックに格納される。V
インタバル・スタックは、2行と8×N2までの幅とを
有している。ここにN2は、グラフィックス・コントロ
ール・プロセッサのローカル・メモリによりサポートさ
れる最大U次元(例えば64)である。スタックのトッ
プ行はトップ座標TC及びトップV導関数TVDを有し
、次行はボトム座標BC及びボトムV導関数BVDを有
−している。■インタバル・スタックの説明は、第10
A図を参照されたい。
1列のwx、wy、wz、wに対する評価が終了した後
に、ucogn tをU次元Nuと比較する(第4D図
のステップ134)。ucountがNuに等しくなけ
れば、ライン135を経て第4C図のステップ124(
ucountをインクリメントする)に戻り、コントロ
ール・ポイント・スタックの各列内のすべての要素が評
価されるまで評価処理を続ける。各列内のすべての要素
が評価されると、ucoun tはNuに等しくなり、
ストリップのトップ・エッジが定められる。トップ・エ
ッジ及びボトム・エッジを有するストリップについては
、第13図を参照されたい。
次に、vflagをOと比較する(ステップ136)。
vflagがOに等しければ、それは最初のスパンの開
始であり、ライン138を経て第4F図のステップ25
8(vflag = 1 )ヘスキップする。実行され
る次のステップが、取り出されたトップ座標及びV導関
数のみならず、この時点ではまだ取り出されていないボ
トム座標及び■導関数をも必要とするので、前記スキッ
プが必要となる。vflagがOに等しくないならば、
トップおよびボトム座標及びV導関数が計算され、処理
が続けられる。この時点では、ストリップはすでに定め
られている。第13図を参照されたい。
次に、コマンド°“パラメトリック・サーフェスをスタ
ート及び階数(ku)が各並列浮動小数点プロセッサ1
6に送られる(ステップ140.142)。
次に、ku−1個のUノットがグラフィックス・コント
ロール・プロセッサのローカル・メモリから読み取られ
て、各並列浮動小数点プロセッサへ送られる(ステップ
144)。各プロセッサ内では、これらUノットをスタ
ックに格納する。各スタックは、2ku−2行のデータ
を保持するに十分な容量を有し、ファーストイン・ファ
ーストアウト(FIFO)的に動作する。各並列プロセ
ッサ内のノット・スタックの説明については、第11図
を参照されたい。第11図の各スタックは、格納された
ばかりのku−1個のUノットを示している。
次に、ucountはOに初期化され(ステップ146
)、コマンド“サーフェス・スパンをスタート”が各並
列浮動小数点プロセッサに送られる(ステップ148)
。次に、ucOun tは1だけインクリメントされ(
ステップ150)、U階数(ku)及びUノット(ku
十ucount −1)が、各浮動小数点プロセッサ1
6に送られる(ステップ152)。各並列浮動小数点プ
ロセッサ16がUノット値を受け取ると、この値は前述
したように各プロセッサのスタックに格納される(ステ
ップ154)。
次に、各座標(x、y、z、w)に対し、■インタバル
・スタックの列(ucount)内の、対応するトップ
座標、トップV導関数、ボトム座標、ボトムV導関数が
、グラフィックス・コントロール・プロセッサから対応
する浮動小数点プロセッサに送られる(ステップ156
)。例えば、X座標に対応する情報はプロセッサ16x
に送られ、X座標に対応する情報はプロセッサ16yに
送られる等である。データが対応するプロセッサにより
受け取られると、プロセッサは、データをスタックに格
納する(ステップ15B)。このデータ・スタックは、
4列幅及びku行の深さを有し、FIFO的に動作する
。■データ行が格納された後の、各プロセッサ内の各ス
タックの状態は第11図を参照されたい。
次のステップは、ucountがkuより小さいか否か
を決定するステップである(第4E図のステップ160
)。小さいならば、Uスパンは終了せず、ライン161
を経て第4D図のステップ150  (ucountを
インクリメント)へ戻り、さらに多くのデータを各並列
プロセッサに送る。ucount;5(ku以上ならば
、Uスパンは終了する。
Uスパンが終了した後、Ulをuknot (ucou
nt)に等しくなるようにセットしくステップ162)
、Usをuknot (ucount+ l )に等し
くなるようにセットする(ステップ164)。
次のステップでは、Uスパンが有効か否かを決定する(
ステップ166)。Uスパンは、U、<Umax U、  >Umin U ! > U 1 ならば、有効である。ここに、Ul及びU2は、前のス
テップで与えられた値に等しく 、 Llmax及びL
ln+inはローカル・メモリに前に記憶されている値
に等しい。Uスパンが無効であるならば、ライン16B
を経て第4F図のステップ255  (ucount<
Nuか)に進み、次のUスパンを処理する。Uスパンが
有効なら、vsbl (ucount−ku+ 1 )
を1と比較する(ステップ170)。1に等しくなけれ
ば、Uスパンはビジプルでなく、ライン171を経て再
びステップ255  (ucounLをインクリメント
)へ進む。
1に等しければ、Qmin (ucount−ku+ 
1 )を各並列プロセッサに送る(ステップ172)。
各並列プロセッサ16がQsinを受け取ると、Qmi
nをプロセッサ18に送る(ステップ174)。プロセ
ッサ18は、Qminをレジスタに格納する。
次に、Uパラメトリック座標インタバルDuは、グラフ
ィックス・コントロール・プロセッサ内で、口u=  
(Uz−U、)  /Nustepのように計算される
(ステップ176)。ここに、Nus tepは、 (a)スクリーン(ビクセル)座標/データ座標の比に
等しいスケールSを計算する、 (b ) dU (ucount−ku+ 1 )を、
ビクセル・ユニットに変換する。ビクセル・ユニットハ
、dlJ (ucount−ku+ 1 )にSを乗じ
てdU’を生成するデバイス座標である、 (c ) Nustepを計算する、Nustep=M
ax(1,1ntsqrt (du’ ) )である、 によって決定される。
Uパラメトリック座標インタバルが計算された後、Uス
パンの初め及び終わりがU+win及びUmaxによっ
て設定される境界の外側にないことを確保するために、
Ul及びU2を次のように調整する。
(ステップ178)。tlminがUlとU2との間に
あれば、U+ はUminに等しくなるように設定され
、UmaxがUlとU2との間にあれば、U2はUma
xに等しくなるように設定される。
次に、コマンド“パラメトリック・サーフェスを評価せ
よ”が、各並列プロセッサ16に送られる(ステップ2
00)。並列プロセッサがこのコマンドを受け取ると、
プロセッサは同じコマンドをプロセッサ18に送る(第
4G図のステップ206)。プロセッサ18は、一連の
ポリゴンの開始を指示する、vflag=o及びPRE
V = N0NBをセットする(ステップ208.21
0)。これらの動作が実行されている間、グラフィック
ス・コントロール・プロセッサは動作し続ける。第4E
図のライン202は、グラフィックス・コントロール・
プロセッサにおいて動作が実行されると同時に、他のプ
ロセッサにおいても動作が実行されることを示している
。次に、グラフィックス・コントロール・プロセッサは
、4階数(ku)を、各並列浮動小数点プロセッサに送
る(ステップ212〉。
次に、PCと称されるレジスタが、最初のUパラメトリ
ック・ポイントを示すUlに等しくなるようにセットさ
れる(ステップ214)。PCは、各並列プロセッサに
送られる(ステップ216)。
並列プロセッサ16x、 16y、 16z、 16w
及び次段のプロセッサ18で行われる動作は、第4H図
のフローチャートにより理解できるであろう。第4H図
のフローチャートにおけるタスクは、グラフィックス・
コントロール・プロセッサの動作と同lに行われる。こ
れは、第4E図にライン218によって示されている。
プロセスのこの段階では、トップ及びボトム座標及びV
導関数より成るストリップが存在している。このストリ
ップは、サーフェスの全長に対しU座標方向に延在し、
連続する2個のVパラメトリック・ポイントにより■座
標において境界が定められている。次のステップは、b
−スプライン関数を評価することである。b−スプライ
ン関数は、ストリップ、すなわち続くuスパンのそれぞ
れに対する連続Uパラメータ・ポイントに基づく、トッ
プ座標、トップV導関数、ボトム座標、ボトムV導関数
を定義している。第13図は、ストリップと、連続する
U個のインタバルに分割された連続Uスパンを示してい
る。
第4H図において、並列浮動小数点プロセッサがパラメ
ータ・ポイント(PG)を受け取った後は、各プロセッ
サは、コントロール・ポイント座標の組(wx、wy、
wz、w)の1つ−の要素に対し、b−スプライン関数
の評価を開始する(ステップ224)。例えば、第1の
並列浮動小数点プロセッサ16xは、X座標に対する評
価を行い、第2並列浮動小数点ポイント・プロセッサ1
6yは、X座標に対する評価を行う等である。すべての
4個の並列浮動小数点プロセッサは、それぞれの座標を
同時に評価する。各座標に対し、各プロセッサは、4つ
のb−スプライン関数、すなわちトップ座標。
トップ導関数、ボトム座標、ボトムV導関数を評価する
。これら4つのb−スプライン関数から、上述した値に
加えて、トップU導関数及びボトムU導関数を含む6個
の値が生成される。
前述したCax−DeBoorアルゴリズムは、4つの
b−スプライン関数のそれぞれを評価するのに用いられ
ている。トップ及びボトムU導関数は、トップ及びボト
ムV導関数と同様に計算される。すなわち、トップ及び
ボトムU導関数は、トップ及びボトム座標から導き出さ
れる。
各並列プロセッサからの6つの値は、同時にプロセッサ
18に送られる(ステップ226)。これらの値は、1
組ノドツブ座標(TWX、 TWY、 TWZ、 TW
)と、1組のトップU導関数(TWXU、 TWYU、
 TWZU、 TWU)と、1組ノドツブV導関数(T
WXV、 TWYV、 TWZV。
TWV)と、1組のボトム座標(BWX、 BWY、 
BWZ、 BW)と、IMのボトムU導関数(BWXU
、 BWYU、 BWZU。
BWtl)と、1組のボトムV導関数(BWXV、 B
WYV、 TWZV、 TWV)とを含んでいる。
前述したように各組の座標及び導関数を受けると(ステ
ップ227)、プロセッサ18は種々のステップを実行
する。まず初めに、TW= 1 /TWを計算し、この
値を、それぞれトップ座標及び導関数に対するライト頂
点座標及びライト頂点接線の連続する計算に用いる(ス
テップ229)。
トップ・ライト頂点座標は、 TRX  =TWX −TW TRY  =TWY−T賀 TRZ  =TWZ −TW のように計算されている。したがって、トップ座標TC
= (TRX、 TRY、 TRZ)となる。
トップ・ライト頂点U接線は、 TRXU = (TWX[I −TRX −TWO) 
TWTRYU = (TWYU −TRY −TWU)
 TWTRZU = (TWZU −TRZ −TWt
l) TWのように計算される。
トップ・ライト頂点V接線は、 TRXV = (TWXV −TRX −TWV)TW
TRYV= (TWYV−TRY ・TWV)TWTR
ZV=(TWXV −TRZ −TWV) TWのよう
に計算される。
次に、トップ・ライト頂点法線を、対応するトップU及
びV接線のクロス乗積をとることによって計算する(ス
テップ230)。例えばTNX  =TRYU −TR
ZV−TRZtl −TRYVTNY =TRZU −
TRZV−TRXU −TRZVTNZ  =TRXU
 −TRYV−TRYU −TRXVのように計算され
るーしたがって、サーフェス法線ペクト/I/TN−(
TNX、 TNY、 TNZ)となる。
次に、頂点法線の大きさを、 ↑MP =TNX  −TNX+TNY  −TNY+
TNZ  −TNZのように、X+)’+Z座標の2乗
の和をとることによって計算する。
次に、TMPの値を、Qminと比較する(ステップ2
31)。T?IPがGm1nより小さければ、レジスタ
のビットをフェイル(fail)にセットする(ステッ
プ232)。TMPがQn+in以上であれば、ビット
をバスに等しくなるようにセットする(ステップ233
)。
次に、他のバスまたはフェイルを生成するために、ボト
ム値に対し上述の手順を操り返す。■=1/B−を計算
し、ボトム・ライト頂点座標を、BRX =BWに・B
W BRY  =BWY −BW BRZ  =BWZ −BW のように計算する(第41図のステップ234)、した
がッテ、ボトム座標BC= (BRX、 BRY、 B
RZ)となる。
次に、ボトム・ライト頂点U接線を、 BI?XII = (BWXII −BRX −BWL
I) BWBRXY = (tVYU −BRY −B
WLI) BW’ BRXZ = (BWZtl −B
RZ −BWU) BWのように計算する。
ボトム・ライト頂点V接線は、 BRXV = (BWXV −BRX −BWV) B
WB!?YV = (BWYV −BRY −BWV)
 BWBRZV = (BWZV −BRZ −BWV
) BWのように計算される。
次に、対応するボトムU及びV接線のクロス乗積をとる
ことによって、ボトム・ライト頂点法線を計算する(ス
テップ235〉。例えばBNX =BRYU −BRZ
V−BVZtl −BRYVBNY =BRZII ・
BRZV−BRXtl ・BRZVBNZ  =BRX
U −BRYV−BRYU −BRXVのように計算さ
れる。したがって、サーフェス法線ペクト71/BN=
 (BNX、 BNY、 BNZ)となる。
次に、BMPの値を、口+minと比較する(ステップ
236)。BMPが口1linより小さければ、レジス
タのビットをフェイルにセットする(ステップ237)
。BMPが口lllln以上であれば、ビットをバスに
等しくなるようにセットする(ステップ23B)。
次に、上述のテストの2つの結果及びPREVの値に基
づいて、2つのベクトルVl及びv2に、特定の値を割
り当てる。これらベクトルの値は、現在の法線ベクトル
のトップ及びボトムが法線しきい値テストに失敗したな
らば使用されるように、蓄積される。次表は、成る条件
の下で、Vl、V2、PREBがセットされる状態を示
している。トップ(Top)はサーフェス法線ベクトル
のトップを示し、ボトム(Bo t tom)はサーフ
ェス法線ベクトルのボトムを示し、PREVはPRHV
の現在の値を示し、コピー(copy)は成る条件の下
で何がコピーされるかを示し、蓄積(Save)は■1
及びv2に何が蓄積されるかを示し、セラ) (Set
)はPREVが成る条件の下でどのようにセットされる
かを示している(ステップ239)。
次に、vflagのステータスを調べる(ステップ24
0)。vflagがOに等しければ、vflagは1に
等しくなるようにセットされ(ステップ241)、ステ
ップ245(より多くのデータを待て)にスキップする
。vflagがOに等しければ、ボトム座標BC。
ボトム法線BN、  トップ座標TC,)ツブ法線TN
は、クリッピング・プロセッサ20に送られる(ステッ
プ242)。続いて、コマンド“ポリゴンの終了゛が送
られる(ステップ243)。クリッピング・プロセッサ
は、いくつかの動作を実行する。これらのステップは、
プロセッサ18で実行されるワークと同時に実行される
。これを、第4I図にライン246で示す。
クリッピング・プロセッサにおける動作は、第4J図に
より理解されるであろう。クリッピング・プロセッサは
、現在の3次元ビュウイング・ウィンドウに対し、プロ
セッサ18から丁度受け取ったポリゴンをクリップし、
クリップされたエツジに沿って頂点法線を補関し、得ら
れた頂点法線を通常の方法で単位ベクトルに変換する(
ステップ247)。
次に、クリッピング処理が終了した後に、元のポリゴン
のどこか一部がビュウイング・ウィンドウ内に残ると、
プロセッサ18はコマンド“’3dポリゴンをシェーデ
ィングでレンダせよ”をフレーム・バッファ22に送る
。プロセッサ18は、また、得られた頂点座標及び頂点
法線を送る(ステップ248)。
次に、フレーム・バッファはポリゴンのシェーブラド像
を生成する(ステップ249)。
クリッピング・プロセッサ及びフレーム・バッファで動
作が実行されている間、プロセッサ18は処理をし続け
る。プロセッサ18がコマンド“°ポリゴンの終了”を
クリッピング・プロセッサ20に送った後は、クリッピ
ング・プロセッサ20はより多くのデータを待つことに
なる(ステップ244)。次に、より多くのデータが到
来すると、プロセッサ18はコマンド“ポリゴンをスタ
ート”を、続いてトップ座標(TC)、)ツブ法線(T
N) 、ボトム座標(BC) 、ボトム法線(BN)を
クリッピング・プロセッサに送る(ステップ245)。
次に、第4H図のステップ227(プロセッサ18はデ
ータを受け取る)に戻り、データがなくなるか、あるい
はプロセッサ18がなんらかのコマンドを受け取るまで
、処理が繰り返される。
再び第4E図において、並列浮動小数点プロセッサ16
及び他のプロセッサにおいて評価及び他の処理が実行さ
れている間、グラフィックス・コントロール・プロセッ
サ14は、パラメトリック・ポイントを計算し続ける。
第4E図のステップ220で、PCはDuだけインクリ
メントされる。次に、pcをU2と比較しくステップ2
22)、pcがU2より小さければ、各並列浮動小数点
プロセッサにpcが送られる。PCが02以上であれば
、PCはU2に等しくなるようにセットされ(第4F図
のステップ252)、各並列プロセッサに送られる。こ
の値が並列浮動小数点プロセッサに送られ評価された後
は、成るUスパンに対してすべてのUパラメータが評価
される0次のステップで、多くのUスパンがあるか否か
を決定する(ステップ255)。ucoun tがNu
より小さければ、多くのUスパンが存在し、ライン25
7を経て第4D図のステップ150に戻る。ucoun
tがNuに等しければ、多くのUスパンは存在しない。
この時点で、vflagを1にセットする(ステップ2
58)、これは、状態が現在のVスパンの開始状態にな
いことを示している。次に、■インタバル・スタックの
値をブツシュ・ダウンする(スタック260)。このス
タックは、前述したように、U次元(Nu)の各x、y
、z、w座標に対するトップ座標、トップV導関数、ボ
トム座標、ボトムV導関数を格納している。この時点で
のVインタバル・スタックについては、第10B図を参
照されたい。
この時点で、トップ座標及び導関数の全体は、対応する
ボトム値に等しい。
次に、■パラメトリック・インタバルをDvだけインク
リメントして(ステップ262)、Vtと比較する(ス
テップ268)。■がv2より小さければ、次のVイン
タバルが評価され、ストリップの他のトップ・エッジを
生威し、ライン270を経て第40図のステップ122
  (ucountをインクリメントする)に戻る。■
が■2以上ならば、vlastを判断する(ステップ2
72)。vlastが1に等しくなければ、Vはv2に
等しくなるようにセットされる(ステップ274)、v
lastがlに等しければ、これはVインタバル・ルー
プの終わりを示しくステップ276)、ライン278を
経てステップ122  (ucountをインクリメン
トする)に戻る。ステップ272でvlastが1に等
しければ、vcoun tをNvと比較する(ステップ
280)。vcoun tがNvより小さければ、次の
Vスパンを評価し、ライン282を経て第4A図のステ
ップ64(コントロール・ポイントの1行を読み込む)
に戻る。vcountがNv以上であれば、コマンド“
パラメトリック・サーフェスを終了せよ”を、各並列浮
動小数点プロセッサ16に送る(ステップ284)。
次のステップは、ステータス・フラグのチエツクである
(ステップ286)。ステータス・フラグが0に等しけ
れば、すべてのU及びVテサレイション・パラメータを
、グラフィックス・コントロール・プロセッサのローカ
ル・メモリー(LM)からシステム・メモリ(SM)ヘ
コピーする(ステップ288.290)。次に、ステー
タス・フラグを1に更新しくステップ292)、システ
ム・メモリに記憶する(ステップ294)。これは、d
U及びdVパラメータ値がすでに計算されており、この
サーフェスが再び評価およびレンダリングされても、再
計算されないことを示している。ステータス・フラグが
Oに等しくなければ、もはやいかなる動作も実行されな
い。
以上で、並列及びパイプライン処理プロセッサを用いて
、非一様有理b−スプライン(NURBS)に基づくパ
ラメトリック・サーフェスの評価及びレンダリング方法
及び装置について説明した。
プロセッサを並列及びバイブライン処理的に使用するこ
とにより、サーフェスを従来技術に比べてより高速に評
価しレンダリングすることが可能となった。また、この
発明による方法は、データ冗長性を排除し、データの効
率的処理を可能にした。
NURBSは、その固有の特性の故に、多くの利点を与
え、この発明は、これらの利点を十分に利用している。
NURBS−によれば、サーフェスをパッチ・アレイに
分割することが可能になる。
各パッチは、異なるパラメトリック多項式の組によって
表される。NURBSサーフェスの隣接パッチを記述す
るパラメトリック多項式は、特定の連続度を与えている
。連続度を、滑らかなサーフェスあるいはシャープなコ
ーナを有するサーフェスを潜函できるように制御するこ
とができる。連続スパンを特定の連続度にマツチさせる
能力は、複雑なサーフェスの構成が低階数のNURBS
を用いる多くのポイントを通過することを可能にする。
この特性は、評価コストが高くなり数値的に不安定な高
次関数を避けることを可能にするので極めて価値がある
口゛−カル・コントロールは、NURBSの1つの特徴
である。NURBSは、コントロール・ポイント、重み
、ノット・ベクトルで規定されるので、全部のパッチに
作用することなくコントロール・ポイントを移動するこ
とによって、サーフェスのパッチを変更することが可能
である。階数がku及びkvのサーフェスに対する各コ
ントロール・ポイントは、ku X kvまでのパッチ
に作用する。
凸閉包特性は、さらに他の利点を与える。NURBSサ
ーフェスは、それらのコントロール・ポイントの凸閉包
内に含まれている。凸閉包は、最小の凸ポリゴン(2次
元の場合)あるいは−組のポイントを含む最小凸条面体
(3次元の場合)である。サーフェスの各パッチは、そ
のパッチを規定するku X kvコントロール・ポイ
ントの凸閉包内に存在しなければならない。この特徴は
、ポイントを評価することなく、NURBSサーフェス
のサイズ及びロケーションを評価し及びサイズ及びロケ
ーションに境界を設定することを可能にする。
これは、トリビアル・リジェクション・テスト(tri
vial rejection testing )に
は特に重要である。換言すれば、凸閉包が現在のスクリ
ーンとオーバラップしなければ、サーフェスは評価され
ず、リジェクトされる。このことは、複雑な情景または
対象の小さな部分の詳細なビューに対してユーザがズー
ムインするときに、システムの性能に大きな影響を与え
る。サーフェスの評価がリジェクトされなければ、凸閉
包はサーフェスが評価されるポイントを規定するのに用
いることができる。これは、パラメトリック関数を評価
するのに数台のプロセッサが用いられるパイプライン化
アーキテクチャに最も有用であり、評価のためのポイン
トを選択するプロセッサは、この評価の結果はアクセス
しない。
コントロール・ポイントに関連する重みは、柱体、錐体
1球のような幾何形状を含む2次曲面の正確な表示を与
える。これは、これらの種類のサーフェスはジオメトリ
ツク・モデリングに対し主要なものであるので、特に重
要な効果である。
この発明の他の効果は、サーフェスを表すのに用いられ
るポリゴンの頂点よりはむしろコントロール・ポイント
を用いることによって、変換を行うことができることで
ある。通常、コントロール・ポイントの数はポリゴン頂
点の数より少ないので、この方法は経済的である。また
、変換されたコントロール・ポイントは、前述した凸閉
包特性に基づくトリビアル・リジェクションに用いるこ
とができる。
この発明で用いられる評価技術は、コントロール・ポイ
ントを直接使用している。その結果、フォワード・ディ
ファレンス(forward difference)
法に基づく方法のような他の方法に比べて、セットアツ
プ・コストが低くなる。補間式はNURBS関数の数値
安定性を与え、また各ポイントは独立に演算されるので
、各スパンにわたり計算が行われる場合の累積エラーが
存在しない。したがって、サーフェス上の最終ポイント
は、最初のポイントと同様に正確であり、各スパンは次
のスパンに最大精度でマツチする。これにより、サーフ
ェスの表示は、バッチ境界でのホールや他のエラーを有
さないことが保証される。
この発明で用いられるテサレイション技術、すなわち各
サーフェスを単一のエンティティとしてシステマティッ
クにテサレイトすることは、サーフェス内のピンホール
(孤立した消失ビクセル)またはリップ(消失ピクセル
の連続)の生成を避ける。
さらに、トラパーサル・タイム・テサレイションと共に
NURBS形式を用いることは、スクリーン上で更新さ
れる1秒あたりの非常に多数のオブジェクトを生成する
。ポリゴンをファイルし得る速度に匹敵する速度で、サ
ーフェスを評価しポリゴンに変換することができるので
、変換されたポリゴンをシステム・メモリ、マス・スト
レージあるいは他のいずれかに、蓄積する必要がない。
スクリーンが更新される毎に、各サーフェスはポリゴン
に変換される。変換された各ポリゴンは、シェーディン
グ、ライティング、陰面消去が行われ、廃棄される。こ
のことは、各サーフェスを表すのに選ばれたポリゴンの
組を、サーフェスの各インスタンスの瞬時的条件に合致
するように最適化することのできる、トラパーサル・タ
イム・テサレイションを有することを可能にする。
NURBSサーフェスは、非常にコンパクトなデータ構
成を形成するので、従来のポリゴン・データに比べて、
データ転送レートがかなり改善され、システム・リソー
スを良好に利用でき、より複雑なグラフィックスをサポ
ートすることを可能にする。例えば、オブジェクトをN
URBSで表すのに必要なデータ量は、同じオブジェク
トをポリゴンで表すのに必要とされるデータ量よりも1
0〜100倍小さい。これらの利点は、NURBSデー
タをオリジナルな形式で処理することにより保持され、
またこの発明のスパン・シェアリング・データ・シーケ
ンシング・アプローチにより高められる。
E1発明の効果 以上から明らかなように、NURBSに基づいてバッチ
・サーフェスを評価しレンダリングする方法及び装置は
、高性能、良好な数値安定性、トラパーサル・タイム・
テサレイション、コストの有効性、高速性及び精度、サ
ーフェスに対する十分な制御、対話型3次元グラフィッ
クス用に既に提供されているPHIGS  PLUS標
準とのコンパチビリティ、データ冗長性の排除を含むな
どの多くの利点を有している。
【図面の簡単な説明】 第1図は、x、y、z座標空間およびパラメトリック空
間におけるNURBSサーフェスを示す図である。 第2図は、この発明の原理に従って構成されたサーフェ
ス評価及びレンダリングの構成要素及び接続を示すブロ
ック線図である。 第3図は、この発明のサーフェス評価装置の一般的な動
作を示すフローチャートである。 第4A図〜第4G図は、この発明の原理に基づくサーフ
ェス評価装置の動作を示すフローチャートである。 第4H図〜第4J図は、この発明に基づく並列浮動小数
点プロセッサ及びこれらに接続されたプロセッサの動作
を示すフローチャートである。 第5図は、Uテサレイション・パラメータを計算する動
作を示すフローチャートである。 第6図は、■テサレイション・パラメータを計算する動
作を示すフローチャートである。 第7A図及び第7B図は、この発明に用いられるテサレ
イシ褒ン・パラメータをどのように計算するかを理解す
るのに参考となる図である。 第8A図及び第8B図は、種々の動作段階でのコントロ
ール・ポイント・スタックを示す図である。 第9A図〜第9F図は、この発明に好適に用いられるC
ox−DeBoorの評価方法の適用を示す図である。 第10A図及び第10B図は、種々の動作段階でのVイ
ンタバル・スタックを示す図である。 第11図は、各並列プロセッサ内のUノット・スタック
を示す図である。 第12図は、各並列プロセッサ内の、トップ及びボトム
座標と導関数とを含むデータ・スタックを示す図である
。 第13図は、この発明の原理に基づき、U及びV座標に
沿ったテサレイションを示すパラメトリック・サーフェ
スの図である。 10・・・・・サーフェス評価及びレンダリング装置 12・・・・・システム・メモリ 14・・・・・グラフィックス・コントロール・プロセ
ッサ 15・・・・・ローカル・メモリ

Claims (20)

    【特許請求の範囲】
  1. (1)パラメトリック・サーフェスを表すNURBSデ
    ータを、後で行うコンピュータ・グラフィックス・ディ
    スプレイ・システムのスクリーン上でのレンダリングの
    ためのポリゴンの頂点のジオメトリック座標と関連サー
    フェス法線ベクトルとに変換する方法であり、サーフェ
    スは、Nuをu座標方向における次元、kuをu座標方
    向における階数としたとき、Nu−ku+1個の連続す
    るuスパン分uパラメトリック座標方向に延在する第1
    のエッジと、Nvをu座標方向に直交するv座標方向に
    おける次元、kvをv座標方向における階数としたとき
    、Nv−kv+1個の連続するvスパン分vパラメトリ
    ック座標方向に延在する第2のエッジとを有し、サーフ
    ェスの全体形状が、コントロール・ポイントのNv行×
    Nu列マトリクスにより規定される、NURBSデータ
    変換方法であって、 (a)前記マトリクスの最初の連続kv行×Nu列のコ
    ントロール・ポイントに対するビュー座標の組を、初期
    vスパンに対するすべてのコントロール・ポイントを含
    むように、kv行×Nu列のコントロール・ポイント・
    スタックに格納するステップと、 (b)ビュー座標を斉次座標に変換し、初期vパラメー
    タ・ポイント及び続くvパラメータ・ポイントに対する
    前記スタックの各列における座標の組のb−スプライン
    関数を評価して、前記初期vパラメータ・ポイント及び
    続くvパラメータ・ポイントによってv座標において区
    切られ、u座標方向にサーフェスに沿いフルに延在する
    第1ストリップに対し、それぞれ、一連のNu個のボト
    ム座標及びNu個のボトムv導関数と、一連のNu個の
    トップ座標及びNu個のトップv導関数とを得るステッ
    プと、 (c)第1ストリップの連続するuスパンのそれぞれに
    対して、連続uパラメータ・ポイントでのトップ座標、
    トップv導関数、ボトム座標、ボトムv導関数のb−ス
    プライン関数を評価して、トップ及びボトム座標のu依
    存度、トップ及びボトムu導関数、及び前記連続uパラ
    メータ・ポイントのそれぞれに対するトップ及びボトム
    v導関数のu依存度の値を得るステップと、 (d)評価ステップ(c)により得られた値を、ジオメ
    トリック座標の組と、各uパラメータ・ポイントに対す
    る前記ストリップのトップ・ポイント及びボトム・ポイ
    ントに対する頂点法線とに変換し、各uパラメータ・ポ
    イントに対する前記トップ・ポイント及びボトム・ポイ
    ントは、直後のuパラメータ・ポイントに対するトップ
    ・ポイント及びボトム・ポイントと共に、後にレンダリ
    ングされる4辺ポリゴンを定めるステップと、 (e)前記初期vスパンの後続vパラメータ・ポイント
    に対してステップ(b)〜(d)を繰り返し、サーフェ
    スの連続vスパンに対してステップ(a)〜(d)を繰
    り返すステップと、 を含むNURBSデータ変換方法。
  2. (2)ストリップのトップ座標及びトップv導関数を、
    直後のストリップに対する前記評価ステップ(c)にお
    けるボトム座標及びボトムv導関数として用いる請求項
    1記載のNURBSデータ変換方法。
  3. (3)サーフェスの初期uスパンを前記スタックのku
    個の列により定め、連続するuスパンのそれぞれを続く
    列及び直前のku−1個の列により定め、サーフェスの
    初期vスパンを前記マトリクスの最初のkv個の連続行
    により定め、連続するvスパンのそれぞれを前記マトリ
    クスの対応する続く行及び直前のkv−1個の行により
    定め、 前記スタックを、ファーストイン・ファーストアウト行
    式に動作し、 前記マトリクスの対応する連続行を、連続するvスパン
    のそれぞれに対する前記スタックのトップに格納するス
    テップをさらに含む請求項2記載のNURBSデータ変
    換方法。
  4. (4)前記マトリクスのコントロール・ポイントを、モ
    デリング座標で表し、各コントロール・ポイントは、モ
    デリング座標に関連した重みwを有する請求項3記載の
    NURBSデータ変換方法であって、 コントロール・ポイント・モデリング座標をビュー座標
    に変換するステップと、 コントロール・ポイントの変換座標に関連重みを乗算し
    て、新しい座標を各コントロール・ポイントに対する斉
    次座標の組に変換するステップと、各vスパンに対する
    vパラメトリック座標インタバルを計算し、これからv
    スパンに対する前記v座標インダバルだけ離間されてい
    る一連のvパラメータ・ポイントを生成するステップと
    、をさらに含むNURBSデータ変換方法。
  5. (5)ストリップの各uスパンに対するuパラメトリッ
    ク座標インタバルを計算し、これから前記uスパンに対
    する前記uインダバルだけ離間されている一連のuパラ
    メータ・ポイントを生成するステップと、 4個の並列浮動小数点プロセッサで前記評価ステップ(
    c)を実行し、各プロセッサは、wx、wy、wz、w
    の座標の組のうちのそれぞれ1つの座標に対するb−ス
    プライン関数を同時に評価するステップと、 をさらに含む請求項4記載のNURBSデータ変換方法
  6. (6)前記変換ステップ(d)が、 前記評価ステップ(c)で得られた値から重みwを除去
    して、uパラメータ・ポイントのそれぞれに対する前記
    ストリップのトップ・ポイント及びボトム・ポイントに
    対して、ジオメトリック座標の組とu接線とv接線とを
    生成するステップと、前記トップ・ポイント及びボトム
    ・ポイントのそれぞれに対して、u接線とv接線とのク
    ロス乗積をとることにより頂点法線を計算するステップ
    と、 前記頂点法線の大きさを計算するステップと、を含む請
    求項5記載のNURBSデータ変換方法。
  7. (7)前記評価ステップ(b)及び(c)が、Cox−
    DeBoorのプロセスを用いる請求項6記載のNUR
    BSデータ変換方法。
  8. (8)各トップ及びボトム・ポイントでの頂点法線の大
    きさを法線しきい値と比較し、前記大きさが前記しきい
    値より小さい場合には、そのポイントでの頂点法線ベク
    トルを、隣接ポイントでの法線ベクトルで置き換えるス
    テップをさらに含む請求項7記載のNURBSデータ変
    換方法。
  9. (9)各vスパン内の各uスパンのビジビリティを決定
    するステップをさらに含む請求項8記載のNURBSデ
    ータ変換方法。
  10. (10)現在の3次元ビューイング・ウィンドウに対し
    て前記ステップ(d)の各ポリゴンをクリッピングする
    ステップと、 クリップされたエッジに沿って頂点法線を補間するステ
    ップと、 補間された頂点法線を、後で行うレンダリングのための
    単位ベクトルに変換するステップと、をさらに含む請求
    項9記載のNURBSデータ変換方法。
  11. (11)トリムされていないパラメトリック・サーフェ
    スを表すNURBSデータを、後で行うコンピュータ・
    グラフィックス・ディスプレイ・システムのスクリーン
    上でのレンダリングのためのポリゴンの頂点のジオメト
    リック座標と関連サーフェス法線ベクトルとに変換する
    方法であり、サーフェスは、Nuをu座標方向における
    次元、kuをu座標方向における階数としたとき、Nu
    −ku+1個の連続するuスパン分uパラメトリック座
    標方向に延在する第1のエッジと、Nvをu座標方向に
    直交するv座標方向における次元、kvをv座標方向に
    おける階数としたとき、Nv−kv+1個の連続するv
    スパン分vパラメトリック座標方向に延在する第2のエ
    ッジとを有し、サーフェスの全体形状が、コントロール
    ・ポイントのNu行×Nu列マトリクスにより規定され
    る、NURBSデータ変換方法であって、 サーフェスを連続する平行なストリップにテサレイトす
    るステップを含み、各ストリップは、ボトムvパラメー
    タ値に位置するボトム・エッジ及びトップvパラメータ
    値に位置するトップ・エッジを有し、これらエッジは、
    サーフェスを完全に横切りu座標方向に延在し、ストリ
    ップのトップ・エッジは直後のストリップのボトム・エ
    ッジに一致し、各vスパンは多数のこのようなストリッ
    プを有し、 連続するuパラメータ値で各ストリップの各uスパンを
    テサレイトして、ストリップのトップ・エッジ上の一方
    のポイントとボトム・エッジ上の他方のポイントとから
    成り、前記uパラメータ値の各々と関連する1対のポイ
    ントを定めるステップと、 b−スプライン評価によって、各ポイント対の各ポイン
    トに対するジオメトリック座標及びサーフェス法線ベク
    トルを決定し、ストリップの各ポイント対及びストリッ
    プの直後のポイント対が、後で行うレンダリングのため
    のポリゴンの頂点を定めるステップと、 を含むNURBSデータ変換方法。
  12. (12)ジオメトリック座標及び表面法線ベクトルを決
    定するステップを、サーフェスの1つのエッジに一致す
    るボトム・エッジを有する最初のストリップに沿った連
    続するuパラメータ値で、次に、連続するストリップの
    それぞれのuパラメータ・ポイントで実行し、 各vスパンに対するvパラメータ・インタバルを決定し
    、これにより前記vパラメータ・インタバルで離間され
    ている一連のvパラメータ値を生成するステップと、 各ストリップの各uスパンに対するuパラメータ・イン
    タバルを決定し、これにより前記uパラメータ・インタ
    バルで離間されている一連のuパラメータ値を生成する
    ステップと、 をさらに含む請求項11記載のNURBSデータ変換方
    法。
  13. (13)サーフェスの全体形状が、コントロール・ポイ
    ントのNu行×Nu列マトリクスによって定められる請
    求項12記載のNURBSデータ変換方法であって、 ジオメトリック座標及びサーフェス法線ベクトルの決定
    ステップが、 ストリップのボトムvパラメータ値で、前記マトリクス
    のkv行の各列におけるコントロール・ポイントについ
    てのb−スプライン関数を評価することによって、特定
    vスパンのストリップのボトム・エッジに対する一連の
    ボトム座標及びボトムv導関数を決定するステップを含
    み、前記kv行は前記特定vスパンに関連しており、 ストリップのトップvパラメータ値で、前記特定のvス
    パンに関連した前記kv行の各列におけるコントロール
    ・ポイントについてのb−スプライン関数を評価するこ
    とによって、前記ストリップのトップ・エッジに対する
    一連のトップ座標及びトップv導関数を決定するステッ
    プと、 ストリップの連続するuスパンのそれぞれに対する連続
    するuパラメータ値で、トップ座標、トップv導関数、
    ボトム座標、ボトムv導関数のb−スプライン関数を評
    価して、トップ及びボトム座標のu依存度、トップ及び
    ボトムu導関数、及び前記連続するuパラメータ値のそ
    れぞれに対するトップ及びボトムv導関数のu依存度の
    値を得るステップと、前記評価ステップにより得られた
    値を、各uパラメータ値に対するストリップのトップ・
    ポイント及びボトム・ポイントに対するジオメトリック
    座標の組及び頂点法線に変換するステップと、を含むN
    URBSデータ変換方法。
  14. (14)パラメトリック・サーフェスを表すNURBS
    データを、後で行うコンピュータ・グラフィックス・デ
    ィスプレイ・システムのスクリーン上でのレンダリング
    のためのポリゴンの頂点のジオメトリック座標と関連サ
    ーフェス法線ベクトルとに変換する装置であり、サーフ
    ェスは、Nuをu座標方向における次元、kuをu座標
    方向における階数としたとき、Nu−ku+1個の連続
    するuスパン分uパラメトリック座標方向に延在する第
    1のエッジと、Nvをu座標方向に直交するv座標方向
    における次元、kvをv座標方向における階数としたと
    き、Nv−kv+1個の連続するvスパン分vパラメト
    リック座標方向に延在する第2のエッジとを有し、サー
    フェスの全体形状が、コントロール・ポイントのNv行
    ×Nu列マトリクスにより規定される、NURBSデー
    タ変換装置であって、レンダリングされるパラメトリッ
    ク・サーフェスを表し、前記マトリクスの各制御ポイン
    トに対するモデリング座標及び関連重みwを含むNUR
    BSデータを格納する第1のメモリ手段と、コントロー
    ル・ポイント・モデリング座標をビュー座標に変換し、
    変換座標を斉次座標に変換し、連続するvパラメータ値
    で、前記斉次座標のb−スプライン関数を評価して、現
    在のvパラメータ値に対するトップ座標及びトップv導
    関数と、直前のvパラメータ値に対するボトム座標及び
    ボトム導関数を得るグラフィックス・コントロール・プ
    ロセッサ手段と、 前記グラフィックス・コントロール・プロセッサ手段か
    らデータ及びコマンドを受け取り、連続するuパラメー
    タ値で、座標毎に、トップ及びボトム座標とトップ及び
    ボトムv座標とのb−スプライン関数を同時に評価して
    、トップ及びボトム座標のu依存度、トップ及びボトム
    u導関数、前記連続するuパラメータ値のそれぞれに対
    するトップv導関数のトップ及びボトムu依存度の値を
    得る複数の並列浮動小数点プロセッサと、 前記複数の並列浮動小数点プロセッサによって、得られ
    た値を受け取り、これら値を、ジオメトリック座標の組
    と、レンダリングされるポイントの頂点に対する頂点法
    線とに変換する他の浮動小数点プロセッサと、 を有するNURBSデータ変換装置。
  15. (15)前記グラフィックス・コントロール・プロセッ
    サ手段と、前記複数の浮動小数点プロセッサと、前記他
    の浮動小数点・プロセッサとが、パイプライン処理的に
    動作する請求項14記載のNURBSデータ変換装置。
  16. (16)前記複数の並列浮動小数点・プロセッサは、そ
    れぞれが前記各uパラメータ値に対する重みを表す出力
    を与える4個のプロセッサを有し、前記他の浮動小数点
    プロセッサは、前記複数の並列浮動小数点・プロセッサ
    のうちの1つのプロセッサの出力の逆数を、他のプロセ
    ッサの出力に乗算する、 請求項15記載のNURBSデータ変換装置。
  17. (17)前記並列浮動小数点プロセッサ及びグラフィッ
    クス・コントロール・プロセッサ手段は、評価のために
    Cox−DeBoorのプロセスを用い、前記複数の浮
    動小数点プロセッサの出力を、前記他の浮動小数点プロ
    セッサに連続的に与える請求項16記載のNURBSデ
    ータ変換装置。
  18. (18)前記グラフィックス・コントロール・プロセッ
    サ手段に関連し、vスパンを定めるマトリクスのコント
    ロール・ポイントにkv行を収容するkv行×Nu列を
    有するFIFOコントロール・ポイント・スタックをさ
    らに有し、 前記グラフィックス・コントロール・プロセッサ手段は
    、前記マトリクスの続く行のそれぞれを、サーフェスの
    続くvスパンのそれぞれを定める前記スタックを頂部に
    ロードする請求項17記載のNURBSデータ変換装置
  19. (19)前記グラフィックス・コントロール・プロセッ
    サ手段は、 各vスパンに対するvパラメトリック座標インタバルを
    決定し、これらから前記vインタバルにより離間される
    一連の連続vパラメータ値を生成し、 各uスパンに対するuパラメトリック座標インタバルを
    決定し、前記uインタバルにより離間される一連の連続
    uパラメータ値を生成する、請求項18記載のNURB
    Sデータ変換装置。
  20. (20)前記他の浮動プロセッサの出力に直列に接続さ
    れ、パイプライン処理的に動作するクリッピング・プロ
    セッサ及びフレーム・バッファをさらに有する請求項1
    9記載のNURBSデータ変換装置。
JP2239185A 1989-10-24 1990-09-11 Nurbsデータ変換方法及び装置 Expired - Lifetime JPH0776991B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42638689A 1989-10-24 1989-10-24
US426,386 1989-10-24

Publications (2)

Publication Number Publication Date
JPH03201073A true JPH03201073A (ja) 1991-09-02
JPH0776991B2 JPH0776991B2 (ja) 1995-08-16

Family

ID=23690587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2239185A Expired - Lifetime JPH0776991B2 (ja) 1989-10-24 1990-09-11 Nurbsデータ変換方法及び装置

Country Status (3)

Country Link
US (1) US5278948A (ja)
EP (1) EP0425177A3 (ja)
JP (1) JPH0776991B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7212205B2 (en) 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5965079A (en) 1995-04-25 1999-10-12 3D Systems, Inc. Method and apparatus for making a three-dimensional object by stereolithography
EP0488563A3 (en) * 1990-11-30 1993-11-03 Ibm Method and apparatus for rendering trimmed parametric surfaces
JP3137245B2 (ja) * 1991-10-30 2001-02-19 ソニー株式会社 自由曲線作成方法及び自由曲面作成方法
EP0543607B1 (en) * 1991-11-21 2000-05-17 Sony Corporation Image processing system
US5422990A (en) * 1992-04-29 1995-06-06 Canon Kabushiki Kaisha Bezier spline to quadratic polynomial fragment conversion
US5483627A (en) * 1992-04-29 1996-01-09 Canon Kabushiki Kaisha Preprocessing pipeline for real-time object based graphics systems
US5377320A (en) * 1992-09-30 1994-12-27 Sun Microsystems, Inc. Method and apparatus for the rendering of trimmed nurb surfaces
GB9223375D0 (en) * 1992-11-06 1992-12-23 Canon Res Ct Europe Ltd Processing image data
GB9223315D0 (en) * 1992-11-06 1992-12-23 Canon Res Ct Europe Ltd Processing image data
US5428718A (en) * 1993-01-22 1995-06-27 Taligent, Inc. Tessellation system
JPH09500994A (ja) * 1993-07-27 1997-01-28 タリジェント インコーポレイテッド オブジェクト指向レンダリング・システム
US5544291A (en) * 1993-11-10 1996-08-06 Adobe Systems, Inc. Resolution-independent method for displaying a three dimensional model in two-dimensional display space
JPH07282117A (ja) * 1994-04-08 1995-10-27 Ricoh Co Ltd 自由曲面生成方法及び自由曲面形状の制御方法
US5596686A (en) 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
ATE209101T1 (de) * 1994-04-25 2001-12-15 3D Systems Inc Fortschrittliche bautechniken in stereolithografie
WO1997005575A1 (en) * 1995-07-26 1997-02-13 Raycer, Incorporated Method and apparatus for span sorting rendering system
ES2129357B1 (es) * 1997-03-24 2000-02-01 Univ Valladolid Sistema automatico para la ingenieria inversa en entornos cad y la evaluacion objetiva del color.
US5995109A (en) * 1997-04-08 1999-11-30 Lsi Logic Corporation Method for rendering high order rational surface patches
US6906718B1 (en) * 1997-04-25 2005-06-14 Microsoft Corporation Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics
US6377865B1 (en) 1998-02-11 2002-04-23 Raindrop Geomagic, Inc. Methods of generating three-dimensional digital models of objects by wrapping point cloud data points
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
WO2000011607A1 (en) 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US6996505B1 (en) 2000-06-21 2006-02-07 Raindrop Geomagic, Inc. Methods, apparatus and computer program products for automatically generating nurbs models of triangulated surfaces using homeomorphisms
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6980218B1 (en) * 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
CA2509626A1 (en) 2001-12-14 2003-06-26 Sgdl Systemes Inc. Method and apparatus for generating m-degree forms in a n-dimension space
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
JP4193979B2 (ja) * 2003-03-17 2008-12-10 任天堂株式会社 シャドウボリューム生成プログラム及びゲーム装置
US7489419B2 (en) 2004-06-15 2009-02-10 Infoprint Solutions Company, Llc Method and system for specifying halftone spot shapes
US7599044B2 (en) 2005-06-23 2009-10-06 Apple Inc. Method and apparatus for remotely detecting presence
US7242169B2 (en) * 2005-03-01 2007-07-10 Apple Inc. Method and apparatus for voltage compensation for parasitic impedance
JP4255449B2 (ja) * 2005-03-01 2009-04-15 株式会社ソニー・コンピュータエンタテインメント 描画処理装置、テクスチャ処理装置、およびテセレーション方法
US9298311B2 (en) * 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7577930B2 (en) 2005-06-23 2009-08-18 Apple Inc. Method and apparatus for analyzing integrated circuit operations
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
US7598711B2 (en) * 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
JP4886527B2 (ja) * 2007-01-17 2012-02-29 本田技研工業株式会社 金型モデルデータの修正方法
US9042634B2 (en) * 2013-01-15 2015-05-26 General Electric Company Method system and computer product for non-destructive object analysis
AU2013267004A1 (en) * 2013-12-04 2015-06-18 Canon Kabushiki Kaisha Method, apparatus and system for tessellating a parametric patch
US11043028B2 (en) * 2018-11-02 2021-06-22 Nvidia Corporation Reducing level of detail of a polygon mesh to decrease a complexity of rendered geometry within a scene

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1260638A (en) * 1985-02-26 1989-09-26 Tetsuzo Kuragano Method of displaying image
US4646251A (en) * 1985-10-03 1987-02-24 Evans & Sutherland Computer Corporation Computer graphics, parametric patch parallel subdivision processor
US4930092A (en) * 1987-01-20 1990-05-29 Auto-Trol Technology Corporation Polygon display apparatus and method
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
US4855935A (en) * 1987-05-08 1989-08-08 Sun Microsystems, Inc. Method and apparatus for rendering vectors using bresenham parameters
US4912659A (en) * 1987-10-30 1990-03-27 International Business Machines Corporation Parallel surface processing system for graphics display
US5038291A (en) * 1989-04-03 1991-08-06 General Electric Company Computerized ply pattern generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7212205B2 (en) 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method

Also Published As

Publication number Publication date
JPH0776991B2 (ja) 1995-08-16
US5278948A (en) 1994-01-11
EP0425177A2 (en) 1991-05-02
EP0425177A3 (en) 1992-09-30

Similar Documents

Publication Publication Date Title
JPH03201073A (ja) Nurbsデータ変換方法及び装置
US5317682A (en) Parametric curve evaluation method and apparatus for a computer graphics display system
US7903112B2 (en) Drawing processing apparatus, texture processing apparatus, and tessellation method
EP0366463B1 (en) Method of shading a graphics image
US6906718B1 (en) Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics
US7924278B2 (en) Real-time GPU rendering of piecewise algebraic surfaces
EP0314335A2 (en) A parallel surface processing system for graphics display
US20060050071A1 (en) Interface and method of interfacing between a parametric modelling unit and a polygon based rendering system
EP0319787A2 (en) Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display
US20040075655A1 (en) 3D computer graphics processing apparatus and method
WO2000002165A1 (fr) Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees
JPH07120433B2 (ja) トリミングされたパラメトリック面のレンダリング方法及び装置
US5666472A (en) Image processing apparatus and method for generating polygons for use in rendering an object
EP0596667B1 (en) Processing image data
Tsingos et al. Implicit surfaces for semi-automatic medical organ reconstruction
US5109481A (en) Quadratic interpolation for shaded image generation
Ni et al. Efficient substitutes for subdivision surfaces
US7280108B2 (en) Bicubic surface rendering
JPH1069549A (ja) 画像処理方法
JP2005149245A (ja) Cadシステム、曲面解析装置、曲面再生装置、その方法及びそのプログラム
JPH0766451B2 (ja) コンピュータ・グラフィック装置
JP3511301B2 (ja) 曲面データ生成方法
JP2001084395A (ja) 3次元データの合成方法及び装置
JP2974648B2 (ja) 3次元データの処理方法及び処理装置、並びに3次元データの処理方法のプログラムを記録した記録媒体
JP2000040163A (ja) 対象物の表面のスム―ジング方法