説明

ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形

【課題】ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形の技術を提供する。
【解決手段】情報がユーザから受け取られ、この場合、その情報は、オリジナルメッシュがどのように変形されるかを示す。その後、オリジナルメッシュは、その情報と、オリジナルメッシュから生成されたボリュメトリックグラフへの体積微分演算子の適用とに基づいて、変形される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッシュ変形の技術に関する。
【背景技術】
【0002】
メッシュ変形(mesh deformation)は、コンピュータモデリングおよびアニメーションの様々な応用例において役立つ。例えば、メッシュ変形は、アーティストが3次元(3−D)キャラクタの様式化されたボディ形状および変形を形作るのを手助けするのに役立つ。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、しなやかで非常に誇張された動作を実行するキャラクタに見出されるような大規模な変形は、今日も課題として残されている。既存のメッシュ変形技法は、不自然な体積変化を伴う信じがたい結果をしばしば生み出す。
【課題を解決するための手段】
【0004】
この要約は、以下の詳細な説明においてさらに説明される概念の抜粋を簡潔な形式で紹介するために提供される。この要約は、特許請求される主題の主要な特徴または必須の特徴を特定することを意図しておらず、特許請求される主題の範囲を決定する際の助けとして使用されることも意図していない。
【0005】
上記の事柄に鑑みて、ボリュメトリックグラフ・ラプラシアン(volumetricgraph Laplacian:体積グラフラプラシアン)を使用する大規模メッシュ変形が説明される。一態様では、情報がユーザから受け取られ、この場合、その情報は、オリジナルメッシュ(元のメッシュ)がどのように変形されるかを示す。その後、オリジナルメッシュは、その情報と、オリジナルメッシュから生成されたボリュメトリックグラフ(体積グラフ)への体積微分演算子(volumetricdifferential operator)の適用とに基づいて、変形される。
【0006】
図面において、構成要素の参照番号の左端の数字は、その構成要素が最初に出現した特定の図面を識別する。
【図面の簡単な説明】
【0007】
【図1】ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形のための例示的なシステムを示す図である。
【図2】従来の大規模メッシュ変形とボリュメトリックグラフ・ラプラシアン114を使用する大規模メッシュ変形との例示的な比較を示す図である。
【図3】例示的な大規模捻り変形結果を示す図である。
【図4】例示的な大規模曲げ変形結果を示す図である。
【図5】例示的なボリュメトリックグラフを示す図である。
【図6】ボリュメトリックグラフを構成するための例示的な操作を示す図である。
【図7】ボリュメトリックグラフにおける辺連結の例示的なタイプを示す図である。
【図8】例示的な曲線ベースの変形を示す図である。
【図9】一様、辺長の逆数、および熱核(平方距離の減衰指数関数)重み付け方式を含む重み付け方式の例示的な比較を示す図である。
【図10】ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形と比較された従来の大規模メッシュ変形技法の例示的な比較を示す図である。
【図11】ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形のための例示的な手順を示す図である。
【図12】ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形が完全または部分的に実施され得る適切なコンピューティング環境の一例を示す図である。
【発明を実施するための形態】
【0008】
〈概要〉
ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形は、ボリュメトリックグラフ・ラプラシアンを使用する、3−Dメッシュ上での大規模変形のための新規な技法を提供する。入力メッシュの内側の体積を表すグラフが、最初に構成される。グラフは、入力メッシュの内部のソリッドメッシング(solidmeshing)を形成する必要がない(体積ラプラス演算子(volumetric Laplacian operator)は、表面内部をメッシュすることなく、ボリュメトリックグラフに適用されることができる)。グラフの辺は、体積内の近隣点を単純に接続する。グラフのラプラシアンは、グラフ内の各点とその近隣点の平均との差として、ボリュメトリックディテール(体積詳細)を符号化する。変形中にこれらのボリュメトリックディテールを保存することが、体積の不自然な変化を防止する体積制約を課す。また、グラフ内には、メッシュの外側の近距離にある点も含まれる。これは、局所自己交差(localself−intersection)を回避する上で助けとなる。ボリュメトリックディテールの保存は、2次エネルギー関数(quadricenergy function)によって表される。2次エネルギー関数を最小化することが、最小2乗の意味において詳細を保存し、誤差を変形されたメッシュの全体にわたって一様に分散させる。2次エネルギー関数は、表面位置、詳細、または滑らかさを含む従来の制約とも組み合わされることができ、疎線形系(sparselinear system)を解くことによって効率的に最小化することができる。
【0009】
図1から図11を参照して以下でより詳細に説明されるように、ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形が、2−D曲線ベースの変形システムにおいて実施され、初心者も熟練ユーザも等しく十分に満足できる変形を僅かな労力で生み出すことを可能にする。この新規なメッシュ変形技法は、3−Dモデルのスケルトンおよび基本姿勢を入力として必要とせず、広い範囲にわたるしなやかな変形を扱うことができる。一実施では、ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形のためのシステムは、2−Dアニメキャラクタのしなやかで誇張された変形を3−Dメッシュに適用するために利用される。
【0010】
〈例示的なシステム〉
必ずしも必要ではないが、ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形は、パーソナルコンピュータなどのコンピューティングデバイスによって実行されるコンピュータプログラム命令という一般的な文脈において説明される。プログラムモジュールは一般に、特定のタスクを実行し、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。システムおよび方法は、上述の文脈において説明されるが、これ以降で説明される行為および動作は、ハードウェアで実施されてもよい。
【0011】
図1は、ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形のための例示的なシステム100を示している。この実施では、システム100は、汎用コンピューティングデバイス102を含む。コンピューティングデバイス102は、パーソナルコンピュータ、ラップトップ、サーバ、および/またはハンドヘルドもしくはモバイルコンピューティングデバイス(例えば、セルラ電話、携帯情報端末)など、任意のタイプのコンピューティングデバイスを表す。
【0012】
コンピューティングデバイス102は、プログラムモジュール104と、プログラムデータ106とを含む。プログラムモジュール104は、(ボリュメトリックグラフ・ラプラシアンを使用する)大規模メッシュ変形モジュール108(これ以降、しばしば「変形モジュール108」と呼ばれる)と、オペレーティングシステムなどのその他のプログラムモジュール110とを含む。変形モジュール108は、3−Dメッシュ116(オリジナルメッシュ:元のメッシュ)から生成されたボリュメトリックグラフ・ラプラシアン(VGL)114上で大規模メッシュ変形112を生じさせるために、新規な技法を実施する。変形モジュール108は、VGLを利用して、ボリュメトリックディテールを3−D体積内の各点とグラフ内のその近隣点の平均との差として表す。VGLは、変形モジュール108が、差分領域(differentialdomain)技法を使用して表面詳細を保存することを可能にし、それによって、最小2乗最小化を用いて誤差を全体的に分散させることによって、視覚的に満足できる変形結果112を生み出す。メッシュ116の表面上の代わりに体積領域内で作業することによって、変形モジュール108は、VGLを利用して、効率的に体積制約を課し、それによって、不自然な体積変化および局所自己交差を回避する。
【0013】
図2は、従来の大規模メッシュ変形と、ボリュメトリックグラフ・ラプラシアン114を使用する大規模メッシュ変形との例示的な比較を示している。より具体的には、画像202は、例示的なオリジナルメッシュ116を示す。画像204は、従来のポアソン編集メッシュ変形(Poissonediting mesh deformation)技法を使用してオリジナルメッシュ116を変形した例示的な結果を示す。画像206は、ボリュメトリックグラフ・ラプラシアン114を使用したオリジナルメッシュ116の大規模メッシュ変形の例示的な結果を示す。画像204の例に示されるように、ポアソンメッシュ編集を使用したオリジナルメッシュ116の変形は、特にモデルの右腿において不自然な収縮を引き起こす。
【0014】
ボリュメトリックグラフ・ラプラシアン114を使用する場合、変形モジュール108は、2次エネルギー関数によって体積制約を表す。変形モジュール108は公式には、疎線形系によってこの関数を最小化し、その関数を(例えば、表面位置、表面詳細、表面の滑らかさに対する)その他の表面制約と組み合わせる。ボリュメトリックグラフ・ラプラシアン114を三角メッシュ(triangularmesh)に適用するため、変形モジュール108は最初に、ボリュメトリックグラフ118を構成するが、ボリュメトリックグラフは、オリジナルメッシュ116の点と、メッシュ116の内側に存在する単純格子(simplelattice)(グラフの内側)から以下で説明されるように導出される点とを含む。グラフの辺は、これらの点を接続する。これらのグラフの辺は、オリジナルメッシュ116の辺の上位集合である。グラフは、メッシュ116の内部のメッシング(四面体またはその他の有限要素への体積テッセレーション(volumetrictessellation))を形成する必要がない。
【0015】
ユーザは、オリジナルメッシュ116上の有限の点の集合120(1つまたは複数の制御曲線(controlcurve))を識別することによって、変形を指定する。指定された点120は、曲線を定義し、これらの点120が結果の変形においてどこに移動するかを表す。例示的な説明の目的で、指定された点120は、この例では、曲線を識別する。変形モジュール108は、表面詳細を維持し、体積をほぼ保存しながら、指定された点120を指定された移動先に写像するために、最小値を取る2次エネルギー関数を生成する。
【0016】
このようにして、変形モジュール108は、表面内部をメッシュすることなく、体積微分演算子をボリュメトリックグラフ118に適用することによって、大規模メッシュ変形の問題を解決する。対照的に、従来の微分手法は、表面演算子のみを考えた。表面から立体にこれらの演算子を拡張する素朴な方法は、物体内部の四面体メッシュにわたってそれらを定義することである。しかし、複雑な物体をソリッドメッシュすることは、困難なことで有名である。既存のメッシュ変形技法は一般に、幾何学的形状を再メッシュし、その連結度を混乱させ、それによって、メッシュ変形の共通要件を破る。ソリッドメッシングも、(例えば、四面体は反転しない、各内部頂点はその近隣点のビジュアルハル(visualhull)内に留まるといった)多くの制約を伴う。そのような制約は、従来のメッシュ変形技法が、内部点を経済的に分散させ、局所自己交差を防止するために(システム100によって実行される)「外部シェル(exteriorshell)」を追加することを、計算的に非実用的なものにする。
【0017】
ボリュメトリックグラフ118を変形し、2−D曲線(指定された点120のそれぞれの部分)からの変形を実行する、変形モジュール108の例示的な動作が、今から説明される。
【0018】
〈ボリュメトリックグラフの例示的な変形〉
M=(V,K)を変形の対象とする三角メッシュ116とすると、Vは、n個の点位置の集合(すなわち、オリジナルメッシュ116の点集合)、V={pi∈R3|1≦i≦n}であり、Kは、すべての点連結度(vertex connectivity)情報を含む抽象単体複体(abstractsimplicial complex)である。例示的な説明の目的で、そのような点連結度情報は、「その他のデータ」122のそれぞれ部分として示される。Kには、頂点{i}と、辺{i,j}と、面{i,j,k}の3つのタイプが存在する。
【0019】
〈抽象グラフ上でのラプラシアン変形〉
G=(P,E)がグラフであると仮定すると、Pは、N個の点位置の集合、P={pi∈R3|1≦i≦N}であり、E={{i,j}|piはpjに接続される}は、辺の集合である。グラフのラプラシアンは、多様体上のラプラス演算子に類似している。ラプラシアンは、グラフG内の各点piと、その近隣点の1次結合との差
【0020】
【数1】

