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

コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

Feb 01, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

–モデリング (3) –

2015年4月30日

高山健志

Page 2: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

陰関数表現による形状モデリング

• 3D空間上のスカラー場 𝐹 𝑥, 𝑦, 𝑧 に対し、𝐹 𝑥, 𝑦, 𝑧 = 0で定義されるサーフェス

• 別名:ゼロ等値面、陰関数 (ボリューム) 表現• サーフェス表現

• 𝐹 𝒑 が正 (負) のとき、𝒑は物体の外部 (内部)

•勾配 𝛻𝐹 は法線方向に一致• 𝛻𝐹(𝒑) = 1 ∀𝒑のとき、F は物体表面からの距離

2

半径 2 の球𝐹 𝑥, 𝑦, 𝑧 = 𝑥2 + 𝑦2 + 𝑧2 − 4 = 0

Page 3: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

陰関数の例

3

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

Page 4: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

陰関数の例:等電位面 (Metaball)

4

𝐹 𝒑 = 𝐹1 𝒑 − 𝐹2(𝒑)

𝐹 𝒑 = 𝐹1 𝒑 + 𝐹2(𝒑)

𝐹𝑖 𝒑 =𝑞𝑖𝒑 − 𝒑𝑖

𝐹 𝒑 = 𝐹1 𝒑 + 𝐹2 𝒑 + 𝐹3 𝒑 + 𝐹4 𝒑

Page 5: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

5

𝐹 𝒑 = 𝐹1(𝒑) 𝐹 𝒑 =2

3𝐹1 𝒑 +

1

3𝐹2 𝒑

𝐹 𝒑 =1

3𝐹1 𝒑 +

2

3𝐹2 𝒑 𝐹 𝒑 = 𝐹2(𝒑)

Page 6: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

6

Page 7: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

Constructive Solid Geometry (Boolean演算)

7

積:𝐹𝐴∩𝐵 𝒑 = min 𝐹𝐴 𝒑 , 𝐹𝐵 𝒑

和:𝐹𝐴∪𝐵 𝒑 = max 𝐹𝐴 𝒑 , 𝐹𝐵 𝒑

差:𝐹𝐴−𝐵 𝒑 = min 𝐹𝐴 𝒑 ,−𝐹𝐵 𝒑

Page 8: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

陰関数の表示方法:Marching Cubes

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

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

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

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

•最も有名 (特許問題でも )

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

Page 9: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

Marching Cubes の曖昧性

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

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

Page 10: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

Marching Tetrahedra

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

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

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

10

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

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

Page 11: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

11

Feature Sensitive Surface Extraction from Volume Data [Kobbelt SIGGRAPH01]

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

格子サイズ:65×65×65

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

改善版 (勾配方向も考慮)

Page 12: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

陰関数の表示方法:レイトレーシング

12

Modelling with implicit surfaces that interpolate [Turk TOG02]

GPU-based Fast Ray Casting for a Large Number of Metaballs [Kanamori EG08]

Page 13: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

応用例:スケッチベース 3D モデリング

13

A sketching interface for modeling the internal structures of 3d shapes [Owada SmartGraphics03]

ShapeShop: Sketch-Based Solid Modeling with BlobTrees [Schmidt SBIM05]

https://www.youtube.com/watch?v=GyJUG2VSvqw

Page 14: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

応用例:メッシュの穴埋め

14Filling holes in complex surfaces using volumetric diffusion [Davis 3DPVT02]

Page 15: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

15

Page 16: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

3D 形状の計測

•得られるデータ:点群• 3D座標

• 法線 (面の向き)• 得られない場合もある

• ノイズが多すぎる場合もある

16

Range Scanner

(LIDAR)

Structured Light

Multi-View Stereo

Depth Camera

Page 17: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

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

x, 𝑛𝑖y, 𝑛𝑖z , 𝑖 ∈ 1,… ,𝑁

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

• 𝛁𝑓 𝐱𝑖 = 𝐧𝑖

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

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

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

17

𝑓𝑖

Page 18: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

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

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

18

Modelling with implicit surfaces that interpolate [Turk TOG02]

Hermite Radial Basis Functions Implicits [Macedo CGF10]

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

Page 19: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

19

Page 20: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

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

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

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

20

𝐱 ≔ (𝑥, 𝑦, 𝑧)

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

𝑥𝑁 𝑦𝑁 𝑧𝑁 1

𝑎𝑏𝑐𝑑

𝑓1𝑓2

𝑓𝑁

・・・

・・・

=𝐴 𝐜 𝐟

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

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

・・・

Page 21: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

Overconstrained System

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

• fitting の誤差を最小化:

21

𝐴 𝐜 𝐟 𝐜𝐴 𝐟

