「メッシュ処理」の版間の差分
提供: Precipedia
JSPEreviewer (トーク | 投稿記録) |
JSPEreviewer (トーク | 投稿記録) |
||
42行: | 42行: | ||
[[画像:Meshprocessing Fig2.bmp|thumb|600px|right|Meshprocessing Fig2.bmp]] | [[画像:Meshprocessing Fig2.bmp|thumb|600px|right|Meshprocessing Fig2.bmp]] | ||
− | ; | + | ;データ構造 |
− | : | + | : 最も簡単なデータ構造は,次元毎にポリトープを多次元(又は複数やオブジェクト指向型言語でのクラスの)配列等に格納する方法である.例えば,三角形メッシュであれば面に基づくデータ構造が簡単で,頂点ID順に頂点位置を格納した頂点列と,頂点IDを三つ組みである面を面ID順に格納した面列で表現できる.このとき,向き付けされたメッシュの場合は,頂点IDの並び順を入れ替えない注意が必要である. |
− | + | :* '''セルに基づくデータ構造''' | |
− | : | + | ::各セル毎に構造体やオブジェクト指向言語のクラスを用いてセルを定義し,その関係性を構造体・クラスのメンバー変数やポインターとして持つ構造もよく用いられている.例えば三角形メッシュであれば,頂点,辺,面毎にクラスを作成し,それぞれにポインターや変数で参照を行う(half)edgeデータ構造<ref name="ref1">M. Botsch, L. Kobbelt , M. Pauly , P. Alliez, and B. Levy, “Polygon Mesh Processing”, A K Peters/CRC Press, 2011.</ref>が有名である.また,progressive mesh <ref name="ref17">H. Hoppe, “Progressive Meshes”, Proc. ACM SIGGRAPH, pp. 99-108, 1996. </ref>等のメッシュの粗密階層を表現するデータ構造もある. |
+ | ;ファイルフォーマット | ||
+ | : 様々な種類があり,曲面メッシュでは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)での形状・計算領域の表現にて重要である. | ||
+ | |||
+ | ==メッシュ処理に有用・必要な学問== | ||
+ | メッシュ処理は幾何学全般に基づいており,数学モデル・定理,離散化やアルゴリズムなど幅広い数学的・情報学的な知識が必要である. | ||
+ | |||
+ | ;微分幾何学<ref name="ref2">D. Struik, “Lectures on Classical Differential Geometry”, Dover Publications, 1988.</ref><ref name="ref3">E. Abbena , A. Gray, and S. Salamon, “Modern Differential Geometry of Curves and Surfaces with Mathematica, 4th Ed”, Chapman and Hall/CRC, 2016.</ref> | ||
+ | : メッシュを多様体の近似として用いる場合に,長さや曲率などの計量を考えるのに必要である. | ||
+ | |||
+ | ;位相幾何学<ref name="ref4">前原 濶, “直観トポロジー”, 共立出版, 1993.</ref><ref name="ref5"> A. Fomenko and T. Kunii, “Topological Modeling for Visualization”, Springer, 2013.</ref> | ||
+ | : 穴やハンドル(topological handle)の数などメッシュの繋がり具合を考える場合に必要.多様体を近似しているメッシュだけでなく,有名なオイラー数(Euler Characteristics)や種数(genus)などメッシュ自体の位相構造でも重要である. | ||
+ | |||
+ | ;計算幾何学/組合せ幾何学/多面体幾何学<ref name="ref6">H. Edelsbrunner, “Algorithms in Combinatorial Geometry”, Springer-Verlag, 1987.</ref><ref name="ref7">杉原 厚吉, “計算幾何学”, 朝倉書店, 2013. </ref><ref name="ref8">今井 浩, 今井 桂子, “計算幾何学”, 共立出版, 1994. </ref><ref name="ref9"> P. R. クロムウェル (著), 下川航也 (訳), 平澤美可三 (訳), 松本三郎 (訳), 丸本嘉彦 (訳), 村上斉 (訳), “多面体”, 数学書房, 2014. </ref> | ||
+ | : ボロノイ図(Voronoi diagram)やその双対(dual)であるドロネー図(Delaunay三角形分割)の構成方法や幾何構造の組合せ・配置に関する数学. | ||
+ | |||
+ | ;曲線と曲面の幾何学/スプライン<ref name="ref10">G. Farin, “Curves and Surfaces for CAGD, Fifth Edition: A Practical Guide”, Morgan Kaufmann, 2001.</ref><ref name="ref11">穂坂 衛(著), 東 正毅 (訳), 久志本 琢也 (訳), 斉藤 剛 (訳), “CAD/CAMにおける曲線曲面のモデリング”, 東京電機大学出版局, 1996.</ref><ref name="ref12">J. Koenderink, “Solid Shape”, MIT Press 1990.</ref> | ||
+ | : メッシュを曲線・曲面の近似として用いる場合に必要である.また,スプライン(spline)の制御メッシュなど空間を定義するのに用いる. | ||
+ | |||
+ | ;グラフ理論<ref name="ref13">W. Tutte, “Graph Theory”, Cambridge University Press, 2001.</ref> | ||
+ | : 媒介変数化(mesh parameterization)でのグラフの埋め込みやグラフラプラス作用素の固有値解析などメッシュ構造自体の解析に有用である.また,EMST(Euclidean minimum spanning tree)やGabriel/Reebグラフなどは点群のメッシュ化,曲面メッシュの分割,メッシュのスケルトン(アニメーションや変形のための中心構造)抽出にて有用である. | ||
+ | |||
+ | ;アルゴリズムとデータ構造<ref name="ref14">R. Sedgewick, “Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms”, Addison-Wesley Professional, 2001.</ref> | ||
+ | : 通常,メッシュの要素数は大きいため,メッシュ構造の探索や並び替え等の基本操作にて効率的なデータ構造と計算方法が必要である.また,木構造の操作なども広義のメッシュ処理と言える. | ||
+ | |||
+ | ;近似理論・数値解析<ref name="ref15">W. Press, S. Teukolsky, W. Vetterling, and B. Flannery, “Numerical Recipes: The Art of Scientific Computing 3rd Edition”, Cambridge University Press, 2007.</ref> | ||
+ | :曲線や曲面の離散化,多元線形連立方程式や偏微分方程式の解法,最適化問題の解法などの数値解析はメッシュ処理で必要な技術である. | ||
+ | |||
+ | ;信号・画像処理<ref name="ref16">R. Gonzalez, “Digital Image Processing”, Prentice Hall; 3rd edition, 2007. </ref> | ||
+ | :離散化された一次元信号や画像は,メッシュの特殊な場合と考えられる.それゆえ,フィルタや多重解像度解析などの数理モデル・方法論を一般のメッシュ処理に拡張する場合に有用である. | ||
==引用== | ==引用== |
2016年8月1日 (月) 21:39時点における版
メッシュ処理(Mesh Processing)とは,幾何形状・領域を一次近似・表現するポリトープ(polytope)網を計算処理する事である.ここでポリトープとは,一般化された図形であり,例えば零次元から三次元までのポリトープはそれぞれ,点,線分,多角形,多面体である.メッシュはポリトープの和集合として与えられる.メッシュ処理では,幾何学全般に基づき幾何的又は位相的な操作を行う事で,新たなメッシュや多様体を生成する.また,メッシュ自体の幾何・位相情報の解析,誤差解析や物理計算の為にメッシュ情報の参照を行う事もメッシュ処理である.古代では多角形・多面体幾何学,近代では設計・近似のためのスプラインやボロノイ図等の研究がされているが,コンピュータの登場により,精密工学に密接なCAD・CAM・CAE・CAT及びCG・CVでの応用が盛んである.
基礎
メッシュはポリトープの集合であり,メッシュ処理とは,メッシュの幾何・位相情報を参照・追加・削除・変更する処理である.
- メッシュ(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の並び順が右(又は左)周りで統一されたメッシュである.向き付けされたメッシュでは,三角形の法線ベクトルを導出する場合に,二つの辺の外積を統一した順番で計算するとメッシュ全体で揃った向きの法線が得られ,曲面の向きとなる.
- データ構造
- 最も簡単なデータ構造は,次元毎にポリトープを多次元(又は複数やオブジェクト指向型言語でのクラスの)配列等に格納する方法である.例えば,三角形メッシュであれば面に基づくデータ構造が簡単で,頂点ID順に頂点位置を格納した頂点列と,頂点IDを三つ組みである面を面ID順に格納した面列で表現できる.このとき,向き付けされたメッシュの場合は,頂点IDの並び順を入れ替えない注意が必要である.
- セルに基づくデータ構造
- ファイルフォーマット
- 様々な種類があり,曲面メッシュでは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)での形状・計算領域の表現にて重要である.
メッシュ処理に有用・必要な学問
メッシュ処理は幾何学全般に基づいており,数学モデル・定理,離散化やアルゴリズムなど幅広い数学的・情報学的な知識が必要である.
- 位相幾何学[5][6]
- 穴やハンドル(topological handle)の数などメッシュの繋がり具合を考える場合に必要.多様体を近似しているメッシュだけでなく,有名なオイラー数(Euler Characteristics)や種数(genus)などメッシュ自体の位相構造でも重要である.
- 計算幾何学/組合せ幾何学/多面体幾何学[7][8][9][10]
- ボロノイ図(Voronoi diagram)やその双対(dual)であるドロネー図(Delaunay三角形分割)の構成方法や幾何構造の組合せ・配置に関する数学.
- グラフ理論[14]
- 媒介変数化(mesh parameterization)でのグラフの埋め込みやグラフラプラス作用素の固有値解析などメッシュ構造自体の解析に有用である.また,EMST(Euclidean minimum spanning tree)やGabriel/Reebグラフなどは点群のメッシュ化,曲面メッシュの分割,メッシュのスケルトン(アニメーションや変形のための中心構造)抽出にて有用である.
- アルゴリズムとデータ構造[15]
- 通常,メッシュの要素数は大きいため,メッシュ構造の探索や並び替え等の基本操作にて効率的なデータ構造と計算方法が必要である.また,木構造の操作なども広義のメッシュ処理と言える.
- 近似理論・数値解析[16]
- 曲線や曲面の離散化,多元線形連立方程式や偏微分方程式の解法,最適化問題の解法などの数値解析はメッシュ処理で必要な技術である.
- 信号・画像処理[17]
- 離散化された一次元信号や画像は,メッシュの特殊な場合と考えられる.それゆえ,フィルタや多重解像度解析などの数理モデル・方法論を一般のメッシュ処理に拡張する場合に有用である.
引用
原著論文、著書など、他に著作権の存在する出版物等を引用する場合は、ここに脚注のリストを表示するようにしてください。
- ↑ M. Botsch, L. Kobbelt , M. Pauly , P. Alliez, and B. Levy, “Polygon Mesh Processing”, A K Peters/CRC Press, 2011.
- ↑ H. Hoppe, “Progressive Meshes”, Proc. ACM SIGGRAPH, pp. 99-108, 1996.
- ↑ D. Struik, “Lectures on Classical Differential Geometry”, Dover Publications, 1988.
- ↑ E. Abbena , A. Gray, and S. Salamon, “Modern Differential Geometry of Curves and Surfaces with Mathematica, 4th Ed”, Chapman and Hall/CRC, 2016.
- ↑ 前原 濶, “直観トポロジー”, 共立出版, 1993.
- ↑ A. Fomenko and T. Kunii, “Topological Modeling for Visualization”, Springer, 2013.
- ↑ H. Edelsbrunner, “Algorithms in Combinatorial Geometry”, Springer-Verlag, 1987.
- ↑ 杉原 厚吉, “計算幾何学”, 朝倉書店, 2013.
- ↑ 今井 浩, 今井 桂子, “計算幾何学”, 共立出版, 1994.
- ↑ P. R. クロムウェル (著), 下川航也 (訳), 平澤美可三 (訳), 松本三郎 (訳), 丸本嘉彦 (訳), 村上斉 (訳), “多面体”, 数学書房, 2014.
- ↑ G. Farin, “Curves and Surfaces for CAGD, Fifth Edition: A Practical Guide”, Morgan Kaufmann, 2001.
- ↑ 穂坂 衛(著), 東 正毅 (訳), 久志本 琢也 (訳), 斉藤 剛 (訳), “CAD/CAMにおける曲線曲面のモデリング”, 東京電機大学出版局, 1996.
- ↑ J. Koenderink, “Solid Shape”, MIT Press 1990.
- ↑ W. Tutte, “Graph Theory”, Cambridge University Press, 2001.
- ↑ R. Sedgewick, “Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms”, Addison-Wesley Professional, 2001.
- ↑ W. Press, S. Teukolsky, W. Vetterling, and B. Flannery, “Numerical Recipes: The Art of Scientific Computing 3rd Edition”, Cambridge University Press, 2007.
- ↑ R. Gonzalez, “Digital Image Processing”, Prentice Hall; 3rd edition, 2007.