JP3764478B2 - テセレーション・システム - Google Patents

テセレーション・システム Download PDF

Info

Publication number
JP3764478B2
JP3764478B2 JP51704994A JP51704994A JP3764478B2 JP 3764478 B2 JP3764478 B2 JP 3764478B2 JP 51704994 A JP51704994 A JP 51704994A JP 51704994 A JP51704994 A JP 51704994A JP 3764478 B2 JP3764478 B2 JP 3764478B2
Authority
JP
Japan
Prior art keywords
subpatch
grid
sequence
mth
nth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP51704994A
Other languages
English (en)
Other versions
JPH08506671A (ja
Inventor
ピーターソン,ジョン
ホー,シュエン,チャン
Original Assignee
オブジェクト テクノロジー ライセンシング コーポレイション
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 オブジェクト テクノロジー ライセンシング コーポレイション filed Critical オブジェクト テクノロジー ライセンシング コーポレイション
Publication of JPH08506671A publication Critical patent/JPH08506671A/ja
Application granted granted Critical
Publication of JP3764478B2 publication Critical patent/JP3764478B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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)
  • Processing Or Creating Images (AREA)

Description

著作権所有表記
本特許出願は著作権を有する媒体を含むものであり、媒体の複製は情報提供を目的とする特許出願の一部としてのみ許可する。他の全ての権利、特に、このような媒体を商業上利用する権利は留保する。
技術分野
本発明は、曲面を、シャード(shard)といわれる小さい離散的な三角形にテセレート(tessellate)する方法および装置に関する。各シャードのサイズは表示画面の投影表現により決定される。
背景技術
テセレーション(tessellation)は3次元曲面をシャードと呼ばれる小さな離散的な三角形に分解することである。各シャードのサイズは表現のスクリーン空間への投影によって決まる。
テセレーションとは、ハイレベルな面ディスクリプション、例えば、曲面、メッシュ、フラクタルを簡単な2次元表現に分解するプロセスをいう。特定タイプの幾何学形状に対するテセレータ(tesselator)には、その特定幾何学形状をレンダリング可能なシャードに分解するルーチンが含まれる。
サンプルは、テセレートされているオブジェクトの面上の実際の点である。各サンプルは3種類の点の1つである。3種類の点とは、(i)面上の3次元の点、(ii)法線ベクトル、(iii)オブジェクトのパラメトリック座標である。デバイス固有のサンプルには、追加の情報、例えば、カラーや定点スクリーン座標(fixed point screen coordinate)が含まれる。シャードは、面の所定の領域に対する3つのサンプルの集合を単純にリンクすることにより形成される。
3次元面を2次元表示に変換するため、普通、大量の計算が行われるので、現在のグラフィック・システムは複雑で長ったらしいプロセスを引き受けなければならない。このようなことは、種々の幾何学的プリミティブに対して異なる冗長なコードを作成し利用するアプローチを、現在のメソッドが採用するようになってからのことである。このようなグラフィック・システムでも、クラック(crack)を描くことができる。あるいは、このようなグラフィック・システムでも、同一面積の異なる領域の間のクラックであって、結合される類似の面の間のクラックを除去するため、コストが高い計算集中型の手法が必要になる。
パラメトリック面をレンダリングする際にクラックを防止する周知の方法は、パラメトリック面をスプラインパッチに適応細分割する適応細分割法を用いる(Forsey et al., An Adaptive Subdivision Algorithm for Crack Prevention in the Display of Parametric Surfaces, Proceedings "Graphic Interface 1990," 14 May 1990,pp.1-8)。この方法では、パッチのエッジの直線性をテストし、そのエッジ上の内部制御点を、最終制御点およびその視点を含む平面に、移動させることにより、そのエッジを真っ直ぐにする。その後、隅の四角形と中心の四角形の法線を比較することにより、そのパッチの平坦性をテストする。処理されたパッチの間の法線の平坦性が得られ維持されるまで、その平坦性のテスト結果に従って、中心点再分割により分割する。
上述した刊行物はクラック防止の他の方法も参照している。他の方法として、(a)ピクセルサイズの多角形やピクセルよりもっと小さい多角形を用いて、クラックが現れるのを防止し、(b)最も近い頂点に境界を有するパッチ上にある制御点を移動し、(c)クラックが検出された所に補填用多角形を挿入し、(d)クラックサイズが許容範囲になるまで、そのパッチを細分割するため、そのパッチの中間点を計算する。
面パッチが直接ハンドルできるサイズになるまで、面パッチを細分割して、パラメトリックに定義された面を処理する種々の周知の方法は、Koparkar et al., Computational Techniques For Processing Parametric Surfaces, published in "Computer Vision, Graphics and Image Processing," vol.28,no.3,December 1984, USA,pp.303-322. で考慮されている。これらの方法のうちどれを適用するかは、面のプロパティに依存する。
さらに周知の方法はGourodシェーディングが基になっている。このシェーディングでは、三角形領域を細分割してより小さくする。このようにした場合、シェーディングに現実味がでてくる(EP−A z0456408 and EP-A 0366463)。三角形をさらに分割してより小さくするかどうかは、その三角形の頂点の法線ベクトルの差分による。少なくとも3つの頂点と、3つの頂点に関係する法線ベクトルとにより定義された三角形の表示領域は、追加の頂点と、面の法線ベクトルを補間により計算することにより細分割される。
発明の概要
本発明は、上記のような不都合を解決し、指定された変換プログラムを構成し実行することにより、3次元面を2次元表現に変換する方法および装置を提供する。
本発明は、一連のサブパッチを有する列に分割される3次元スプライン面を、シャードに変換するシステムよりなる。これは、選択された列の各サブパッチに対して一連の評価を行うことによって達成される。このような評価の中間結果はキャッシュ内にストアされる。これらの評価により、サブパッチ間の連続性と、サブパッチの可視性と、サブパッチを離散化するための粒度とが、曲率によるサブパッチの離散化に与えられる。一度、評価が完了すると、各サブパッチの離散化点を保持するグリッドが、適正なアルゴリズムを動的に選択することにより計算される。その後、選択された列のサブパッチ間のクラックが除去されるか、あるいは、選択された列と以前に選択された列間のクラックが除去される。そして、前に選択された列がレンダリングされて図形が得られる。2次元表現を形成する1組の隣接する列を最終的にレンダリングするように、各列は同様の方法で処理される。
本発明は、観察者に対向していない面か、あるいは、表示画面外にある面の一部を除去するための方法も提供する。この方法では、基本的な面の仕様(specefication)を検査するだけでよい。
【図面の簡単な説明】
第1図は本発明に係るコンピュータ・システムを示すブロック図である。
第2A図は本発明による12個のサブパッチを有するNURBの2次元描写を示す図である。
第2B図は本発明による12個のサブパッチを有するNURB面の面パラメタ空間を示す図である。
第3A図は本発明による制御点と制御メッシュを有する2次元面を示す図である。
第3B図は本発明によるシャードと、離散化点と、グリッドと、サブパッチを有する2次元面を示す図である。
第4図は本発明のロジック・オペレーションのフローチャートを示す図である。
第5図は付随する制御メッシュを有する3次元面を示す図である。
第6図は本発明に従って、クラック防止が行われる前の、異なる密度の隣接するテセレーション・グリッドを示す図である。
第7図は本発明に従ってクラック防止が行われた後の、異なる密度の隣接するテセレーション・グリッドを示す図である。
発明の詳細な説明
コンピュータ・システム
第1図は代表的なハードウェア環境を示す。第1図は本発明に係るワークステーション40の適正なハードウェア構成を示す。ワークステーション40はCPU(central processing unit)10、例えば、従来のマイクロプロセッサと、システムバス12を通して相互に接続された複数の他のユニットとを有する。ワークステーション40は、第1図に示すように、RAM(random access memory)14、ROM(read only memory)16、ディスク・ユニットのような周辺デバイスをバス12に接続するためのI/Oアダプタ18、キーボード24、マウス26、スピーカ28、マイクロホン32、および/または、タッチ・スクリーン・デバイス(図示せず)のような他のユーザ・インタフェース・デバイスをバス12に接続するためのユーザ・インタフェース・アダプタ22を含む。ワークステーション40は、ワークステーション40をデータ処理ネットワーク30に接続するための通信アダプタ34と、バス12をディスプレイデバイス38に接続するためのディスプレイアダプタ36も有することができる。
入力パラメタ
本発明は、非均等回転Bスプライン(Non-Uniform Rotational B-Spline;NURB;以下、"NURB"という)面に対するオペレーションをパフォームするものである。テセレータはNURB面に対してオペレーションをパフォームする。NURB面は次式によって定義される。
Figure 0003764478
変数uとvは面のパラメタを表す。変数Vi,jおよびwi,jは、それぞれ、制御点と有理重みのn×m配列を表す。関数Bi,j(u),Bi,j(v)は、それぞれ、ノットベクトル
Figure 0003764478
を有するkと1次のBスプライン混成関数である。
本発明は各NURB面をサブパッチ(subpatch)に分割することから動作する。各NURB面は、ノットベクトルを位置付けて、サブパッチに分割される。サブパッチは、uiからui+l(ただし、ui<ui+l)へのノットベクトルと、viからvi+l(ただし、vi<vi+l)へのノットベクトル内のパラメタ・インタバルとして定義される。
例えば、NURB面は、{0,0,0,1,1,2,3,3,3}のu方向のノットベクトルと、{0,0,0,1,2,3,4,4,4}のv方向のノットベクトルを有することができる。第2A図を説明する。第2A図はこのようなNURB面を示す。結果的に得られる12個のサブパッチは、参照番号200,202,204,206,208,210,212,214,216,218,220および222で参照される。注意すべきことであるが、不連続230のようなパラメタの不連続は、サブパッチの境界のみに生じることができる。
第2B図を説明する。NURB面の面パラメタ空間は図形で示されている。u方向のノットベクトルは4に達するので、5個のノットベクトルがuベクトルに平行に形成される。従って、4行のサブパッチはuベクトルに直交した方向、すなわち、v方向に形成さる。v方向と交差する4行のサブパッチは、0と1、1と2、2と3、および3と4の間にインタバルがある。これとは対照的に、4つのノットベクトルがvベクトル方向に直交して形成されている。というのは、v方向のノットベクトルが3に到達しているからである。これにより、3列のサブパッチがvベクトルに直交する方向、すなわち、u方向に形成される。その結果得られるu方向と交差する3列のサブパッチは、0と1、1と2、および2と3の間にインタバルがある。4行と3列を組合せることにより上述した12個のサブパッチが得られる。
面入力パラメタに加えて、本発明により、次の入力パラメタ、すなわち、(a)表示画面の解像度と、(b)3次元面の座標を2次元画面の座標に変換する3次元変換マトリックスと、(c)3次元座標が2次元表示画面領域外にあるかどうかを判断するためのクリッピング情報と、(d)面の裏面部分(backfacing portions)が除去(cull)可能かどうかを示すフラグが得られる。
ロジック・オペレーションの概要
本発明は、数多くのステップで、3次元面を分析することからオペレートする。第1に、ある列のサブパッチが選択される。列は面のパラメタ空間において左から右へ向かって選択される。第2に、列内の各サブパッチが分析される。分析結果は、列内のサブパッチの集合に対応するグリッドの集合を計算したものである。グリッドは面上の離散化点を矩形に配列したものである。クラックはシャードメッシュ間の区切りまたはギャップである。シャードは面上の離散化点集合により定義された頂点集合をもつ面の三角形の部分である。グリッドの集合は、(i)列内の各サブパッチにクラックがあり、(ii)選択された列と前に選択された列(現在選択された列の左側の列)の間にクラックがある場合は、これらのクラックが後で除去される。本発明により、左から右へグリッド列が生成されるので、グリッドの特定の列は、隣接する列が計算されたときにだけドロー(draw)することができる。従って、選択された列のグリッドを計算した後、グリッドの前の列がドローされる。その後、右側に隣接する列のサブパッチが選択され、このプロセス全体が繰り返される。
第3A図は制御点と制御メッシュをもつ2次元面を示し、第3B図は本発明によるシャードと、離散化点と、グリッドと、サブパッチをもつ2次元面を示す。制御点300および302により、制御メッシュ310と制御メッシュファセット320の寸法が定義される。サブパッチの例も330に示す。シャードは340に示され、離散化点342の集合によって定義される。離散化点のグリッドも350に示す。
第4図は本発明のロジック・オペレーションのフローチャートを示す。初期状態では、ロジック・ブロック400にて、中間結果をストアしておくため、キャッシュが割り振られる。その後、ブロック402にて、u方向のインタバルが選択される。u方向のインタバルは左から右へ、すなわち、インタバルがuベクトルの原点から、現れる順に選択される。例えば、第2図と第3図に示すNURB面がまず選択され、0と1の間のインタバルに関して分析される。このようなインタバルはサブパッチ200,202,204および206を含む。その後、NURB面が選択され、1と2の間のインタバルに関して分析され、最終的には、2と3の間のインタバルに関して分析される。
一度、u方向のインタバルを構成する列が選択されると、v方向の各インタバルであって、u方向の選択されたインタバル内に存在する各インタバルが分析される。従って、選択された列内のサブパッチは、vベクトルから増分順序で選択される。このことはブロック408に示す。例えば、第2図と第3図に示すNURB面のサブパッチ200は、NURB面の1と2の間のu方向のインタバルが選択されると、最初に選択され分析される。その後、サブパッチ202,204,206がこの順序で分析される。従って、サブパッチの選択は、u方向のインタバルの選択内でネストされたループになっている。
選択されたサブパッチが最初に分析され、そのサブパッチが見えるかどうかが判断される。すなわち、(i)サブパッチは裏面が除去(cull)されているかどうか、(ii)サブパッチが表示からクリッピングされているかどうかの判断が行われる。このことはブロック410に示す。裏面が除去されるか、あるいは、クリッピングされている場合は、制御がブロック408に移行し、ブロック408にて、その後のサブパッチが選択され、その後、分析される。
選択されたサブパッチが裏面除去か、あるいは、クリッピングされていない場合は、制御がブロック412ないしブロック412に移行し、既に選択されたサブパッチがさらに分析される。ブロック412にて、選択されたサブパッチを離散化するための粒度が判断される。一度、粒度が判断されると、選択された列内の隣接するサブパッチを有するサブパッチの連続性が判断される。このことは、ブロック414に示す。連続性は、選択されたサブパッチと、v方向の隣接するサブパッチとの間のように判断される。言い換えれば、連続性は選択されたサブパッチと、ブロック408のロジック内で次に選択されるサブパッチとの間で判断される。連続性が判断されると、サブパッチのキャッシュ基底関数が、ブロック416に示すように判断される。
選択されたサブパッチのさらなる分析には、(i)ブロック418に示すが、離散化の粒度が大きいどうかの判断と、(ii)ブロック424に示すが、面のエッジに対するサブパッチの位置の判断とが含まれる。離散化の粒度が大きいと判断されると、サブパッチの離散化点のグリッドが前進差分アルゴリズムに従って計算されるようにする。このことはブロック422に示す。逆に、離散化の粒度が小さいと判断されると、サブパッチの離散化点のグリッドが直接評価アルゴリズムによって判断される。このことはブロック420に示す。
選択されたサブパッチの離散化点のグリッドが、一度、前進差分または直接評価のいずれかにより計算されると、面のエッジに対するサブパッチの位置が判断される。このことはブロック424に示す。サブパッチが面のエッジ上にある場合は、エッジはブロック426に示すように独立に計算され、制御が機能ブロック428に渡される。サブパッチのどの部分も面上にないと判断された場合は、制御のフローは、直接、ブロック428に移行する。
ブロック428では、選択されたサブパッチから形成されたグリッドと、前に選択されたサブパッチから形成されたグリッドと間に存在する全てのクラックをシールすることが要求される。すなわち、ブロック414で判断されたクラックのシーリングが行われる。そのあと、制御のフローはブロック408に戻り、ブロック402で選択されたインタバル内の後続のサブパッチが選択される。
一度、ブロック402で選択された列内の各サブパッチが分析されると、選択されたインタバルは、それ自体と、前に選択され分析されたu方向の隣接するインタバルとの間に連続性があるかどうかを判断する。このことはブロック404に示す。例えば、第2図と第3図に示すように、NURB面の2と3の間のu方向のインタバルは、そのインタバルと、1と2の間のu方向のインタバルとの間に連続性があるか否かが判断される。
選択された列と前に選択された列との間に連続性があると判断されると、その後、判断された全てのクラックがシールされる。このことはブロック424に示す。前に選択された列からは、その両側で隣接する列で共用されたクラックが除去されたので、前に選択された列のグリッドの列がドローされる。さらに、調度計算されたグリッドの列は、新たに選択された列に対する将来の分析に対して、前の列となる。このことはブロック430に示す。その後、制御のフローはブロック402に戻り、ブロック402にて、u方向に隣接する列が分析のために選択される。
テセレータはサブパッチを1インタバルごとに処理するので、最初の列のクラック防止と出力は、少なくとも2つの列が生成されたときにだけ行うことができる。出力は、常に、グリッド列の計算または生成よりも1列分だけ遅れることになる。従って、前に生成されたグリッドの列は、その列に対してレンダリングが存在しているので、ブロック440で示すようにフラッシュされる。
本発明の詳細なロジック・オペレーション
種々のアプリケーションは本発明を実施して、面をテセレートする。3次元モデリングと、CAD(computer automated design)アプリケーションは、本発明を実施するアプリケーションの例である。この種のアプリケーションにより、テセレーションの対象となる3次元面を定義する制御メッシュが形成される。
第5図を説明する。第5図は3次元面をその制御メッシュととともに図示する。3次元面500は前部ファセット502と、後部ファセット504と、側部ファセット506をもつ制御メッシュを有する。制御メッシュの前部ファセット502は下部三角形と上部三角形よりなる。制御メッシュの後部ファセット504は下部三角形514と上部三角形516を有する。制御メッシュの側部ファセット506は下部三角形518と上部三角形520を有する。
入力パラメタを受け取ると、本発明により、種々情報がキャッシュ内に割り振られる。そのキャッシュは種々の評価の中間結果をストアしておくために採用されている。次のキャッシュが形成される。第1に、サブパッチ間の境界を示すノットベクトルへのインデックスである整数ブレークポイント・インタバルのキャッシュが形成される。このため、サブパッチ境界をその後判断しないで済む。第2に、uとvのスプラインの基底関数と、その導関数のためのキャッシュも形成される。基底関数はuまたはvの特定値の面全体に亘って一定であるので、このキャッシュを作ると、冗長な計算が回避される。第3に、あるサブパッチの変換された制御点を保存しておくためのキャッシュが形成される。このキャッシュは、除去とクリッピング・テストが後で行われるときに利用される。第4に、計算されたグリッドの2列を保存しておくためのキャッシュが形成される。各グリッドはサブパッチの離散化点よりなる。そして、シャードは、特定のサブパッチに対して、そのサブパッチに対応するグリッドの離散化点からレンダリングされる。
一度、キャッシュが全て形成されると、本発明により、3次元変換マトリックスによって全面制御点が変換される。その後、本発明により、u方向の最初のインタバルが選択される。最初のインタバルは本質的に列である。選択された列の各サブパッチが次に分析され、列のサブパッチ間のように、クラックのないサブパッチの列が最終的に生成される。
本発明によれば、初期に、各サブパッチが分析され、サブパッチが目に見えるかどうかが判断される。サブパッチが裏面除去されないか、あるいは、表示画面から完全にクリッピングされていない場合は、そのサブパッチは可視である。裏面とは、ディスプレイ上で見るため面が変換された後、観察者の視界に入らない面の部分をいう。
裏面の評価は、制御メッシュの部分を検査して裏面エレメントの有無を調べるアルゴリズムによって行われる。裏面が存在するか否かは、特定のサブパッチを定義している制御点のk×1グリッドを最初に調べることにより判断される。次に、隣接する制御点の各集合の三角形が裏面に関して検査される。特定の制御メッシュの全三角ファセットが裏面である場合は、サブパッチ全体が裏面とみなされる。その結果、その特定の制御メッシュは、裏面の面が除去される場合には、レンダリングされない。
制御メッシュファセットの裏面分析を行っている間、2つのフラグが保存される。一方のフラグは、制御メッシュファセットのいずれかが裏面であると判断された場合は、真にセットされる。制御メッシュ面のいずれかが裏面であるとき、下位レベル・レンダリング・コードは、そのファセットに関連するサブパッチの個々のシャードに対して裏面分析を行わなければならない。他方のフラグは、制御メッシュの全てのファセットが裏面であるとき、真にセットされる。全てのファセットが裏面であると判断されれたとき、裏面の面がレンダリングされない場合は、サブパッチ全体が無視される。
本発明により、裏面分析が行われた後、必要とするビューイングの遠近感を得るため、各サブパッチの制御点はクリッピング錐台と比較される。面の一部の凸面外皮が表示画面の境界外にあるかどうか判定するため、あるアルゴリズムが採用されている。利用可能な表示領域を囲む境界枠が表示画面の境界内にない場合は、サブパッチはクリッピングされ、従って、レンダリングされない。裏面評価の場合のように、本発明によれば、その後のレンダリングのための個々のシャードに対する冗長なテストを避けるため、クリッピングされたサブパッチが識別され再コールされる。
不可視と判断されるサブパッチは、裏面除去されようが、表示画面から完全にクリッピングされようが、適正なフラグが付けられる。フラグが付けられたサブパッチは離散化とシェーディングに対してこれ以上分析されない。
全ての不可視のサブパッチが判断された後、離散化の粒度が判断される。粒度とは、グリッドにおける離散化点の密度のことである。従って、サブパッチが表示画面に大きく表示され、しかも、サブパッチが大きく曲っている場合は、粒度が大きくなる虞がある。逆に、面が相対的に小さく、平坦である場合は、粒度は小さくなる。
本発明によれば、粒度の判断はuとvの両方向の面の第2導関数の大きさを調べることにより行われる。大きさの測定は、最大曲率を求めるため、多くの箇所で行われる。このパラメタは、サブパッチに対して生成される離散的なグリッドサンプルの数として採用される。そして、離散化点をストアすることができるサブパッチにグリッドが割り振られる。
粒度の判断が行われると、選択された列内の各サブパッチに対して、連続性の分析が行われる。各サブパッチは、列内の隣接する各サブパッチに対して、連続しているか否かが分析される。連続性は、uおよびvパラメタ内のノットベクトルを調べることによって判断される。連続性の判断により得られた結果は、列のサブパッチ間にシーム(seam)を正確に表現するため、クラック防止プロセスの過程で採用される。制御点の行または列の数がuまたはv方向の面の次数を超えた場合は、そのような面は複数のセグメントでレンダリングしなければならない。各セグメントは個々の多項曲線になる。これらのセグメントは、Cnで示す異なる連続性で結合される。変数nは連続性の次数である。位置の変化はC0不連続性である。従って、C0不連続性は曲線の切れ目である。タンジェントの変化はC1不連続性である。従って、C1不連続性は曲線勾配の急激な変化である。速度の変化はC2不連続性である。従って、C2不連続性は速度の変化である。
Bezierノットベクトルを有する面は、他の面とは異なる方法で扱わなければならない。これは、制御点が同一線上にある場合であっても、ノットベクトルはC1結合を示すことができるからである。この例では、サブパッチを円滑に結合し、その結合をC2連続とマークするべきである。その結合の連続性はクラック防止のガイドとして使用される。
サブパッチの粒度が大きいか小さいかを判断した後、選択されたサブパッチのグリッドが2つのアルゴリズムのいずれかにより計算される。最初に、スプライン基底値のキャッシュが、そのスプラインのノットベクトルに従って、特定のサブパッチに対して初期化される。多数のサンプルが必要である場合は、前進差分アルゴリズムが実施される。特に、粒度測定で判断されたように、uまたはv方向のサンプル数が方向の次数の2倍を超えるとき、前進差分が採用される(ただし、kと1はそれぞれuおよびv面の次数である)。従って、粒度測定により、uのサンプル数が2kより大であるか、あるいはvのサンプル数が2kより大であると判断された場合は、前進差分アルゴリズムが採用される。そうでない場合は、直接評価アルゴリズムが採用される。
前進差分アルゴリズムは、最初に、サブパッチのk×1点を評価して、前進差分値の配列を作る。その配列の点はv方向の面列を評価することにより生成される。その後の点の列は、評価された面列の前進差分値を前進差分計算することにより得られる。
本発明によれば、特定の点を取り巻く三角形からの法線ベクトルの平均をとることにより、制御メッシュからの法線ベクトルを生成する。ただし、面のエッジの法線ベクトルは直接評価により独立に計算される。
適正なアルゴリズムを選択し適用することによりグリッドが計算されると、サブパッチが面の周縁にあるかどうかが判断される。この判断は、2つの隣接するサブパッチの等価のエッジが、等価のエッジを種々にテセレートするのを防止するために行われる。2つのエッジは、その制御点と、ノットベクトルと、次数が同一である場合に等価である。従って、ある面のエッジ上の全てのサブパッチのサンプリング密度は独立に計算される。
本発明によれば、最後のステップはクラック防止であり、クラックが除去される。ノットベクトルがC0不連続(面の切れ目)が存在することを示している場合は、クラック防止は行われず、その不連続にフラグが付けられる。クラック除去のために書かれたコードがこれらの不連続を無視するように、同様に、C1不連続にフラグが付けられる。そうでない場合は、C0とC1不連続は除去され、不正確なレンダリングが行われる。
選択された列内の各サブパッチのクラックが最初に除去される。その後、選択された列と、前に選択された列との間のクラックが判断され除去される。
クラックは、2つの隣接するサブパッチが異なる密度でサンプリングされるとき、レンダリングで生じる。クラックを防止するため、本発明によれば、グリッドの各点がより密度の高いグリッドの点と突き合わされる。突き合わせることができないより密度の高いグリップの点は、強制的にグリッドのエッジとエッジの間のライン上に残される。
第6図にを説明する。密度が異なる隣接するテセレーション・グリッドは、クラック防止が行われる前のものである。2つのグリッドのエッジを分けているエッジライン650は13個の点を含んでいる。エッジライン650は上部共用終点と、下部共用終点と、共用中間点を含んでおり、これらの点は参照符号600,602および604で示す。エッジライン650上の4点を参照符号606,608,610,612で示す。これらの4点はより密度の低いグリッドの非共用エッジ点である。エッジライン650上の6点を参照符号614,616,618,620,622,624で示す。これらの6点はより密度の高いグリッドの非共用エッジ点である。
第7図を説明する。密度が異なる隣接するテセレーション・グリッドは、クラック防止が行われた後のものである。クラック防止プロシージャが実行された後、4個の共用点がエッジライン650上に形成される。すなわち、点606,608,610,612は、前はより密度の低いグリッドの非共用エッジ点であったものであり、点614,61 8,620,624と結合されており、これらの点は、前はより密度の高いグリッドの非共用エッジ点であったものである。従って、結合点702,704,706,708は図に示すようになる。点616と622は高密度グリッドの非共用エッジ点としてラインに射影されている。
"numleft"点と"numright"点を有する点"left"と"right"の配列が与えられた場合、これらの点集合間のクラックを除去するために次のようなアルゴリズムが採用される。
Figure 0003764478
このクラック防止プロシージャは、グリッドの第1列であって、近隣の列が1列だけの第1列と、第2生成列との間のエッジラインを最初に検査する。一度、第1列と第2列の間のクラック防止検査が完了すると、テセレーション・グリッドの第1列がレンダリングされる。その後、第3列が生成され、第2列と第3列との間のエッジラインが検査される。一度、第2列と第3列との間のクラック防止が完了すると、グリッドの第2列がレンダリングされる。このプロシージャが、クラック防止のために、全てのエッジラインが検査されるまで続けられる。
グリッド間のクラック防止に加えて、クラック防止プロシージャは隣接するNURB面の間でも採用される。NURB面間のクラックを検査するときのプロシージャは、グリッド間のクラック防止のプロシージャと同様である。面は相互に独立してレンダリングされるので、同一のエッジを持つ2つの隣接面は、そのエッジを種々にテセレートすることが可能である。
最終的には、前に選択された列がレンダリングされる。これは、列が生成されると、列をレンダリングすることができるからであり、同様に、隣接する列が生成されると、列をレンダリングすることができるからである。そうでない場合は、隣接する列と列の間のクラック防止は行うことができない。そして、最後に生成された列と、前に生成された列を置き換え、次に選択された列の評価内で利用する。そして、上述したプロセスは次に選択された列上で繰り返される。この繰返しは全ての列がレンダリングされるまで続けられる。
3次元面をレンダリングするため、本発明者による本発明の実施例を次に示し、本発明の詳細ロジックを理解し易くする。
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
Figure 0003764478
以上、特定のシステム環境における好ましい実施例で本発明を説明したが、当業者は、他の異なるハードウェアおよびソフトウェア環境でも、請求の範囲の精神と範囲を逸脱しない限り、変更された本発明を実施することができることは当然である。

