>   >  ピクサーのOpenSubdivほか、サブディビジョンサーフェス技術の系譜を探る
ピクサーのOpenSubdivほか、サブディビジョンサーフェス技術の系譜を探る

ピクサーのOpenSubdivほか、サブディビジョンサーフェス技術の系譜を探る

<2>特微適応分割手法の登場

Bスプラインのみの描画を目的として、特徴適応分割という手法が開発された(特異点周辺のみ必要な部分だけ分割する、Tノードは別途対応する)。メリットとしては、C^2が確保できる、制御点の数も比較的抑えられる、クリース、階層エディットに対応できる、というものがあげられる。1つのシェーダで処理が可能になる。

<参考>
"Feature-Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces" by MATTHIAS NIEßNER(University of Erlangen-Nuremberg)、CHARLES LOOP(Microsoft Research)、MARK MEYER and TONY DE ROSE(Pixar Animation Studios)


subdiv

特徴適応分割でのTノードの対処に関しては、OpenSubdiv3.0で、tess coordのリマッピングで接合を実現し、1DrawCall描画が可能になった。
終端キャップに関しては、リミット評価で求めた座標と法線を使用してフタをするDFAS(動的特徴適応分割)という手法も開発されている。終端キャップをテセレーションしない、常時レベル10までのパッチを描画しないという設定を、LODで両立させることで可能にしている。
OpenSubdivでは対応予定である。特異点毎にツリーを作り、必要なパッチだけを描画するというものだ。

<参考>
"Dynamic Feature-Adaptive Subdivision"


  • subdiv
  • subdiv


セミシャープクリースという考え方も重要である。こちらは、短編『ゲーリー爺さんのチェス』(原題:Geri's Game)制作の際、純正Catmull-Clarkに追加された。
サブディビジョン過程でシャープ規則をs回適用、その後スムーズ規則を適用するというものだ。パッチごとにシャープネスの値を追加することが出来、モデルによってはパッチ数を大きく減らすことが出来る。OpenSubdivでは対応済みである。Vertexシャープネス、階層エディットは対応できないので、必要なまで適応分割を行う。

<参考>
"Efficient Evaluation of Semi-Smooth Creases in Catmull-Clark Subdivision Surfaces"


  • subdiv
  • subdiv


subdiv

ディスプレイメントの微分の例

C^2連続性、二次微分の活用に関しては下記の文献、動画を参考にしていただきたい。

<参考>
"Analytic Displacement Mapping using Hardware Tessellation" by Matthias Nießner(University of Erlangen-Nuremberg)and Charles Loop(Microsoft Research)

<参考>
"Real-Time Deformation of Subdivision Surfaces from Object Collisions"


Real-Time Deformation of Subdivision Surfaces from Object Collisions

<3>レイトレースによるサブディビジョンサーフェス

続いては、DeNA/松岡 徹氏の講演について。まずはじめに、レイトレースによるサブディビジョンサーフェスのレンダリングに関して、説明が行われた。
現在レイトレーシングの主流となっているのは、サブディビジョンサーフェスではなく事前テッセレーションである。ラスタライズとのちがいとしては、2次レイトレーシングのためにテセレーション結果を残さないというもの、またメモリ消費が問題となっている。Embreeでは効率的なキャッシュが導入され、インタラクティブレイトレーシングが実現した。

<参考>
"Efficient Ray Tracing of Subdivision Surfaces using Tessellation Caching" by Carsten Benthin et al.


subdiv

講演を行う松岡 徹氏(DeNA)エンジニア

そもそも事前テッセレーションは必要なのかということに関しては、二次レイトレーシングに必要な分割精度が予測しにくいなど問題点もある。直接レンダリングとなった場合、サブディビジョンサーフェス(Catmull-Clark)はBスプラインパッチに変換して使用することが可能である。
Bスプラインパッチの交差判定としては、ニュートン法とベジェクリッピング法の二通りがあり、ベジェクリッピング法に関しては、メモリ消費を抑えながらリミットサーフェスを評価することができる。ベジェクリッピング法とはBezier曲線の凸包の性質を利用して直線と曲線との交点を求める方法で、元々Bezier曲面のレイトレーシング法のために開発されたものである。

<参考>
"Ray tracing trimmed rational surface patches"

"Curve intersection using Bézier clipping" by T.W. Sederberg∗∗, T. Nishita∗


また、特徴適応分割したBスプラインバッチを使用することでセミクリースなどを少ないパッチで描画することが可能となり、結果としてこちらもメモリ消費を抑えることができる。

  • subdiv
  • subdiv


以上のように、サブディビジョンサーフェスとは、曲面を描画するための表現方法のひとつであるが、ディスプレイスメントでディティールを作ることができ、またC^2連続な二次微分を解析的に求められ、様々な応用が可能となる技術である。
解像度はフリーであり、ハイエンド・ローエンドで共通データを持つことやレンダリング用と3Dプリント用で共通データを持つことも可能である。事前テッセレーションに比べメモリ効率がよく、レイトレーシングにも向いている。
マシンラーニングにも適しており、この先のハイエンドゲームやコンテンツの開発などに活かされていくだろう。松岡氏は、これが主流となるとデザイナーにも数学的知識が必要となり、そこが開発のネックとなってしまう危惧があるが、そうならないようツールの開発を手伝いたいとも述べていた。

TEXT & PHOTO_遊佐怜子(FLAME

特集