JP3286213B2 - 幾何モデルを圧縮し圧縮解除する方法及びシステム - Google Patents

幾何モデルを圧縮し圧縮解除する方法及びシステム

Info

Publication number
JP3286213B2
JP3286213B2 JP19014697A JP19014697A JP3286213B2 JP 3286213 B2 JP3286213 B2 JP 3286213B2 JP 19014697 A JP19014697 A JP 19014697A JP 19014697 A JP19014697 A JP 19014697A JP 3286213 B2 JP3286213 B2 JP 3286213B2
Authority
JP
Japan
Prior art keywords
vertex
node
triangular
run
triangle
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
JP19014697A
Other languages
English (en)
Other versions
JPH1079049A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/688,572 external-priority patent/US5825369A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1079049A publication Critical patent/JPH1079049A/ja
Application granted granted Critical
Publication of JP3286213B2 publication Critical patent/JP3286213B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータ・グラ
フィクスに関し、特に3次元幾何モデルの圧縮転送と圧
縮保存に関する。
【0002】1996年1月16日出願の係属中の米国
特許出願第010045号"Compression of Geometric
Models Using Spanning Trees"参照。
【0003】
【従来の技術】メカニカルCAD(コンピュータ支援設
計)やアニメーションの分野でのモデリング・システム
は、幾何学の対象分野を自由局面にまで広げているが、
多面体モデルは、製造、建築、地理情報システム、地
学、エンターテインメント等の産業で用いられる基本的
な3D表現にとどまっている。多面体モデルは特にハー
ドウェア支援レンダリングに効果的である。ハードウェ
ア支援レンダリングは、複雑なCADモデルを伴うビデ
オ・ゲーム、バーチャル・リアリティ(仮想現実)、フ
ライスルー、電子モックアップ(mock-up)等のアプリ
ケーションには重要である。
【0004】3D形状の圧縮については、画像やビデオ
の圧縮に比べて研究分野でも、データ交換規格に携わる
委員会等でも、あまり注意が払われていない。しかし、
この圧縮の必要性は、次の3つの理由から急激に拡大し
ている。1)業務用CADモデルがますます複雑になっ
ているため、こうしたモデルに必要なメモリや補助記憶
装置のコストが大幅に増加している。2)共同で行う設
計、ゲーム、短時間でのプロトタイプ作成、バーチャル
・インタラクション等を目的にしたネットワークでの3
Dモデルの配付は、使用できる帯域幅によって大きな制
約を受ける。3)ハイレベルのハードウェア・アダプタ
のグラフィクス性能は、モデル全体を保存するには不充
分なオンボード・メモリや、データ転送のボトルネック
により制限される。
【0005】多面体の表面を簡単に、効率的に三角化す
る方法は知られているので、三角メッシュで定義された
幾何モデルを考慮すれば充分である。三角メッシュは、
n次元ベクトルであるその頂点(幾何)の位置、各三角
とそれを支える頂点との関連(連結性)、及び3D幾何
には影響を与えないが、陰影付けの方法には影響を与え
る色、法線及びテキスチャ座標(測光)により定義され
る。
【0006】従来の技術は、3D幾何の圧縮に関して、
3つのカテゴリに分けることができる。簡素化、幾何エ
ンコーディング、及び連結性エンコーディングである。
【0007】多面体の簡素化法では、メッシュの頂点数
を減らすために、モデルの連結性が変更され、簡素化に
より生じる誤差を最小限にするために、残りの頂点の位
置を調整することもできる。こうした手法は、オーバー
サンプリングのメッシュについてグラフィクスやデータ
の縮小を加速するために、複数のLOD(Levels OfDet
ail、詳細レベル)を生成することが目的である。これ
らの手法は、損失の多い圧縮について考慮されるが、モ
デルの正確な連結性にアクセスする必要のあるアプリケ
ーションには適さない。実際、簡素化法は、ここで述べ
る圧縮法とは対照的(orthogonal)である。幾何圧縮は
各詳細レベルに適用できるからである。
【0008】幾何エンコーディング法は、損失の多い圧
縮か損失のない圧縮により、頂点位置、或いは色、法線
及びテキスチャ座標に関連した幾何データに必要な記憶
域を減らす。汎用のバイナリ圧縮アルゴリズムを幾何デ
ータ・ストリップに適用することは、近最適解に近づく
ことである。Michael Deeringによる"Geometric Compre
ssion"、Computer Graphics(Proc.SIGGRAPH)、pages
13-20、August 1995には、形状を単位立方体に正規化
し、頂点座標を固定長整数に丸める幾何圧縮法が説明さ
れている。丸め操作は、失われた情報の量を制御するも
のである。
【0009】連結性エンコーディング法は、多面体や三
角メッシュの一般的な多くの表現に特有の冗長性を減ら
そうとするものである。例えば、連結性エンコーディン
グ法は、頂点がV個で三角形がT個の三角メッシュの三
角形を表すのに必要なビット数を減らそうとする。
【0010】端的な例をあげると、頂点が常に正規の2
Dグリッドに構成されている場合、三角メッシュはグリ
ッドの行列によって完全に定義できる。正規グリッド
は、地理情報システムの地勢モデリングや、一様にテッ
セレート(tesselated)され、トリミングされていない
正方パラメトリック・パッチのレンダリングに適してい
る。しかし、CAD、エンターテインメント、その他の
アプリケーションに見られるより一般的な3D形状のモ
デリングには適していない。
【0011】もう1つ端的な例をあげると、頂点がV個
で三角形がT個の三角メッシュの頂点位置は、アレイ、
頂点位置アレイで表せ、各三角形は頂点位置アレイに対
する3つの索引によって表せる。この解決法では、形状
的制限がメッシュに課されることはないが、三角形当た
り3つのアドレスを保存する必要がある(代表的な三角
メッシュで頂点当たり約6アドレス)。モデルが100
0頂点に限られる場合でも、この手法では、連結性情報
だけで頂点当たり60ビットが使われる。
【0012】グラフィクスAPI(アプリケーション・
プログラミング・インターフェイス)に用いられる三角
ストリップ(J.Neider、T.Davis及びM.WooによるOpe
nGLProgramming Guide、Addison-Wesley、1993で説明さ
れている)は、前の2つの頂点と新しい頂点が組み合わ
せられ、現在のストリップの新しい三角形が暗示的に定
義される遠いう妥協案である。三角ストリップが意味を
持つのは、長いストリップを作成できる場合だからであ
る。長いストリップは、計算幾何に突きつけられた課題
である。更に頂点は、同じ三角ストリップの一部として
か、異なる2つのものの一部として、平均で2回用いら
れるので、OpenGLで三角ストリップを使用するには、ほ
とんどの頂点を何回も送信する必要がある。こうした冗
長性は、スワップ操作がないために更に多くなる。
【0013】圧縮解除時に、全ての頂点の位置をランダ
ム・アクセスに使用できる圧縮法として、三角ストリッ
プを応用するには、未だ三角形当たり1つの頂点参照、
ストリップ当たり2つの頂点参照、ストリップの数と長
さに関する記録情報、及び次の三角形の基準とする前の
三角形の開き側を示す三角毎の追加情報ビット(このビ
ットはGLのSWAP操作に等しい)を保存する必要が
ある。
【0014】Deeringの方法では、モデルの全ての頂点
に対するランダム・アクセスを行う代わりに、先に使わ
れた頂点ノード16個を保存するのにスタック・バッフ
ァが用いられる。この解決法は、オンボード・メモリが
かなり制限されたアダプタには適している。Deeringは
また、三角ストリップ構文を一般化するために、次の頂
点の使用方法についてより一般的な制御を行い、現在の
頂点をスタックに一時的に追加し、スタック・バッファ
の16頂点ノード1つを再使用できるようにする。この
連結性情報の保存コストは、頂点をスタック・バッファ
にプッシュするかどうかを示す頂点当たり1ビット、カ
レント・ストリップを続ける方法を示す三角形当たり2
ビット、新しい頂点を読むか、またはスタック・バッフ
ァから頂点を使用するかを示す三角形当たり1ビット、
及びスタック・バッファから頂点を選択するための4ビ
ットのアドレスであり、これは古い頂点が再使用される
度に必要なコストである。頂点当たり2つの三角形を想
定すると、総コストは頂点当たり約11ビットである。
本出願者が知る限り、Deeringの一般化された三角メッ
シュ構文を使用して、一般メッシュの良好な走査経路を
系統的に作成するアルゴリズムは、まだ開発されていな
い。メッシュの単なる走査では、分離した三角形または
小さいラン(run)が多くなることが考えられ、これは
つまり頂点のかなりの部分が2回以上送られ、従って三
角形当たりのビット数が増えることを意味する。
【0015】連結性エンコーディングを考慮した従来の
技術の方法は、どれも三角メッシュの元の連結性を保存
しない。これらの方法は全て三角メッシュを、三角形の
連結されたサブセットに分割する。2つ以上の部分によ
って共有される頂点が何回も表現される。これは、圧縮
法がCPUとコンピュータのグラフィクス・アダプタと
の間の通信帯域幅をうまく利用するために用いられるも
のであるなら、問題にはならないかもしれないが、こう
した連結性の変化は、元のメッシュの形状的性質を保存
する必要のある他のアプリケーションでは重大な欠点に
なる。
【0016】図1と図2は、従来の技術のツリーの例で
ある。従来の技術("R.E.Tarjan."によるData Struc
tures and Network Algorithms、SIAM、1983に説明があ
る)は、ツリー1000がノードと、それぞれがノード
のペアをつなぐエッジで構成されることを認識してい
る。1つのエッジ1015で別のノード1030に連結
されたノード1010は、リーフ・ノードである。2つ
のエッジ(1025、1035)で他の2つのノード
(1030、1050)に連結されたノード1020
は、正規ノードである。3つ以上のエッジ(1015、
1035、1045)で対応するノードに連結されたノ
ード1030は分岐ノードである。ツリーはランのセッ
トとして記述することができる。ランとはノードのシー
ケンスであり、連続したノードのペアがそれぞれエッジ
で連結されている。このシーケンスには、リーフ・ノー
ドか分岐ノードである第1ノード、正規ノードである0
以上の中間ノード、及びリーフ・ノードか分岐ノードで
ある最終ノードがある。例えばリーフ・ノード104
0、正規ノード1050、1020及び分岐ノード10
30により、ラン(1040、1050、1020、1
030)が定義される。
【0017】1100はルート付きツリーで、これは、
ルート・ノードと識別される1つのノード1110を持
つツリーである。ルート・ノードはエッジで連結された
ノードの各ペア間の親子関係を決定する。ルート・ノー
ドはまた、各ランの最初と最後のノードを決定する。ル
ート・ノードは部分的には、ルート付きツリーの走査の
順序を決定する。走査の順序を完全に指定するには、ラ
ンを更に共通第1ノード・ランのセットに分割する必要
がある。各セットは、共通第1ノードを共有する全ての
ランで構成される。また共通第1ノード・ランの各セッ
ト内のランに順序を割当てる必要がある。例えばルート
付きツリー1100のルートとしてノード1110を選
択すると、ノード1120と1150はそれぞれ、ラン
(1120、1130、1140、1150)の最初と
最後のノードになり、ノード1120、1180はそれ
ぞれ、ラン(1120、1160、1170、118
0)の最初と最後のノードになる。しかし、これら2つ
のランのどちらが最初に走査されるかは、ツリーのルー
トとしてノード1110を選択したことからは決定され
ず、明示的に指定する必要がある。
【0018】図3、図4、図5、図6及び図7は、三角
メッシュの従来の技術の例である。三角メッシュ210
0は、頂点2110、エッジ2120、及び三角形21
30で構成される。
【0019】三角メッシュのパスは、連続した頂点の各
ペアがエッジによって連結されるように、繰り返されな
い頂点のシーケンスである。パスの最初と最後の頂点
は、パスによって連結されると言われる。例えば頂点2
140と2165は、頂点2140、2150、216
0及び2165によって形成されるシーケンスで定義さ
れたパスにより連結される。三角メッシュはその頂点の
全てのペアがパスで連結される場合に連結される。例え
ば三角メッシュ2100は連結されており、三角メッシ
ュ2200は連結されていない。三角メッシュが連結さ
れていないとき、それは2つ以上の連結成分で構成さ
れ、連結成分はそれぞれ元の三角メッシュの頂点、エッ
ジ及び三角形のサブセットで構成され、パスで連結され
ている場合は、同じ連結成分に属する三角メッシュの2
つの頂点に連結された三角メッシュである。例えば三角
メッシュ2200は、2つの連結成分、三角メッシュ2
210及び2220で構成される。頂点2230と22
40は、パスで連結できるので同じ連結成分に属する。
頂点2230、2250はそれらをつなぐパスが存在し
ないので属する連結成分が異なる。
【0020】三角メッシュのエッジは、正確に1つの三
角形に属する場合は境界エッジ、正確に2つの三角形で
共有される場合は内部エッジ、そして3つ以上の三角形
で共有される場合は単一エッジである。例えば三角メッ
シュ2300のエッジ2350は、境界エッジ、三角メ
ッシュ2100のエッジは全て内部エッジ、三角メッシ
ュ2300のエッジ2340は単一エッジである。これ
は三角形2310、2320、2330で共有されてい
るからである。(境界エッジと内部エッジは正規エッジ
とも呼ばれることに注意されたい。)三角メッシュの頂
点は、与えられた頂点を除いて頂点を持つ、三角メッシ
ュの全ての三角形の頂点のセットを再び順序付けして、
1つのパスを定義できる場合は正規頂点である。頂点が
正規頂点でなければ、それは単一頂点である。例えば三
角メッシュ2100の頂点は全て正規であり、三角メッ
シュ2400の頂点2410は単一である。これは頂点
2410を除いて、頂点2410に付随する全ての三角
形の頂点を再順序付けして1つのパスを形成する術がな
いからである。三角メッシュは、境界エッジがあるなら
境界を持つ。例えば三角メッシュ2100と2200に
は境界がなく、三角メッシュ2300と2400には境
界がある。三角メッシュは、単一頂点も単一エッジもな
い場合はマニフォールド(manifold)である。三角メッ
シュがマニフォールドでなければそれは非マニフォール
ドである。例えば三角メッシュ2100と2200はマ
ニフォールドであるが、三角メッシュ2300は非マニ
フォールドである。
【0021】三角メッシュの三角形の向きは、巡回置換
を法とした三角形のツリー頂点の順序である。従って、
三角メッシュの三角形には2つの向きが考えられる。例
えば、頂点2110、2170、2180で構成される
三角形2130は順序(2110、2170、218
0)と(2180、2170、2110)である。しか
し順序(2110、2170、2180)と(218
0、2110、2170)は、ある巡回置換によって関
係付けられるので同じ三角形の向きを定義する。
【0022】三角メッシュのエッジの向きは、エッジの
2つの頂点について考えられる2つの順序の1つであ
る。例えば三角メッシュ2100のエッジ2120の2
つの向きは、頂点2110と2170の順序(211
0、2170)と(2170、2110)によって定義
される。エッジの2つの向きは対向していると言われ
る。三角形の向きは、付随する3つのエッジに一貫した
向きを誘発する。例えば向き(2110、2170、2
180)は、三角形2130の3つのエッジに一貫した
向き(2110、2170)、(2170、2180)
及び(2180、2110)を誘発する。三角メッシュ
の内部エッジそれぞれについて、エッジに付随する2つ
の三角形が、共通のエッジ上に対向する向きを誘発する
ような形で、三角メッシュの各三角形について向きを選
択できる場合、マニフォールド三角メッシュは配向可能
である。マニフォールド三角メッシュが配向可能でなけ
れば、それは配向不能である。非マニフォールド三角メ
ッシュは全て配向不能である。例えば三角メッシュ21
00は配向可能で、三角メッシュ2500は配向不能で
ある。
【0023】頂点V個、エッジE個、三角形T個の三角
メッシュのオイラー特性は、数、χ=V−E+Fであ
る。従来の技術("W.S.Massey"によるAlgebraic Topo
logy:An Introduction、Harcourt、Brace & World、19
67に説明)では、同じオイラー特性の2つの連結マニフ
ォールド三角メッシュは両方が配向可能であるか、両方
が配向不能である場合には、相互に連続して変形可能で
あることが知られている。
【0024】従来の技術("Foley"らによるComputer Gr
aphics:Principles and Practice、Addison-Wesley、1
990に説明)では、普通、頂点V、三角Tの三角メッシ
ュは、頂点位置アレイと三角アレイで表される。三角メ
ッシュの各頂点の位置は、n個の浮動小数点座標により
頂点位置アレイで表される。三角メッシュの各三角形
は、頂点位置アレイに対する3つの索引によって三角ア
レイで表される。
【0025】この開示の目的からは、単純三角メッシュ
は、連結、配向済み、マニフォールド、無境界、そして
オイラー特性2のn次元頂点を持つ三角メッシュであ
る。例えば三角メッシュ2100は3次元空間の単純三
角メッシュである。例えば、どのような単純三角メッシ
ュも、球面を三角化して連続的に変形することによって
得られる。
【0026】
【発明が解決しようとする課題】本発明の目的は、単純
三角メッシュの圧縮、保存、転送、圧縮解除を目的にし
た、改良されたシステム及び方法である。
【0027】本発明の目的は、単純三角メッシュの連結
性情報、すなわち単純三角メッシュのどの頂点が、圧縮
された形で情報を失うことなくメッシュの三角面を形成
するかに関する情報を表す、改良されたシステム及び方
法である。
【0028】本発明の目的は、単純三角メッシュの頂点
位置、法線、色及びテキスチャ座標を圧縮された形で表
す、改良されたシステム及び方法である。
【0029】
【課題を解決するための手段】本発明は、単純三角メッ
シュの圧縮、保存、転送及び圧縮解除を目的にしたコン
ピュータ・システム及び方法である。
【0030】コンピュータは単純三角メッシュを圧縮さ
れた形で表すデータ構造を用いる。データ構造は単純三
角メッシュの連結性情報を記述した三角形ランのテーブ
ル、1つのマーチング・レコード及び頂点ランのテーブ
ルを持つ。またデータ構造には、単純三角メッシュの頂
点の位置を記述した情報を持つデータ・レコードが任意
に関連付けられる。データ構造はまた、データ・レコー
ドを追加することができる。追加される各データ・レコ
ードは、単純三角メッシュの色、法線またはテキスチャ
座標の1つを記述した情報を持つ。
【0031】単純三角メッシュは、三角化した多角形で
表すことができる。多角形の三角形は多角形三角形と呼
ばれ、三角化した多角形には内部頂点はなく、多角形の
境界は閉じており、三角メッシュの頂点それぞれが多角
形の境界にある頂点に対応する。三角形ランのテーブル
とマーチング・レコードにより、多角形がどのように三
角化されるかが決まる。三角化した多角形から三角メッ
シュを再生するため、三角化した多角形の境界の頂点
(エッジ)が、頂点ランのテーブルで定義される頂点ス
パニング・ツリーを走査することによって連結される。
【0032】三角メッシュ(表面等)を三角化多角形に
変換する(またその逆を行う)ことによって、三角メッ
シュに関する情報の保存、圧縮、転送及び圧縮解除を効
率よく行うことができる。
【0033】三角ランのテーブルは、三角スパニング・
ツリーを記述する。三角スパニング・ツリーには三角ノ
ードと三角エッジがある。各三角ノードに多角形三角形
が関連付けられる。これら複数の多角形三角形が多角形
を三角化する。これにより多角形は多角形頂点と多角形
境界を持ち、そこで全ての多角形頂点は多角形境界に位
置する。境界エッジとよばれる多角形三角形のエッジの
いくつかは、多角形境界に位置し、2つの多角形頂点を
つなぐ。内部エッジとよばれる多角形三角形の残りのエ
ッジはそれぞれ、2つの多角形三角形に共有され、多角
形の内側にある。
【0034】マーチング・レコードには、三角スパニン
グ・ツリーを走査することによって多角形三角形を(従
って多角形頂点と境界エッジを)構成する方法を記述す
る情報もある。
【0035】頂点ランのテーブルは頂点スパニング・ツ
リーを記述する。頂点スパニング・ツリーは頂点ツリー
・ノードと頂点ツリー・エッジを持つ。頂点スパニング
・ツリーは、多角形から単純三角メッシュを構成するた
めに別に連結性情報を提供する。頂点スパニング・ツリ
ーを走査するとき、境界エッジのペアが単純三角メッシ
ュの単一エッジと識別される。従って、頂点スパニング
・ツリーを走査することで頂点ツリー・ノードと単純三
角メッシュの頂点の間に1対1の対応がとられる。
【0036】単純三角メッシュの連結性情報が確立され
ると、関連データ・レコードに保持された情報により、
単純三角メッシュの頂点位置が決定される。オプション
の付加データ・レコードに保持された情報は、三角メッ
シュの色、法線及びテキスチャ座標を決定する。
【0037】本発明はまた、当該データ構造で表された
単純三角メッシュを圧縮解除し、当該データ構造で表さ
れた、圧縮された単純三角メッシュをコンピュータ間で
転送するために、単純三角メッシュを当該データ構造で
表すことによって圧縮するシステム及び方法を提供す
る。
【0038】
【発明の実施の形態】コンピュータ・グラフィクスで
は、幾何オブジェクトや幾何モデルは三角メッシュによ
って表すことができる。三角メッシュは更に単純三角メ
ッシュで表せる。ここでは、これらのメッシュの例を図
11乃至図16及び図19乃至図22に示してある。図
18の圧縮プロセス8000で、これらのメッシュは図
12に示してある方法でエッジに沿って切断して、三角
メッシュ(幾何オブジェクト、図11等)の三角化した
多角形(図15)表現を作成することができる。多角形
の三角化は三角ランのテーブルとマーチング・レコード
で与えられた情報により定義される。(一般には図10
を点の集合を使用した実施例については図8、図9を参
照されたい。)三角化された多角形から三角メッシュを
再生するのに必要な他の情報は頂点ランのテーブルに保
存される。この情報は三角メッシュの頂点に関する位置
情報と共に図10に示してある。三角メッシュを再生す
る圧縮解除プロセスは図28に示してある。
【0039】n次元空間で点の集合(三角メッシュのサ
ブセット、すなわちその頂点)を表す他の実施例の1つ
では、図8、図9に示したデータ構造で記述される情報
が用いられる。空間の点の集合を扱うこの例で点はエッ
ジで連結され、これらの点とエッジはツリーで表すこと
ができる。ツリーの各ノードは点の1つに関連付けられ
る。ツリーを正規の順序で走査することで点はその元の
位置の空間に置くことができる。図8には、ツリーを定
義するデータがあり、図9には、点が空間で相互にどの
ような位置関係にあるかを定義するデータがある。図2
8のプロセスは、これらのデータ構造に対して実行さ
れ、ツリーから空間の点を再生する。
【0040】図8は、ルート付きツリーを表すデータ構
造3000のブロック図である。これはランのテーブル
3200で構成され、3200はレコード3300で構
成される。各レコード3300はルート付きツリーのラ
ンを表し、ラン長フィールド3400、リーフ・フィー
ルド3500及びラスト・フィールド3600で構成さ
れる。ラン長フィールド3400はランの最初と最後の
ノードをつなぐエッジの数である。リーフ・フィールド
3500はランの最終ノードがリーフ・ノードかどうか
を示す。共通第1ノードから始まるランはいくつか考え
られる。"ラスト"・フィールド3600はランが共通第
1ノードで始まるランの集合の最後のランかどうかを示
す。テーブルのレコードの順序はルート・ノードで定義
されるルート付きツリーの走査の順序と、共通第1ノー
ドのランの集合のそれぞれのランに割当てられる順序に
よって決定される。順序は後述する圧縮プロセスによっ
て定義される。
【0041】図9は、n次元空間の点の集合を表すデー
タ構造4000のブロック図である。ここで集合の各点
はルート付きツリーのノードに関連付けられる。データ
構造4000はルート付きツリーを表すデータ構造30
00と、データ・フィールド4300が関連付けられた
もう1つのデータ・レコード4200とで構成され、関
連付けられた各データ・フィールドには点の1つの位置
に関する情報がある。
【0042】ルート付きツリー内にノードのそれぞれか
ら親子関係で決定されるルート・ノードへの固有パスが
ある。ルート・ノードの各ノードからの固有パスはノー
ドと、ノードの親元ノードで構成され、連続したノード
のペアはそれぞれエッジで連結される。ルート付きツリ
ーのノードが近接していることは、n次元空間の対応す
る点が幾何学的に近接していることを意味することが多
いので、好適な実施例では、各点の予測位置を予測する
ため、ルート付きツリーの各ノードの親元ノードに関連
付けられた点の位置も本発明に用いられる。次に、点の
予測位置と実際の位置の違いを示す補正項が用いられる
(エンコードされる)。ある好適な実施例では関連付け
られたデータ・フィールド4300は補正項である。
【0043】例えば図2で、ルート付きツリー1100
のノードにn次元空間の点が関連付けられる場合、ノー
ド1130からルート・ノード1110へのパスは、2
つの親元ノード1120と1110で構成される。点1
130の位置は、補正項1097を予測位置1090に
追加することで得られる。
【0044】各ノードの深さはノードからルートへの固
有パスのノードをつなぐエッジの数であり、ルート・ノ
ードの深さは0に等しい。ρnが深さnのノードに関連
付けられた点の位置のとき、ρnは次の和として圧縮解
除できる。
【数1】
【0045】ここでεnは、点に関連付けられた補正
項、Ρは予測子関数、λ=(λ1、...、λK)とΚは
親元の数に等しいパラメータ、ρn-1、...、ρ
n-Kは、ノードからルート・ノードへの固有パスに沿っ
たノードのΚ個の親元に関連付けられた点の位置であ
る。ルート付きツリーのトップ・ノードにはΚ個の親元
がない場合があるので、ルート・ノードは負の深さの各
親元に代わって用いられる。予測子関数は、好適な実施
例では次式で定義される線形予測子である。
【数2】
【0046】ここでλ=(λ1、...、λK)とΚは予
測子のパラメータである。Κ=1とλ1=1を選択する
ことによって、Deeringが用いたデルタが特別な事例と
してカバーされる。より好適な実施例の場合、パラメー
タλ1、...、λKは、次のように補正項の累乗の和を
最小化するように選択される。
【数3】
【0047】これは、三角メッシュの全ての頂点に対応
する。従って4300は、ノードをその予測位置からそ
の実際の位置に移すのに使われる補正項、εnである。
【0048】好適な実施例で点の位置は量子化される、
すなわち固定小数点表示法で最も近い数に切り詰められ
る。より好適な実施例では、関連データ・フィールド4
300はそれぞれ補正項εnである。もう1つの好適実
施例では、関連データ・レコードは圧縮される。また別
の実施例では、エントロピ・エンコーディング(C.W.
Brown及びB.J.ShepherdによるGraphics File Format
s、Prentice Hall、1995に説明)により関連データ・レ
コードが圧縮される。
【0049】図10は、本発明で開示しているデータ構
造5000のブロック図である。これはn次元空間の単
純三角メッシュを表す。データ構造は次のように構成さ
れる。 1)頂点ラン5030のテーブルで記述される頂点スパ
ニング・ツリー。頂点ランのテーブルには頂点ラン・レ
コード5040があり、各頂点ラン・レコードに、頂点
ラン長さフィールド5050、頂点リーフ・フィールド
5060及び頂点ラスト・フィールド5070がある。 2)三角形ランのテーブル5130で記述される三角ス
パニング・ツリー。三角形ランのテーブルには三角形ラ
ン・レコード5140があり、各三角形ラン・レコード
に、三角形ラン長フィールド5150と三角形リーフ・
フィールド5160がある。 3)三角ルート・フィールド5185と、マーチング・
コマンド5190のシーケンスを持つマーチング・レコ
ード5180。三角ルート・フィールド5185は、三
角スパニング・ツリーの三角ルート・ノードに関連付け
られた三角形を構成する方法を記述し、マーチング・コ
マンドのシーケンス5190はそれぞれ、A)三角形ラ
ンの左のラン境界、B)右のラン境界、のいずれかに沿
って次の頂点に進むことによって三角形ランの1つから
三角形を構成する方法を記述する。 4)関連データ・フィールド5085を持つ(オプショ
ンの)関連データ・レコード5080。関連データ・レ
コードはそれぞれ、単純三角メッシュの1つの頂点の位
置に関する情報を持つ。 5)(オプションの)追加データ・レコード5090。
それぞれ追加データ・フィールド5095を持ち、50
95はそれぞれ、単純三角メッシュの色、法線、または
テキスチャ座標の1つのベクトルに関する情報を持つ。
【0050】図11乃至図16は、三角メッシュの成分
とデータ構造5000の要素の関係を示す。
【0051】図11は、頂点スパニング・ツリー610
0を作成するために選択されたエッジ6105を持つ単
純三角メッシュ6000(幾何モデル)である。概略は
図13にも示してある。単純三角メッシュは、図12の
頂点スパニング・ツリー6100のエッジに沿って切断
される。この切断で作成される境界が図14に示してあ
る。図15は三角メッシュを"平坦化"する、すなわち、
三角メッシュの全ての頂点と切断エッジを1つの平面に
並べることによって作成され、三角化した多角形650
0を示す。(これはオレンジの皮をむき取り、皮をテー
ブルに並べることを想像すれば理解しやすい。)図16
は、三角化した多角形6500に三角スパニング・ツリ
ー6690が重ね合わされた6600を示す。データ構
造5000は、図18の圧縮プロセス8000により埋
められ、より圧縮された形の三角メッシュ6000が表
される。
【0052】図28の圧縮解除プロセスは、三角形ラン
のテーブル5130で記述された三角スパニング・ツリ
ー6690を走査し、マーチング・レコード5180の
情報により、三角化した多角形6500が一意に完全に
定義される。頂点ラン・テーブル5030で記述された
頂点スパニング・ツリー(図13、6300)を走査す
ることで、三角化した多角形6500が"縫い合わせら
れ"、図11の三角メッシュ6000が再生される。
【0053】本発明で、単純三角メッシュ6000は単
純三角メッシュの頂点とエッジで定義されるグラフ上の
ルート付きツリー、頂点スパニング・ツリー6100に
より圧縮された形で表される。頂点スパニング・ツリー
と、n次元空間の点の集合とみられるメッシュの頂点の
集合は、データ構造5000で頂点ラン・テーブル50
30と、n次元の点の集合が本発明でランのテーブル3
200により表現される方法と同様に関連データ・レコ
ード5080、及び図9のデータ構造4000の関連デ
ータ・レコード3100により表される。また追加デー
タ・レコード5090には、色、法線及びテキスチャ座
標に関する情報を任意に追加することができる。
【0054】メッシュが頂点ツリー・エッジで切断され
る場合、頂点スパニング・ツリー6100は、境界ルー
プ・エッジを持つ境界ループになる。図12は、頂点ツ
リー・エッジでメッシュを切断することによって作成さ
れる形状の不連続性を人工的に拡大することによる境界
ループ6200の形成を示す。切断の後、各頂点ツリー
・エッジ6105は2つの境界ループ・エッジ620
5、6215に対応する。頂点ツリー・エッジ6105
と境界ループ・エッジ(6205、6215)の対応
は、頂点スパニング・ツリー(6100、6300)に
より暗示的に記述される。この対応は、後述する圧縮プ
ロセスと圧縮解除プロセスに用いられる。対応は暗示的
なので、対応に関する情報を維持する必要はない。本発
明では頂点ツリー・エッジはカット・エッジ6105と
も呼ばれる。
【0055】図14は、境界ループ6200の表現64
00の概略を示す。境界ループ6200には境界ループ
・ノード(6401等)がある。(境界ループ(620
0、6400)は、三角化した多角形6500の境界で
もあることに注意されたい。)頂点スパニング・ツリー
の各ノード(6301乃至6304等)は境界ループ・
ノードに対応する。例えば頂点スパニング・ツリーの頂
点リーフ・ノード6301はそれぞれ、1つの境界ルー
プ・ノード6401に対応する。頂点スパニング・ツリ
ーの頂点正規ノード6302はそれぞれ、2つの境界ル
ープ・ノード6402、6403に対応する。頂点スパ
ニング・ツリーの頂点分岐ノード6304はそれぞれ、
3つ以上の境界ループ・ノード6404、6405、6
406、6407、6408に対応する。
【0056】圧縮プロセス8000は、頂点スパニング
・ツリー6300の頂点走査順序6380を定義するの
に対して、圧縮解除プロセス15000は、頂点スパニ
ング・ツリー6300の頂点走査順序6380を用い、
三角化した多角形6500を"縫い合わせる"。頂点走査
順序6380は、圧縮プロセス8000と圧縮解除プロ
セス15000が頂点スパニング・ツリー6300の頂
点ランを走査する順序を定義する。例えば頂点走査順序
6380は、最初に頂点ラン6310を走査し、次に6
320、3番目に6330、4番目に6340、5番目
に6350を走査する。好適な実施例では、頂点走査順
序6380は頂点ラン5040(3300)が圧縮プロ
セス8000で頂点ラン・テーブル5030(320
0)に置かれる順序で表される。
【0057】三角メッシュ6000がカット・エッジで
切断されるとき、三角化した多角形6500(内部頂点
なし)が得られる。図15は、人工的に平坦化された境
界ループ6400で囲まれた三角化した多角形6500
を示す。境界ループ・ノード6401、6402、64
03、6404、6405、6406、6407及び6
408は、三角化多角形6500の多角形頂点650
1、6502、6503、6504、6505、650
6、6507及び6508に対応する。境界ループ64
00は、三角化多角形6500の三角形を図16に示し
た三角スパニング・ツリー6690として構成する。三
角スパニング・ツリー6690は、三角化多角形650
0の双対グラフであり、三角ノード(6610、662
0等)と呼ばれる三角スパニング・ツリーの各ノード
が、三角化多角形6500の多角形三角形(6611、
6621等)に関連付けられる。
【0058】三角スパニング・ツリー6690は、デー
タ構造5000で三角ランのテーブル5130によって
表される。三角ラン・テーブルの三角ランのレコードの
順序は三角ルート・ノード(6610等)に対する三角
形走査順序6680によって決定される。(三角ルート
・ノード6610は、ルート付きツリーである三角スパ
ニング・ツリー6690のルート・ノードである。)三
角ラン・レコード5140はそれぞれ三角スパニング・
ツリーのランを表し、ラン・フィールド長さ5150と
リーフ・フィールド5160の2つのフィールドで構成
される。これらのフィールドの意味は図8のデータ構造
3000と同じであるが、三角スパニング・ツリーはバ
イナリなので、三角ラン・レコードに"ラスト"・フィー
ルドは不要である。
【0059】三角ラン・テーブル5130で記述される
三角スパニング・ツリー6690の構造は、境界ループ
6400の境界ループ・ノード(6401乃至6404
等)をつなぐことによって三角化多角形6500を三角
化する方法を一意に指定することはない。同じ双対グラ
フ(つまり三角スパニング・ツリー6690)を持つ三
角化多角形6500は様々ある。従って、三角化多角形
6500を実際に三角化する方法を完全に記述するに
は、マーチング・レコード5180に保持される情報が
必要である。
【0060】三角スパニング・ツリー6690はルート
付きツリーである。三角ルート・ノード6610は、マ
ーチング・レコード5180の三角ルート・フィールド
5185で表され、マーチング・コマンドはマーチング
・レコード5180で表される。
【0061】好適な実施例では、三角ルート・ノード6
610は対応する三角形6611で連結された3つ連続
した境界ループ・ノード(6514、6504、652
4)の第2境界ループ・ノード6504で識別される三
角スパニング・ツリー6690の三角リーフ・ノードで
ある。圧縮解除プロセス15000は三角ラン・テーブ
ル5130のレコード5140の順序で定義されるよう
に三角スパニング・ツリー6690を走査することによ
って、境界ループ6400を多角形三角形(6611
等)で埋めて三角化多角形6500を再生する。
【0062】図17は圧縮プロセス8000で、三角ラ
ン・レコード5140に関連付けられたマーチング・コ
マンドのシーケンス5190それぞれのマーチング・コ
マンドを作成する方法を示す。図17に示した三角ラン
の例7000は境界ループ6400の一部が、ランの走
査方向7005に対して決定され、左ラン境界7210
と右ラン境界7310によりどのように構成されるかを
示す。三角ラン7000が走査されると(7005)、
三角形走査順序6680で決定される順序でマーチング
・エッジ(7600等)が横切られる。マーチング・エ
ッジは三角化多角形6500の内部エッジである。マー
チング・エッジ7600はそれぞれ頂点を三角ランの前
のマーチング・エッジ7500と共有する。共有される
頂点7700はそれぞれ左ラン境界7210か、右ラン
境界7310のいずれかにある。圧縮プロセス8000
は、マーチング・レコード5180の値を割当て、共有
頂点7700が左右いずれのラン境界にあるか識別す
る。三角ランが走査されると(7005)、三角ランの
マーチング・エッジ7600はそれぞれ、これらの値の
1つで識別され、これらの値のシーケンスは対応する三
角ラン7000に関連付けられたマーチング・コマンド
のシーケンス5190である。例えば三角ラン7000
が走査されると(7005)、マーチング・エッジ75
00、7600、7800が横切られる。マーチング・
エッジ7500を横切ったとき、値"0"が与えられて、
左ラン境界7210を進むことによって、三角形750
5が構成されたことが示される。言い換えると、三角形
7505の辺の1つは左ラン境界7210にある。マー
チング・エッジ7600を横切ったときは値"1"が与え
られて、右ラン境界7310を進むことによって三角形
7605が構成されたことが示される。言い換えると、
三角形7605の辺の1つは右ラン境界7310にあ
る。次に、ラスト・マーチング・エッジ7800が横切
られるときは値を割当てる必要はない(後述)。
【0063】図18は、単純三角メッシュを圧縮する方
法8000のフローチャートである。先に述べた通り、
単純三角メッシュを圧縮することは次のステップを含
む。単純三角メッシュの頂点とエッジのグラフで頂点ス
パニング・ツリーと三角スパニング・ツリーを作成する
ステップ8100、単純三角メッシュの頂点位置を関連
データ・レコードで記述するステップ8300、三角ラ
ン・テーブルで三角スパニング・ツリーを記述するステ
ップ8400、及びマーチング・レコードを確立するス
テップ8500である。圧縮プロセス8000でこれら
のデータ構造が定義されると、データ構造はメモリに保
存(8600)或いはまたネットワーク(インターネッ
ト)等の通信リンクで転送することができる(860
0)。
【0064】ステップ8100で頂点スパニング・ツリ
ーと三角スパニング・ツリーが作成される。これは単純
三角メッシュ6000のどのエッジ2120がカット・
エッジ6105(すなわち頂点スパニング・ツリー61
00に属するもの)か、また単純三角メッシュ6000
のどのエッジ2120がマーチング・エッジ7600
(すなわち三角スパニング・ツリーに属するもの)かを
決定することによって行われる。このステップを行う方
法はいくつかある。図23、図24を参照されたい。
【0065】ステップ8200、8300、8400、
8500は、単純三角メッシュを圧縮された形で表すた
めにデータ構造5000を埋めるものである。
【0066】ステップ8200は、頂点ラン・テーブル
5030にレコード5040を作成することによってデ
ータ構造5000の頂点スパニング・ツリー6100を
定義する。これについては図25で詳しく説明する。
【0067】ステップ8300は、単純三角メッシュの
全ての頂点に対応した補正項を決定する。このステップ
の実行は任意である。ステップ8300は、ステップ8
200で決定された走査順序を使い、与えられた各頂点
の親元を識別する。補正項は次に、先に述べたように与
えられた各頂点について決定され、データ構造5000
のレコード5080に置かれる。このステップ8300
で、色、法線、テキスチャ座標、その他の情報を表すデ
ータは追加データ・レコード5090に置かれることに
注意されたい。
【0068】ステップ8400は、三角ラン・テーブル
5130にレコード5140を作成することによってデ
ータ構造5000の三角スパニング・ツリー6690を
定義する。これについては図26で詳しく説明してい
る。
【0069】ステップ8500は、データ構造5000
のマーチング・レコード5180を確立する。これにつ
いては図17で説明している。
【0070】ステップ8600は、データ構造5000
をメモリに保存し、或いはまたデータ構造5000の情
報を通信リンクで転送する。この情報は更に、これまで
の手法により圧縮/暗号化できる。
【0071】図19乃至図22は、切断方法が異なる
と、ラン数の異なる頂点スパニング・ツリーと三角スパ
ニング・ツリーが作成されることをビジュアルに示して
いる。例えば単純三角メッシュ9000が、1つの頂点
ラン9015で構成される頂点スパニング・ツリー90
10のエッジで切断されるとき、三角スパニング・ツリ
ー9200を3つの三角ラン(9210、9220、9
230)で作成することができる。しかし、同じ単純三
角メッシュ9100を、5つの頂点ラン(9115等)
を持つ頂点スパニング・ツリー9110のエッジで切断
すると、17の三角ラン(9310、9320等)を持
つ三角スパニング・ツリー9300が得られる。
【0072】図23は、頂点スパニング・ツリーと三角
スパニング・ツリーを作成する好適な実施例で行われる
ステップを示すフローチャートである。ステップ101
00で、単純三角メッシュの各エッジにコストが割当て
られる。ステップ10200では、最小スパニング・ツ
リー構成アルゴリズムを使用して、頂点スパニング・ツ
リーが総コストが最小のスパニング・ツリーとして構成
される。従来の技術ではこのようなアルゴリズムは数多
く知られている。エッジは最初にコストを上げることに
よって順序付けされる。ステップ10300で、頂点ス
パニング・ツリーによっては用いられなかった全てのエ
ッジを使用して三角スパニング・ツリーが構成される。
【0073】より好適な実施例では、ステップ1010
0で、メッシュの各エッジに割当てられるコストはエッ
ジの長さである。別のより好適な実施例の場合、メッシ
ュの各エッジに割当てられるコストはエッジの中間点か
ら頂点スパニング・ツリーの頂点ルート・ノードに関連
付けられた頂点までのユークリッド距離である。こうし
て頂点スパニング・ツリーのルートに近いエッジは、遠
いものより前にあるとみなされ、両方のツリーが頂点ス
パニング・ツリーのルートから伸びてメッシュ全体に及
ぶ。
【0074】図24は、頂点スパニング・ツリーと三角
スパニング・ツリーを作成するステップ8100の他の
好適な実施例で行われるステップを示すフローチャート
である。8100の例で単純三角メッシュは、三角化さ
れた層のシーケンスに圧縮解除された後、頂点スパニン
グ・ツリーと三角スパニング・ツリーの両方が、これら
の層のそれぞれをこの層シーケンスで走査することでイ
ンクリメンタルに構成される。このプロセスは直観的に
は、図21に示すように同心円状の輪を切り出し、らせ
ん状につなげていくことでオレンジの皮をむくことに似
ている。
【0075】最初、頂点スパニング・ツリー6100と
三角スパニング・ツリー6690は両方ともエッジがな
い。ステップ11100で現在の頂点の集合が選択され
る。最初、現在の頂点の集合には頂点が1つしかない。
ステップ11150は、単純三角メッシュの全ての三角
形が走査されているかどうか確認する。その場合プロセ
ス8100は停止する。そうでなければステップ112
00で、ステップ11100で選択された現在の頂点の
集合の頂点を含む未処理の(走査されていない)三角形
が全て選択される。選択された11200の三角形の集
合は、現在の三角化層と呼ばれる。こうした現在の三角
化層の例は、図25の12100として示している。ス
テップ11300で、割当てられていない全てのエッジ
(後述)と、現在の頂点の集合である頂点ノードの少な
くとも1つを持つエッジが、層エッジの集合として選択
される。これら層エッジ12200は、現在の三角化層
の内側のエッジである。
【0076】ステップ11310、11320、113
40、11350、11360は、層エッジを三角スパ
ニング・ツリー6690か、頂点スパニング・ツリー6
100に割当てるステップである。ステップ11310
は最初、処理する層エッジが残っているかどうか確認す
る。そうでなければプロセス8100はステップ114
00に進む。層エッジが残っていれば、与えられたエッ
ジが選択され(ステップ11320)、ステップ113
40で選択された層エッジが三角スパニング・ツリーに
割当てられるか確認される。層エッジは三角スパニング
・ツリーでループを作らない場合にのみ三角スパニング
・ツリーに割当てることができる。これは周知の手法で
確認される。ステップ11350で層エッジは三角スパ
ニング・ツリーでループを作らない場合に三角スパニン
グ・ツリーに割当てられる。層エッジが三角スパニング
・ツリーでループを作る場合は、ステップ11360
で、層エッジが頂点スパニング・ツリーに割当てられ
る。単純三角メッシュでは、層エッジが三角スパニング
・ツリーでループを作る場合は頂点スパニング・ツリー
ではループを作らないということに注意されたい。従っ
て、この方法で層エッジを割当てることで、頂点スパニ
ング・ツリーか三角スパニング・ツリーのいずれかでル
ープが作られない。
【0077】このプロセス8100の残りのステップ
は、残った割当てられていない三角化層の三角形のエッ
ジを割当てる。これらのエッジは、現在の三角化層を三
角化層のシーケンスの次の三角化層から分けるので分離
エッジと呼ばれる。ステップ11400はこれらの分離
エッジを選択する。
【0078】ステップ11410、11420、114
40、11450、11460は、分離エッジを頂点ス
パニング・ツリー6100か三角スパニング・ツリー6
690に割当てるステップである。ステップ11410
は最初、処理する分離エッジが残っているか確認する。
そうでなければプロセス8100はステップ11500
に進む。分離エッジが残っていれば与えられたエッジが
選択され(ステップ11420)、ステップ11440
で選択された分離エッジを頂点スパニング・ツリーに割
当てられるかどうか確認される。分離エッジは、頂点ス
パニング・ツリーでループを作らない場合にのみ割当て
ることができる。これは周知の手法により確認される。
ステップ11450で分離エッジは頂点スパニング・ツ
リーでループを作らない場合は頂点スパニング・ツリー
に割当てられる。分離エッジが頂点スパニング・ツリー
でループを作る場合、ステップ11460で三角スパニ
ング・ツリーに層エッジが割当てられる。単純三角メッ
シュでは、層エッジが頂点スパニング・ツリーでループ
を作る場合は、三角スパニング・ツリーではループを作
らない。従って、この方法で分離エッジを割当てると、
三角スパニング・ツリーか頂点スパニング・ツリーにル
ープは作られない。
【0079】ステップ11500は、分離エッジに含ま
れる頂点の集合を、現在の頂点の集合としてセットし、
プロセス8100はステップ11500に進む。
【0080】図26に示しているプロセス8200は、
頂点ラン・テーブルにレコード5040を作成する。ス
テップ13005でプロセス8200により、頂点リー
フ・ノード6301の1つが頂点ルート・ノードとして
任意に選択される。選択された頂点リーフ・ノードは第
1ラン・ノードにセットされる(13010)。(頂点
リーフ・ノード6301は先に定義されている。)これ
により頂点ランの第1ノードが定義される。
【0081】ステップ13100は、先に第1ラン・ノ
ードから走査されたランを選択する。(頂点リーフ・ノ
ード6301から始めるとき、走査することができるラ
ンは1つしかない。)更にそのランは、頂点走査順序6
380で選択される。単純三角メッシュ6000の向き
はどのノードの周りでも、特に第1ラン・ノードの周り
で、回転の方向(時計回りか反時計回り)を決定する。
ある好適な実施例の場合、第1ラン・ノード周りの頂点
走査順序6380は、第1ラン・ノードに入るエッジか
ら始めて、第1ラン・ノードから離れて時計回りにラン
を取ることによって決定される。これに代えて反時計回
りにランを取ることもできる。ただし、単純三角化メッ
シュの全ての第1ラン・ノードについて同じ頂点走査順
序6380を用いる必要がある。
【0082】ステップ13200は、処理されている現
在のランが、第1ラン・ノードを共通に持つランの処理
対象の最後のランかどうか確認される。この確認の結
果、頂点ラン・テーブル5030の頂点ラン・レコード
5040の"頂点ラスト"・フィールド5070の値の場
所が決定される。ステップ13300は、ステップ13
100で選択されたランのエッジをカウントし、この値
をデータ構造5000の"頂点ラン長さ"フィールド50
50に置く。
【0083】ステップ13400は、ランがリーフで終
わるかどうか確認する。この確認の結果、頂点ラン・テ
ーブル5030の頂点ラン・レコード5040の"頂点
リーフ"・フィールド5060の値位置が決定される。
ランがリーフで終わらない(すなわち分岐で終わる)場
合、最初のラン・ノードが現在のランの最後のノード
(分岐ノード)にセットされ、プロセス8200はステ
ップ13100に戻る。
【0084】ランがリーフで終わる場合(1340
0)、プロセス8200は、単純三角メッシュの全ての
ランがプロセス8200で走査されているかどうか確認
する(13500)。全てのランが走査されている場
合、プロセス8200は終了する。そうでなければステ
ップ13600が実行される。
【0085】ステップ13600は最初のラン・ノード
を走査されていないランを持つ選択済みリーフ・ノード
の前の(親の)最後に走査された分岐ノードにセット
し、ステップ13100からまたプロセスを開始する。
従って、プロセス8200は、頂点リーフ・ノードから
始まって、頂点スパニング・ツリーの全てのランが識別
され、データ構造5000の頂点ラン・レコード504
0の値が割当てられるまで、頂点スパニング・ツリーを
上がっていく。
【0086】図27のプロセス8400は、三角ランの
テーブルにレコード5140を作成する。ステップ14
005でプロセス8400は任意、三角リーフ・ノード
6610の1つを三角ルート・ノードとして選択する。
選択された三角リーフ・ノードは第1三角ラン・ノード
にセットされる(14010)。(三角リーフ・ノード
6610は先に定義されている。)これにより三角ラン
の最初のノードが定義される。
【0087】ステップ14100は、先に、最初の三角
ラン・ノードから始めて走査されなかったランを選択す
る。(三角リーフ・ノード6610から始めたとき、走
査することのできるランは1つしかない。)更にランは
三角形走査順序6680で選択される。単純三角メッシ
ュ6000の向きは全てのノード、特に第1三角ラン・
ノードの周りの回転方向(時計回りか反時計回り)を決
定する。ある好適な実施例の場合、第1三角ラン・ノー
ド周りの三角形走査順序6680は、第1三角ラン・ノ
ードに入るエッジから始めて、第1三角ラン・ノードか
ら離れる三角ランを時計回りに取ることによって決定さ
れる。また反時計回りに三角ランを取ることもできる。
ただし単純三角化メッシュの全ての第1三角ラン・ノー
ドについて同じ三角形走査順序6680を使用しなけれ
ばならない。更に三角形走査順序6680は、頂点走査
順序6380と同じ方向で取る必要がある。
【0088】ステップ14200は、処理されている現
在の三角ランが、第1三角ラン・ノードを共通に持つラ
ンの処理対象の最後の三角ランであるかどうかを確認す
る。ステップ14300は、ステップ14100で選択
された三角ランのマーチング・エッジ7600をカウン
トし、この値をデータ構造500の"三角ラン長さ"フィ
ールド5150に置く。
【0089】ステップ14400は三角ランがリーフで
終わるかどうかを確認する。このテストの結果により、
三角ラン・テーブル5130の三角ラン・レコード51
40の"三角形リーフ"・フィールド5160の値位置が
決定される。三角ランがリーフで終わらない(すなわち
分岐で終わる)場合、最初の三角ラン・ノードが、現在
のランの最後の三角ノードにセットされ(分岐ノー
ド)、プロセス8400はステップ14100に戻る。
【0090】ランがリーフで終わると(14400)、
プロセス8400により、単純三角メッシュの全てのラ
ンがプロセス8400で走査されているかどうかが確認
される(ステップ14500)。全てのランが走査され
ている場合、プロセス8400は終了する。でなければ
ステップ14600が実行される。
【0091】ステップ14600は、第1ラン・ノード
を、走査されていないランを持つ選択済みリーフ・ノー
ドの前の(親である)最後に走査された分岐ノードにセ
ットし、再びプロセスを開始する(ステップ1410
0)。従って、プロセス8400は三角リーフ・ノード
から始まり、三角スパニング・ツリーの全てのランが識
別され、データ構造5000の三角ラン・レコード51
40の値が割当てられるまで、三角スパニング・ツリー
が走査される。
【0092】図28は、好適な圧縮解除プロセス150
00のフローチャートである。
【0093】単純三角メッシュの圧縮解除プロセス15
000は次のステップを伴う。データ構造5000のア
クセス/受信のステップ15100、頂点位置テーブル
の再構成のステップ15200、境界ループ・ノードと
頂点スパニング・ツリー・ノードの対応をとるルックア
ップ・テーブルを作成するステップ15300、使用順
序でのY境界ループ・ノードの相対索引を計算するステ
ップ15400、及び三角ストリップを再構成しリンク
するステップ15500である。
【0094】また、圧縮された表現にデータ・レコード
5090が追加され、色、法線、テキスチャ座標等が記
述される場合、色、法線、テキスチャ座標等のテーブル
が、頂点位置のテーブルが構成されるのと同じように構
成される。
【0095】ステップ15100でデータ構造5000
がメモリからアクセスされるか、通信リンクを通して受
信される。後述するように、このデータ構造5000の
情報は更に圧縮、或いは暗号化できる。
【0096】ステップ15200は、頂点ラン・テーブ
ル5030の頂点スパニング・ツリー情報の構造及び関
連するデータ・レコード5080から、頂点位置アレイ
を構成する。同時に頂点走査順序6380に従って頂点
スパニング・ツリーのノードを走査する。好適な実施例
の場合、ツリー走査時に頂点ノードが走査されるとき、
頂点の親元に対する索引のアレイが維持され、予測頂点
位置に補正項を追加することによって頂点位置が計算さ
れる。
【0097】ステップ15300は、境界ループ・ノー
ドと頂点スパニング・ツリー・ノードの対応をとるルッ
クアップ・テーブルを構成する。一例として、境界ルー
プ・ノード6401(図11乃至図16)は、境界ルー
プ・ノード6402、6403として頂点スパニング・
ツリー・ノード6301に関連付けられる。境界ループ
・ノード6402、6403は両方とも頂点スパニング
・ツリー・ノード6302に関連付けられる。従って、
頂点スパニング・ツリー6300がステップ15200
で走査されている間、頂点スパニング・ツリー・ノード
それぞれの境界ループ・ノード情報が確認され、ルック
アップ・テーブルに入力される。
【0098】境界ループは、頂点スパニング・ツリーの
再帰走査中に構成され、ルックアップ・テーブルによっ
て表される。ツリーを降りながら検出された頂点への参
照は、走査時にテーブルに追加される。リーフ頂点を除
いてこれらの参照はスタックにもプッシュされる。頂点
ランがどう連結されて頂点スパニング・ツリーを形成す
るかを示す各頂点ランのラストとリーフの各フィールド
は、ツリー走査とスタックのポッピングを制御するため
に用いられる。
【0099】ステップ15400は、三角スパニング・
ツリーの走査順序6680でのY境界ループ・ノードの
相対索引を計算する。このステップは、三角スパニング
・ツリーの分岐ノードで三角形を作成する方法を決定す
るために、境界ループ・ノードの三角形の第3の頂点を
見つける。"左"と"右"の頂点はすでに求められているこ
とに注意されたい。図29参照。
【0100】図29はY境界ループ・ノードを示す。三
角ラン16100には第1ノード16200と最終ノー
ド16300がある。三角ランの最後のマーチング・エ
ッジ16400は、最終ノード16300に関連付けら
れた最後の三角形を三角ランの前の三角形につなぐ。最
後のマーチング・エッジ16400はまた、最後の左境
界ループ・ノード16500を最後の右境界ループ・ノ
ード16600につなぐ。最後の三角形は左右の最後の
境界ループ・ノードを第3境界ノード16700につな
ぐ。第3境界ノード16700のことをここではY境界
ループ・ノードと呼んでいる。最後の三角形を構成する
には、第3境界ノード16700は最後の三角形、つま
り分岐ノード側の三角形の全てについて前処理の段階で
決定しなければならない。この情報は三角ランのテーブ
ル5130に暗示的に保持される。従って、三角ランの
三角形を構成し始める前に、最後の三角形に関するこの
情報を明示的にしなければならない。
【0101】そのため、境界ループ周りの左右いずれか
の方向から、各分岐三角形からの距離が決定される。各
分岐三角形について、左右いずれかの頂点からY境界ル
ープ・ノードへのループに沿った距離、左分岐境界長と
右分岐境界長が再帰により計算できる。長さnのランか
ら始まる分岐の境界の長さは、n+nL+nR−1に等し
く、ここでNLとNRはランがリーフ三角形で終わる場合
は1に等しく、ランが分岐三角形で終わる場合は分岐三
角形の左右の分岐境界長に等しい。
【0102】分岐境界長は圧縮解除アルゴリズムの前処
理段階として、各分岐について計算され、分岐境界長テ
ーブルに保存される。三角形再構成段階で分岐三角形が
検出されると、左分岐境界長を左頂点のループ索引に加
算することによって、対応する分岐頂点のIDを確認す
ることができる。境界ループ・テーブルは円形なので、
この加算は境界ループの長さを法として行われる。
【0103】ステップ15500で、三角化多角形の三
角形は3つの境界ループ・ノードのグループとして構成
される。そのため三角ランのテーブル5130とマーチ
ング・レコード5180が用いられる。マーチング・レ
コード5180の三角ルート・フィールド5185は、
三角スパニング・ツリー6690の三角ルート・ノード
6610に関連付けられた三角形の1つを構成する3つ
の連続した境界ループ・ノードを識別する。図17で説
明している通り、各三角ランの三角形の残りは、マーチ
ング・コマンドに従って、ランの左側か右側を進むこと
によって再構成される。
【0104】これは好適な実施例の場合、いずれも最初
は空である左頂点スタックと右頂点スタックの2つのス
タックを使用した再帰により行われる。三角ランのテー
ブルの三角形ラン・レコードに記述される通り、現在の
左右の頂点がn個の三角形の三角ランの初めにあると
き、マーチング・パターンの次のnビットはストリップ
の各側で走査されたルートの頂点数を識別する。
【0105】三角ランの三角形最終ノードが三角形分岐
ノードなら、対応するY境界ループ・ノードに関連付け
られた境界ループ・ノードは先に計算され、分岐境界長
テーブルに保存された情報から決定され、現在の左右頂
点とY境界ループ・ノードで決定される三角形が再構成
され、Y境界ループ・ノードと現在の右頂点はそれぞ
れ、左右の頂点スタックにプッシュされ、現在の右頂点
はY境界ループ・ノードに等しくセットされる。三角ラ
ンの三角形最終ノードが三角形リーフ・ノードのとき、
現在の右頂点の後継(者)は、現在の左頂点の先祖に等
しくする必要がある。その場合、リーフ三角形が再構成
され、現在の左右頂点が可能なら左右頂点スタックから
ポップ・オフされる。スタックが空なら三角形は全て再
構成されているので再構成プロセスは停止する。
【0106】好適な実施例の場合、法線、色及びテキス
チャ座標は量子化され、予測誤差は、頂点位置の場合の
ようにエントロピ・エンコードされる。他の好適な実施
例では、法線はDeeringの非直線法により量子化され
る。
【0107】図30は、本発明の好適な実施例が適用さ
れるコンピュータ・システムの例17300のブロック
図である。この好適な実施例には、1つ以上のアプリケ
ーション・プログラム17302が含まれる。アプリケ
ーション・プログラム17302の一種として、オプテ
ィマイザ17306を含むコンパイラ17305があ
る。コンパイラ17305とオプティマイザ17306
はソース(他のアプリケーション・プログラム1730
2等)・プログラムを、最適化された実行可能コードに
変換するよう設定される。一般的にソース・プログラム
は、最適化形式に変換されてから実行可能コードに変換
される。コンパイラ17305とオプティマイザ173
06は、コンピュータ・プラットフォーム17304で
動作する。プラットフォーム17304はハードウェア
装置17312を含む。システム17300で実行され
るアプリケーション・プログラム17302の一部は、
先に述べた圧縮プロセス8000と圧縮解除プロセス1
5000を含む。
【0108】ハードウェア装置17312は、CPU
(中央処理装置)17316、RAM(ランダム・アク
セス・メモリ)17314、及び入力/出力インターフ
ェイス17318を含む。マイクロ命令コード1731
0、例えば縮小命令セット、プラットフォーム1730
4に追加できる。グラフィカル・インターフェイスまた
は端末17326、データ記憶装置17330、印刷装
置17334等、様々な周辺装置をコンピュータ・プラ
ットフォーム17304に接続できる。オペレーティン
グ・システム17308は、コンピュータ・システム1
7300の様々な構成要素の動作を調整する。このよう
なコンピュータ・システム17300の一例として、IB
M RISC System/6000がある(RISC System/6000はIBM
社の商標である)。言うまでもなく当業者には、これと
同等な多くのコンピュータ・システム17300に精通
しているはずである。
【0109】図31は、通信リンク18220を通して
第2コンピュータ18210に接続された第1コンピュ
ータ18200の図である。通信リンクの例として、シ
リアル・リンク(RS−232)、パラレル・リンク、
無線周波数リンク、赤外線リンクがある。ネットワーク
(LAN、WAN)も従来の通信リンクの例である。ネ
ットワークは一般に普及している。ネットワークの一例
としてインターネットがある。詳しくは、Attanasioら
による1992年10月14日付け、米国特許番号第5
371852号を参照されたい。コンピュータ1820
0は三角メッシュを圧縮するため、幾何圧縮プロセス8
000を実行し、得られたデータ構造5000を通信リ
ンク18220を通して送る。コンピュータ18210
はデータ構造5000を受信し、三角メッシュを圧縮解
除するため幾何圧縮解除プロセス15000を実行す
る。
【0110】幾何モデルを圧縮/圧縮解除する一般的方
法については、米国特許出願番号第010045号、"C
ompression of Geometric Models Using Spanning Tree
s"を参照されたい。
【0111】当業者には、本発明の開示内容により、本
発明の他の実施例も明らかになろう。そうした実施例も
本発明の適用範囲にある。
【0112】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0113】(1)n次元空間の点の集合を表すコンピ
ュータ・メモリのデータ構造であって、ノードを持ち、
各ノードが正規ノード、分岐ノード、またはリーフ・ノ
ードであるルート付きツリーを記述し、前記ルート付き
ツリーの各ノードは、n次元空間の点を表し、またレコ
ードを持ち、各レコードは前記ルート付きツリーのラ
ン、すなわちリーフ・ノードか分岐ノードである第1ノ
ードと、リーフ・ノードか分岐ノードである最終ノード
を持つランを表し、該ランは、前記第1ノードと前記最
終ノードの間の正規ノードを連結し、前記ランの連続し
たノードのペアそれぞれの連結部はエッジであり、各レ
コードは、前記ランのエッジ数で表されるラン長フィー
ルド、前記ランが前記リーフ・ノードで終わるかどうか
を示すリーフ・フィールド、及び前記レコードによって
表されるランが、前記ルート付きツリーと同じ前記第1
ノードを持つ最後のものかどうかを示すラスト・ラン・
フィールドを持ち、前記レコードは、ルート・ノードに
対してツリー走査順序で与えられる、前記ランのテーブ
ル、を含む、データ構造。 (2)関連データ・フィールドを含み、各関連データ・
フィールドは補正項であり、各補正項は、現在の点の実
際の位置と現在の点の予測位置の差であり、現在の点
は、カレント・ノードと呼ばれるノードの1つと関連付
けられた、前記(1)記載のデータ構造。 (3)前記現在の点の予測位置は、現在の点の親元点を
使用する予測法により決定され、該親元点は、前記カレ
ント・ノードから前記ルート・ノードへの固有パスにあ
るノードに対応する、前記(2)記載のデータ構造。 (4)前記関連データ・フィールドは固定小数点形式で
ある、前記(1)記載のデータ構造。 (5)前記関連データ・レコードは圧縮される、前記
(1)記載のデータ構造。 (6)前記関連データ・レコードは、ハフマン・エンコ
ーディング、算術コーディング、シャノン−ファーノ−
エリアス・コーディング、レンペル−ジブ・コーディン
グのいずれか1つにより圧縮される、前記(5)記載の
データ構造。 (7)点位置をコンピュータの記憶装置に保存するため
に用いられる、前記(1)記載のデータ構造。 (8)コンピュータから通信リンクを通して送られる、
前記(1)記載のデータ構造。 (9)通信リンクを通してコンピュータにより受信され
る、前記(1)記載のデータ構造。 (10)前記点は、n次元幾何形状の頂点を表し、各ツ
リー・エッジは、前記幾何形状の形状エッジに対応す
る、前記(1)記載のデータ構造。 (11)n次元空間で単純三角メッシュを表すデータ構
造であって、頂点ノードを持ち、各頂点ノードが正規頂
点ノード、分岐頂点ノード、またはリーフ頂点ノードで
あり、前記単純三角メッシュの頂点に関連付けられた頂
点スパニング・ツリーを記述する頂点ランのテーブルで
あって、頂点ラン・レコードを持ち、各頂点ラン・レコ
ードは前記頂点スパニング・ツリーの頂点ランを表し、
リーフ頂点ノードか分岐頂点ノードである第1頂点ノー
ドと、リーフ頂点ノードか分岐頂点ノードであるラスト
頂点ノードとを持ち、前記第1頂点ノードとラスト頂点
ノードとの間の正規頂点ノードを連結し、そこで、連続
した頂点ノードのペアそれぞれの間の連結部は頂点ツリ
ー・エッジであり、各頂点ラン・レコードは頂点ランの
頂点ツリー・エッジ数により与えられる頂点ラン・フィ
ールドの長さ、頂点ラン・レコードにより表される頂点
ランのラスト頂点ノードがリーフ頂点ノードかどうかを
示す頂点リーフ・フィールド、及び頂点ランが、同じ前
記第1頂点ノードを共有するラスト頂点ランかどうかを
示す頂点ラスト・ラン・フィールドを持ち、前記頂点ラ
ンは、頂点ルート・ノードに対する前記頂点スパニング
・ツリーの走査順序により与えられる、前記頂点ランの
テーブルと、三角ノードを持ち、各三角ノードは、正規
三角ノード、分岐三角ノード、またはリーフ三角ノード
であり、前記単純メッシュの三角形に関連付けられた三
角スパニング・ツリーを記述する、三角ランのテーブル
であって、三角ラン・レコードを持ち、各三角ラン・レ
コードは前記三角スパニング・ツリーの三角ランを表
し、前記三角ランは、リーフ三角ノードか分岐三角ノー
ドである第1三角ノードと、リーフ三角ノードか分岐三
角ノードであるラスト三角ノードとを持ち、前記第1三
角ノードと前記ラスト三角ノードとの間の正規三角ノー
ドを連結し、そこで、連続した三角ノードのペアそれぞ
れの間の連結部は三角ツリー・エッジであり、各三角ラ
ン・レコードは、前記三角ラン・レコードで表される三
角ランの三角ツリー・エッジ数により与えられる三角ラ
ン長フィールドと、前記三角レコードで表される三角ラ
ンの前記ラスト三角ノードがリーフ三角ノードかどうか
を示す三角リーフ・フィールドとを持ち、前記三角ラン
は、三角ルート・ノードに対する前記三角スパニング・
ツリーの走査順序により与えられる三角ランのテーブル
と、三角ルート・フィールドと、マーチング・コマンド
のシーケンスとを持ち、前記三角ルート・フィールド
は、前記三角スパニング・ツリーの三角ルート・ノード
に関連付けられた三角形を構成する方法を記述し、マー
チング・コマンドの各シーケンスは、前記三角ランの1
つから三角形を構成する方法を示すため、前記三角ラン
の左ラン境界または右ラン境界に沿った次の頂点に進
み、前記マーチング・コマンドは、前記三角ルート・ノ
ードに対する前記三角スパニング・ツリーの走査順序に
より与えられるマーチング・レコードと、関連データ・
フィールドを持ち、各関連データ・フィールドは、前記
単純三角メッシュの頂点の1つの位置に関する情報を持
ち、前記関連データ・フィールドは、前記頂点ルート・
ノードに対する前記頂点スパニング・ツリーの走査順序
により与えられる、関連データ・レコードと、を含む、
データ構造。 (12)前記頂点スパニング・ツリーの走査順序は、深
さ優先、幅優先、前順、後順のいずれか1つを含む、前
記(11)記載のデータ構造。 (13)各関連データ・フィールドは補正項であり、各
補正項は、現在の頂点の実際の位置と現在の頂点の予測
位置の差であり、現在の頂点は、カレント・ノードと呼
ばれるノードの1つと関連付けられた、前記(11)記
載のデータ構造。 (14)前記現在の頂点の予測位置は、現在の頂点の親
元の頂点を使用する予測法により決定され、親元頂点
は、現在の頂点ノードから頂点ルート・ノードへの固有
パスにあるノードに対応する、前記(13)記載のデー
タ構造。 (15)前記関連データ・フィールドは固定小数点形式
である。前記(11)記載のデータ構造。 (16)前記関連データ・レコードは圧縮される、前記
(11)記載のデータ構造。 (17)前記関連データ・レコードは、ハフマン・エン
コーディング、算術コーディング、シャノン−ファーノ
−エリアス・コーディング、レンペル−ジブ・コーディ
ングのいずれか1つにより圧縮される、前記(16)記
載のデータ構造。 (18)前記三角スパニング・ツリーの走査順序は、前
記三角ラン・テーブルの三角ラン・レコードの順序によ
り決定される、前記(11)記載のデータ構造。 (19)前記三角スパニング・ツリーの走査順序は、深
さ優先、幅優先、前順、後順のいずれか1つを含む、前
記(11)記載のデータ構造。 (20)前記マーチング・レコードは圧縮される、前記
(11)記載のデータ構造。 (21)前記マーチング・レコードは、ハフマン・エン
コーディング、算術コーディング、シャノン−ファーノ
−エリアス・コーディング、レンペル−ジブ・コーディ
ングのいずれか1つにより圧縮される、前記(20)記
載のデータ構造。 (22)前記マーチング・コマンドはそれぞれビットで
ある、前記(11)記載のデータ構造。 (23)追加データ・レコードを含み、追加される各関
連データ・レコードは、追加データ・フィールドを持
ち、前記追加データ・フィールドはそれぞれ追加情報を
持つ、前記(11)記載のデータ構造。 (24)前記追加情報は、法線、色及びテキスチャ座標
を含む、前記(23)記載のデータ構造。 (25)前記単純三角メッシュをコンピュータの記憶装
置に保存するために用いられる、前記(11)記載のデ
ータ構造。 (26)コンピュータから通信リンクを通して送られ
る、前記(11)記載のデータ構造。 (27)通信リンクを通してコンピュータにより受信さ
れる、前記(11)記載のデータ構造。 (28)複数の連結成分を持つn次元空間で前記単純三
角メッシュの連結成分を表す、前記(11)記載のデー
タ構造。 (29)幾何モデルを圧縮し圧縮解除する1つ以上のコ
ンピュータ・システムであって、各コンピュータ・シス
テムは、プロセスを実行する中央処理装置と、メモリ
と、前記メモリに存在し、それぞれが正規頂点ノード、
分岐頂点ノード、またはリーフ頂点ノードであり、メッ
シュの頂点に関連付けられた頂点ノードを持つ頂点スパ
ニング・ツリーを記述する頂点ランのテーブルであっ
て、頂点ラン・レコードを持ち、各頂点ラン・レコード
は、前記頂点スパニング・ツリーの頂点ランを表し、前
記頂点ランはリーフ頂点ノードか分岐頂点ノードである
第1頂点ノードと、リーフ頂点ノードか分岐頂点ノード
であるラスト頂点ノードとを持ち、前記第1頂点ノード
と前記ラスト頂点ノードとの間の正規頂点ノードを連結
し、そこで、連続した頂点ノードのペアそれぞれの間の
連結部は、頂点ツリー・エッジであり、各頂点ラン・レ
コードは、前記頂点ランの頂点ツリー・エッジ数で与え
られる頂点ラン長フィールド、前記頂点ラン・レコード
で表される頂点ランの前記ラスト頂点ノードがリーフ頂
点ノードかどうかを示す頂点リーフ・フィールド、及び
前記頂点ランが、同じ前記第1頂点ノードを共有する前
記ラスト頂点ランであるかどうかを示す頂点ラスト・ラ
ン・フィールドを持ち、前記頂点ランは、頂点ルート・
ノードに対する前記頂点スパニング・ツリーの走査順序
により与えられる、頂点ラン・テーブルと、前記メモリ
に存在し、それぞれが正規三角ノード、分岐三角ノー
ド、またはリーフ三角ノードであり、前記単純三角メッ
シュの三角形に関連付けられた三角ノードを持つ三角ス
パニング・ツリーを記述する、三角ランのテーブルであ
って、三角ラン・レコードを持ち、各三角ラン・レコー
ドは前記三角スパニング・ツリーの三角ランを表し、前
記三角ランはリーフ三角ノードか分岐三角ノードである
第1三角ノードと、リーフ三角ノードか分岐三角ノード
であるラスト三角ノードとを持ち、前記ランは、前記第
1三角ノードと前記ラスト三角ノードの間の正規三角ノ
ードを連結し、そこで、連続した三角ノードのペアそれ
ぞれの間の連結部は、三角ツリー・エッジであり、各三
角ラン・レコードは、前記三角ラン・レコードで表され
る三角ランの三角ツリー・エッジ数で与えられる三角ラ
ン長フィールドと、前記三角レコードで表される三角ラ
ンのラスト三角ノードが、リーフ三角ノードかどうかを
示す三角リーフ・フィールドを持ち、前記三角ランは、
三角ルート・ノードに対する前記三角スパニング・ツリ
ーの走査順序により与えられる、三角ラン・テーブル
と、前記メモリに存在し、三角ルート・フィールドと、
マーチング・コマンドのシーケンスを持ち、前記三角ル
ート・フィールドは、前記三角スパニング・ツリーの三
角ルート・ノードに関連付けられた三角形を構成する方
法を記述し、マーチング・コマンドの各シーケンスは、
前記三角ランの1つから三角形を構成する方法を示すた
めに、前記三角ランの左ラン境界または右ラン境界に沿
った次の頂点に進み、前記マーチング・コマンドは、前
記三角ルート・ノードに対する前記三角スパニング・ツ
リーの走査順序で与えられる、マーチング・レコード
と、を含む、システム。 (30)2つ以上のコンピュータ・システムが通信リン
クで接続された、前記(29)記載のシステム。 (31)前記通信リンクは、インターネット、イントラ
ネット、広域ネットワーク、ローカル・エリア・ネット
ワーク、無線周波数リンク、赤外線リンク及びシリアル
通信リンクのいずれかを含む、前記(30)記載のシス
テム。 (32)前記頂点ラン・テーブル、三角ラン・テーブル
及びマーチング・レコードは、第1コンピュータ・シス
テムから、前記通信リンクで接続された第2コンピュー
タ・システムへ転送される、前記(30)記載のシステ
ム。 (33)前記頂点ラン・テーブル、三角ラン・テーブル
及びマーチング・レコードを、前記幾何モデルから作成
する圧縮プロセスを含む、前記(29)記載のシステ
ム。 (34)前記頂点ラン・テーブル、三角ラン・テーブル
及びマーチング・レコードから前記幾何モデルを作成す
る圧縮解除プロセスを含む、前記(29)記載の装置。 (35)頂点スパニング・ツリーと三角スパニング・ツ
リーを幾何モデルから作成するステップと、前記頂点ス
パニング・ツリーを頂点ランのテーブルで記述するステ
ップと、前記三角スパニング・ツリーを三角ランのテー
ブルで記述するステップと、前記頂点ラン・テーブルに
従って前記三角スパニング・ツリーを走査しながら、前
記三角スパニング・ツリーで三角形を構成する方法を定
義するマーチング・レコードを設定するステップと、を
含む、圧縮方法。 (36)前記頂点スパニング・ツリーと前記三角スパニ
ング・ツリーは、前記幾何モデルのエッジにコストを割
当てるステップと、前記頂点スパニング・ツリーを総コ
ストが最小のスパニング・ツリーと定義するステップ
と、前記三角スパニング・ツリーを前記頂点スパニング
・ツリーに含まれるエッジで作成するステップと、で作
成される、前記(35)記載の圧縮方法。 (37)前記頂点スパニング・ツリーと前記三角スパニ
ング・ツリーは、 a.前記幾何モデルの現在の頂点の集合を選択するステ
ップと、 b.現在の頂点を含み、三角化された現在の層として走
査されていない全ての三角形を選択するステップと、 c.選択されないエッジは分離エッジであり、層エッジ
として割当てられておらず、前記現在の頂点を少なくと
も1つ含む、全てのエッジを選択するステップと、 d.前記層エッジが、前記三角スパニング・ツリーにル
ープを作らない場合には、前記層エッジそれぞれを前記
三角スパニング・ツリーに割当て、そうでない場合は前
記頂点スパニング・ツリーに割当てるステップと、 e.前記層エッジが前記三角スパニング・ツリーにルー
プを作らない場合は、前記分離エッジそれぞれを前記三
角スパニング・ツリーに割当て、そうでない場合は前記
頂点スパニング・ツリーに割当てるステップと、 f.前記分離エッジを現在の頂点の集合として選択する
ステップと、 g.エッジがなくなるまでステップa乃至fを繰り返す
ステップと、 h.割当てられた対応する前記エッジを使用して前記頂
点スパニング・ツリーと前記三角スパニング・ツリーを
作成するステップと、を含む、前記(35)記載の圧縮
方法。 (38)頂点位置を再構成するステップと、境界ループ
を構成するステップと、Y境界ループ・ノードの相対索
引を決定するステップと、三角ストリップを再構成しリ
ンクするステップと、を含む、圧縮解除方法。
【図面の簡単な説明】
【図1】従来の技術のツリー例を示す図である。
【図2】従来の技術のツリー例を示す図である。
【図3】従来の技術の三角メッシュ例を示す図である。
【図4】従来の技術の三角メッシュ例を示す図である。
【図5】従来の技術の三角メッシュ例を示す図である。
【図6】従来の技術の三角メッシュ例を示す図である。
【図7】従来の技術の三角メッシュ例を示す図である。
【図8】ツリーを表すデータ構造のブロック図である。
【図9】n次元空間の点の集合(集合の各点はルート付
きツリーのノードに関連付けられる)を表すデータ構造
のブロック図である。
【図10】本発明で開示した、n次元空間の単純三角メ
ッシュを表すデータ構造のブロック図である。
【図11】三角メッシュの成分と図10のデータ構造の
関係を示す図である。
【図12】三角メッシュの成分と図10のデータ構造の
関係を示す図である。
【図13】三角メッシュの成分と図10のデータ構造の
関係を示す図である。
【図14】三角メッシュの成分と図10のデータ構造の
関係を示す図である。
【図15】三角メッシュの成分と図10のデータ構造の
関係を示す図である。
【図16】三角メッシュの成分と図10のデータ構造の
関係を示す図である。
【図17】マーチング・コマンドのシーケンスを持つマ
ーチング・レコードの構造を示す図である
【図18】単純三角メッシュを圧縮する方法のフローチ
ャートを示す図である。
【図19】切断方法の違いにより、ラン数の異なる頂点
スパニング・ツリーと三角スパニング・ツリーが作られ
ることを示す図である。
【図20】切断方法の違いにより、ラン数の異なる頂点
スパニング・ツリーと三角スパニング・ツリーが作られ
ることを示す図である。
【図21】切断方法の違いにより、ラン数の異なる頂点
スパニング・ツリーと三角スパニング・ツリーが作られ
ることを示す図である。
【図22】切断方法の違いにより、ラン数の異なる頂点
スパニング・ツリーと三角スパニング・ツリーが作られ
ることを示す図である。
【図23】頂点スパニング・ツリーと三角スパニング・
ツリーを作成する好適な実施例のステップのフローチャ
ートを示す図である。
【図24】頂点スパニング・ツリーと三角スパニング・
ツリーを作成する好適な実施例のステップのフローチャ
ートを示す図である。
【図25】三角形の階層を示す図である。
【図26】頂点ランのテーブルに値を入力するフローチ
ャートを示す図である。
【図27】三角ランのテーブルに値を入力するフローチ
ャートを示す図である。
【図28】好適な圧縮解除プロセスのステップのフロー
チャートを示す図である。
【図29】Y境界ループ・ノード、すなわち三角ツリー
の分岐点で三角形を作成する方法を示す図である。
【図30】本発明の好適な実施例が用いられるコンピュ
ータ装置を示すブロック図である。
【図31】通信リンクを通して第2コンピュータに接続
された第1コンピュータを示すブロック図である。
【符号の説明】
1000 ツリー 1015、1025、1035、1045、2120、
6105 エッジ 1010 リーフ・ノード 1020 正規ノード 1030 分岐ノード 1050、1140、1150、1180 ノード 1090 予測位置 1097 補正項 1100 ルート付きツリー 1110 ルート・ノード 1120 親元ノード 1130 点 2100、2200、2300、2400、2500
三角メッシュ 2110、2140、2150、2160、2165、
2170、2180、2230、2240、2250、
2410 頂点 2120、2340、2350 エッジ 2130、2320、2330 三角形 3000、4000、5000 データ構造 3100、5080 関連データ・レコード 3200 ランのテーブル 3300 レコード 3400 ラン長フィールド 3500 リーフ・フィールド 3600 ラスト・フィールド 4200 データ・レコード 4300 データ・フィールド 5030、5040、6310、9015、9115
頂点ラン 5040 頂点ラン・レコード 5050 頂点ラン長フィールド 5060 頂点リーフ・フィールド 5070 頂点ラスト・フィールド 5090 追加データ・レコード 5095 追加データ・フィールド 5130、9210、9220、9230、9310、
9320、16100三角形ラン 5140 三角形ラン・レコード 5150 三角形ラン長フィールド 5160 三角形リーフ・フィールド 5180 マーチング・レコード 5185 三角ルート・フィールド 5190 マーチング・コマンド 6000、9000、9100 単純三角メッシュ 6100、6300、9110、9200 頂点スパニ
ング・ツリー 6105 頂点ツリー・エッジ 6200、6400 境界ループ 6205、6215 境界ループ・エッジ 6301 頂点リーフ・ノード 6302 頂点正規ノード 6304 頂点分岐ノード 6380 頂点走査順序 6401、6402、6403、6405、6406、
6407、6408、6504、6514、6524
境界ループ・ノード 6500 三角化多角形 6501、6502、6503、6504、6505、
6506、6507、6508 多角形頂点 6610、6620 三角ルート・ノード 6611、6612 多角形三角形 6680 三角形走査順序 6690、9300 三角スパニング・ツリー 7000 三角ランの例 7005 ランの走査方向 7210 左ラン境界 7310 右ラン境界 7500、7600、16400 マーチング・エッジ 7505、7605 三角形 7700 共有頂点 7800 ラスト・マーチング・エッジ 8000 圧縮プロセス 15000 圧縮解除プロセス 16200 第1ノード 16300 最終ノード 16500 左境界ループ・ノード 16600 右境界ループ・ノード 16700 第3境界ノード 17300 コンピュータ・システム 17302 アプリケーション・プログラム 17304 コンピュータ・プラットフォーム 17305 コンパイラ 17306 オプティマイザ 17308 オペレーティング・システム 17312 ハードウェア装置 17314 RAM(ランダム・アクセス・メモリ) 17316 CPU(中央処理装置) 17318 入力/出力インターフェイス 17310 マイクロ命令コード 17326 グラフィカル・インターフェイスまたは端
末 17330 データ記憶装置 17334 印刷装置 18200 第1コンピュータ 18210 第2コンピュータ 18220 通信リンク
フロントページの続き (72)発明者 ガブリエル・タウビン アメリカ合衆国10530、ニューヨーク州 ハーツディル、ポー・ストリート 30 (56)参考文献 特開 平3−141479(JP,A) 特開 平9−171568(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 1/00 G06T 11/00 - 17/50 G06F 17/50

Claims (35)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピュータ・メモリにおいてn次元空間
    の点の集合を記述する方法であって、 ノードを持ち、各ノードが正規ノード、分岐ノード、ま
    たはリーフ・ノードであるルート付きツリーを記述する
    ステップを含み、 前記ルート付きツリーの各ノードは、n次元空間の点を
    表し、またレコードを持ち、各レコードは前記ルート付
    きツリーのラン、すなわちリーフ・ノードか分岐ノード
    である第1ノードと、リーフ・ノードか分岐ノードであ
    る最終ノードを持つランを表し、該ランは、前記第1ノ
    ードと前記最終ノードの間の正規ノードを連結し、前記
    ランの連続したノードのペアそれぞれの連結部はエッジ
    であり、各レコードは、前記ランのエッジ数で表される
    ラン長フィールド、前記ランが前記リーフ・ノードで終
    わるかどうかを示すリーフ・フィールド、及び前記レコ
    ードによって表されるランが、前記ルート付きツリーと
    同じ前記第1ノードを持つ最後のものかどうかを示すラ
    スト・ラン・フィールドを持ち、前記レコードは、ルー
    ト・ノードに対してツリー走査順序で与えられる、前記
    ランのテーブルを含む方法。
  2. 【請求項2】関連データ・フィールドを含み、各関連デ
    ータ・フィールドは補正項であり、各補正項は、現在の
    点の実際の位置と現在の点の予測位置の差であり、現在
    の点は、カレント・ノードと呼ばれるノードの1つと関
    連付けられた、請求項1記載の方法。
  3. 【請求項3】前記現在の点の予測位置は、現在の点の親
    元点を使用する予測法により決定され、該親元点は、前
    記カレント・ノードから前記ルート・ノードへの固有パ
    スにあるノードに対応する、請求項2記載の方法。
  4. 【請求項4】前記関連データ・フィールドは固定小数点
    形式である、請求項2記載の方法。
  5. 【請求項5】前記関連データ・レコードは圧縮される、
    請求項2記載の方法。
  6. 【請求項6】前記テーブルが点位置をコンピュータの記
    憶装置に保存するために用いられる、請求項1記載の方
    法。
  7. 【請求項7】前記テーブルがコンピュータから通信リン
    クを通して送られる、請求項1記載の方法。
  8. 【請求項8】前記テーブルが通信リンクを通してコンピ
    ュータにより受信される、請求項1記載の方法。
  9. 【請求項9】前記点は、n次元幾何形状の頂点を表し、
    各ツリー・エッジは、前記幾何形状の形状エッジに対応
    する、請求項1記載の方法。
  10. 【請求項10】n次元空間で単純三角メッシュをコンピ
    ュータ・メモリに記述する方法であって、 頂点ランのテーブルと、三角ランのテーブルと、マーチ
    ング・レコードと、関連データ・レコードとをそれぞれ
    生成するステップを含み、 前記頂点ランのテーブルは、頂点スパニング・ツリーを
    記述し該頂点スパニング・ツリーは頂点ノードを持ち、
    各頂点ノードが正規頂点ノード、分岐頂点ノード、また
    はリーフ頂点ノードであり、前記頂点スパニング・ツリ
    ーの各頂点が単純三角メッシュの頂点に関連付けられ、
    前記頂点ランのテーブルは、頂点ラン・レコードを持
    ち、各頂点ラン・レコードは前記頂点スパニング・ツリ
    ーの頂点ランを表し、頂点ランはリーフ頂点ノードか分
    岐頂点ノードである第1頂点ノードと、リーフ頂点ノー
    ドか分岐頂点ノードであるラスト頂点ノードとを持ち、
    前記第1頂点ノードとラスト頂点ノードとの間の正規頂
    点ノードを連結し、そこで、連続した頂点ノードのペア
    それぞれの間の連結部は頂点ツリー・エッジであり、各
    頂点ラン・レコードは頂点ランの頂点ツリー・エッジ数
    により与えられる頂点ラン・フィールドの長さ、頂点ラ
    ン・レコードにより表される頂点ランのラスト頂点ノー
    ドがリーフ頂点ノードかどうかを示す頂点リーフ・フィ
    ールド、及び頂点ランが、同じ前記第1頂点ノードを共
    有するラスト頂点ランかどうかを示す頂点ラスト・ラン
    ・フィールドを持ち、前記頂点ランは、頂点ルート・ノ
    ードに対する前記頂点スパニング・ツリーの走査順序に
    より与えられ、 記三角ランのテーブルは、三角スパニング・ツリーを
    記述し、該三角スパニング・ツリーは三角ノードを持
    ち、各三角ノードは、正規三角ノード、分岐三角ノー
    ド、またはリーフ三角ノードであり、前記三角スパニン
    グ・ツリー各三角ノードは単純三角メッシュの三角形に
    関連付けられ、前記三角ランのテーブルは三角ラン・レ
    コードを持ち、各三角ラン・レコードは前記三角スパニ
    ング・ツリーの三角ランを表し、前記三角ランは、リー
    フ三角ノードか分岐三角ノードである第1三角ノード
    と、リーフ三角ノードか分岐三角ノードであるラスト三
    角ノードとを持ち、前記第1三角ノードと前記ラスト三
    角ノードとの間の正規三角ノードを連結し、そこで、連
    続した三角ノードのペアそれぞれの間の連結部は三角ツ
    リー・エッジであり、各三角ラン・レコードは、前記三
    角ラン・レコードで表される三角ランの三角ツリー・エ
    ッジ数により与えられる三角ラン長フィールドと、前記
    三角レコードで表される三角ランの前記ラスト三角ノー
    ドがリーフ三角ノードかどうかを示す三角リーフ・フィ
    ールドとを持ち、前記三角ランは、三角ルート・ノード
    に対する前記三角スパニング・ツリーの走査順序により
    与えられ、 前記マーチング・レコードは、三角ルート・フィールド
    と、マーチング・コマンドのシーケンスとを持ち、前記
    三角ルート・フィールドは、前記三角スパニング・ツリ
    ーの三角ルート・ノードに関連付けられた三角形を構成
    する方法を記述し、マーチング・コマンドの各シーケン
    スは、前記三角ランの1つから三角形を構成する方法を
    示すため、前記三角ランの左ラン境界または右ラン境界
    に沿った次の頂点に進み、前記マーチング・コマンド
    は、前記三角ルート・ノードに対する前記三角スパニン
    グ・ツリーの走査順序により与えられ、 前記関連データ・レコードは、関連データ・フィールド
    を持ち、各関連データ・フィールドは、前記単純三角メ
    ッシュの頂点の1つの位置に関する情報を持ち、前記関
    連データ・フィールドは、前記頂点ルート・ノードに対
    する前記頂点スパニング・ツリーの走査順序により与え
    られる、ことを特徴とする方法。
  11. 【請求項11】前記頂点スパニング・ツリーの走査順序
    は、深さ優先、幅優先、前順、後順のいずれか1つを含
    む、請求項10記載の方法。
  12. 【請求項12】各関連データ・フィールドは補正項であ
    り、各補正項は、現在の頂点の実際の位置と現在の頂点
    の予測位置の差であり、現在の頂点は、カレント・ノー
    ドと呼ばれるノードの1つと関連付けられた、請求項1
    0記載の方法。
  13. 【請求項13】前記現在の頂点の予測位置は、現在の頂
    点の親元の頂点を使用する予測法により決定され、親元
    頂点は、現在の頂点ノードから頂点ルート・ノードへの
    固有パスにあるノードに対応する、請求項12記載の方
    法。
  14. 【請求項14】前記関連データ・フィールドは固定小数
    点形式である、請求項10記載の方法。
  15. 【請求項15】前記関連データ・レコードは圧縮され
    る、請求項10記載の方法。
  16. 【請求項16】前記三角スパニング・ツリーの走査順序
    は、前記三角ラン・テーブルの三角ラン・レコードの順
    序により決定される、請求項10記載の方法。
  17. 【請求項17】前記三角スパニング・ツリーの走査順序
    は、深さ優先、幅優先、前順、後順のいずれか1つを含
    む、請求項10記載の方法。
  18. 【請求項18】前記マーチング・レコードは圧縮され
    る、請求項10記載の方法。
  19. 【請求項19】前記マーチング・コマンドはそれぞれビ
    ットである、請求項10記載の方法。
  20. 【請求項20】追加データ・レコードを含み、追加され
    る各関連データ・レコードは、追加データ・フィールド
    を持ち、前記追加データ・フィールドはそれぞれ追加情
    報を持つ、請求項10記載の方法。
  21. 【請求項21】前記追加情報は、法線、色及びテキスチ
    ャ座標を含む、請求項20記載の方法。
  22. 【請求項22】前記頂点ランのテーブル、三角ランのテ
    ーブル、マーチング・レコードおよび関連データ・レコ
    ードが前記単純三角メッシュをコンピュータの記憶装置
    に保存するために用いられる、請求項10記載の方法。
  23. 【請求項23】前記頂点ランのテーブル、三角ランのテ
    ーブル、マーチング・レコードおよび関連データ・レコ
    ードがコンピュータから通信リンクを通して送られる、
    請求項10記載の方法。
  24. 【請求項24】前記頂点ランのテーブル、三角ランのテ
    ーブル、マーチング・レコードおよび関連データ・レコ
    ードが通信リンクを通してコンピュータにより受信され
    る、請求項10記載の方法。
  25. 【請求項25】複数の連結成分を持つn次元空間で前記
    単純三角メッシュの連結成分を表す、請求項10記載の
    方法。
  26. 【請求項26】幾何モデルを圧縮し圧縮解除する1つ以
    上のコンピュータ・システムであって、各コンピュータ
    ・システムは、 プロセスを実行する中央処理装置と、 メモリと、 前記メモリに存在し、それぞれが正規頂点ノード、分岐
    頂点ノード、またはリーフ頂点ノードであり、メッシュ
    の頂点に関連付けられた頂点ノードを持つ頂点スパニン
    グ・ツリーを記述する頂点ランのテーブルであって、頂
    点ラン・レコードを持ち、各頂点ラン・レコードは、前
    記頂点スパニング・ツリーの頂点ランを表し、前記頂点
    ランはリーフ頂点ノードか分岐頂点ノードである第1頂
    点ノードと、リーフ頂点ノードか分岐頂点ノードである
    ラスト頂点ノードとを持ち、前記第1頂点ノードと前記
    ラスト頂点ノードとの間の正規頂点ノードを連結し、そ
    こで、連続した頂点ノードのペアそれぞれの間の連結部
    は、頂点ツリー・エッジであり、各頂点ラン・レコード
    は、前記頂点ランの頂点ツリー・エッジ数で与えられる
    頂点ラン長フィールド、前記頂点ラン・レコードで表さ
    れる頂点ランの前記ラスト頂点ノードがリーフ頂点ノー
    ドかどうかを示す頂点リーフ・フィールド、及び前記頂
    点ランが、同じ前記第1頂点ノードを共有する前記ラス
    ト頂点ランであるかどうかを示す頂点ラスト・ラン・フ
    ィールドを持ち、前記頂点ランは、頂点ルート・ノード
    に対する前記頂点スパニング・ツリーの走査順序により
    与えられる、頂点ラン・テーブルと、 前記メモリに存在し、それぞれが正規三角ノード、分岐
    三角ノード、またはリーフ三角ノードであり、前記単純
    三角メッシュの三角形に関連付けられた三角ノードを持
    つ三角スパニング・ツリーを記述する、三角ランのテー
    ブルであって、三角ラン・レコードを持ち、各三角ラン
    ・レコードは前記三角スパニング・ツリーの三角ランを
    表し、前記三角ランはリーフ三角ノードか分岐三角ノー
    ドである第1三角ノードと、リーフ三角ノードか分岐三
    角ノードであるラスト三角ノードとを持ち、前記ラン
    は、前記第1三角ノードと前記ラスト三角ノードの間の
    正規三角ノードを連結し、そこで、連続した三角ノード
    のペアそれぞれの間の連結部は、三角ツリー・エッジで
    あり、各三角ラン・レコードは、前記三角ラン・レコー
    ドで表される三角ランの三角ツリー・エッジ数で与えら
    れる三角ラン長フィールドと、前記三角レコードで表さ
    れる三角ランのラスト三角ノードが、リーフ三角ノード
    かどうかを示す三角リーフ・フィールドを持ち、前記三
    角ランは、三角ルート・ノードに対する前記三角スパニ
    ング・ツリーの走査順序により与えられる、三角ラン・
    テーブルと、 前記メモリに存在し、三角ルート・フィールドと、マー
    チング・コマンドのシーケンスを持ち、前記三角ルート
    ・フィールドは、前記三角スパニング・ツリーの三角ル
    ート・ノードに関連付けられた三角形を構成する方法を
    記述し、マーチング・コマンドの各シーケンスは、前記
    三角ランの1つから三角形を構成する方法を示すため
    に、前記三角ランの左ラン境界または右ラン境界に沿っ
    た次の頂点に進み、前記マーチング・コマンドは、前記
    三角ルート・ノードに対する前記三角スパニング・ツリ
    ーの走査順序で与えられる、マーチング・レコードと、 を含む、システム。
  27. 【請求項27】2つ以上のコンピュータ・システムが通
    信リンクで接続された、請求項26記載のシステム。
  28. 【請求項28】前記通信リンクは、インターネット、イ
    ントラネット、広域ネットワーク、ローカル・エリア・
    ネットワーク、無線周波数リンク、赤外線リンク及びシ
    リアル通信リンクのいずれかを含む、請求項27記載の
    システム。
  29. 【請求項29】前記頂点ラン・テーブル、三角ラン・テ
    ーブル及びマーチング・レコードは、第1コンピュータ
    ・システムから、前記通信リンクで接続された第2コン
    ピュータ・システムへ転送される、請求項27記載のシ
    ステム。
  30. 【請求項30】前記頂点ラン・テーブル、三角ラン・テ
    ーブル及びマーチング・レコードを、前記幾何モデルか
    ら作成する圧縮プロセスを含む、請求項26記載のシス
    テム。
  31. 【請求項31】前記頂点ラン・テーブル、三角ラン・テ
    ーブル及びマーチング・レコードから前記幾何モデルを
    作成する圧縮解除プロセスを含む、請求項26記載のシ
    ステム。
  32. 【請求項32】1つ以上のコンピュータ・システムにお
    いて、n次元空間の点の集合を表す幾何モデルを圧縮ま
    たは圧縮解除する方法であって、各コンピュータ・シス
    テムは、プロセスを実行する中央処理装置と、メモリと
    を含み、前記メモリは前記幾何モデルを記憶し、前記中
    央処理装置は、 頂点スパニング・ツリーと三角スパニング・ツリーを前
    記メモリに記憶された幾何モデルから作成するステップ
    と、 前記頂点スパニング・ツリーを頂点ランのテーブルで記
    述するステップと、 前記三角スパニング・ツリーを三角ランのテーブルで記
    述するステップと、 前記頂点ラン・テーブルに従って前記三角スパニング・
    ツリーを走査しながら、前記三角スパニング・ツリーで
    三角形を構成する方法を定義するマーチング・レコード
    を設定するステップと、 前記テーブルおよび前記マーチング・レコードを前記メ
    モリに記憶するステップと、 を実行することにより圧縮を行う圧縮・圧縮解除方法。
  33. 【請求項33】前記頂点スパニング・ツリーと前記三角
    スパニング・ツリーは、 前記幾何モデルのエッジにコストを割当てるステップ
    と、 前記頂点スパニング・ツリーを総コストが最小のスパニ
    ング・ツリーと定義するステップと、 前記三角スパニング・ツリーを前記頂点スパニング・ツ
    リーに含まれるエッジで作成するステップと、 を前記中央処理装置が実行することにより作成される、
    請求項32記載の圧縮・圧縮解除方法。
  34. 【請求項34】前記頂点スパニング・ツリーと前記三角
    スパニング・ツリーは、 a.前記幾何モデルの現在の頂点の集合を選択するステ
    ップと、 b.現在の頂点を含み、三角化された現在の層として走
    査されていない全ての三角形を選択するステップと、 c.選択されないエッジは分離エッジであり、層エッジ
    として割当てられておらず、前記現在の頂点を少なくと
    も1つ含む、全てのエッジを選択するステップと、 d.前記層エッジが、前記三角スパニング・ツリーにル
    ープを作らない場合には、前記層エッジそれぞれを前記
    三角スパニング・ツリーに割当て、そうでない場合は前
    記頂点スパニング・ツリーに割当てるステップと、 e.前記層エッジが、前記三角スパニング・ツリーにル
    ープを作らない場合は、前記分離エッジそれぞれを前記
    三角スパニング・ツリーに割当て、そうでない場合は前
    記頂点スパニング・ツリーに割当てるステップと、 f.前記分離エッジを現在の頂点の集合として選択する
    ステップと、 g.エッジがなくなるまでステップa乃至fを繰り返す
    ステップと、 h.割当てられた対応する前記エッジを使用して前記頂
    点スパニング・ツリーと前記三角スパニング・ツリーを
    作成するステップと、 を前記中央処理装置が実行することにより作成される、
    請求項32記載の圧縮・圧縮解除方法。
  35. 【請求項35】頂点位置を再構成するステップと、 境界ループを構成するステップと、 Y境界ループ・ノードの相対索引を決定するステップ
    と、 三角ストリップを再構成しリンクするステップと、 を前記中央処理装置が実行することにより圧縮解除を行
    う、請求項32記載の圧縮・圧縮解除方法。
JP19014697A 1996-07-30 1997-07-15 幾何モデルを圧縮し圧縮解除する方法及びシステム Expired - Fee Related JP3286213B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/688572 1996-07-30
US08/688,572 US5825369A (en) 1996-01-16 1996-07-30 Compression of simple geometric models using spanning trees

Publications (2)

Publication Number Publication Date
JPH1079049A JPH1079049A (ja) 1998-03-24
JP3286213B2 true JP3286213B2 (ja) 2002-05-27

Family

ID=24764942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19014697A Expired - Fee Related JP3286213B2 (ja) 1996-07-30 1997-07-15 幾何モデルを圧縮し圧縮解除する方法及びシステム

Country Status (1)

Country Link
JP (1) JP3286213B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005031709A (ja) * 2001-06-08 2005-02-03 Naoto Morikawa 3次元形状の符号化方法及びそれを利用した造形器具
WO2003040968A1 (fr) * 2001-11-06 2003-05-15 Naoto Morikawa Systeme de traitement de forme et procede pour representer une forme
KR100747489B1 (ko) * 2005-04-13 2007-08-08 한국전자통신연구원 3차원 메쉬 정보의 부호화/복호화 방법 및 장치
US8013851B2 (en) * 2006-08-11 2011-09-06 Siemens Product Lifecycle Management Software Inc. System and method for lightweight polygonal topology representation
US9218686B2 (en) * 2010-12-03 2015-12-22 Digital Media Professionals Inc. Image processing device
CN107093197B (zh) * 2017-04-17 2020-11-17 浙江理工大学 一种基于局部圆柱坐标的动画压缩方法

Also Published As

Publication number Publication date
JPH1079049A (ja) 1998-03-24

Similar Documents

Publication Publication Date Title
KR100233972B1 (ko) 기하학적 모델을 압축 및 압축해제하는 컴퓨터 시스템과 압축 및압축해제
US5905507A (en) Compression of geometric models using spanning trees
Taubin et al. Geometric compression through topological surgery
US6184897B1 (en) Compressed representation of changing meshes and method to decompress
US6009435A (en) Progressive compression of clustered multi-resolution polygonal models
US7230616B2 (en) Bi-level iso-surface compression
JP4452242B2 (ja) 漸進的な三次元メッシュ情報の符号化/復号化方法及びその装置
US7808501B2 (en) Method of shading using sample vectors
US6452596B1 (en) Methods and apparatus for the efficient compression of non-manifold polygonal meshes
De Floriani et al. A multi-resolution topological representation for non-manifold meshes
US5278983A (en) Boundary representation solid modeling system
US20030052875A1 (en) System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display
US6718290B1 (en) Systems and methods for encoding tetrahedral meshes
US6314205B1 (en) Method and apparatus for compressing and transmitting a three-dimensional geometric model
EP1221674A2 (en) System and method to obtain surface structures of multidimensional objects, and to represent those surface structures for animation, transmission and display
US7342580B1 (en) Surface compression based on reference geometry in animation models
Pajarola et al. Implant sprays: Compression of progressive tetrahedral mesh connectivity
US8207965B2 (en) Rewritable compression of triangulated data
JP3286213B2 (ja) 幾何モデルを圧縮し圧縮解除する方法及びシステム
US6307551B1 (en) Method for generating and applying changes in the level of detail of a polygonal surface
Floriani et al. Compressing triangulated irregular networks
Rossignac Edgebreaker: Compressing the incidence graph of triangle meshes
EP0361787A2 (en) A boundary representation solid modelling system
US8031957B1 (en) Rewritable lossy compression of graphical data
Klein et al. Data compression of multiresolution surfaces

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100308

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120308

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130308

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130308

Year of fee payment: 11

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: 20130308

Year of fee payment: 11

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: 20130308

Year of fee payment: 11

S802 Written request for registration of partial abandonment of right

Free format text: JAPANESE INTERMEDIATE CODE: R311802

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: 20140308

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees