CEDEC2013 のグラフィックスやアニメーションの参加セッションのメモ
概要
- CEDEC2013 の講演のうち, いくつかのグラフィックス系の講演の個人的なメモを下に書いてみました.
- 下の文章については申し訳ないですが, 僕自身の理解が足りなかったり, あるいはまだ資料が公開されていないので間違っている可能性が十分あります.
- その場合は CEDEC Digita Library などで公開される講演者の講演内容の方が正しいので, ご注意下さい.
感想
OpenSubdiv: オープンソースの RenderMan 完全互換 GPU対応 サブディビジョンサーフェスライブラリ
- この講演については, 今のところもう少し調査して別途ブログ記事を書く予定です.
- 一番印象的だった内容は Pixar でのテッセレーションの使い方です.
- Pixar の映画のキャラクターモデルのベースモデルの頂点数は意外と少ない(Toy Story のウッディは約2万ポリゴン以下)けど, それに対して多くのリグやデフォーマ(4000-5000個)を設定して頂点変位のアニメーションを計算し, その後にテッセーレションをかけてポリゴンを滑らかに再分割しているらしいです. こうすると, アーティストさんがアニメーション結果の簡易プレビューがしやすいという利点もあるそうです.
- 上と同様の方法で GPU でリアルタイムにモデルをレンダリングする場合, 複雑で処理負荷が高い頂点シェーダを使ったとしても, それに対して少ないポリゴン数のモデルデータを与えて, 最後にテッセレーションしてハイポリゴンにするというアプローチができるのではないか ? という話がありました.
- あと, 講演の一部で以下の内容の紹介がありました.
- 参考文献
- Youtube SIGGRAPH 2013 OpenSubdiv の動画
- Pixar のOpenSubdivのページ
- OpenSubdiv のgithub
- 関係する論文
- Feature Adaptive GPU Rendering of Catmull-Clark Subdivision Surfaces Matthias Niessner, Charles Loop, Mark Meyer, and Tony DeRose ACM Transactions on Graphics, Vol. 31 No. 1 Article 6 January 2012
- Efficient Evaluation of Semi-Smooth Creases in Catmull-Clark Subdivision Surfaces Matthias Niessner, Charles Loop, and Guenter Greiner. Eurographics Proceedings, Cagliari, 2012
- Analytic Displacement Mapping using Hardware Tessellation Matthias Niessner, Charles Loop ACM Transactions on Graphics, To appear 2013
"グローバルイルミネーションを高速化する時空間アップサンプリング"
"フルボディIKエンジンの作り方その2 (モーション補間編)"
- デザイナーさんが作ったキャラクターのモーションを他のモーションへと切り替える際には滑らかに遷移しないと見た目が不自然になっていしまいます.
- この問題を解決するためにあるモーションからあるモーションへと遷移するためのモーションを使って利用するという方法もありますが, その場合にはモーションの数が増えると遷移モーションが組み合わせで爆発的に増えるという問題が発生します.
- そこで, モーション <-> ポーズ と ポーズ <-> ポーズ の遷移の場合についてのモーションを綺麗につなげるための補間のアニメーションをゲーム向けの計算コストでプロシージャルに求める方法について紹介していました.
- 具体的にはモーションの遷移時の人型キャラクターの補間のモーションが不自然な状態(足が滑る, 足がめり込む, 急に加速するなど)にならないように, キャラクターの足の運びや重心位置の移動をお憂慮した上でフルボディ IK を使って, モーション遷移時の補間モーションをプロシージャル生成していました.
- ただ今のところは補間モーションのプローシージャル生成は, モーションの種類の遷移ごとの泥臭いコードになりがちで, そのような補間モーションを自動で一般的に解く方法が難しそう, という見解でした.
- 参考資料
実践クラスタードシェーディング
- DICE Battlfield3 のタイルベースドのライトカリングのようにスクリーンスペースで 2 次元的にカリングするのではなく, 下図のようにカメラの視錐台の中で 3 次元的な空間単位でカリングする内容でした.
次世代機を見据えた物理ベースリフレクタンスモデルの設計
- 参考URL : 次世代機を見据えた物理ベースリフレクタンスモデルの設計 CEDEC2013
- 背景と目的
- 物理ベース BRDF とは ?
- スペキュラ用の BRDF
- マイクロファセットの分布関数 D(m) は GGX.
- 幾何減衰率 G は GGX-Smith.
- フレネルは Spherical Gaussian で近似. ( X : Schlik の近似を, Spherical Gaussian で近似)
- ディフューズ用の BRDF
- 最終的な BRDF は以下のようになった.
- Ambient BRDF
-
- Diffuse SH 用の Ambient BRDF は式と AmbientBRDF の両方を使う.
-
- Screen Space Local Reflection では AmbientBRDF を再利用する.
- その他の参考文献
- ディズニーの物理ベースシェーディング SIGGRAPH 2012 スライドの pdf コースノートの pdf
- GGX 用の幾何減衰率 G について Microfacet Models for Refraction through Rough Surfaces
GPU 上でのvoxel構築手法について
"Compute Shader Magic 〜あなたの描画エンジンでコンピュートシェーダを活用するアイデア"
- コンピュートシェーダによる GPU 用の描画の効率化のアイディアを紹介していました.
- 具体的には スキニング, BlendShape, パーティクル, インスタンシング用のグラフィクスリソースをコンピュートシェーダで計算する最適化のアイディアなどについてです.
- 最後にカリング付きインスタンシング・コンピュートシェーダによる描画のバッチングを提案していました.
西川善司の「CEDEC 2013」ゲーム開発マニアックス(グラフィックス編)
- 講演資料のスライドとメモの zip
- KNACK (PS4) で使っている技術
- SSS は Pre-Integrated Skin Rendering (Siggraph 2011 Advances in Real-Time Rendering Course)
- キャラクタ用のテッセレーションに Point-Normal Triangles Using Adjacent Edge Normals(PN-AEN) を利用.
- ディフューズ用の GI は Pixar の Brick Map
- スペキュラ間接光(リフレクション)は Parallax Collected CubeMaps. ( 本人のブログの記事, SIGGRAPH 2012 や GPU Pro4 にも資料や記事があります.)