JP3344597B2 - グラフィック画像をテッセレーション化する方法および装置 - Google Patents

グラフィック画像をテッセレーション化する方法および装置

Info

Publication number
JP3344597B2
JP3344597B2 JP24624093A JP24624093A JP3344597B2 JP 3344597 B2 JP3344597 B2 JP 3344597B2 JP 24624093 A JP24624093 A JP 24624093A JP 24624093 A JP24624093 A JP 24624093A JP 3344597 B2 JP3344597 B2 JP 3344597B2
Authority
JP
Japan
Prior art keywords
patch
trimmed
pixel data
region
nurbs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP24624093A
Other languages
English (en)
Other versions
JPH06223197A (ja
Inventor
サリム・エス・アビ−エッヅィ
スリカンス・スブラマニアム
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06223197A publication Critical patent/JPH06223197A/ja
Application granted granted Critical
Publication of JP3344597B2 publication Critical patent/JP3344597B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ・グラフィ
ックス表示装置でグラフィック画像を迅速かつ効率的に
表現するための方法および装置に関するものである。更
に詳しくいえば、本発明はコンピュータ・グラフィック
ス表示装置でトリムされたNURBSプリミティブを表
現するための方法および装置に関するものである。
【0002】
【従来の技術】過去においては、コンピュータ・グラフ
ィック装置は膨大な表示資源および膨大なコンピュータ
資源を必要としていた。画像を表現するために求められ
る処理時間の長さは非常に長かった。任意の複雑さの画
像を発生するために何時間も処理するために強力なコン
ピュータを必要としていた。今日では、技術は非常に向
上している。三次元(「3D」)物体の表現はもはや高
性能メインフレーム・コンピュータのために留保されて
いるプロセスではない。複雑なグラフィック物体の表現
は今ではより小型で、あまり強力でないコンピュータで
実現されている。
【0003】更に、グラフィックス・プロセスはより高
度になっている。とくに、高度なグラフィック・プリミ
ティブの利用が今では普通のことである。しかし、高度
なグラフィック・プリミティブの有用性は、コンピュー
タがプリミティブを表示装置で表現できる速さで部分的
に測られていた。そのようなプリミティブの例がトリミ
ングされたNURBSである。トリムされたNURBS
は、表面の関連する部分を定めるトリミング・ループを
有する一様でない合理的なBスプライン表面である。
【0004】トリムされたNURBSにより表されたグ
ラフィック画像の発生は非常に複雑で、時間がかかり、
グラフィック物体を形成するためにトリムされたNUR
BSを用いることにより得られる利益の多くを帳消しに
する。今日のコンピュータ・グラフィックスの動的で、
対話的な性質を考えると、表現の問題は複雑である。
【0005】NURBSのような湾曲した表面を、表面
を定める湾曲した表面プリミティブから直接表現するた
めの技術が開発されている。たとえば、コミュニケーシ
ョン・オブ・ザACM(Communication
oh the ACE)23(1)1980年1月号、
所載のレーン(Jeffery Lane)、カーペン
ター(Loren Carpenter)、ホイッテド
(Turner Whitted)、ブリン(Jame
s Blinn)の「双曲線的に定められた表面を表示
するための走査線法(Scan Line Metho
ds ForDisplaying Parametr
ically Defined Surface
s)」、コンピュータ・グラフィックス(Comput
er Graphics)、21(4)、1987年7
月号、111〜117ページ所載のシェウエ(Sheu
e−Ling Lien)、シャンツ(Michael
Shantz)、プラッツ(Vaughan Pra
tt)の「カーブおよび表面を表現するための適応順方
向相違計算(Adaptive Forward Di
fferencing For Rendering
Curves andSurfaces)」を参照され
たい。しかし、それらの技術は応用が一般的でなく、非
常に制限された種類のNURBSに応用される。更に、
トリミングは一般的なやり方で取扱われることもない。
【0006】コンピュータ・グラフィックス(Comp
uter Graphics)、23巻3号、1989
年7月号107〜116ページ所載の、ロックウッド
(Alyn Rockwood)、ヒートン(Kurt
Heaton)、デービス(Tom Devis)の
論文「トリムされた表面の実時間表現」(Real−T
ime RENDERING OF Trimmed
Surfaces)、プロシーディング・オブ・ザAC
M SIGGRAPH(Proceedingof t
he ACM SIGGRAPH)に、複雑なトリムさ
れたNURBS表面を表現前に三角形に分解する技術が
記述されている。しかし、この技術は画像の表現される
各画面ごとに複雑で、時間のかかるプロセス過程を繰り
返し実行する。
【0007】
【発明が解決しようとする課題】本発明はより簡単に表
現できるコンピュータ・グラフィック表示技術を提供す
ることを目的とする。
【0008】
【課題を解決するための手段】この明細書においては、
トリムされたNURBS表面を表現するために、独特な
グラフィックス・パイプライン、およびそのグラフィッ
クス・パイプラインを利用する方法について説明する。
NURBS(一様でない有理bスプライン)表面はプリ
ミティブであり、境界を定められた二次元パラメータ空
間から、その表面を構成する点の集まりへのマッピング
として定る。トリムされたNURBSのようなグラフ
ィックス・プリミティブを表現するために、コンパイル
と称されるステップと、それに続く二相横断(トラバー
サル)ステップおよび表示ステップによりプリミティ
ブがまず処理される。横断(トラバーサル)の前にグラ
フィックス・プリミティブに対してコンパイルと称され
る処理をすることにより、横断(トラバーサル)中に高
速処理を行える態様へNURBS表面が変えられる。
【0009】コンパイルと称される処理により発生され
る情報の重要な特徴は、それがテッセレーション(te
ssellation)のステップ寸法とは独立してい
ることである。したがって、モデル化のための変換と、
見るための変換との少なくとも一方への大きい変化の下
で有効性を保つ。更に、プリミティブを表現するための
処理の複雑さのかなりの部分がコンパイルと称されるス
テップに吸収され、従って、横断(トラバース)時にお
けるテッセレーションの複雑さを最少にするものであ
る。したがって、同じプリミティブの以後の表現(たと
えば、異なる画面)が、迅速な横断および迅速な表示の
ためにコンパイルと称される処理をされた情報を利用す
る。
【0010】コンパイルと称される処理時には、トリム
されたNURBSを単調なv領域へ細かくする。それら
のv領域は、以後の画面および表現に対して有効なまま
である。次に、NURBSの重要な部分を決定するため
にNURBS検査される。それからNURBSをベツ
ィエ成分(または「パッチ」)へ変える。NURBSに
して定められたトリミング・ループの関連する部分が
その影響を受けるベツィエ成分に組合わされるように、
そのトリミング・ループをベツィエ・レベルへ変える。
各ベツィエ・パッチを、関連するトリミング・ループの
部分により囲まれた、「v領域」と呼ばれる、1つまた
は複数のu−v単調領域へ変える。先に述べたように、
それらのステップは1回行う必要があるだけである。同
じプリミティブの種々の画面および表現は発生されるv
領域に影響を及ぼさない。
【0011】コンパイルと称されるステップによりグラ
フィック・プリミティブを処理すると、プリミティブを
横断(トラバーサル)ステップで処理する。最初の段階
はアルゴリズム的に複雑である。したがって、第1の段
階を汎用コンピュータ装置で実行する方が有利である。
第2の段階はアルゴリズム的に簡単で、限られた量のメ
モリを必要とするだけであるが、浮動小数点専用で、反
復処理型である。したがって、第2の段階は浮動小数点
プロセッサのような高速の専用プロセッサで行うことが
好ましい。しかし、プリミティブが単調v領域へ変えら
れるにつれて、画像を発生するという負担を並列処理の
ためにプロセッサの間で分担できる。
【0012】横断(トラバーサル)の段階I において
は、各パッチに対して一様なステップ・サイズを決定す
る。横断(トラバーサル)の第2の段階II中は、コンパ
イルと称される処理中に決定された各単調v領域をテッ
セレーションにすることにより、トリムされているNU
RBSを複数の三角形へ変換する。それから照明計算を
行い、トリムされたNURBSを表す画素データをフレ
ーム・バッファに保存する。画素データにより指示され
た色および輝度で各画素を作動させるために表示を制御
する表示制御器によりそのフレーム・バッファはアクセ
スされる。
【0013】このプロセスにより、トリムされたNUR
BSを表現するための分布された高速かつ費用効率の高
いシステムが得られる。コンパイルと称される処理中に
行われる複雑な処理はホストシステムで行われる。しか
し、コンパイルと称される処理中に求められる処理は多
数の横断(トラバーサル)において1回行う必要がある
だけである。コンパイルと称される処理中に発生された
情報は、変化するモデル化変換および変化する画面化変
換の下で再び使用でき、しかも表示座標におけるサイズ
しきい値と偏差しきい値の少なくとも一方に常に合致す
る。
【0014】横断の段階I はホストプロセッサで行うこ
とができ、あるいは、各パッチをテッセレーション化す
るためにステップ・サイズを決定するようにプログラム
された汎用コプロセッサで行うことができる。トリムさ
れたNURBSはベツィエ・パッチへ細分されており、
各パッチはテッセレーション化するために求められる全
ての情報を含んでいるから、各パッチをテッセレーショ
ン化するために、並列に動作して照明計算を行い、各三
角形をフレーム・バッファに保存するために画素データ
へ変換する複数の専用プロセッサにより、横断(トラバ
ーサル)段階IIのステップを実行できる。更に、トリム
された各ベツィエ・パッチはv領域へ細分されているか
ら、v領域も並列処理できる。それから、表示制御器は
フレーム・バッファをアクセスし、表示装置中の対応す
る画素を作動させる。
【0015】
【実施例】 独特なグラフィックス・パイプラインおよびそのグ
ラフィックス・パイプラインを利用する方法が、複雑な
トリムされたNURBSプリミティブを次のように表現
する。 すなわち、長い時間とオーバーヘッドを必要
とする複雑な動作がプリミティブに対して1度処理され
るようにして、 NURBSを形成するパッチの諸特
徴を保持するトリムされたNURBSの副要素と、各パ
ッチに対するトリミング・ループの部分とを発生する。
それからそれらの要素を、トリムされたNURBSの各
表現ごとに独立して並列に処理して、トリムされたNU
RBSを高速で、ただし正確に表現する。
【0016】本発明の方法および装置はコンピュータ・
グラフィックス装置においてトリミングされたNURB
S表面を動的に表現する。本発明はトリムされたNUR
BSの湾曲した表面を、射出瞳に対する表面の空間関係
に応じて、適切な寸法にされた三角形へのテッセレーシ
ョン化する。その関係が対話型グラフィックス用途で大
きく変化する傾向があるので、適切な寸法にされた三角
形を繰り返し選択する必要がある。これはトリムされた
NURBS表面の動的なテッセレーション化のための強
力な動機づけを行う。NURBSは強力な幾何学的プリ
ミティブであって、最近の幾何学に関連する企画および
システム、たとえば、PIGS−plus、において
極めて一般的になりつつある。
【0017】NURBSというのは、円錐表面自由な
形に湾曲された表面を表すことができる不連続多項式関
数である。NURBS(一様でない有理bスプライン)
表面が、囲まれた二次元パラメータ空間から、表面
【0018】
【数1】 を構成する点のセットへのマッピングとして定義され
る。上の式で、S(u,v)は表面、Pi,j はデボーア
(Deboor)制御点のn*mアレイを表し、Bj,k
(u)は、ノット・ベクトル{Up},p=1〜n+k
により定められるk次のi番目のBスプライン基礎関数
(basisi function)、Bj,l(v)は
ノット・ベクトル{Vq},q=1〜m+lにより定め
られるl次のj番目のBスプライン基礎関数であり、
u、vはそれぞれパラメータUk≦u≦Un+1、 Vl≦
v≦Vm+1 である。したがって、NURBS表面は3D
空間内のデボーア制御点のセットと、2Dパラメータ空
間内のU方向とV方向におけるノット・シーケンスによ
り定められる。
【0019】NURBSはローカル制御特性を示し、モ
デル化の融通性を提供するものであって、しかも高度の
多項式の使用を避ける。同時に、NURBSはベツィエ
表面の諸特性を示す。ベツィエ表面は単一の多項式関数
である。NURBSは乗算および加算により数値を求め
ることができる。
【0020】典型的には、Bスプラインは長方形トポロ
ジーを有する。表面の一部だけを使用するものとする
と、表面の一部を定めるためにトリミング・ループがパ
ラメータ空間内で定められる。それらのトリミング・ル
ープは端と端が連結された2DNURBSカーブであ
る。トリミング・ループの外側の領域は使用されない。
トリミング・ループはいくつかのNURBS表面の合成
を許し、複合NURBSプリミティブを本質的に供給す
る。この性能によって、トリムされたNURBSがトリ
ムされないNURBSプリミティブの重要な制限を克服
するから、トリムされたプリミティブは非常に重要にさ
れる。
【0021】本発明のシステムが図1のブロック図によ
り概念的に示されている。CPU10と、システム・メ
モリ15と、入力/出力(I/O)装置20と、表示プ
ロセッサ装置25とがシステム・バス30を介して結合
される。CPU10は中央プロセッサすなわちホストプ
ロセッサとして機能し、発生された湾曲した表面を発生
するアプリケーション・プログラムを典型的に実行し、
本発明に従って表示する。CPU10は強力な汎用プロ
セッサとして機能し、複雑なプログラムおよびプロセス
を実行するために、システム・メモリ15、I/O装置
20およびその他の周辺装置(図示せず)のような使用
可能な資源を利用する。CPU10は、システム、たと
えば、アメリカ合衆国カリフォルニア州マウンテン・ビ
ュー(Mountain View)所在のサン・マイ
クロシステムズ社(Sun Microsystem
s,Inc.)により製造されているワークステーショ
ンのようなコンピュータ・ワークステーションへ構成で
きる。
【0022】後で詳しく説明するように、表示プロセッ
サ装置25は、湾曲表面を表現するためのプロセスの部
分として求められる、簡単であるが、非常に反復される
計算集中プロセスを実行するためにとくに構成される。
表示プロセッサ装置25は1つまたは複数の浮動小数点
処理装置(FPU)32,37,41、1つまたは複数
のメモリ35,38,42および少なくとも1つの専用
VLSI33,34,36またはある反復プロセスを適
時かつ経費効率的なやり方で実行する類似の部品で構成
される。表示プロセッサ装置25は表現すべきトリムさ
れたNURBSの視覚表現を表す画素データを発生し、
その画素データをフレーム・バッファ40に保存する。
画素データは、表示装置50のx−y座標空間で容易に
識別される順序でフレーム・バッファ41に保存され
る。
【0023】表示制御器45は、フレーム・バッファに
保存されている画素データにより定められたトリムされ
たNURBSの表示を発生する。表示制御器45はそれ
の制御器55を介してフレーム・バッファを、ラスタ走
査速度、たとえば、1秒間当たり60回、に従って1つ
の時刻に1本の走査線でフレーム・バッファ内部を周期
的にアクセスする。画素データをアクセスするためにメ
モリアドレスが制御器55により発生される。画素デー
タはフレーム・バッファから順次読出されて、表示制御
器カラー・ルックアップ・テーブル(LUT)60へ入
力される。LUT60は、表示装置50における出力、
たとえば、ビームの輝度および色を制御するために用い
られるデジタル制御信号を含む。LUT60による信号
出力はデジタル−アナログ変換器(DAC)65,70
および75へ入力される。それらのデジタル−アナログ
変換器は、表示すべき画素の赤成分と、青成分と、緑成
分とのそれぞれの位置と強さとを制御するためのアナロ
グ信号を発生する。表示装置は陰極線管(CRT)のよ
うなラスタ走査装置、またはプロッタのようなハードコ
ピー装置とすることができる。説明のために表示装置を
CRTとする。しかし、本発明のシステムに従って他の
表示装置を利用できることが当業者には明らかである。
【0024】本発明のプロセスにおいては、トリムされ
たNURBS表面の処理は4つの一般的なステップに分
割される。次に図2を参照する。第1のステップである
コンパイルと称されるステップ103は、トリムされた
NURBSプリミティブをコンパクトな画面とは独立の
態様へ処理する(以下単にコンパイルすると言う)1回
だけのオペレーションである。トリムされたNURBS
の処理に含まれている複雑さのほとんどはこのステップ
で吸収される。NURBS表面が横断されるたびに、こ
のコンパイルされた態様がテッセレーション処理への入
力として用いられる。第2のステップ105は横断(ト
ラバーサル)の第1の段階であって、テッセレーション
のためのステップ寸法決定のようなオペレーションを含
む。このステップはアルゴリズム的には複雑であるが、
演算処理としては集中的なものではない。第3のステッ
プ107は横断(トラバーサル)の第2の段階IIであっ
て、表面の実際の評価および三角形へのテッセレーショ
ンを行う段階である。この段階はアルゴリズム的には簡
単であるが、演算処理として集中的である。2つの横断
(トラバーサル)段階の違いは、グラフィックス加速器
の性能を基にしているが、典型的には、第1の段階を処
理するホストプロセッサのような汎用フロントエンド・
プロセッサ、および、並列に動作して第2の段階を処理
する1つまたは複数の浮動小数点プロセッサの性能を基
にしている。このようにして、アルゴリズム的に複雑な
ステップをフロントエンド・プロセッサで実行でき、ア
ルゴリズム的に簡単ではあるが浮動小数点を必要とする
ステップを特殊な浮動小数点プロセッサで並列に実行で
きる。三角形がテッセレーションされると、陰を含む
ようにそれらの三角形は迅速かつ容易に処理され、フレ
ーム・バッファに保存するための画素データへ変換さ
れ、第4のステップ109中に実行されて表示装置へ出
力される。
【0025】本発明の利点は、トリムされたNURBS
に関して以前に決定された情報を再使用できることであ
る。たとえば、画面を変更するものとすると(ステップ
106)、コンパイル中(ステップ103)に発生され
た情報を再使用することにより、時間と費用のかかるコ
ンパイル(すなわちコンパイルと称される処理)の計算
を避けることができる。同様に、ある場合には、行うべ
き表現がある表示パラメータ、たとえば、テッセレーシ
ョンのために用いられるステップサイズ、の変更を求め
ないとすると、横断の段階I 107中に発生されたある
情報を本発明のプロセスは再利用できる。
【0026】次に、図3を参照してコンパイル・プロセ
スを説明する。ブロック310においては、NURBS
を複数のベツィエ・パッチへ変換する。これは処理を簡
単にする。その理由は、各ベツィエ・パッチが処理が容
易である単一の多項式だからである。NURBSをベツ
ィエ・パッチへ変換するプロセスについての詳細は、た
とえば、雑誌、コンピュータ・エイデッド・ジオメトリ
ック・デザイン(Computer Aided Ge
ometric Design)1巻(1984)1〜
60ページ所載のボーム(Boehm)、ファリン(F
arin)、カフマン(Kahmann)の「CAGD
におけるカーブおよび表面法の概観(ASurvey
of Curve and Surface Meth
odin CAGD)」と題する論文を参照されたい。
この論文には、ノットを挿入し、基礎(basis)を
変更することによりNURBSをベツィエ・パッチへ変
換する方法が記述されている。
【0027】NURBSの主な部分はNURBSおよび
それのトリミング・ループにより定められる。各ループ
は閉ループであって、向きを有する。トリムされたNU
RBSの主な領域は奇数巻き法則または左手の法則で定
めることができる。すなわち、その領域の主な部分はあ
らゆるトリミング・カーブの左側にあるという法則であ
る。これが図4に示されている。図4は3つのトリミン
グ・ループ400,410,420を示す。それらのト
リミング・ループは奇数巻き法則と左手の法則に一致す
る。各ループは矢印で示されている向きを有し、たとえ
ば、左手の法則に従うことによりトリミング・ループ4
00,410,420は2つの主な部分を定める。第1
の部分430はトリミング・ループ400と410によ
り挟まれ、第2の主な部分440はトリミング・ループ
420の内部として定められる。
【0028】図3のステップ320において、トリミン
グ・ループ境界上の影響を受けるパッチでループの関
連する部分が識別されるように、トリミング・ループが
区分(セグメント化)される。トリミングされたパッチ
をコンパイルするために以下のプロセスを用いることが
好ましい。しかし、他のプロセスを採用できることが当
業者には明らかである。
【0029】次に、図5を参照してトリミング・ループ
をコンパイルするための好適な実施例について説明す
る。ステップ450において、パッチの二次元アレイを
空に初期化する。このアレイは、コンパイル・プロセス
が終了すると、各パッチのクラスを識別する情報と、各
パッチを形成する単調v領域と、境界交差(とじる操作
を行うために横断中に利用される)についての情報とを
含む。空として分類されたままであるパッチは、主な部
分から完全にトリムされたパッチである。それらのパッ
チは横断中は処理されない。完全であると分類されたパ
ッチは、主な部分内に完全に含まれるパッチである。ト
リムされたと分類されたパッチはパッチを通るトリミン
グ・ループを有する。
【0030】ステップ455においては、各トリミング
・ループに対してトリミング・チエーンが発生される。
トリミング・チエーンは、トリミング・ループを表すセ
グメントのアレイである。各セグメントはチュープル
(tuple)(u,v,udir,vdir)であ
る。ここに、項uとvはそれぞれセグメントのu座標お
よびv座標であり、udir,vdirはセグメントの
座標またはセグメントが増幅大しているか、減少してい
るかを識別する。各セグメントはパラメータ空間内の直
線セグメントまたはベツィエ・カーブとすることができ
る。
【0031】トリミング・カーブはまずベツィエ多項式
部分へ細分される。トリミング・カーブが最初は不連続
に直線的(区分直線ないし折れ線)であるとすると、そ
れらの部分は直線的なままである。トリミング・カーブ
が最初は不連続に直線的でないセグメントであり、かつ
一定数のステップを用いてトリミング・カーブをテッセ
レーション化することをユーザーが希望したとすると、
それらのベツィエ部分はテッセレーション化され、直線
的なセグメントへ細分される。その結果として、今は各
トリミング・ループは直線セグメントまたはベツィエ・
セグメントで構成されることになる。
【0032】ステップ460においては、チエーンをセ
グメントの単調チエーンへ分解するために、各トリミン
グ・チエーンがセットごとに順次横断される。トリミン
グ・チエーンの第1のセグメントが単調チエーンをスタ
ートさせるために用いられる。トリミング・チエーンが
スタートするパッチはアレイ中にトリムされたとしてラ
ベル付けされる。トリミング・チエーン中の以後の各セ
グメントが検査される。ステップ465においては、ト
リミング・チエーン中の端(極値)のuとvが識別され
る。セグメントが以前のセグメントとは逆のu/vの向
きを有するならば、端(極値)のu,vが生ずる。各端
(極値)においては、「端(極値)の頂点」が形成され
る。
【0033】ステップ470においては、端(極値)
頂点が分類され、その頂点はパッチに関連する分類され
た頂点リストへ挿入される。この頂点リストは降順v順
にされる。ここで説明している実施例のために、分類
の種類が図6aに示されている。頂点が端の型により識
別され、頂点を形成する適切なセグメントに関連して構
成される。後で説明するように、トリムされたNURB
Sを表示装置で表現するためにこのプロセスで利用され
るv領域を発生するために、段階I 横断プロセス中に、
パッチに関連する頂点リストが参照される。また、端
(極値)が検出されると、その頂点において単調チエー
ンが終らされ、新しい単調チエーンが開始される。
【0034】ステップ475においてセグメントがパッ
チ境界を横切るとすると、その交差点に区切り頂点が形
成される。境界が左または右の境界であるとすると、そ
の頂点は左パッチおよび右パッチに対して分類される。
この実施例のための分類が図6bに示されている。区切
り頂点はパッチのための頂点リストに挿入される。ま
た、区切り頂点は、パッチ境界のための区切り頂点の分
類されているリストに挿入される。それらのリストに含
まれる頂点はvの降順(上から下)で分類される。それ
らのリストはv領域を形成するために後で用いられる。
単調チエーンが区切り頂点で終らされ、新しい頂点が開
始される。全てのセットについてこのプロセスが続行さ
れる、ステップ465,470,475,480。
【0035】 以上説明した動作は、トリミング・セグ
メントと、u/vアイソ・ライン(iso−line)
との交差(パッチの境界の識別となる)の決定を含む。
トリミング・チエーン中の端(極値)の識別も含む。そ
れらの操作をベツィエ・カーブに対して行うために、根
を求めるアルゴリズムを使用することが好ましい。たと
えば、グラッスナー(Andrew Glassne
r)編「グラフィックス・ジェムス(Graphics
Gems)」(アカデミック・プレス(Academ
ic Press)、1990)所載のシュナイダー
(Philip Schneider)の「ベツィエ・
カーブを基にした求根器(A Bezier Carv
e Based Root Solver)」を参照さ
れたい。
【0036】座標軸へ移動させられたベツィエ・カーブ
の根を求めることにより、アイソ・ライン(同線)との
交差が計算される。ベツィエ・カーブの一次微分の根を
求めることにより極値が求められる。求根器を用いるこ
とにより、極値とパッチの交差がパラメータ値に関し
て決定される。
【0037】それからそのパラメータ値においてベツィ
エ・カーブが、そのパラメータ値に共通の終点を持つ2
つのカーブへ分解される。この技術により、カーブを線
分へテッセレーション化することなしに、コンパイルお
よび横断を続行するために必要な情報が提供される。
【0038】根を求めることは膨大な計算を要すること
であるから、根を決定するための必要性を最少にするた
めに、ベツィエ・カーブの独特の特性が利用される。そ
れらの場合には、求根器を用いる前に制御点に対して予
備検査が行われる。たとえば、制御多角形(ベツィエ・
カーブの制御点を結ぶことにより見出される)が極値を
有する場合にだけ、カーブ自体が極値を有するものと仮
定できる。同様に、制御多角形がパッチ境界と交差する
場合にだけ、カーブは境界と交差する。第3に、u/v
状態の分類と頂点の分類がベツィエ・カーブの終点補間
特性を用いて計算される(すなわち、カーブの勾配が、
多角形の終点における多角形の勾配に等しい)。
【0039】ノット線により分離された複数のベツィエ
・パッチによりNURBSが形成される。パッチは長方
形に見え、uノット線とvノット線により囲まれた長方
形を有する。パッチの隅がuノット線とvノット線の交
差位置に定められる。トリミング・カーブの解析が終わ
ると、パッチ境界のコンパイルが区切り、各パッチのた
めに極値を利用できる。この情報を用いて、全てのトリ
ミング・カーブがひとたび処理されると、ステップ48
5において、パッチの隅を行ごとに調べて、主な領域の
内側にある各パッチの隅と、主な領域の外側にある各パ
ッチの隅を決定する。奇数巻き法則に表面から光線が延
びて奇数のパッチ境界(すなわち、ノット線)と交差す
るものとすると、そのパッチは主な領域の内部にあるこ
とになる。光線が偶数のパッチ境界と交差するならば、
そのパッチは主な領域の完全に外側にある。これは、v
ノット線が隅の左側に含む区切りの数を調べることによ
り容易に行うことができる。この数が奇数であるとする
と、奇数巻き法則を用いることにより、隅は主な部分の
内側である。この数は、vノット線である境界に対する
分類された頂点リストから容易に決定できる。交差の数
は奇数であれば、隅は主な部分の内側である。
【0040】ステップ490においては、パッチの左上
隅がトリミング・ループの内側にあり、トリミング・ル
ープがパッチを通るものとすると、トリミング・ループ
により影響されないパッチが完全であると分類される。
上のステップを実行することにより、NURBSトリミ
ングがパッチ・レベルへ細分される。したがって、トリ
ミングの以後の処理をパッチごとに独立に行うことがで
きる。
【0041】トリミング・ループの処理はいくつかの特
殊な場合を考慮にいれることが好ましい。それらは、ト
リミング・チエーンを描く時に守られる規約セットを識
別し、それにより一般的な場合に対する解を提供するこ
とにより特殊な場合の取扱いを避けることによって取り
扱われる。選択される規約は、トリミング・ループが基
にする左手法則により影響を受ける。
【0042】第1の規約は、水平または垂直のトリミン
グ・セグメントを分類すべきこと、およびそれが左側へ
僅かに回されるかのように取り扱われることを指定す
る。これは、トリミング・セグメントが左手の法則に従
って向けられるならば、良く定められる。この規約は、
トリミング・セグメントが水平方向または垂直方向へ向
けられるにつれてトリミング・セグメントがノット線に
重なり合う場合も取り扱う。
【0043】第2の規約は、ノット・セグメントで正確
に終わるトリミング・セグメントがセグメントより無限
小だけ短くなるかのように、そのトリミング・セグメン
トが取り扱われることを指定する。したがって、頂点は
パッチ境界リストでは識別されない。その結果、次に連
続するトリミング・セットが隣のパッチへ続くとする
と、1つのセグメントがパッチ境界で識別されるよう
に、それがノット・セットと適切に交差するかのように
取り扱われる。さもないと、連続するトリミング・セグ
メントが隣のセグメントへ続かないとすれば、ノット・
セグメントとの交差は記録されず、境界上の点は、その
点がパッチ境界リスト中の境界上にないかのように取り
扱われる。
【0044】図7aは、水平(2)(4)トリミング・
セグメントまたは垂直(1)(3)トリミング・セグメ
ントが、図示の矢印により示されているように、左側へ
僅かに回されるかのように、それらのセグメントを取り
扱うための第1の規約を示す。図7bは、境界上の点が
境界より短くなるかのようにその点が取り扱われるよう
な第2の規約を示す。
【0045】第3の規約は、トリミング・セグメント
が、ノット線の入り組んでいる部分である隅の点と交差
するものとすると、セグメントは、それが左側へ僅かに
移動させられるかのように取り扱われる。これが図7c
に示されている。図7cは、左へ僅かに移動されている
第2の隣のセグメントをおのおの有する隅の点と交差す
る逆向きの2つのセグメントを示す。
【0046】次の規約は、トリミング・チエーンの始点
が隅に一致するか、または境界の上にあるとすると、そ
の点はノット線上にあり、その点がノット線から僅かに
移動されるかのように取り扱われる。その点がBスプラ
イン境界上にあるとすると、空はパッチ内へ移動させら
れるかのように取り扱われる。たとえば、左端の左境界
上の点は、その点が右へ移動させられるかのように取り
扱われる。あるいは、トリミング・チエーンが終わるパ
ッチ内へある点が移動させられるかのようにその点は取
り扱われる。すなわち、そのチエーン内の最後のセグメ
ントが、その点が存在するノット・セグメントと交差す
る必要がないように、その点は移動させられるかのよう
に取り扱われる。これが図7dに示されている。
【0047】一致する端の点を分類されているリストに
挿入できるように、頂点の型の間の序列を定めるために
更に別の規約を使用できる。たとえば、一致している端
の型の2つの頂点2B,3Aが与えられると、3A頂点
が属するトリミング・ループ上にきて、最初に処理せね
ばならないから、その3A頂点へ優先順位が与えられる
(図6a参照)。これは、種々の態様で生ずることがあ
る種々の頂点型のルックアップ・テーブルを提供し、各
態様に付いての優先順位を識別することにより、行うこ
とが好ましい。
【0048】それらの規約は組合わされてそれらの場合
のある組合わせへ適用される。たとえば、図7eに示す
ように、ノット線に重なり合い、かつある隅に終わるト
リミング・セグメントが左へ回され、それが終端する垂
直ノット線に達しないかのように、そのトリミング・セ
グメントが取り扱われる。
【0049】トリミング・ループがコンパイル中に処理
された後で、下記の情報を各パッチごとに今利用でき
る。 1)パッチを通って延びるu−v単調トリミング・チエ
ーンのリスト。各単調チエーンはスタート頂点と、トリ
ミング・セグメントと、終端頂点とで構成される。 2)降順v順序で分類されているカウンタにより識別さ
れる端の頂点のリスト。このリストはポインタと、どの
ような型の端であるかについてのセグメント情報と、そ
れが結び付く2つの単調セグメントへのポインタとを含
むことが好ましい。 3)パッチの4つの境界のための区分頂点の分類された
パッチ境界リスト。それらは、上から下へ、または左か
ら右へ、により分類された頂点のリストを含むことが好
ましい。左/右パッチ境界上の区分頂点は2種類の頂点
型(各パッチに1つ)を有することに注目すべきであ
る。
【0050】各パッチについての情報を各種のデータ構
造およびフォーマットで維持できる。たとえば、境界お
よび隅情報を、表現すべき全表面に関する境界格子また
は骨格オブジェクトにより所有および維持できる。それ
から、端についての情報は各パッチオブジェクトにより
所有され、維持される。各端頂点または境界頂点の端の
u,v座標と、端の型と、それが結合する2つの単調チ
エーンとを識別する。
【0051】図3を再び参照する。ステップ330にお
いて、パッチはここでv領域と呼ぶものへ分割される。
それらの単調v領域は迅速な横断(トラバーサル)を行
えるある特性を有する。単調v領域は水平な向きの上ベ
ース(トップ・ベース)および下ベース(ボトム・ベー
ス)と、左側および右側とで構成される。図8は生ずる
ことがある可能なu−v単調v領域型の主セットを示
す。図においてKはvノット・セグメントを表し、Rは
一定のベースを表し、Gは潜在的な間隙を示す型の頂点
を有するベースを表す。左側と右側はu−v単調トリミ
ング・セグメントのチエーンでおのおの構成される。そ
れらのセグメントは直線状またはベツィエ・セグメント
とすることができる。側面はuの降順、uの昇順または
境界として分類される。その境界はパッチの左境界また
は右境界を示す。横断時間処理は左側および右側の型に
依存する。したがって、コンパイルにおいては、図8に
示すように各v領域を9種類のうちの1つに分類する。
【0052】v領域を完結するためのプロセスの流れ図
が図9に示されている。ステップ500においては、左
パッチ境界と、右パッチ境界と、上パッチ境界とに対す
る区分頂点の分類された境界リストがアクセスされ、重
要な境界隅の内側のパッチがリストに付加される。ステ
ップ505においては、左/右境界区分頂点(それらは
上から下へ分類される)がv領域の側境界に対応して取
られる。ステップ510においては、上の区分頂点対
(それらの対は最大のv座標値を有する)がアクティブ
領域の始まりとして識別される。アクティブ領域は、そ
の領域の上のベース(トップ・ベース)が定まっている
が、下のベース(ボトム・ベース)はまだ決定されてい
ないv領域である。それから処理が開始されて、アクテ
ィブ領域を完結するために下の境界を決定する。したが
って、ステップ515においては、端の頂点の分類され
たリスト中の各頂点が処理される。
【0053】頂点の型はv領域の形成を決定する。たと
えば図6aと図6bを参照して、型1aと1bの頂点が
アクティブなv領域の完結と新しいv領域の起動を示
す。そのような頂点はアクティブな領域の左側/右側の
下にある。水平線532が頂点を通って引かれ、セグメ
ント2つのチエーンとなるようv領域の他の側を形成す
トリミング・セグメントの単調チエーンを切断する。
水平線はv領域の下ベース(ボトム・ベース)と、開か
れている新しいv領域の上ベース(トップ・ベース)
を示す。セグメント・チエーンの切断を、交差するため
の正しいセグメントの位置を指定するための2進サーチ
・ルーチンを用いて行うことができる。新しい頂点は交
点に形成される。交差するセグメントがベツィエ・カー
ブであるとすると、根を求めるアルゴリズムを用いて交
点を計算することが好ましい。
【0054】型2Aの頂点はアクティブな領域の完成と
2つの新しいアクティブな領域の起動を示す。これは、
この頂点を囲むアクティブなv領域を見出すことにより
行われる。水平線533が頂点を通って引かれてアクテ
ィブな領域の下と2つの新しい領域の上を描く。それら
2つの新しい領域のうちの1つはその頂点の左側に位置
させられ、他の1つはその頂点の右側に位置させられ
る。
【0055】頂点のu,v座標値は、完成されたv領域
の下ベースを識別する情報とともに維持される。後で説
明するように、テッセレーション化の間に続いて生ずる
ことがある潜在的な間隙を避けるためにその情報が利用
される。各作用を受けるv領域でその情報を維持するこ
とにより、v領域の間の独立性が達成され、従って横断
中にv領域に並列処理を行うことができる。
【0056】型2Bの頂点は新しいv領域の起動を示
す。型3Aの頂点はアクティブなv領域の完成を示す。
型3Bの頂点は2つのv領域の完成と新しいv領域の開
始を示す。この頂点で終わるv領域は識別され、2つの
新しいv領域はその頂点を通って水平線534を引くこ
とにより識別される。頂点のこのu,v座標値は、新し
いアクティブなv領域の上境界で識別される。というの
は横断中にv領域の間に可能な間隙が生ずることがある
からである。
【0057】ステップ520においては、下パッチ境界
の部分を下ベースとして識別することにより残りのアク
ティブなv領域が完成される。ステップ525において
は、以後の横断のためにv領域が最適にされ、パッケー
ジされる。たとえば、衰えたv領域が無くされる。衰え
たv領域というのは、上のベースと下のベースが一致
し、かつ潜在的な間隙を有するものとして識別される頂
点を持たないような領域を指す。区分リストからの区分
頂点であって、左側にある区分頂点の単調対により識別
されるセグメントの順序が逆にされて、v領域の両側が
下から上へ向かうセグメントを有するようにする。ま
た、区分頂点により定められるセグメントはパッチ・パ
ラメータ空間のローカル座標へ変換される。というのは
トリミング・ループがBスプラインのパラメータ空間内
で定められるからである。ステップ530においては、
左側境界と右側境界の上のQ点の分類されているリスト
が各v領域ごとに発生される。Q点は、1つのv領域を
完成し、新しいアクティブなv領域をスタートさせる時
に「チョッピング」が生ずるために発生される新しい点
である。区分点およびQ点の分類されているリストが発
生される。それらのQ点は、後で説明するように、隣接
するパッチの間の間隙を綴じるために用いられる。
【0058】v領域がひとたびコンパイルされると、各
v領域をコンパイル中に行われた分類に従って独立して
テッセレーション化できる。そうすると高速の専用プロ
セッサにより並列処理が行われて、トリムされたNUR
BSのテッセレーション化および表示を迅速に行う。コ
ンパイルが終わると、一定のノットまたは間隙としてお
のおの分類されている上ベースおよび下ベースにより、
各v領域が定められる。各v領域の左側と右側は直線セ
グメントおよびベツィエ・セグメントのu−v単調シー
ケンスより成る。それらのセグメントは、側面がトリミ
ング・ループにより形成されるか、パッチの境界の終点
を識別する2つの点より成るのであれば、vの昇順およ
びuの昇順または降順である。
【0059】図10はトリムされたNURBSのコンパ
イルの例を示す。とくに、この図はトリムされたNUR
BSのパッチの1つをコンパイルするためのステップの
詳細を説明するために用いられる。トリミング・ループ
はトリミング・チエーンへまず変換される(ベツィエの
場合にはテッセレーションにはされない)。チエーンは
横断させられ、区分されて、各パッチの端が識別され
る。この結果としてパッチごとのu−v単調サブチエー
ンのリストになる。それから、重要な領域の内側のパッ
チ隅が識別される。
【0060】なお図10を参照すると、2つのトリミン
グ・ループをコンパイルする結果として、1つのループ
における区切り(I3/1A)および(I4/1A)
と、他のループにおける区切り(I1/2B)および
(I2/1B)と端(P1/3B)、(P2/2A)お
よび(P3/3A)を識別することになる。上のvノッ
ト・セグメントまたは下のvノット・セグメントに無い
頂点は降順vの順序で分類される次に順序、すなわち、
(I3,P2,I2,P3,I4,P1,I1)で頂点
になる。頂点I1とP1が同じv値を持つとしても、前
記規約により、I1はP1「より高い」として取り扱わ
れる。上vノット・セグメントまたは型が1A,1B,
2A、または2Bである頂点の場合には、後に続く単調
チエーンおよびそれらのチエーンの型が決定される。と
くにI3−I4(D)、C3−I2(B)、P2−P1
(I)、P3(I)、I1−P1(D)、C2(B)、
およびI4−C1(B)である。vは減少して、「一定
の」パッチを示すものと仮定しているから、DまたはI
は向きを示すために十分なラベルであることに注目すべ
きである。したがって、セグメントがu方向にどれだけ
向けられているかを示すことが必要なだけである。
【0061】頂点がひとたび識別されると、v領域が構
成される。上のvノットにおける頂点はアクセスされ、
下のv各頂点ノット線に達するまで、各頂点セットが調
べられる。したがって、v領域が起動させられて上のv
ノット・セグメントの検査を基にして(I3−I4
(D),C3−I2(B),R)を識別する。次の頂点
(P2/2A)(すなわち、2A型の点P2における頂
点)が処理される。P2は2A型であるからP2はアク
ティブな領域の内側である。それからQ1,Q2が決定
され、v領域T1:(I3−Q1(D),C3−Q2
(B),G(P2),R)を形成する。それから、新し
いv領域が起動させられ、(Q1−I4(D),P2−
P1(I),R)および(P2−P3(I),Q2−I
2(B),R)により最初に識別される。それから次の
頂点I2が処理される。I2は1B型であるから、アク
ティブなv領域の右側の下にある。Q点Q3が決定さ
れ、v領域は閉じられる。これはT2:(P2−Q3
(I),Q2−I2(B),R,R)として識別され
る。
【0062】次の頂点P3が処理される。P3は3A型
で、アクティブなv領域T3:(P3−Q3(I),I
2−P3(D),R,P)を閉じる。次の頂点がリスト
から処理される。I4は1A型であるから、アクティブ
なv領域の左側の下にある。水平線を横切って引かれ、
点PQが決定され、v領域T4が閉じられる:(Q1−
I4(D),P2−Q4(I),R,R)。v領域T4
が閉じられるから、点(I4−CI(B),Q4−P1
(I),R)を用いて新しいv領域が開かれる。次の頂
点I1が処理される。この頂点は2B型である。したが
って、点(I1−P1(D),I1−C2(B),P)
により形成された第2のv領域が開かれる。それから次
の頂点P1が処理される。P1は2つのアクティブなv
領域の右あと継ぎおよび左あと継ぎである。すなわち、
2つのアクティブなv領域の右側と左側が点P1に収束
する。点Q5とQ6が決定されて次のv領域を発生し、
かつ閉じる。
【0063】T5:(I4−Q5(B),Q4−P1
(I),R,R,) T6:(I1−P1(D),I1−Q6(B),P,
R)
【0064】最適化手順の部分として、領域T6は高さ
が零であるから、以後の処理では無視される。それから
点(Q5−CI(B),Q6−C2(B),G(P
1))を用いて新しいv領域が起動される。それから、
任意のv領域の下のベースを変更するものが他に無いと
ラベル付けすることによりそのv領域が完成される。こ
の結果として領域T7:(Q5−CI(B),Q6−C
2(B),Q(P1),K)が得られる。したがって、
コンパイル中は、7つの領域T1〜T7がパッチにおい
て識別される。
【0065】コンパイルが終了した時に段階I横断プロ
セスが開始される。ここで図11を参照して段階I横断
プロセスの概観について説明する。ステップ600にお
いては、座標系の間の変換が決定される。本発明のプロ
セスにおいては、図11を参照して、オブジェクト座標
系またはモデル化(MC)系において図形オブジェクト
が定められる。オブジェクトはモデル化変換「M」によ
り世界座標(MC)系へ変換される。世界座標系は、図
形オブジェクトをコンピュータにおいて表すような座標
系である。変換「V」によりWC系における図形オブジ
ェクトが装置座標(DC)系へ変換される。それはコン
ピュータ表示装置のスクリーン空間に対応する。付加座
標系、すなわち、ライティング(lighting)座
標(LC)系が設けられる。WC系から、厳密である
が、計算集中的である変換「E」を介してLC系に到達
し、LC系から希薄な(sparse)「N」変換を介
して1LC系に到達する。LC空間およびそれのための
変換の詳細については、雑誌「コンピュータおよびグラ
フィックス(Computer and Graphi
cs)」15巻2号(1991)、249〜258ペー
ジ所載のサリム・アビーエッジ(Salim Abi−
Ezzi)、ウズニー(Michael Wozny)
の「より効率的なグラフィックス・パイプラインのため
の一様な変換を解析する(8Factoring a
Homogeneous Transformatio
n for a More Efficient Gr
aphics Pipeline)」と題する論文を参
照されたい。
【0066】先に述べたように、テッセレーションにす
る基準はDC系で一般に指定される。DC空間において
テッセレーション化が行われるならば、結果として得ら
れた三角形をしきい値と比較し、テッセレーション化ス
テップ・サイズ・パラメータを必要に応じて調整するた
めに応用技術を容易に適用できる。テッセレーション化
はDC系で行うことができるが、結果として得られる三
角形は以後の照明計算を行うためには不適切である。グ
ラフィックス・オブジェクトをWC空間からDC空間へ
変換する「V」変換は厳密でない変換である。したがっ
て、DC空間における三角形はMC空間およびWC空間
で指定される全ての寸法特性を維持しない。歪んでいる
三角形に対して行われた照明計算の結果として照明が歪
まされ、かつ陰影が歪んでいる歪んだ画像が得られるこ
とになる。また、V変換は4×4の一様なマトリックス
を採用する。このマトリックスは計算に費用がかかる。
更に、三角形がWC空間でテッセレーション化され、D
C空間へ変換されたとすると、結果としての費用は非常
に高くなる。計算オーバーヘッドにおける費用それら
の表面のテッセレーション化中に発生されたサンプル点
の大きいボリュームを、テッセレーション化の前に、変
するコスト)をさけ、画像の制御点を変換するだけで
あることが好ましい。
【0067】パッチの表現の効率を最高にし、しかも偏
差基準に適合するようにすることによって、ステップサ
イズをLC空間で決定できる。したがって、ステップ6
05においてはテッセレーション化のしきい値およびパ
ッチについての情報、とくに微分の範囲および制御点が
LC空間へ変換される。テッセレーション化のしきい値
は、N変換の最大スケールに従ってDC空間からLC空
間へ逆変換される。同様に、パッチの制御点がME変換
およびM′変換を用いてMC空間からLC空間へ変換さ
れ、パッチの微分範囲(derivative bou
nd)がM′変換の基準(norm)を用いてLC空間
へマップされる。
【0068】表現すべきパッチの微分範囲をLC空間へ
変換されたテッセレーション化しきい値に確実に合致さ
せることにより、後でテッセレーション化される三角形
はDC空間内のテッセレーション化しきい値に合致す
る。DC空間からLC空間への求められている変換
「N」は稀である、すなわち変換を行うために要求され
る計算は最少である。したがって偏差しきい値LC空間
へもたらすために要するオーバーヘッドは最低である。
また、表現すべきパッチの制御点および微分範囲だけが
MC空間からLC空間へ変換される。
【0069】再び図11を参照する。ステップ610に
おいては、一様なステップ・サイズが決定される。これ
は、グラフィック・オブジェクト、すなわち、トリムさ
れたNURBS、をME変換を介して照明座標LC空間
へ変換し、それから、N変換の最大スケールを用いて、
DC空間からLC空間へ、後で見る変換しきい値を翻訳
することにより、行うことが好ましい。それから次式に
従って一様なステップ・サイズを決定できる。
【0070】
【数2】
【0071】n はu方向に一様に隔てられたステッ
プの数、n はv方向に一様に隔てられたステップの
数、DuuとDvvは二次微分範囲をそれぞれ表し、t
は偏差しきい値を表す。一様なステップ・サイズの詳
細については、ユーログラフィックス・アソシェーショ
ン(Eurographics Associatio
n)、ポスト(F.H.Post)、バース(W.Ba
rth)編「プロシーディングス・ユーログラフィック
ス91(Proceeding Eurographi
cs91)」、(エルスビア・サイエンス・パブリッシ
ャース(Elsevier Science Publ
ishers),B.V.北オランダ、1991)所載
の、サリム・アッビーエッジ(Salim Abbi−
Ezzi)、レオン・シャーマン(Leon Shir
man)の「大きく変化する変換の下における湾曲した
表面のテッセレーション(The Tessellat
ion of Curved Surfaces Un
der HighlyVarying Transfo
rmation)」と題する論文、1992年8月12
日付の未決の米国特許出願Serial No.07/
929,819(米国特許第5,261,029号)
参照されたい。ステップ620においては、ベツィエ・
トリミング・セグメントがステップ・サイズに従って直
線セグメントへテッセレーション化される。
【0072】パラメータ空間内でベツィエ・カーブをテ
ッセレーション化するために、ステップ・サイズ基準が
用いられる。これは、パッチのステップ・サイズにより
定められた単一の長方形セルの対角線を、線分の長さが
超えるべきでないことを定める。したがって、線分の長
さを下式のように決定できる。
【0073】
【数3】
【0074】ここに、kはテッセレーション化されたト
リミング・カーブの分解能を、それが乗っている表面に
関連して指定する定数、dはカーブの一次微分の範囲、
u,Sv はパッチのu/vステップ・サイズである。
【0075】処理のこの点において、各v領域は、処理
続行のために必要な情報を独立に保持する。したがっ
て、段階IIは、各v領域を独立に処理できる1台または
複数台の専用プロセッサで実行できる。このシステム
は、処理時間を一層短縮するために段階II横断を並列に
実行できるように、複数のプロセッサで構成することが
好ましい。
【0076】図13は段階II横断プロセスについて述べ
た流れ図である。ステップ650において、各v領域に
一様な(セルの)格子を重畳する(すなわち関連づけ
る)。v領域に適合させるために、その格子はv方向
適応させられる。パッチについて決定されたuステップ
・サイズとvステップ・サイズに従って一様な格子が発
生される。それから、ステップ660において、各v領
域に対して三角形を発生する。それらの三角形に対して
照明計算を行い、三角形をDC空間へ変換する。次に、
ステップ670において、フレーム・バッファに保存す
べき画素データを発生するために、各三角形について走
査線変換を行う。ステップ680において、表示制御器
はフレーム・バッファをアクセスし画素データにより指
示された輝度と、色との画素場所を起動させる制御信号
を発生させる。それによりトリムされたNURBSの視
覚表現を発生させる。
【0077】各v領域の上に一様な格子を重畳し、v領
域を三角形にテッセレーション化するステップは、図1
4を参照して以下に説明するプロセスに従って行うこと
が好ましい。ステップ700においては、v領域の1番
(トップ)と1番下(ボトム)、パッチのためのuス
テップ・サイズとvステップ・サイズ、および領域を通
る「やっかいな(sticky)」線を考慮することに
より、uとvの格子線を計算するために初期設定をまず
行う。
【0078】グラフィックス規格(たとえばPHIG
S)においては、NURBS表面の属性の1つが、三角
形の1番上に表現せねばならない「やっかいな線(st
icky lines)」と呼ばれる、ある数のuとv
アイソパラメトリック(isoparametri
c)線の仕様である。これは、表面の表示を強調するた
め、またはハードウェアによる陰影づけがない場合には
ワイヤ・フレーム表現を行うために有用である。それら
の線は表面全体にわたって一様な間隔とすることがで
き、またはあらゆるパッチ内で一様にな間隔とすること
ができる。
【0079】やっかいな線に対処するために、横断の段
階Iの間にこの属性を検査し、各パッチを通るやっかい
な線についての情報を各パッチへ供給する。段階IIの横
断中に、それらのやっかいな線が三角形内に入らないよ
うにするために、隣接する2本のやっかいな線(また
は、やっかいな線とパッチまたはv領域境界)を利用し
て、2本の線の間の領域に対する新しいステップ・サイ
ズをコンパイルし、その間にパラメータ空間中で格子を
発生する。新しいステップ・サイズは、パッチについて
計算された動的なステップ・サイズと、線の間の距離と
を基にしている。2本の線の間の距離がd,パッチのた
めのステップ・サイズをSと仮定すると、新しいステッ
プ・サイズS′は S′=d/(d/S) である。
【0080】「やっかいな線」のないv領域では、dを
v領域の高さへセットすることにより同じ公式が用いら
れる。S′≦Sであるから、テッセレーション化基準は
いぜんとして満たされる。その結果として、やっかいな
線は三角形の辺に常に沿う。
【0081】それから格子点に従って表面が評価され
る。パッチの式を評価することにより、パラメータ空間
内の格子点にパッチの表面上のサンプル点が発生され
る。評価をより効率的に行うために、パッチ(ベツィエ
・ベース内にある)はパワー・ベースへ変換される。単
一の行における格子点の数を求めるために、その行の一
変動(univariate)式が、二変動(biva
riate)パッチ式にホーナーの定理を用いて決定さ
れる。それから、その行上の点が、特定の格子間隔で解
くことにより、計算される。行式に対して「対称的な」
パワー・ベースを用いることにより(この場合にはパラ
メータ値は0から1までの代わりに−0.5から+0.
5までである)、式の対称的な性質を利用することによ
り、行の上の格子点を対として求めることができる。こ
の高速解法の詳細については、グラッスナー(Andr
ew Glassner)編「グラフィックス・ジェム
ス(Graphics Gems)」「多項式の対称的
な解法(SymmetricEvaluation o
f Polynomials)」(アカデミックス・プ
レス(Academic Press)、1990)を
参照されたい。
【0082】正規化され、かつ決定された法線を、2つ
の正接をuとvで解き、交差積を計算し、逆平方根ルッ
クアップテーブルを用いて結果を正規化することによ
り、決定することが好ましい。しかし、表面の形が単純
である(たとえば、平面、円筒、円錐または球面)であ
ることが既知であれば、その形状に適切な別の方法を用
いて法線を一層効率的に計算することが好ましい。たと
えば、球面状のNURBS表面の場合には、法線は単
に、中心と表面上の点を結ぶ正規化されたベクトルであ
る。
【0083】好適な実施例においては、トリミング・チ
ェーン上の各点は自立点として求められる。あるいは、
一様な格子上にない、トリミング・カーブ上の点は「自
立点」として求められる。それらの自立点およびそれら
の自立点への法線は、コンパイル時に、モデル化座標
(MC)中のパワーベースを用いて計算される。その理
由は、このプロセスが計算集中的だからである。そのよ
うな点(u,v)のおのおのに対して、カーブの一変動
式がv値で解かれ、それからこのカーブはu値で解かれ
る。u,vの2つの正接表面を評価し、交差積を計算
し、正規化することにより、正規化された表面が計算さ
れる。もちろん、表面の形状が単純であれば、より最適
な方法を使用できる。したがって、横断時には、それら
の点はMCからLCへ単に変換されるだけである。プロ
セスの一層の最適化として、動的にテッセレーション化
されるベツィエ・トリミング・カーブの場合には、テッ
セレーション化された(および評価された)直線セグメ
ントが多数のテッセレーションにわたって保存され、パ
ッチのステップ・サイズが変わらない限り、以後の各テ
ッセレーションに対して再使用される。
【0084】図14に示されているテッセレーション化
のプロセスを継続する。プロセス705において、領域
の1番下の行が、格子により定められた行及び表面のそ
れらの点の法線に沿って、WC内の点を計算することに
より求められる。ステップ707,710,709にお
いては、各行対に対して、1番上の行が同様に評価され
て、点と法線を決定する。それから、点の1番上の行と
1番下の行により定められたストリップが三角形にされ
る。
【0085】テッセレーション中は、いくつかの型のケ
ースを考慮せねばならない。図15aと図15bを参照
すると、各ストリップは3つまでの領域またはセル群よ
り成る。各ストリップは左のトリムされた領域と、トリ
ムされていない領域または二重にトリムされた領域と、
右のトリムされた領域とで構成できる。後で説明するよ
うに、それらの領域は相互に独立して処理される。更
に、コンパイル中に1番上のベースと1番下のベースが
型Gapとして分類されたとすると、間隙点を評価して
LC内で間隙点を発生し、その点における表面の法線を
発生し、行の格子点を用いて三角形を発生し、その間隙
をふさぐ(ステップ715)。間隙点をコンパイル時に
MC空間内で評価し、それからLC空間へ変換されるこ
とが好ましい。1番上のベースまたは1番下のベースが
ノット型(すなわち、ベースが完全なパッチ境界にまた
がる)であるとすると、境界ストリップを三角形にする
ために隣接するストリップが用いられる。この場合に
は、付近のパッチ・ステップ・サイズを用いて境界行が
三角形にされる。ステップ730において、ベースがノ
ット線でないか、やっかいな線が存在する場合に、綴じ
ストリップも発生される。
【0086】セルを形成する評価された格子の2つの行
と、セル行に対する左トリム側および右トリム側を用い
て三角形化が行われる。それらの側はv領域側に沿う点
である。先に述べたように、ストリップは3つまでの領
域、すなわち、セルを通って交差する左のトリムされた
辺を有する左トリムされたセルと、セルを通って交差す
るトリムされた辺を持たないトリムされないセルと、セ
ルを通って交差する左と右のトリムされた辺を有する二
重にトリムされたセルと、セルを貫通する右のトリムさ
れた辺だけを有する右のトリムされたセルと、で構成さ
れる。行は上の領域のおのおのを持つこともできれば、
持たないことをもできる。たとえば、単一の行はトリム
されていないセルと二重にトリムされたセルの両方を持
つことはできない。両方の辺が型境であるようなv領域
はトリムされないセルのみを持つ。
【0087】辺が減少するならば右下隅を用いることに
より、および辺が増大するならば右上隅を用いることに
より、トリムされたセルのシーケンスが三角形にされ
る。たとえば、図16aを参照されたい。図16aは、
右下隅が用いられるように、辺が減少するトリムされた
セルのシーケンスのテッセレーション化を示す。点が発
生されて、テッセレーション化のための機構へ供給され
る順序は数列により示されている。
【0088】二重にトリムされたセルをテッセレーショ
ンとするための2つの場合がある。図16bに示すよう
に、第1の場合は、セル内の2つの辺のu範囲が重なり
合わないような場合である。セルが重なり合わないこと
は、2つの辺が逆向きである場合に起きる。この場合に
は、セルは左のトリムされたセルと右のトリムされたセ
ルへ垂直に分割される。それらのセルは、個々にテッセ
レーション化されている。2つの辺が同じ向きを有する
場合に生ずることであるが、2つの辺のu範囲が重なり
合うものとすると、三角形化のためにより多くの一般的
なやり方が利用される。この結果としての効果が図16
cに視覚的に示されている。
【0089】一般的な場合に対して三角形化を行うため
には、ガレイ(Garey)他による「O(n)アルゴ
リズム(O(n)algorithm)」の適応が単調
多角形の三角形化のために利用される。このアルゴリズ
ムにおいては、多角形は2つの単調な側に分類され、点
を1つずつ送るためにスタックを用い、付随する辺およ
び角度を調べることにより、三角形が発生される。辺は
単調であるから、点はいずれかの辺で既に分類されてい
ることが好ましい。詳細については、たとえば雑誌「情
報処理レター(Information Proces
sing Letter)」第7巻4号(1978)、
175〜180ページ所載のガレイ(Garey)、ジ
ョンソン(Johnson)、プレパラータ(Prep
arata)、タージャン(Tarjan)の「単純な
多角形を三角形にする(Triangulating
a Simple Polygon)」と題する論文を
参照されたい。
【0090】下記のプロセスを三角形化のために使用す
ることが好ましい。三角形化すべき領域を定める2本の
精密な直線(それらの直線は決定された現在の1番上と
1番下の行対に対応する)に「A」線および「B」線と
ラベル付けされる。このプロセスにおいては3つのレジ
スタA,B,Cが利用される。横断中は、2本の線が横
断させられ、セルはルーチン「Init」と「Send
(A/B)」にされる。Initは三角形にすべきスト
リップをスタートさせるためのプロセスである。Sen
dルーチンは、線Aまたは線Bにある点をレジスタへ送
る。edge_flagとother_edge_fl
agは、新しい点と、それが交換する点またはそれが交
換しない点との間に線を引くべきかどうかを指示する。
三角形化のための疑似コードの例は次の通りである。
【0091】1.Init(a_b_new_cw_f
lag):count←0 2.Send(RegA/B,Pnt,edge_fl
ag,other_edge_flag):Count
++; RegC←Pnt; If Conut≧3,(RegA,RegB,Reg
C); RegA/B←RegC;
【0092】NURBS表面を表現する時は、表面に間
隙が生ずる可能性がある。隣接するパッチは、共通縁部
に間隙を生じさせる種々のステップ・サイズとなる結果
となることがある。これが図17aに示されている。簡
単な解が図17bに示されている。図17bは、図17
aに示されている間隙を埋めるために形成される隣接ス
トリップを示す。
【0093】本発明においては、パッチが段階IIにおい
て独立に横断させられた時に間隙を避けることができる
ように、コンパイルおよび横断プロセスの段階Iの間に
間隙についての情報が発生される。2つの与えられたパ
ッチの間の境界に沿う間隙についての情報がパッチの1
つとともに供給される。2つのパッチの間に共通の境界
が存在するが、2つのパッチのうちの1つが間隙状況を
取り扱う必要があるだけである。共通境界に沿うステッ
プ・サイズがより大きいようなパッチが、間隙を避ける
情報を発生するものであることが好ましい。
【0094】実効される間隙発生技術に依存して利用さ
れる、間隙を避ける2種類の情報が存在する。第1の技
術は隣接ストリップである。与えられた2つのパッチが
両方ともトリムされていないが、異なるステップ・サイ
ズを有するものとすると、大きいステップ・サイズを有
するパッチが隣接ストリップを発生して、隣のものとの
間の間隙を避ける。トリムされたパッチの場合には、1
番上のベースまたは1番下のベースがノット・セグメン
トであるならば、隣接ストリップをいぜんとして使用で
きる。横断プロセスの段階Iの間に、近くのステップ・
サイズおよび境界の型(たとえば、1番上、1番下、
左、右)が各パッチに維持されて、近くのものとは独立
にパッチを処理できるようにする。横断プロセスの段階
IIの間に三角形化が行われ、隣接する任意の必要なスト
リップが発生される。隣接ストリップの発生のためのア
ルゴリズムの例が図18aに示されている。ここで説明
する隣接技術、図18b、を用いて、より大きいステッ
プ・サイズを持つパッチBを三角形にし、パッチAから
の点で、ストリップが発生される。
【0095】綴じるストリップは、ステップ・サイズが
異なる2つのパッチの間の間隙を埋めるためのより一般
的な機構である。隣接ストリップを使用できない時にそ
れを用いることが好ましい。というのは、それの効率が
低いからである。綴じるストリップの幅はパラメータ空
間内では零であるから、モデル化空間内の縮減する三角
形で構成される(図20a参照)。横断の段階Iの間に
綴じるストリップの描写が発生され、段階IIの間に利用
される。綴じるストリップの描写は、境界の区切り頂点
と、境界の両側におけるv領域区切りと、境界に沿うパ
ッチのステップ・サイズとを基にしている。この情報を
基にして、各隣接境界に対する2つのスカラー列、すな
わち、第1のパッチ(A)に対するスカラー列と第2の
パッチ(B)に対するスカラー列が発生される。パッチ
に対するスカラーの列が、パッチ境界サンプル点が昇順
で生ずるようなパラメトリック値を含む。それからスカ
ラーの2つの列が1つの列にまとめられ、その1つの列
からは二重のものが除去される。各スカラーにはスカラ
ーの原点を識別するためにラベル付けされる。たとえ
ば、スカラーがパッチAの列、パッチBの列または両方
のパッチの列から来るかどうかを示すために、ラベルは
「A」,「B」または「C」とすることができる。スカ
ラーの列とラベルは綴じる点と呼ばれ、横断プロセスの
段階II中に綴じるストリップを発生するためのものとさ
れる。
【0096】図20bはオブジェクト空間内の図20a
の綴じるストリップを示す。図21は、綴じる点から綴
じるストリップを発生するアルゴリズムの例を示す。綴
じるストリップと隣接ストリップの間の主な違いは、前
者が、間隙を埋めるために新しい三角形を付加すること
を含むのに、図20a,図20bに示すように、後者は
間隙を避けるために隣接ストリップの三角形を選択する
ことを含むことである。隣接ストリップ法は、余分の三
角形の発生を要しないから、より効率的であるが、隣接
ストリップは、トリミングまたは「やっかいな」線がな
い簡単な場合にのみ作動する。したがって、簡単な場合
には隣接ストリップを使用し、複雑な場合いには綴じる
ストリップを用いることが好ましい。
【0097】三角形がテッセレーション化されると、決
定された点と各v領域の法線とはグラフィックス装置す
なわちサブシステムへ送られる。LC空間内で各三角形
について照明計算が、法線と、表面特性と、光源と、射
出瞳とを基にして頂点当たりの色を計算するグーラウド
(Gouraud)陰影プロセスを用いることが好まし
い。あるいは、照明計算を行うためにフォン(Phon
g)陰影プロセスを使用できる。このフォン陰影プロセ
スは法線を補間し、各画素に対する色を計算する。
【0098】照明特徴を含むために三角形が修正された
後で、三角形はLC空間からDC空間へ変換される。I
C空間からのオブジェクトをDC空間へ変換するN変換
は稀な変換であって、実現には費用がほとんどかからな
い。DCで三角形を発生するよりも、湾曲した表面を表
すテッセレーション化された全ての三角形を変換するた
めにはより多くの変換を必要とするが、変換回数が少な
いことと、正確に陰影づけられた湾曲表面の結果として
の効果は、コストの増大を補って余りある。
【0099】表示装置を制御するために用いられる画素
データを発生するために三角形は走査変換される。DC
空間内で発生された画素データは、表示すべきオブジェ
クトの、形、場所、色、輝度を含めた種々の属性を定め
る。発生された画素データはフレーム・バッファの、表
示装置上の所定位置に対応する場所に保存される。走査
変換の詳細については、フォレイ(Foley)、バン
・ダム(van Dam)、フェイナー(Feine
r)、ヒューズ(Hughes)著、「コンピュータ・
グラフィックス、原理と実際(Computer Gr
aphics,Principles and Pra
ctice)」第2版、945〜965ページ(199
0、Addison−Wesley Publishi
ng)を参照されたい。この時に、グラフィック・オブ
ジェクトのディメンジョン深さキューイング(cuei
ng)を行うために、Zバッファリングを実行すること
が好ましい。
【0100】発生された画素データに従って湾曲表面が
表示装置上に発生される。フレーム・バッファに保存さ
れている画素データを復号して、表示制御器と表示装置
を制御し、画素データにより指定された場所、色および
輝度の画素を起動させて、可視湾曲表面を表示装置上に
発生させる。
【0101】上述のプロセスは、複雑なプロセスを実行
するための資源を有するホストプロセッサにおけるコン
パイル中に、それらの複雑なプロセスを実行するシステ
ムも提供する。それから、高速で安価な専用処理装置
で、簡単ではあるが、反復せねばならないオペレーショ
ンを実行できる。更に、上述のプロセスは、横断中に求
められる情報のほとんどを含むためにコンパイル中に各
v領域を構成し、段階IIの横断を各v領域とは独立かつ
並列に実行できるから、システムを一層高速にし、効率
を向上させるために並列処理を利用できる。
【0102】次に図22を参照して本発明の装置を詳し
く説明する。十分な資源を必要とする複雑なプロセスお
よび計算を行うためにホストコンピュータ810が利用
される。このホストコンピュータへ入力800が供給さ
れる。コプロセッサ820は、直線的であるが、非常に
多くの反復を必要とするプロセスを実行する専用プロセ
ッサである。たとえば、三角形の画素への走査変換のよ
うな指定された機能を実行するために構成されたVLS
Iチップに関連して、浮動小数点処理装置(FPU)を
使用できる。本発明のプロセスにより、表現パイプライ
ンの効率を最高にするために工程を細分する。とくに、
ホストプロセッサはコンパイル・プロセスを行う。
【0103】一実施例においては、湾曲面を表す三角形
のテッセレーション、照明決定、フレーム・バッファ8
30に保存すべき画素データへの三角形の走査変換のよ
うな、非常に多く反復される計算を実行するために、湾
曲表面の一様なステップ・サイズと制御点がコプロセッ
サ820へ送られる。この実施例においては、コプロセ
ッサは浮動小数点処理装置(FPU)と、メモリ、およ
び三角形に画素データを発生させるように構成されたV
LSIで構成される。メモリを利用するFPUは湾曲面
を三角形へテッセレーション化し、照明決定を行い、三
角形をIC空間からDC空間へ変換する。VSLIは各
三角形を画素データへ変換し、その画素データをフレー
ム・バッファに保存する。あるいは、ホストプロセッサ
810は湾曲表面を三角形へテッセレーション化し、コ
プロセッサは走査変換を単に行って各三角形のための画
素データを発生する。コプロセッサ820は、処理速度
を最高にするために専用ハードウェアで構成することが
好ましい。グラフィックス・コプロセッサ820の一例
が、サン・マイクロシステムズ社(Sun Micro
system,Inc.)製のSPARCステーション
2/GTグラフィックス・アクセラレータである。
【0104】第2の専用プロセッサである表示制御器8
40は画素データをフレーム・バッファから読出し、表
示装置850上で対応する画素を起動させる。前記した
ように、画素データはフレーム・バッファ内の所定の場
所に保存されて、フレーム・バッファ内の画素データの
場所と、その画素データに従って表示装置上で画素を起
動させることの間に所定の関係が存在するようにする。
データはDC空間内の画素のXY座標場所に従って保存
することが好ましい。表示制御器840は画素データを
フレーム・バッファから順次読出し、電子ビーム、した
がって、各画素の色、輝度および場所を制御するための
制御信号を表示装置へ供給する。
【図面の簡単な説明】
【図1】本発明の装置の好適な実施例の概念的なブロッ
ク図である。
【図2】全体のプロセスを示す流れ図である。
【図3】コンパイル・プロセスの流れ図である。
【図4】奇数巻き法則および左手の法則に従うパラメー
タ空間内のトリミング・ループを示す。
【図5】コンパイル・プロセスの詳細のいくらかを示す
流れ図である。
【図6】端の頂点の型と区分け頂点の型を示す。
【図7】トリミング・チェーンのある最適化を示す。
【図8】生ずることがある可能なu−v単調v領域を示
す。
【図9】本発明に従ってv領域を決定するプロセスを示
す流れ図である。
【図10】本発明に従ってv領域が決定されたトリムさ
れたNURBSの例である。
【図11】段階I横断プロセスを示す流れ図である。
【図12】表現プロセス中に利用される種々の座標空間
を示す。
【図13】段階II横断プロセスを示す流れ図である。
【図14】利用されるテッセレーション化プロセスを示
す流れ図である。
【図15】トリムされていないセル、右がトリムされた
セル、および左がトリムされたセルと二重にトリムされ
たセルを示す。
【図16】三角形のテッセレーション化の例を示す。
【図17】間隙及び間隙を埋める隣接するストリップを
示す。
【図18】隣接するストリップを示す。
【図19】隣接するストリップを発生するための疑似コ
ードの例を示す。
【図20】綴じるストリップを示す。
【図21】綴じるストリップを発生するための疑似コー
ドの例を示す。
【図22】システム中の処理部品の間におけるプロセス
の配分を示す。
【符号の説明】 10 CPU 15 システム・メモリ 20 入力/出力装置 25 表示プロセッサ装置 30 システム・バス 32,37,41 浮動小数点処理装置 33,34,36 専用VLSI 35,38,42 メモリ 40 フレーム・バッファ 45 表示制御器 50 モニタ 55 制御器 60 表示制御器カラールックアップ・テーブル 65,70,75 デジタル−アナログ変換器 810 ホストプロセッサ 820 コプロセッサ 830 フレーム・バッファ 840 表示制御器 850 表示装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スリカンス・スブラマニアム アメリカ合衆国 94025 カリフォルニ ア州・メンロ パーク・ウィロウ ロー ド・183 (56)参考文献 特開 平1−201777(JP,A) 特開 平4−127378(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 17/30

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 中央処理装置(CPU)と、メモリと、
    装置座標(DC空間を持つグラフィック表示装置に結
    合されるグラフィック表示制御器を含んでいる入力/出
    力装置とを備えたコンピュータ装置にあって、グラフィ
    ック表示装置に描出されるトリムされた非一様有理b−
    スプライン(NURBS表面を含む画像のテッセレー
    ションを行う方法であって前記トリムされたNURB
    S表面のそれぞれには、表面を定める第1の制御点セッ
    トと、当該表面を通る少なくとも1つのトリミング・
    ープを定める第2の制御点セットとが含まれ、それらの
    制御点モデル座標(MC)空間内で定められものであ
    ; トリムされたNURBS表面を、少なくとも1つのv領
    域を含む少なくとも1つのパッチへと処理する過程を備
    え、各v領域は、トップ・ベースとボトム・ベースおよ
    び左側と右側を含む境界で構成され、前記トップ・べー
    スとボトム・ベースはu軸に沿ったアイソパラメトリッ
    ク線で定まり、前記右側と左側はu,v単調線で定まる
    ものであり; 各v領域をトラバーサルする過程を備え、そのv領域を
    トラバーサルする過程には、 各v領域を複数の三角形へテッセレーション化する過程
    と、 グラフィック表示装置上に表示すべき画素の輝度をおの
    おの指定し、各三角形を表す画素データを発生する過
    程と、 各画素データをフレーム・バッファ内に、DC空間内
    の画素の場所に対応する場所に保存する過程とが備えら
    れ; 前記グラフィック表示制御器によって、前記フレーム・
    バッファに保存されている画素データ読出されて、
    素データにより指示される場所におけるグラフィック表
    示装置の画素を、画素データにより指示される輝度に作
    動させる制御信号発生され; トリムされたNURBS表面をグラフィック表示装置上
    に発生することを特徴とする、グラフィック画像テッ
    セレーションを行う方法。
  2. 【請求項2】 中央処理装置(CPU)と、メモリと、
    装置座標(DC空間を持つグラフィック表示装置に結
    合されるグラフィック表示制御器を含んでいる入力/出
    力装置とを備えたコンピュータ装置において、グラフィ
    ック表示装置に描出されるトリムされた非一様有理b−
    スプライン(NURBS表面を含む画像のテッセレー
    ションを行う装置であって前記トリムされたNURB
    S表面のそれぞれには、表面を定める第1の制御点セッ
    トと、当該表面を通る少なくとも1つのトリミング・ル
    ープを定める第2の制御点セットとが含まれそれらの
    制御点モデル座標(MC)空間内で定められものであ
    ; トリムされたNURBS表面を、少なくとも1つのv領
    域を含む少なくとも1つのパッチへと処理するコンパイ
    ラを備え、各v領域は、トップ・ベースとボトム・ベー
    スおよび左側と右側を含む境界で構成され、前記トップ
    ・べースとボトム・ベースはu軸に沿ったアイソパラメ
    トリック線で定まり、前記右側と左側はu,v単調線で
    定まるものであり; 各v領域を複数の三角形へテッセレーション化する手
    、および、グラフィック表示装置上に表示すべき画素
    の輝度をおのおの指定して、各三角形を表す画素データ
    を発生する手段を含んでいる、各v領域をトラバーサル
    する手段を備え; 前記画素データを発生する手段に結合されたフレーム・
    バッファ・メモリにして、各画素データを、装置座標空
    間内の画素の場所に対応する場所に保存するフレーム・
    バッファ・メモリを備え; 前記グラフィック表示制御器によって、前記フレーム・
    バッファに保存されている画素データ読出されて、
    素データにより指示される場所における画素を、画素デ
    ータにより指示される輝度に作動させる制御信号発生
    され; トリムされたNURBS表面をグラフィック表示装置上
    に発生することを特徴とする、グラフィック画像テッ
    セレーションを行う装置。
  3. 【請求項3】 装置座標(DC)空間を持つグラフィッ
    ク表示装置に描出されるトリムされた非一様有理b−ス
    プライン(NURBS表面を含む画像のテッセレーシ
    ョンを行うコンピュータ・システムであって、前記トリ
    ムされたNURBS表面のそれぞれには、表面を定める
    第1の制御点セットと、当該表面を通る少なくとも1つ
    のトリムするループを定める第2の制御点セットと
    含まれ、それらの制御点がモデル座標(MC)空間内で
    定められものであり; ホストプロセッサであって、(a) NURBS表面を少な
    くとも1つのベツィエ・パッチへ変え、トリミング・ル
    ープから単調のトリミング・チェーンへの分割を、当該
    のトリミング・ループの部分で境界が定まるパッチに従
    って行い、そして、各パッチを少なくとも1つのv領域
    へと分割することによって、前記トリムされたNURB
    S表面を、少なくとも1つのv領域を含む少なくとも1
    つのパッチへと処理すること、ここで、前記v領域は、
    トップ・ベースとボトム・ベースおよび左側と右側を含
    む境界で構成され、前記トップ・べースとボトム・ベー
    スはu軸に沿ったアイソパラメトリック線で定まり、前
    記右側と左側は、トリミング・チェーンないしパッチの
    境界定まるu,v単調線で定まるものであり、並びに、
    (b) 各パッチを複数の三角形へテッセレーション化する
    ために用いられる、一様なステップ寸法を決定すること
    によって、各パッチをトラバースすること、を実行する
    ホストプロセッサと; 前記ホストプロセッサに結合されたグラフィックス処理
    サブシステムであって、セルの一様な格子を、前記v領
    域の境界と一様なステップ寸法とに関連づけ、セルの各
    行をテッセレーション化し、グラフィック表示装置で表
    示すべき画素の輝度をそれぞれ指定して、各三角形を表
    す画素データを発生する、グラフィックス処理サブシス
    テムと; 前記グラフィックス処理サブシステムに結合されたフレ
    ームバッファであって、各画素データをDC空間内の画
    素の場所に対応する場所に保存するフレームバッファ
    ; 前記フレームバッファおよび前記グラフィック表示装置
    に結合されたグラフィック表示制御器であって、前記フ
    レーム・バッファに保存されている画素データを読出
    し、画素データにより指示される場所における画素を、
    画素データにより指示される輝度に作動させる制御信号
    を発生する、グラフィック表示制御器とを備え; トリムされたNURBS表面をグラフィック表示装置上
    に発生することを特徴とする、グラフィック画像テッ
    セレーションを行う装置。
JP24624093A 1992-09-30 1993-09-07 グラフィック画像をテッセレーション化する方法および装置 Expired - Fee Related JP3344597B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US953,971 1992-09-30
US07/953,971 US5377320A (en) 1992-09-30 1992-09-30 Method and apparatus for the rendering of trimmed nurb surfaces

Publications (2)

Publication Number Publication Date
JPH06223197A JPH06223197A (ja) 1994-08-12
JP3344597B2 true JP3344597B2 (ja) 2002-11-11

Family

ID=25494774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24624093A Expired - Fee Related JP3344597B2 (ja) 1992-09-30 1993-09-07 グラフィック画像をテッセレーション化する方法および装置

Country Status (4)

Country Link
US (1) US5377320A (ja)
EP (1) EP0590765B1 (ja)
JP (1) JP3344597B2 (ja)
DE (1) DE69322575T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012073363A1 (ja) 2010-12-02 2012-06-07 デジタルプロセス株式会社 表示処理方法及び装置
US9715746B2 (en) 2014-02-13 2017-07-25 Samsung Electronics Co., Ltd. Curve rendering method and apparatus

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555356A (en) * 1992-10-29 1996-09-10 International Business Machines Corporation System and method for generating a trimmed parametric surface for display on a graphic display device
JPH07282117A (ja) * 1994-04-08 1995-10-27 Ricoh Co Ltd 自由曲面生成方法及び自由曲面形状の制御方法
US6279099B1 (en) * 1994-04-29 2001-08-21 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation
US5801670A (en) * 1995-06-06 1998-09-01 Xerox Corporation Image generation system having a host based rendering element for generating seed pixel values and mesh address values for display having a rendering mesh for generating final pixel values
US5794016A (en) * 1995-12-11 1998-08-11 Dynamic Pictures, Inc. Parallel-processor graphics architecture
US6081273A (en) * 1996-01-31 2000-06-27 Michigan State University Method and system for building three-dimensional object models
CA2200659A1 (en) * 1996-04-12 1997-10-12 Softimage Inc. Method and system for efficiently trimming a nurbs surface with a projected curve
US5701404A (en) * 1996-05-31 1997-12-23 Softimage Method and system for efficiently trimming a nurbs surface with a projected curve
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
US5945997A (en) * 1997-06-26 1999-08-31 S3 Incorporated Block- and band-oriented traversal in three-dimensional triangle rendering
US6600485B1 (en) * 1998-07-03 2003-07-29 Sega Enterprises, Ltd. Polygon data generation method and image display apparatus using same
WO2000013146A1 (en) * 1998-08-31 2000-03-09 The Johns Hopkins University System and method for interactively displaying a model having a complex surface
US6683620B1 (en) * 1999-04-21 2004-01-27 Autodesk, Inc. Relational modeling of trimmed nurbs surfaces
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
US6798411B1 (en) * 1999-10-29 2004-09-28 Intel Corporation Image processing
US7180523B1 (en) * 2000-03-31 2007-02-20 Intel Corporation Trimming surfaces
US6552725B1 (en) 2000-04-11 2003-04-22 Corel Corporation Heuristic method for adaptive subdivision of coons patches for rendering
US6741243B2 (en) 2000-05-01 2004-05-25 Broadcom Corporation Method and system for reducing overflows in a computer graphics system
US6707452B1 (en) * 2000-07-19 2004-03-16 Pixar Method and apparatus for surface approximation without cracks
USRE42534E1 (en) * 2000-07-28 2011-07-12 Adrian Sfarti Bicubic surface real-time tesselation unit
US7245299B2 (en) * 2003-05-12 2007-07-17 Adrian Sfarti Bicubic surface real-time tesselation unit
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
US6950099B2 (en) * 2002-07-01 2005-09-27 Alias Systems Corp. Approximation of Catmull-Clark subdivision surfaces by Bezier patches
US20050131660A1 (en) * 2002-09-06 2005-06-16 Joseph Yadegar Method for content driven image compression
US6816169B2 (en) * 2002-10-09 2004-11-09 Evans & Sutherland Computer Corporation System and method for run-time integration of an inset geometry into a background geometry
US7212205B2 (en) * 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method
US7002574B2 (en) * 2002-12-27 2006-02-21 Microsoft Corporation Method and system for tessellating a polygon
CN100346170C (zh) * 2003-12-12 2007-10-31 中国科学院自动化研究所 基于非均匀有理基样条的非刚体脑图像配准方法
US7295204B2 (en) * 2004-12-14 2007-11-13 Adrian Sfarti Rapid zippering for real time tesselation of bicubic surfaces
US10026140B2 (en) 2005-06-10 2018-07-17 Nvidia Corporation Using a scalable graphics system to enable a general-purpose multi-user computer system
US7639249B2 (en) * 2006-05-05 2009-12-29 Microsoft Corporation Direct inset beveling of geometric figures
US8884956B2 (en) * 2006-08-11 2014-11-11 Siemens Product Lifecycle Management Software Inc. System and method for trimmed surface tessellation
EP2104930A2 (en) 2006-12-12 2009-09-30 Evans & Sutherland Computer Corporation System and method for aligning rgb light in a single modulator projector
US9552670B1 (en) * 2007-02-28 2017-01-24 Autodesk, Inc. System and method for triangulation of non-simple, multiply-connected, multi-styled shapes
US7952580B1 (en) * 2007-08-31 2011-05-31 Adobe Systems Incorporated Classification of exterior and interior triangles for artwork rendering
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8120607B1 (en) * 2008-05-30 2012-02-21 Nvidia Corporation Boundary transition region stitching for tessellation
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US9038034B2 (en) * 2009-12-22 2015-05-19 Intel Corporation Compiling for programmable culling unit
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
AU2013267004A1 (en) 2013-12-04 2015-06-18 Canon Kabushiki Kaisha Method, apparatus and system for tessellating a parametric patch
US20210343077A1 (en) * 2018-01-31 2021-11-04 Universidade Federal De Pernambuco Determine sample points on slices from nurbs models
US11928391B2 (en) * 2019-04-02 2024-03-12 Autodesk, Inc. Hybrid surface modelling with subdivision surfaces and NURBS surfaces
EP4121948A1 (en) * 2020-03-20 2023-01-25 3Shape A/S Storage, rendering, and display of information of meshes through tessellation with serialized values
CN114549712B (zh) * 2022-04-25 2022-07-12 北京搜狐新媒体信息技术有限公司 一种生成动态webp格式图片的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4930091A (en) * 1987-11-04 1990-05-29 Schlumberger Systems, Inc. Triangle classification setup method and apparatus for 3-D graphics display system
US5255352A (en) * 1989-08-03 1993-10-19 Computer Design, Inc. Mapping of two-dimensional surface detail on three-dimensional surfaces
JPH0776991B2 (ja) * 1989-10-24 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Nurbsデータ変換方法及び装置
US5276783A (en) * 1989-11-21 1994-01-04 International Business Machines Corporation Tessellating complex polygons in modeling coordinates

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012073363A1 (ja) 2010-12-02 2012-06-07 デジタルプロセス株式会社 表示処理方法及び装置
US8717356B2 (en) 2010-12-02 2014-05-06 Digital Process Ltd. Display processing method and apparatus
US9715746B2 (en) 2014-02-13 2017-07-25 Samsung Electronics Co., Ltd. Curve rendering method and apparatus

Also Published As

Publication number Publication date
DE69322575D1 (de) 1999-01-28
JPH06223197A (ja) 1994-08-12
EP0590765A2 (en) 1994-04-06
EP0590765B1 (en) 1998-12-16
DE69322575T2 (de) 1999-07-15
US5377320A (en) 1994-12-27
EP0590765A3 (en) 1994-07-20

Similar Documents

Publication Publication Date Title
JP3344597B2 (ja) グラフィック画像をテッセレーション化する方法および装置
Carr et al. Meshed atlases for real-time procedural solid texturing
JP5188628B2 (ja) 3dオブジェクトの3dモデルをレンダリングするための方法及びシステム
US7081895B2 (en) Systems and methods of multi-pass data processing
JP4101275B2 (ja) 走査線ベースのラスタ画像プロセッサにおける奥行き追跡の方法
US8698808B2 (en) Conversion of dashed strokes into quadratic Bèzier segment sequences
US8760450B2 (en) Real-time mesh simplification using the graphics processing unit
EP1485874B1 (en) System, method and computer program product for generating a shader program
US20070018988A1 (en) Method and applications for rasterization of non-simple polygons and curved boundary representations
JP5721358B2 (ja) グラフィックス処理システム
EP0430501A2 (en) System and method for drawing antialiased polygons
EP0488563A2 (en) Method and apparatus for rendering trimmed parametric surfaces
US6384833B1 (en) Method and parallelizing geometric processing in a graphics rendering pipeline
US6636232B2 (en) Polygon anti-aliasing with any number of samples on an irregular sample grid using a hierarchical tiler
US8130223B1 (en) System and method for structuring an A-buffer to support multi-sample anti-aliasing
US20040239672A1 (en) Shading computer-generated objects using generalized shading regions
JPH08138082A (ja) 四角形メッシュの生成方法及びシステム
Sayle et al. RasMol: A program for fast realistic rendering of molecular structures with shadows
US11010939B2 (en) Rendering of cubic Bezier curves in a graphics processing unit (GPU)
US6489966B1 (en) Graphic processing device
Fussell et al. A vlsi-oriented architecture for real-time raster display of shaded polygons
EP0600204A2 (en) Method and apparatus for rendering primitives with multiple processors
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
Bruijns Quadratic Bezier triangles as drawing primitives
KR100328593B1 (ko) 3-d 그래픽용 고속 클립핑 방법

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees