Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
サブディビジョンサーフェスの
すべてがわかる
グラフィックスエンジニア向け理論編
 ※ テクニカルな内容中心です。
 ※ スライドはセッション後にダウンロードできます(撮影不要)
手島 孝人(Pixar Animation Studios, t...
ポリゴンメッシュの法線とは何だろう
どう計算する?
・面法線の平均
・Newell’s method
・Max’s method
2
Filippo Tampieri, Newell's Method for Computing the Pla...
頂点に法線を与える目的=
  滑らかな面を表現したい
知覚する曲面=表現したいモノ
線形補間された法線 頂点法線
3
表現したいものは曲面
ポリゴン起点のワークフロー
 ローポリ→[サブディビジョン]→ハイポリ→→→理想形状?
曲面起点のワークフロー
 理想形状→[サブディビジョン]→曲面表現→[近似]→ポリゴン
ハイポリ化にはキリがない
メモリがいくらあって...
Demo
5
このセッションの内容
● サブディビジョンサーフェスの理論
○ リミット解析と特異頂点
● ハードウェアテセレーション
○ Tノード処理、終端キャッピング
○ 動的特徴適応型サブディビジョン
○ セミシャープクリースの効率的描画法
● C2
連...
Catmull−Clak サブディビジョンサーフェス
とは?
● 双3次一様Bスプラインサーフェスの拡張表現
● あらゆるメッシュトポロジに対応* 
● 割れ目がない (C0
=連続)
● 折れ目がない (C1
=接線が連続)
● 仕上げが美し...
双3次一様Bスプラインサーフェス
8
双3次一様Bスプラインは便利
● 自動的にC2
連続、制御点の数がベジェより少ない
● 凸包性・変動減少性があり、
結果が予測しやすく交差判定が単純
● ローカルサポート(局所的に編集ができる)
● 直線が厳密に表現できる(曲線区間との接続もC...
双3次一様Bスプラインで困ること
● トポロジに大きな制約がある
グリッド、円柱、トーラス型しか作れない
● 二次曲面(円柱や球)が厳密に作れない
ただしゲーム・映画ではあまり問題にならない
10
制御点の
形状
4角形 6角形 8角形 12角...
グリッドメッシュ以外も曲面で扱いたい
= サブディビジョンサーフェスの出番
※4角形スキームの場合(Catmull-Clark)
正則頂点=エッジが4つ
グリッドメッシュにはこれしかない
特異頂点=エッジが4つ以外
自由なトポロジには必要
11...
C2
連続の必要性
● C1
は反射に問題
● 二次微分にはリアルタイム向けの広い用途がある
○ 解析ディスプレイスメント
○ 曲率ベースSSS、AO
○ スペキュラーエイリアスの低減
12
C1
パッチ C2
パッチ
Catmull-Clark サブディビジョン
    簡単な規則
正則部(n=4)ではBスプラインのノット挿入と等価
→正則部はそれ以上分割する必要はない
13
v0
e1
0
e2
0
en
0
e3
0
v1
e1
1
e2
1
f1
1
...
正則部のサブディビジョンは不要
14
レベル 1
レベル 2
同じ曲面
リミット解析(正則部)
正則部はごく普通なBスプライン
→収束計算なしにBスプライン基底のテンソル積で
 リミットサーフェス、接線、法線が厳密に求められる
15
P(u, v)
V0
V1
V2
V3
特異点部(extraordinary vertex) の
リミットは?
まず再帰的に求める方法を考える
16
ローカルサブディビジョン行列
一回のサブディジョン操作
  =サブディビジョン行列の乗算
Sは特異点の価数依存の正方行列
特異点以外の新たな点は常に正則になる
行列の要素(重み)を「ステンシル」「マスク」とも呼ぶ
アフィン不変(各頂点の重みの総...
ローカルサブディビジョン行列 S
3価の場合
18
P={ v, ei
, fi
} P’={ v’, ei
’, fi
’ }
S3v
e0
e1
e2
f0
f1
f2
v’
e0
’ e1
’
e2
’
f0
’
f1
’
f2
’
Ca...
サブディビジョン行列のn乗と極限
サブディビジョン行列のn乗により
レベルn頂点群をレベル0頂点群で表現できる
n→∞でリミットサーフェス。極限が欲しいので対角化
サブディビジョンのアフィン不変性より、収束条件は少なくとも
「λ1
=1 かつそ...
リミット解析(特異頂点)
ブロック巡回行列なので離散フーリエ変換(DFT)
で対角化可能
● Catmull-Clark ローカルサブディビジョン行列の固有値
 (大きい方から3つが重要)
● λ1 の固有ベクトル
20
n = 頂点価数
リミット解析(特異頂点)
n価の特異点のリミット座標と法線
21
・OpenSubdiv を使ってください(Sdc Scheme)
・トポロジにしか依存しないので事前計算が有効
特異頂点での曲率は?
● 純正 Catmull-Clark では無限になりうる
● ローカルサブディビジョン行列の固有値でわかる
● 規則を追加すれば対応可能だが、実用上は3価・5価は問題ない
○ 高価数頂点を避ける
○ 特異頂点部分はなるべく...
デモ
23
基本理論おわり:ここまでのまとめ
● サブディビジョン規則を有限回適用だと
○ 何度やってもリミット面にならない
○ 法線計算は大量のポリゴン相手の古典的な近似手法になる
○ C2
連続にもならない
● リミット解析を使うと
○ 正則部は Bス...
ハードウェアアクセラレーション
● もっと簡単にリミットサーフェスを描画できないか
● ハードウェアテセレータを使いたい
グレゴリーパッチ近似 , ACC 特徴適応分割(OpenSubdiv)
手法 グレゴリーパッチで
コントロールメッシュの面...
グレゴリーパッチ
● 千代倉先生が1983年に開発・CADで実用化
● 20制御点、隣接パッチとの C1
連続を自由に構成可能
● u,v の有理形式のため四隅のゼロ除算、微分演算に注意
● Bスプラインに比べるとパッチごとの制御点は増える
●...
グレゴリーACC(近似Catmull-Clark)
リミット評価の接線を元にグレゴリーパッチを構築する
27
Charles Loop et al., Approximating Subdivision Surfaces with Gregor...
Bスプラインだけで描画できないか
→特徴適応分割
特異点周辺のみ必要なだけ分割する
T ノードは別途対応する
メリット:
● C2
が確保できる
● 制御点の数も比較的抑えられる
● クリース、階層エディットに対応できる
28
Matthias...
特徴適応分割での T ノードの対処
OpenSubdiv 3.0 では tess coord のリマッピングで
接合を実現  → 1 DrawCall 描画が可能に
29
終端キャップはどうする?
リミット評価で求めた座標と法線を使ってフタをする。
いくつか手法があるが、一長一短
30
?
方法 利点 欠点
4角形 高速、省メモリ 別 DrawCall
パッチ内は線形
充分な分割が必要
グレゴリーパッチ パッチ内...
DFAS(動的特徴適応分割)
● 終端キャップをテセレーションしたくない
  近似になってしまうし、連続性が落ちる
● 常時レベル10までのパッチを描画したくない
 LODで両立させる
31
Schäfer, H., et al. Dynami...
DFAS(動的特徴分割適応サブディビジョン)
特異点ごとにツリー構造を作り、必要なパッチだけを描画する
32
排他描画
排他描画 OpenSubdiv では対応予定(未実装)
セミシャープクリース
「ゲーリー爺さんのチェス」にて純正 Catmull-Clark に追加
クリース=境界規則の拡張
33
サブディビジョン過程でシャープ規則を s(シャープネス)回適用、
その後スムーズ規則を適用する
セミシャープクリース
34
シャープネス=2
レベル 0
レベル 1
シャープネス=1
シャープネス=0
レベル 2
通常はシャープネスレベルに到達するまで、
たとえ正則であってもサブディビジョンが必要
ただし、
Bスプラインパッチ中に同一シャ...
バウンダリ条件(無限シャープネス)
35
P0 P1
P2
P3
もしP2
のシャープネスが無限大だったら
P3
のかわりに P1
’ を使って Bスプライン
を構成すると、P2
で終わる補間になる
P1
’
P2
に対して
反転
(P3
は無...
セミシャープクリースの多項式構造
36
P0
P1
P2
P3
t=0
t=1
シャープネス=2 の場合、t = ¾ が境界
P0
P1
P2
P3t=0
t=1
2つのセグメントをつなぎ合わせる
(非整数シャープネスの場合は3つ)
シャープ区...
セミシャープクリースの効率的評価法
37
無限シャープ行列
セミシャープ分割
+リパラメータ行列
パラメータの区間に応じて
2つの行列を使い分ける
セミシャープクリースの効率的評価
● パッチごとにシャープネスの値を追加
● モデルによっては非常によく効き、パッチ数が激減
● 2つまたは3つの単純ベジェパッチに分割することも可能
● OpenSubdiv で対応済
● Vertex シャー...
C2
連続性、二次微分の活用
● 解析的ディスプレイスメント
● 第一基本量、第二基本量、曲率
● リアルタイムコリジョン変形
● シェーディングへの応用など…
39
Matthias Niessner, Charles Loop, Analy...
曲面上のディスプレイスメントと微分
40
正規化サーフェス法線の微分はちょっと難しい
サーフェス面 正規化法線 ディスプレイスメント
ディスプレイス面
ディスプレイス法線
サーフェス接線
ディスプレイスメントの微分
第一基本量・第二基本量
41
第二基本量
第一基本量
いずれもパッチから容易に求まる
シェイプ作用素、曲率
A:シェイプ作用素
(Shape Operator)
Aの固有値:主曲率
K:ガウス曲率
H:平均曲率
42
すべて容易に求まる
※ガウス曲率はE, F, G だけでも求まる
法線の微分
非正規化法線の微分
(ワインガルテンの定理)
43
正規化法線の微分
残りはこれ
ディスプレイスメントの微分
● パッチの(u, v)で少なくとも C1
な
シグナルが必要
● Ptex 構造で双二次Bスプラインの
スカラーフィールドを作る
● ついでにミップマップもする
44
サンプル点の 3x3 近傍を取って
2次Bスプ...
ディスプレイスメントの微分
45
ようやくディスプレイスメントの接線が計算できた
vも同様にし、外積で法線を得る
シェーダで実装可能
※そこまでしなくても・・・という方には
スクリーンスペースのディスプレイスメント微分でも一応法線計算は可能
M...
46
リアルタイムコリジョン変形
この構造はランタイムに更新することもできる
大きな利点:
 変形(ディスプレイスメント更新)した後の
 法線の再計算が不要
47
48
レイトレース法
49
● 反射・屈折などの表現
● GI(グローバルイルミネーション)
Sports Car Model Created By “Yasutoshi "Mirage" Mori”
https://github.com/Mirag...
レイトレースによるサブディビジョンサー
フェスのレンダリング
● 主流は事前テセレーション
● ラスタライズとの違い
○ 2次レイのためにテセレーション結果を残さなければなら
ない
○ メモリ消費が問題
● Embree では効率的なキャッシュ...
サブディビジョンサーフェスの
インタラクティブレイトレ
51
事前テセレーションは必須なのか?
● 2次レイに必要な分割精度は予測しにくい
○ 鏡に映った曲面
● ポリゴンを保持するため大幅なメモリ消費
● キャッシュ機構の導入による複雑化
○ 複数精度のキャッシュ保持
○ メモリ<ー>ファイルによるスル...
直接レンダリング
● サブディビジョンサーフェス(Catmull-Clark)はBスプライン
パッチに変換可能
● Bスプラインパッチの交差判定
○ ニュートン法
○ ベジェクリッピング法
● 任意精度で交差点を評価
○ レイディファレンシャル...
ベジェクリッピング法
● オリジナルは西田先生開発(1990年)
● 凸包性を使うため、4~5回のループでロバストに交点が求
まる
● メモリ消費を少なく抑え、リミットサーフェスを評価
● クラックを避けるためには、IEEE754 浮動小数点演...
● 特徴適応分割に対応したBスプラインパッチ取得
● セミクリースなどを少ないパッチで描画
● 少ないメモリ消費
55
特徴適応分割した
Bスプラインパッチ
デモ
56
サブディビジョンサーフェスまとめ
● Catmull-Clark サーフェスは3次Bスプラインの拡張
● Bスプライン関連のテクニックがほとんど使える
多くの技術は日本のCAD業界で80~90年代に開発済
● リミットサーフェスを描画したい。
...
サブディビジョンサーフェスの真価
● 曲面を描画するための表現方法
● ディスプレイスメントでディティールを作れる
● C2
連続な二次微分を解析的に求められ、
様々な応用が可能
● 解像度フリー
○ ハイエンド・ローエンドで共通データ
○ レ...
学習教材
Pixar in a box : カーン・アカデミー
ピクサー映画を素材に、サブディビジョンをわかりやすく解
説してます。英語ですが英語の勉強にも!
https://www.khanacademy.org/partner-
conte...
ありがとうございました
スライドはこちらから http://takahito-tejima.github.io
WebGL 版、SVG版 OpenSubdiv ビューワ もあります
(ちょっと重いけど) お試しください
 emscripten ...
付録 Appendix
61
スプラインサーフェス
スプライン=区分多項式補間
サブディビジョンで使われる多項式基底
● バーンスタインベジェ
● B-スプライン
● BOX-スプライン(Bスプラインの一般化)
Catmull-Clark では双3次一様Bスプラインを多用
...
様々なサブディビジョン手法(一部)
63
プライマル(面分割)
デュアル(頂点分割)
正則部の基底 特異頂点以外の
連続性
補間系(制御点を通る)
近似系(制御点を通らない)
Loop プライマル Boxスプライン C2 近似系
Catmull...
ノット挿入=サブディビジョン
Catmull-Clark
(3次)
Primal
Doo-Sabin
(2次)
Dual
64
・Rayの方向をz軸とする座標系にパッチを座標変換する
65
ベジェクリッピング法の手順1
X
Z
・Z軸を軸にしXY回転する
66
ベジェクリッピング法の手順2
Y
X
Y
X
Y軸とできるだけ平
行になるように
・X軸でベジェックリップ
・凸包性を利用して一気に範囲を絞り込む!!
67
ベジェクリッピング法の手順3
Y
X
Y
X
68
ベジェクリッピング法の手順4
Y
X
Y
X
Y
X
Y
X
・U方向・V方向を交互に手順2手順3を繰り返す
・十分に小さくなるまで・・・(概ね5〜6回程)
ベジェクリッピング法の手順5
・十分にパッチが小さいときZ値がそのまま視点からの距離とな
る
・交点の位置、法線などは微小パッチの平均したZ値、UV値な
どから求めることができる
X
Y
Z
70
レイディファレンシャル(Ray-Differential)
による分割精度取得
● 画面のピクセルごとに分割精度を求める
● 曲面の分割精度をピクセルの幅以下にすればよい
C2
グレゴリーパッチ
71
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Next
Upcoming SlideShare
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Next
Download to read offline and view in fullscreen.

24

Share

CEDEC2015 サブディビジョンサーフェスの すべてがわかる

Download to read offline

CEDEC2015 発表資料

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

CEDEC2015 サブディビジョンサーフェスの すべてがわかる

  1. 1. サブディビジョンサーフェスの すべてがわかる グラフィックスエンジニア向け理論編  ※ テクニカルな内容中心です。  ※ スライドはセッション後にダウンロードできます(撮影不要) 手島 孝人(Pixar Animation Studios, takahito@pixar.com) 松岡 徹 (DeNA, toru.matsuoka@gmail.com)
  2. 2. ポリゴンメッシュの法線とは何だろう どう計算する? ・面法線の平均 ・Newell’s method ・Max’s method 2 Filippo Tampieri, Newell's Method for Computing the Plane Equation of a Polygon, Graphics Gems III, Academic Press, 1992 Nelson Max, Weights for Computing Vertex Normals from Facet Normals, Journal of Graphics Tools, Volume 4, Issue 2, 1999
  3. 3. 頂点に法線を与える目的=   滑らかな面を表現したい 知覚する曲面=表現したいモノ 線形補間された法線 頂点法線 3
  4. 4. 表現したいものは曲面 ポリゴン起点のワークフロー  ローポリ→[サブディビジョン]→ハイポリ→→→理想形状? 曲面起点のワークフロー  理想形状→[サブディビジョン]→曲面表現→[近似]→ポリゴン ハイポリ化にはキリがない メモリがいくらあっても足りない ? 任意の精度で出力可能 コンパクトな高次表現 4
  5. 5. Demo 5
  6. 6. このセッションの内容 ● サブディビジョンサーフェスの理論 ○ リミット解析と特異頂点 ● ハードウェアテセレーション ○ Tノード処理、終端キャッピング ○ 動的特徴適応型サブディビジョン ○ セミシャープクリースの効率的描画法 ● C2 連続性の応用 ○ 解析的ディスプレースメントマッピング ○ リアルタイムコリジョン変形 ● レイトレーシング ○ ベジェクリッピングによる直接レイトレ ● 結論:曲面は素敵 6
  7. 7. Catmull−Clak サブディビジョンサーフェス とは? ● 双3次一様Bスプラインサーフェスの拡張表現 ● あらゆるメッシュトポロジに対応*  ● 割れ目がない (C0 =連続) ● 折れ目がない (C1 =接線が連続) ● 仕上げが美しい(C2 =曲率が連続) *基本的には2次元多様体 7
  8. 8. 双3次一様Bスプラインサーフェス 8
  9. 9. 双3次一様Bスプラインは便利 ● 自動的にC2 連続、制御点の数がベジェより少ない ● 凸包性・変動減少性があり、 結果が予測しやすく交差判定が単純 ● ローカルサポート(局所的に編集ができる) ● 直線が厳密に表現できる(曲線区間との接続もC2 連続) ● 計算がシンプルで座標のみ ノット・ウェイトなど追加データ不要 ● 3次ベジェとの変換も容易 9
  10. 10. 双3次一様Bスプラインで困ること ● トポロジに大きな制約がある グリッド、円柱、トーラス型しか作れない ● 二次曲面(円柱や球)が厳密に作れない ただしゲーム・映画ではあまり問題にならない 10 制御点の 形状 4角形 6角形 8角形 12角形 真円との誤差 2.8% 0.4% 0.1% 0.02% むしろ割りすぎないように注意!サブディビジョンでは 周辺の特異頂点の価数が上がる=シワになりやすい ほとんどの場合は6角形で十分、4角形でもいい
  11. 11. グリッドメッシュ以外も曲面で扱いたい = サブディビジョンサーフェスの出番 ※4角形スキームの場合(Catmull-Clark) 正則頂点=エッジが4つ グリッドメッシュにはこれしかない 特異頂点=エッジが4つ以外 自由なトポロジには必要 11 正則頂点 vs 特異頂点(extraordinary vertex)
  12. 12. C2 連続の必要性 ● C1 は反射に問題 ● 二次微分にはリアルタイム向けの広い用途がある ○ 解析ディスプレイスメント ○ 曲率ベースSSS、AO ○ スペキュラーエイリアスの低減 12 C1 パッチ C2 パッチ
  13. 13. Catmull-Clark サブディビジョン     簡単な規則 正則部(n=4)ではBスプラインのノット挿入と等価 →正則部はそれ以上分割する必要はない 13 v0 e1 0 e2 0 en 0 e3 0 v1 e1 1 e2 1 f1 1 e3 1 f2 1 fn 1
  14. 14. 正則部のサブディビジョンは不要 14 レベル 1 レベル 2 同じ曲面
  15. 15. リミット解析(正則部) 正則部はごく普通なBスプライン →収束計算なしにBスプライン基底のテンソル積で  リミットサーフェス、接線、法線が厳密に求められる 15 P(u, v) V0 V1 V2 V3
  16. 16. 特異点部(extraordinary vertex) の リミットは? まず再帰的に求める方法を考える 16
  17. 17. ローカルサブディビジョン行列 一回のサブディジョン操作   =サブディビジョン行列の乗算 Sは特異点の価数依存の正方行列 特異点以外の新たな点は常に正則になる 行列の要素(重み)を「ステンシル」「マスク」とも呼ぶ アフィン不変(各頂点の重みの総和は1) 17 Pn Pn+1 S
  18. 18. ローカルサブディビジョン行列 S 3価の場合 18 P={ v, ei , fi } P’={ v’, ei ’, fi ’ } S3v e0 e1 e2 f0 f1 f2 v’ e0 ’ e1 ’ e2 ’ f0 ’ f1 ’ f2 ’ Catmull-Clark 規則を 表現する係数行列
  19. 19. サブディビジョン行列のn乗と極限 サブディビジョン行列のn乗により レベルn頂点群をレベル0頂点群で表現できる n→∞でリミットサーフェス。極限が欲しいので対角化 サブディビジョンのアフィン不変性より、収束条件は少なくとも 「λ1 =1 かつそれ以外の固有値は1未満」 を満たすはず 19
  20. 20. リミット解析(特異頂点) ブロック巡回行列なので離散フーリエ変換(DFT) で対角化可能 ● Catmull-Clark ローカルサブディビジョン行列の固有値  (大きい方から3つが重要) ● λ1 の固有ベクトル 20 n = 頂点価数
  21. 21. リミット解析(特異頂点) n価の特異点のリミット座標と法線 21 ・OpenSubdiv を使ってください(Sdc Scheme) ・トポロジにしか依存しないので事前計算が有効
  22. 22. 特異頂点での曲率は? ● 純正 Catmull-Clark では無限になりうる ● ローカルサブディビジョン行列の固有値でわかる ● 規則を追加すれば対応可能だが、実用上は3価・5価は問題ない ○ 高価数頂点を避ける ○ 特異頂点部分はなるべく平らに(5角形・6角形を使用) 22 λ1 λ2 λ3 λ4 λ5 λ6 λ4 / (λ2 *λ3 ) 3価 1 0.41 0.41 0.17 0.15 0.15 0.99 < 1 : わずかに平坦 4価 1 0.50 0.50 0.25 0.25 0.25 ... 1.00 : C2 連続 5価 1 0.55 0.55 0.34 0.34 0.32 ... 1.12 > 1 : 発散 6価 1 0.58 0.58 0.41 0.41 0.38 ... 1.22 > 1 : 発散
  23. 23. デモ 23
  24. 24. 基本理論おわり:ここまでのまとめ ● サブディビジョン規則を有限回適用だと ○ 何度やってもリミット面にならない ○ 法線計算は大量のポリゴン相手の古典的な近似手法になる ○ C2 連続にもならない ● リミット解析を使うと ○ 正則部は Bスプラインで一網打尽 分割は不要 ○ 特異頂点は DFT で直接計算   繰り返し演算は不要 ■ その周辺は Stam method も利用可能 ○ 法線(一次微分)も曲率(二次微分)も求まる 24
  25. 25. ハードウェアアクセラレーション ● もっと簡単にリミットサーフェスを描画できないか ● ハードウェアテセレータを使いたい グレゴリーパッチ近似 , ACC 特徴適応分割(OpenSubdiv) 手法 グレゴリーパッチで コントロールメッシュの面ごとに近似 Bスプラインパッチの階層集合に分解 利点 パッチ数が少ない Tノードが出来ない ほぼ C2 連続 終端キャップ(特異頂点周辺)以外は厳密解 クリースや階層エディットに対応 欠点 20点グレゴリーパッチは C1 連続 特異頂点を含むパッチは近似解 3角形と4角形(+5角形)に限られる クリース対応がきびしい ACCに比べパッチ数が多い Tノードのテセレーションに注意が必要 25
  26. 26. グレゴリーパッチ ● 千代倉先生が1983年に開発・CADで実用化 ● 20制御点、隣接パッチとの C1 連続を自由に構成可能 ● u,v の有理形式のため四隅のゼロ除算、微分演算に注意 ● Bスプラインに比べるとパッチごとの制御点は増える ● 使い方によっては非常に便利 ● ACC(Approximate Catmull-Clark)のメイン手法 26
  27. 27. グレゴリーACC(近似Catmull-Clark) リミット評価の接線を元にグレゴリーパッチを構築する 27 Charles Loop et al., Approximating Subdivision Surfaces with Gregory Patches for Hardware Tessellation SIGGRAPH Asia Conference Proceedings 2009
  28. 28. Bスプラインだけで描画できないか →特徴適応分割 特異点周辺のみ必要なだけ分割する T ノードは別途対応する メリット: ● C2 が確保できる ● 制御点の数も比較的抑えられる ● クリース、階層エディットに対応できる 28 Matthias Niessner et al., Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces ACM Transactions on Graphics, Vol. 31 No. 1 Article 6 January 2012
  29. 29. 特徴適応分割での T ノードの対処 OpenSubdiv 3.0 では tess coord のリマッピングで 接合を実現  → 1 DrawCall 描画が可能に 29
  30. 30. 終端キャップはどうする? リミット評価で求めた座標と法線を使ってフタをする。 いくつか手法があるが、一長一短 30 ? 方法 利点 欠点 4角形 高速、省メモリ 別 DrawCall パッチ内は線形 充分な分割が必要 グレゴリーパッチ パッチ内で近似テセレーション可能 特異点からの辺上で C1 別 DrawCall 負荷高い 制御点が増える Bスプラインパッチ パッチ内で近似テセレーション可能 単一DrawCall で全メッシュ描画できる 特異点からの辺上で C0 制御点が増える
  31. 31. DFAS(動的特徴適応分割) ● 終端キャップをテセレーションしたくない   近似になってしまうし、連続性が落ちる ● 常時レベル10までのパッチを描画したくない  LODで両立させる 31 Schäfer, H., et al. Dynamic feature-adaptive subdivision. Proceedings of the 19th Symposium on Interactive 3D Graphics and Games. ACM, 2015.
  32. 32. DFAS(動的特徴分割適応サブディビジョン) 特異点ごとにツリー構造を作り、必要なパッチだけを描画する 32 排他描画 排他描画 OpenSubdiv では対応予定(未実装)
  33. 33. セミシャープクリース 「ゲーリー爺さんのチェス」にて純正 Catmull-Clark に追加 クリース=境界規則の拡張 33 サブディビジョン過程でシャープ規則を s(シャープネス)回適用、 その後スムーズ規則を適用する
  34. 34. セミシャープクリース 34 シャープネス=2 レベル 0 レベル 1 シャープネス=1 シャープネス=0 レベル 2 通常はシャープネスレベルに到達するまで、 たとえ正則であってもサブディビジョンが必要 ただし、 Bスプラインパッチ中に同一シャープネスの クリースエッジが一つだけ直線的にある場合 クリースエッジ レベル 3 明示的にサブディビジョンせずに リミット評価する方法がある
  35. 35. バウンダリ条件(無限シャープネス) 35 P0 P1 P2 P3 もしP2 のシャープネスが無限大だったら P3 のかわりに P1 ’ を使って Bスプライン を構成すると、P2 で終わる補間になる P1 ’ P2 に対して 反転 (P3 は無視)
  36. 36. セミシャープクリースの多項式構造 36 P0 P1 P2 P3 t=0 t=1 シャープネス=2 の場合、t = ¾ が境界 P0 P1 P2 P3t=0 t=1 2つのセグメントをつなぎ合わせる (非整数シャープネスの場合は3つ) シャープ区間はバウンダリ条件と同じ(赤) 遷移区間はシャープネス回乗算したサブディビジョン 行列を掛ける。 パラメータ範囲を合わせるために外挿部分が出来る (青)が、必要なパラメータ区間では正しい t= ¾ P1 ’
  37. 37. セミシャープクリースの効率的評価法 37 無限シャープ行列 セミシャープ分割 +リパラメータ行列 パラメータの区間に応じて 2つの行列を使い分ける
  38. 38. セミシャープクリースの効率的評価 ● パッチごとにシャープネスの値を追加 ● モデルによっては非常によく効き、パッチ数が激減 ● 2つまたは3つの単純ベジェパッチに分割することも可能 ● OpenSubdiv で対応済 ● Vertex シャープネス(コーナー)・階層エディットは 対応できないので、やはり必要なまで適応分割を行う 38 Matthias Niessner, et al. Efficient Evaluation of Semi-Smooth Creases in Catmull-Clark Subdivision Surfaces Eurographics Proceedings, Cagliari, 2012
  39. 39. C2 連続性、二次微分の活用 ● 解析的ディスプレイスメント ● 第一基本量、第二基本量、曲率 ● リアルタイムコリジョン変形 ● シェーディングへの応用など… 39 Matthias Niessner, Charles Loop, Analytic Displacement Mapping using Hardware Tessellation ACM Transactions on Graphics, Vol. 32 No. 3 Article 26 June 2013 Schäfer, Henry, et al. "Real-Time Deformation of Subdivision Surfaces from Object Collisions." Eurographics/ACM SIGGRAPH Symposium on High Performance Graphics. The Eurographics Association, 2014.
  40. 40. 曲面上のディスプレイスメントと微分 40 正規化サーフェス法線の微分はちょっと難しい サーフェス面 正規化法線 ディスプレイスメント ディスプレイス面 ディスプレイス法線 サーフェス接線 ディスプレイスメントの微分
  41. 41. 第一基本量・第二基本量 41 第二基本量 第一基本量 いずれもパッチから容易に求まる
  42. 42. シェイプ作用素、曲率 A:シェイプ作用素 (Shape Operator) Aの固有値:主曲率 K:ガウス曲率 H:平均曲率 42 すべて容易に求まる ※ガウス曲率はE, F, G だけでも求まる
  43. 43. 法線の微分 非正規化法線の微分 (ワインガルテンの定理) 43 正規化法線の微分 残りはこれ
  44. 44. ディスプレイスメントの微分 ● パッチの(u, v)で少なくとも C1 な シグナルが必要 ● Ptex 構造で双二次Bスプラインの スカラーフィールドを作る ● ついでにミップマップもする 44 サンプル点の 3x3 近傍を取って 2次Bスプライン補間し、値と微分を得る ピンクの縁は隣接フェイスのテクセル のコピー サンプルは OpenSubdiv に一応ある (実装例:最適ではない)
  45. 45. ディスプレイスメントの微分 45 ようやくディスプレイスメントの接線が計算できた vも同様にし、外積で法線を得る シェーダで実装可能 ※そこまでしなくても・・・という方には スクリーンスペースのディスプレイスメント微分でも一応法線計算は可能 Morten S. Mikkelsen, Bump Mapping Unparametrized Surfaces on the GPU https://dl.dropboxusercontent.com/u/55891920/papers/mm_sfgrad_bump.pdf ディスプレイス法線
  46. 46. 46
  47. 47. リアルタイムコリジョン変形 この構造はランタイムに更新することもできる 大きな利点:  変形(ディスプレイスメント更新)した後の  法線の再計算が不要 47
  48. 48. 48
  49. 49. レイトレース法 49 ● 反射・屈折などの表現 ● GI(グローバルイルミネーション) Sports Car Model Created By “Yasutoshi "Mirage" Mori” https://github.com/MirageYM/3DModels
  50. 50. レイトレースによるサブディビジョンサー フェスのレンダリング ● 主流は事前テセレーション ● ラスタライズとの違い ○ 2次レイのためにテセレーション結果を残さなければなら ない ○ メモリ消費が問題 ● Embree では効率的なキャッシュを導入 ○ インタラクティブレイトレが実現 50 Carsten Benthin et al., Efficient Ray Tracing of Subdivision Surfaces using Tessellation Caching Proceedings of the 7th High-Performance Graphics Conference 2015
  51. 51. サブディビジョンサーフェスの インタラクティブレイトレ 51
  52. 52. 事前テセレーションは必須なのか? ● 2次レイに必要な分割精度は予測しにくい ○ 鏡に映った曲面 ● ポリゴンを保持するため大幅なメモリ消費 ● キャッシュ機構の導入による複雑化 ○ 複数精度のキャッシュ保持 ○ メモリ<ー>ファイルによるスループットの低下 52
  53. 53. 直接レンダリング ● サブディビジョンサーフェス(Catmull-Clark)はBスプライン パッチに変換可能 ● Bスプラインパッチの交差判定 ○ ニュートン法 ○ ベジェクリッピング法 ● 任意精度で交差点を評価 ○ レイディファレンシャルで精度取得 ● 特徴適応分割したBスプラインパッチ取得 53
  54. 54. ベジェクリッピング法 ● オリジナルは西田先生開発(1990年) ● 凸包性を使うため、4~5回のループでロバストに交点が求 まる ● メモリ消費を少なく抑え、リミットサーフェスを評価 ● クラックを避けるためには、IEEE754 浮動小数点演算の挙 動に注意が必要 (特徴適応分割での Watertight 評価と同等) 54 Takahito Tejima and Toru Matsuoka, Direct Ray Tracing of Full-Featured Subdivision Surfaces with Bezier Clipping. Journal of Computer Graphics Techniques (JCGT), vol. 4, no. 1, 69-83, 2015
  55. 55. ● 特徴適応分割に対応したBスプラインパッチ取得 ● セミクリースなどを少ないパッチで描画 ● 少ないメモリ消費 55 特徴適応分割した Bスプラインパッチ
  56. 56. デモ 56
  57. 57. サブディビジョンサーフェスまとめ ● Catmull-Clark サーフェスは3次Bスプラインの拡張 ● Bスプライン関連のテクニックがほとんど使える 多くの技術は日本のCAD業界で80~90年代に開発済 ● リミットサーフェスを描画したい。 ○ 有限回分割した4角形を描画するのでは不十分 ● 法線や二次微分は解析的に正しく求まる ● 微分幾何に親しもう ○ 物体の形状を決めているのは、曲率 57
  58. 58. サブディビジョンサーフェスの真価 ● 曲面を描画するための表現方法 ● ディスプレイスメントでディティールを作れる ● C2 連続な二次微分を解析的に求められ、 様々な応用が可能 ● 解像度フリー ○ ハイエンド・ローエンドで共通データ ○ レンダリングと3Dプリントで共通データ ● 事前テセレーションに比べメモリ効率がよく、 レイトレにも向いている ● さようならポリゴン、今までありがとう 58
  59. 59. 学習教材 Pixar in a box : カーン・アカデミー ピクサー映画を素材に、サブディビジョンをわかりやすく解 説してます。英語ですが英語の勉強にも! https://www.khanacademy.org/partner- content/pixar/modeling-character/modeling- subdivision/a/start-here-character 59
  60. 60. ありがとうございました スライドはこちらから http://takahito-tejima.github.io WebGL 版、SVG版 OpenSubdiv ビューワ もあります (ちょっと重いけど) お試しください  emscripten 利用、PC/Mac/mobile ご質問等は takahito@pixar.com まで ご感想、つぶやき、ひとりごとは @gishicho, @ototoi まで 60
  61. 61. 付録 Appendix 61
  62. 62. スプラインサーフェス スプライン=区分多項式補間 サブディビジョンで使われる多項式基底 ● バーンスタインベジェ ● B-スプライン ● BOX-スプライン(Bスプラインの一般化) Catmull-Clark では双3次一様Bスプラインを多用 62
  63. 63. 様々なサブディビジョン手法(一部) 63 プライマル(面分割) デュアル(頂点分割) 正則部の基底 特異頂点以外の 連続性 補間系(制御点を通る) 近似系(制御点を通らない) Loop プライマル Boxスプライン C2 近似系 Catmull-Clark プライマル Bスプライン C2 近似系 Doo-Sabin デュアル Bスプライン C1 近似系 4-8 プライマル + デュアル Boxスプライン C4 近似系 Kobbelt プライマル 一般多項式 C1 補間系 Butterfly プライマル 一般多項式 C1 補間系 その他いろいろ 今でも学会では毎年のように新手法や改良型が提案されているが、実用されてるのは ほぼ Loop(三角形) と Catmull-Clark(四角形、一般) のみ (Softimage が Doo-Sabin 使っていたが・・・)
  64. 64. ノット挿入=サブディビジョン Catmull-Clark (3次) Primal Doo-Sabin (2次) Dual 64
  65. 65. ・Rayの方向をz軸とする座標系にパッチを座標変換する 65 ベジェクリッピング法の手順1 X Z
  66. 66. ・Z軸を軸にしXY回転する 66 ベジェクリッピング法の手順2 Y X Y X Y軸とできるだけ平 行になるように
  67. 67. ・X軸でベジェックリップ ・凸包性を利用して一気に範囲を絞り込む!! 67 ベジェクリッピング法の手順3 Y X Y X
  68. 68. 68 ベジェクリッピング法の手順4 Y X Y X Y X Y X ・U方向・V方向を交互に手順2手順3を繰り返す ・十分に小さくなるまで・・・(概ね5〜6回程)
  69. 69. ベジェクリッピング法の手順5 ・十分にパッチが小さいときZ値がそのまま視点からの距離とな る ・交点の位置、法線などは微小パッチの平均したZ値、UV値な どから求めることができる X Y Z
  70. 70. 70 レイディファレンシャル(Ray-Differential) による分割精度取得 ● 画面のピクセルごとに分割精度を求める ● 曲面の分割精度をピクセルの幅以下にすればよい
  71. 71. C2 グレゴリーパッチ 71
  • ssuseref53bf2

    Jun. 17, 2020
  • ssuser3489de

    Jun. 9, 2020
  • dekapoppo

    Nov. 19, 2019
  • shingohayakawa10

    Nov. 11, 2019
  • syarion

    Nov. 4, 2019
  • MakotoYazaki1

    May. 22, 2019
  • naota70

    Mar. 29, 2019
  • akatuki

    Oct. 25, 2018
  • taishiahagon

    Sep. 18, 2018
  • ssuser1512b0

    Jan. 21, 2018
  • ssuser5e15c6

    Jan. 19, 2018
  • ssuser8ede04

    Apr. 22, 2017
  • bikoasa

    Mar. 10, 2016
  • luxidea

    Feb. 13, 2016
  • Fairy_Floss

    Feb. 5, 2016
  • sehm

    Feb. 5, 2016
  • leohayakawa

    Feb. 5, 2016
  • tokoik

    Feb. 5, 2016
  • buti_s

    Dec. 14, 2015
  • yukiito7359

    Nov. 10, 2015

CEDEC2015 発表資料

Views

Total views

13,215

On Slideshare

0

From embeds

0

Number of embeds

4,969

Actions

Downloads

72

Shares

0

Comments

0

Likes

24

×