JPH04287292A - トリミングされたパラメトリック面のレンダリング方法及び装置 - Google Patents

トリミングされたパラメトリック面のレンダリング方法及び装置

Info

Publication number
JPH04287292A
JPH04287292A JP3331628A JP33162891A JPH04287292A JP H04287292 A JPH04287292 A JP H04287292A JP 3331628 A JP3331628 A JP 3331628A JP 33162891 A JP33162891 A JP 33162891A JP H04287292 A JPH04287292 A JP H04287292A
Authority
JP
Japan
Prior art keywords
polygon
rectangle
vertex
polyline
data
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
JP3331628A
Other languages
English (en)
Other versions
JPH07120433B2 (ja
Inventor
Nader Gharachorloo
ネーガ・ガーラチョーロー
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 JPH04287292A publication Critical patent/JPH04287292A/ja
Publication of JPH07120433B2 publication Critical patent/JPH07120433B2/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、高性能グラフィクス
・ワークステーション等のグラフィクス・システムで、
トリミングされたパラメトリック面、特にトリミングさ
れたNURBS面をレンダリングする方法及び装置に関
する。
【0002】
【従来の技術】グラフィクス・エンティティ(プリミテ
ィブ要素または単にプリミティブともいう)は、線、曲
線、ポリゴン(多角形)、曲面等の2次元(2D)及び
3次元(3D)要素から成る。これらの要素は普通、基
本パラメータ(線の端点、円の中心と半径等)を効率よ
くコード化する形式で格納されるが、連続したピクセル
(PEL)が、表現される要素に合うように照明される
ラスタ方式ディスプレイに直接表現できるものではない
。グラフィクス・エンティティを“レンダリング”する
とは、要素をそのハイレベル形式から、最終的にピクセ
ル・データにまで変換することである。ピクセル・デー
タは、表示された各ピクセルの位置を有するフレーム・
バッファに格納される。
【0003】関連特許出願(出願番号平2−23918
5)に述べられているように、NURBS(Non−U
niform Rational B−Spline)
表面と呼ばれるグラフィック・エンティティの1タイプ
は、2Dパラメトリック座標空間(U、V)から要素が
実際に見られるジオメトリック座標空間(X、Y、Z)
へのマッピングを細かく定義したものである。このよう
なマッピングの例として、緯線をU、経線をVとした球
面があげられる。但し、NURBS表現は、これよりも
、球面、柱面、平面等に分解できない面(航空機の翼、
胴体等)に用いられるのが普通である。
【0004】先の出願書類に述べられているとおり、U
Vパラメトリック空間は、レンダリングを容易にするた
めに、連続したU、V帯状面分(strip) または
インターバルに分割(またはテッセレート)され、イン
ターバルが交わってUVレクタングル(四角形)の2D
アレイが形成される。NURBS面は、UVレクタング
ルの頂点において、X、Y、Zジオメトリック座標及び
、その点のNURBS面に対する法線ベクトルのX、Y
、Z成分を各頂点について決定することによって評価さ
れる。 各UVレクタングルの頂点データはポリゴン・プロセサ
にセットされる。ポリゴン・プロセサは従来の方法で頂
点データを処理してポリゴンのレンダリングを行う。ポ
リゴン・プロセサは、シェーディングを決定する法線ベ
クトル・データを用いて、定義された色のエッジを生成
し、所定の(エッジの色とは異なり得る)色でポリゴン
の内側を塗りつぶしたり陰影をつけたりすることができ
る。
【0005】上記の出願書類に述べられているNURB
S面は、トリミングされていない面、すなわち大きさが
パラメトリック座標U、Vの最小値と最大値だけで定義
された面である。トリミングされたNURBS面すなわ
ちUVパラメトリック座標空間における大きさがその空
間内のトリム・カーブによって定義された面もレンダリ
ングできることが望ましい。
【発明が解決しようとする課題】
【0006】トリミングされたNURBS面をレンダリ
ングする方法(上記の出願書類に述べられている方法と
併用可能)として知られているのは、トリム・カーブを
、パラメトリック座標空間におけるトリム・カーブを近
似するトリム・ポリライン(特にトリミング領域を囲む
トリム・ポリライン)に変換することである。このトリ
ム・ポリラインによって定まるトリミング領域は、完全
なUVレクタングル、及びトリム・ポリラインによって
定まるトリミング領域と、トリミング領域の周囲に沿っ
たUVレクタングルとの交差によって成る不規則な形状
のポリゴンとで構成される。この完全なUVレクタング
ルは、普通の方法でポリゴン・プロセサによってレンダ
リングされる。一方、不規則なポリゴンはさらにレクタ
ングルに分割される。このレクタングルは、総体では元
の不規則なポリゴンに近似する。これら小さいレクタン
グルは(XYZジオメトリック座標空間における寸法は
ピクセルのそれに近似する)、ポリゴン・プロセサに送
られる。
【0007】この方法ではトリミングされたNURBS
面をレンダリングすることはできるが、小さいポリゴン
を多数生成する必要のない方法が望まれる。このような
ポリゴンの生成は、それだけでかなり時間がかかるほか
、生成されたポリゴンは、ポリゴン・プロセサからグラ
フィクス・パイプラインにまで負担をかける。
【0008】
【課題を解決するための手段】この発明は、NURBS
面等、U、Vパラメトリック座標からX、Y、Zジオメ
トリック座標へのマッピングを表わし、トリム・ポリラ
インによって定まるトリミング領域を持つ、トリミング
されたパラメトリック面をレンダリングする方法及び装
置を対象にしている。UVパラメトリック面は連続した
U、Vインターバルに分割され、U、Vインターバルが
交わってUVレクタングルが形成される。トリム・ポリ
ラインはUVレクタングルの部分集合と交わり、部分集
合の各レクタングルが、トリミング領域内に位置する少
なくとも1個のポリゴンと、トリミング領域外に位置す
る少なくとも1個のポリゴンに分割される。トリム・ポ
リラインと交わる各UVレクタングルについて、トリム
・ポリラインとUVレクタングルの交差によって形成さ
れたトリミング領域内に位置する各ポリゴンの頂点が決
定され、その頂点のデータが凹形ポリゴン・プロセサに
与えられてポリゴン・レンダリングされる。
【0009】小分割を繰り返す代わりに凹形ポリゴンを
用いれば、トリム・カーブに近い領域内の面の処理が大
幅に簡素化される。これはほとんどの場合性能向上につ
ながる。パラメトリック空間を個々のピクセルにまで分
割する必要がないからである。これは、小さいポリゴン
を多数生成する手間を省くほか、これらのポリゴンによ
って表わされる余分な頂点をすべて処理する負荷をグラ
フィクス・パイプラインから取り除くことになる。この
改良により、トリミングされた面の処理能率が3倍以上
向上するケースもある。また、凹形ポリゴンをこのよう
に利用することで、トリミングされた面のエッジを正確
に表現でき、トリミングされた面についてエッジ・ライ
ン・スタイルをサポートすることも可能になる。エッジ
が、多数の小さいポリゴンではなくベクトルによって定
義されるからである。
【0010】この発明はまた、トリム・ポリライン・デ
ータが格納されるグローバル・メモリと、グラフィクス
・プロセサに関連したローカル・メモリを持つグラフィ
クス・システムにおいて、NURBS面等のトリミング
されたパラメトリック面をレンダリングする装置及び方
法を対象としている。その場合、UVパラメトリック面
は最初に、連続した複数のVインターバルに分割される
。トリム・ポリラインと交わる各Vインターバルについ
て、グローバル・メモリに格納されたポリライン・デー
タがグラフィクス・プロセサによって読み出され、読み
出されたデータによって定義されるポリラインがクリッ
プされ、ローカル・メモリに格納されたVクリップ・デ
ータによって定義されるVクリップ・ポリラインが形成
される。そこでグラフィクス・プロセサは、ローカル・
メモリに格納されたVクリップ・ポリライン・データを
使ってVインターバルを処理する。
【0011】各Vインターバルについて、グローバル・
メモリからトリム・カーブの頂点を転送することには2
つの大きなメリットがある。第1に、ローカル・メモリ
内の限られた有効空間によってサポートできるトリム・
カーブの最大計算量が増す。先に引いたこれまでの方法
では、トリム・カーブの頂点がすべてローカル・メモリ
にコピーされる。このデータ集合がローカル・メモリに
収まりきれない場合は、面を隣接した面の集合として再
定義しなければならない。ここで述べている新しい方法
では、トリム・カーブのうち1個のVインターバル内に
位置する部分だけをローカル・メモリに格納すればよい
。このようなトリム・カーブ・データの集合が最大で、
ローカル・メモリに収まらない場合は、各Vインターバ
ル内に含まれるトリム・カーブ・データが収容されるま
で面近似品質を変えることによって、Vインターバルの
サイズを小さくすることができる。これにより、面をよ
りシンプルな小片に分割することなく複雑なトリム・カ
ーブを持つ面を処理することができる。
【0012】第2のメリットとして、この変更により、
トリム・カーブをUVレクタングルにクリップするプロ
セスを2ステップで行えるようになる。第1ステップで
は頂点がVインターバルにクリップされ、得られたクリ
ップ頂点は、トリム・カーブがV境界をまたぐところで
作られる新しい頂点とともに、ローカル・メモリに格納
される。第2ステップでは、得られたベクトルがUイン
ターバルにクリップされる。得られた頂点のXYZ座標
と法線ベクトルはグラフィクス・パイプラインに送られ
る。
【0013】
【実施例】1.概要 NURBS(Non−Uniform Rationa
l B−Spline)カーブ及び面の基本特性につい
ては、関連特許出願(出願番号平2−247673、出
願番号平2−239185)と、R. H. Bart
els、J. C. Beatty、及びB. A. 
Barskyによる“AnIntroduction 
to Splines for use in Com
puter Graphics and Geomet
ricModelling”(Morgan Kauf
man、1987)に説明されている。これら出願書類
に述べられているとおり、NURBSカーブは、1次元
(1D)パラメータ空間から2Dまたは3Dジオメトリ
ック座標空間への特殊なマッピングであり、NURBS
面は、2Dパラメータ空間から3Dジオメトリック座標
空間への特殊なマッピングである。図13では、最小、
最大UパラメータUmin、Umax、及びVパラメー
タVmin、Vmaxによって定まるUVパラメータ空
間の四角形の部分は、XYZ座標空間に存在するような
形で示している。
【0014】パラメータ空間に与えられた点(U0、V
0)は、図13に示すとおり、この空間で垂直な2つの
線U = U0、V = V0の交点にある。(U0、
V0)において線U = U0、V =V0に接するU
、V接線ベクトルUtan、Vtanは、(U0、V0
)で評価された次のベクトル式によって定義できる。
【0015】Utan  =  dr/dUUtan 
 =  dr/dV ここで、rはジオメトリック座標空間における点の変位
(X、Y、Z)である。(U0、V0)においてUta
n、Vtanに垂直な法線ベクトルNは、ベクトル積、
【0016】N  =  Utan  x  Vtan
と定義することができる。通常、パラメトリック座標空
間における点を評価する際には、点自体のX、Y、Z成
分に加えて法線ベクトルNのX、Y、Z成分が決定され
る。これらの成分が面シェーディングの制御に用いられ
るからである。
【0017】トリミングされたNURBS面は、図13
のように最小、最大U、Vパラメータによってではなく
、UVパラメータ空間に定義されたトリミング輪郭によ
って定まるNURBS面である。連続したカーブC1、
C2、C3より成るトリミング輪郭Cによって定まるト
リミングされたNURBS面Sの例を図14に示す。ト
リミングされたNURBS面は、照明や陰影づけに関す
る拡張版(PHIGS+、PHIGS−BR、PHIG
S−PLUS等)のあるPHIGS(Programm
er’s Hierarchical Interac
tive Graphics Standard)を用
いて表現することができる。
【0018】一般にトリミング輪郭の内側はトリミング
領域を定義する。トポロジが複雑なトリミング領域の場
合は複数のトリミング輪郭を使用することができる。そ
の場合に得られるトリミング領域は、要素領域の対称差
または排他的OR結合と定義される。図14Eに示すよ
うに、2つのトリミング輪郭C1、C2は、互いに素で
あるトリミング領域R1、R2を持ち、トリミング領域
が互いに素である2つの部分から成るか、または図14
Fに示すように、1つの輪郭C1のトリミング領域が別
の輪郭C2の領域R2を包含して、領域Rがドーナツ形
になることがある。
【0019】トリム・カーブC1ないしC3の各々はN
URBSカーブでもある。すなわちトリム・カーブ・パ
ラメータTの値とUVパラメータ空間内の点の特殊なマ
ッピングでもある。図14Bでは、最小パラメータ値が
tmin、最大パラメータ値がtmaxのトリム・カー
ブCは、UVパラメータ空間に存在するような形で示さ
れている。この例の場合、数量U、Vはパラメータと呼
ばれるが(最終的にはXYZ座標空間にマップされるた
め)、ここでは、トリム・カーブ・パラメータTによっ
て定まる従属変数である。
【0020】一般的に、UV空間におけるNURBSカ
ーブの特定のスパン(“スパン”の定義は後述)は、有
理パラメータ形式、
【0021】U  =  WU(T)/W(T)V  
=  WV(T)/W(T) を取る。ここでWU(T)、WV(T)、W(T)はk
t次のTの多項式である。ktはmt+1であり、ここ
でmtは上記のパラメータ式のTパラメータの最高次の
ベキである。W(T)が定数(たとえば1)であれば、
これらの式は非有理形式、
【0022】U = U(T) V = V(T) となる。ここでU(T)、V(T)はkt次のTの多項
式である。
【0023】これらU、Vのパラメータ式は、ノット(
節)、制御点と呼ばれるものによって、明示的にではな
く暗示的に定義されるのが通例である。図14A、図1
4Bでは、UVパラメータ空間におけるkt次のトリム
・カーブCは、UV空間(図示なし)のNpts個の制
御点と、大きさがNpts+ktであるTパラメータ空
間における値t(i)のノット・ベクトルによって定義
されている。ノット・ベクトルt(i)はトリム・カー
ブをNpts−kt+1個のスパンに分割する。ノット
値t(kt+i−1)はi番目のスパンの始まりでのT
パラメータの値を決定し、ノット値t(kt+i)は、
i番目のスパンの終わりでのTパラメータの値を定義す
る。カーブは、与えられたスパンに沿って、ノットと制
御点から、スパンに沿ってT値が与えられた点に対応す
るU、V値を決定することによって評価される。特に、
カーブのi番目のスパンは、kt個の制御点iからkt
+i−1にかけて、及び2kt − 2個のノット値t
(i+1)からt(2kt+i−1)にかけて評価され
る。これは関連特許出願(出願番号平2−247673
)に述べられているCox−DeBoorプロシジャを
用いて行うのがよい。
【0024】図14Bに示したトリム・カーブCの最初
のスパンは、パラメータ値T=t(kt)とT=t(k
t+1)によって、第2のスパンは、値T=t(kt+
1)とT=t(kt + 2)によって定まり、最後の
スパンは値T=t(Npts)とT=t(Npts+1
)によって定まる。第1スパンに沿った点は、制御点1
ないしktとノット値t(2)ないしt(2kt−1)
を用いて評価され、最後のスパンに沿った点は制御点N
pts−kt+1ないしNpts及びノット値t(Np
ts−kt+2)ないしt(Npts+kt−1)を用
いて評価される。ここでは便宜上、ノット値t(1)と
t(Npts+kt)が定義されているが、評価プロシ
ジャでは全く用いられないという点に注意されたい。ま
た、ノット値t(2)ないしt(kt−1)及びt(N
pts+2)ないしt(Npts+kt−1)は、トリ
ム・カーブ・スパンの定義には用いられず、トリム・カ
ーブの評価にのみ用いられる。
【0025】同様にして、XYZ空間におけるNURB
S面のある特定のUVパッチ(後述)は有理パラメータ
形式が、
【0026】X = WX(U、V)/W(U、V)Y
 = WY(U、V)/W(U、V)Z = WZ(U
、V)/W(U、V)となる。ここでWX(U、V)、
WY(U、V)、WZ(U、V)、及びW(U、V)は
、U次数kuとV次数kvのU、Vの多項式である。U
次数kuはmu+1であり、muはパラメトリック式の
Uパラメータの最高次のベキ、同様にV次数kvはmv
+1であり、mvはパラメトリック式のVパラメータの
最高次のベキである。 W(T)が定数(たとえば1)であれば、これらの式は
非有利形式、
【0027】X = X(U、V) Y = Y(U、V) Z = Z(U、V) となる。ここでX(U、V)、Y(U、V)、Z(U、
V)は、U次数kuとV次数kvのU、Vの多項式であ
る。
【0028】これらの式は、NURBSカーブと同じよ
うに、ノットと制御点に関して明示的にではなく暗示的
に定義される。図3Aと図15では、U次数kuとV次
数kvのNURBS面は、Nu行、Nv列、Uノット・
ベクトルUknot(i)の大きさがNu+ku、Vノ
ット・ベクトルVknot(j)の大きさがNv+kv
のXYZ空間における制御点のマトリクス(図3A)に
よって定義されている。Uノット・ベクトルUknot
(i)はUV領域をNu−ku+1個のUスパンに分割
し、ノット値Uknot(ku+i−1)がi番目のU
スパンの始まりを、ノット値Uknot(ku+i)が
i番目のUスパンの終わりを定義する。同様に、Vノッ
ト・ベクトルVknot(j)は、UV領域をNv−k
v+1個のVスパンに分割し、ノット値Vknot(k
v+j−1)は、j番目のVスパンの始まりを、ノット
値Vknot(kv+j)は、j番目のVスパンの終わ
りを定義する。このようにして定義されたUスパンとV
スパンが交わってUVパッチが形成される。各UVパッ
チはUスパンとVスパンのインタセクションである。そ
こで図15では、UV領域の左下のUVパッチは、上下
のUパラメータ値U=Uknot(ku)とU=Ukn
ot(ku+1)、及びVパラメータ値V=Vknot
(kv)とV=Vknot(kv+1)によって定まる
【0029】UV点は、その点に対応するXYZ座標(
及び任意に法線ベクトルのX、Y、Z成分)を決定する
ことによって評価される。i番目のUスパンとj番目の
Vスパンの交差によって形成されるij番目のパッチ内
の点は、ku行iないしku+i−1、kv列jないし
kv+j−1、及び2ku−2個のUノット値Ukno
t(i+1)ないしUknot(2ku+i−2)、2
kv−2個のVノット値Vknot(j+1)ないしV
knot(2kv+j−2)より成る制御点マトリクス
(図3A)の一部から評価される。これは関連特許出願
(出願番号平2−239185)に述べられているCo
x−DeBoorプロシジャを用いて行うのが望ましい
。図15の左下のUVパッチ内の点は、ノット値Ukn
ot(2)ないしUknot(2ku−1)、Vkno
t(2)ないしVknot(2kv−1)を用いて、制
御点マトリクスの行1ないしkuと列1ないしkvの交
点からの制御点を使って評価される。他のUVパッチも
、当該パッチに適したノット値とマトリクスの一部を用
いて同様に評価される。
【0030】NURBSカーブとNURBS面は、パラ
メータ値の連続関数と定義される。XYZ空間のUV 
 NURBS面は、UVパラメータ空間とXYZターゲ
ット座標空間の連続マッピングであり、同様に、UVパ
ラメータ空間におけるトリミングされたNURBSカー
ブは、トリム・カーブ・パラメータTとUBターゲット
座標空間の連続マッピングである。こうした表現をコン
ピュータ・グラフィクス・システムで処理しやすくする
ために、カーブと面がテッセレートされる。すなわち連
続した面分または線分の有限集合に分割される。そこで
図14Cでは、T0から始まりT4で終わる連続したト
リム・カーブの区間Cは、理想的な連続カーブCに近似
する、各々線形の連続した複数のインターバルまたはセ
グメントT0−T1、T1−T2、T2−T3、及びT
3−T4より成るポリラインPにテッセレートされる。
【0031】この方法を使うと、連続したトリム・カー
ブ(各々スパンより成る)より成るトリミング輪郭をト
リム・ポリゴンによって近似することができる。複数の
ポリゴンを使うことによって、トポロジの複雑なトリミ
ング領域を上述のように定義することができる。従来の
ように、重なり合ったポリゴンのデータを受け取るポリ
ゴン・プロセサは、滑らかなカーブについて図14Eに
示したように、ポリゴンを排他的ORで連結する。
【0032】滑らかなパラメトリック・カーブCをポリ
ラインPに変換する方法はそのままこの発明に含まれる
ものではないが、そのようなテッセレーションを実現す
る上で望ましい方法については、関連特許出願(出願番
号平2−247673)を参照されたい。同出願書類に
あるように、NURBSカーブは、スパンごとにインタ
ーバルにテッセレートされる。各スパンは等しいT個の
インターバルに分割される。インターバルの個数は、理
想的なカーブCとポリラインPの弦偏差d(図14C)
が所定の境界内に入るように選択される。
【0033】同様に、図15、図16に示したとおり、
各U、VスパンはUまたはVの等しい複数のインターバ
ルに分割(またはテッセレート)される。インターバル
の大きさは、ここでも、理想的な面と近似面の弦偏差が
境界内に入るように選択される。NURBS面に適した
テッセレーション・プロシジャについては関連特許出願
(出願番号平2−239185)を参照されたい。
【0034】図14Dは、頂点P0ないしP8(P8=
P0)を持つ閉じたポリラインP(頂点P1ないしP8
を持つポリゴンに等しい)より成るトリム・カーブ輪郭
によって、UV空間におけるトリミング領域Rがどのよ
うに定義されるかを示す。U、Vスパンがテッセレート
されたU、Vインターバルによって定義されるUVレク
タングルについてみると、トリミング領域Rはポリゴン
Pg1ないしPg13に分割することができる。各ポリ
ゴンは、トリミング領域R内のUVレクタングルの部分
より成る。この例の場合、トリミング領域は、UVレク
タングル全体より成る内側の1個のポリゴンPg8と周
囲のポリゴンPg1ないしPg7、Pg9ないしPg1
3より成り、周囲ポリゴンは各々、UVレンダリングの
一部だけから成り、凹形にもなる(Pg5等)。
【0035】トリミング領域Rによって表わされるトリ
ミングされたNURBS面の部分は、この発明に従って
、(後述するように)、トリミング領域Rを成すポリゴ
ンPg1ないしPg13の各々について、ポリゴンの頂
点を決定することによってレンダリングされる。(これ
らは、トリミング領域の周囲の部分を除きUVレクタン
グルの角になるのが普通である。)ポリゴンの頂点が決
定され、必要な頂点データが生成されると、ポリゴン頂
点のデータは凹形ポリゴン・プロセサに送られ、ポリゴ
ンがレンダリングされる。このデータは、通常は各頂点
のX、Y、Z座標、及び頂点におけるUV面に対する法
線ベクトルのX、Y、Z成分より成る。従来のように、
X、Y値により、頂点が表示される画面上の位置が決定
される。Z値は深さ情報を与える。これはクリッピング
や、2つの要素のどちらが他方に重なり、どちらを表示
すべきかを判定するのに使用できる。法線ベクトルの成
分はシェーディングを決定するのに使用できる。当該頂
点がUVレクタングルの頂点でもある場合は、これらの
値は、上記のCox−DeBoorプロシジャまたはこ
れと同様の手続きによって評価される。一方、頂点がU
Vレクタングルのエッジに沿っているかまたは内側にあ
る場合は(図14E参照)、その頂点のデータは、後述
するように線形補間または双線形補間によって、UVレ
ンダリングの角の頂点データから計算される。
【0036】2.レンダリング装置 a.概要 本発明を適用するこの装置の主な要素を図1に示した。 以下に各要素を示す。 a.グローバル・メモリ102 b.グラフィクス制御プロセサ(GCP)104c.描
画/シェーディング・プロセサ106d.ラスタ・グラ
フィクスディスプレイ108e.システム・バス110 f.2次バス112
【0037】グローバル・メモリ102は、複数のグラ
フィック・エンティティ及び、これらのエンティティを
ディスプレイ画面のどこにどのように表示するかを指定
するのに必要な属性(色等)、変換マトリクス等の情報
を格納するのに充分なランダム・アクセス・メモリ(R
AM)より成る。この情報は、適切な通信機構(図示な
し)を用い、汎用ホスト・コンピュータ(図示なし)に
よって生成される。
【0038】描画/シェーディング・プロセサ106は
、ラスタ・グラフィクス・ディスプレイ108の画面を
リフレッシュするのに必要なフレーム・バッファを備え
る。この構成部分はまた、画面上の対になった点をつな
ぐ直線を描画し、画面上の点をつなぐ直線によって定ま
るポリゴン領域を塗りつぶすためのロジックを備える。 この他、隠面消去用のZバッファ、頂点の色の間のポリ
ゴンの内側の色を補間するためのロジック、及び標準的
な照明モデルを基にポリゴンの頂点の色を計算する機構
をこの構成部分に追加することもできる。高性能レンダ
リングをサポートするためには、複数の専用マイクロプ
ロセサをこの構成部分に加えればよい。これらの機能を
実現する方法はこの発明には含まれない。
【0039】グラフィクス制御プロセサ104は、グロ
ーバル・メモリ103に格納された個々のグラフィック
・エンティティを選択し、描画/シェーディング・プロ
セサ106によってサポートされる形式に変換すること
ができる。トリミングされたNURBS面の場合、グラ
フィクス制御プロセサ104は、トリミングされたNU
RBS面のデータを基に、頂点が画面座標に指定された
一連のポリゴンを生成する。このプロセスの詳細につい
ては後述する。
【0040】システム・バス110は、グローバル・メ
モリ102、グラフィクス制御プロセサ104、及び描
画/シェーディング・プロセサ106の間に高速データ
・パスを提供する。この発明のシステム・バス110の
主な目的は、グローバル・メモリ102とグラフィクス
制御プロセサ104の間のデータの交換を可能にするこ
とにある。描画/シェーディング・プロセサ106も、
システム・バス110を通してグローバル・メモリ10
2及びグラフィクス制御プロセサ104と通信すること
ができるが、このパスはトリミングされたNURBS面
のレンダリングには用いられない。2次バス112は、
グラフィクス制御プロセサ104から描画/シェーディ
ング・プロセサ106への代わりのデータ・パスを提供
する。これによりグラフィクス制御プロセサ104は、
グラフィクス制御プロセサ104とグローバル・メモリ
102の通信を妨げることなくデータを描画/シェーデ
ィング・プロセサ106に送ることができる。
【0041】b.グラフィクス制御プロセサグラフィク
ス制御プロセサ104の主な要素は図2に示した。以下
に各要素をあげる。 a.演算ロジック・ユニット(ALU)200b.AL
U用コード・メモリ202 c.ALU用データ・メモリ204 d.バス・インタフェース・ユニット(BIU)206
e.グラフィクス・パイプライン208
【0042】A
LU200は、整数処理ユニット(IPU)、浮動小数
点処理ユニット(FPU)、及びシーケンサより成る。 ALU200は、シーケンサを通して、分岐、条件つき
分岐、サブルーチン・コールを含めて、コード・メモリ
202に格納された命令のシーケンスを処理することが
できる。IPUは、一連の整数レジスタ内に格納された
整数値に対して基本的な整数演算(加算、減算、乘算、
シフト、抽出、併合、保管)を行う。 FPUは、一連の浮動小数点レジスタ内に格納された浮
動小数点値に対して基本的な浮動小数点演算(加算、減
算、乘算等)を行う。
【0043】コード・メモリ202には、アドレス空間
内に命令を入れるスペースがあり、データ・メモリ(ロ
ーカル・メモリともいう)204はランダム・アクセス
・ストレージを提供する。トリミングされたNURBS
面の処理中のALU200の動作については後述する。
【0044】BIU206は、ALU200とシステム
・バス110の間のデータ転送に必要な通信プロトコル
をすべて処理する。このユニット206はまた、システ
ム・バス110からALU200に入るデータのバッフ
ァともなる。
【0045】グラフィクス・パイプライン208は、ベ
クトルやポリゴンの変換、選出、クリッピング、マッピ
ングのほか、トリミングされた面のレンダリングをサポ
ートする特殊機能を処理する。変換、選出、クリッピン
グ、マッピングの各機能は、標準的なグラフィクス機能
であり、この発明では触れない。トリミングされた面を
サポートする特殊機能については後述する。
【0046】c.グラフィクス・パイプライン図2Aで
、グラフィクス・パイプライン208は複数の浮動小数
点プロセサより成る。浮動小数点プロセサは、頂点の座
標と法線ベクトル、クリップ・ベクトル、及びポリゴン
を3Dレクタングル・ウィンドウに変換し、クリップさ
れた座標をデバイス座標にマップし、得られたデータを
2次バス112を通して描画/シェーディング・プロセ
サ106に送る。グラフィクス・パイプライン208は
、4列1組の浮動小数点プロセサ(FPU)210ない
し216(図2AのFPU−1ないしFPU−4)を備
える。4列1組の浮動小数点プロセサは、ALU200
からコマンドとデータを受け取り、第5浮動小数点プロ
セサ218(図2AのFPU−5)へコマンドとデータ
を転送することができる。第5浮動小数点プロセサ20
8(FPU−5)は、先の4プロセサ210ないし21
6からコマンドとデータを受け取り、クリッピング/マ
ッピング・プロセサ220へコマンドとデータを転送す
る。
【0047】浮動小数点プロセサ210ないし216は
、一連の浮動小数点レジスタ内に格納された浮動小数点
値に対して基本的な浮動小数点演算(加算、減算、乘算
等)を行う。FPU210ないし218は、後述する評
価と補間のステップに用いられる。
【0048】これらの機能に加えて、FPU210ない
し216は、通常のポリゴン(必ずしもトリミングされ
た面には関係しない)の頂点座標と頂点法線を変換する
のにも用いられる。FPU218は、ポリゴンの法線ベ
クトルの方向を基にポリゴンの色を消去または変更する
のに使用することもできる。トリミングされた面の一部
としてポリゴンが生成される場合、ポリゴンの法線ベク
トルは、頂点の法線ベクトルの和によって近似すること
ができる。これにより、同じハードウェアによって、通
常のポリゴンの変換と、トリミングされた面を表わすポ
リゴンの生成の両方が行える。
【0049】クリッピング/マッピング・プロセサ22
0は、FPU218からコマンドとデータを受け取り、
2次バスを通して描画/シェーディング・プロセサ10
6にコマンドとデータを送る。プロセサ220は、上記
のポリゴンの頂点を定義するコマンドとデータを認識す
る。頂点座標のデータは、グラフィクス・ディスプレイ
画面内の四角いウィンドウの境界と、画面に垂直な座標
(Z)に関する近接限界と遠方限界によって決まる3D
容積と比較される。ポリゴンの頂点座標がどれもこの容
積内でない場合、ポリゴンは拒否され、描画/シェーデ
ィング・プロセサ106にデータやコマンドは送られな
い。いずれかの頂点の座標がこの容積内であれば、座標
は画面座標にマップされ、マップされた座標が、頂点の
色や頂点の法線ベクトルのデータとともに描画/シェー
ディング・プロセサ106に送られる。ポリゴンが部分
的にこの容積内にあれば、この容積との交差部分を表わ
すポリゴンに置き換えられる。頂点の法線ベクトルはま
た、描画/シェーディング・プロセサによって行われる
照明とシェーディングの計算に備えて正規化される。
【0050】クリッピング/マッピング・プロセサ22
0の機能は、適切なコネクティビティを持つ複数のマイ
クロプロセサによって実現することができる。これらの
機能は標準的、基礎的なグラフィクス機能とみられ、こ
の発明に固有のものではないので、ここでは詳細に触れ
ない。
【0051】グラフィクス・パイプライン208は、ト
リミングされた面のレンダリングをサポートするために
下記の機能を提供する。
【0052】1.凸形ポリゴン開始 このコマンドには一連の頂点データ・レコードが続く。 各頂点のデータは頂点の座標と法線ベクトルを含む。こ
のシーケンスの終わりは“ポリゴン終了”コマンドであ
る。
【0053】2.凹形ポリゴン開始 このコマンドには一連の頂点データ・レコードが続く。 各頂点のデータは頂点の座標と法線ベクトルを含む。こ
のシーケンスに“ポリゴン終了”コマンドまたは“ポリ
ゴン中断”コマンドが続く。
【0054】3.ポリゴン中断 このコマンドには頂点データ・レコードのシーケンスが
続く。各頂点のデータは頂点の座標と法線ベクトルを含
む。このシーケンスに“ポリゴン終了”コマンドまたは
“ポリゴン中断”コマンドが続く。このコマンドは、連
続したサブエリアを、1つのポリゴンとして処理される
ように分離するのに使用でき、先行する頂点と、最新の
“凹形ポリゴン開始”または“ポリゴン中断”のコマン
ドに続く最初の頂点との接続を意味する。
【0055】4.ポリゴン終了 このコマンドはポリゴンの終了を示す。最後の頂点に続
き、データがなく、最後の頂点と、最新の“凸形ポリゴ
ン開始”、“凹形ポリゴン開始”、または“ポリゴン中
断”のコマンドに続く最初の頂点との接続を意味する。
【0056】このほか、グラフィクス・パイプラインで
、トリミングされた面のレンダリングを行うために、変
換マトリクス、色、クリッピング境界等をロードするコ
マンドを提供することができる。これらのコマンドは本
発明に関係しないのでここでは説明を省く。
【0057】d.トリミングされたNURBS面の指定
トリミングされた面を指定するのに必要なデータを図3
にまとめた。このデータ構造は、トリミングされたNU
RBS面を、PHIGS+規格案に定義されているとお
りに指定できるようになっている。このデータ構造は次
の4つの主要部に分けられる。 1.スカラ変数(300−310) 2.ベクトル変数(320−326) 3.トリミング輪郭(312−318)4.制御点マト
リクス(328)
【0058】最初の主要部(スカラ変数)は下記の項目
を含む。
【0059】1.ヘッダ(300) これは後続のデータが、トリミングされたNURBS面
を指定することを示す“opcode”から成る。
【0060】2.ステータス・フラグ(302)後続す
るデータに表わされるNURBS面の制御点が有理形式
(x、y、z、w)で与えられるか非有理形式(x、y
、z)で与えられるかを示すステータス・ビットを含む
。このほかのビットは、NURBS面のテッセレーショ
ン・パラメータが未定義か、ワークステーションで定義
されているか、またはアプリケーションで定義されてい
るかを示すのに用いられる。
【0061】3.U次数(304) これは、後続するデータに表わされるNURBS面のU
パラメータの多項式の次数である。この値は、ここでは
符号kuで表わされる。
【0062】4.U番号(306) これは、後続するデータに与えられる制御点マトリクス
の列数である。この値は、ここでは符号Nuで表わされ
る。
【0063】5.V次数(308) これは後続するデータに表わされるNURBS面のVパ
ラメータの多項式の次数である。この値は、ここでは符
号kvで表わされる。
【0064】6.V番号(310) これは、後続するデータに与えられる制御点マトリクス
の列数である。この値は、ここでは符号Nvで表わされ
る。
【0065】トリミング輪郭を指定するデータは、トリ
ミング輪郭のデータの全長(バイト数)を示す1ワード
(312)より成り、これにトリミング輪郭のデータが
続く(314ないし318)。トリミング輪郭はまたト
リミング・ループとも呼ばれる。各トリミング輪郭また
はループのデータ(314等)を図4にまとめた。この
データは、輪郭を表わすデータに含まれるバイト数を示
す1ワード(400)より成り、これにトリム・カーブ
またはセグメントのデータ(402ないし406)が続
く。
【0066】各トリム・カーブまたはセグメントのデー
タ(402等)を図5に要約した。これは以下の要素よ
り成る。
【0067】1.トリム・カーブ長(500)これはこ
のトリム・カーブを指定するデータに含まれるバイト数
を示す。
【0068】2.境界フラグ(502)これはこのトリ
ム・カーブを、エッジの色、エッジのライン・スタイル
等の属性を割り当てるために境界として扱うかどうかを
示す。
【0069】3.トリム・カーブ・ステータス・フラグ
(504) このワードは、このトリム・カーブのデータが有理形式
(u、v、w)か非有理形式(u、v)かを示すビット
を含む。また、このトリム・カーブのテッセレーション
・データが未定義か、ワークステーションで定義されて
いるか、あるいはアプリケーションで定義されているか
を示すビットもこのワードに含まれる。
【0070】4.トリム・カーブ次数kt(506)こ
れはこのデータによって定義されるトリム・カーブの多
項式の次数を示す。
【0071】5.点数Npnts(508)これはこの
トリム・カーブのデータに含まれる制御点数を指定する
【0072】6.値tmin(510)、tmax(5
12) これらの値は、このトリム・カーブに用いられるパラメ
トリック座標tの最初と最後の値を示す。
【0073】7.開始ノット(514)これは、このト
リム・カーブのノット・ベクトルの最初のkt−1個の
ノット値を指定するkt−1個のワードより成る。
【0074】8.開始点(516) これは、制御点i=1ないしkt−1を指定する、各々
3または4ワードより成るkt−1個のデータ・レコー
ドより成る。トリム・カーブ・ステータス・フラグで示
されるように、制御点が非有理形式であれば、各レコー
ドの内容は、ノット値t(i+kt−1)と制御点(u
i、vi)を含めて3ワードである。制御点が非有理形
式であれば、各レコードは、ノット値t(i+kt−1
)と有理制御点(ui、vi、wi)を含めて4ワード
を含む。
【0075】9.スパン・リスト(518)これは制御
点i=ktないしNpntsを指定する各々4または5
ワードより成る(Npnts−kt+1)個のデータ・
レコードより成る。トリム・カーブ・ステータス・フラ
グに示されるように、制御点が非有理形式であれば、各
レコードは、ノット値t(i+kt−1)、制御点(u
i、vi)、及びテッセレーション・パラメータd(i
−kt+1)を含めて4ワードを含む。制御点が有理形
式であれば、各レコードの内容は、ノット値t(i+k
t−1)、有理制御点(ui、vi、wi)、及びテッ
セレーション・パラメータd(i−kt+1)を含めて
5ワードである。
【0076】10.終了ノット(520)これはトリム
・カーブt(Npnts+kt)の最後のノットを指定
する。
【0077】各トリム・カーブのノット・ベクトルは減
少しないパラメータ値シーケンスより成る。
【0078】グローバル・メモリ102におけるトリミ
ング輪郭のデータには4組のベクトル・データが続く。 これらは、Uノット・ベクトル(320)、Uテッセレ
ーション・ベクトル(322)、Vノット・ベクトル(
324)、及びVテッセレーション・ベクトル(326
)より成る。U、Vノット・ベクトルは各々、減少しな
いパラメータ値シーケンスより成る。
【0079】データの4番目の区間は制御点マトリクス
(328)より成る。これはNv個のデータ・レコード
より成り、データ・レコードは各々Nu個の制御点より
成る。各制御点はステータス・フラグ・ワードの、有理
/非有理ビットに応じて3または4ワードより成る。
【0080】e.ALUに対するローカル・メモリの割
当 グラフィクス制御プロセサ104は、上述のように、ロ
ーカル・メモリ204(図2の“データ・メモリ”)に
アクセスすることができる。このメモリ204は図6に
示すとおり8つの区間に分けられる。各区間の構成は次
のとおり。 1.制御情報(600) 2.U、Vパラメータ・ベクトル(602−608)3
.面制御点スタック(610) 4.Vインターバル・スタック(612−614)5.
UVパッチ特性(616−618)6.スカラ変数(6
20) 7.トリム・カーブ指定(622) 8.未使用空間(624)
【0081】第1区間(600)は、変換マトリクス、
属性、その他、複数のウィンドウ、グラフィクス構造、
及び構造要素の処理を制御しサポートするのに必要なデ
ータを含む。この処理には表示リストの走査等も追加す
ることができる。この処理は本発明に固有のものではな
いのでここでは触れない。
【0082】第2区間ないし第5区間(602−618
)は、4*Nmax個のワードのブロックkmax+7
個より成る。kmaxはVパラメータの多項式の最大次
数、Nmaxは、NURBS面の制御点マトリクスに可
能な行または列の最大数である。これらのメモリ部は、
kmax=4、Nmax=64を限度として計2816
ワードを要する。
【0083】第2区間(602−608)は1ブロック
を占め、次の4ベクトルより成る。 1.値がNu−ku+1個(ワード)のUテッセレーシ
ョン・ベクトル(602) 2.値がNu+ku個のUノット・ベクトル(604)
3.値がNv−kv+1個のVテッセレーション・ベク
トル(606) 4.値がNv+kv個のVノット・ベクトル(608)
【0084】Uノット・ベクトルの最初の要素は、Uテ
ッセレーション・ベクトルの先頭をNmax−kuワー
ド飛び越したところに置かれる。Vテッセレーション・
ベクトルの最初の要素は、Uテッセレーション・ベクト
ルの先頭を2*Nmaxワード飛び越したところに置か
れる。Vノット・ベクトルの先頭アドレスはVテッセレ
ーション・ベクトルの先頭をNmax−kvワード飛び
越したところに置かれる。
【0085】第3区間の制御点スタック(610)はk
max個のデータ・ブロックを格納する。典型的なケー
スのようにkmax=4であれば、この区間には4デー
タ・ブロックが入る。各ブロックは制御点マトリクスの
1行を収め、制御点値は(x1、y1、z1、w1、x
2、y2、...w(Nu))の順に格納される。各ブ
ロックの最後の4*(Nmax−Nu)ワードは使用さ
れない。
【0086】第4区間のVインターバル・スタック(6
12−614)は(図6Aにも示した)4データ・ブロ
ックを格納する。最初のブロックは、制御点スタックの
対応する列、Vノット・ベクトルの該当する部分、及び
Vパラメータの現在値によって決定されるNu組の座標
(Xi(V)、Yi(V)、Zi(V)、Wi(V))
を、第2ブロックは、Vパラメータに対する最初のブロ
ックの要素の導関数を含む(612)。第3ブロックは
、前のVの値の第1ブロックに置かれた値を、第4ブロ
ックは、前のVの値の第2ブロックに置かれた値を格納
する(614)。
【0087】第5区間(616−618)は、制御点ス
タックの内容によって決定されるパッチの行内の各パッ
チに特有の値を格納する。この区間の第1ブロック(6
16)は、この行のNu−ku+1パッチの各々につい
てXmin、Ymin、及びZminの値を格納する。 第2ブロック(618)は各パッチについてXmax、
Ymax、及びZmaxを、また、見える各パッチにつ
いて法線ベクトルしきい値(Qmin)を格納する。
【0088】第6区間(620)は以下のスカラ量の値
を収める。 1.トリム・カーブ・ステータス値 2.Tパラメータの分母 3.Vパラメータ・ステータス 4.Vの分母 5.Vスパン・ステータス 6.Vインターバル・ステータス 7.Uパラメータ・ステータス 8.U分母 9.Uスパン・ステータス・パラメータ10.Uインタ
ーバル・ステータス 11.現在のVインターバルの上部の座標、導関数、及
び法線ベクトル 12.現在のVインターバルの下部の座標、導関数、及
び法線ベクトル
【0089】第7区間(620)は、UVパラメータ空
間におけるトリム・カーブの位置を指定するデータを収
める。この区間は最初に、トリム・カーブの定義をNU
RBSカーブとして格納する。これらのカーブが評価さ
れて結果(MOVDRW、U(t)、V(t))がグロ
ーバル・メモリ102のワークエリアに格納される。ト
リム・カーブ・データは、各Vインターバルについて、
ブロック転送動作でグローバル・メモリ102からグラ
フィクス制御プロセサ104にコピーされる。このデー
タの(U、V)座標は現在のVインターバルにクリップ
され、得られたクリップ座標はローカル・メモリ204
に格納され、この部分のNURBS表現が上書きされる
【0090】各トリム・カーブのNURBS表現は、ヘ
ッダ・レコードと制御点レコードのシーケンスとより成
る。ヘッダ・レコードは6ワードであり、下記の量の値
を含む。 1.NSTART  =  このループの次のカーブの
データの先頭アドレス 2.NFLAG    =  このカーブのステータス
・ビット 3.KTRIM    =  このカーブの多項式の次
数4.NPNTS    =  このカーブの制御点数
5.TMIN      =  このカーブの最初のパ
ラメータ値 6.TMAX      =  このカーブの最後のパ
ラメータ値
【0091】ヘッダ(NFLAG)の第2ワードは下記
のビットを含む。 TCCAL:  計算されたテッセレーション・ベクト
ル (0=No、1=Yes) TCRAT:  0=非有理、1=有理TCWRK: 
 ワークステーションによって定義されたテッセレーシ
ョン・ベクトル(0=No、1=Yes)TCAPP:
  アプリケーションによって定義されたテッセレーシ
ョン・ベクトル(0=No、1=Yes)TCEDG:
  0=このカーブはエッジではない、1=このカーブ
はエッジ。
【0092】NSTART=0のレコードは最後のトリ
ミング輪郭(ループ)に続く。
【0093】各カーブの制御点レコード数はNPNTS
によって与えられる。各制御点レコードは15ワードを
含む。I番目の制御点レコードは下記の値を含む(I=
1ないしNpnts)。 1.最初のノットとテッセレーション・パラメータa.
ノット値t(I)(I=1ないしKTRIM−1)b.
スパンIspan  =I−KTRIM−1のテッセレ
ーション・パラメータDt(Ispan)(I=KTR
IMないしNPNTS) 2.他のノット値t(I+KTRIM−1)3.制御点
IのU 4.制御点IのV 5.制御点IのW
【0094】パラメータTの評価後、トリム・カーブは
、形式(MOVDRW、U(T)、V(T))のデータ
・レコードのシーケンスによって定義される、複数のば
らばらのUVポリラインによって表わされる。U(T)
とV(T)の値は、UVパラメータ空間における面上の
点を示す。MOVDRWの値は下記のフラグを含む。 EDGON  =0:後続のエッジにエッジ属性を適用
しない。 EDGON  =1:後続のエッジにエッジ属性を適用
する。 NSDIR  =水平フラグ(0=水平、1=非水平)
NSDR2  =上下方向フラグ(0=下、1=上)E
WDIR  =垂直フラグ(0=垂直、1=非垂直)E
WDR2  =左右方向フラグ(0=右、1=左)MD
LOOP=0(移動)は輪郭の最初の点、=1(描画)
は他のすべての点 MDCLOS=1は閉包の最後の点
【0095】MOVDRWワードのうち下記のビットは
、面評価のときに用いられるようにゼロにセットされて
予約される。 先行するエッジがクリッピングによって生成された場合
はEFAKE=1 V=Vtop(V1)ならMDVTOP=1V=Vbo
t(V3)ならMDVBOT=1U=Ulft(U1)
ならMDVLFT=1U=Urgt(U3)ならMDU
RG=1
【0096】トリム・カーブが評価されるとき
、得られたUVポリゴンの凸性を従来の手段を使って調
べることができる。凸性テスト結果は、トリム・カーブ
の評価前に1(真)に初期化されるフラグCONVEX
によって表わすことができる。トリミング輪郭が2つ以
上なら、または頂点が凸性テストに合格しなかった場合
、このフラグは0(偽)にセットされ、後続の凸性テス
トを省略することができる。代わりに凸性テストをなく
し、すべての輪郭を凹形として扱うこともできる(CO
NVEX=偽、として)。
【0097】3.トリミングされたNURBS面の処理
a.概要 先の各節で説明した装置は、図8にアウトラインを示し
たプロシジャによって、トリミングされたNURBS面
のレンダリングに使用できる。このプロシジャには、開
始ステージ、レンダリング・ステージ、終了ステージの
3つの基本ステージがある。
【0098】開始ステージは下記のステップより成る。 1.グローバル・メモリ102から、面定義のスカラ・
パラメータを読み出す(800)。これらは、図3に示
したデータ構造の最初の6個の値(ワード)300ない
し310である。これらの値はローカル・メモリ204
に格納される。
【0099】2.属性を連結する(802)。これは、
内側の色、エッジのライン・スタイル等の特性を所望の
値にするための操作を実行することによる。
【0100】3.倍率を決定する(804)。この倍率
は、モデリング座標のデバイス座標に対する比を表わし
、変換マトリクスとウィンドウ/ビューポート比によっ
て決まる。これらの値は図6に示したデータ構造の区間
600から得られる。
【0101】4.トリミング輪郭を読み出す(806)
。これは、トリム・カーブ・データをグローバル・メモ
リ102からローカル・メモリ204へ転送することに
よる。UVendの値はゼロにセットされ、トリム・カ
ーブが評価されなかったことが示される(808)。
【0102】5.ベクトル・データを読み出す。これは
、Uのノット・ベクトルとテッセレーション・ベクトル
(810)及びVのノット・ベクトルとテッセレーショ
ン・ベクトル(812)の読み出しによる。U、Vノッ
ト・ベクトルは、入力データ・ストリーム(グローバル
・メモリ102)から図6に示したローカル・メモリ2
04の区間604、608にコピーされるだけである。 テッセレーション・ベクトルが未定義なら、ローカル・
メモリ204内の対応する区間602、606(図6参
照)は、これらの量の計算に備えてクリアされる。 他の場合、倍率と面近似制御値が、レンダリング・ステ
ージに備えてこれらの量に適用される。面の近似基準値
と制御値はローカル・メモリ204の区間600で得ら
れる。このステップの詳細は本発明の動作にとって重要
ではないのでここでは省略する。
【0103】6.テッセレーション・パラメータを処理
する(814)。このステップは、U、Tパラメータの
テッセレーション・ベクトルを、入力データ・ストリー
ムに与えられていないときに計算することによって行わ
れる。Uテッセレーション・ベクトルがデータに与えら
れていない場合、これらの値は、トリミングされていな
いNURBS面と同じプロシジャによって計算される。 このプロシジャの詳細については関連特許出願(出願番
号平2−239185)を参照されたい。テッセレーシ
ョン・ベクトルがトリム・カーブに使用できない場合、
これらの値は、関連特許出願(出願番号平2−2476
73)等に述べられているプロシジャで計算される。
【0104】プロシジャは、開始ステージに続いてレン
ダリング・ステージ(816)に入り、ここでトリミン
グ面がVスパンのシーケンスに分割され、面のうち各V
スパン内に含まれる部分が図9に示すように処理される
(後述)。
【0105】プロシジャは、レンダリング・ステージに
続いて終了ステージ(818−824)に入る。U、V
テッセレーション・ベクトルがこの走査で計算されてい
れば(818)、Vテッセレーション・ベクトル(82
0)とテッセレーション・ステータス・フラグ(822
)がグローバル・メモリ102で更新され、プロシジャ
が終了する(824)。U、Vテッセレーション・ベク
トルがこの走査で計算されていなければ、プロシジャは
終了し、テッセレーション・ベクトルまたはスパン・ス
テータスは更新されない。
【0106】b.Vスパン・ループ 図9を参照する。Vスパン・ループ(900−948)
はレンダリング・ステージの基本ループを成す。Vスパ
ン・ループは最初、変数Ivをセットしてローカル・メ
モリ204内の制御点スタック610の空行数(V次数
kvに等しい)を示し、変数NsvをセットしてNv−
kvに等しい(Nvはグローバル・メモリ102内の制
御点マトリクス328のV寸法)未処理Vスパン数を示
し、V2をセットする。V2は、処理されるスパンの上
限を示し、Vknot(kv)に等しい(902)。V
スパン・ループは次にサブループ(904−908)に
入り、制御点マトリクス328から制御点行を連続的に
読み出し、ビュー座標に変換し、制御点スタック610
に押し入れる。これはスタックの行がすべて一杯になる
まで続けられる。Vスパン・ループは次に、変数V1を
セットして、処理されたスパンの下限(V2に等しい)
を示し、スパン上限V2をVknot(Nv−Nsv+
1)にリセットし、Vrをセットして、処理されたスパ
ンの範囲(V2−V1に等しい)を示す(910)。
【0107】Vスパン・ループは次にV2がV1よりも
大きいかどうかを判定する(912)。そうなら正規の
Vスパンに対応する。正規のスパンでなければ、ループ
は途中のステップを踏まずにステップ940にジャンプ
する。他の場合、UVcalフラグが1に等しいことに
よって示されるように、Vテッセレーション・パラメー
タが入力データ・ストリームに与えられておらず(91
4)、V次数kvが2以上であれば(916)、限界V
1、V2によって定まるスパンのVテッセレーション・
パラメータが計算される(918)。このプロシジャ及
びステップ904のプロシジャは、関連特許出願(出願
番号平2−239185)に述べられている、トリミン
グされていないNURBS面に用いられるプロシジャと
同じである。
【0108】Vスパン・ループは次に、現在のVスパン
内の各UVパッチの可視性を判定する(920)。これ
は、各パッチの凸部を基にした簡単な棄却テストの結果
である。パッチがこのテストに合格すると、スパンの可
視性フラグがセットされ、パッチの可視性フラグVis
(i)がセットされ、法線ベクトルしきい値Qmin(
i)が計算されてローカル・メモリ204に格納される
。これらの操作を行うプロシジャは、関連特許出願(出
願番号平2−239185)に述べられている、トリミ
ングされていないNURBS面に用いられるプロシジャ
と同じである。
【0109】現在のVスパンのUVパッチがどれも可視
でない場合、ループは途中のステップを踏まずにステッ
プ940にジャンプする。UVパッチが可視である場合
(922)、ループはステップ924−926より成る
部分を進む。Vスパン・ループのこの部分では、最初に
UVendフラグがゼロにセットされているかどうかチ
ェックされる。ゼロは、トリム・カーブが評価されてい
ないことを示す(924)。評価されていない場合、ト
リム・カーブはここで評価され、結果がグローバル・メ
モリ102に格納される(926)。トリム・カーブを
評価するプロセスは、関連特許出願(出願番号平2−2
47673)に述べられているCox−DeBoorア
ルゴリズムを基本にすることができる。
【0110】次に、まず、現在のVスパンが分割される
Vインターバル数Nvstepを判定し、そして現在の
Vスパンの範囲Vrをその数で割ることによって、Vパ
ラメータ・インターバルDvが計算される(930)。 この後、現在のVスパン内の個々のVインターバルの処
理に備えて、最初のVインターバルが処理されているこ
とを示すフラグVfrstが1にセットされ、現在のV
スパン内の最後のVインターバルが処理されていること
を示すフラグVlastが0にセットされる(932)
。プログラムは次に、現在のVスパンの(B1、B2、
...)前、(A1、A2、...)後のkv−1個の
Vknotsを調べ(934)、1組のV分母Dij=
1/(Aj−Bj)を計算する(936)。これらの量
Dijは、Cox−DeBoorアルゴリズムに必要な
補間分母である。これらの分母はローカル・メモリ20
4に格納される。プログラムは次に図10に示したVイ
ンターバル・ループ(938)に進む(後述)。
【0111】現在のVスパンに対するVインターバル・
ループ928が終了すると、次のVスパンの下限V1が
現在の上限V2に等しくセットされ、処理されるスパン
数Nsvが1だけデクリメントされる(940)。量N
svが0未満にデクリメントされている場合(942)
、プログラムはVスパン・ループを終える(948)。 他の場合プログラムは次のVスパンを処理するために、
別の制御点行を制御点スタック610に押し込む(94
4)。これは変数Iv(空スタック行数を示す)を1に
等しくセットし(946)、ステップ904に戻って制
御点の次の行を読み出し、ビュー座標に変換して制御点
スタック610に押し込むことによって行われる。この
時点でVスパン・ループは次のスパンを最初のスパンと
同じように処理する。
【0112】c.Vインターバル・ループ各Vスパンに
ついて、そのスパンを作るVインターバルの各々を処理
するために走査されるVインターバル・ループを図10
に示す。
【0113】Vインターバル・ループは、面座標(WX
、WY、WZ、W)のV従属性と、これらの量のV=V
1のときのVに関する導関数の評価から始まる。これは
、関連特許出願(出願番号平2−247673、出願番
号平2−239185)に述べられているCox−De
Boorアルゴリズムによって行える。このアルゴリズ
ムには特に、座標評価の自由副産物(free byp
roduct)として導関数を導くというメリットがあ
る。これらの計算の結果は図6のローカル・メモリ20
4の区間4に位置するVインターバル・スタック(図6
A)の“上部”612に格納される。
【0114】フラグVfrstが1に等しくセットされ
ていると(1004)− これが現在のVスパンの最初
のVインターバルであることを示す − フラグVfr
stは0にリセットされる(1018)。次にフラグV
lastが現在のVスパンの最後のVインターバルかど
うか判定される(1020)。そうならフラグVlas
tは0にリセットされ(1030)、Vインターバル・
ループのこのパスは終了する(1032)。スパンの最
後のVインターバルでなければ、変数V1、V3がイン
クリメントされて、現在のVインターバルの上限と下限
が示され、現在のVスパンの残りの範囲を示す変数Vr
がVstep分デクリメントされる(1022)。残り
の範囲Vrが0未満にデクリメントされていれば(10
24)、インターバルの上限V1はスパン上限V2に等
しくセットされ、現在のVスパンの最後のインターバル
を示すVlastは1に等しくセットされる(1026
)。Vインターバル・スタックの上部612に格納され
た情報はここでスタックの下部614にコピーされる(
1028)。先行するインターバルの上部に対応する情
報が現在のインターバルの下部に対応するようになった
からである。プロシジャは次にステップ1002に戻り
、Vインターバル・スタックの上部612について新し
い量が評価される。
【0115】Vfrstが1以外なら−これがVインタ
ーバル・ループを通る最初のパスではないことを示す−
(1004)、変数UVendが初期化され、図7に示
すように、ローカル・メモリ204の区間622の先頭
(UVstart)が指し示され、グローバル・メモリ
102のトリム・カーブ・データがブロック転送でグラ
フィクス制御プロセサ104にコピーされる。最初の点
(常に“移動”)はUVendを変えることなく区間6
22にコピーされる。
【0116】グラフィクス制御プロセサ104によって
トリム・カーブ頂点が受け取られるごとに、得られたベ
クトルが、V座標と、各頂点のUV座標を伴うMOVD
RWワードのMDLOOPビットとを基準にした“移動
”と“描画”に分類される。MDLOOPビットがゼロ
(移動)であれば、頂点は移動と分類される。他の場合
(MDLOOPビットが1、描画)、頂点は現在のVイ
ンターバルにクリップされる。Vインターバル内(また
は下の境界上)の頂点は“描画”点と分類され、Vイン
ターバルの外部(または上の境界上)の頂点は“移動”
点と分類される。頂点が現在のVインターバルの上の境
界(V1)または下の境界(V3)を横切る場合、新し
い頂点が補間によって作成され、新しい頂点は“描画”
点と分類される。ベクトルが上(下)の境界を横切ると
ころで新しい頂点が作成されると、MOVDRWワード
のMDVTOP(MDVBOT)ビットは1にセットさ
れる。頂点が、現在のVインターバルに入るベクトルに
よって作成されると、MOVDRWのEFAKEビット
が1にセットされる。
【0117】MOVDRWの値U、Vはローカル・メモ
リ204の区間622のUVend(図7)に格納され
、UVendは3ワード分進められる。このVインター
バルに頂点がなければ、UVendの値は変更されない
ままUVstartに残り、処理は次のVインターバル
に進む(1012)。他の場合(UVend>UVst
art)、プロシジャはUスパン・ループに入る(10
16)。この詳細は図11に示す。
【0118】例を図7、図17に示した。図17は、上
限V1と下限V3を持つVインターバルで、これに頂点
T1、T2、T3を持つトリム・カーブ・ポリゴンTが
掛かる。頂点T1はVインターバルV3−V1の下にあ
り、頂点T3は現在のVインターバル内に、頂点V2は
現在のVインターバルの上にある。このトリム・カーブ
・ポリゴンTは、セグメントT1−T2、T3−T1と
線V=V3の交点から新しい頂点T1a、T3aを取り
、セグメントT1−T2、T2−T3と線V=V1の交
点から新しい頂点T1b、T2aを取ることによってV
インターバルV3−V1にクリップされる。トリム・カ
ーブ・ポリゴンT’(現在のVインターバルv3−V1
にクリップされたもの)は、頂点T1a、T1b、T2
a、T3、及びT5より成る。クリップされたこのトリ
ム・カーブ・ポリゴンの頂点情報は、図7に示すように
、15ワードとしてローカル・メモリ204の区間62
2に格納される。15ワードは、VインターバルV3−
V1にクリップされたトリム・カーブ・ポリゴンT’の
各頂点T1a、T1b、T2a、T3、T5に対応する
3ワード5組より成る。頂点T1a、T1b、T2a、
T3、T5はすべて、これら頂点の各々に対するMOV
DRWワードのMDLOOPビット1によって示される
ように、“描画”点と分類される。
【0119】凸性フラグ(CONVEX)が1(真)に
セットされていない場合、得られたVクリップUV座標
の集合の凸性をテストすることができる。これら凸性テ
ストの結果は、トリム・カーブ・データがグローバル・
メモリ102からローカル・メモリ204に転送される
前に1(真)に初期化されるフラグVCONVEXによ
って表わすことができる。Vクリップ頂点に輪郭が2つ
以上あることがわかると、あるいはどの頂点も凸性テス
トに合格しないと、VCONVEXは0(偽)にセット
される。CONVEXが真またはVCONVEXが偽で
あれば、後続の凸性テストは省略できる。代わりにフラ
グVCONVEXをフラグCONVEXに等しくセット
すれば凸性テストは行わなくてよい。
【0120】Vインターバル・ループは、ステップ10
16のUスパン・ループに入る準備として、量Nsuを
初期化し、処理対象のUスパン数(Nu−ku)を示す
。Nuは制御点マトリクス328のU寸法を、kuは次
数kを表わす(1014)。ここではまた、量U2(処
理されたUスパンの上限を示す)がUknot(ku)
に初期化され、フラグUfrst(現在のUスパンの最
初のUインターバルを示す)が1に等しくセットされる
【0121】先に触れたように、Vインターバル・ルー
プのステップ1002−1028を経る各パスで、ロー
カル・メモリ204のVインターバル・スタックの上部
612に格納された値が、下部614にコピーされるの
で、次のインターバルに備えてVインターバル・スタッ
クが押し下げられることになる。これはV1がV2(こ
のVスパンの最後のV値)に達するまで続き、処理はそ
こでVスパン・ループに戻る(図9)。
【0122】d.Uスパン・ループ Uノットの順列対(U1、U2)−U2はU1より大き
い−によって定義される連続したUスパンを処理するU
スパン・ループを図11に示した。このループに入ると
(1100)、また、後続の反復ごとに、スパンの下限
U1は先の上限U2に等しくセットされ、新しいスパン
上限U2はUknot(Nu−Nsu+1)に等しくセ
ットされ、Ur(処理を待つ現在のUスパンの残りの部
分を示す)はU2−U1に等しくセットされる(110
2)。スパン上限U2は次に、スパン下限U1と比較さ
れ(1104)、正規のUスパンが定義されているかど
うかが判定される。でなければ、処理は、次のUスパン
の反復に備えて、途中のステップを踏まずにステップ1
120にジャンプする。他の場合、現在ローカル・メモ
リ204の区間622に格納されているトリム・カーブ
・セグメントの集合がチェックされ、U1、U2によっ
て定まるUスパンとも交わるセグメントが識別される(
1106)。現在のUスパンと交わる最初のUVベクト
ルの最初の点のインデクスはUspn1として格納され
、現在のUスパンと交わる最後のUVベクトルの最後(
2番目)の点のインデクスはUspn2として格納され
る。
【0123】Vスパン・ループの一部としてセットされ
る可視性フラグVis(Nu−Nsu−ku+1)によ
って示されるように、現在のUスパンを含むUVパッチ
が可視であるなら(1108)、フラグVisは1に等
しくセットされ、Uインターバルのステップ・サイズU
stepが、Uテッセレーション・ベクトルと面近似の
属性を基に計算される(1110)。他の場合フラグU
visが0に等しくセットされ、現在のUスパンの範囲
Ur(U2−U1に等しい)に等しいデフォルトのステ
ップ・サイズUstepが選択される(1112)。い
ずれの場合でも、現在のUスパンの最初のUインターバ
ルを示すフラグUfrstと現在のUスパンの最後のU
インターバルを示すフラグUlastを含めて、複数の
フラグがセットされた後、処理は図12のUインターバ
ル・ループに入る(1116)。
【0124】図12のUインターバル・ループから戻る
と、インデクスNsuがデクリメントされ(1120)
、0と比較されて(1122)、Uスパンがすべて処理
されたかどうかが判定される。そうならUスパン・ルー
プは終了する(1124)。他の場合、処理は、ステッ
プ1102ないし1122より成るUスパン・ループの
部分の反復に備えてステップ1102に戻る。
【0125】e.Uインターバル・ループUインターバ
ル・ループは、Vインターバル・スタック(図6の区間
4)とU1の現在値に基づく面のU従属性の評価から始
まる。このプロセスは、U=U1のときの同次座標WX
、WY、WX、Wの値と、現在のVインターバル(V=
V3、V=V1)の上部と下部に対応するVパラメータ
を生成する。また、これらの値のU、Vに対する導関数
もこの時点で計算される。これらの値は次に、対応する
デカルト座標(X、Y、Z、上部、下部)とそのU、V
両方に対する導関数(接線ベクトル)を求めるのに用い
られる。現在のVインターバルの上部と下部の面法線ベ
クトルは接線ベクトルのベクトル(交差)積から求めら
れる。これらの法線ベクトルの大きさは、現在のUV面
パッチの法線ベクトルしきい値(Qmin)と比較され
る。法線ベクトルがこのしきい値よりも小さい場合、法
線ベクトルは隣接する頂点からの法線ベクトルと置き換
えられる。法線ベクトルを置き換えるプロシジャは関連
特許出願(出願番号平2−239185)に述べられて
いるものと同一である。
【0126】Uインターバル・ループに入った後(12
00)、現在のUスパンの前後のku−1のUノットが
調べられる(1202)。フラグUfrstによっt示
されるように、これが現在のUスパンのUインターバル
・ループを通る最初のパスであれば(1204)、Co
x−DeBoorプロシジャに用いられるU分母Du1
2=1/(Au2−Bu1)等が計算される(1205
)。この計算が終わると、あるいはこれがスパンのUイ
ンターバル・ループを通る最初のパスでなければ、同次
座標WX、WY、WZ、W、及びそれらのU、Vパラメ
ータに対する導関数が、上部(V=V1)と下部(V=
V3)の角の両方の現在のUインターバルの上限U1に
おいて評価される(1206、1208)。
【0127】フラグUfrstによって示されるように
、これが現在のUスパンのUインターバル・ループを通
る最初のパスでなければ(1210)、先に算出された
上部と下部のX、Y、Z座標がセーブされ(1212)
、フラグPendが0にセットされているかどうかがチ
ェックされる(1214)。そうでなければ、上部と下
部の法線ベクトルのX、Y、Z成分もセーブされる(1
216)。次に、現在のUVレクタングルの右上(U=
U1、V=V1)角についてX、Y、Z座標とUV面に
対する法線ベクトルのX、Y、Z成分が計算され(12
18)、法線ベクトルは、この点のU、V接線ベクトル
の交差積として計算される。
【0128】次に上部法線ベクトルとそれ自体の点乘積
が計算され(1222)、そのスパンのQminと比較
される(1224)。点乘積がQminを超える場合、
フラグTnrmが1にセットされる(1226)。他の
場合は0にセットされる(1228)。そして現在のU
Vレクタングルの右下角(U=U1、V=V3)の同次
座標WX、WY、XZ、W及び対応するU、V導関数が
X、Y、Z座標とこれに対応するU、V導関数に変換さ
れる(1230)。次にこの点のUV面に対する法線ベ
クトルが、U、V導関数に対応する、U、V接線ベクト
ルの交差積として計算される(1232)。次に、下部
法線ベクトルとそれ自体の点乘積が計算され(1234
)、現在のUスパンのQminと比較される(1236
)。点乘積がQminより大きい場合、フラグBnrm
が1にセットされ(1238)、他の場合、0にセット
される(1240)。Bnrmが1で、Tnrmが0な
ら(1242)、上部法線ベクトルは下部ノット・ベク
トルと等しくセットされ、フラグTnrmは1にセット
される(1244)。Bnrmが0でTnrmが1なら
(1246)、下部ノット・ベクトルは上部法線ベクト
ルと等しくセットされ、フラグBnrmは1に等しくセ
ットされる(1248)。BnrmもTnrmも0で、
それが現在のUスパンのUインターバル・ループを通る
最初のパスであれば(1250)、フラグPendが1
に等しくセットされ(1258)、でなければフラグP
endが0にセットされているかどうかがチェックされ
る(1252)。そうでなければ、先にセーブされたX
、Y、Z座標と法線ベクトル成分が現在のUVレクタン
グルの右上と右下の角に用いられる(1256)。 他の場合、右上と右下の両方の法線ベクトルに、z軸に
沿った単位ベクトルが用いられる(1254)。このス
テップが終了すると、また、ステップ1242、124
4、または1248の終了時にも、フラグPendが0
にセットされているかどうかがチェックされる(126
0)。そうなら上下の法線ベクトルが後の利用を想定し
てセーブされ、フラグPendが0にセットされる(1
262)。
【0129】(U1、V1)と(U1、V3)の値X、
Y、Z、Xn、Yn、Znを計算する上記のステップは
充分に説明しているが、本発明に含まれるものではなく
、他の方法も適用することができる。上述のCox−D
eBoorプロシジャの詳細については関連特許出願(
出願番号平2−239185)と同書類に引用されてい
る参考文献を参照されたい。
【0130】現在のUスパンにn個のUインターバルが
ある場合、Uインターバル・ループはn+1回実行され
、各々、上下のVインターバル値V1、V3及び右のU
インターバル値U1のX、Y、Z座標とX、Y、Z法線
ベクトル成分が生成される。(ループがn+1回実行さ
れるのは、n個のUインターバルの開始点と終了点を定
義する値がn+1個だからである。)これら12の量は
Qt、Qbと総称することができる。tは上、bは下、
QはX、Y、Z、Xn、Yn、またはZnを示す。 各パスで、ポリゴン頂点データの生成に備えて、新たに
計算された値Qt、Qbが量Qtr(右上)、Qbr(
右下)として格納され、前のパスについて格納された値
Qtr、Qbrは量Qtl(左上)、Qbl(左下)と
して格納される。このプロセスの結果、Uインターバル
・ループを通る第2及び後続の各パスについては、量Q
tl、Qtr、Qbl、Qbrの4組が格納され、各々
、現在のUVレクタングルの左上、右上、左下、及び右
下の頂点に対するX、Y、Z頂点と法線ベクトル・デー
タに対応する。これらの量は、現在のUVレクタングル
の頂点のデータを成し、トリム・ポリゴンをUVレクタ
ングルにクリップすることによって形成される他の頂点
のデータを生成するのに用いられる(図21参照)。
【0131】これらの計算が行われた後、再びフラグU
frstが現在のUスパンのUインターバル・ループを
通る最初のパスかどうかがチェックされる(1264)
。そうならフラグUfrstは、ループを通るこのパス
を終える準備段階として0にリセットされる(1280
)。現在のUスパンのUインターバル・ループを通る最
初のパスでなければ、先に現在のUインターバルにクリ
ップされたトリム・カーブ・ポリゴンがさらに、Vイン
ターバルと現在のUインターバルのインタセクションに
よって形成されたUVレクタングルにクリップされる(
1272)。このUVクリッピングの結果は、トリミン
グ領域がUVレクタングルと交わらない場合は(図18
)空レクタングル、トリミング領域がUVレクタングル
を完全に包含する場合は(図19)完全レクタングル、
または不規則ポリゴン(図20)のいずれかになる。(
この時点ではVインターバルにクリップされているが、
図18ないし図20のトリム・ポリゴンはクリップされ
ていない形で示している。)このように形成されたポリ
ゴンの各頂点について、後述する方法でX、Y、Z座標
と法線ベクトル成分が計算され(1274)、この頂点
データはポリゴン・プロセサに送られる。
【0132】次にフラグUlastが現在のUスパンの
Uインターバル・ループを通る最後のパスかどうかが判
定される(1278)。そうならUインターバル・ルー
プは終了する(1288)。他の場合、現在のUインタ
ーバルの下限U3と上限U1及びUスパンの残りの範囲
Urが、Uインターバル・ループを通る別のパスに備え
て更新される(1282)。範囲Urはそこで0より大
きいかどうかテストされる(1284)。そうならルー
チンはループを通る別のパスのためにステップ1202
に戻る。他の場合、現在のUインターバルの上限U1が
スパンの上限U2に等しくセットされ、フラグUlas
tが1に等しくセットされてから、処理がステップ12
02に戻る(1286)。
【0133】得られたUVポリゴン及び対応するXYZ
ポリゴンは凹形になり得る。これは描画/シェーディン
グ・プロセサ106によって、凹形ポリゴンをサポート
する方法で処理される。凹形ポリゴン・プロセサの詳細
はそのまま本発明に含まれるものではないが、適切な凹
形ポリゴン・プロセサについては関連特許出願(出願番
号平2−266604)を参照されたい。
【0134】UVレクタングルのエッジと内側の点の座
標と法線ベクトルは、角の間の線形または双線形補間に
よって近似することができる。近似によりシステムの性
能が向上する。双線形補間では、必要な操作が、これら
の点のNURBS式を評価する場合よりも少なくなるか
らである。この近似は、補間された四辺形がほぼ平坦で
ある限り正確になる。この条件は、対応する領域塗りつ
ぶしの操作でも必要である。この条件は、面近似制御値
または品質要因を適切に選択することによって得られる
【0135】これらエッジ・ポリゴンの頂点データの前
には、フラグVCONVEXの値を基にしたパイプライ
ン・コマンド“凸形ポリゴン開始”または“凹形ポリゴ
ン開始”が置かれ、パイプライン・コマンド“ポリゴン
終了”には、最後の頂点のデータが続く。凸性テストが
行われない場合、条件VCONVEX=0(偽)が意味
され、コマンド“凹形ポリゴン開始”が各ポリゴンに用
いられる。UVレクタングルに互いに交わらない領域が
2つ以上ある場合、これらの領域のデータはパイプライ
ン・コマンド“ポリゴン中断”によって分割することが
できる。
【0136】UVベクトルを現在のUインターバルにク
リップする前に以下の4つのリストが作成される。 1.ベクトルが現在のUインターバルの左エッジ(U=
U3)に交わる、V1、V3(上部V、下部V)を除く
点のV値 2.MDVTOP値=1で、U値が現在のUインターバ
ル内にある、U3、U1(左右の境界)を除く点のU値
3.ベクトルが現在のUインターバルの右エッジ(U=
U1)に交わる、V1、V3(上部V、下部V)を除く
点のV値 4.MDVBOT値=1で、U値が現在のUインターバ
ル内にある、U3、U1(左右の境界)を除く点のU値
【0137】これらのリストは、ローカル・メモリ20
4のトリム・カーブ頂点のリストに続いて、1つずつ連
接することができる。これらのリストは空になることが
多く、2、3項目以上含まれることはまれである。各リ
ストの作成後、各リストの内容は値を増すことによって
ソートされる。
【0138】連続した2つの頂点をつなぐベクトルが現
在のUインターバルの左(U=U3)または右(U=U
1)の境界に交わる場合、ベクトルが境界に交わるとこ
ろで新しい頂点が生成される。新しい頂点の各々に関連
するMOVDRWワードには先行する頂点として同じ方
向フラグ(NSDIR、NSDR2、EWDIR、EW
DR2)及びフラグVTOP、VBOTと同じ値が割り
振られる。左境界(U=U3)で新しい頂点が生成され
るとULFTビットが1にセットされ、右境界で新しい
頂点が生成されるとURGTビットがセットされる。
【0139】トリム・カーブを現在のUインターバルに
クリップして得られる各頂点のフラグVBOT、VTO
P、ULFT、URGTは、現在のUインターバルと現
在のVインターバルによって定義されるUVレクタング
ルの境界に掛かる頂点を判定するために調べられる。頂
点がUVレクタングルのどの境界にも掛からない場合、
UVレクタングルの角について計算された値の間の双線
形補間により、頂点のXYZ座標と法線ベクトルが求め
られる。その場合、双線形補間は次の3段階で行われる
(図21)。
【0140】 Qtop(U)=(Qt1*(U1−U)+Qtr*(
U−U3))*DuQbot(U)=(Qb1*(U1
−U)+Qbr*(U−U3))*DuQ(U、V) 
 =(Qtop*(V−V3)+Qbot*(V1−V
))*DvここでQはXYZ座標と法線ベクトルによっ
て定義される6個の値の各々を表わす。添え字のtl、
tr、bl、brは、UVレクタングルの左上、右上、
左下、右下の値を表わし、DuとDvは次式によって与
えられる。
【0141】Du=1.0/(U1−U3)Dv=1.
0/(V1−V3)
【0142】フラグVTOP、VBOT、ULFT、U
RGTによって示されるように、頂点が4つの境界の1
つに掛かる場合、XYZ座標と法線ベクトルは、以下の
式の1つで示される1段階の補間によって求められる。
【0143】 If Vtop = 1 : Q(U、V1) = Q
tr*(U − U3) + Qtl*(U1 − U
))*Du、If Vtop = 1 : Q(U、V
3) = Qbr*(U − U3) + Qbl*(
U1 − U))*Du、If URGT = 1 :
 Q(U1、V) = Qtr*(V − V3) +
 Qbr*(V1 − V))*Dv、If VLFT
 = 1 : Q(U3、V) = Qtl*(V −
 V3) + Qbl*(V1 − V))*Dv.

0144】3段階ではなく1段階の補間を行うことによ
って、XYZ座標と法線ベクトルを求めるのに必要な演
算の回数が少なくなり、性能が向上するだけでなく、不
要な浮動小数点演算によって生じ得る浮動小数点の丸め
誤差や打ち切り誤差が無くなり、演算結果の精度も向上
する。
【0145】フラグVTOP、VBOT、ULFT、U
RGTよって示されるように、頂点が4つの境界のうち
2つに掛かる場合、XYZ座標と法線ベクトルは、次の
ように、対応する角の値によって直接求めることができ
る。
【0146】 If VTOP = 1 and URGT = 1:
 Q(U1、V1) = Qtr、If VTOP =
 1 and ULFT = 1: Q(U3、V1)
 = Qtl、If VBOT = 1 and UR
GT = 1: Q(U1、V3) = Qbr、If
 VBOT = 1 and ULFT = 1: Q
(U3、V3) = Qbl.
【0147】これらのケ
ースでは、補間を行わないことによって、XYZ座標と
法線ベクトルを求めるとき必要な演算回数が少なくなり
、性能が向上するだけでなく、不要な浮動小数点演算に
よって生じ得る浮動小数点の丸め誤差や打ち切り誤差が
無くなり、演算結果の精度も向上する。こうしたメリッ
トは特に角の点に重要である。 すなわち角の点は、トリミングされたほとんどのカーブ
面の処理の対象となるUV頂点として最も種類が多いか
らである。
【0148】頂点がUVレクタングルのエッジまたは角
に掛かる8種類のケースのいずれについても、XYZ座
標と法線ベクトルを生成する前に、先行する頂点につい
ても、UVレクタングルの境界に対するその位置がチェ
ックされる。現在及び先行する頂点がいずれも共通の境
界に掛かる場合、現在及び先行する頂点の間に存在する
点について、対応するエッジ交差点リストがサーチされ
る。次に、適切な1段階補間式により、各点についてX
ZY座標と法線ベクトルが生成される。
【0149】たとえば現在の頂点(Ui、Vi)と先行
する頂点(Uj、Vj)がいずれも上部の境界に掛かる
場合(すなわちVi=Vj=Vl)、Ui、Ujの間の
、Uk=Ui、Uk=Ujを除くUkの値について、上
部境界のリストのUパラメータ値の集合がサーチされる
。Ui>Ujなら、Ukを増すためにリストがサーチさ
れる。Ui<Ujなら、Ukを少なくするためにリスト
がサーチされる。Ui=Ujの場合、サーチは行われな
い。
【0150】このプロシジャの結果を図22に示した。 これは上部境界(V=V1)でクリップされたポリゴン
形の2つの小領域abcd、efghiを持つUVレク
タングルである。小領域abcd、efghiは、2つ
のトリム・ポリゴンP1、P2(両方で2つのポリゴン
境界の間にドーナツ形の領域が定義される)をVインタ
ーバルV3−V1にクリップすることによっても得られ
る。このプロシジャを使う前に、(a、b、c、d)と
した4頂点によって第1サブエリアが求められ、(e、
f、g、h、i)とした5頂点によって第2サブエリア
が求められる。その場合、頂点(g)、(h)に関連す
るUパラメータ値(すなわちUg、Uh)はVtop交
差点のリストに置かれる。頂点(c)のXZY座標と法
線ベクトルを計算する前に、このリストが走査され、頂
点(g)、(h)がこの順序で導かれる。その結果、第
1サブエリアは6つの頂点(a、b、g、h、c、d)
によって表わされる。
【0151】このプロシジャでは、図22の頂点(g)
、(h)の間の線等、2つ以上のサブエリアによって部
分的に共有される境界に沿って“副産物”が現われるの
を防ぐことができる。この例では線(b−c)、(g−
h)がUVパラメータ空間において完全に水平かつ共線
である。得られたXYZ座標が画面空間のXY座標にマ
ップされると、得られたベクトルは総じて対角線となる
。また、各点を画面(ピクセル)座標にマップした結果
生じる誤差は点によって異なる。したがって画面空間に
おいて線(g−h)を表わすベクトルは、線(b−c)
を表わすベクトルと共線でなくなり、第1サブエリアの
境界(b−c)に沿ったピクセルから第2サブエリアの
境界(g−h)に沿ったピクセルが除外されると残留(
副産物の)ピクセルが生じる。
【図面の簡単な説明】
【図1】本発明を適用するときに使用できるグラフィク
ス・システムのブロック図である。
【図2】図1に示したグラフィクス制御プロセサのブロ
ック図である。
【図2A】図2に示したグラフィクス制御プロセサのグ
ラフィクス・パイプラインのブロック図である。
【図3】トリミングされたNURBS面を指定するデー
タを図1のグローバル・メモリに格納するためのフォー
マットを示す。
【図3A】NURBS面を評価するために図1の装置に
用いられる制御点マトリクスを示す。
【図4】トリミング輪郭を指定するデータを図3に示し
たグローバル・メモリの部分に格納するためのフォーマ
ットを示す。
【図5】トリム・カーブを指定するデータを図4に示し
たグローバル・メモリの部分に格納するためのフォーマ
ットを示す。
【図6】図2のローカル・メモリの割当を示す。
【図6A】図6に示したローカル・メモリの部分に格納
される制御点スタックを示す。
【図7】評価されたトリム・カーブを指定するデータを
ローカル・メモリに格納するためのフォーマットを示す
【図8】本発明に用いられるトリミングされたNURB
S面をレンダリングする一般的なプロシジャの流れ図で
ある。
【図9A】図8のプロシジャのVスパン・ループを示す
流れ図である。
【図9B】図8のプロシジャのVスパン・ループを示す
流れ図である。
【図10】図9に示したVスパン・ループのVインター
バル・ループの流れ図である。
【図11】図10に示したVインターバル・ループのU
スパン・ループの流れ図である。
【図12A】図11に示したUスパン・ループのUイン
ターバル・ループの流れ図である。
【図12B】図11に示したUスパン・ループのUイン
ターバル・ループの流れ図である。
【図12C】図11に示したUスパン・ループのUイン
ターバル・ループの流れ図である。
【図13】XYZジオメトリック座標空間に現われるよ
うなトリミングされていないNURBS面の図である。
【図14】UVパラメータ空間内の、複数のトリム・カ
ーブより成る典型的なトリミング輪郭を示す。
【図14A】トリム・カーブを定義するトリム・カーブ
・スパンとノット値の関係を示す。
【図14B】UVパラメータ空間に現われるような図1
4Aのトリム・カーブを示す。
【図14C】UVパラメータ空間内の、トリム・カーブ
・スパンに近似するポリラインの図である。
【図14D】パラメータ空間におけるUVレクタングル
と同空間におけるトリム・カーブ・ポリゴンの交差によ
って形成されたポリゴンを示す。
【図14E】トリミング領域が互いに交わらない2つの
トリミング輪郭によって形成されたトリミング領域を示
す。
【図14F】第1のトリミング輪郭が第2のトリミング
輪郭を囲む2つのトリミング輪郭によって形成されたト
リミング領域を示す。
【図15】UVパラメータ空間における、U、Vスパン
とスパンを定義するU、Vノット・ベクトルの関係を示
す。
【図16】UVパラメータ空間における、UVパッチと
そのパッチ内のUVレクタングルを示す。
【図17】UVパラメータ空間における、現在のVイン
ターバルにクリップされたトリム・ポリゴンを示す。
【図18】UVパラメータ空間における、トリム・ポリ
ゴンが現在のUVレクタングルと交わらないケースを示
す。
【図19】UVパラメータ空間における、トリム・ポリ
ゴンがUVレクタングルを完全に包含するケースを示す
【図20】UVパラメータ空間における、現在のUVレ
ンダリングと交わって、トリム・ポリゴンとUVレクタ
ングルの両方の真部分集合であるポリゴンを形成するト
リム・ポリゴンを示す。
【図21】UVパラメータ空間における、UVレクタン
グル内の頂点を評価するのに用いられる双線形補間法を
示す。
【図22】UVパラメータ空間における、共通エッジ部
がUVレクタングルのエッジに沿った重なり合う2つの
ポリゴンを示す。

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】凹形ポリゴンの処理が可能なポリゴン・プ
    ロセサを有するグラフィクス・システムにおいて、U、
    Vパラメトリック座標からX、Yジオメトリック座標へ
    のマッピングを表わし、且つトリム・ポリラインによっ
    て定まるトリミング領域を有するトリミングされたパラ
    メトリック面をレンダリングする方法であって、(a)
    上記トリム・ポリラインがUVレクタングルの部分集合
    と交わって該部分集合の各UVレクタングルが、上記ト
    リミング領域内に位置する少なくとも1個のポリゴンと
    、該トリミング領域外に位置する少なくとも1個のポリ
    ゴンに分割されるように、UVパラメトリック面を、交
    差して該UVレクタングルを形成する連続した複数のU
    、Vインターバルに分割するステップと、(b)上記ト
    リム・ポリラインと交わる各UVレクタングルについて
    、(1)上記トリム・ポリラインと上記UVレクタング
    ルの交差によって形成される上記トリミング領域内に位
    置する各ポリゴンの頂点を決定するステップと、(2)
    上記ポリゴンをレンダリングするために上記頂点のデー
    タを上記ポリゴン・プロセサに供給するステップとを含
    む、レンダリング方法。
  2. 【請求項2】上記パラメトリック面がNURBS面であ
    る、請求項1のレンダリング方法。
  3. 【請求項3】上記トリム・ポリラインが、上記面上に定
    義されるNURBSカーブより導かれる、請求項1のレ
    ンダリング方法。
  4. 【請求項4】上記パラメトリック面が、U、Vパラメト
    リック座標からX、Y、Zジオメトリック座標へのマッ
    ピングを表わす、請求項1のレンダリング方法。
  5. 【請求項5】上記頂点データが上記頂点のX、Y、Z座
    標を含む、請求項4のレンダリング方法。
  6. 【請求項6】上記パラメトリック面が、上記頂点の各々
    に対して定義された法線ベクトルを有し、上記頂点デー
    タが該頂点の該法線ベクトルのX、Y、Z成分を含む、
    請求項4のレンダリング方法。
  7. 【請求項7】グローバル・メモリと、ローカル・メモリ
    を持つグラフィクス・プロセサを有するグラフィクス・
    システムにおいて、UVパラメトリック座標からX、Y
    ジオメトリック座標へのマッピングを表わし、且つ該グ
    ローバル・メモリ内の頂点データによって定義されるト
    リム・ポリラインによって定まるトリミング領域を有す
    る、トリミングされたパラメトリック面をレンダリング
    する方法であって、(a)UVパラメトリック面を連続
    した複数のVインターバルに分割するステップと、(b
    )上記トリム・ポリラインに交わる各Vインターバルに
    ついて、(1)上記グローバル・メモリに格納されたポ
    リライン・データを読み出すステップと、(2)Vクリ
    ップ・ポリライン・データによって定義されるVクリッ
    プ・ポリラインが形成されるように、読み出されたデー
    タによって定義されるトリム・ポリラインを上記Vイン
    ターバルにクリップするステップと、(3)Vクリップ
    ・ポリライン・データを上記ローカル・メモリに格納す
    るステップと、(4)格納された上記Vクリップ・ポリ
    ライン・データを使用して上記Vインターバルを上記グ
    ラフィクス・プロセサで処理するステップとを含む、レ
    ンダリング方法。
  8. 【請求項8】上記パラメトリック面がNURBS面であ
    る、請求項7のレンダリング方法。
  9. 【請求項9】上記トリム・ポリラインが、上記面上に定
    義されるNURBSカーブより導かれる、請求項7のレ
    ンダリング方法。
  10. 【請求項10】上記グローバル・メモリに格納された上
    記ポリライン・データが頂点データより成る、請求項7
    のレンダリング方法。
  11. 【請求項11】上記処理ステップが、(a)上記Vイン
    ターバルを連続した複数のUVレクタングルに分割する
    ステップと、(b)上記Vクリップ・ポリラインと交わ
    る各UVレクタングルについて、(1)UVクリップ・
    ポリライン・データによって定義されるUVクリップ・
    ポリラインを形成するために上記Vクリップ・トリム・
    ポリラインを上記UVレクタングルにクリップするステ
    ップと、(2)上記UVクリップ・ポリライン・データ
    を上記ローカル・メモリに格納するステップと、(3)
    格納された上記UVクリップ・ポリライン・データを使
    用して上記UVインターバルを処理するステップとを含
    む、請求項7のレンダリング方法。
  12. 【請求項12】凹形ポリゴンの処理が可能なポリゴン・
    プロセサを有するグラフィクス・システムにおいて、U
    、Vパラメトリック座標からX、Yジオメトリック座標
    へのマッピングを表わし、且つトリム・ポリラインによ
    って定まるトリミング領域を持つトリミングされたパラ
    メトリック面をレンダリングする装置であって、(a)
    上記トリム・ポリラインがUVレクタングルの部分集合
    と交わって、該部分集合の各UVレクタングルが、上記
    トリミング領域内に位置する少なくとも1個のポリゴン
    と、該トリミング領域外に位置する少なくとも1個のポ
    リゴンとに分割されるように、パラメトリック面を、交
    差して該UVレクタングルを形成する連続した複数のU
    、Vインターバルに分割する手段と、(b)上記トリム
    ・ポリラインと交わる各UVレクタングルについて、(
    1)上記トリム・ポリラインと上記UVレクタングルの
    交差によって形成される上記トリミング領域内に位置す
    る各ポリゴンの頂点を決定し、(2)上記ポリゴンをレ
    ンダリングするために上記頂点のデータを上記ポリゴン
    ・プロセサに供給する手段とを含む、レンダリング装置
  13. 【請求項13】ポリゴン・プロセサを有するグラフィク
    ス・システムにおいて、U、Vパラメトリック座標から
    X、Yジオメトリック座標へのマッピングを表わし、且
    つトリム・ポリゴンによって定まるトリミング領域を持
    つ、トリミングされたパラメトリック面をレンダリング
    する方法であって、(a)上記トリム・ポリゴンがUV
    レクタングルの部分集合と交わって、該トリム・ポリゴ
    ンの境界と該UVレクタングルとの交差によって形成さ
    れるポリゴンを含むUVポリゴンが形成されるように、
    UVパラメトリック面を、交差して該UVレクタングル
    を形成する連続した複数のU、Vインターバルに分割す
    るステップと、(b)上記UVポリゴンをレンダリング
    するために該UVポリゴンの頂点データを上記ポリゴン
    ・プロセサに供給するステップとを含む、レンダリング
    方法。
  14. 【請求項14】上記UVポリゴンを形成するために上記
    トリミング領域を上記UVレクタングルの各々にクリッ
    プするステップを含む、請求項13のレンダリング方法
  15. 【請求項15】Vクリップ・ポリゴンを形成するために
    上記トリム・ポリゴンを上記Vインターバルにクリップ
    し、上記UVポリゴンを形成するために該Vクリップ・
    ポリゴンを上記Uインターバルの各々にクリップするス
    テップを含む、請求項13のレンダリング方法。
  16. 【請求項16】UVレクタングルの頂点データを得るた
    めに上記UVレクタングルの頂点のパラメトリック面を
    評価し、該UVレクタングル頂点データからUVポリゴ
    ン頂点データを決定するステップを含む、請求項13の
    レンダリング方法。
  17. 【請求項17】UVレクタングルのエッジに沿っている
    かどうかを判定するために上記UVポリゴンの各頂点を
    調べ、かかるエッジに沿っていない場合には、双線形補
    間により上記UVレクタングル頂点データから該頂点の
    データを決定するステップを含む、請求項16のレンダ
    リング方法。
  18. 【請求項18】UVレクタングルの頂点に一致するかど
    うかを判定するために上記UVポリゴンの各頂点を調べ
    、かかる頂点に一致しない場合には、補間により上記U
    Vレクタングル頂点データから該頂点のデータを決定す
    るステップを含む、請求項16のレンダリング方法。
  19. 【請求項19】UVレクタングルのエッジに沿った該U
    Vレクタングルに含まれる第1UVポリゴンの各エッジ
    について、該レクタングル内の第2UVポリゴンの頂点
    が該ポリゴン・エッジに沿っているかどうか決定し、沿
    っていれば、かかる頂点を該第1ポリゴンの頂点として
    含めるステップを含む、請求項13のレンダリング方法
