(57)【特許請求の範囲】
【請求項１】
記憶装置に格納された適応的サンプル距離フィールドの１の層で細分割する候補セルを選定する選定工程と、
前記層の所定のレベル深さまで候補セルを細分割したときの細分割セルの情報を配列としてアクセスする記憶装置上の制限付き距離ツリーに前記候補セルの距離値を算出した結果を格納する距離値計算格納工程と、
前記候補セルを再帰的に前記適応的サンプル距離フィールドの細分割セルヘ細分割して前記細分割セルの対応する距離値を計算して前記制限付き距離ツリーに前記距離値を格納することを前記レベル深さまで繰り返す細分割工程と、
前記制限付き距離ツリーに格納された前記細分割セルの前記距離値を前記適応的サンプル距離フィールドの対応するセルに付加して前記適応的サンプル距離フィールドを生成する生成工程と、
前記選定工程、前記格納工程、前記細分割工程及び前記生成工程を終了条件まで繰返す繰返し工程と
を備えた適応的サンプル距離フィールド生成方法。
【請求項２】
細分割工程の細分割は、細分割セルの距離値が誤差評価値によって当該細分割セルの細分割を終了することを特徴とする請求項１に記載の適応的サンプル距離フィールド生成方法。
【請求項３】
繰返し工程の終了条件は、全ての細分割セルの細分割が終了して候補セルが無いことであることを特徴とする請求項２に記載の適応的サンプル距離フィールド生成方法。
【請求項４】
適応的サンプル距離フィールドは、隙間の無い配列データとしてメインメモリに格納され、制限付き距離ツリーの配列としてアクセスできる記憶領域は、前記隙間の無いアレイの記憶領域よりも小さいことを特徴とする請求項１ないし３のいずれか１項に記載の適応的サンプル距離フィールド生成方法。
【請求項５】
制限付き距離ツリーは、距離値の有効性ビットを有し、細分割工程は、前記制限付き距離ツリーに前記距離値を計算すると前記有効性ビットを有効とし、前記有効性ビットの有効の場合には計算を行わないことを特徴とする請求項１ないし４のいずれか１項に記載の適応的サンプル距離フィールド生成方法。
【請求項６】
セルのタイプを候補セルと細分割されたセルとに関連付け、前記セルのタイプは、内部、外部およびサーフェスセルを含み、少なくとも前記サーフェスセルに対して細分割工程を実行することを特徴とする請求項１に記載の適応的サンプル距離フィールド生成方法。
【請求項７】
セルのタイプを侯補セルと細分割されたセルとに関連付け、前記セルのタイプは、内部、外部およびサーフェスセルを含み、サーフェスセル、所定の距離内に存在する内部セル及び外部セルに対して細分割工程を実行することを特徴とする請求項１に記載の適応的サンプル距離フィールド生成方法。
【請求項８】
制限付き距離ツリーは、ハードウェアキャッシュに格納されることを特徴とする請求項１に記載の適応的サンプル距離フィールド生成方法。
【請求項９】
適応的サンプル距離フィールドを格納する適応的サンプル距離フィールド記憶手段と、
前記適応的サンプル距離フィールドの１の層で細分割する候補セルを選定する選定手段と、
前記層の所定のレベル深さまで候補セルを細分割したときの細分割セルの情報を配列としてアクセスする制限付き距離ツリーを記憶する制限付き距離ツリー記憶手段と、
前記候補セルの距離値を計算し、前記制限付き距離ツリー記憶手段に前記距離値を格納する距離値計算手段と、
前記候補セルを再帰的に前記適応的サンプル距離フィールドの細分割セルヘ細分割し、前記細分割セルについて前記距離値計算手段を実行する細分割手段と、
前記制限付き距離ツリーに格納された前記細分割セルの前記距離値を前記適応的サンプル距離フィールドの対応するセルに付加して前記適応的サンプル距離フィールドを生成する生成手段と、
前記選定手段、前記距離値計算手段、前記細分割手段及び前記生成手段を終了条件まで繰返す繰返し手段と
を備えた適応的サンプル距離フィールド生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、オブジェクトの形状をモデル化するコンピュータベースの方法の分野に関し、特に、モデル記述からサンプリングされた距離フィールドを生成することに関する。
【背景技術】
【０００２】
現実的なデジタル化モデルの設計は、特に、モデルが人間(現実または想像の)、動物および漫画のキャラクタ等のキャラクタを表す場合、アニメーション業界にとっての主な課題である。アニメーションアーティストは、概して、２つの制作方法を単独でまたは組合せて採用する。１つの方法では、粘土のような伝統的な媒体から模型を彫像し、その後それをデジタル化する。他の方法では、ＭＡＹＡ、ＳｏｆｔＩｍａｇｅ、３ＤＳｔｕｄｉｏＭａｘ、ＦｏｒｍＺおよびＨｏｕｄｉｎｉ等のいくつかの商用またはカスタムコンピュータ化モデリングシステムのうちの１つを使用してモデルを作成する。
【０００３】
粘土は、表現力に富むため大抵のアニメーションアーティストが選択する媒体であり、粘土を用いる作業は直観的に行うことができる。理想的なモデリング媒体として粘土に改良を加えることは困難である。粘土ベースのデジタルモデルを設計するための標準的な手法には、粘土模型を彫像することと、模型をデジタル化または走査することによりデジタルモデルを生成することと、が含まれる。オブジェクトを走査し走査データからサーフェスモデルを生成するシステムは大量にある。
【０００４】
しかしながら、粘土で彫像しその後その粘土模型をデジタル化することには、デジタルアニメーションに対しいくつかの制限がある。スキャナおよびデジタイザは解像度に固有の限界を有し、遮蔽されたまたは届き難いサーフェスをデジタル化することができず、雑音を受け易いため、デジタル化プロセスにおいて多くの細部が喪失される可能性があることに留意することが重要である。このため、粘土の利点のいくつかは、走査プロセスにおいて失われる。さらに、粘土モデルを長期保存することは困難である。しかしながら、走査モデルは、粘土模型の幾何学的構造に対し優れた一次近似をもたらすことができ、その後それらはコンピュータベースモデリングシステムにより拡張されることが可能である。このため、いかなるモデリングシステムも入力として走査データを受入れることが重要である。
【０００５】
大抵の従来技術によるコンピュータ化モデリングシステムは、一般に、モデルの形状を表現するために、ポリゴン、非一様有理Ｂスプライン(non-uniform rational B-spline(ＮＵＲＢＳ))または他の平面サーフェスの細分割(サブディビジョン、subdivision)を使用する。しかしながら、３つの表現すべてに限界がある。
【０００６】
ポリゴンモデルには、特にサーフェスが非常に湾曲しているか、テクスチャ加工されているかまたは鮮鋭なエッジを含む場合、詳細なサーフェスを表現するために多数の頂点が必要である。これにより、ポリゴンを用いたモデル生成および編集が厄介で時間のかかるものとなる。ＮＵＲＢＳは位相的に制限があるため、複雑な形状を形成するためには繋ぎ合せられなければならない。これは、非常に多くの技術的なおよびインタフェースの課題をもたらす。DeRose他による「Subdivision surfaces in character animation」, Proc.SIGGRAPH'98, pp.85〜94, 1998を参照のこと。平面サーフェスの細分割はＮＵＲＢＳのような同じ位相的制限を受けないが、形状変化の制御と編集中の細部の追加が困難である。他の問題として、これらモデリング技術はすべて、サーフェス表現のみである。すなわち、モデルは中空のシェルに過ぎず、内側部分に関しては何も分からない。
【０００７】
さらに悪いことには、サーフェス表現のスカルプティング(suculpting)は、モデルを「隙間の無い(watertight)」ものでなくする可能性がある。例えば、解像度の異なるＮＵＲＢＳを接合する場合の継ぎ目が、分離して厄介な裂け目および穴を形成する可能性がある。これは、隙間の無い完成品を製作する前にスカルプティングされたモデルを注意深く調べて編集しなければならないことを意味する。隙間の無いモデルは、ステレオリソグラフィを含む高速プロトタイピングテクノロジ等のいくつかのアプリケーションに対して重要である。
【０００８】
すべてのコンピュータ化モデリングシステムは、通常、制御頂点を操作することによって編集を行う。これには、細部が必要とされる場所にモデルが十分な制御頂点を有することを確実にするために、先見性および注意深い計画と共にかなりの熟練および忍耐が必要である。これらの理由のために、コンピュータ化モデリングシステムは、粘土の直観的で表現力に富む性質には及ばない。
【０００９】
操作をより直観的にするために、大抵のモデリングシステムは、ユーザが、コンピュータ実現(デジタル)スカルプティング(sculpting)ツールを使用して制御頂点群と対話することができるようにする。例えば、ＭＡＹＡ  Ａｒｔｉｓａｎでは、ＮＵＲＢＳモデルは、制御頂点群を操作するブラシツールを介して変更される。サーフェスをプッシュし、プルし、平滑化し、消去する操作は周知であり、ブラシツールは、その中心の周りの影響が低減する範囲において制御頂点に作用することができ、その結果、スカルプティングされた形状が滑らかになる。スカルプティングされたサーフェスの細部の量は、スカルプティングツールの領域における制御頂点の数によって決まる。より精密な制御には、ＮＵＲＢＳサーフェスのさらなる細分割が必要であり、その結果システムの反応が悪くなりモデルが大きくなる。しばしば、メッシュ細分割がユーザによって制御され事前設定される。それは、ツール選択かまたはスカルプティングされたサーフェスの細部に適応しない。このため、所望の領域において他の領域のサーフェスを過度に細分割することなく細部を表現するために、かなりの先見性と計画とが必要である。
【００１０】
ＳｏｆｔＩｍａｇｅは、Wyvill他により「Animating soft objects」、the Visual Computer、2(4):235〜242、1986において述べられているような「メタボール」テクノロジに類似した、「メタクレイ(Meta-Clay)」と呼ばれるスカルプティングインタフェースを提供する。メタクレイは、有機的なスカルプティングされたオブジェクトをモデル化するための密度ベースの表現である。この表現は、ブロブ形状を作成し、エッジ、コーナまたは細部を表現しない。
【００１１】
パラメトリックモデルのスカルプティングは、Fowlerによる「Geometric manipulation of tensor product surfaces」、Proc. of the 1992 Symposium on Interactive 3D Graphics, pp.101〜108, 1992と、Khodakovsky他による「Fine Level Feature Editing for Subdivision Surfaces」、ACM Solid Modeling Symposium, 1999と、Terzopoulos他による「Dynamic NURBS with geometric constraints for interacive sculpting」、ACM Transactions On Graphics, 13(2), pp.103〜136, 1994と、に述べられている。しかしながら、これらの各々には、上述した限界のいくつかがあり、いずれも、アニメーション業界に対して要求される品質であるスカルプティングされた結果に達成しない。
【００１２】
ポリゴン、ＮＵＲＢＳおよび他のサーフェス細分割表現の問題に対処するために、ボリュメトリック(volumetric)データ構造を使用することができる。これらデータ構造は、パラメトリックに、あるいは例えばレーザまたは他の測距技術かまたはモデル化されるオブジェクトを取込むスキャナを使用するサンプリング技術により、生成することができる。ボリュメトリックデータは、モデルの外部部分と内部部分との両方を表現することができる。そして、ボリュメトリックデータは、デジタルスカルプティングツールを提供することによってスカルプティングされる。それらスカルプティングツールは、それらがボリューム(volume)と対話する場所の近くのサンプル値を変更する。これらの理由のため、サンプルボリュームは、デジタルクレイに対しデータ構造としてより見込みがある。
【００１３】
ＦｒｅｅＦｏｒｍは、ボリュメトリックモデルをスカルプティングする商用システムである。ＦｒｅｅＦｏｒｍは、フォースフィードバックを使用することによりスカルプティング時にユーザに触覚を提供する、３自由度触覚型入力装置を含む。モデルは、定期的にサンプリングされる強度値として表現される。これは、達成することができる細部の量を大幅に制限し、過度な容量のメモリを必要とする。例えば、最低限のシステムでも５１２ＭＢのランダムアクセスメモリ(ＲＡＭ)が必要である。強度値は、スカルプティングされたモデルにおけるエイリアシングアーティファクトを低減するためにローパスフィルタリングされることが可能であり、その結果、ボリュメトリックスカルプティングシステムにおいて一般的な平滑化されたエッジと曲線的なコーナとがもたらされる。
【００１４】
標準ハードウェアレンダリングエンジンを利用するために、Lorensen他により「Marching Cubes:A High Resolution 3D Surface Construction Algorithm」、Proc.SIGGRAPH'87, pp.163〜169、1987において述べられているような方法を使用して、ボリュメトリックモデルをポリゴンモデルに変換することができる。しかしながら、ボリュームサイズが大きいため、マーチングキューブは、過度な数の三角形を作成し、グラフィクスレンダリングパイプラインにおいて対話性を制限するメモリオーバロードおよびボトルネックをもたらす。
【００１５】
Avila他による「A haptic interaction method of volume visualization」、Proc.IEEE Visualization '96, pp.197〜204, 1996と、Baerentzenによる「Octree-based volume sculpting Proc. Late Breaking Hot Topics」、IEEE Visualization '98, pp.9〜12, 1998と、Galyean他による「Sculpting:An Interactive Volumetric Modeling Technique」、Proc. SIGGRAPH'91, pp.267〜274, 1991と、Wang他による「Volume sculpting」、1995 Symposium on Interactive 3D Graphics, ACM SIGGRAPH, pp.151〜156, 1995と、を含む、ボリュームベースのスカルプティングシステムを説明する多数の刊行物がある。
【００１６】
しかしながら、これらシステムには各々、大容量メモリ要求、ボリュームサイズによって決定される固定解像度およびソフトエッジ等、上述した制限のうちのいくつかを欠点として持つ。その結果、かかるシステムは、ハイエンドデジタルアニメーション業界にはほとんど役に立たない。
【００１７】
Industrial Light and Magic(ＩＬＭ)およびPixar他、最新技術のデジタルスタジオは、アニメーション化されたキャラクタ等、アニメートデジタルモデルを設計するために使用することができるスカルプティングシステムに対し、３つの基本的な要求を有する。アニメ制作者およびアーティストは、デジタルクレイ、すなわち本物の粘土の特性(すなわち、平滑な表面と非常に精密な細部とを共に表現する能力において表現力に富み、スカルプティングを行うために直観的であり、操作が容易であり、ユーザ入力に応答性がよい)と、アンドゥし、スクリプトし、複製し、デジタルアニメーションシステムに統合し、永久的に格納する能力を含むデジタル媒体の利点と、を有する媒体を望む。スカルプティング方法は、標準コンピュータハードウェアにおいて対話速度で実行することができるべきであり、システムは、現行のアニメーション製作パイプラインに適合しなければならない。すなわち、システムは、クレイ模型から標準３Ｄ表現または３Ｄ走査データを読出し、それらパイプラインに互換性のあるモデルを出力することができなければならない。
【００１８】
従来技術によるデータ構造およびモデリングシステムの制限とアニメーション業界のニーズとは、Frisken他により「Adaptively Sampled Distance Fields: A General Representation of Shape for Computer Graphics」、Proc. SIGGRAPH 2000, pp.249〜254, 2000において述べられているように、適応的にサンプリングされた距離フィールド(adaptively sampled distance field(ＡＤＦ))(以下、適応的サンプル距離フィールド(ＡＤＦ)とする)の導入によって部分的に対処された。
【００１９】
そこでは、ＡＤＦが紹介され、ＡＤＦを生成し、レンダリングし、スカルプティングする基本的な方法が説明され、ＡＤＦを使用することができる多数のアプリケーションが列挙されている。利点として、ＡＤＦは、オブジェクトの細部を表現するために要求されるだけのデータのみを格納する。
【００２０】
伝統的に、距離フィールドは、距離として表現されスカラ値としてメモリに格納されることが可能である。距離は、オブジェクトのサーフェスへの最短距離を指定する。距離に符号が付される場合、その符号を用いて、オブジェクトの内部と外部とを識別することができる。０の距離値はサーフェスを表す。
【００２１】
オブジェクトの形状を適応的にサンプリングし、そのサンプリングされた距離値を効率的に処理するために空間的階層に格納することにより、適応的サンプル距離フィールド(ＡＤＦ)を生成することができる。
【００２２】
そして、サンプル値から、ＡＤＦにおける任意の点の距離を再構成し、それらを、レンダリングまたはスカルプティング等のコンピュータ化された処理のために使用することができる。適応的サンプリングを使用することにより、細部の領域における高サンプリングレートと、距離フィールドが平滑に変化する場所での低サンプリングレートと、が可能になる。このため、ＡＤＦは、過度なメモリ要求無しに高精度を可能にする。
【００２３】
Frisken他は、ＡＤＦの基本的なスカルプティング手順を論じ、ＡＤＦを生成しレンダリングする方法を概説している。しかしながら、多くの態様において、従来技術によるＡＤＦ操作方法は、アニメーション業界が要求するような製作システムには不適当である。
【００２４】
特に、ボトムアップ生成方法には、非常に多くのメモリと非常に多くの距離計算とが必要であり、トップダウン方法には、八分木(octree)における近傍セルの時間のかかる探索と、距離値の不要な反復再計算と、が必要である。両方法とも、セルおよび距離値の空間的および時間的メモリ一貫性が乏しい。これらメモリおよび処理制限は、生成することができるＡＤＦレベルの最大数に対し実際的な制限を加える。
【発明の開示】
【発明が解決しようとする課題】
【００２５】
ＡＤＦをレンダリングするために、従来技術によるレイキャスティング法は、デスクトップＰｅｎｔｉｕｍ（登録商標）クラスシステム上のわずかなローカルアップデートに対しては十分に高速である。しかしながら、レイキャスティングは、既知のように、ハンドヘルド機器の組込みプロセッサ等、ローエンドシステムでのローカルアップデートには非常に低速であり、パン撮り、回転およびズーム等のカメラまたはビュー変さらに対してはひどく不十分である。さらに、従来技術によるＡＤＦ操作方法は、(１)デジタルスカルプティングに対して使い勝手のよいユーザインタフェースに対応しておらず、(２)ＡＤＦをポリゴン等の標準グラフィカル表現に変換する効率的な方法を提供しておらず、(３)オブジェクトのサーフェスにおける距離値以外の距離値を訂正するいかなる方法も提供しておらず、(４)ハードウェア加速をサポートしておらず、(５)編集中は別々のステップのみをサポートする。
【００２６】
しかしながら、ＡＤＦはまだ、十分に改良することができる場合、デジタルスタジオのニーズを満たす上質のスカルプティングシステムと使用するための適当なデータ構造であり得る。ＡＤＦは、エンタテイメント業界に対し多数の利点を有する。例えば、ＡＤＦは、ボリュームおよびサーフェスを単一表現に統合し、それにより製作システムが要求する独立した表現の数を潜在的に低減する。さらに、ＡＤＦは、モデルの個々の部品を別々にモデル化し、後に合せて接合することができるように、単純な構成的立体幾何(constructive solid geometry(ＣＳＧ))演算によって結合することができる。この特徴は、新たなモデルおよびキャラクタを迅速かつ容易に設計するためにモデル部品のライブラリとフィーチャとを保持することにより、モデル設計中の製作コストを低減することができる。
【課題を解決するための手段】
【００２７】
本発明は、適応的サンプル距離フィールド(ＡＤＦ)を使用することにより、ユーザが、デジタル化されたモデルのサーフェスに対してスカルプティングツールを方向付けて配置している間により優れた制御を行うことができるようにする、革新的なボリュメトリックスカルプティングシステムを提供する。距離値は、スカルプティングツールを制約するために使用され、制御頂点は、モデルの編集中に三角形に対する領域ベースの変換に対して使用される。さらに、スカルプティングされたモデルは、常に、厄介な裂け目および穴が無く、「隙間のない(watertight)」ものになる。
【００２８】
また、本発明は、メモリ要求を低減し、より適切なメモリ一貫性を提供し、計算コストを低減する、高度のモデル生成および編集方法も提供する。また、複数回のスカルプティング操作後に距離フィールド全体を訂正する方法も提供する。
【００２９】
また、本発明は、三角形およびサーフェス点の高速生成を含む、標準ＰＣにおけるハードウェア加速を利用するいくつかの新しいフェンダリング手法も提供する。システムからモデルを入力および出力する方法は、走査されたレンジ画像からＡＤＦを生成する改良された方法と、種々の詳細度レベル(level of detail(ＬＯＤ))においてＡＤＦから位相的に一貫した三角形モデルを生成する新しくかつ非常に高速な方法と、を含む。
【００３０】
本発明は、本明細書で述べるように、アニメーションアーティストに対し、スカルプティングのための対話式システムを提供する。本システムは、デジタルクレイの形態で理想的なモデリング媒体を提供する。本発明のシステムおよび方法は、最小メモリコストで非常に高解像度の形状を表し、標準コンピュータハードウェアと動作し、現行のアニメーション製作パイプラインとの容易な統合を可能にすることができる。
【００３１】
スカルプティングシステムは、ハイエンド製作スタジオの要求を満たすように設計されるが、本システムはまた、ゲームおよび仮想現実環境のためのキャラクタ設計等、エンタテイメント業界の他の分野におけるアプリケーションも有する。また、本システムは、特にモデルをパラメトリックに生成することができない工業モデリングに対しても使用することができる。これらアプリケーションの要求に応じて、低ポリゴン数で可変詳細度レベルモデルを出力する能力により、ＡＤＦベースモデルを現行のポリゴンエンジンに容易に統合することができる。さらに、本発明のモデリング方法は、ローエンドコンピューティング装置によって使用することができる。
【００３２】
より具体的には、方法は、まず適応的サンプル距離フィールドの候補セルを選択することにより、オブジェクトの適応的サンプル距離フィールドを生成する。そして、候補セルの距離値が算出され制限付き距離ツリーに格納される。候補セルは、終了条件に達するまで、再帰的に細分割されることにより適応的サンプル距離フィールドの細分割セルにされ、その間、細分割セルの対応する距離値が算出され制限付き距離ツリーに格納される。最後に、距離値が対応するセルに付加されることにより、オブジェクトの適応的サンプル距離フィールドが生成される。
【発明の効果】
【００３３】
本システムは、デジタルキャラクタ設計およびアニメーションに使用される現行の製作パイプラインに、パワフルな形状表現を統合する。本システムは、直観的に使用することができ、達成することができる解像度および細部の品質において表現力に富み、メモリ使用および処理が効率的である。
【００３４】
ＡＤＦを、概念段階を越えて実際的なワーキングシステムに取入れる方法を述べている。これらは、距離フィールドを利用しユーザにさらなる制御を提供するボリュメトリックスカルプティングインタフェースにおける革新と、メモリ要求が低減された効率的な生成および編集アルゴリズムと、より優れたメモリ一貫性および低減された計算と、標準ＰＣにおけるハードウェア加速度を利用するいくつかの新しいレンダリング手法と、ＡＤＦから位相的に一貫したＬＯＤ三角形モデルを生成する非常に高速な方法と、を含む。
【発明を実施するための最良の形態】
【００３５】
システム構造および構成要素
図１は、本発明によるコンピュータ化されたモデリングシステム１００を示す。本モデリングシステムは、基礎として、エンタテイメント業界により使用されるためにアニメーション化することができるデジタル化モデルを表現するために、適応的にサンプリングされる距離フィールド(adaptively sampled distance field(ＡＤＦ))１０を使用する。ＡＤＦの基本データ構造は、引用をもって開示内容がすべて本明細書内に援用されたものとする、１９９９年８月６日付でFrisken他によって出願された、米国特許出願第０９／３７０，０９１号「Detail-Directed Distance Fields」において述べられている。ＡＤＦ１０は、デジタル化モデルを表現するために使用される。それらはまた、モデルに対して作用するコンピュータ実現ツールを表現するためにも使用することができる。なお、それらツールは、マテリアルを追加することも削除することも可能であることに留意すべきである。
【００３６】
モデリングシステム１００の基本コンポーネントは、制限付き距離ツリー(bounded distance tree(ＢＤＴ))ジェネレータ１０３と、エディタ１０４と、レンダラ１０５と、コンバータ１０６と、点ジェネレータ１０７と、アプリケーションおよびユーザ要求１０９に応答するディスパッチャ１０８と、に対し入力データ１０２を提供するユーザインタフェース１０１を含む。また、システム１００は、後により詳細に説明するアイドルプロセッサ１１０も含む。本システムの出力データ１１４は、ＯｐｅｎＧＬおよびRenderMan他の業界標準レンダリングエンジンに供給されることが可能である。出力データ１１４は、点、三角形および画像を含むことができる。
【００３７】
データ構造
入力データ１０２は、ＢＤＴジェネレータ１０３に対する３次元(３Ｄ)モデルまたはレンジデータ１３１および生成パラメータ１３２と、エディタ１０４に対する編集パラメータ１４１と、エディタ１０４に対するツールパス１４２と、レンダラ１０５に対するレンダパラメータ１５１と、コンバータ１０６に対する変換パラメータ１６１と、を含む。ＢＤＴジェネレータ１０３は、キャッシュ１３３に格納される制限付き距離ツリー８００に対して作用する。また、レンダラ１０５は、適応的レイキャスティングによって生成される画像タイル１５２を表現する中間データ構造に作用する。エディタ１０４およびアイドルプロセッサ１１０は、ツールパス１４２の中間段階を表現するスクリプト１１２に作用する。レンダラ１０５、コンバータ１０６および点ジェネレータ１０７は、レンダリングエンジン１１１によって処理される画像、点および三角形１１４に作用し、コンバータ１０６は、ＡＤＦ１０から三角形１１５を生成する。
【００３８】
システムコンポーネントおよびデータ対話
入力データ１０２は、ユーザによりユーザインタフェース１０１を用いて指定される。ユーザは、ＢＤＴジェネレータ１０３に対するパラメータ１３２と、エディタ１０４に対するパラメータ１４１と、レンダラ１０４に対するパラメータ１５１と、コンバータ１０６に対するパラメータ１６１と、を設定する。また、ユーザは、システム１００によって処理される３Ｄモデルまたはレンジデータと、ＡＤＦ１０に対する編集と、ＡＤＦが三角形１１５にいかにしておよびいつ変換されるかと、を選択する。
【００３９】
ＢＤＴジェネレータ１０３とエディタ１０４とは、ツールパスとモデルジオメトリ(幾何学的構造)とを含む局所的再生データ１３５を交換することによって対話する。アイドルプロセッサは、編集を精緻化する１３６ためにエディタと、およびレンダリング画像を精緻化する１３７ためにレンダラと、対話する。レンダラは、コンバータと対話することにより、ＡＤＦ１０を三角形１１４に変換する。
【００４０】
システム動作
システム１００の動作中、ユーザは、球およびボックス等の標準オブジェクト形状に対するＣＳＧ演算を使用して初期モデルを生成することにより開始するか、または標準３ＤモデルまたはレンジデータをＡＤＦに変換することにより開始することができる。そして、ユーザは、エディタおよび選択可能スカルプティングツールを使用してモデルをスカルプティングすることにより続行する。
【００４１】
上述したように、スカルプティングツールはまた、ＡＤＦか、あるいは形状が単純、例えば球状である場合、ツールの形状を画定する単純な距離関数によっても、表現することができる。スカルプティング中、レンダラは、ユーザ動作およびシステム能力によっていくつかのレンダリング方法を自動的に切換えながら、画像タイル１５２を更新する。
【００４２】
アイドル時間中、アイドルプロセッサ１１０は、適応的レイキャスティングに対する画像タイルのレンダリング解像度を増大させること、スクリプトされたツールパス１１２から解像度および編集の範囲を増大させることと、スカルプティングされているサーフェス上に無いＡＤＦの点に対し距離値を訂正することと、を含む多数の動作を実行する。
【００４３】
対話式スカルプティング
システム１００は、当業者には周知である、ファイル操作、動作アンドゥ、選択、形状平滑化、ナビゲーションおよびライティング(lighting)制御に対する対話式ソフトウェアを含む。本明細書では、説明は、ＡＤＦ１０の特性を活かすボリュメトリックデータと対話する本システムの一意の方法に焦点を当てる。
【００４４】
サーフェス追従(surface following)
図２に示すように、システム１００は、適応的サンプル距離フィールド１０のいずれかの点２０２からモデル２００のサーフェス２０４の最近傍点２０３までの距離値と方向２０１とを算出することができる。システム１００は、この情報を使用して、入力手段、例えばマウスまたは距離関数によって操作される可能性のある、スカルプティングツール２１０のパス２０５および向きを案内する。システムは、ツールを、オブジェクトのサーフェスに追従させる。それはまた、任意に、モデルのサーフェス２０４に対して垂直であるツール２１０の主軸２１１方向付けることも可能である。オブジェクトはＡＤＦによって表され、ツールはＡＤＦまたは距離関数によって表されるため、サーフェスとツールとの間の距離と、サーフェスの向き、すなわちオブジェクトの距離フィールドの勾配の方向と、ツールの主軸と、を算出することが可能である。
【００４５】
サーフェス追従は、オブジェクトの距離フィールドの勾配の方向にツールを反復的に移動させることによって達成される。移動した距離は、ツールとサーフェスとの間か、または後述するような制約付きスカルプティングのためのある「オフセット」サーフェス２２０からの距離に比例する量である。オフセットサーフェスは、オブジェクトのサーフェスの外部とも内部ともすることができる。同時に、ツールの主軸２１１を、サーフェス上の最近傍点のサーフェス垂線に位置合せすることができる。サーフェス追従は、マウス等の２Ｄ入力装置を用いて３Ｄ形状を編集する場合に特に有用である。サーフェス上にツールを正確に配置することは困難である可能性がある。サーフェス追従により、ビュー方向に対して斜めであるサーフェスをスカルプティングする場合のより直観的制御が可能になる。
【００４６】
ベジエ(Bezier)ツールパス
スカルプティングは、ツールのパスに沿った別個の編集のセットにより達成することができる。しかしながら、図３ａないし図３ｃに示すように、この手法は、非効率であってエラーをもたらす可能性があり、低速なツール移動の場合の冗長オーバラップ編集(図３ａ)と高速なツール移動の場合の断続編集(図３ｂ)とをもたらす。ツールの形状が軸的に非対称である場合、ツールがツールのパスに対して斜めである時(図３ｃ)編集は断続的で位置がずれる可能性がある。
【００４７】
これら問題に対処するために、システムは、ツールが３Ｄベジエ曲線に沿って移動するに従って、ツールのジオメトリ(幾何学的構造)に対応する掃引されたボリューム(スウェプトボリューム、swept volume)により直接ＡＤＦ１０を編集する。本システムは、ベジエクリッピングプロセスを使用して曲線からの距離を計算し、その後ツールのジオメトリを使用して掃引されたボリュームを生成する。Nishita他による「Ray tracing trimmed rational surface patches」、Proc.SIGGRAPH'90, pp.337〜345, 1990を参照のこと。
【００４８】
球状ツールの場合、掃引されたボリュームの距離は、距離をツールパスの中心線に対してずらすことにより計算される。矩形または他の形状を有するツールの場合、距離計算はより複雑であるが、点ベースの評価よりはまだ効率的であり得る。この手法により、２レベルの制御が可能である。第１に、ベジエパスを、ユーザの入力ストロークから自動的に導出した後にカービング(carve  刻む)することが可能である。第２に、ベジエ曲線を、モデルのサーフェス上に明示的に描き、曲線をサーフェス上にカービングする前に制御点を用いて編集することが可能である。
【００４９】
ツールパスのスクリプティング
利点として、システム１００は、後の処理のために編集中にスクリプト１１２に編集パスを記録する。スクリプトされたパスは、３つの重要な特徴を提供する。第１に、対話速度を達成するために、編集解像度とＡＤＦに対するツールの影響の範囲とを制限することができる。これが起こる場合、スクリプトされた編集パスは、より高い解像度での編集の遅延評価のため、およびアイドル時間処理中にＡＤＦに向けてツールの影響の範囲をさらに増大するために、使用される。第２に、スクリプトされたパスは、編集セッションの履歴を提供し、モデルが異なるメモリおよび処理パワーを有するシステムにおいて再生されることを可能にする。第３に、スクリプトされたパスは、ＡＤＦの格納された中間バージョンと結合され、システムが過度に記憶域を使用することなくマルチプルアンドゥを処理することを可能にする。好ましい実施の形態では、スクリプトは、ツールのパスのパラメータを定義するキャラクタストリングまたはバイナリデータの形態である。
【００５０】
ダイナミックツール
システム１００は、ツールの形状およびその機能(追加・削除)が、移動した時間／距離により、またはサーフェス上のその位置に従って、またはツールパスにおける記述に従って、変化することを可能にする。記述は、時間、距離、勾配、サーフェス複雑性およびセルジオメトリ等の多数のパラメータに基づいて形状と機能とを共に変更する手順とすることができる。
【００５１】
距離ベースの制約
図４に示すように、ＡＤＦ１０がモデルのサーフェスから空間のいかなる点までの距離を表すため、システム１００は、強化されたモデリングインタフェースを提供することができる。ツールは、オフセットサーフェス２２０に沿って移動するように制約されることが可能である。このため、システムは、ツールに対し、オリジナルサーフェスからの指定された深さ(内部オフセットサーフェス)または高さ(外部オフセットサーフェス)においてマテリアルを削除または追加させることができる。オフセットサーフェス上にツールを維持するための計算は、上述したように真のサーフェス上にツールを維持する程度に簡単である。
【００５２】
さらに、本システムは、ＡＤＦ形態で、または従来からの距離フィールドとして、デジタル「マスク」４２０を使用することができる。マスクは、２つの方法で使用することができる。第１に、マスクを使用して、ツールがモデルの指定された２Ｄまたは３Ｄ領域を変更しないようにすることができる。第２に、ツールを使用してマスクの一部を「切取る(cut-away)」ことができ、それにより、モデルの露出した部分のみが、マテリアルを追加するかまたは削除することによりさらに処理される。
【００５３】
マスクは、「フォースフィールド」４３０の形態とすることができ、それもまたＡＤＦとして表すことができる。フォースフィールドの再構成された距離フィールドおよび勾配は、ツール深さまたはモデルのサーフェスに対する近接を示す、物理的および視覚的キュー、例えば触覚用のフォースフィードバックを提供することができる。代替的に、フォースフィールドは、ツールがフォースフィールドの「影響(influence)」４３１内にある、すなわちツールがマスクエッジ近傍にある間に、編集を制約することができる。さらに、より複雑な編集制約を提供するために、複数のマスクおよびフォースフィールドを結合することができる。なお、マスクがツールをマスク領域内部で移動するように制約する場合、フォースフィールドはマスクから内側へ拡張し、そうでない場合は、外側へ拡張する。
【００５４】
距離ベースの制約に対するアプリケーション
距離ベース制約は、多くのアプリケーションにおいて有用である。Lelerにより「Constraint programming languages, their specification and generation」、Addison-Wesley Publishing Company, 1988において定義されるように、制約は、２つ以上のオブジェクト間の所望の関係である。工業デザインは、しばしば、制約指向であると考えられる。設計の制約は、通常、可能な解決法の範囲における制限を示す。
【００５５】
通常単一モデルまたはサーフェスに関連する、許容制約を考慮する場合、制約の上記定義を拡張しなければならない。従って、システム１００の好ましい実施の形態では、制約は単一モデルに課せられるか、または２つ以上のモデル間の所望の関係を表す。
【００５６】
ＡＤＦ制約は、少なくとも１つのＡＤＦ、例えば４２０と、システム１００においてその制約を例示化する制約手順４４０と、を含む。例えば、制約手順４４０は、マスク４２０に関し、ツールがＡＤＦを入力しないように絶対的に制限するか、ツールがサーフェスから非常に小さい指定された距離内にある時にツールの移動を制限するか、ツールが、ＡＤＦのフィールドを歪める陽関数と相まって、そのフィールドによって画定される領域に入力しないように制限しなければならない。さらに、制約を結合することにより、複合制約システムを形成することができる。
【００５７】
この手法の新規性の１つは、制約を、ＡＤＦに変換されるかまたはＡＤＦとして直接描かれる２Ｄまたは３Ｄモデルとして表現することができる、ということである。適応的サンプル距離フィールドとしての制約のこの表現により、制約を、空間を通して適応することができる。手順にＡＤＦを関連付けることにより、工業デザインに対する特定のアプリケーションを有する無制限の柔軟性が可能になる。例えば、本システムが集積回路を設計するために使用される場合、ツールを所望の精度に導く制約を指定することにより、サブミクロン精度を容易に取得することができる。
【００５８】
距離ベースの制約に対するサーフェス追従手順
図５は、システム１００の距離ベースの制約を実現する手順５００を示す。手順５００に対する入力データは、モデル、ツール、マスクおよび／またはフォースフィールドのＡＤＦ１０と、制約５０１、例えばサーフェスからの所望の距離と、ツールの向きおよび位置のパラメータ５０２、例えばツールの主軸およびサーフェスとの所望の角度と、を含む。モデル、ツールおよび制約は、表示装置において入力装置５０３、例えばマウスにより操作される。
【００５９】
マウスは、ある現在の入力位置(ｐ)５０４を指定する。入力位置は、ＡＤＦの座標系のｐ'５０５に変換される５１０。ｐ'における距離および勾配５０６は再構成される５２０。ツールは、配置され方向付けされる５３０ことにより、新たな向きおよび位置が算出され５０７、ユーザに表示される５４０。
【００６０】
制御点編集
デジタルスカルプティングはデジタルモデル設計に対しパワフルで柔軟な手段を提供するが、制御頂点操作に利点がある場合もある。例えば、キャラクタの頬を膨らませるかまたは頬に皺を寄せるためには、スカルプティングツールを用いてマテリアルを追加または削除することにより頬の形状を変更するよりも、制御頂点のセットを編集する方が容易である可能性がある。
【００６１】
このため、図６および図７に示すように、システム１００は、後述するように、ＡＤＦモデル１０の一部６１０を選択し、選択された部分を、ユーザが制御する詳細度レベルで制御頂点を用いてポリゴン(三角形)モデル６２０に変換する手段７００を提供する。それにより、制御頂点を操作することができ、三角形モデルからＡＤＦの編集部分６２０を再生することができる。
【００６２】
制御点編集手順７００において、入力パラメータは、ＡＤＦ１０および三角形化パラメータ７０１である。ステップ７１０は、三角形化するＡＤＦセル７１１を選択する。例えば、ユーザがモデルのサーフェスを指し所望の部分を識別する。マークされたセルは、後により詳細に説明するように三角形化される７２０。三角形メッシュ７２１は、指定されたＬＯＤで、選択された部分の境界上にエッジを有する。そして、三角形メッシュは、いずれか既知の編集手順を使用して編集される７３０。編集された三角形７３１は、編集されたＡＤＦ６３０を作成するように局所的に再生される７４０。編集および再生中、選択された部分のエッジは、鮮鋭なエッジを保持するように有効であり続けることができ、またはサーフェスの選択された部分から残りの(選択されていない)部分への遷移が平滑であるように、緩和されることが可能である。
【００６３】
制限付き距離ツリー生成および編集
Frisken他は、ＡＤＦを生成する２つの方法を概説している。ボトムアップ方法は、完全に占められた(fully populated)八分木を生成し、セルの８つの子によって表される距離フィールドがセルのサンプリングされた距離値によって適切に近似される場合にセルを上方に合体させる。トップダウン方法は、モデルの距離関数から計算された距離を複数のテスト点におけるセルのサンプリングされた距離値から再構成される距離と比較する属性(predicate)テストをパスしないセルを、再帰的に細分する。
【００６４】
実際的なアプリケーションでは、これら方法は共に重大な限界を有する。ボトムアップ手法では、高解像度ＡＤＦを生成するために過度な量のメモリと非常に多くの距離計算が必要であり、再帰的トップダウン手法は、八分木レベルを上下に移動し、多くの冗長距離計算および再構成を必要とする。両手法ともに、メモリ一貫性が乏しく、キャッシングから取得することができるあらゆる有益な効果を最小にする。８の最大八分木レベル(レベル８ＡＤＦ)のＡＤＦを生成するための時間はおよそ２０秒程度であり、レベル９ＡＤＦの場合は４０秒程度である。これは、デスクトップＰｅｎｔｉｕｍ（登録商標）ＩＩＩシステムで実行するトップダウン生成方法を使用する比較的単純なＣＳＧモデルの場合である。両方法において、レベル９より高いＡＤＦを生成することは、生成時間およびメモリ要件が過度となるため非実際的である。
【００６５】
本システムにおいて、ＢＤＴジェネレータ１０３は、メモリ要求と、メモリ一貫性と、ＡＤＦを構成する際の計算と、のバランスをとる。同様のＣＳＧモデルの生成時間は、レベル８ＡＤＦの場合１秒未満、およびレベル９ＡＤＦの場合約２秒まで、大幅に低減される。これは、従来技術の方法に対し速度が２０倍向上している。よりよいメモリ利用とより高速なジェネレータにより、システムは、約８秒でレベル１２ＡＤＦを生成することができる。
【００６６】
なお、レベル１２ＡＤＦは、１：２-12すなわち１：０．０００２４の解像度範囲を表す。定期的にサンプリングされる従来技術でのボリュームにおいてこの動的範囲を表すためには、明確に大抵の汎用コンピュータの能力を超え、組込みプロセッサには間違いなく不可能である、約７００億のサンプル値が必要である。際立って対照的に、一般的なレベル１２ＡＤＦは、およそ２〜３００万程度の距離値と、相当な改良と、ラップトップ、携帯情報端末および無線通信機器等の小型携帯機器の能力の範囲内に十分であることが必要である。
【００６７】
図８に示すように、ＢＤＴジェネレータ１０３は、再帰的細分割を適用し制限付き距離ツリー(ＢＤＴ)８００を使用することにより、トップダウン法で層のルートセル(Ｃ1)８０１からＡＤＦ１０の生成を開始する。図８は、レベル３(８０３)、レベル６(８０６)、レベル９(８０９)およびレベル１２(８１２)の層を有するレベル１２ＡＤＦの八分木を示す。表記法Ｃnは、さらなる細分割のための候補セルを示す。層の深さは、その層が処理される時の八分木深さの増大を確定する。例えば、層深さが３で生成されるレベル９八分木は、まずレベル３、次にレベル６、最後にレベル９に対して生成される。
【００６８】
各層内で、ＡＤＦ八分木は、一度に１つのＢＤＴ８００で処理される。ＢＤＴは、２、３またはそれより大きい次元を有することができる。２Ｄの場合、ＢＤＴは「タイル」と見なすことができ、３Ｄの場合は「キューブ」と見なすことができる。ＢＤＴは、計算され再構成された距離を格納するために使用されるデータ構造であり、それにより隣接するセルに対する冗長な距離計算が避けられる。好ましい実施の形態では、ＢＤＴは、キャッシュにおける配列(アレイ)として表される。特徴として、および図８に示すように、ＢＤＴは制限された深さを有し、距離値が計算されている間、一時的にキャッシュに格納される。ＢＤＴの各距離値は、距離値が有効であるか否かを示す関連する「妥当性」ビットを有する。他の特徴として、正常動作中、例えば編集およびスカルプティング中、サーフェスセルを含む「サーフェス」ＢＤＴのみが処理される。完全に内部セルと外部セルとからなるＢＤＴは、距離フィールドの「遠隔」部分が訂正されるまで処理されない。以下の図１７を参照のこと。
【００６９】
層深さは、ＢＤＴのサイズを設定する。例えば、３Ｄモデルの場合の３という層深さは、サイズ２3×２3×２3の立方ＢＤＴを示す。層深さ３のレベル９ＡＤＦを生成する場合、第１層において８3リーフセルが生成される。第２層が処理される時、第１層からもたらされる、レベル３の各リーフセルが、さらなる細分割のための候補となり、新たなＢＤＴの親セルとしての役割を果たす。第３層を処理する場合、第２層からもたらされるレベル６の各リーフセルが、さらなる細分割の候補となり、ＡＤＦの最大の指定されたレベルに達するまでかまたは候補が無くなるまで続く。
【００７０】
本発明の利点として、各ＢＤＴに対する計算され再構成された距離は、再帰的細分割中に必要な場合にのみ生成される。さらに、ＢＤＴデータ構造は、ＡＤＦ１０におけるようにポインタを使用しないため、必要な記憶域が大幅に低減され、ＢＤＴをキャッシュすることを可能にし処理時間が低減される。さらに、ＢＤＴの距離値がポインタベースのツリーではなく配列要素(アレイ要素)として表される場合、距離値へのアクセスには単一の定数時間演算が必要である。
【００７１】
各制限付き距離ツリー８００に関連する対応するビットマップ１００９(図１０参照)は、ＢＤＴ８００の有効な距離値を追跡する。ビットマップは、ＢＤＴ内の距離値が計算され一度だけ格納されることを確実にする。ＢＤＴの各距離値、すなわち各配列要素に対し１つの妥当性ビットがある。
【００７２】
ＢＤＴが完全に処理された後、ＢＤＴの有効な距離がＡＤＦに追加され、有効な距離に対するセルポインタがＡＤＦにおいて更新される。異なるＢＤＴの隣接するセルに亙っても距離が共有されることを確実にするために、既に処理された隣接するセルからのＢＤＴ８００と対応するビットマップ１００９とを初期化することにより、ＢＤＴ境界において特別な配慮がなされる。これによってまた、パフォーマンスが向上する。
【００７３】
ＢＤＴのサイズは、キャッシュ１３３のサイズに合うように調整することができる(図１参照)。例えば、Ｐｅｎｔｉｕｍ（登録商標）クラスシステムでは、特に各距離値が２バイトのみを必要とする場合、８3までの距離値を格納するＢＤＴが有効に作用する。さらに、ビットマップ１００９の使用により、ＣＰＵとキャッシュパフォーマンスとが向上する。例えば、３２ビットコンピュータでは、ビットマップ１００９が単一メモリワードにおいて３２の妥当性ビットを格納するため、ＢＤＴジェネレータは、単一動作においてＢＤＴの３２の距離値を無効にすることができる。利点として、制限付き距離ツリーデータ構造は、ＡＤＦのデータ構造より実質的に小さい。
【００７４】
ＡＤＦ１０の最終セルおよび距離がメインメモリの隙間のない配列(隣接するアレイ)に格納されることにより、レンダリング等の他のシステム動作中にＡＤＦ１０を処理する場合の空間的一貫性およびパフォーマンスがさらに向上する。これら配列は、ＢＤＴ生成中に必要に応じてブロックに割付けられる。ＢＤＴ生成が完了すると、配列は最大要求サイズに切捨てられる。アレイブロックは隙間がないため、ＡＤＦがメモリ内で移動されるかコピーされる場合、セルおよび距離値ポインタの更新が高速かつ容易である。
【００７５】
図９、図１０および図１１は、ＢＤＴジェネレータ１０３を実現するソフトウェア手順９００のステップを示す。ステップ９０１は、セル、距離値(DistVals)、ＢＤＴビットマップ１００９およびＢＤＴ８００に対しメモリのブロックを割付ける。ステップ１０００(図１０参照)は、セルのフィールドを初期化し、セルのエラーを計算する。ステップ１００で実行される他の処理ステップは、最大深さレベル(MaxLevel)を初期化すること、ＢＤＴビットマップ１００９のビットを無効にすること、候補セルを設定すること(ルートセル８０１から開始する)と、を含む。候補セルは、更なる細分割を必要とする可能性のあるセルである。候補セルが無くなるまで９０２、候補セルは再帰的にＭａｘＬｅｖｅｌまで細分割される１１００(図１１参照)。ステップ９０３において有効距離値がコピーされ、ステップ９０４は次の候補セルを取得する。完了時、最終セルおよび距離値が、所定の最大要求サイズに切捨てられる９０５。
【００７６】
図１０に示すように、初期化ステップ１０００は、セルのフィールドを初期化するステップ１００１と、セルの誤差評価値を計算するステップ１００２と、セルの誤差評価値を設定するステップ１００３と、を含む。なお、すでに計算された距離を計算することを避けるために、ＢＤＴ８００とその関連するビットマップ１００９とを使用する。
【００７７】
再帰的細分割ステップ１１００は、以下のサブステップを含む。ステップ１１０１は、内部セルおよび外部セル、すなわちサーフェスセル以外のすべてのセルが、セルのコーナに対して格納される距離値とセルの対角距離とを使用して、さらに細分割されないようにする。ステップ１１０２は、エラー基準が満たされる時に細分割を停止する。ステップ１１０３は、ＭａｘＬｅｖｅｌに達すると細分割を停止する。ステップ１１０４は、実際に、セルの細分を実行し、ステップ１１０５および１１０７は、セルの距離値に基づいてセルタイプ(内部、外部およびサーフェス)を設定する。ステップ１１０６は、可能な場合いつでも、内部および外部セルをより大きいセルになるように合体する。
【００７８】
制限付きサーフェス生成
図８ないし図１１に示すＢＤＴ生成方法は、通常、サーフェスセルを細分割するのみである。このサーフェス限定生成は、サーフェスセルにおける距離フィールドの正確な表現を確実にしながらメモリ要求を低減する。これは、サーフェスに隣接する領域を処理するためには十分である。
【００７９】
しかしながら、サーフェス追従、距離ベースの制約の使用およびフォースフィードバック等、上述した編集方法のいくつかに対し、距離フィールドは、サーフェスからのある距離に対して正確であることが要求される。これら環境において、セルがサーフェスからの指定された最小距離によって画定される制限された領域内にある時はいつでも、セルが最大エラー制約を満足しない限り外部セルおよび内部セルが合体されないように、ＢＤＴ生成方法９００が訂正される。この制限付きサーフェス生成方法は、従来技術によるＡＤＦ生成技術とは異なる。
【００８０】
編集
本システムでは、スカルプティングは、局所的編集プロセスを使用してＡＤＦ１０に対して実行される。Frisken他によって述べられているような従来技術によるＡＤＦ処理技術と比較して、本発明によるＢＤＴの使用により、２０(factor of 20)だけ編集時間を縮小し、２(factor of 2)だけセルおよび距離値に対するメモリ要求を低減する。これら進歩により、デスクトップおよび携帯型コンピュータシステムにおいて高詳細スカルプティングの実行が可能になる。
【００８１】
より小型のコンピュータシステムにおけるより少ない資源に適応するため、システム１００は、スカルプティングされた解像度とツール影響のボリュメトリックな範囲とを共に制限することにより対話性を保証することができる。上述したように、システム１００は、スカルプティング動作のスクリプト１１２とＡＤＦの中間バージョンとを保持する。アイドル時間中にスクリプト１１２を使用することにより、スカルプティング解像度を増大しＡＤＦ１０にツール影響を拡張することができる。
【００８２】
遠隔距離値の訂正
上述したように、ＡＤＦ１０は、モデルおよびツール距離フィールドに対しＣＳＧ演算を施すことによってスカルプティングされる。例えば、Frisken他による正・内部および負・外部の符号付き距離値の変換に続いて、差分スカルプティングツールの場合の点ｐにおけるスカルプティングされた距離は、ｄｉｓｔ(p)＝ｍｉｎ(ｄｉｓｔmodel(p)，−ｄｉｓｔtool(p))として表すことができ、加算ツールの場合のｐにおけるスカルプティングされた距離は、ｄｉｓｔ(p)＝ｍａｘ(ｄｉｓｔmodel(p)、ｄｉｓｔtool(p))である。ｍｉｎ／ｍａｘ演算子を使用することにより、図１２ａおよび図１２ｂに示すように、ＡＤＦのスカルプティングされたサーフェスから遠隔の点において、ＡＤＦ１０の不正確な距離値がもたらされる可能性がある。
【００８３】
例えば、図１２ａおよび図１２ｂに示すように、差分ツールを使用する場合の点Ｐ１(１２０１)と加算ツールを使用する場合の点Ｐ２(１２０２)とは共に、スカルプティングされたオブジェクトに存在しないサーフェスに対する距離が割当てられ、これら点に不正確なフィールドがもたらされる。処理が、例えばレンダリング中、サーフェスにおける距離フィールドの正確な表現のみを要求する場合、これら不正確な値は無効である。
【００８４】
しかしながら、編集技術およびアプリケーションのいくつかは、サーフェスから遠隔の距離フィールドの正確な表現を必要とする。例えば、システムが工業デザインに使用される場合、指定されたパスに沿ってツールを適当に案内するために、ボリュームを通してサブミクロン距離精度が要求される場合がある。このため、アイドルプロセッサ１１０は、システムアイドル時間中に遠隔距離フィールドを訂正する。また、アイドルプロセッサ１１０は、マテリアルが削除されているか追加されているという事実を反映するように、焦点領域、例えばスカルプティングツールのワーキングサーフェス近くにおいて、要求があり次第距離フィールドを訂正することも可能である。
【００８５】
遠隔距離フィールドをモデルのサーフェスの近くの所定の正確な距離だけ訂正することが可能な多数の方法がある。レベルセット技術から導出される高速前進(fast marching)法を使用して、サーフェス近くの正確な値の狭い帯域から外側に向かって距離を伝搬することができる。他の手法は、ゼロ値のアイソサーフェス(iso-surface)における距離値と距離フィールド境界とを一定に保持し、シミュレートされたアニーリングを使用して中間のフィールドを平滑にする。これら方法のいずれも、適応的距離フィールドのために設計されておらず、両方法ともに対話式編集には非常に低速である。
【００８６】
図１７は、例えばアイドル処理１１０中の、本発明により遠隔距離値を訂正する方法１７００を示す。ステップ１７０１は、各内部／外部(非サーフェス)セルに対し、最小の絶対値の距離値を有するセルコーナをマークする。各非サーレスセルもまた、未処理としてマークされる。なお、サーフェスセルの距離値は、特定の誤差評価値に対して常に正しく、通常訂正される必要はない、と仮定することに留意されたい。しかしながら、例えばサーフェスが通過する大きいセルの場合、誤差評価値を変更することが望ましい場合がある。この場合、これら大きいサーフェスセルを「訂正」のために選択することができる。
【００８７】
そして、ステップ１７０２は、ソートキーとしてマークされた最小絶対値距離値を使用して、内部／外部セルを昇順にソートする。ステップ１７０３は、そのソートされた順序で内部／外部セルを処理する。
【００８８】
ステップ１７０４は、各内部／外部セル１７１１の各エッジを検査し、エッジを共有しサーフェスセルかまたは処理済みセルのいずれかである近傍セル１７０５を選択し、その後ステップ１７０７は、隣接するセルのエッジに対するあらゆる失われた距離値を内部／外部セル１７１１の共有セルに付加する。なお、セルはサイズが変化するため、距離値は共有エッジのいずれにも現れる可能性があることに留意されたい。
【００８９】
そして、ステップ１７０８は、後述する訂正方法１７１０のうちの１つに従って、新たに付加された距離値を使用して、内部／外部セル１７１１のコーナ値を設定する。最後に、ステップ１７０８は、処理されるに従ってセル１７１１をマークし、すべての内部／外部セルが処理されるまで次のソートされた内部／外部セルに対する処理を続ける。
【００９０】
訂正方法１
各セルコーナ頂点を「自由(free)」または「固定(fixed)」としてマークする。本発明の１つの実施の形態では、コーナは、隣接するサーフェスセルと共有されるコーナである場合にのみ固定であり、そうでない場合は自由である。本発明の他の実施の形態では、コーナは、隣接するサーフェスセルかまたは処理済みセルと共有されるコーナである場合には固定であり、そうでない場合は自由である。そして、各コーナに関連する付加された距離値の数を確定する。付加された距離値は、それがあるコーナに接続されたエッジ上にある場合はそのコーナと関連し、コーナとエッジの中間点との間のいずれかにある。次に、関連する距離の最大数を有するコーナＣを確定する。そして、セルを指定された解像度で一様にサンプリングされたグリッドに分割する。好ましい実施の形態では、グリッドを表現するために要求されるメモリは、ＣＰＵのキャッシュに適合し、それによりパフォーマンスが最大化される。最後に、コーナＣから伝搬されセルの自由コーナのみを訂正するレギュラグリッドに対しユークリッド距離変換を実行する。Cuisenaireによる「Ditance Transformations: Fast Algorithms and Applications to Medical Image Processing」, Ph.D.thesis、Universite Catholique de Louvain, 1999を参照のこと。
【００９１】
訂正方法２
各自由コーナに対し最近傍の新たに付加された距離Ｄを算出する。そして、各自由コーナＣに対し、最近傍の新たに付加された距離Ｄに対するユークリッド距離Ｎを算出する。Ｃの距離が距離Ｄおよび距離Ｎによって画定される範囲外にある場合、Ｃの距離をこの範囲に設定する。
【００９２】
訂正方法３
方法２と同様に、しかしながら各自由コーナに対して最近傍の新たに付加された距離を使用する代りに、各自由コーナを訂正するために新たに付加された距離のすべてを使用する。
【００９３】
訂正方法４
エッジに沿った距離の外挿かまたは距離フィールドを通しての距離の外挿を使用して、すべての自由コーナにおいて訂正された距離を導出するために新たに付加された距離を使用する。
【００９４】
訂正のための内部／外部セルの選択
本発明の１つの実施の形態では、ステップ１７０１は、内部／外部セルをすべて選択する。本発明の他の実施の形態では、ステップ１７０１は、サーフェスから指定された距離内の内部／外部セルのみを選択する。本発明のさらに他の実施の形態では、ステップ１７０１は、サーフェスセルに隣接する近傍である内部／外部セルのみを選択する。本発明のさらに他の実施の形態では、ステップ１７０１は、指定された領域内の内部／外部セルのみを選択し、この場合、その領域は、ユーザからの入力、例えばマウスイベントによって指定される位置によって画定される。いくつかのアプリケーションでは、内部または外部のセルの一方だけが訂正を必要とする。それらの場合、本発明は、ステップ１７０１を、指定されたセルタイプ、すなわち内部または外部のみを選択するように制限する。
【００９５】
ＢＤＴ生成中に処理する内部／外部セルの選択
訂正のために内部／外部セルを選択する上に列挙した同様の基準を、いずれの内部／外部セルがＢＤＦ生成中に属性(predicate)テストをパスするよう強制されるかの選択に適用することができる。属性テストは、セルの再構成方法が正確に距離フィールドを表すか否かを確定する。Frisken他を参照のこと。本発明の１つの実施の形態では、ＢＤＴジェネレータは、内部／外部セルが属性テストをパスすることを要求しない(サーフェス制限生成)。本発明の他の実施の形態では、ＢＤＴジェネレータは、サーフェスからの指定された距離内の内部／外部セルに対し属性テストにパスするよう強制する(制限付きサーフェス生成)。本発明のさらに他の実施の形態では、ＢＤＴジェネレータは、指定された領域内にある内部／外部セルに対し、その領域がユーザからの入力(例えば、マウスイベントの位置)によって画定される場合に、属性テストをパスするように強制する。
【００９６】
高速レンダリング
高速グローバルレンダリング
本発明によるシステム１００はまた、標準ハードウェアおよびソフトウェア実現レンダリングエンジンと統合され得るように、ＡＤＦ１０を三角形および点モデルに変換する方法も含む。ＮＶＩＤＩＡ  ＧｅＦｏｒｃｅ２等の現行の標準ハードウェアの場合、これら変換方法は、ＡＤＦの真に対話的な操作を提供する。三角形の場合、ＡＤＦは、多くのコンピュータシステムで利用可能なハードウェア三角形ラスタ化を利用して、ＯｐｅｎＧＬレンダリングエンジン１１１を使用してレンダリングすることができる三角形モデルに変換される。ＡＤＦを三角形に変換する方法は後述する。
【００９７】
変換時間は非常に高速である。すなわち、システム１００は、Ｐｅｎｔｉｕｍ（登録商標）  ＩＶクラスプロセッサにおいて、０．３９秒でレベル９ＡＤＦから２００，０００の三角形を有する三角形モデルを生成することができる。ＬＯＤがより低いモデルは、より高速に、例えば２０００三角形モデルの場合１０ミリ秒未満で生成することが可能である。このように、ナビゲーションツールが選択される場合、三角形モデルを進行中にわずかな遅延で生成することができ、カメラのパニング、スーミングまたは回転中の高速グローバルレンダリングが可能となる。
【００９８】
代替的に、本システムは、Rusinkiewicz他により「Qsplat:A Multiresolution Point Rendering System for Large Meshes」、Proc.SIGGRAPH'00, pp.343〜352, 2000において述べられているような、コンピュータグラフィクスにおけるハードウェア支援の点レンダリングに向かう最新の傾向を利用して、グローバルビュー変更のための点ベースレンダリングを使用することができる。
【００９９】
好ましい実施の形態では、システム１００は、ＯｐｅｎＧＬレンダリングエンジン１１１を使用して点をレンダリングする。点ジェネレータ１０７は、０．２秒で８００，０００のフォンシェーディングが施された点をもたらすことができ、シェーディングがレンダリングエンジン１１１によって実行される場合、シェーディングされていない点に対しては、０．１２秒未満で生成することができる。点は、デスクトップシステム上で対話的にレンダリングすることができ、三角形モデルのように、ナビゲーションツールが選択される場合は要求があり次第生成されることも可能である。
【０１００】
距離フィールドおよび八分木データ構造を使用することができることにより、ＡＤＦに対し、点を生成するための一意の利点が与えられる。例えば、セル内でランダムに生成された点は、その点における距離値と勾配とを使用して１ステップでサーフェス上に単純に投影することができる。さらに、セルサイズを使用して、そのセルで生成される点の数とサイズとを共に確定することができ、それにより多重解像度レンダリング方法が可能となる。
【０１０１】
点生成は非常に高速であるため、システムは、後向きセルおよび後向き点を間引き(cull)、セル内の勾配を使用してシルエットエッジ上により多くの点を生成する、ビュー依存の点生成も使用することも可能である。
【０１０２】
高速局所レンダリング
本発明は、システム資源に応じて、スカルプティングされた領域の画像を局所的に更新するために２つの方法を使用する。すなわち、ハードウェアレンダリングによる局所的三角形生成と、ソフトウェアベースレンダリングのための適応的レイキャスティングと、である。点生成は、局所的編集に対しては十分に高速であるが、点モデルは、三角形またはレイキャスティングのように画像の微細なスカルプティングされた詳細を表現しない。従って、点モデルは、高速局所レンダリングには利用されない。
【０１０３】
局所的三角形
ハードウェアレンダリングに対しＡＤＦ１０が三角形モデルに変換され、ＡＤＦと三角形モデルとを共に保持するために十分なメモリがある場合、本システムは、スカルプティング中にこれらモデルを局所的に更新することができる。局所的更新を可能にするために、三角形は、それらが生成されるもとのセルに従ってインデクスされる。セルがスカルプティングによって影響される場合、スカルプティングプロセス中に、進行中に、その関連する三角形は削除され、新たな三角形が生成される。この方法は非常に高速であるが、動的三角形モデルを保持するためのメモリと共に三角形インデクシングのためのセル毎の追加のメモリが必要となる。
【０１０４】
適応的レイキャスティング
システム１００は、スカルプティングされたサーフェスの高品質レンダリングのためのレイキャスティングを提供する。この方法がスカルプティング中に使用される場合、画像は、ツールによって影響される領域内で局所的に更新される。
【０１０５】
ソフトウェアベースのレイキャスティングを対話的更新に対して十分高速に実行することができないアプリケーションの場合、システム１００は、適応的レイキャスティン手法１５２を使用して、特定のビューポイントにおいてモデルの画像表現を作成する。レイキャスティング方法は、Ｇｕｏにより「Progressive Radiance Evaluation Using Directional Maps」、Proc.SIGGRAPH'98, pp.255〜266, 1998に述べられている方向一貫性マップ(directional coherence map(ＤＣＭ))の拡張である。
【０１０６】
更新される画像領域は、画像タイルの階層に分割され、画像タイルの細分割は、知覚ベースの属性によって導かれる。完全に細分割されていない画像タイル内の画素は、画像を作成するためにバイリニア補間される。
【０１０７】
各画像タイルに対し、レイが、タイルコーナにおいてＡＤＦ１０にキャストされ、線形交差方法を使用してサーフェスと交差される。さらなる細分割に対してテストするために使用される属性は、Ｍｉｔｃｈｅｌｌにより「Generating antialiased images at low sampling densities」、Proc.SIGGRAPH'87, pp.65〜72, 1987に述べられている方法に基づく。
【０１０８】
Mitchellは、赤、緑および青のチャネルのコントラストと、画像タイルに亙るカメラからの深さの変動と、に対し個々に重み付けする。本発明による適応的レイキャスティング手法１５２は、概して、画素毎に１レイをキャストする場合に対してレンダリング時間を６：１に低減することができ、画像がアンチエイリアシングに対してスーパサンプリングされる場合は、１０：１より多く低減する。
【０１０９】
キャラクタアニメーションパイプラインに対するスカルプティングシステムの適応
デジタルモデル設計に対し新規なデータ表現を使用するいかなるスカルプティングシステムも、現行のレンダリングパイプラインと統合することができない限り、製作システムに対し無用である。これらパイプラインは、特にアニメーションスタジオにおいて広範囲に亙る可能性がある。そのため、システム１００は、三角形モデル、陰関数、ＣＳＧモデル、ベジエパッチおよび走査データを含むいくつかの標準タイプの表現からモデルを入力し、三角形モデルを出力する。上記表現のほとんどをＡＤＦに変換することは、Frisken他によって述べられている。
【０１１０】
この説明は、２つの重要な新しい開発に焦点を当てている。すなわち、最新技術を発展させる走査レンジデータからＡＤＦを生成する方法と、位相的に一貫したＬＯＤ三角形モデルをたちまち生成する、ＡＤＦを三角形にする方法と、である。
【０１１１】
レンジデータからの入力
走査データを三角形モデルに変換するために利用可能ないくつかの商用システムがある。ＡＤＦをシステムに取入れる１つの手法は、走査データを三角形モデルに変換した後、その三角形モデルをＡＤＦ１０に変換する、というものである。しかしながら、経験から、走査データからの変換によってもたらされる三角形モデルはしばしば、問題があり、穴を含み、裏返された三角形であり、サーフェスにオーバラップすることが分かる。その代りに、本システムは、走査データから直接ＡＤＦ１０を生成する。
【０１１２】
いくつかの最近の研究論文は、より頑強で隙間の無い表面再構成のために、走査データを、符号付距離フィールドを利用する三角形モデルに変換する方法を提示した。例えば、Curless他により「A Volumetric Method for Building Complex Models from Range Images」、Proc.SIGGRAPH'96, pp.303〜312, 1996において述べられているような方法は、Ｃｙｂｅｒｗａｒｅ走査システムによって使用されるデータ変換方法の基礎である。Wheelerは、「Automatic Modeling and Localization for Object Recognition」、Ph.D.thesis、Carnegie Mellon University、1996において、真のユークリッド距離関数を使用する方法と、よりボリューム中心の手法と、を述べている。
【０１１３】
そこでは、走査データは、異なるビューポイントから取られるオーバラップする２Ｄ走査レンジ画像のセットからなる。各レンジ画像はレンジサーフェス三角形メッシュに変換され、三角形メッシュはすべて同じ座標系に取入れられる。そして、Wheelerは、ボリューム要素から各レンジサーフェスまでの符号付距離を計算することにより、トップダウン方式で距離フィールドの三色八分木を生成し、確率重み付き関数を使用して距離を結合する。
【０１１４】
確率関数は、元の走査方向に対する各寄与三角形の角度と、その走査画像のエッジに対する三角形の位置と、オーバラップしているレンジサーフェスに対して計算される距離間の一致度と、可能性として他の要因と、によって決まる。最後のステップとして、すべての境界リーフセルに対しLorensen他によるマーチングキューブ法が適用されることにより、ボリューム境界を利用すると仮定すると、符号付距離ボリュームから、閉じた、隙間の無い三角形サーフェスがもたらされる。Whiilerの手法の問題は、モデルのサーフェスを含むすべてのセルが同じ八分木レベルに細分割されるため、メモリ要求および処理時間が増大し、またマーチングキューブを使用して生成される三角形の数が大幅に増大する、ということである。
【０１１５】
システム１００は、ＡＤＦ１０に対してWheelerの方法を適応させその機能を高める。彼による三色八分木のトップダウン生成は、上述したようなＢＤＴ生成に置換えられる。ＡＤＦ１０において、境界セルは、トリリニアフィールドとして表現され、従ってサーフェスの平坦または略平坦領域において細分割を必要とせず、メモリ要求と距離計算の数との両方が三色八分木に対し大幅に節約される。
【０１１６】
走査データがシステムに取入れられた後、スカルプティングシステムを使用して、モデルの問題を訂正することができる。問題は、遮蔽された領域と、解像度限界またはスキャナノイズによる詳細の喪失と、レンジ画像間の継ぎ目における粗いまたは破壊されたサーフェスと、による場合がある。最後に、望ましい場合は、後述する手法を使用してＡＤＦ１０を三角形モデルに変換することができる。
【０１１７】
本発明の他の利点として、ＡＤＦ１０では、従来技術による三色八分木の場合よりセルが大幅に少ないため、システム１００は、従来技術による方法より大幅に少ない三角形を生成する。さらに、ＡＤＦ１０は、指定された詳細度レベルでの三角形の生成をサポートする階層データ構造であるため(下を参照)、システム１００は、特にアプリケーションに対してサイズが調整される三角形モデルを作成することができる。
【０１１８】
図１３は、スキャナまたはレンジファインダ１３０１から走査データを入力する方法１３００を示す。スキャナは、レンジ画像(Ｒ1、…、ＲN)１３０２を生成する。レンジ画像は、単一座標系のレンジメッシュ１３０４に変換される１３０３。確率関数１３０５を使用することにより、レンジメッシュはＢＤＴジェネレータ１０３を用いてＡＤＦ１３０６に変換される。確率関数は、ＡＤＦの対応するセルに対する各メッシュにおける各頂点の寄与(重み)を確定する。そして、ＡＤＦ１０を作成するための遮蔽、ノイズ、細部の喪失等の問題を訂正するために、エディタ１０４を適用することができる。
【０１１９】
三角形への変換
また、本システム１００は、レンダリングと、制御点ベース編集と、現行のアニメーションパイプラインに統合することができる出力モデルへの変換と、のためにＡＤＦ１０を三角形化する新しい方法も提供する。三角形化方法は、ＡＤＦの八分木等、適応グリッドでサンプリングされる陰関数から一貫した三角形モデルを位相的に作成する。本方法は非常に高速であり、リアルタイムに三角形モデルを作成することができる。本方法をＡＤＦデータ構造と共に使用することにより、後述するようなＬＯＤモデルを作成することができる。
【０１２０】
従来技術によるサーフェスネット手法とは異なり(下の引用参照)、本システムの強化された方法は、適応グリッドでサンプリングされる距離値から三角形メッシュを生成する。これは、ＡＤＦの隣接するセルのサイズが大幅に変化する可能性があるため、特別な問題を提示する。これは、頂点が、隣接するセルの共通するエッジのほぼいずれにも現れる可能性があることを意味する。これまで、これら予測不可能に配置された頂点をリアルタイムに接続して「上質の」三角形を形成することは、未解決の問題であった。
【０１２１】
新しい方法は、レギュラグリッド上にサンプリングされるバイナリボリュームデータから全体的には平滑であるが局所的に正確である三角形モデルを構築するために、マーチングキューブに対する代替として開発された、サーフェスネット方法に基づく。Gibsonによる「Using distance maps for smooth surface representation in sampled volumes」、Proc. 1998 IEEE Volume Visualization Symposium, pp.23〜30, 1998を参照のこと。しかしながら、その方法は、三角形頂点を移動しながら、反復的なエネルギ最小化プロセスを使用する。これはかなりの時間がかかる。対照的に、本発明による新しい方法は、単一ステップで、実質的にモデルのサーフェス上にある頂点を移動する。
【０１２２】
本方法は、モデルのサーフェス上にある三角形頂点と、「良質な」三角形、すなわち等辺に近い三角形と、をもたらす。さらに、後述するように、新しい方法は、一般に適応グリッドと関連する裂け目問題に容易に対処する。言換えれば、新しい方法は、隙間の無い三角形モデルをもたらす。
【０１２３】
本方法の基本的な３ステップは以下の通りである。
【０１２４】
第１に、ＡＤＦの各境界(サーフェス)リーフセルに、最初にセルの中心位置に配置される頂点が割当てられる。
第２に、以下の制約を使用して位相的に一貫した「隙間の無い(watertight)メッシュを作成することにより、三角形を形成するように隣接するセルの頂点が接続される。すなわち、
(１)すべての三角形は、共通のエッジを共有する３つの隣接するセルの頂点によって接続され、そのため三角形はセルエッジに関連付けられ、
(２)三角形は、そのエッジが距離フィールドのゼロ交差を有する、すなわちサーフェスがエッジと交差する場合にのみ、エッジに関連付けられる。
第３に、三角形のすべてが形成された後、距離値に等しい単一ステップサイズで、三角形の頂点がセルのサーフェスに向かって、すなわちＡＤＦ勾配の方向に移動される。
【０１２５】
メッシュの精度およびジオメトリを向上させるために、三角形頂点を、サーフェスに亙って隣接する頂点に向かって移動させることにより、三角形の品質全体を向上させることができる。
【０１２６】
好ましい三角形化方法１４００の基本ステップを、図１４に示す。ステップ１４０１は、候補選択パラメータ１４２０を使用して、ＡＤＦ１０のデータ値を格納するために使用されるＡＤＦ八分木をトラバースすることにより候補セルを選択する。本発明の１つの実施の形態では、候補選択パラメータ１４２０は、すべての境界リーフセルが候補セルとして選択されることを指定する。本発明の他の実施の形態では、候補選択パラメータ１４２０は、最大誤差評価値がユーザ指定閾値を満たす境界リーフセルのみが候補セルとして選択されることを指定する。ＡＤＦ八分木階層の選択されたセルより下のセルは無視される。他の実施の形態では、階層の深さと誤差評価値とを共に使用して候補セルを選択することができる。
【０１２７】
ステップ１４０２は、頂点を各候補セルと関連付け、頂点をセルの中心に設定する。ステップ１４０３は、処理される候補セルがまだあるか否かを判断する。候補セルが無い場合、ステップ１４０４は、各頂点を、「平均の」隣接する頂点に向かう方向にセルのサーフェスに向かって、緩和位置を含む接平面に沿って緩和する。もしそうでなく候補セルがある場合、６つのエッジの各々に対し(ステップ１４０５)、ステップ１４０６は、サーフェスがエッジを交差するか否かを判断する。真である場合、ステップ１４０７は、エッジに関連する三角形の頂点Ｖ０、Ｖ１およびＶ２を確定し(下の説明を参照)、ステップ１４０８は、エッジからの三角形の向きを確定する。
【０１２８】
ステップ１４０７において、頂点Ｖ０は、セルの関連する頂点、一般にセルの中心点に設定される。頂点Ｖ１およびＶ２は、メソッドｇｅｔＦａｃｅＮｅｉｇｈｂｏｒＶｅｒｔｅｘ()(面近傍頂点取得)によって確定される。なお、エッジは、２つの隣接する面、ｆａｃｅ１およびｆａｃｅ２を有することに留意されたい。頂点Ｖ１を確定するために、ｇｅｔＦａｃｅＮｅｉｇｈｂｏｒＶｅｒｔｅｘ()は、エッジとｆａｃｅ１とを入力とし、頂点Ｖ１を、セルの面隣接する近傍がセルと同じサイズかそれより大きい場合はその面隣接近傍の頂点に、そうでない場合は、面に隣接しかつエッジ上にゼロ交差を有する面隣接する近傍の一意の子セルの頂点に、設定する。同様に、頂点Ｖ２を確定するために、ｇｅｔＦａｃｅＮｅｉｇｈｂｏｒＶｅｒｔｅｘ()は、エッジとｆａｃｅ２とを入力とし、頂点Ｖ２を、セルの面隣接する近傍がセルと同じサイズかそれより大きい場合はその面隣接近傍の頂点に、そうでない場合は、面に隣接しかつエッジ上にゼロ交差を有する面隣接する近傍の一意の子セルの頂点に、設定する。
【０１２９】
図１５は、３Ｄセルに対する１２のエッジのうちの６つのみを考慮する、例えばエッジが対向する対角コーナ１５０１〜１５０２に集まる１つの可能性を示す。
【０１３０】
サンプリングされた陰関数を三角形化する従来技術による大抵の方法は、セルエッジおよび面に三角形頂点を生成する。例えば、Bloomenthalによる「Polygonization of Implicit Surfaces」、Computer Aided Geometric Design、5(00): pp.341〜355, 1988と、Karron他による「New findings from the SpiderWeb algorithm: toward a digital Morse Theory」、Proc.Vis.in Biomedical Computing, pp.643〜657, 1994と、を参照のこと。
【０１３１】
図１６ａにおいて２Ｄで示すように、従来技術による方法では、陰関数が適応的にサンプリングされる場合、三角形化サーフェス１６０２において２つの異なるサイズのセルが接する場所に裂け目がもたらされる可能性がある。これは、１つのセルの補間された頂点位置が、その接続された隣接するセルの補間された位置と一致しない可能性があるためである。これら問題は、いくつかの方法で対処することができるが、概して、従来技術による解決法は、三角形化方法を非常に複雑にする。
【０１３２】
対照的に、本システムの改良された方法では、三角形頂点はセル中心に生成され、三角形は異なるサイズのセルの面およびエッジを交差することができる。このため、図１６ａに示すタイプの裂け目は現れない。しかしながら、図１６ｂに示すようにセルの２つの隣接するセットの間のエッジ交差の数が異なる場合、三角形化サーフェスに裂け目が現れる場合がある。
【０１３３】
このタイプの裂け目は、ＡＤＦのプレコンディショニングにより、生成時または三角形化前に予防することができる。プレコンディショニングステップは、境界リーフセルの面に亙るアイソサーフェスのゼロ交差の数を、それら面隣接する近傍の関連するアイソサーフェスのゼロ交差の総数と比較する。
【０１３４】
ゼロ交差の数が等しくない場合、ゼロ交差の数が一致するまで、セルはその面隣接する近傍からの距離値を用いて細分割される。例えば、図１６ｂの上部の２Ｄセルはその下部エッジにゼロ交差を有しておらず、エッジ隣接する近傍は同じエッジに対し合計２つのゼロ交差を有する。プリコンディショニング中、上部のセルは、さらに細分割される。
【０１３５】
また、本システム１００は、ＬＯＤモデルを作成するためにＡＤＦの階層データ構造の利点を利用する。境界リーフセルにおいて三角形頂点を配置する(seed)のではなく、階層データ構造がトラバースされ、頂点は、生成または編集中に計算される最大誤差評価値がユーザ指定閾値を満たす境界セルに配置される。階層においてこれらセルの下のセルは無視される。エラー閾値は、ＬＯＤモデルにおいて生成される三角形の数に対し細かい制御を連続的に可能としながら変更されることが可能である。
【０１３６】
大抵の従来の三角形デシメーションアルゴリズムと異なり、本明細書で述べるようにＬＯＤモデルを作成する時間は、入力メッシュのサイズではなく出力メッシュの頂点の数に比例する。生成時間は、従来技術の方法を用いて可能であるより桁違いに優れている。システム１００は、Ｐｅｎｔｉｕｍ（登録商標）  ＩＶクラスプロセッサを備えたデスクトップシステムにおいて、０．３７秒で２００，０００の三角形モデルを生成し、０．０１０秒未満で２０００の三角形モデルを生成することができる。
【０１３７】
本発明を好ましい実施の形態の例として説明したが、他のあらゆる適応および変更を本発明の精神および特許請求の範囲内で行ってよい、ということは理解されるべきである。従って、併記の特許請求の範囲の目的は、かかる変形および変更のすべてを発明の精神および特許請求の範囲内にあるように包含することである。
【図面の簡単な説明】
【０１３８】
【図１】本発明によるモデリングシステムのフロー図である。
【図２】本発明によるサーフェス追従の図である。
【図３ａ】編集ストロークの図である。
【図３ｂ】編集ストロークの図である。
【図３ｃ】編集ストロークの図である。
【図４】制約付きサーフェス追従の図である。
【図５】制約付きサーフェス追従のフロー図である。
【図６】制御点編集の図である。
【図７】制御点編集のフロー図である。
【図８】ＡＤＦ生成中のあらゆる段階での制限付き距離ツリー(ＢＤＴ)の図である。
【図９】ＢＤＴ生成のフロー図である。
【図１０】ＢＤＴ生成のフロー図である。
【図１１】ＢＤＴ生成のフロー図である。
【図１２ａ】モデルの外部点の図である。
【図１２ｂ】モデルの内部点の図である。
【図１３】走査捕捉手順のフロー図である。
【図１４】三角形化手順のフローチャートである。
【図１５】図１４の手順によって使用されるセルエッジの図である。
【図１６ａ】エッジ間の裂け目の図である。
【図１６ｂ】エッジ間の裂け目の図である。
【図１７】ＡＤＦ訂正方法のフロー図である。
【図１】
0004664402.tif 000002
【図２】
0004664402.tif 000003
【図３ａ】
0004664402.tif 000004
【図３ｂ】
0004664402.tif 000005
【図３ｃ】
0004664402.tif 000006
【図４】
0004664402.tif 000007
【図５】
0004664402.tif 000008
【図６】
0004664402.tif 000009
【図７】
0004664402.tif 000010
【図８】
0004664402.tif 000011
【図９】
0004664402.tif 000012
【図１０】
0004664402.tif 000013
【図１１】
0004664402.tif 000014
【図１２ａ】
0004664402.tif 000015
【図１２ｂ】
0004664402.tif 000016
【図１３】
0004664402.tif 000017
【図１４】
0004664402.tif 000018
【図１５】
0004664402.tif 000019
【図１６ａ】
0004664402.tif 000020
【図１６ｂ】
0004664402.tif 000021
【図１７】
0004664402.tif 000022