𝐜 𝐴⊺𝐴 −1 𝐟

𝐴⊺ 𝐴⊺

𝐴⊺

= =

=𝑨 𝐜 − 𝐟 2 =

𝑖=1

𝑁

𝑓 𝐱𝑖 − 𝑓𝑖2

Page 22: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

LSQ の幾何的な解釈

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

𝑑2 = 𝛼𝐩 + 𝛽𝐪 − 𝐫 2

22

𝑝x𝑝y𝑝z

=𝛼𝛽

𝑞x𝑞y𝑞z

𝑟x𝑟y𝑟z

𝐪

𝐩

𝐫

𝛼

𝛽

𝑑

Page 23: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

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

•以下の誤差を最小化:

𝑖=1

𝑁

𝑤𝑖 𝑓 𝐱𝑖 − 𝑓𝑖2

23

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

𝑥𝑁 𝑦𝑁 𝑧𝑁 1

𝑎𝑏𝑐𝑑

𝑓1𝑓2

𝑓𝑁・・・

・・・

=

𝑤1𝑤2

𝑤𝑁

𝑤1𝑤2

𝑤𝑁

𝐴 𝐜 𝐟𝑊 𝑊

Page 24: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

24

𝐴 𝐜 𝐟

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

=

=

𝑊 𝑊

Page 25: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

Moving Least Squares (移動最小二乗)

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

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

• 𝑤 𝑟 = 𝑒−𝑟2/𝜎2

• 𝑤 𝑟 =1

𝑟2+𝜖2

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

25

𝑓 𝐱 = 𝑥 𝑦 𝑧 1

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

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

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

Page 26: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

法線制約の導入

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

⊺𝐧𝑖

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

𝑖=1

𝑁

𝑤𝑖 𝐱 𝑓 𝐱 − 𝑔𝑖 𝐱2

26

𝑥 𝑦 𝑧 1𝑥 𝑦 𝑧 1

𝑥 𝑦 𝑧 1

𝑎𝑏𝑐𝑑

𝑔1 𝐱𝑔2 𝐱

𝑔𝑁 𝐱

・・・

・・・

=

𝑤1(𝐱)𝑤2(𝐱)

𝑤𝑁(𝐱)

𝑤1(𝐱)𝑤2(𝐱)

𝑤𝑁(𝐱)

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

Page 27: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

法線制約の導入

27

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

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

Input : Polygon Soup Interpolation Approximation 1 Approximation 2 Approximation 3

Page 28: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

28

Page 29: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

基本的な考え方

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

𝑓 𝐱 = 𝑖=1

𝑁

𝑤𝑖𝜙(𝐱 − 𝐱𝑖)

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

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

• 𝜙 𝐱 =1

𝐱 2+𝑐2(Inverse Multiquadric)

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

29

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

Page 30: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

基本的な考え方

30

𝑓 𝐱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

𝑓𝑁

・・・

=

・・・

Φ 𝐰 𝐟

Page 31: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

Gaussian 基底関数を使う場合

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

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

31

𝜙 𝐱 = 𝑒− 𝐱2/𝜎2

Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course]

𝜎小 大

Page 32: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

関数の “曲がり具合” の尺度 (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 𝑑𝐱

32

Page 33: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

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

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

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

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

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

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

Page 34: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

線形項の追加

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

𝐸2 𝑓 + 𝑝 = 𝐸2[𝑓]

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

𝑓 𝐱 = 𝑖=1

𝑁

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

34

Page 35: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

線形項の追加

35

𝑓 𝐱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 36: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

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

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

•これを満たすための条件:• 𝑖=1𝑁 𝑤𝑖 = 0

• 𝑖=1𝑁 𝑥𝑖𝑤𝑖 = 0

• 𝑖=1𝑁 𝑦𝑖𝑤𝑖 = 0

• 𝑖=1𝑁 𝑧𝑖𝑤𝑖 = 0

36

𝜙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 37: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

勾配制約の導入

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

𝑓 𝐱 = 𝑖=1

𝑁

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

• 𝑓 の勾配:

𝛁𝑓 𝐱 = 𝑖=1

𝑁

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

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

37

H𝜙 =

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

Hermite Radial Basis Functions Implicits [Macedo CGF10] Hessian 行列

Page 38: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

勾配の制約:

𝛁𝑓 𝐱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 番目のデータ点について:

38Hermite 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 39: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

39

𝐧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 40: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

比較

40

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

Page 41: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

参考サーベイ等

• 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]

41

Page 42: コンピュータグラフィクス論research.nii.ac.jp/~takayama/teaching/utokyo-iscg-2015/...Scattered Data Interpolation for Computer Graphics [Anjyo SIGGRAPH14 Course] 33 線形項の追加

参考ページ

• 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

42