Claims (22)

  1. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする方法において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択するステップと、
    (b)選択した第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチに対して、それぞれ、
    (c)前記第mのサブパッチが前記ディスプレイ上で可視であるかどうかを判定するステップと、
    (d)可視であると判定した場合に、離散化点のグリッドを計算するステップと、
    (e)m=1である場合に、第2のサブパッチに対して、他方、m≧2である場合に、第(m+1)のサブパッチに対して、ステップ(c)、(d)を繰り返すステップと、
    (f)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止めるステップと、
    (g)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、突き合わせる方のグリッドを再配置し、当該突き合わせる方のグリッドが当該再配置前に配置されていた離散化点を除去するステップと、
    (h)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローするステップと、
    (i)第(m+2)から最後までのサブパッチに対して、ステップ(c)〜(h)を繰り返すステップと、
    (j)第(n+1)から最後までのサブパッチ列に対して、ステップ(c)〜(i)を繰り返すステップと
    を備えたことを特徴とする方法。
  2. 請求の範囲第1項において、前記ドローするステップは、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする方法。
  3. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする方法において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択するステップと、
    (b)選択した第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチに対して、それぞれ、
    (c)前記第mのサブパッチが前記ディスプレイ上で可視であるかどうかを判定するステップと、
    (d)可視であると判定した場合に、離散化点の密度である粒度を計算するステップと、
    (e)計算した粒度が所定の粒度以上である場合に、サブパッチの離散化点のグリッドを生成するための2つの異なるアルゴリズムのうちの一方を選択し、他方、前記計算した粒度が前記所定の粒度未満である場合に、前記2つの異なるアルゴリズムのうちの他方を選択するステップと、
    (f)選択したアルゴリズムを用いて、離散化点のグリッドを計算するステップと、
    (g)m=1である場合に、第2のサブパッチに対して、他方、m≧2である場合に、第(m+1)のサブパッチに対して、ステップ(c)、(d)を繰り返すステップと、
    (h)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止めるステップと、
    (i)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去するステップと、
    (j)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローするステップと、
    (k)第(m+2)から最後までのサブパッチに対して、ステップ(c)〜(j)を繰り返すステップと、
    (l)第(n+1)から最後までのサブパッチ列に対して、ステップ(c)〜(k)を繰り返すステップと
    を備えたことを特徴とする方法。
  4. 請求の範囲第3項において、前記ドローするステップは、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする方法。
  5. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割され、各サブパッチと面粒度とが対応させてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする方法において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択するステップと、
    (b)選択した第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチに対して、それぞれ、
    (c)前記第mのサブパッチが前記ディスプレイ上で可視であるかどうかを判定するステップと、
    (d)可視であると判定した場合に、当該サブパッチに対応する面粒度が所定の粒度以上である場合に、サブパッチの離散化点のグリッドを生成するための2つの異なるアルゴリズムのうちの一方を選択し、他方、当該サブパッチに対応する面粒度が前記所定の粒度未満である場合に、前記2つの異なるアルゴリズムのうちの他方を選択するステップと、
    (f)選択したアルゴリズムを用いて、離散化点のグリッドを計算するステップと、
    (g)m=1である場合に、第2のサブパッチに対して、他方、m≧2である場合に、第(m+1)のサブパッチに対して、ステップ(c)、(d)を繰り返すステップと、
    (h)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止めるステップと、
    (i)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去するステップと、
    (j)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローするステップと、
    (k)第(m+2)から最後までのサブパッチに対して、ステップ(c)〜(j)を繰り返すステップと、
    (l)第(n+1)から最後までのサブパッチ列に対して、ステップ(c)〜(k)を繰り返すステップと
    を備えたことを特徴とする方法。
  6. 請求の範囲第5項において、前記ドローするステップは、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする方法。
  7. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割され、各サブパッチと面粒度とが対応させてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする方法において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択するステップと、
    (b)選択した第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチに対して、それぞれ、
    (c)前記第mのサブパッチが前記ディスプレイ上で可視であるかどうかを判定するステップと、
    (d)可視であると判定した場合に、当該サブパッチに対応する面粒度が所定の粒度以上である場合に、直接評価アルゴリズムを選択し、他方、当該サブパッチに対応する面粒度が前記所定の粒度未満である場合に、前進差分アルゴリズムを選択するステップと、
    (f)選択したアルゴリズムを用いて、離散化点のグリッドを計算するステップと、
    (g)m=1である場合に、第2のサブパッチに対して、他方、m≧2である場合に、第(m+1)のサブパッチに対して、ステップ(c)、(d)を繰り返すステップと、
    (h)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止めるステップと、
    (i)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去するステップと、
    (j)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチをドローするステップと、
    (k)第(m+2)から最後までのサブパッチに対して、ステップ(c)〜(j)を繰り返すステップと、
    (l)第(n+1)から最後までのサブパッチ列に対して、ステップ(c)〜(k)を繰り返すステップと
    を備えたことを特徴とする方法。
  8. 請求の範囲第7項において、前記ドローするステップは、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする方法。
  9. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする方法において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択するステップと、
    (b)選択した第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチに対して、それぞれ、
    (c)前記第mのサブパッチが前記ディスプレイ上で可視であるかどうかを判定するステップと、
    (d)可視であると判定した場合に、離散化点の密度である粒度を計算するステップと、
    (e)計算した粒度が所定の粒度以上である場合に、サブパッチの離散化点のグリッドを生成するための2つの異なるアルゴリズムのうちの一方を選択し、他方、前記計算した粒度が前記所定の粒度未満である場合に、前記2つの異なるアルゴリズムのうちの他方を選択するステップと、
    (f)選択したアルゴリズムを用いて、離散化点のグリッドを計算するステップと、
    (g)m=1である場合に、第2のサブパッチに対して、他方、m≧2である場合に、第(m+1)のサブパッチに対して、ステップ(c)、(d)を繰り返すステップと、
    (h)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止めるステップと、
    (i)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去するステップと、
    (j)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローするステップと、
    (k)第nのサブパッチ列の第mのサブパッチを前記メモリにストアするステップと、
    (l)第(m+2)から最後までのサブパッチに対して、ステップ(c)〜(k)を繰り返すステップと、
    (m)第(n+1)から最後までのサブパッチ列に対して、ステップ(c)〜(l)を繰り返すステップと
    を備えたことを特徴とする方法。
  10. 請求の範囲第9項において、前記ドローするステップは、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする方法。
  11. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする方法において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択するステップと、
    (b)選択した第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチに対して、それぞれ、
    (c)前記第mのサブパッチが前記ディスプレイ上で可視であるかどうかを判定するステップと、
    (d)可視であると判定した場合に、離散化点の密度である粒度を計算するステップと、
    (e)計算した粒度が所定の粒度以上である場合に、サブパッチの離散化点のグリッドを生成するための2つの異なるアルゴリズムのうちの一方を選択し、他方、前記計算した粒度が前記所定の粒度未満である場合に、前記2つの異なるアルゴリズムのうちの他方を選択するステップと、
    (f)選択したアルゴリズムを用いて、離散化点のグリッドを計算するステップと、
    (g)m=1である場合に、第2のサブパッチに対して、他方、m≧2である場合に、第(m+1)のサブパッチに対して、ステップ(c)、(d)を繰り返すステップと、
    (h)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止めるステップと、
    (i)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去するステップと、
    (j)第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成するステップと、
    (k)作成したシャードをレンダリングするステップと、
    (l)レンダリングしたシャードを前記ディスプレイ上に表示するステップと、
    (m)第(m+2)から最後までのサブパッチに対して、ステップ(c)〜(l)を繰り返すステップと、
    (n)第(n+1)から最後までのサブパッチ列に対して、ステップ(c)〜(m)を繰り返すステップと
    を備えたことを特徴とする方法。
  12. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする装置において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択する手段と、
    (b)選択された第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチを選択する手段と、
    (c)選択されたサブパッチが前記ディスプレイ上で可視であるかどうかを判定する手段と、
    (d)可視であると判定された場合に、離散化点のグリッドを計算する手段と、
    (e)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止める手段と、
    (f)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、突き合わせる方のグリッドを再配置し、当該突き合わせる方のグリッドが当該再配置前に配置されていた離散化点を除去する手段と、
    (g)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローする手段と
    を備えたことを特徴とする装置。
  13. 請求の範囲第12項において、前記ドローする手段は、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする装置。
  14. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする装置において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択する手段と、
    (b)選択された第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチを選択する手段と、
    (c)選択されたサブパッチが前記ディスプレイ上で可視であるかどうかを判定する手段と、
    (d)可視であると判定された場合に、離散化点の密度である粒度を計算する手段と、
    (e)計算された粒度が所定の粒度以上である場合に、サブパッチの離散化点のグリッドを生成するための2つの異なるアルゴリズムのうちの一方を選択し、他方、前記計算された粒度が前記所定の粒度未満である場合に、前記2つの異なるアルゴリズムのうちの他方を選択する手段と、
    (f)選択されたアルゴリズムを用いて、離散化点のグリッドを計算する手段と、
    (g)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止める手段と、
    (h)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去する手段と、
    (i)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローする手段と
    を備えたことを特徴とする装置。
  15. 請求の範囲第14項において、前記ドローする手段は、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする装置。
  16. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割され、各サブパッチと面粒度とが対応させてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする装置において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択する手段と、
    (b)選択された第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチを選択する手段と、
    (c)選択されたサブパッチが前記ディスプレイ上で可視であるかどうかを判定する手段と、
    (d)可視であると判定した場合に、当該サブパッチに対応する面粒度が所定の粒度以上である場合に、サブパッチの離散化点のグリッドを生成するための2つの異なるアルゴリズムのうちの一方を選択し、他方、当該サブパッチに対応する面粒度が前記所定の粒度未満である場合に、前記2つの異なるアルゴリズムのうちの他方を選択する手段と、
    (e)選択されたアルゴリズムを用いて、離散化点のグリッドを計算する手段と、
    (f)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止める手段と、
    (g)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去する手段と、
    (h)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローする手段と、
    を備えたことを特徴とする装置。
  17. 請求の範囲第16項において、前記ドローする手段は、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする装置。
  18. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割され、各サブパッチと面粒度とが対応させてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする装置において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択する手段と、
    (b)選択された第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチを選択する手段と、
    (c)選択されたサブパッチが前記ディスプレイ上で可視であるかどうかを判定する手段と、
    (d)可視であると判定した場合に、当該サブパッチに対応する面粒度が所定の粒度以上である場合に、直接評価アルゴリズムを選択し、他方、当該サブパッチに対応する面粒度が前記所定の粒度未満である場合に、前進差分アルゴリズムを選択する手段と、
    (e)選択されたアルゴリズムを用いて、離散化点のグリッドを計算する手段と、
    (f)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止める手段と、
    (g)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、粒度の大きい方のサブパッチに属するグリッドを再配置し、当該粒度の大きい方のサブパッチに属するグリッドが当該再配置前に配置されていた離散化点を除去する手段と、
    (h)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチをドローする手段と
    を備えたことを特徴とする装置。
  19. 請求の範囲第18項において、前記ドローする手段は、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする装置。
  20. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする装置において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択する手段と、
    (b)選択された第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチを選択する手段と、
    (c)選択されたサブパッチが前記ディスプレイ上で可視であるかどうかを判定する手段と、
    (d)可視であると判定された場合に、離散化点のグリッドを計算する手段と、
    (e)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止める手段と、
    (f)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、突き合わせる方のグリッドを再配置し、当該突き合わせる方のグリッドが当該再配置前に配置されていた離散化点を除去する手段と、
    (g)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローする手段と
    (h)第nのサブパッチ列の第mのサブパッチを前記メモリにストアする手段と、
    を備えたことを特徴とする装置。
  21. 請求の範囲第20項において、前記ドローする手段は、第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成し、作成したシャードをレンダリングし、レンダリングしたシャードを前記ディスプレイ上に表示することを特徴とする装置。
  22. 所定の面が複数のサブパッチ列に分割されるとともに、該複数のサブパッチ列がそれぞれ複数のサブパッチに分割されてストアされたメモリを有するコンピュータであって、ディスプレイが接続されたコンピュータにより前記所定の面をテセレートする装置において、
    (a)前記メモリにストアされた複数のサブパッチ列から第n(≧1)のサブパッチ列を選択する手段と、
    (b)選択された第nのサブパッチ列の複数のサブパッチのうちの第m(≧1)のサブパッチを選択する手段と、
    (c)選択されたサブパッチが前記ディスプレイ上で可視であるかどうかを判定する手段と、
    (d)可視であると判定された場合に、離散化点のグリッドを計算する手段と、
    (e)n=1である場合に、第1のサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインから、グリッドサンプリング密度が異なることに起因して生じたクラックを突き止め、他方、n≧2である場合に、第nのサブパッチ列の第mのサブパッチと第(m+1)のサブパッチとの間のエッジラインと、第(n−1)のサブパッチ列の第mのサブパッチと第nのサブパッチ列の第mのサブパッチとの間のエッジラインとから、クラックを突き止める手段と、
    (f)突き止められたクラックに関係するエッジライン上に存在する離散化点から、当該エッジラインに関係する2つのサブパッチに属する2つのグリッドどうしが突き合わされることになる結合点としての離散化点を突き止め、この突き止めた結合点に、突き合わせる方のグリッドを再配置し、当該突き合わせる方のグリッドが当該再配置前に配置されていた離散化点を除去する手段と、
    (g)クラック除去後のグリッドを用いて、第nのサブパッチ列の第mのサブパッチを前記ディスプレイ上にドローする手段と
    (h)第nのサブパッチ列の第mのサブパッチに対して、クラック除去後のグリッドを用いてシャードを作成する手段と、
    (i)作成したシャードをレンダリングする手段と、
    (j)レンダリングしたシャードを前記ディスプレイ上に表示する手段
    を備えたことを特徴とする装置。