JP3331628A 1990-11-30 1991-11-21 トリミングされたパラメトリック面のレンダリング方法及び装置 Expired - Lifetime JPH07120433B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62096590A 1990-11-30 1990-11-30
US620965 1990-11-30

Publications (2)

Publication Number Publication Date
JPH04287292A true JPH04287292A (ja) 1992-10-12
JPH07120433B2 JPH07120433B2 (ja) 1995-12-20

Family

ID=24488144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3331628A Expired - Lifetime JPH07120433B2 (ja) 1990-11-30 1991-11-21 トリミングされたパラメトリック面のレンダリング方法及び装置

Country Status (3)

Country Link
US (1) US5488684A (ja)
EP (1) EP0488563A3 (ja)
JP (1) JPH07120433B2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07282117A (ja) * 1994-04-08 1995-10-27 Ricoh Co Ltd 自由曲面生成方法及び自由曲面形状の制御方法
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5870097A (en) 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5949428A (en) * 1995-08-04 1999-09-07 Microsoft Corporation Method and apparatus for resolving pixel data in a graphics rendering system
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US5842004A (en) * 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
US5990904A (en) * 1995-08-04 1999-11-23 Microsoft Corporation Method and system for merging pixel fragments in a graphics rendering system
US5828382A (en) * 1996-08-02 1998-10-27 Cirrus Logic, Inc. Apparatus for dynamic XY tiled texture caching
US6639592B1 (en) * 1996-08-02 2003-10-28 Silicon Graphics, Inc. Curve network modeling
US6906718B1 (en) * 1997-04-25 2005-06-14 Microsoft Corporation Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics
US6173271B1 (en) 1997-11-26 2001-01-09 California Institute Of Technology Television advertising automated billing system
US6262741B1 (en) 1998-03-17 2001-07-17 Prc Public Sector, Inc. Tiling of object-based geographic information system (GIS)
US6247019B1 (en) * 1998-03-17 2001-06-12 Prc Public Sector, Inc. Object-based geographic information system (GIS)
US6144338A (en) * 1998-03-17 2000-11-07 Prc Public Sector. Inc. Predictive drop and load algorithm for an object-based geographical information system
US6404435B1 (en) * 1998-04-03 2002-06-11 Avid Technology, Inc. Method and apparatus for three-dimensional alphanumeric character animation
US6661534B1 (en) * 1998-09-16 2003-12-09 Texas Instruments Incorporated Selective screening for printing files in a page description language
JP2000112342A (ja) * 1998-09-30 2000-04-21 Pioneer Electronic Corp 地図情報の処理方法
US6304271B1 (en) * 1999-02-05 2001-10-16 Sony Corporation Apparatus and method for cropping an image in a zooming graphical user interface
US6512522B1 (en) 1999-04-15 2003-01-28 Avid Technology, Inc. Animation of three-dimensional characters along a path for motion video sequences
US6683620B1 (en) * 1999-04-21 2004-01-27 Autodesk, Inc. Relational modeling of trimmed nurbs surfaces
US6920415B1 (en) * 2000-04-12 2005-07-19 California Institute Of Technology Method of trimming a representation of an object surface comprising a mesh of tessellated polygons and related system
US7145564B1 (en) * 2000-06-01 2006-12-05 Ati International, Srl Method and apparatus for tessellation lighting
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
US7245299B2 (en) * 2003-05-12 2007-07-17 Adrian Sfarti Bicubic surface real-time tesselation unit
USRE42534E1 (en) 2000-07-28 2011-07-12 Adrian Sfarti Bicubic surface real-time tesselation unit
US7414635B1 (en) * 2000-08-01 2008-08-19 Ati International Srl Optimized primitive filler
US6624811B1 (en) * 2000-08-31 2003-09-23 Nvidia Corporation System, method and article of manufacture for decomposing surfaces using guard curves and reversed stitching
US7280108B2 (en) * 2000-12-11 2007-10-09 Adrian Sfarti Bicubic surface rendering
US6853373B2 (en) 2001-04-25 2005-02-08 Raindrop Geomagic, Inc. Methods, apparatus and computer program products for modeling three-dimensional colored objects
US20030016233A1 (en) * 2001-06-29 2003-01-23 Bitflash Graphics, Inc. Method and system for manipulation of graphics information
US20030020726A1 (en) * 2001-06-29 2003-01-30 Bitflash Graphics, Inc. Method and system for displaying graphics information
US7518609B2 (en) * 2005-05-27 2009-04-14 The Boeing Company System, method and computer program product for modeling a transition between adjoining surfaces
US7924294B2 (en) * 2006-12-27 2011-04-12 The Mathworks, Inc. Polygon trimming using a modified azimuthal map projection
US8269770B1 (en) 2008-02-29 2012-09-18 Adobe Systems Incorporated Tessellation of trimmed parametric surfaces by walking the surface
CN102110181A (zh) * 2009-12-28 2011-06-29 鸿富锦精密工业(深圳)有限公司 自由曲面面积计算系统及方法
US9177420B2 (en) * 2010-10-25 2015-11-03 Autodesk, Inc. Intuitive shape control for boundary patches
US9082204B2 (en) 2012-08-30 2015-07-14 Qualcomm Incorporated Storage structures for stitching primitives in graphics processing
US9142060B2 (en) 2012-08-30 2015-09-22 Qualcomm Incorporated Computation reduced tessellation
US9076260B2 (en) 2012-08-30 2015-07-07 Qualcomm Incorporated Stitching for primitives in graphics processing
US9595135B2 (en) * 2013-03-05 2017-03-14 Autodesk, Inc. Technique for mapping a texture onto a three-dimensional model
US9965887B2 (en) * 2013-03-05 2018-05-08 Autodesk, Inc. Technique for mapping a texture onto a three-dimensional model
JP6158735B2 (ja) * 2014-03-28 2017-07-05 京セラドキュメントソリューションズ株式会社 画像形成装置、描画処理方法及びプログラム
EP3417381A4 (en) * 2016-02-16 2019-12-04 Board of Regents, University of Texas System SPLINE SURFACE CONSTRUCTION MECHANISMS PROVIDING CONTINUITY BETWEEN SURFACES
US9984496B1 (en) 2016-08-23 2018-05-29 Bentley Systems, Incorporated Technique for compact and accurate encoding trim geometry for application in a graphical processing unit
US10810795B2 (en) * 2018-06-13 2020-10-20 S-Splines, LLC Isogeometric analysis and computer-aided design using S-splines