【0021】
を計算し、N(i)={j|{i,j}∈E}は、隣接辺、wijは、点pjの重み、δiは、グラフG内の点piのラプラス座標である。LGは、グラフGのラプラス演算子と呼ばれる。重みwijは、正数であり、Σj∈N(i)wij=1を満足する。最も単純な重み付けは、一様な重み付け、wij=1/|N(i)|である。(変形モジュール108は、以下の「ボリュメトリックグラフの例示的な変形」と題するセクションで説明されるように、より複雑な重み付け方式を実施する)。
【0022】
変形を制御するため、N個のメッシュ頂点の部分集合である制御曲線(すなわち、指定された点120)qi、i∈{1,...,m}として、入力変形位置がある。変形モジュール108は、グラフ内の各点iに関する新しい(変形された)ラプラス座標δ’iを計算するために、これらの指定された制御曲線を利用する。メッシュ頂点p’iの変形された位置(例えば「その他のデータ」122を参照)は、その後、次の2次最小化問題を解くことによって得られる。
【0023】
【数2】

【0024】
式(2)の第1項は、局所的な細部の保存を表し、第2項は、ユーザによって直接指定された頂点120の位置を制約する。パラメータαは、これら2つの目的のバランスを取る。
【0025】
変形されたラプラス座標は、次のように計算され、
δ’i=Tiδi
ここで、δiは、式(1)で定義される静止姿勢のラプラス座標であり、Tiは、そのラプラス座標を変形姿勢に変換する。この実施では、異方性スケーリング(anisotropic scaling)を含む汎用変換Tiは、強力であり過ぎ、局所的な細部に「適合しない(fit away)」ことがあり得る。これに対処するため、変形モジュール108は、Tiを回転と同方性スケールに制限する。
【0026】
頂点の部分集合qiの変形された位置を与えると、よく知られた方法が、Tiを得るために使用されることができる。この実施では、変形モジュール108は、以下の「ボリュメトリックグラフの例示的な変形」と題するセクションで説明される方法を利用する。この方法は、局所変換を指定された変形領域からメッシュ全体に伝播させ(大規模メッシュ変形112を引き起こし)、変形部位から離れたその物自体に向かって変換を混合する。
【0027】
グラフが三角メッシュである場合、グラフラプラシアンは、メッシュラプラシアンと一致する(この例では、メッシュまたは表面ラプラシアンが、オリジナルメッシュのラプラシアンである)。表面詳細を符号化するためにメッシュラプラシアンを使用すると、詳細な幾何学的構造は、広い範囲の編集操作にわたって保存される。しかし、大規模変形の場合、そのような方法は、不自然な体積変化(例えば、図3の画像(a)を参照)および/または局所自己交差(例えば、図4の画像(a)を参照)を呈する。
【0028】
図3は、例示的な大規模な捻り変形結果を示している。より具体的には、図3の画像(a)は、ラプラシアン表面(Laplaciansurface)に基づいた例示的な大規模な捻り変形を示す。図3の画像(b)は、ポアソンメッシュに基づいた例示的な大規模な捻り変形を示す。画像(c)は、変形モジュール108のVGL操作に基づいた例示的な大規模な捻り変形を示す。
【0029】
図4は、例示的な大規模な曲げ変形結果を示している。より具体的には、図4の画像(a)は、ラプラシアン表面に基づいた例示的な大規模な曲げ変形を示す。図4の画像(b)は、ポアソンメッシュに基づいた例示的な大規模な曲げ変形を示す。画像(c)は、変形モジュール108のVGL操作に基づいた例示的な大規模な曲げ変形を示す。
【0030】
オリジナルメッシュ116が不自然な体積変化および/または局所自己交差を減少させるように、変形モジュール108が、ボリュメトリックグラフ118を構成することによってどのように体積制約を課すかについて今から説明する。
【0031】
〈ボリュメトリックグラフの例示的な構成〉
変形モジュール108は、大きな体積変化および局所自己交差を回避するが、大域的な自己交差の除去を保証しない。この実施では、大域的な自己交差は、ユーザによって対処される。変形モジュール108は、2つのタイプの中間グラフである内側グラフ(insidegraph)および外側グラフ(outside graph)を利用して、ボリュメトリックグラフ118を構築する。内側グラフGinは、メッシュ116の内部体積を満たし、大きな体積変化を防止し、一方、外側グラフGoutは、局所自己交差を防止する。
【0032】
図5は、例示的なボリュメトリックグラフ118を示している。より具体的には、ボリュメトリックグラフ502は、例示的なGinを示し、ボリュメトリックグラフ504は、例示的なGoutを示す。
【0033】
inを得るための1つの方法は、表面メッシュ116の内部体積を四面体分割(tetrahedralize)することである。しかし、四面体メッシュ生成は一般に、実施するのが相当に困難であり、高い計算コストがかかるうえ、言うまでもなく、そのようなメッシュ生成は一般に、堅実な方式で実施するのが困難である(例えば、モデルが複雑だと、一般に不恰好な四面体を生成する)。表面メッシュ116の内部体積を四面体分割する代わりに、変形モジュール108は、制限のより少ないボリュメトリックグラフを生成するために、相当に単純化された操作を実施する。
【0034】
図6は、ボリュメトリックグラフ118を構成するための例示的なステップを示している。より具体的には、図6に示されたこの実施では、変形モジュール108は、次のようにしてボリュメトリックグラフ118を生成する。
【0035】
・各頂点をその法線の反対方向にある距離だけずらすことによって、メッシュMの内側シェル(innershell)Minを構成する。これは、例えば、図6の画像(a)に示されている。
【0036】
・MinおよびMを体心立法(BCC:body−centered cubic)格子に埋め込む。外側の格子ノードを取り除く。これらの例示的な操作の結果は、例えば、図6の画像(b)に示されている。
【0037】
・M、Min、および格子ノードの間の辺連結を構築する。この操作の結果は、例えば、図6の画像(c)に示されている。
【0038】
・辺消去(edge collapse)を使用してグラフを簡素化し、グラフを平滑化する。この操作の結果は、例えば、図6の画像(d)に示されている。
【0039】
この実施では、内側シェルMinの目的は、格子サンプリング操作によって見落とされることがある(例えば、猫の尻尾のような)細い特徴内にさえも、内部点が挿入されるよう保証することである。内側シェルを計算するため、変形モジュール108は、簡略化エンベロープ(simplificationenvelope)に基づいた操作を利用する。各反復において、変形モジュール108は、各頂点をその法線ベクトルとは反対に平均辺長の分数だけ動かすことを試みる。頂点を動かした後、変形モジュール108は、その隣接三角形を互いの交差およびモデルの残りとの交差についてテストする。交差が見出されない場合、これらの操作の結果が受け入れられる。それ以外の場合、操作の結果は拒絶され、頂点は元に戻される。すべての頂点が所望の距離だけ動かされたとき、またはもはや動かされ得ないとき、反復は終了する。
【0040】
図7は、ボリュメトリックグラフにおける辺連結の例示的なタイプを示している。より具体的には、図7の画像(a)は、例示的な境界辺を示している。図7の画像(b)は、例示的な内部辺を示している。これらの例に照らして、BCC格子は、直交グリッドのすべての点とセルの中心とにノードを含むことが分かる(例えば、画像(b))。ノード位置は、2つのインタレースグリッド(interlacedgrid)に属すると見なされ得る。この格子は、自然界では所望の剛性を有する結晶構造として生じる。この実施では、平均辺長を等しくするために、大きな間隔が設定される。
【0041】
3つのタイプの辺連結が、初期ボリュメトリックグラフ118を形成する。第1に、変形モジュール108は、M内の各頂点をMin内の対応する頂点に連結する(例えば、図6の画像(a))。各プリズム面のより短い対角線も同様に含められる。第2に、変形モジュール108は、BCC格子の各内部ノードを他のインタレースグリッド内の8つの最近隣点と連結する(例えば、図7の画像(b))。第3に、変形モジュール108は、MinとBCC格子のノードを連結する。Minと交差し、Min内に少なくとも1つのノードを有する、BCC格子の各辺について、変形モジュール108は、Min内のBCC格子ノードを、この交差に最も近いMin内の点に連結する。
【0042】
変形モジュール108は、グラフをより一様にするために、初期グラフ上で簡略化および平滑化操作を実施する。この目的で、変形モジュール108は、グラフ118の辺を長さの昇順で評価する。辺の長さが閾値(Mの平均辺長の半分)より小さい場合、それは辺の中点に縮小する。簡略化の後、数回の平滑化反復(発明者らの実施では3回)が実行され、各点がその近隣点の平均に動かされる。この実施では、簡略化も平滑化も、Mの頂点には適用されない。
【0043】
外側グラフGoutを構成するため(ボリュメトリックグラフ118の生成操作の一部)、変形モジュール108は、このボリュメトリックグラフを構成するために先に説明された、法線方向にずらす反復的方法(iterativenormal−offset method)を利用するが、Moutを形成するには、表面の内側ではなく外側に向かう。変形モジュール108は、MとMinの間と同様に、MとMoutの間の連結を構築する。
【0044】
この実施では、GinおよびGoutは共に、ユーザによって直接見られることのない(それぞれ「その他のデータ」122で表される)中間データ構造であり、ユーザ対話の後で廃棄されることに留意されたい。これらのデータ構造は、メッシュ表面の変形を制約するためにのみ役立つ。MinおよびMoutとそれら自体との交差ならびにMとの交差が、特に曲率の高い領域を含むメッシュ上で生じることがあり得るが、そのような交差は、対話システム100において困難を引き起こさない。
【0045】
ボリュメトリックグラフの例示的な変形
元の表面の詳細を保存することと体積を制約することの間のバランスを取るため、変形モジュール108は、式(2)のエネルギー関数の次の汎用形式への変更を利用し、
【0046】
【数3】

