「メッシュ処理」の版間の差分

提供: Precipedia
移動: 案内検索
91行: 91行:
 
;メッシュ化(meshing)
 
;メッシュ化(meshing)
 
:領域を充足する格子生成<ref name="ref18">Joe F. Thompson (編), Bharat K. Soni (編), Nigel P. Weatherill (編) , “Handbook of Grid Generation”, CRC Press, 1998.</ref>や点群,スプライン,陰関数などからメッシュを構成する処理.特に曲面メッシュの場合は,曲面再構成問題<ref name="ref19">大竹 豊, “点群からの表面再構成”, 計算工学 16(2), pp. 2523-2527, 2011.</ref><ref name="ref20">長井 超慧, “3Dスキャナによる計算機への現物形状入力”, 精密工学会誌 79(6), pp. 497-501, 2013.</ref>として知られる.また,陰関数からのメッシュ生成はMarching Cube法<ref name="ref21">W. Lorensen and H. Cline, “Marching cubes: A high resolution 3D surface construction algorithm”, Proc. ACM SIGGRAPH, pp. 163-169, 1987.</ref>が有名である.
 
:領域を充足する格子生成<ref name="ref18">Joe F. Thompson (編), Bharat K. Soni (編), Nigel P. Weatherill (編) , “Handbook of Grid Generation”, CRC Press, 1998.</ref>や点群,スプライン,陰関数などからメッシュを構成する処理.特に曲面メッシュの場合は,曲面再構成問題<ref name="ref19">大竹 豊, “点群からの表面再構成”, 計算工学 16(2), pp. 2523-2527, 2011.</ref><ref name="ref20">長井 超慧, “3Dスキャナによる計算機への現物形状入力”, 精密工学会誌 79(6), pp. 497-501, 2013.</ref>として知られる.また,陰関数からのメッシュ生成はMarching Cube法<ref name="ref21">W. Lorensen and H. Cline, “Marching cubes: A high resolution 3D surface construction algorithm”, Proc. ACM SIGGRAPH, pp. 163-169, 1987.</ref>が有名である.
 +
 +
;再メッシュ化(remeshing)
 +
:与えられたメッシュをポリトープのサイズ,数,形状などが異なる性質をもつメッシュに変換する処理.例えば,有限要素解析では均一の大きさの正三角形が良いとされるが,形状近似では主曲率の比と主方向に沿った長細い三角形が最適である事が知られている<ref name="ref22">P. Alliez, M. Attene, C. Gotsman, and G. Ucelli, “Recent Advances in Remeshing of Surfaces”, Shape Analysis and Structuring, pp. 53-82 , 2007.</ref>.また,二つ以上のメッシュの縫い合わせ(stitching)なども再メッシュ化の一種である.
 +
 +
;細分割(subdivision)
 +
:ポリトープを細かく分割する処理.ある規則に従って細分割を行うと,B-spline等の連続で滑らかなスプラインに収束する事が知られている<ref name="ref23">D. Zorin, P. Schroeder, T. DeRose, L. Kobbelt, A. Levin, and W. Sweldens, “Subdivision for Modeling and Animation”, ACM SIGGRAPH courses, 2000.</ref>.Chaikin <ref name="ref24">G. Chaikin, "An Algorithm for High Speed Curve Generation", Computer Graphics Image Processing,  3(12), pp. 346-349 , 1974.</ref>やLoop <ref name="ref25">C. Loop, “Smooth Subdivision Surfaces Based on Triangles”, M.S. Mathematics thesis, University of Utah, 1987.</ref>のアルゴリズムが有名であり,Wavelet等の多重解像度解析とも密接に関連している <ref name="ref23">.
 +
 +
 +
;
 +
:
  
  

2016年8月1日 (月) 22:07時点における版

メッシュ処理(Mesh Processing)とは,幾何形状・領域を一次近似・表現するポリトープ(polytope)網を計算処理する事である.ここでポリトープとは,一般化された図形であり,例えば零次元から三次元までのポリトープはそれぞれ,点,線分,多角形,多面体である.メッシュはポリトープの和集合として与えられる.メッシュ処理では,幾何学全般に基づき幾何的又は位相的な操作を行う事で,新たなメッシュや多様体を生成する.また,メッシュ自体の幾何・位相情報の解析,誤差解析や物理計算の為にメッシュ情報の参照を行う事もメッシュ処理である.古代では多角形・多面体幾何学,近代では設計・近似のためのスプラインやボロノイ図等の研究がされているが,コンピュータの登場により,精密工学に密接なCAD・CAM・CAE・CAT及びCG・CVでの応用が盛んである.


基礎

Fig. 1

