コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...shapeshop;...

46
コンピュータグラフィクス論 モデリング (3) – 2019516高山 健志

Upload: others

Post on 26-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

コンピュータグラフィクス論

–モデリング (3) –

2019年5月16日

高山健志

Page 2: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

ソリッドモデリング

2

Page 3: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

ソリッドモデルとは• 3D 空間の任意の位置で、モデルの

“内側” と “外側” が定義できるもの

•主な用途

3

3D プリント 物理シミュレーション

穴が空いている自己交差している

一枚のポリゴンで薄い形状を表現

向き付け不可能

ソリッドでないケース

Klein bottle

Page 4: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

ソリッドモデルの predicate 関数

• 3D 座標 𝐩 ∈ ℝ3 がソリッドモデルの内部であれば true を、そうでなければ false を返す関数:

𝑓 𝐩 :ℝ3 ↦ true, false

•モデル内部全体を表す集合:𝐩 𝑓 𝐩 = true } ⊂ ℝ3

•例:

4

最小と最大の対角コーナーがそれぞれ𝑥min, 𝑦min, 𝑧min と 𝑥max, 𝑦max, 𝑧max

であるような直方体

点 𝐜を中心とした半径 𝑟の球

𝑓 𝐩 ≔ 𝐩 − 𝐜 < 𝑟 𝑓 𝑥, 𝑦, 𝑧 ≔ 𝑥min < 𝑥 < 𝑥max

∧ 𝑦min < 𝑦 < 𝑦max

∧ 𝑧min < 𝑧 < 𝑧max

c r

𝐩max

𝐩min

Page 5: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Constructive Solid Geometry (Boolean演算)

5

和𝑓𝐴∪𝐵 𝐩 ≔ 𝑓𝐴(𝐩) ∨ 𝑓𝐵(𝐩)

𝑓𝐴∩𝐵 𝐩 ≔ 𝑓𝐴(𝐩) ∧ 𝑓𝐵(𝐩)

𝑓𝐴∖𝐵 𝐩 ≔ 𝑓𝐴(𝐩) ∧ ¬𝑓𝐵(𝐩)

CSG Tree

A B C

D E

𝐴 ∩ 𝐵 ∖ 𝐶 ∪ 𝐷 ∪ 𝐸

Page 6: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

符号付き距離場によるソリッドモデル表現• Signed Distance Function: 3D座標からモデル表面までの最短距離

𝑑 𝐩 :ℝ3 ↦ ℝ

• 符号付き:内側では負、外側では正

• ソリッドモデルを表すpredicate:𝑓 𝐩 ≔ 𝑑(𝐩) < 0

• ゼロ等値面はモデル表面を表す:{𝐩 | 𝑑(𝐩) = 0} ⊂ ℝ3

• 「陰関数表現」「ボリューム表現」

• 等値面の法線は勾配 𝛁𝑑(𝐩)の方向と一致6

c r

点 𝐜を中心とした半径 𝑟の球

𝑑 𝐩 ≔ 𝐩 − 𝐜 − 𝑟

Page 7: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

陰関数のデザイン例

7

大半径 R, 小半径 a のトーラス

必ずしも距離関数とは限らない

Page 8: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

陰関数のデザイン例:等電位面 (Metaball)

8

𝑑 𝐩 = 𝑑1 𝐩 − 𝑑2(𝐩)

𝑑 𝐩 = 𝑑1 𝐩 + 𝑑2(𝐩)

𝑑𝑖 𝐩 =𝑞𝑖

𝐩 − 𝐜𝑖− 𝑟𝑖 𝑑 𝐩 = 𝑑1 𝐩 + 𝑑2 𝐩 + 𝑑3 𝐩 + 𝑑4 𝐩c1

c4

c3

c2

Page 9: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

陰関数の線形補間によるモーフィング

9

𝑑1 𝒑 = 02

3𝑑1 𝒑 +

1

3𝑑2 𝒑 = 0

1

3𝑑1 𝒑 +

2

3𝑑2 𝒑 = 0 𝑑2 𝒑 = 0

Page 10: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

複数の陰関数を組み合わせたモデリング

10

Page 11: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

陰関数の表示方法:Marching Cubes

•等値面を三角形メッシュとして抽出

•立方体格子の各セルに対し、(1) 立方体の 8 頂点で関数値を計算

(2) その正負のパターンから、生成する面のタイプを決定• 対称性から 15 通りに分類

(3) 関数値の線形補間から面の位置を決定

(特許で縛られていたが、期限が切れた)

11Marching Cubes: A High Resolution 3D Surface Construction Algorithm [Lorensen SIGGRAPH87]

Page 12: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

陰関数の性質を活用した3Dモデリングの例

12Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Page 13: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

陰関数の性質を活用した3Dモデリングの例

13A sketching interface for modeling the internal structures of 3d shapes [Owada,Nielsen,Nakazawa,Igarashi,SmartGraphics03]

Page 14: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Marching Cubes の曖昧性

•根本的な解決法は、格子を細かくすること

14The asymptotic decider: resolving the ambiguity in marching cubes [Nielson VIS91]

隣接するセルの間で面が整合しない 不整合を解決する新たなルール

Page 15: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Marching Tetrahedra

•立方体の代わりに四面体を使う• パターンが少なく、曖昧性が無い実装が簡単

•各立方体セルを、6 個の四面体に分割• (隣接セル間で分割の向きを合わせることに注意)

•きれいな三角形メッシュを取り出す工夫

15

http://paulbourke.net/geometry/polygonise/

Regularised marching tetrahedra: improved iso-surface extraction [Treece C&G99]

Page 16: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

シャープなエッジを保持した等値面抽出

16

Feature Sensitive Surface Extraction from Volume Data [Kobbelt SIGGRAPH01]

Dual Contouring of Hermite Data [Ju SIGGRAPH02]

http://www.graphics.rwth-aachen.de/IsoEx/

格子サイズ:65×65×65

Marching Cubes 改善版Marching Cubes (陰関数の値のみ考慮)

改善版 (陰関数の勾配も考慮)

Page 17: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

サーフェスメッシュ表現のみに基づく CSG

•ボリューム表現 (=Marching Cubesによる等値面抽出)近似精度が格子の向きや解像度に依存

•サーフェスメッシュ表現による CSG元のメッシュの形状を確実に保持

•ロバストで効率的な実装が難しい

• 浮動小数の丸め誤差

• 厳密に同じ位置で重複する複数の三角形

•ここ数年で著しく進化

17

Fast, exact, linear booleans [Bernstein SGP09]

Exact and Robust (Self-)Intersections for Polygonal Meshes [Campen EG10]

Mesh Arrangements for Solid Geometry [Zhou SIGGRAPH16]

https://libigl.github.io/libigl/tutorial/tutorial.html#booleanoperationsonmeshes

Page 18: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

メッシュの補修 (mesh repair)

18Simplification and Repair of Polygonal Models Using Volumetric Techniques [Nooruddin TVCG03]

Robust Inside-Outside Segmentation using Generalized Winding Numbers [Jacobson SIGGRAPH13]

定義を拡張したwinding number に基づいて内外を判定四方八方から飛ばしたレイとの

交差に基づいて内外を判定

ボリューム表現 サーフェス表現

Page 19: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

点群からのサーフェス再構成

19

Page 20: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

3D 形状の計測

• 得られるデータ:点群• 3D座標• 法線 (面の向き)

• 法線が得られない場合法線の推定• ノイズが多すぎる場合ノイズの除去

20

Range Scanner

(LIDAR)

Structured Light

Multi-View Stereo

Depth Camera

Computer Vision の代表的なテーマ

Page 21: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

点群からのサーフェス形状再構成

•入力:N 個の点群データ• 座標 𝐱𝑖 = 𝑥𝑖 , 𝑦𝑖 , 𝑧𝑖 と法線 𝐧𝑖 = 𝑛𝑖

x, 𝑛𝑖y, 𝑛𝑖

z , 𝑖 ∈ 1,… ,𝑁

•出力:関数 𝑓(𝐱)で、値と勾配の制約を満たすもの• 𝑓 𝐱𝑖 = 0

• 𝛁𝑓 𝐱𝑖 = 𝐧𝑖

• 等値面 𝑓 𝐱 = 0が出力サーフェス形状

• “Scattered Data Interpolation” と呼ばれる問題• Moving Least Squares

• Radial Basis FunctionCG以外の分野 (e.g. 機械学習) でも重要

21

𝑓𝑖

Page 22: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

勾配を制約する二通りの方法

•法線方向にオフセットした位置に値の制約を追加• 簡単

•数学表現そのものに勾配制約を取り入れる (エルミート補間)• 高品質

22

Modelling with implicit surfaces that interpolate [Turk TOG02]

Hermite Radial Basis Functions Implicits [Macedo CGF10]

値と勾配の制約 エルミート補間 オフセット法

Page 23: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Moving Least Squares による補間(移動最小二乗)

23

Page 24: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

出発点:Least SQuares (最小二乗)

•求めたい関数が線形だと仮定する:𝑓 𝐱 = 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑• 𝑎, 𝑏, 𝑐, 𝑑 が未知係数

•データ点における値の制約

• (勾配制約は今は考えない)

24

𝐱 ≔ (𝑥, 𝑦, 𝑧)

𝑥1 𝑦1 𝑧1 1𝑥2 𝑦2 𝑧2 1

𝑥𝑁 𝑦𝑁 𝑧𝑁 1

𝑎𝑏𝑐𝑑

𝑓1𝑓2

𝑓𝑁

・・・

・・・

=𝐴 𝐜 𝐟

𝑓 𝐱1 = 𝑎𝑥1 + 𝑏𝑦1 + 𝑐𝑧1 + 𝑑 = 𝑓1𝑓 𝐱2 = 𝑎𝑥2 + 𝑏𝑦2 + 𝑐𝑧2 + 𝑑 = 𝑓2

𝑓 𝐱𝑁 = 𝑎𝑥𝑁 + 𝑏𝑦𝑁 + 𝑐𝑧𝑁 + 𝑑 = 𝑓𝑁

・・・

Page 25: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Overconstrained System

• #未知数 < #制約 (i.e. 縦長の行列) 全ての制約を同時に満たせない

• fitting の誤差を最小化:

25

𝐴 𝐜 𝐟 𝐜𝐴 𝐟

𝐜 𝐴⊺𝐴 −1 𝐟

𝐴⊺ 𝐴⊺

𝐴⊺

= =

=𝑨 𝐜 − 𝐟 2 =

𝑖=1

𝑁

𝑓 𝐱𝑖 − 𝑓𝑖2

Page 26: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

LSQ の幾何的な解釈

• 𝐩と 𝐪が張る空間中で 𝐫に最も近い点を求める (投影する) ことに相当• fitting 誤差は投影距離に相当:

𝑑2 = 𝛼𝐩 + 𝛽𝐪 − 𝐫 2

26

𝑝x𝑝y𝑝z

=𝛼𝛽

𝑞x𝑞y𝑞z

𝑟x𝑟y𝑟z

𝐪

𝐩

𝐫

𝛼

𝛽

𝑑

Page 27: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Weighted Least Squares (重み付き最小二乗)

•各データ点ごとの誤差に、重み 𝑤𝑖 をつける• 重要度、確信度

•以下の誤差を最小化:

𝑖=1

𝑁

𝑤𝑖 𝑓 𝐱𝑖 − 𝑓𝑖2

27