Family Cites Families (5)

* 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
US5226115A (en) * 1987-02-05 1993-07-06 Hewlett Packard Company Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system
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
JPH0776991B2 (ja) * 1989-10-24 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Nurbsデータ変換方法及び装置

Also Published As

Publication number Publication date
EP0488563A2 (en) 1992-06-03
EP0488563A3 (en) 1993-11-03
US5488684A (en) 1996-01-30
JPH07120433B2 (ja) 1995-12-20

Similar Documents

Publication Publication Date Title
JPH04287292A (ja) トリミングされたパラメトリック面のレンダリング方法及び装置
US6356269B1 (en) Image processing device and system using the same
JP3344597B2 (ja) グラフィック画像をテッセレーション化する方法および装置
US7081895B2 (en) Systems and methods of multi-pass data processing
JP4101275B2 (ja) 走査線ベースのラスタ画像プロセッサにおける奥行き追跡の方法
US6160557A (en) Method and apparatus providing efficient rasterization with data dependent adaptations
US6292192B1 (en) System and method for the direct rendering of curve bounded objects
JP5232358B2 (ja) アウトラインフォントのレンダリング
US7903112B2 (en) Drawing processing apparatus, texture processing apparatus, and tessellation method
US7924278B2 (en) Real-time GPU rendering of piecewise algebraic surfaces
US6828985B1 (en) Fast rendering techniques for rasterised graphic object based images
WO2000002165A1 (fr) Procede permettant de produire des donnees de polygone et afficheur d'images utilisant lesdites donnees
US6906718B1 (en) Method and system for efficiently evaluating and drawing NURBS surfaces for 3D graphics
JP2003271987A (ja) プリミティブにより覆われるピクセルの割合を求める方法
JPH0776991B2 (ja) Nurbsデータ変換方法及び装置
JPH04222071A (ja) テキスチュア・マッピング方法及びその装置
US5684941A (en) Interpolation rendering of polygons into a pixel grid
JP4154336B2 (ja) ラスター画像のフレームを描画する方法及び装置
US6542154B1 (en) Architectural extensions to 3D texturing units for accelerated volume rendering
JP4311877B2 (ja) 副標本化テクスチャ端縁部のアンチエイリアシング
JP3071387B2 (ja) 補間装置および補間方法、並びに画像生成装置
KR100392516B1 (ko) 보간되지 않은 볼륨 데이터의 실시간 렌더링 방법
Bruijns Quadratic Bezier triangles as drawing primitives
EP0288629A1 (en) Gouraud shading on graphics display apparatus
AU2003238615A1 (en) Efficient display update from changing object graphics