JP51704994A 1993-01-22 1994-01-06 テセレーション・システム Expired - Lifetime JP3764478B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/007,952 US5428718A (en) 1993-01-22 1993-01-22 Tessellation system
US08/007,952 1993-01-22
PCT/US1994/000194 WO1994017486A1 (en) 1993-01-22 1994-01-06 Tessellation system

Publications (2)

Publication Number Publication Date
JPH08506671A JPH08506671A (ja) 1996-07-16
JP3764478B2 true JP3764478B2 (ja) 2006-04-05

Family

ID=21729007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51704994A Expired - Lifetime JP3764478B2 (ja) 1993-01-22 1994-01-06 テセレーション・システム

Country Status (7)

Country Link
US (1) US5428718A (ja)
EP (1) EP0664911B1 (ja)
JP (1) JP3764478B2 (ja)
AU (1) AU6021894A (ja)
CA (1) CA2135520A1 (ja)
DE (1) DE69400205D1 (ja)
WO (1) WO1994017486A1 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6078331A (en) * 1996-09-30 2000-06-20 Silicon Graphics, Inc. Method and system for efficiently drawing subdivision surfaces for 3D graphics
US5995109A (en) * 1997-04-08 1999-11-30 Lsi Logic Corporation Method for rendering high order rational surface patches
DE69814011T2 (de) * 1997-06-13 2003-12-11 Koninkl Philips Electronics Nv Computergrafikverfahren und vorrichtung
GB9712684D0 (en) 1997-06-18 1997-08-20 Philips Electronics Nv Fast processing of image primitives
US6304265B1 (en) * 1998-01-30 2001-10-16 Hewlett-Packard Company System for distinguishing front facing and back facing primitives in a computer graphics system using area calculations in homogeneous coordinates
US6147689A (en) * 1998-04-07 2000-11-14 Adobe Systems, Incorporated Displaying 2D patches with foldover
US6317125B1 (en) 1998-06-19 2001-11-13 Interplay Entertainment Corp. Saxs video object generation engine
US7375727B1 (en) 1998-07-22 2008-05-20 Nvidia Corporation System, method and computer program product for geometrically transforming geometric objects
US6480205B1 (en) * 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6545676B1 (en) 1999-05-24 2003-04-08 Parametric Technology Corporation Method and system for creating a tessellated approximation of an outer envelope of a complex model
US7209140B1 (en) 1999-12-06 2007-04-24 Nvidia Corporation System, method and article of manufacture for a programmable vertex processing model with instruction set
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
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
KR20020058608A (ko) * 2000-12-30 2002-07-12 오길록 컴퓨팅 장치에서 두 개의 비-스플라인 곡선이나 곡면의경계가 연속성을 갖도록 하기 위한 대수적 블렌딩 처리방법
US7133044B2 (en) * 2001-05-15 2006-11-07 Autodesk, Inc. System of feature-based surface mapping
US8576232B2 (en) * 2001-12-31 2013-11-05 Siemens Product Lifecycle Management Software Inc. Apparatus, method, and system for drafting multi-dimensional drawings
US7068273B2 (en) * 2002-01-28 2006-06-27 Konami Corporation Recording medium which stores 3D image processing program, 3D image processor, 3D image processing method, and video game machine
GB2415117B (en) * 2002-05-10 2006-04-12 Imagination Tech Ltd An interface and method of interfacing between a parametric modelling unit and a polygon based rendering system
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
US8217936B1 (en) 2007-05-30 2012-07-10 Adobe Systems Incorporated Minimizing tessellation of surfaces
US7948489B1 (en) 2007-05-30 2011-05-24 Adobe Systems Incorporated Minimizing tessellation of surfaces
US7928979B2 (en) 2008-02-01 2011-04-19 Microsoft Corporation Efficient geometric tessellation and displacement
US8243070B1 (en) 2008-04-18 2012-08-14 Adobe Systems Incorporated Triangulation for accelerated rendering of polygons
US8072452B1 (en) 2008-04-18 2011-12-06 Adobe Systems Incorporated Efficient multi-resolution curve rendering
US8773432B2 (en) 2008-04-18 2014-07-08 Adobe Systems Incorporated Triangulation for accelerated multi-resolution rendering of stroked paths
US20100164954A1 (en) * 2008-12-31 2010-07-01 Sathe Rahul P Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation
CN101872485A (zh) * 2009-04-27 2010-10-27 鸿富锦精密工业(深圳)有限公司 曲面坐标值转换方法
JP5791312B2 (ja) * 2011-03-08 2015-10-07 カルソニックカンセイ株式会社 表面加工データの作成方法および装置
AU2013206560A1 (en) 2013-06-27 2015-01-22 Canon Kabushiki Kaisha Method, system and apparatus for rendering
KR102072656B1 (ko) 2013-07-16 2020-02-03 삼성전자 주식회사 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템
AU2013267004A1 (en) * 2013-12-04 2015-06-18 Canon Kabushiki Kaisha Method, apparatus and system for tessellating a parametric patch
KR102329475B1 (ko) 2014-08-27 2021-11-19 삼성전자주식회사 렌더링 퀄리티 제어 장치 및 방법
EP3038060B1 (en) * 2014-12-23 2021-09-15 Dassault Systèmes 3D modeled object defined by a grid of control points
EP3051446A1 (en) 2015-02-02 2016-08-03 Dassault Systèmes Engraving a 2D image on a subdivision surface

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3658427A (en) * 1969-11-28 1972-04-25 Anthony B Decou Attitude sensor, and system for controlling attitude of an object
US3889107A (en) * 1972-10-16 1975-06-10 Evans & Sutherland Computer Co System of polygon sorting by dissection
US3881605A (en) * 1973-06-29 1975-05-06 Ibm Object orienting device to assist robot manipulator
US4082188A (en) * 1976-06-23 1978-04-04 Hoffmann-La Roche Inc. Apparatus for color recognition and defect detection of objects such as capsules
US4677576A (en) * 1983-06-27 1987-06-30 Grumman Aerospace Corporation Non-edge computer image generation system
US4635208A (en) * 1985-01-18 1987-01-06 Hewlett-Packard Company Computer-aided design of systems
US4646251A (en) * 1985-10-03 1987-02-24 Evans & Sutherland Computer Corporation Computer graphics, parametric patch parallel subdivision processor
US4742356A (en) * 1985-12-09 1988-05-03 Mcdonnell Douglas Corporation Method and apparatus for determining remote object orientation and position
US4704694A (en) * 1985-12-16 1987-11-03 Automation Intelligence, Inc. Learned part system
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US4930092A (en) * 1987-01-20 1990-05-29 Auto-Trol Technology Corporation Polygon display apparatus and method
JPS63238665A (ja) * 1987-03-26 1988-10-04 Toshiba Corp 離散化用3角形メツシユの形成装置
US4912659A (en) * 1987-10-30 1990-03-27 International Business Machines Corporation Parallel surface processing system for graphics display
US4939648A (en) * 1987-12-02 1990-07-03 Schlumberger Technology Corporation Apparatus and method for monitoring well logging information
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5142617A (en) * 1988-10-27 1992-08-25 Tektronix, Inc. Method of shading a graphics image
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
JPH0776991B2 (ja) * 1989-10-24 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Nurbsデータ変換方法及び装置
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
US5163126A (en) * 1990-05-10 1992-11-10 International Business Machines Corporation Method for adaptively providing near phong grade shading for patterns in a graphics display system
US5168441A (en) * 1990-05-30 1992-12-01 Allen-Bradley Company, Inc. Methods for set up and programming of machine and process controllers
US5177685A (en) * 1990-08-09 1993-01-05 Massachusetts Institute Of Technology Automobile navigation system using real time spoken driving instructions
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
US5278949A (en) * 1991-03-12 1994-01-11 Hewlett-Packard Company Polygon renderer which determines the coordinates of polygon edges to sub-pixel resolution in the X,Y and Z coordinates directions
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
US5315537A (en) * 1991-04-08 1994-05-24 Blacker Teddy D Automated quadrilateral surface discretization method and apparatus usable to generate mesh in a finite element analysis system