𝑥1 𝑦1 𝑧1 1𝑥2 𝑦2 𝑧2 1

𝑥𝑁 𝑦𝑁 𝑧𝑁 1

𝑎𝑏𝑐𝑑

𝑓1𝑓2

𝑓𝑁・・・

・・・

=

𝑤1𝑤2

𝑤𝑁

𝑤1𝑤2

𝑤𝑁

𝐴 𝐜 𝐟𝑊 𝑊

Page 28: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Weighted Least Squares (重み付き最小二乗)

28

𝐴 𝐜 𝐟

𝐜 𝐴⊺𝑊2𝐴 −1 𝐟𝐴⊺𝑊2

=

=

𝑊 𝑊

Page 29: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Moving Least Squares (移動最小二乗)

•重み 𝑤𝑖 が、評価位置 𝐱に依存:𝑤𝑖 𝐱 = 𝑤( 𝐱 − 𝐱𝑖 )

•よく使われる関数 (Kernel):

• 𝑤 𝑟 = 𝑒−𝑟2/𝜎2

• 𝑤 𝑟 =1

𝑟2+𝜖2

•重み行列𝑊 が 𝐱に依存係数 𝑎, 𝑏, 𝑐, 𝑑 が 𝐱に依存

•評価点ごとに方程式を解き直す 29

𝑓 𝐱 = 𝑥 𝑦 𝑧 1

𝑎(𝐱)𝑏(𝐱)𝑐(𝐱)𝑑(𝐱)

𝐴⊺𝑊 𝐱 2𝐴 −1 𝐟𝐴⊺𝑊 𝐱 2

評価位置に近いほど大きな重み

Page 30: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

法線制約の導入

•各データ点が表す 1 次式を考える:𝑔𝑖 𝐱 = 𝑓𝑖 + 𝐱 − 𝐱𝑖

⊺𝐧𝑖

•各 𝑔𝑖 を現在位置で評価したときの誤差を最小化:

𝑖=1

𝑁

𝑤𝑖 𝐱 𝑓 𝐱 − 𝑔𝑖 𝐱2

30

𝑥 𝑦 𝑧 1𝑥 𝑦 𝑧 1

𝑥 𝑦 𝑧 1

𝑎𝑏𝑐𝑑

𝑔1 𝐱𝑔2 𝐱

𝑔𝑁 𝐱

・・・

・・・

=

𝑤1(𝐱)𝑤2(𝐱)

𝑤𝑁(𝐱)

𝑤1(𝐱)𝑤2(𝐱)

𝑤𝑁(𝐱)

Interpolating and Approximating Implicit Surfaces from Polygon Soup [Shen SIGGRAPH04]

Page 31: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

法線制約の導入

31

法線制約を利用 法線方向にオフセットして値を制約

Interpolating and Approximating Implicit Surfaces from Polygon Soup [Shen SIGGRAPH04]

Input : Polygon Soup Interpolation Approximation 1 Approximation 2 Approximation 3

Page 32: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Radial Basis Function による補間(放射基底関数)

32

Page 33: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

基本的な考え方

•関数 𝑓(𝐱)を、基底関数 𝜙(𝐱)の重み付き和として定義:

𝑓 𝐱 =𝑖=1

𝑁

𝑤𝑖𝜙(𝐱 − 𝐱𝑖)

•放射基底関数 𝜙(𝐱):𝐱の長さのみに依存

• 𝜙 𝐱 = 𝑒− 𝐱 2/𝜎2 (Gaussian)

• 𝜙 𝐱 =1

𝐱 2+𝑐2(Inverse Multiquadric)

•各データ点における制約 𝑓 𝐱𝑖 = 𝑓𝑖 から、重み係数 𝑤𝑖 を求める

33

基底関数をデータ位置𝐱𝑖 に平行移動

未知数

Page 34: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

基本的な考え方

34

𝑓 𝐱1 = 𝑤1𝜙1,1 + 𝑤2𝜙1,2 + ⋯ +𝑤𝑁𝜙1,𝑁 = 𝑓1

𝑓 𝐱2 = 𝑤1𝜙2,1 +𝑤2𝜙2,2 + ⋯ +𝑤𝑁𝜙2,𝑁 = 𝑓2

𝑓 𝐱𝑁 = 𝑤1𝜙𝑁,1 + 𝑤2𝜙𝑁,2 + ⋯ +𝑤𝑁𝜙𝑁,𝑁 = 𝑓𝑁

𝜙𝑖,𝑗 = 𝜙 𝐱𝑖 − 𝐱𝑗 と表記する

・・・

これを解けば良い

𝜙1,1 𝜙1,2 𝜙1,𝑁𝜙2,1 𝜙2,2 𝜙2,𝑁

𝜙𝑁,1 𝜙𝑁,2 𝜙𝑁,𝑁

𝑤1𝑤2

𝑤𝑁

𝑓1𝑓2

𝑓𝑁

・・・

=

・・・

Φ 𝐰 𝐟

𝑓 𝐱 =𝑖=1

𝑁

𝑤𝑖𝜙(𝐱 − 𝐱𝑖)

Page 35: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

Gaussian 基底関数を使う場合

•パラメタ 𝜎の選び方によって、結果が大きく変わる!

•なるべく滑らかな結果を得るには?

35

𝜙 𝐱 = 𝑒− 𝐱 2/𝜎2

Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course]

𝜎小 大

Page 36: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

関数の “曲がり具合” の尺度 (Thin-Plate Energy)

• 2 階微分 (=曲率) の大きさを空間全体で積分したもの:

𝐸2 𝑓 = න𝐱∈ℝ𝑑

Δ𝑓(𝐱) 2𝑑𝐱

• 1 次元空間の場合:

𝐸2 𝑓 = න𝑥∈ℝ

𝑓′′ 𝑥 2𝑑𝑥

• 2 次元空間の場合:

𝐸2 𝑓 = න𝐱∈ℝ2

𝑓xx 𝐱 2 + 2𝑓xy 𝐱 2 + 𝑓yy 𝐱 2 𝑑𝐱

• 3 次元空間の場合:

𝐸2 𝑓 = න𝐱∈ℝ3

𝑓xx 𝐱 2 + 𝑓yy 𝐱 2 + 𝑓zz 𝐱2 + 2𝑓xy 𝐱 2 + 2𝑓yz 𝐱

2 + 2𝑓zx 𝐱 2 𝑑𝐱

36

ラプラシアン (Laplacian) 演算子

Page 37: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

数学分野の知見•制約 𝑓 𝐱𝑖 = 𝑓𝑖 を満たす関数全体のうち、𝐸2 を最小化する関数は以下の基底を使った RBF として表せる:

• 1 次元空間の場合:𝜙 𝑥 = 𝑥 3

• 2 次元空間の場合:𝜙 𝐱 = 𝐱 2 log 𝐱

• 3 次元空間の場合:𝜙 𝐱 = 𝐱

•参考• 有限要素法の場合:離散化した領域上で 𝐸2 を最小化する 𝑓 を近似的に求める

• RBF の場合:グリーン関数を使って 𝐸2 を最小化する 𝑓 を解析的に求める

37Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course]

Page 38: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

線形項の追加

• 𝐸2[𝑓]は 2 階微分を使って定義される任意の線形項 𝑝 𝐱 = 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 を加えても不変:

𝐸2 𝑓 + 𝑝 = 𝐸2 𝑓 ∀𝑓

•線形項を未知数に含めることで、関数を一意に定める:

𝑓 𝐱 =𝑖=1

𝑁

𝑤𝑖 𝜙 𝐱 − 𝐱𝑖 + 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑

38

Page 39: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

線形項の追加

39

