基礎研究から生まれプロダクションで実際に活用されている2つのツール:手描きのテクスチャを使って広大な地面のテクスチャを生成するツール、タイルを自然なパターンで敷き詰めるツール について紹介いたします。(辛口)
OLM Brush Shader & Wang Tiles- シェーダー最先端 研究からプロダクションへ -Kol TimothyAlexandre Derouet-JourdanMarc Salvati市川 翔大© OLM Digital, Inc. 1
View Slide
2つのテクスチャ生成シェーダ© OLM Digital, Inc. 2Brush Shader Wang Tiles
Brush Shader© OLM Digital, Inc. 3
ブラシシェーダ作成の動機• テクスチャを手描きでレタッチ– ディテールの描き足し– パターンのリピートの防止– ライティングによるもの– パースによる歪み• 手描きで直すのは大変な手間© OLM Digital, Inc. 4
手描きのワークフロー© OLM Digital, Inc. 5
ブラシシェーダ作成の動機• レイヤーで構築されている• 各レイヤーには、ほぼランダムにブラシが配置されている• 同じようなことがシェーダでも可能© OLM Digital, Inc. 6ブラシテクスチャ ブラシシェーダ (シングルレイヤー)
ブラシシェーダの実装• セルごとに1つのブラシを持つグリッドを定義• ランダムにブラシの位置を評価– グリッドの座標を乱数のシードにする– ブラシはセルからはみ出る可能性あり• テクスチャをサンプリング– ブラシの位置と方向からUV座標を計算© OLM Digital, Inc. 72Dグリッド
プロダクションでのテスト©Nintendo・Creatures・GAME FREAK・TV Tokyo・ShoPro・JR Kikaku ©Pokémon ©2012 ピカチュウプロジェクト© OLM Digital, Inc. 8著作権の関係により画像を掲載しておりません
2Dと3D• 2Dバージョン– UVマッピングが必要• 3Dバージョン– UVに依存しない– 投影だと問題あり• シーム(縫い目)• 変形© OLM Digital, Inc. 9
3Dブラシシェーダ – グリッド方式10グリッド方式 (side view)© OLM Digital, Inc.• 2Dバージョンの拡張、最速• 3Dグリッドを定義• 3Dでブラシの位置を評価• 各軸から投影• 遠すぎる場合は投影しない– ブラシは途中で切られることも
3Dブラシシェーダ – グリッド方式© Disney© OLM Digital, Inc. 11• 高周波なブラシで機能[Pepper et al., DigiPro 2016]Alice Through The Looking Glass著作権の関係により画像を掲載しておりません
3Dブラシシェーダ – グリッド方式• ブラシのアーティファクトが強く出る• パフォーマンス: 高速– 前処理なし (2Dと同等)• メモリ使用量: なし• 変形: 軽微 (許容できる)• シーム: 多数 (許容できない)– 表面の向きが45°変化したとき– 距離ベースの投影カットオフのため© OLM Digital, Inc. 12グリッド方式 (side view)グリッド方式(3D view)
3Dブラシシェーダ – ブラシ平面方式• シーンに情報を組み込む• メッシュの前処理– 面にブラシをランダムに配置– 均一に配置させるために面積を考慮– 八分木にブラシの位置と法線を保存• ブラシ平面に投影• 遠すぎる場合は投影しない• 垂直に近いと伸びる© OLM Digital, Inc. 13ブラシ平面方式 (side view)八分木階層
3Dブラシシェーダ – ブラシ平面方式• ディテールが少ないジオメトリに適する• パフォーマンス: 比較的高速 (八分木探索)– 前処理が必要• メモリ使用量:– 2つの3Dベクトル × ブラシの数• 変形: ほぼ軽微 (鋭い角で伸びる)• シーム: ブラシの端でまれに出る– 距離ベースの投影カットオフのため© OLM Digital, Inc. 14ブラシ平面方式 (side view)グリッド方式 (side view)グリッド方式(3D view)ブラシ平面方式(3D view)
3Dブラシシェーダ – ビュー平面方式• ブラシの周りのメッシュを局所的に探索• メッシュの前処理– ブラシの位置の周りを調べる– その法線の平均を投影方向(ビュー平面)にする• ビュー平面から投影• 遠すぎる場合は投影しない• テクスチャの伸びは減少© OLM Digital, Inc. 15ビュー平面方式 (side view)
3Dブラシシェーダ – ビュー平面方式• 前処理の時間がとれる場合は有効• パフォーマンス: 比較的高速 (八分木探索)– 前処理に時間がかかる• メモリ使用量:– 2つの3Dベクトル × ブラシの数• 変形: 交差点やディテール以外は許容できる• シーム: ブラシの端でまれに出る– 距離ベースの投影カットオフのため© OLM Digital, Inc. 16ビュー平面方式 (side view)ビュー平面方式(3D view)ブラシ平面方式 (side view)ブラシ平面方式(3D view)
3Dブラシシェーダ – 探索方式• ローカルブラシエリアを保存• メッシュの前処理– ブラシの位置の周りの点を保存– 投影範囲を決め、終点を保存• ビュー平面から投影– 終点の範囲に投影• 距離によるカットオフはなし• 投影対象のメッシュのみ考慮© OLM Digital, Inc. 17探索方式 (side view)
3Dブラシシェーダ – 探索方式• 変形の回避に非常に優れる• パフォーマンス: 低速 (補間と八分木探索)– 前処理にも時間がかかる• メモリ使用量:– いくつかの3Dベクトル × ブラシの数• 変形: 最小限(交差点やディテールを除く)• シーム: 同じメッシュ上にはなし© OLM Digital, Inc. 18探索方式 (side view)探索方式(3D view)ビュー平面方式 (side view)ビュー平面方式(3D view)
3Dブラシシェーダ – メッシュ考慮方式• メッシュの交差問題を解決• メッシュの前処理– ブラシ位置の周りの点を探る際、ほかのメッシュも探索– ブラシが別のメッシュを突き抜けるのを防ぐ• ほかは探索方式と同様© OLM Digital, Inc. 19メッシュ考慮方式 (side view)
3Dブラシシェーダ – メッシュ考慮方式• メッシュが交差する場合に役立つ• パフォーマンス: 低速 (補間と八分木探索)– 前処理にも時間がかかる• メモリ使用量:– いくつかの3Dベクトル × ブラシの数• 変形: 最小限 (ディテールを除く)• シーム: なし© OLM Digital, Inc. 20メッシュ考慮方式 (side view)メッシュ考慮方式(3D view)探索方式 (side view)探索方式(3D view)
各方式の比較• 各方式の概要• メッシュ考慮方式: 重くて使えない可能性あり• ビュー平面方式: 安定的© OLM Digital, Inc. 21方式 実行速度 前処理時間 メモリ使用量 エッジでの変形 交差点での変形 シームグリッド 高速 なし なし 中 中 頻繁ブラシ平面 良い 中 中 強い 強い まれビュー平面 良い 長い 中 中 強い まれ探索 そこそこ 長い 多い とても少ない 強い なしメッシュ考慮 そこそこ とても長い 多い とても少ない なし なし
レンダリング結果 (2D)© OLM Digital, Inc. 222Dバージョン
レンダリング結果 (3D)© OLM Digital, Inc. 233Dバージョンビュー平面方式
Wang Tiles© OLM Digital, Inc. 24
Wang Tiles 作成の動機• タイルのテクスチャを手描きで作っていた– 遺跡、寺院、道路、城、レンガの壁– 面倒な作業• Wang Tilesを使って自動的に行なう– アーティストのワークフローを調査© OLM Digital, Inc. 25
手描きのワークフロー© OLM Digital, Inc. 26
Wang Tiles 概要• 色分けされたエッジをもつ正方形タイル• 同じ色のエッジが隣り合うように並べる© OLM Digital, Inc. 27Wang Tilesの各パターン有効 無効
Wang Tiles 配列© OLM Digital, Inc. 28有効な配置
タイルパターンの作成© OLM Digital, Inc. 29タイルパターン グリッド付き 交差点 Wang Tile
レンダリング結果© OLM Digital, Inc. 30手描き Wang Tiles でプロシージャルに生成
プロダクションでの使用例31©2016 Pokémon. ©1995-2016 Nintendo/Creatures Inc. /GAME FREAK inc© OLM Digital, Inc.著作権の関係により画像を掲載しておりません
全体のまとめ• ブラシシェーダ と Wang Tiles– アーティストの手描きテクスチャを再現– プロダクションで使用• 3Dブラシシェーダは開発中– メッシュ考慮方式は大規模なシーンだと重すぎる– ほかの方式だと、ブラシが大きく変形する可能性あり• ブラシシェーダ と Wang Tiles シェーダ のプリセット– 一般的に使われるマテリアルのライブラリを作成© OLM Digital, Inc. 32