Also Published As

Publication number Publication date
EP0664911A1 (en) 1995-08-02
EP0664911B1 (en) 1996-05-22
CA2135520A1 (en) 1994-08-04
DE69400205D1 (de) 1996-06-27
JPH08506671A (ja) 1996-07-16
US5428718A (en) 1995-06-27
WO1994017486A1 (en) 1994-08-04
AU6021894A (en) 1994-08-15

Similar Documents

Publication Publication Date Title
JP3764478B2 (ja) テセレーション・システム
EP0262304B1 (en) Method and system for solid modelling
US7239319B2 (en) Rendering outline fonts
US6744434B2 (en) Cuts removal system for triangulated CAD Models
US5497453A (en) Method and apparatus for detecting and visualizing interferences between solids
US5570460A (en) System and method for volume rendering of finite element models
US20040075655A1 (en) 3D computer graphics processing apparatus and method
JPH07120434B2 (ja) ボリュームレンダリングを行う方法及び装置
Satherley et al. Vector-city vector distance transform
JP2572515B2 (ja) 画素処理方法及び装置並びにグラフィックバッファ
JP3391864B2 (ja) 画像データ処理方法及び装置及びグラフィックシステム
Li et al. Voxelized Minkowski sum computation on the GPU with robust culling
JP3352181B2 (ja) 画像データ処理方法および装置
Tanaka Accuracy-based sampling and reconstruction with adaptive meshes for parallel hierarchical triangulation
JP4175536B2 (ja) 境界データの内外判定方法とそのプログラム
US20040068530A1 (en) Implicit function rendering method of nonmanifold, direct drawing method of implicit function curved surface and programs thereof
Li et al. A sweep and translate algorithm for computing voxelized 3D Minkowski sums on the GPU
Hanniel et al. Direct rendering of solid CAD models on the GPU
JP3341549B2 (ja) 3次元形状データ処理装置
JP3332511B2 (ja) 画像データ処理方法及び装置及びグラフィックシステム
US5821942A (en) Ray tracing through an ordered array
Erleben et al. Signed distance fields using single-pass gpu scan conversion of tetrahedra
KR100328593B1 (ko) 3-d 그래픽용 고속 클립핑 방법
US20110074777A1 (en) Method For Displaying Intersections And Expansions of Three Dimensional Volumes
Huang Dimensional verification and correction of five-axis numerically controlled milling tool paths

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060120

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090127

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100127

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120127

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120127

Year of fee payment: 6

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130127

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130127

Year of fee payment: 7

EXPY Cancellation because of completion of term