𝑓 𝐱1 = 𝑤1𝜙1,1 + 𝑤2𝜙1,2 + ⋯ +𝑤𝑁𝜙1,𝑁 + 𝑎𝑥1 + 𝑏𝑦1 + 𝑐𝑧1 + 𝑑 = 𝑓1

𝑓 𝐱2 = 𝑤1𝜙2,1 + 𝑤2𝜙2,2 + ⋯ +𝑤𝑁𝜙2,𝑁 + 𝑎𝑥2 + 𝑏𝑦2 + 𝑐𝑧2 + 𝑑 = 𝑓2

𝑓 𝐱𝑁 = 𝑤1𝜙𝑁,1 + 𝑤2𝜙𝑁,2 + ⋯ +𝑤𝑁𝜙𝑁,𝑁 + 𝑎𝑥𝑁 + 𝑏𝑦𝑁 + 𝑐𝑧𝑁 + 𝑑 = 𝑓𝑁

・・・

𝜙1,1 𝜙1,2 𝜙1,𝑁 𝑥1 𝑦1 𝑧1 1

𝜙2,1 𝜙2,2 𝜙2,𝑁 𝑥2 𝑦2 𝑧2 1

𝜙𝑁,1 𝜙𝑁,2 𝜙𝑁,𝑁 𝑥𝑁 𝑦𝑁 𝑧𝑁 1

𝑤1𝑤2

𝑤𝑁

𝑎𝑏𝑐𝑑

𝑓1𝑓2

𝑓𝑁

・・・

・・・

=・・・Φ

𝐰

𝐟P

𝐜

4 個の未知数 𝑎, 𝑏, 𝑐, 𝑑が追加されたので、4 個の制約を追加する必要がある

Page 40: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

追加の制約条件:線形関数の再現性

•「全てのデータ点の制約 𝐱𝑖 , 𝑓𝑖 がある線形関数からのサンプリングであるとき、RBF による補間結果はその線形関数と一致する」

•これを満たすための条件:• σ𝑖=1

𝑁 𝑤𝑖 = 0

• σ𝑖=1𝑁 𝑥𝑖𝑤𝑖 = 0

• σ𝑖=1𝑁 𝑦𝑖𝑤𝑖 = 0

• σ𝑖=1𝑁 𝑧𝑖𝑤𝑖 = 0

•行列がちょうど対称になる

40

𝜙1,1 𝜙1,2 𝜙1,𝑁 𝑥1 𝑦1 𝑧1 1

𝜙2,1 𝜙2,2 𝜙2,𝑁 𝑥2 𝑦2 𝑧2 1

𝜙𝑁,1 𝜙𝑁,2 𝜙𝑁,𝑁 𝑥𝑁 𝑦𝑁 𝑧𝑁 1

𝑥1 𝑥2 𝑥𝑁 0 0 0 0𝑦1 𝑦2 𝑦𝑁 0 0 0 0𝑧1 𝑧2 𝑦𝑁 0 0 0 01 1 1 0 0 0 0

𝑤1𝑤2

𝑤𝑁

𝑎𝑏𝑐𝑑

𝑓1𝑓2

𝑓𝑁0000

・・・

・・・

=

・・・

・・・

Φ 𝐰 𝐟P

𝐜P⊺

Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course]

Page 41: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

勾配制約の導入

•基底関数の勾配 𝛁𝜙の重み付き和を導入:

𝑓 𝐱 =𝑖=1

𝑁

𝑤𝑖𝜙 𝐱 − 𝐱𝑖 + 𝐯𝑖⊺𝛁𝜙 𝐱 − 𝐱𝑖 + 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑

• 𝑓 の勾配:

𝛁𝑓 𝐱 =𝑖=1

𝑁

𝑤𝑖𝛁𝜙 𝐱 − 𝐱𝑖 + H𝜙 𝐱 − 𝐱𝑖 𝐯𝑖 +𝑎𝑏𝑐

