Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OLM R&D祭 2020 11/26 シェーダー最先端研究からプロダクションへ / matsuri2020-BrushTile

OLM R&D祭 2020 11/26 シェーダー最先端研究からプロダクションへ / matsuri2020-BrushTile

基礎研究から生まれプロダクションで実際に活用されている2つのツール:手描きのテクスチャを使って広大な地面のテクスチャを生成するツール、タイルを自然なパターンで敷き詰めるツール について紹介いたします。(辛口)

OLM Digital R&D

December 15, 2020
Tweet

More Decks by OLM Digital R&D

Other Decks in Research

Transcript

  1. OLM Brush Shader & Wang Tiles - シェーダー最先端 研究からプロダクションへ -

    Kol Timothy Alexandre Derouet-Jourdan Marc Salvati 市川 翔大 © OLM Digital, Inc. 1
  2. 2Dと3D • 2Dバージョン – UVマッピングが必要 • 3Dバージョン – UVに依存しない –

    投影だと問題あり • シーム(縫い目) • 変形 © OLM Digital, Inc. 9
  3. 3Dブラシシェーダ – グリッド方式 10 グリッド方式 (side view) © OLM Digital,

    Inc. • 2Dバージョンの拡張、最速 • 3Dグリッドを定義 • 3Dでブラシの位置を評価 • 各軸から投影 • 遠すぎる場合は投影しない – ブラシは途中で切られることも
  4. 3Dブラシシェーダ – グリッド方式 © Disney © OLM Digital, Inc. 11

    • 高周波なブラシで機能 [Pepper et al., DigiPro 2016] Alice Through The Looking Glass 著作権の関係により 画像を掲載しておりません
  5. 3Dブラシシェーダ – グリッド方式 • ブラシのアーティファクトが強く出る • パフォーマンス: 高速 – 前処理なし

    (2Dと同等) • メモリ使用量: なし • 変形: 軽微 (許容できる) • シーム: 多数 (許容できない) – 表面の向きが45°変化したとき – 距離ベースの投影カットオフのため © OLM Digital, Inc. 12 グリッド方式 (side view) グリッド方式 (3D view)
  6. 3Dブラシシェーダ – ブラシ平面方式 • シーンに情報を組み込む • メッシュの前処理 – 面にブラシをランダムに配置 –

    均一に配置させるために面積を考慮 – 八分木にブラシの位置と法線を保存 • ブラシ平面に投影 • 遠すぎる場合は投影しない • 垂直に近いと伸びる © OLM Digital, Inc. 13 ブラシ平面方式 (side view) 八分木階層
  7. 3Dブラシシェーダ – ブラシ平面方式 • ディテールが少ないジオメトリに適する • パフォーマンス: 比較的高速 (八分木探索) –

    前処理が必要 • メモリ使用量: – 2つの3Dベクトル × ブラシの数 • 変形: ほぼ軽微 (鋭い角で伸びる) • シーム: ブラシの端でまれに出る – 距離ベースの投影カットオフのため © OLM Digital, Inc. 14 ブラシ平面方式 (side view) グリッド方式 (side view) グリッド方式 (3D view) ブラシ平面方式 (3D view)
  8. 3Dブラシシェーダ – ビュー平面方式 • ブラシの周りのメッシュを局所的に探索 • メッシュの前処理 – ブラシの位置の周りを調べる –

    その法線の平均を投影方向(ビュー平面)にする • ビュー平面から投影 • 遠すぎる場合は投影しない • テクスチャの伸びは減少 © OLM Digital, Inc. 15 ビュー平面方式 (side view)
  9. 3Dブラシシェーダ – ビュー平面方式 • 前処理の時間がとれる場合は有効 • パフォーマンス: 比較的高速 (八分木探索) –

    前処理に時間がかかる • メモリ使用量: – 2つの3Dベクトル × ブラシの数 • 変形: 交差点やディテール以外は許容できる • シーム: ブラシの端でまれに出る – 距離ベースの投影カットオフのため © OLM Digital, Inc. 16 ビュー平面方式 (side view) ビュー平面方式 (3D view) ブラシ平面方式 (side view) ブラシ平面方式 (3D view)
  10. 3Dブラシシェーダ – 探索方式 • ローカルブラシエリアを保存 • メッシュの前処理 – ブラシの位置の周りの点を保存 –

    投影範囲を決め、終点を保存 • ビュー平面から投影 – 終点の範囲に投影 • 距離によるカットオフはなし • 投影対象のメッシュのみ考慮 © OLM Digital, Inc. 17 探索方式 (side view)
  11. 3Dブラシシェーダ – 探索方式 • 変形の回避に非常に優れる • パフォーマンス: 低速 (補間と八分木探索) –

    前処理にも時間がかかる • メモリ使用量: – いくつかの3Dベクトル × ブラシの数 • 変形: 最小限(交差点やディテールを除く) • シーム: 同じメッシュ上にはなし © OLM Digital, Inc. 18 探索方式 (side view) 探索方式 (3D view) ビュー平面方式 (side view) ビュー平面方式 (3D view)
  12. 3Dブラシシェーダ – メッシュ考慮方式 • メッシュの交差問題を解決 • メッシュの前処理 – ブラシ位置の周りの点を探る際、ほかのメッシュも探索 –

    ブラシが別のメッシュを突き抜けるのを防ぐ • ほかは探索方式と同様 © OLM Digital, Inc. 19 メッシュ考慮方式 (side view)
  13. 3Dブラシシェーダ – メッシュ考慮方式 • メッシュが交差する場合に役立つ • パフォーマンス: 低速 (補間と八分木探索) –

    前処理にも時間がかかる • メモリ使用量: – いくつかの3Dベクトル × ブラシの数 • 変形: 最小限 (ディテールを除く) • シーム: なし © OLM Digital, Inc. 20 メッシュ考慮方式 (side view) メッシュ考慮方式 (3D view) 探索方式 (side view) 探索方式 (3D view)
  14. 各方式の比較 • 各方式の概要 • メッシュ考慮方式: 重くて使えない可能性あり • ビュー平面方式: 安定的 ©

    OLM Digital, Inc. 21 方式 実行速度 前処理時間 メモリ使用量 エッジでの変形 交差点での変形 シーム グリッド 高速 なし なし 中 中 頻繁 ブラシ平面 良い 中 中 強い 強い まれ ビュー平面 良い 長い 中 中 強い まれ 探索 そこそこ 長い 多い とても少ない 強い なし メッシュ考慮 そこそこ とても長い 多い とても少ない なし なし
  15. Wang Tiles 作成の動機 • タイルのテクスチャを手描きで作っていた – 遺跡、寺院、道路、城、レンガの壁 – 面倒な作業 •

    Wang Tilesを使って自動的に行なう – アーティストのワークフローを調査 © OLM Digital, Inc. 25
  16. プロダクションでの使用例 31 ©2016 Pokémon. ©1995-2016 Nintendo/Creatures Inc. /GAME FREAK inc

    © OLM Digital, Inc. 著作権の関係により 画像を掲載しておりません
  17. 全体のまとめ • ブラシシェーダ と Wang Tiles – アーティストの手描きテクスチャを再現 – プロダクションで使用

    • 3Dブラシシェーダは開発中 – メッシュ考慮方式は大規模なシーンだと重すぎる – ほかの方式だと、ブラシが大きく変形する可能性あり • ブラシシェーダ と Wang Tiles シェーダ のプリセット – 一般的に使われるマテリアルのライブラリを作成 © OLM Digital, Inc. 32