メッシュはポリトープの集合であり,メッシュ処理とは,メッシュの幾何・位相情報を参照・追加・削除・変更する処理である.

メッシュ(mesh)
ポリトープの集合.例えば,三角形メッシュ(triangle mesh)は,三角形の連結した集合である.多様体の一次近似又は曲線や曲面などの領域・空間を充足するダイアグラム(diagram)として用いる事が多いが,一般のグラフやデジタル画像なども広義のメッシュである.非多様体のメッシュとしては一部の単体的複体(simplical complex)やCW-complex(中心軸:Medial Axis等)などがある.
ポリトープ(polytope)
多角形や多面体等を一般化した幾何要素であり,n次元ポリトープは,ファセット(facet)やセル(cell)と呼ばれる(n-1)次元までのポリトープで構成される.零次元から三次元までのポリトープはそれぞれ,点,線分,多角形,多面体である.例えば,三角形は,3つの0-cellである頂点(vertex),3つの1-cellである辺(edge)及び一つの2-cellである面(face)から構成される.
k-近傍(k-ring, k-link)
頂点に辺で繋がったk番目の近傍.
Valence
頂点に繋がっている辺数.
Degree
面を構成している頂点数.
Connectivity
辺の繋がり情報.
メッシュの状態
  • 多様体メッシュ(manifold mesh)
1-linkがtopological disk(高次元ではball)と同位相である頂点のみで構成されたメッシュ.境界ではhalf-diskと同位相.曲面メッシュ(surface mesh)で最も用いられているのは多様体である三角形メッシュである.これは,どの様な位相の曲面でも三角形分割が可能である事と三角形メッシュの面は平面であり,法線ベクトルが一意に決まる事に起因する.また,物理計算やrenderingハードウェアでの三角形メッシュに基づく方法が非常に発達している事も三角形メッシュの普及に大きく寄与している.以後,特に断りがなければメッシュは多様体であることを仮定する.
  • n-連結メッシュ(n-connected mesh)
任意のn個の頂点を削除しても連結しているメッシュ.
  • 水密(watertight)メッシュ
穴が無いメッシュ.例えば三角形メッシュでは,全ての辺が二つの三角形に共有されているメッシュ.
  • 規則(Regular)メッシュ
多角形のdegreeによってvalenceがメッシュ全体の全ての内部頂点で一定のメッシュ.例えば,三角形メッシュは内部頂点でvalenceが6,四角形メッシュは内部頂点でvalenceが4のメッシュ.重要な注意点としては,形状の位相によっては,regular meshがオイラー数の関係より,数学的に存在しない事である.従って大部分の頂点でregularなvalenceを満たすメッシュを準規則メッシュ(semi-regular mesh)と呼び,regularでない頂点をextraordinary vertexと呼ぶ.
  • 向き付け(oriented)メッシュ
全てのセルの方向が揃っているメッシュ.例えば三角形メッシュでは,三角形の頂点IDの並び順が右(又は左)周りで統一されたメッシュである.向き付けされたメッシュでは,三角形の法線ベクトルを導出する場合に,二つの辺の外積を統一した順番で計算するとメッシュ全体で揃った向きの法線が得られ,曲面の向きとなる.
Fig. 2
データ構造
最も簡単なデータ構造は,次元毎にポリトープを多次元(又は複数やオブジェクト指向型言語でのクラスの)配列等に格納する方法である.例えば,三角形メッシュであれば面に基づくデータ構造が簡単で,頂点ID順に頂点位置を格納した頂点列と,頂点IDを三つ組みである面を面ID順に格納した面列で表現できる.このとき,向き付けされたメッシュの場合は,頂点IDの並び順を入れ替えない注意が必要である.
  • セルに基づくデータ構造
各セル毎に構造体やオブジェクト指向言語のクラスを用いてセルを定義し,その関係性を構造体・クラスのメンバー変数やポインターとして持つ構造もよく用いられている.例えば三角形メッシュであれば,頂点,辺,面毎にクラスを作成し,それぞれにポインターや変数で参照を行う(half)edgeデータ構造[1]が有名である.また,progressive mesh [2]等のメッシュの粗密階層を表現するデータ構造もある.
ファイルフォーマット
様々な種類があり,曲面メッシュではoff, ply, obj, stl等が有名である.最も簡単なascii offファイルフォーマットは,asciiテキストにて,一行目に「OFF」という文字列,二行目に頂点数,面数,辺数をスペース区切,3行目から頂点の3次元座標をスペース区切(一行一頂点),頂点情報の後に面の頂点IDを一面一行毎にスペース区切で並べるだけである(頂点IDはゼロから始まる).
  • STL(STereoLithography)の注意点
