オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2012/08/14 00:00

イベント

[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?

画像集#019のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
 「Toy Story」(トイストーリー)シリーズなどのCGアニメーション制作スタジオとして知られているPixar Animation Studios(ピクサー・アニメーション・スタジオ,以下,Pixar)だが,実はCG映画業界で広く使われているレンダラー「RenderMan」をはじめとしたCG制作関連ツールや,ベースとなる技術開発を行っていることはあまり知られていないかもしれない。

 そんなPixarは,SIGGRAPHに毎年出展し,同社の技術者やアーティストがさまざまなセッションで講演を行っている。今年のSIGGRAPH 2012にも同社は例年どおり出展しており,非常にユニークかつ大きな発表を行ったのでレポートしてみたい。


Pixar初のオープンソースプロジェクト「OpenSubdiv」


 Pixarには,CG制作工程の時間を短縮するためにリアルタイムグラフィックス関連技術を開発する,「GPUチーム」という部隊が存在している。今回紹介されたのは,彼らが取り組んでいるプロジェクトの1つである「OpenSubdiv」(オープンサブディブ)と呼ばれるものだ。

 「Open」と名付けられていることからも予想できるとは思うが,OpenSubdivは,オープンソースプロジェクトであり,パテントフリー(=特許使用料の支払いなし)で利用できる技術。Pixarが,こうしたオープンソースプロジェクトを行うのは初の試みとなる。

 SIGGRAPH 2012の会期中には,Pixarからの正式なニュースリリースが配信されていなかったのだが,PixarのGPUチームは,SIGGRAPH 2012の会期中,いくつかの場所でOpenSubdivプロジェクトのアナウンスを行っていた。今回レポートするのは,彼らの“OpenSubdivアナウンス行脚”の1つ,NVIDIAブースで行われたセッションに基づくものになる。

画像集#004のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
ステージセッションで講演を行ったDirk Van Gelder氏(Pixar Animation Studios)
画像集#005のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
NVIDIAブース


Catmull-Clark法とPixar


 さて,OpenSubdivは,「オープンソースのSubdivision surface(サブディビジョン・サーフェス)技術」なのだが,サブディビジョン・サーフェスとは何なのか。端的に言ってしまえば「Tessellation」(テッセレーション)のことである。つまり,入力された3Dモデルをより細かなクアッド(四角形)やポリゴン(三角形)に分割し,3Dモデル形状を滑らかな平面構成に変換する技術というわけだ。

画像集#007のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
 OpenSubdivでは,基本的な3Dモデルデータを粗い頂点情報で管理しておき,アニメーション処理などは粗い頂点情報の状態のままで行う。そして,サブディビジョン・サーフェス(テッセレーション)で滑らかな曲面へとレンダリングし,最終的な映像とするわけだ。
 この手法として有名なのは,1978年にEdwin Catmull氏とJim Clark氏が発表した,いわゆるCatmull-Clark(カトマル・クラーク)法のテッセレーションである。

 Catmull-Clark法のテッセレーションは,1998年にPixarの手によってCGアニメーション向けの実践的なものへと拡張され,その後,Pixarが手がけてきたほぼすべてのCGアニメーション作品で採用されてきている。

Catmull-Clark法を採用したPixar初のCGアニメーション作品が,この「Geri's Game」だ
画像集#006のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?

 頂点の価数(=隣接している頂点の数)が4となるクアッドの場合,Catmull-Clark法のテッセレーションにより生成される曲面は,双三次B-Spline曲面(Bicubic B-Spline Curved Surface,バイキュービックBスプライン・カーブド サーフェス)と等しくなる。問題となるのは,各頂点の価数が4ではなく,たとえば3や5といった頂点のクアッドに対するテッセレーションにおいての場合だ。
 そういった問題のある箇所において,Catmull-Clark法では特別な処理を行い,必要な精度まで再帰的にクアッドへと分割することになる。

画像集#008のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
標準頂点だけで構成された平面
画像集#009のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
特異頂点を含む平面

左はCatmull-Clark法によるもので,右はPN Triangleという技法(旧ATI Technologiesの「N-Patch」と同じ)を使ったものだ。左側の,青で塗られている部分が特異頂点のあるクアッド。特異頂点の箇所に注目すると,右では不連続な曲面になっているのが見て取れる。これを回避できるのがCatmull-Clark法というわけだ
画像集#010のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?

 Catmull-Clark法に限らず,こうした算術的な曲面分割では,角張ったものが何でもかんでも丸くなってしまうため,3Dモデルの形状が全体的に丸まっているような結果を生んでしまう。たとえば,刀のような武器ならば,鋭利で角張った部分があるべきだし,プラスチック製の日用品などでは,尖っているわけではないが,やや丸みを帯びた角(Semi-Sharp Crease,本稿では以下,「丸角」と記載する)などが望ましいといえるだろう。

 そこでPixarは,そうした特異箇所の取り扱いを,長年制作してきたCGアニメを通し,コンテンツ作成パイプラインに適合するよう成熟させてきた。前述した角や丸角の表現にあたっては,3Dモデル側にそうしたテッセレーション制御を行うようなパラメータを仕込んでおく仕組みを開発している。

 こうしてPixarは,Catmull-Clark法をベースとした3Dモデル表現の標準化環境を整備した。今ではMayaをはじめ,多くのDCC(Digital Content Creation )ツールでこのメソッドがサポートされているのだ。
 ただ,このメソッドを利用するときのデータ構造やその取り扱いアルゴリズムなどの特許は,当然のことながらPixarが広く押さえている。要するに,「Cutmull-Clark法をモデリングでマトモに使えるようにするための基本技術特許を押さえているのがPixarなのだ」と理解しておいてもらえればと思うが,そういう事情のため,この技法はゲームはもちろん,そのほかの一般的なアプリケーションにおいても,やや手を出しにくいメソッドになってしまっていたのだ。

左が丸角機構を組み込んだPixar型のCatmull-Clark法。右がCatmull-Clark法の原形で,全体的に丸くなってしまっているのが分かる
画像集#011のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?


CUDAベースでの実装例をデモンストレーション


 そうした関連特許技術の使用権をライセンスフリー化するというのが,今回のOpenSubdivである。「PixarのGPUチームが,GPUで実装したCatmull-Clark法や,前述した角や丸角の取り扱いといった特異処理のサポートまでのアルゴリズムすべてをオープンソース化する」という意思表示なのだ。

 今回はNVIDIAブースでの発表ということもあってか,CUDAベースGPUへのOpenSubdiv実装に関する報告も行われた。
 まずはそのブロック図を下に掲載したので見てほしい。

NVIDIA製GPU向け実装のOpenSubdivのブロック図
画像集#012のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?

 図中の「CUDA Kernels」(CUDAカーネル)で行われるのは,前述したような,特異点への取り扱いに配慮した頂点分割工程である。これは,3Dモデル側が変形しない限り,1度だけ行えばいい。そして,CUDA Kernelsを経由した3Dモデルデータは,特異箇所に対する処理が完了したものになっており,もちろん角や丸角への対応も終わっていることになる。

 続いてこの3Dモデルデータをグラフィックスレンダリングパイプラインへ受け渡し,実際のレンダリングを行うことになるが,このとき,特異箇所ではない通常のクアッドは,GPU側のテッセレーションステージで双三次B-Spline法によるテッセレーションが行われるのだ。
 ゲームエンジンなどでは,この部分をPNトライアングル法やフォンテッセレーション(Phong Tessellation)といった軽めの手法で代用するといいかもしれない。



 現在,OpenSubdivは,β版という位置づけであるため,先程のブロック図で「Tessellation」と書かれている部分,すなわちGPU側のテッセレーションステージの活用部分がまだ実装されていない。そのため,CUDAで全行程の処理を行うような実装になっている。
 DirectX 11のテッセレーションステージを活用する最終版のリリースは,年内を予定しているとのことだ。


次世代ゲーム機のアーキテクチャに影響を与えるかもしれないOpenSubdiv


 今回,NVIDIAブースで披露されたのはCUDA版のOpenSubdivだったが,現在,OpenSubdivは,PixarのGPUチームにより,幅広いプラットフォームへの実装が進められている。具体的には,OpenCL,OpenGL,OpenMPなどが筆頭となるが,なんとWebGLベースも開発が進められているとのことだ。

 グランツーリスモシリーズの開発元であるポリフォニー・デジタルから2011年にPixarへ移籍し,現在,OpenSubdiv開発メンバーの一員となっている手島孝人氏に会場で話を聞くことができたのだが,氏は,OpenSubdivが次世代ゲーム機を想定したゲームエンジンに採用されるのを期待しているという。

「低ポリゴンでモデリングした3Dモデルにテッセレーション処理を施し,さらにディテールにディスプレースメントマッピングを適用して付加する」というPixar式の3Dモデル制作手法は,ゲームエンジンに採用されていくかもしれない
画像集#014のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!? 画像集#015のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?

 テッセレーション機構を持たない現行ゲーム機では,登場する3Dモデルが多ポリゴンモデルで基本的にデザインされているため,これを基にしてテッセレーション処理を行うことに旨味はないとされている。

 では,DirectX 11世代以上のGPUが搭載されるであろう次世代ゲーム機においてはどうだろうか。そう,低ポリゴンモデルでモデルデータを持ち,滑らかな曲面表現をテッセレーションで実現,ハイディテールをディスプレースメントマッピングで付加するといった,Pixar的なパイプラインが利用できるかもしれないのだ。
 これまでは特許的な問題があったため,テッセレーションへの期待感こそあったが,実際どうなるかは相当に不明瞭だった。それが,OpenSubdivによってクリアになり,ずいぶんと明るい未来が見えてきた気がする。

画像集#016のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
DirectX 11のテッセレーションステージを積極活用したタイトルとして知られるカプコンのPC版「ロスト プラネット 2」では,Catmull-Clark法の採用が「諸事情から」見送られている
画像集#017のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?

 そうなってくると,Pixarであるがゆえに,映画向けのCGモデルとゲーム向けのCGモデルの親和性にも期待が持てるようになる。たとえば「映画用のモデルをそのままゲームで動かす」といったことが,技術的かつコンテンツパイプライン的にも可能になるはずだ。
 アニメーションするモデルは,その都度テッセレーションを行わなければならなくなるが,膨大な多ポリゴンモデルの頂点データをオンメモリで持たなくて済むことと,視点からの距離に応じた頂点量の3Dモデルを複数持つようなLoD(Level of Detail)制御をGPU側へ完全に一任できることのメリットは大きい。

 ゲームグラフィックスへの応用において,DirectX 11のテッセレーションステージが敬遠される大きな理由に,「特異箇所で穴が空く」「接平面(タンジェント)の連続性が破壊される」といった難題があった。しかし,Pixar拡張型のCatmull-Clark法が使えるようになれば,そうした問題からも解放されるため,ゲーム開発シーンでテッセレーションが嫌われることがなくなっていくかもしれない。

 タンジェントの一意性および正確性が保証されるなら,アニメーション後のディスプレースメントマッピングの結果では,PixarのRenderManクオリティが保証されることになるので,アーティスト視点で見ると,OpenSubdivは魅力的だろう。

Pixarクオリティのテッセレーションが実現されるOpenSubdiv
画像集#018のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?

 さて,前述のとおり,現状のOpenSubdivでは,CUDAのほか,OpenCL,OpenMP,GLSLなどのカーネルも実装しているので,トポロジー処理,特異箇所処理などをNVIDIA製のGPU以外でも行えるようになっている。

 なお,これらの処理をグラフィックスパイプラインだけで行うことも可能だ。現状では,ジオメトリシェーダに4096byteの出力制限があるので,もしこの分割レベル上限が許容できる利用ならば,ジオメトリシェーダでの実装もありだろう。
 実際,OpenGL版OpenSubdivは,手島氏が自らグラフィックスパイプラインだけで実装したという。。OpenGL 3.0からは頂点ステージの処理結果を頂点バッファオブジェクト(Vertex Buffer Object,VBO)に格納するTransform Feedback機能が備わっており,OpenGL版のOpenSubdivでは,この機能を用いてトポロジー処理や,特異箇所処理を実装しているとのことだ。

 今回のOpenSubdivは,グラフィックスエンジニアに大きなモチベーションを与えるだけでなく,次世代ゲーム機のアーキテクチャにも影響を与えることになるかもしれない。

画像集#013のサムネイル/[SIGGRAPH]Pixar,「OpenSubdiv」によりCatmull-Clark法のテッセレーション技術をオープン化。DCCツールからゲームエンジンまでがPixar品質に!?
Pixar Animation StudiosのGPUチーム,OpenSubdiv開発メンバーの面々。左端から順に,手島孝人氏,Dirk Van Gelder氏,Manuel Kraemer氏,David G Yu氏

OpenSubdiv紹介ページ(英語)

Pixar公式Webサイト(英語)

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:03月18日〜03月19日