•勾配の制約 𝛁𝑓 𝐱𝑖 = 𝐧𝑖 を追加

41

H𝜙 𝐱 =

𝜙xx 𝜙xy 𝜙xz𝜙yx 𝜙yy 𝜙yz𝜙zx 𝜙zy 𝜙zz

Hermite Radial Basis Functions Implicits [Macedo CGF10]Hessian 行列 (関数)

未知数の3Dベクトル

Page 42: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

勾配の制約:

𝛁𝑓 𝐱1 = 𝑤1𝛁𝜙1,1 + H𝜙1,1𝐯1 + 𝑤2𝛁𝜙1,2 + H𝜙

1,2𝐯2 +⋯+𝑤𝑁𝛁𝜙1,𝑁 + H𝜙1,𝑁𝐯𝑁 +

𝑎𝑏𝑐= 𝐧1

値の制約:𝑓 𝐱1 = 𝑤1𝜙1,1 + 𝐯1

⊺𝛁𝜙1,1 + 𝑤2𝜙1,2 + 𝐯2⊺𝛁𝜙1,2 +⋯+𝑤𝑁𝜙1,𝑁 + 𝐯𝑁

⊺ 𝛁𝜙1,𝑁 + 𝑎𝑥1 + 𝑏𝑦1 + 𝑐𝑧1 + 𝑑 = 𝑓1

勾配制約の導入

• 1 番目のデータ点について:

42Hermite Radial Basis Functions Implicits [Macedo CGF10]

𝐧1

𝑓1𝜙1,1 𝛁𝜙1,1⊺

H𝜙1,1

𝛁𝜙1,1

𝜙1,2 𝛁𝜙1,2⊺

H𝜙1,2

𝛁𝜙1,2

𝜙1,𝑁 𝛁𝜙1,𝑁⊺

H𝜙1,𝑁

𝛁𝜙1,𝑁

𝑥1 𝑦1 𝑧1 1

1 0 0 0

0 1 0 0

0 0 1 0

・・・ =P1

𝑤1

𝐯1

𝐯2

𝑤2

・・・

𝐯𝑁

𝑤𝑁

𝑎𝑏𝑐𝑑

Φ1,1 Φ1,2 Φ1,𝑁

Page 43: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

43

𝐧1

𝑓1

=

𝑤1

𝐯1

𝐯2

𝑤2

・・・

𝐯𝑁

𝑤𝑁

𝑎𝑏𝑐𝑑

P1Φ1,1 Φ1,2 Φ1,𝑁

・・・・・・

P2Φ2,1 Φ2,2 Φ2,𝑁

P𝑁Φ𝑁,1 Φ𝑁,2 Φ𝑁,𝑁

・・・

𝑃1⊺ 𝑃2

⊺ 𝑃𝑁⊺

0 0 0 00 0 0 00 0 0 00 0 0 0

0000

𝐧2

𝑓2

𝐧𝑁

𝑓𝑁

・・・

・・・

Page 44: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

比較

44

勾配を制約 オフセットして値を制約

Page 45: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

参考サーベイ等

• State of the Art in Surface Reconstruction from Point Clouds [Berger EG14 STAR]

• A survey of methods for moving least squares surfaces [Cheng PBG08]

• Scattered Data Interpolation for Computer Graphics [AnjyoSIGGRAPH14 Course]

• An as-short-as-possible introduction to the least squares, weighted least squares and moving least squares for scattered data approximation and interpolation [Nealen TechRep04]

45

Page 46: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2019/...Shapeshop; Sketch-based solid modeling with blobtrees [Schmidt,Wyvill,Sousa,Jorge,SBIM05]

参考ページ

• http://en.wikipedia.org/wiki/Implicit_surface

• http://en.wikipedia.org/wiki/Radial_basis_function

• http://en.wikipedia.org/wiki/Thin_plate_spline

• http://en.wikipedia.org/wiki/Polyharmonic_spline

46