stlは様々なCAD/CAEソフトウェアで読み込みが可能な曲面メッシュで幅広く用いられている.ファイルフォーマット名であり,メッシュ自体の呼称ではない.幾何学的な注意点として,頂点を面毎に重複して持つため,データ量が多くなるだけではなく,同一頂点である事に一意性が無い.offやobjフォーマットなどは,その様な曖昧さを回避出来るだけではなく,重複頂点も表せる.
応用
幅広い分野で様々な目的にメッシュ処理は用いられている.特に,CG(Computer Graphics),CAD(Computer Aided Design),CV(Computer Vision),及び計算物理学/CAE(Computational Physics/Computer Aided Engineering)での形状・計算領域の表現にて重要である.

メッシュ処理に有用・必要な学問

メッシュ処理は幾何学全般に基づいており,数学モデル・定理,離散化やアルゴリズムなど幅広い数学的・情報学的な知識が必要である.

微分幾何学[3][4]
メッシュを多様体の近似として用いる場合に,長さや曲率などの計量を考えるのに必要である.
位相幾何学[5][6]
穴やハンドル(topological handle)の数などメッシュの繋がり具合を考える場合に必要.多様体を近似しているメッシュだけでなく,有名なオイラー数(Euler Characteristics)や種数(genus)などメッシュ自体の位相構造でも重要である.
計算幾何学/組合せ幾何学/多面体幾何学[7][8][9][10]
ボロノイ図(Voronoi diagram)やその双対(dual)であるドロネー図(Delaunay三角形分割)の構成方法や幾何構造の組合せ・配置に関する数学.
曲線と曲面の幾何学/スプライン[11][12][13]
メッシュを曲線・曲面の近似として用いる場合に必要である.また,スプライン(spline)の制御メッシュなど空間を定義するのに用いる.
グラフ理論[14]
媒介変数化(mesh parameterization)でのグラフの埋め込みやグラフラプラス作用素の固有値解析などメッシュ構造自体の解析に有用である.また,EMST(Euclidean minimum spanning tree)やGabriel/Reebグラフなどは点群のメッシュ化,曲面メッシュの分割,メッシュのスケルトン(アニメーションや変形のための中心構造)抽出にて有用である.
アルゴリズムとデータ構造[15]
通常,メッシュの要素数は大きいため,メッシュ構造の探索や並び替え等の基本操作にて効率的なデータ構造と計算方法が必要である.また,木構造の操作なども広義のメッシュ処理と言える.
近似理論・数値解析[16]
曲線や曲面の離散化,多元線形連立方程式や偏微分方程式の解法,最適化問題の解法などの数値解析はメッシュ処理で必要な技術である.
信号・画像処理[17]
離散化された一次元信号や画像は,メッシュの特殊な場合と考えられる.それゆえ,フィルタや多重解像度解析などの数理モデル・方法論を一般のメッシュ処理に拡張する場合に有用である.

処理の種類

メッシュ処理には大別して,幾何・位相・局所・大域及びその組合せの処理がある.幾何及び位相の処理は,それぞれ頂点座標とconnectivityに対して行う処理である.局所的な処理(例えばFig. 3の操作)は,メッシュ内の限定された領域にしか影響を及ぼさない(又は用いない)処理であり,大域的な処理はその逆である.形状や領域の近似精度,滑らかさ,ポリトープ要素の性質(例えば三角形の形など)を基準に処理を行う.具体的なメッシュ処理の目的や方法は非常に多様である.下記に代表的な処理の例を挙げる.

Fig. 3
メッシュ化(meshing)
領域を充足する格子生成[18]や点群,スプライン,陰関数などからメッシュを構成する処理.特に曲面メッシュの場合は,曲面再構成問題[19][20]として知られる.また,陰関数からのメッシュ生成はMarching Cube法[21]が有名である.
再メッシュ化(remeshing)
与えられたメッシュをポリトープのサイズ,数,形状などが異なる性質をもつメッシュに変換する処理.例えば,有限要素解析では均一の大きさの正三角形が良いとされるが,形状近似では主曲率の比と主方向に沿った長細い三角形が最適である事が知られている[22].また,二つ以上のメッシュの縫い合わせ(stitching)なども再メッシュ化の一種である.
細分割(subdivision)
ポリトープを細かく分割する処理.ある規則に従って細分割を行うと,B-spline等の連続で滑らかなスプラインに収束する事が知られている[23].Chaikin [24]やLoop [25]のアルゴリズムが有名であり,Wavelet等の多重解像度解析とも密接に関連している [23]


引用エラー: <ref> タグがありますが、<references/> タグが見つかりません