【0047】
ここで、グラフG内の最初のn個の点は、メッシュMに属する。LMは、離散メッシュラプラス演算子である。G’は、Mに属する辺を取り除くことによって形成される、Gのサブグラフである。オリジナルメッシュM上の点について、ε’i(1≦i≦n)は、変形された座標系におけるメッシュラプラス座標である。ボリュメトリックグラフG’内の点について、δ’i(1≦i≦N)は、変形された座標系におけるグラフラプラス座標である。したがって、エネルギーは、表面詳細の保存と、ユーザ選択の変形位置(指定された点120)の強制と、ボリュメトリックディテール/剛性の保存とに対応する、3つの項に分解される。
【0048】
βは、表面詳細とボリュメトリックディテールの間のバランスを取る。変形モジュール108は、
【0049】
【数4】

【0050】
となる
【0051】
【数5】

【0052】
を指定する。係数n/Nは、重みがボリュメトリックグラフの格子密度に対して鈍感となるように、重みを正規化する。この正規化によれば、
【0053】
【数6】

【0054】
は、体積を保存し、自己交差を防止する。この実施では、0.1<α<1であり、αは正規化されない。これは、制約強度は、メッシュ点の総数に対する制約点の数に依存するのが望ましいからである。この実施では、αは、デフォルトで0.2に設定される。
【0055】
一代替実施形態では、式(3)の体積制約は、2次平滑エネルギー(quadricsmoothness energy)と組み合わされる(主眼が幾何学的に相当細かいモデルを変形することである場合、これは行われない)。
【0056】
〈局所変換の例示的な伝播〉
静止座標系におけるラプラス座標εiおよびδiを、変形された座標系における新しいラプラス座標ε’iおよびδ’iに移す、局所変換Tiを得るために、変形モジュール108は、WIRE変形操作を実施する。これらの操作では、変形モジュール108は、曲線120を形成するメッシュ頂点の系列を選択する。その後、これらの選択されたメッシュ頂点は、新しい状態に変形される。この曲線は、変形を制御し、qiを定義する(例えば、図8の画像(a)を参照)。
【0057】
図8は、例示的な曲線ベースの変形を示している。より具体的には、図8の画像(a)は、例示的なオリジナルメッシュ116と、例示的な制御曲線802とを示す。図8の画像(b)は、0(例えば、フィールド804−より暗いシェーディング)および1(例えば、フィールド806−より明るいシェーディング)の例示的な強度フィールドを示す。図8の画像(c)は、図1の変形モジュール108の曲線ベースの変形操作から生成された、例示的な変形されたメッシュを示す。
【0058】
制御曲線(例えば、制御曲線802)は、曲線上の頂点が変形される範囲のみを指定する。伝播アルゴリズムを利用する変形モジュール108は、最初に近隣グラフ点(制御点の1リングメッシュ近隣点)がどこまで変形するかを決定し、次に曲線点における局所変換を推測し、最後にメッシュ全体にわたって変換を伝播させる(例えば、変形されたメッシュ112を生じさせる)。これらの操作は、qiのメッシュ近隣点を発見し、WIREを使用してそれらの変形された位置を得ることによって、開始する。より具体的には、C(u)およびC’(u)をそれぞれ、弧長u∈[0,1]によってパラメータ化された、元の制御曲線および変形された制御曲線とする。近隣点p∈R3を与え、up∈[0,1]を、pと曲線C(u)の間の距離を最小化するパラメータ値とする。変形は、CがC’に写像され、近くの点も同様に動いて
p’=C’(up)+R(up)(s(up)(p−C(up)))
となるように、pをp’に写像する。この式において、R(u)は、C上の接ベクトルt(u)を取り、t(u)×t’(u)の周りで回転させることによって、それをC’上の対応する接ベクトルt’(u)に写像する、3×3回転行列である。s(u)は、スケール係数である。それは、各曲線頂点において、C’内のその隣接辺の長さの和をC内のこの長さの和で割った比として計算され、その後、線形補間によってuにわたって連続的に定義される。
【0059】
制御曲線上の各点およびその1リング近隣点の変形された座標が、これで決定される。この時点で、変形モジュール108の操作は、制御曲線上の各点におけるTiを計算することに進む。変形モジュール108は、法線と、この法線による1つの辺ベクトルの直投影(perpendicularprojection)としての接ベクトルとを計算することによって、回転を定義する。法線は、メッシュ点iの周りの面法線(facenormal)の面面積によって重み付けされた線形結合として計算される。回転は、四元数(quaternion)として表され、これは、回転角が180度より小さいことを意味する。Tiのスケール係数は、s(up)によって与えられる。
【0060】
その後、変換は、変形箇所から離れるにつれて減衰する変形強度フィールドf(p)(例えば、図8の画像(b)を参照)を介して、制御曲線からすべてのグラフ点pに伝播させられる。一定、線形、かつガウス形の強度フィールドが、選択されることができ、これは、pから曲線までの最短辺経路(離散測地距離(discretegeodesic distance))に基づいている。
【0061】
一実施では、変形モジュール108は、pに最も近い制御曲線上の点qpからの回転およびスケーリングをpに割り当てることによって、簡単な伝播方式を実施する。より滑らかな結果は、最も近い頂点の代わりに制御曲線上のすべての頂点にわたって重み付け平均を計算することによって得られる。距離の逆数
【0062】
【数7】

【0063】
または
【0064】
【数8】

【0065】
などのガウス関数によって重み付けを行う。そのようなガウス関数は、システム100において良好に機能する。
【0066】
【数9】

【0067】
は、pからqまでの離散測地距離を表す。項σは、ガウス形の幅を制御する。複数の曲線間の重み付けも、四元数およびスケールが複数の曲線にわたって累積されることを除いて同様である。
【0068】
点pにおける最終変換行列は、
【0069】
【数10】

【0070】
であり、ここで、
【0071】
【数11】

【0072】
は、pの重み付け平均変換である。この公式は、強度フィールドを使用して、その変換を恒等変換と単純に混合する。したがって、ラプラス座標は、変形の影響領域の外では、それらの元の(静止)状態に接近する。
【0073】
従来の伝播方式とは対照的に、変形モジュール108によって実施される伝播方式は、各グラフ頂点の変換を計算し、その変換を頂点のラプラス座標に適用する。加えて、いくつかの従来の技法は一般に、各三角形の変換を計算し、それを三角形の頂点に適用する。しかし、各三角形を独立に変換することは、メッシュ内の近隣三角形からそれを切断する。ポアソン式は、各三角形の向きおよびスケールを最小2乗の意味で保存するように、三角形を一緒につなぎ戻す。これの体積領域への拡張は、四面体メッシュを必要とする。
【0074】
変形箇所において変換を計算し、その変換を変形箇所から遠く伝播させる代わりに、従来のメッシュ変形技法は、点の局所近傍を静止状態から変形された状態に移す未知の最小2乗最適変換を定義することによって、追加の自由度を導入する。定義された変換は一般に、局所詳細の喪失を防止するために、回転およびスケーリングに制限される。2次のままであり、したがって、容易に解くことができるシステムの場合、回転は、小角近似(small−angleapproximation)を使用して定義される。この従来の技法は、大規模な変形に対しては貧弱な近似を提供し、その後、より複雑な反復的改善を必要とする。
【0075】
〈例示的な重み付け方式〉
メッシュラプラシアンLMについて、変形モジュール108は、余接重み(cotangent weight)
ij∝(cotαij+cotβij
を用いる重み付け方式を利用し、ここで、αij=∠(pi,pj-1,pj)、βij=∠(pi,pj+1,pj)である。
【0076】
グラフラプラシアンLG'について、変形モジュール108は、2次プログラミング問題を解くことによって重みを計算する。各グラフ頂点iについて独立に、変形モジュール108は、重みwijを得るために、次の問題を解く(明瞭にするため、下付き文字iは削除されている)。
【0077】
【数12】

【0078】
上記の式を参照すると、第1のエネルギー項は、最小の大きさのラプラス座標を生成する重みを得ようとする。第2の項は、スケール依存のアンブレラ作用素(umbrellaoperator)に基づいており、この作用素は、辺長に反比例する重みを選ぶ(prefer)。パラメータλは、これら2つの目的のバランスを取り、一方、パラメータξは、小さな重みを防止する。この実施では、λおよびξは共に、0.01に等しく設定される。
【0079】
図9は、一様(a)、辺長の逆数(b)、および熱核(heat kernel)(平方距離の減衰指数関数)(c)を含む、重み付け方式の例示的な比較を示している。これらの例示的な比較に示されるように、画像(d)に示されるシステム100の変形モジュールによって実施される重み付け方式は、その他の重み付け方式からの結果よりも滑らかかつ一様である。
【0080】
〈例示的な2次エネルギー最小化〉
新しいラプラス座標を与えると、変形モジュール108は、次の式を解くことによって、式(3)の2次エネルギーを最小化する。
M(p’i)+βLG'(p’i)=ε’i+βδ’i,i∈1,...,n
βLG'(p’i)=βδ’i,i∈n+1,...,N
αp’i=αq’i,i∈1,...,m
これは、疎線形系、Ax=bである。行列Aは、変形前のグラフにのみ依存するが、bは、現在のラプラス座標および位置制約にも依存する。したがって、Aは、変形モジュール108が、メッシュまたはグラフと制御点とを取り換えない限り固定されるが、bは、対話的変形の間常に変化する。したがって、変形モジュール108は、LU分解(LUdecomposition)を使用して、A-1を事前計算し、A-1bを得るために、動的に後退代入(back substitution)ステップを実行する。
【0081】
〈例示的な多重解像度操作〉
多重解像度(multi−resolution)編集が、特に超大規模モデルについて、微分方法を加速するために使用されることができる。例えば、図2のスタンフォードアルマジロ(Stanfordarmadillo)モデルは、170Kの頂点を含む。変形モジュール108は、そのモデルのボリュメトリックグラフを生成するとき、線形系において解かれるべき頂点としての変数をほぼ6倍多く生成する。そのような大規模システムを解くことは、対話的システムにとって、計算的にコストが高い。一実施では、計算コストを減少させるため、変形モジュール108は、より少数の頂点(例えば、アルマジロの場合は15K)を有する簡略化されたメッシュを生成する。その後、ボリュメトリックグラフ118が、簡略化されたメッシュから生成される。メッシュの簡略化表現を変形した後、変形モジュール108は、変形された高解像度メッシュを得るために、詳細を追加し戻す。
【0082】
〈2−D曲線からの例示的な変形〉
システム100の対話の基本モードは、次のようである。ユーザは最初に、最短辺(ダイクストラ(Dijkstra))経路によって連結されるメッシュ頂点の系列を選択することによって、メッシュ表面116上で制御曲線120を指定する。この3−D曲線は、その後に編集され得る2−D曲線を得るために、1つまたは複数の平面(射影平面)に射影される。編集後、変更された2−D曲線は、変形された制御曲線を得るために、3−Dに射影し戻され、その制御曲線が、先のセクションの変形の基礎を形成する。
【0083】
〈例示的な曲線射影〉
元の制御曲線を与えると、変形モジュール108は、元の制御曲線の平均法線および主ベクトルに基づいて、自動的に射影平面を選択する。変形モジュール108は、曲線の頂点にわたる主成分分析(PCA:principalcomponent analysis)からの最大固有値に対応する2つの固有ベクトルとして主ベクトルを計算する。大部分の場合、平均法線と第1の主ベクトルの外積が、満足のゆく平面を提供する。平均法線ベクトルの長さが、閉平面曲線(closedplanar curve)用として小さい場合、2つの主ベクトルが代わりに利用される。この実施では、ユーザは、射影を直接選択することも、またはシステム100によって選択された射影を変更することもできる。
【0084】
〈例示的な曲線編集〉
射影2−D曲線は、編集を複雑にするオリジナルメッシュ116から、幾何学的詳細を継承する。多重解像度曲線編集は、Bスプライン曲線用の1つの解法を提供する。変形モジュール108は、ラプラス座標に基づいて離散曲線用の編集操作を実施する。曲線頂点のラプラス座標は、頂点の位置と頂点の2つの隣接点の平均位置との間の差であり、終端頂点の場合は単一隣接点との間の差である。
【0085】
編集される離散2−D曲線が、Cで示される。3次Bスプライン曲線Cbが、Cの低周波数を表す、Cに対する最小2乗適合(least−squaresfit)として、最初に計算される。その後、Cdで示されるCbの離散バージョンが、比例弧長写像(proportional arc−length mapping)を使用して、Cの各頂点をCbに写像することによって計算される。単純なBスプライン曲線Cbが、これで都合よく編集されることができる。編集後、変形モジュール108は、変更されたBスプライン曲線C’bと、新しい離散バージョンC’dとを得る。これらの曲線は、ユーザの所望の変形を示すが、元の曲線の詳細を欠いている。元の曲線の詳細を回復するため、変形モジュール108は、Cの各頂点において、その位置をCdからC’dに写像する一意な回転およびスケーリングを識別する。この変換をC上のラプラス座標に適用することと、単純な曲線グラフにわたって(第2の点制約項を持たない)式(2)を解くことが、新しい曲線C’の生成をもたらす。この新しい曲線は、Cの詳細を保存するが、ユーザの粗いスケール変更に従う。基本的に、これは、メッシュを変形するための局所変換「伝播」の自明なバージョンであるが、曲線の場合は、それは、点毎に独立に定義されることができ、伝播される必要がない。
【0086】
このアルゴリズムは、曲線類似(curve analogy)として提出され、すなわち、1対の元の曲線CsおよびC’sと、目標曲線Cを与えると、CとC’の間の関係がCsとC’sの間の関係に類似するように、新しい曲線C’を生成する。従来のメッシュ変形操作は、頂点を直接変換することができるが、変形モジュール108は、頂点の対応する差分座標を、曲線全体にわたってより一様に分散された誤差に変換する。
【0087】
最初に、Cbは、曲線の端点に2つのノット(knot)を有する。ユーザは、より詳細なレベルで編集を実行するために、ノットを追加することができる。システム100は、2つの編集モードをサポートし、一方は、元の曲線Cbに対する粗いスケールの適合を操作し、他方は、まったく新しい曲線をスケッチする。後者の場合、スケッチされた曲線と制御曲線の間の対応は、デフォルトでは、弧長によって達成される。この実施では、ユーザが、2つの曲線の間の一連の対応点を指定することもできる。
【0088】
〈2−Dアニメからの例示的な変形再標的化〉
一実施では、システム100が2−Dアニメの変形を3−Dメッシュ112に再標的化(re−target)することは、システム100の2−Dスケッチベースの変形の例示的な直接の応用である。この目的で、ユーザは、メッシュ116上で1つまたは複数の3−D制御曲線120を、それらの射影平面と共に指定し、各曲線について、メッシュ116の変形を推進するのに使用されるアニメ画像系列内の一連の2−D曲線120を指定する。
【0089】
図9は、2−D画像からの変形再標的化のための例示的な3−Dおよび2−D制御曲線指定を示している。より具体的には、制御曲線の組902(すなわち、902−1aから902−3b)は、3−Dメッシュ上で指定され、制御曲線の組904(すなわち、904−1aから904−3b)は、2−D画像上で指定される。(例示的な説明の目的で、2−Dおよび3−D制御曲線は、図1の指定された点120として示されている)。
【0090】
iが3−D制御曲線902の射影であり、アニメ系列内のそれに対応する曲線904がCi,j、j∈{1,...,k}であると仮定する。インデックスiは、腕および脚などのモデルの異なる部分を動かす、異なる制御曲線に対応する。インデックスjは、フレームインデックスであり、同じ制御曲線は、各フレーム毎に対応するアニメ曲線を有する。変形モジュール108は、Ciを連続するCi,jに写像する変形系列を自動的に導出する。これらの変形操作に関して、あらゆるフレームで最初から変形を生成する必要はない。一実施では、ユーザは、すべてのフレーム系列について制御曲線を指定する代わりに、僅か数個の主要フレームを選択し、選択された主要フレームについてのみアニメ制御曲線を指定してもよい。変形モジュール108は、主要フレーム間を補間するために、差分座標に基づいて自動補間操作を実施する。例えば、同じ連結度を有する2つのメッシュMおよびM’が存在すると仮定する。これら2つのメッシュは、2つの主要フレームにおける変形されたメッシュ112を表す。
【0091】
変形モジュール108は、2つのメッシュ上の各頂点のラプラス座標を計算することによって開始する。変形モジュール108は、各頂点pの局所近傍における回転およびスケーリングを計算し、ラプラス座標をMにおける位置からM’に移す(例えば、「ボリュメトリックグラフの例示的な変形」と題する上記のセクションを参照)。変換をTpによって示す。恒等変換からTpへの各変換を経時的に補間することによって、MからM’へと滑らかに変化するラプラス座標を得る。この時点で、変形モジュール108は、MからM’へのメッシュの系列を提供するために、式(2)を解く。
【0092】
2−Dアニメ曲線は、変形された曲線がどのように単一平面に射影されるかを指定するに過ぎず、平面に垂直な形状は指定されずに残される。この点に鑑みて、システム100は、ユーザが、必要であれば、これらの追加の自由度を指定するために、その他の射影平面を選択することを可能にする。
【0093】
図10は、システム100のボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形と比較された、従来の大規模メッシュ変形技法のさらなる例示的な比較を示している。より具体的には、上の行は、左から右に、オリジナルメッシュの画像と、変形を編集するポアソンメッシュの結果を示す例示的な画像と、ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形の例示的な結果を示す画像とをそれぞれ示している。第2または下の行は、上の行の直上の画像に関連付けられた変形領域の拡大部分を示している。すなわち、列(a)の画像は、オリジナルメッシュ116と関連付けられ、列(b)の画像は、ポアソンメッシュ編集を使用して変形されたオリジナルメッシュの結果に対応し、列(c)の画像は、システム100のボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形を使用して変形されたオリジナルメッシュの結果に対応する。
【0094】
〈例示的な手順〉
図11は、ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形のための例示的な手順1100を示している。解説および例示的な説明の目的で、この手順の動作は、図1の構成要素に関して説明される。構成要素の参照番号の左端の数字は、その構成要素が最初に出現した特定の図面を識別する。加えて、図11は、特定の順序で手順1100の動作を提示するが、手順の任意の特定のブロックに関連付けられた動作は、異なる順序で実施されてもよい。例えば、ブロック1104の動作は、ブロック1102の動作の前に実施されてもよいなどである。
【0095】
ブロック1102において、変形モジュール108は、オリジナルメッシュ116からボリュメトリックグラフ118を構成する。一実施では、変形モジュール108は、中間的な内側および外側グラフデータ構造を使用して、ボリュメトリックグラフを構成する。内側グラフは、オリジナルメッシュ116の内側に存在するように構成された単純格子である。内側グラフは、オリジナルメッシュの点と、導出された点とを含み、大規模メッシュ変形操作中の大きな体積変化を防止するために、変形モジュール108によって使用される。一実施では、変形モジュール108は、オリジナルメッシュの各頂点をその法線とは反対の方向にずらす簡略化エンベロープを使用して、内側グラフを構成する。一実施では、変形モジュール108は、オリジナルメッシュの各頂点をオリジナルメッシュの表面の外側に向かって反復的にずらすことによって、局所自己交差を防止するように、外側グラフを構成する。変形モジュール108は、ボリュメトリックグラフを生成するために、内側および外側グラフと、変形の対象とされるオリジナルメッシュ116との間の連結を構築する。
【0096】
ブロック1104において、変形モジュール108は、ユーザが、1組の3−D制御曲線120を指定することを可能にする。各3−D制御曲線は、オリジナルメッシュ116上の1組の点を識別する。一実施では、変形モジュール108は、表示デバイス上にユーザインタフェース(UI)を提示する。オリジナルメッシュ116の3−D表示が、UIによってユーザに提示される。マウスまたはその他のタイプのポインティングデバイスを使用して、ユーザは、3−D制御曲線120を定義するオリジナルメッシュ116上の1組の点を選択する。
【0097】
ブロック1106において、変形モジュール108は、ユーザが、変形された制御曲線124を生成するために、3−D制御曲線120をそれぞれの2−D制御曲線120として編集することを可能にする。変形された制御曲線124は、オリジナルメッシュ116がどのように変形されるかを示す。この実施では、ユーザは、次のようにして、オリジナルメッシュ116がどのように変形されるかを指定する。変形モジュール108は、指定された3−D制御曲線120をUI内の射影平面上に2−D制御曲線120として射影する。ユーザは、提供されたUIを使用して、射影された2−D制御曲線120を操作することによって、オリジナルメッシュ116を変形する。これは、3−D制御曲線120内の指定された点が、定義された変形の結果として、どこに動かされるかを示す。例えば、一実施では、ユーザは、マウスおよび/またはグラフィックスペンなどのポインティングデバイスを用いて2−D制御曲線を選択することによって、射影された2−D制御曲線を操作し、2−D制御曲線120を変更する。例えば、ユーザは、目標曲線(すなわち、変形)を表す新しい曲線を引き、UIなどによって2−D曲線上に提示されるBスプライン制御点を使用して、2−D曲線を直接編集することもできる。
【0098】
ブロック1108において、変形モジュール108は、グラフ内の各点とその近隣点の平均との間の差としてボリュメトリックディテールを符号化するように、ボリュメトリックグラフ118のラプラシアン(すなわち、ボリュメトリックグラフ・ラプラシアン114)を生成する。これらのボリュメトリックディテールは、体積の不自然な変化を防止する体積制約を課すために、変形操作中に利用される。これらのボリュメトリックディテールは、オリジナルメッシュ116の外側の近距離にある点も含み、それらは、体積の局所自己交差を実質的に防止するために、変形操作中に使用される。
【0099】
ブロック1110において、変形モジュール108は、変形された制御曲線124に基づいて、オリジナルメッシュ116を変形する。このようにして、システム100は、ユーザが大規模メッシュ変形を生成することを可能にする、曲線ベースの変形システムを提供する。
【0100】
〈例示的な動作環境〉
図12は、ボリュメトリックグラフラ・プラシアンを使用する大規模メッシュ変形が完全または部分的に実施され得る、適切なコンピューティング環境の一例を示している。例示的なコンピューティング環境1200は、図1の例示的なシステムおよび図11の例示的な動作にとって適切なコンピューティング環境の一例に過ぎず、本明細書で説明されたシステムおよび方法の使用範囲または機能に関するどのような限定も示唆しようとするものではない。コンピューティング環境1200は、コンピューティング環境1200に示された構成要素のいずれか1つまたは組み合わせに関して、どのような依存性または必要性も有さないと解釈されるべきである。
【0101】
本明細書で説明された方法およびシステムは、多数のその他の汎用または専用コンピューティングシステム、環境、または構成と共に動作可能である。使用に適し得るよく知られたコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースシステム、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、および上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを、これらに限定することなく含む。フレームワークのコンパクト版またはサブセット版が、ハンドヘルドコンピュータまたはその他のコンピューティングデバイスなど、リソースが限られたクライアントで実施されてもよい。本発明は、必ずしも必要ではないが、通信ネットワークを介して結合されるリモート処理デバイスによってタスクが実行される、分散コンピューティング環境で実施されることができる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモート両方のメモリ記憶デバイスに配置されてよい。
【0102】
図12を参照すると、ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形を提供する例示的なシステムは、例えば図1のシステム100を実施する、コンピュータ1210の形態の汎用コンピューティングデバイスを含む。コンピュータ1210の構成要素は、処理ユニット1220、システムメモリ1230、およびシステムメモリを含む様々なシステム構成要素を処理ユニット1220に結合するシステムバス1221を、これらに限定することなく含むことができる。システムバス1221は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含む、複数のタイプのバス構造のいずれかとすることができる。限定することなく例を挙げると、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張業界標準アーキテクチャ(EISA)バス、ビデオ電子規格協会(VESA)ローカルバス、およびメザニンバスとしても知られる周辺コンポーネント相互接続(PCI)バスを含むことができる。
【0103】
コンピュータ1210は一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、揮発性および不揮発性媒体、着脱可能および固定式媒体を含む、コンピュータ1210によってアクセス可能な任意の利用可能な媒体とすることができる。限定することなく例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技法で実施された、揮発性および不揮発性、着脱可能および固定式媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくはその他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくはその他の磁気記憶デバイス、または所望の情報を記憶するのに使用でき、コンピュータ1210によってアクセス可能なその他の任意の媒体を、これらに限定することなく含む。
【0104】
通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他のトランスポート機構などの変調データ信号中に具現し、任意の情報伝達媒体を含む。「変調データ信号」という用語は、信号中に情報を符号化するような仕方で設定または変更された1つまたは複数の特徴を有する信号を意味する。限定することなく例を挙げると、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響、RF、赤外線、およびその他の無線媒体などの無線媒体を含む。上記の任意のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0105】
システムメモリ1230は、読み取り専用メモリ(ROM)1231およびランダムアクセスメモリ(RAM)1232などの、揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中などにコンピュータ1210内の要素間で情報を伝送する助けをする基本ルーチンを含む基本入出力システム1233(BIOS)は一般に、ROM1231に記憶される。RAM1232は一般に、処理ユニット1210から直ちにアクセス可能な、かつ/または処理ユニット1210が現在それに基づいて動作している、データおよび/またはプログラムモジュールを含む。限定することなく例を挙げると、図12は、オペレーティングシステム1234、アプリケーションプログラム1235、その他のプログラムモジュール1236、およびプログラムデータ1237を示している。
【0106】
コンピュータ1210は、その他の着脱可能/固定式、揮発性/不揮発性コンピュータ記憶媒体も含むことができる。例としてのみ挙げると、図12は、固定式の不揮発性磁気媒体からの読み取りまたはそうした媒体への書き込みを行うハードディスクドライブ1241、着脱可能な不揮発性磁気ディスク1252からの読み取りまたはそうしたディスクへの書き込みを行う磁気ディスクドライブ1251、およびCD−ROMまたはその他の光媒体などの着脱可能な不揮発性光ディスク1256からの読み取りまたはそうしたディスクへの書き込みを行う光ディスクドライブ1255を示している。例示的な動作環境で使用され得るその他の着脱可能/固定式、揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、およびソリッドステートROMなどを、これらに限定することなく含む。ハードディスクドライブ1241は一般に、インタフェース1240などの固定式メモリインタフェースを介してシステムバス1221に接続され、磁気ディスクドライブ1251および光ディスクドライブ1255は一般に、インタフェース1250などの着脱可能メモリインタフェースによってシステムバス1221に接続される。
【0107】
上で説明された図12に示されるドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を、コンピュータ1210に提供する。図12では、例えば、ハードディスクドライブ1241は、オペレーティングシステム1244、アプリケーションプログラム1245、その他のプログラムモジュール1246、およびプログラムデータ1247を記憶するとして示されている。これらの構成要素は、オペレーティングシステム1234、アプリケーションプログラム1235、その他のプログラムモジュール1236、およびプログラムデータ1237と同じであることも、または異なることもできることに留意されたい。オペレーティングシステム1244、アプリケーションプログラム1245、その他のプログラムモジュール1246、およびプログラムデータ1247は、それらが少なくとも異なるコピーであることを示すために、ここでは異なる番号を与えられている。
【0108】
ユーザは、キーボード1262、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス1261などの入力デバイスを介して、コンピュータ1210にコマンドおよび情報を入力することができる。その他の入力デバイス(図示されず)は、マイクロフォン、ジョイスティック、グラフィックスペンおよびパッド、衛星放送受信アンテナ、またはスキャナなどを含むことができる。上記およびその他の入力デバイスはしばしば、システムバス1221に結合されるユーザ入力インタフェース1260を介して処理ユニット1220に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などのその他のインタフェースおよびバス構造によって接続されてもよい。
【0109】
モニタ1291またはその他のタイプの表示デバイスも、ビデオインタフェース1290などのインタフェースを介して、システムバス1221に接続される。モニタに加えて、コンピュータは、プリンタ1296およびオーディオデバイス1297などのその他の周辺出力デバイスも含むことができ、それらは、出力周辺インタフェース1295を介して接続されることができる。
【0110】
コンピュータ1210は、リモートコンピュータ1280などの1つまたは複数のリモートコンピュータへの論理コネクションを使用して、ネットワーク環境で動作する。リモートコンピュータ1280は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードであってよく、その具体的な実装に応じて、コンピュータ1210に関連して上で説明された要素の多くまたは全部を含むことができるが、図12には、メモリ記憶デバイス1281のみが示されている。図12に示された論理コネクションは、ローカルエリアネットワーク(LAN)1271およびワイドエリアネットワーク(WAN)1273を含むが、その他のネットワークを含んでもよい。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的である。
【0111】
LANネットワーク環境で使用される場合、コンピュータ1210は、ネットワークインタフェースまたはアダプタ1270を介して、LAN1271に接続される。WANネットワーク環境で使用される場合、コンピュータ1210は一般に、インターネットなどのWAN1273を介して通信を確立するためのモデム1272またはその他の手段を含む。モデム1272は、内蔵でもまたは外付けでもよく、ユーザ入力インタフェース1260またはその他の適切な機構を介して、システムバス1221に接続されることができる。ネットワーク環境では、コンピュータ1210に関連して示されたプログラムモジュールまたはその部分は、リモートメモリ記憶デバイスに記憶されることができる。限定することなく例を挙げると、図12は、メモリデバイス1281上に存在するとして、リモートアプリケーションプログラム1285を示している。示されたネットワークコネクションは、例示的なものであり、コンピュータ間の通信リンクを確立するその他の手段が使用されてもよい。
【0112】
〈結論〉
従来の差分領域メッシュ変形技法は、メッシュが変形される際に、表面詳細を保存するが、そのような既存の技法は一般に、変形が大規模である場合、好ましくないピンチング(pinching)および交差アーチファクトを生み出す。図1のシステム100は、ボリュメトリックグラフ・ラプラシアンによって表されるボリュメトリックディテールを保存することによって、これらの問題に対処する。この解決策は、複雑な物体をソリッドメッシュする複雑さを回避する。ボリュメトリックグラフ・ラプラシアンを使用する大規模メッシュ変形のためのシステムおよび方法は、構造的特徴および/または方法的操作および動作に特有の言葉で説明されたが、添付の特許請求の範囲において確定される実施は、必ずしも説明された特定の特徴または動作に限定されないことは理解されよう。むしろ、システム100の特定の特徴および操作は、特許請求される主題を実施する例示的な形態として開示されている。

【特許請求の範囲】
【請求項1】
オリジナルメッシュがどのように変形されるかを示す情報をユーザから受け取るステップと、
前記情報と、前記オリジナルメッシュから生成されたボリュメトリックグラフに適用される体積微分演算子とに基づいて、前記オリジナルメッシュを変形するステップと、
を含むことを特徴とするコンピュータ実施方法。
【請求項2】
前記情報は、前記オリジナルメッシュに関して指定された1つまたは複数のそれぞれの3−D制御曲線から導出される1つまたは複数の2−D制御曲線であることを特徴とする請求項1に記載の方法。
【請求項3】
前記情報は、前記オリジナルメッシュの変形を表すためにユーザによって指定された1つまたは複数の新しい2−D制御曲線であることを特徴とする請求項1に記載の方法。
【請求項4】
前記オリジナルメッシュを変形するステップは、前記オリジナルメッシュの表面内部をソリッドメッシュすることとは独立であることを特徴とする請求項1に記載の方法。
【請求項5】
前記体積微分演算子は、前記ボリュメトリックグラフ・ラプラシアンであることを特徴とする請求項1に記載の方法。
【請求項6】
前記体積微分演算子は、前記ボリュメトリックグラフ・ラプラシアンであり、前記ボリュメトリックグラフ・ラプラシアンは、ボリュメトリックグラフ内の複数の点のうちの各点と各点の近隣点の体積平均との体積差として前記オリジナルメッシュのボリュメトリックディテールを符号化することを特徴とする請求項1に記載の方法。
【請求項7】
前記体積微分演算子は、前記ボリュメトリックグラフ・ラプラシアンであり、前記ボリュメトリックグラフ・ラプラシアンは、前記オリジナルメッシュを変形したときに体積の不自然な変化を防止する体積制約を課すようにボリュメトリックディテールを符号化し、前記ボリュメトリックディテールは、前記オリジナルメッシュの外側の点と、前記オリジナルメッシュの内側の点からなる単純格子構造とを含むことを特徴とする請求項1に記載の方法。
【請求項8】
ユーザが前記オリジナルメッシュの表面上で1つまたは複数の3−D制御曲線を指定することを可能にするステップと、
前記1つまたは複数の3−D制御曲線の少なくとも1つに対応するそれぞれ2−D制御曲線を前記ユーザに提示するステップと、
前記ユーザが変形に応じた前記2−D制御曲線に関連付けられた1組の点の動きを指定するために前記2−D制御曲線を変更することを可能にするステップと、
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項9】
内側および外側グラフ構造を生成するステップであって、前記内側グラフ構造は、前記オリジナルメッシュの内側に存在するように構成された第1の格子であり、前記外側グラフ構造は、前記オリジナルメッシュの外側に存在するように構成された第2の格子であるステップと、
前記内側グラフ構造と前記外側グラフ構造の間の連結を構築するステップと、
前記外側グラフ構造の詳細を前記オリジナルメッシュと連結するステップと、
による、前記ボリュメトリックグラフを生成するステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項10】
内側および外側グラフ構造を生成するステップであって、前記内側グラフ構造は、前記オリジナルメッシュの内側に存在するように構成された第1の格子であり、前記外側グラフ構造は、前記オリジナルメッシュの外側に存在するように構成された第2の格子であるステップと、
前記内側グラフ構造に基づいた情報を使用して、前記オリジナルメッシュに関連付けられた大規模メッシュ変形操作中の大きな体積変化を防止するステップと、
前記外側グラフ構造に基づいた情報に基づいて、前記オリジナルメッシュに関連付けられた大規模メッシュ変形操作中の頂点の自己局所交差を回避するステップと、
による、前記ボリュメトリックグラフを生成するステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項11】
前記オリジナルメッシュを変形するステップは、前記オリジナルメッシュに関連付けられた元の表面詳細の保存と、ユーザ選択の変形位置と、前記ボリュメトリックグラフ・プラシアンによって指定されるボリュメトリックディテールの保存とのバランスを取るステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項12】
ユーザインタフェースをユーザに提示するステップであって、前記ユーザインタフェースが3−Dメッシュを表示するステップと、
前記ユーザが前記3−Dメッシュに関する3−D制御曲線を指定することを可能にするステップと、
前記3−D制御曲線を2−D制御曲線として平面上に射影するステップと、
前記ユーザが前記3−Dメッシュの目標変形を指定する変更された制御曲線を生成するように前記2−D制御曲線を編集することを可能にするステップと、
前記3−Dメッシュから導出されたボリュメトリックグラフ・ラプラシアンと前記変更された制御曲線とに基づいて、前記3−Dメッシュを変形するステップと、
を含むことを特徴とするコンピュータ実施方法。
【請求項13】
前記ユーザが前記2−D制御曲線を編集することを可能にするステップは、前記ユーザに新しい曲線を生成する機会を提示するステップであって、前記新しい曲線は、前記変更された制御曲線であるステップをさらに含むことを特徴とする請求項12に記載の方法。
【請求項14】
前記ユーザが前記2−D制御曲線を編集することを可能にするステップは、前記2−D制御曲線上にBスプライン制御点を提示するステップであって、前記Bスプライン制御点は、前記2−D制御曲線の形状およびサイズを操作するために選択可能であるステップをさらに含むことを特徴とする請求項12に記載の方法。
【請求項15】
前記3−Dメッシュを変形するステップは、
前記3−Dメッシュの頂点に基づいてボリュメトリックグラフを生成するステップであって、前記ボリュメトリックグラフは、前記3−Dメッシュに関連付けられた表面の内側の頂点からなる単純格子と、前記表面の外側の頂点とを含むステップと、
前記ボリュメトリックグラフ内の複数の点のうちの各点と前記点に隣接する点の平均との差としてボリュメトリックディテールを符号化するために、前記ボリュメトリックグラフ・ラプラシアンを決定するステップと、
をさらに含むことを特徴とする請求項12に記載の方法。
【請求項16】
前記3−Dメッシュを変形するステップは、前記3−Dメッシュの内側に形成された単純格子からの情報を使用して、前記オリジナルメッシュの大規模メッシュ変形中の大きな体積変化を防止するステップをさらに含むことを特徴とする請求項12に記載の方法。
【請求項17】
前記3−Dメッシュを変形するステップは、前記3−Dメッシュの前記表面の外側に生成されたグラフからの情報を使用して、前記オリジナルメッシュの大規模メッシュ変形中の体積の自己交差を防止するステップをさらに含むことを特徴とする請求項12に記載の方法。
【請求項18】
前記3−Dメッシュを変形するステップは、前記3−Dメッシュに関連付けられた元の表面詳細の保存と、ユーザ選択の変形位置と、前記ボリュメトリックグラフ・ラプラシアンによって指定されるボリュメトリックディテールの保存とのバランスを取るステップをさらに含むことを特徴とする請求項12に記載の方法。
【請求項19】
前記オリジナルメッシュの複数の頂点のうちの各頂点を前記頂点の法線とは反対の方向に反復的にずらす簡略化エンベロープを使用して、前記3−Dメッシュの内側に単純格子グラフ構造を生成するステップと、
前記オリジナルメッシュの各頂点を前記オリジナルメッシュに対応する表面の外側方向に反復的にずらすことによって、外側グラフを生成するステップであって、前記外側グラフは、前記3−Dメッシュの外側の頂点を含むステップと、
ボリュメトリックグラフを生成するために、前記内側および外側グラフと前記オリジナルメッシュとの間に連結を構築するステップと、
をさらに含むことを特徴とする請求項12に記載の方法。
【請求項20】
辺消去および平滑化操作を使用して、前記ボリュメトリックグラフを簡略化するステップをさらに含むことを特徴とする請求項19に記載の方法。

【図1】
image rotate

【図6】
image rotate

【図7】
image rotate

【図11】
image rotate

【図12】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−178176(P2012−178176A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2012−113061(P2012−113061)
【出願日】平成24年5月17日(2012.5.17)
【分割の表示】特願2008−518459(P2008−518459)の分割
【原出願日】平成18年6月22日(2006.6.22)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】