3DCGでも日本のアニメスタイルを活かせるようにR&Dではインハウスシェーダーを作っています。輪郭線、アニメ風の目の表現・質感のために開発した最新技術を発表します。
アニメのためのシェーダー- Lit Sphere, Smooth Voronoi, Eye, Toon -市川 翔大Alexandre Derouet-JourdanMarc Salvati1
View Slide
目次© OLM Digital, Inc. 2OLM ToonOLM EyeOLM Lit Sphere Smooth Voronoi©TOMY/ZW製作委員会・テレビ東京©Nintendo·Creatures·GAME FREAK·TV Tokyo·Shoro·JR Kikaku ©Pokémon©2019 PIKACHU PROJECT著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
OLM Lit Sphere© OLM Digital, Inc. 3
OLM Lit Sphere© OLM Digital, Inc. 4Always Look At Camera パラメータ OFF / ON車体金属ガラスウィンカータイヤシート内装• 追加パラメーター– Always Look At Camera: カメラのパースを無視UVNN
OLM Lit Sphere - Always Look At Camera -© OLM Digital, Inc. 5メッシュカメラZ NV通常のLitSphere:Lit Sphere は通常、カメラの位置ではなく行列 (方向)を使用カメラスペースでのシェーディングポイント の法線により、テクスチャのUVが決まるZ: カメラのZ軸NV: カメラスペースの シェーディングポイントの法線: シェーディングポイントZNVカメラメッシュテクスチャの評価点メッシュカメラCM NV*Always Look At Camera:Always Look At Camera がONの場合、カメラ位置 と オブジェクト (Bounding Box)の中心 との方向を使用シェーディングポイント のカメラスペースの法線が、カメラの位置によりシフトするNV* = NV + CM * (-(NV • CM))CMカメラメッシュテクスチャの評価点NV*CM: カメラからメッシュへの方向NV*: シフトされた「カメラスペースの シェーディングポイントの法線」: シェーディングポイント
OLM Lights Lit Sphere• OLM Lights Lit Sphere: カメラだけでなくライト情報も使用– 移動/スケール/回転 によるシェーディングの制御– メッシュ上で一貫性のあるレンダリング– 効果: リム、ストローク、など© OLM Digital, Inc. 6Lights Lit Sphere の様々な例 (リム、ハッチング)Hideki Todo, Ken Anjyo, Shun'ichi Yokoyama. Lit-Sphere extension for artistic rendering. The Visual Computer, Volume 29, Issue 6, pp. 473-480 (2013)
• Lights Lit Sphere: メッシュの法線を使い、各ライトからテクスチャを投影• DiffuseとSpecularライティングをサポートOLM Lights Lit Sphere - 技術 -© OLM Digital, Inc. 7Hideki Todo, Ken Anjyo, Shun'ichi Yokoyama. Lit-Sphere extension for artistic rendering. The Visual Computer, Volume 29, Issue 6, pp. 473-480 (2013)左: Diffuseのライティングテクスチャ中 / 右: 異なるカメラからの描画結果 (ライト: 正面から)
OLM Lights Lit Sphere の機能© OLM Digital, Inc. 8移動/スケール/回転ハッチングテクスチャハッチング(シェーディングされたストローク)リムライト(ポジティブ / ネガティブ)ライトを使用した結果とカメラを使用した結果
OLM Lights Lit Sphere 描画結果© OLM Digital, Inc. 9Diffuseのライティングテクスチャハッチングテクスチャ
参考文献• 参考文献– Lit Sphere• Sloan, Peter-pike & Martin, William & Gooch, Amy & Gooch, Bruce. The Lit Sphere: A Model for Capturing NPR Shading from Art. In:Proceedings of Graphics Interface 2001, pp. 143-150 (2001)– Lights Lit Sphere• Hideki Todo, Ken Anjyo, Shun'ichi Yokoyama. Lit-Sphere extension for artistic rendering. The Visual Computer, Volume 29, Issue 6, pp. 473-480 (2013)• 謝辞– Cow Mesh: https://github.com/ics-creative/160914_aframe/tree/master/assets– Car Mesh: https://sketchfab.com/3d-models/ac-cobra-red-51249171d0ec4af38765a8eb118358b7© OLM Digital, Inc. 10
Smooth Voronoi© OLM Digital, Inc. 11
Smooth Voronoi• OLM Cellular Noise の Output Type に Polynomial Smooth Distance を追加• Smooth Voronoi : ボロノイの境界をフェードする© OLM Digital, Inc. 12Distance から PolynomialSmooth Distance を引き算しきい値(0.6以下なら白)Smooth Voronoi のアニメーション結果Cellular Noise (Distance), Cellular Noise (Polynomial Smooth Distance), Smooth Voronoi
• 両モードの共通点:– シェーディングポイントから最も近い母点 (ボロノイの中心) までの距離を計算• Distanceモード (通常):– min() 関数を使用し不連続性をもたらす最小距離を計算• Polynomial Smooth Distanceモード:– polynomial smooth minimum() 関数を使用Polynomial Smooth Distance© OLM Digital, Inc. 13Distance と Polynomial Smooth Distance の比較(黒いほど母点に近い)
Polynomial Smooth Minimum 関数© OLM Digital, Inc. 14For more details, see the article about polynomial smooth minimum by Inigo Quilez: https://iquilezles.org/articles/smin/𝑓 𝑥 = 1 と 𝑔 𝑥 = 𝑥 − 1 の2つの関数𝑚𝑖𝑛(𝑓 𝑥 , 𝑔 𝑥 ) 関数◻ の近くで不連続な見た目になる欲しい結果:- min() 関数の挙動を維持- 不連続な部分を滑らかにするPolynomial smooth minimum 関数
Polynomial Smooth Minimum 関数© OLM Digital, Inc. 15For more details, see the article about polynomial smooth minimum by Inigo Quilez: https://iquilezles.org/articles/smin/これらの不連続点に補正 𝑤(𝑘) を適用する範囲 −𝑘, 𝑘 を定義:𝑠𝑚𝑖𝑛 𝑓 𝑥 , 𝑔 𝑥 , 𝑘 =𝑔 𝑥 , 𝑔 𝑥 − 𝑓 𝑥 ≤ −𝑘𝑓 𝑥 , 𝑔 𝑥 − 𝑓 𝑥 ≥ 𝑘𝑚𝑖𝑛 𝑓 𝑥 , 𝑔 𝑥 − 𝑤 𝑘 , −𝑘 < 𝑔 𝑥 − 𝑓 𝑥 < 𝑘Polynomial smooth minimum 関数𝑤 𝑘 を次の多項式円弧として定義:𝑤 𝑘 =0, 𝑔 𝑥 − 𝑓 𝑥 ≤ −𝑘0, 𝑔 𝑥 − 𝑓 𝑥 ≥ 𝑘𝑠 ∙ ℎn 𝑥 , −𝑘 < 𝑔 𝑥 − 𝑓 𝑥 < 𝑘Where:- 𝑠 は 𝑤 𝑘 によって定義された多項式円弧の最大値- ℎ 𝑥 は [0, 1] の範囲の角度 𝑛 の出力曲線: ℎ 𝑥 = 1 ± 𝑔 𝑥 − 𝑓 𝑥 /𝑘
Polynomial Smooth Minimum 関数© OLM Digital, Inc. 16For more details, see the article about polynomial smooth minimum by Inigo Quilez: https://iquilezles.org/articles/smin/polynomial smooth minimum (𝑘パラメータのアニメーション)Polynomial Smooth Distance モード(polynomial smooth minimum関数を使用)Distance モード(min() 関数を使用)
Cellular Noise – Smooth Voronoi の結果© OLM Digital, Inc. 17Smooth Voronoi Smooth Voronoi を使い水面の白波を表現
OLM Eyeアニメからリアルまで幅広いスタイルの目の表現© OLM Digital, Inc. 18
目の構造https://dictionary.goo.ne.jp/word/medical/目のしくみ © OLM Digital, Inc. 19瞳孔虹彩強膜角膜眼球を上から見た断面図眼球のイメージ図
眼球ジオメトリ© OLM Digital, Inc. 20瞳孔虹彩強膜眼球のイメージ図ジオメトリで作成した眼球角膜
要件• 眼球モデルの形状– 楕円体– 特殊な形状• 猫、爬虫類の目• 共通のリグで扱いたい• 物理現象の再現– 角膜の中の屈折– キャッチライト、コースティクス• コンポジット時に調整• リアル、トゥーン© OLM Digital, Inc.©Nintendo·Creatures·GAME FREAK·TV Tokyo·ShoPro·JR Kikaku ©Pokémon ©2019 PIKACHU PROJECT21著作権の関係により画像を掲載しておりません
基本的な機能© OLM Digital, Inc. 22
シェーダーで眼球を作成• 様々な形の眼球に対応するために……シェーダーで目を作成• 眼球オブジェクトにUVを投影• 視線移動 = 投影方向を変える© OLM Digital, Inc. 23UV Beauty
ルック• レンダリング時– 瞳孔・虹彩・強膜– 虹彩の模様– 虹彩や瞳孔のエッジ• グラデーション可能– 猫目– 角膜内の屈折– キャッチライト、コースティクス• コンポジット時– キャッチライトテクスチャを貼り付け– 各成分のAOVを使用コースティクスキャッチライト猫目 /瞳孔エッジ角膜内の屈折© OLM Digital, Inc. 24デフォルト
虹彩・強膜 (白目) のテクスチャ虹彩を横方向につぶした状態猫目レンダリング結果強膜テクスチャ© OLM Digital, Inc. 25虹彩テクスチャUV
強膜 (白目) のテクスチャのデフォーム© OLM Digital, Inc. 26
キャッチライト© OLM Digital, Inc. 27コンポ時の入力レンダリング コンポジットキャッチライトテクスチャ投影されたUVAOVBeauty調整・移動・回転・スケールUVで貼り付け+
コースティクス• 極座標上の楕円として作成• 大きさ・明るさ (パラメータ)– 強さ– サイズ• 位置– 角度 (θ) はキーライト方向– 中心からの距離 (r) はパラメータrθ© OLM Digital, Inc. 28コースティクスのAOV (RGBとアルファ)
Viewport (GPU) プレビューの機能• 虹彩テクスチャのマッピング• 角膜内の疑似屈折• キャッチライト (擬似)Viewportプレビュー© OLM Digital, Inc. 29
リアルなルックの目© OLM Digital, Inc. 30
角膜のふくらみ• 映り込んだ光の形などが変わる– 擬似的に再現• シェーダーで法線を計算– レイと角膜の疑似楕円体の交差判定– 交差点上の楕円体の法線を使用R角膜の疑似楕円体眼球HNP© OLM Digital, Inc. 31バンプなしバンプありR: レイ (視線)N: 法線H: 角膜の高さP: 評価点
コンポジット時の動的なキャッチライト© OLM Digital, Inc.©Nintendo·Creatures·GAME FREAK·TV Tokyo·ShoPro·JR Kikaku ©Pokémon ©2019 PIKACHU PROJECT32静的なキャッチライト 動的なキャッチライト著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
コンポジット時の動的なキャッチライト• レンダリング時に以下を出力– キーライトの方向– カメラの行列– 法線のAOV• コンポジットで作成© OLM Digital, Inc.©Nintendo·Creatures·GAME FREAK·TV Tokyo·ShoPro·JR Kikaku ©Pokémon ©2019 PIKACHU PROJECT33法線のAOV テクスチャの位置の調整Lit Sphereスクリーンスペースに投影された法線をUVに自動調整スクリーンスペースに投影されたキーライト方向手動位置調整+ +UV =著作権の関係により画像を掲載しておりません
セルルックの目© OLM Digital, Inc. 34
まぶたの影• まぶたの影を常に落とす– ライト関係なし– オクルージョンを使用© OLM Digital, Inc. 35判定方向による影の幅の変化判定範囲によるグラデーション幅の変化判定方向のアニメーション
トゥーンのキャッチライトとコースティクス• 複数のキャッチライト• キャッチライトの位置調整• コースティクスの位置調整• アニメのようにデザインされた虹彩– テクスチャで表現© OLM Digital, Inc.©Nintendo·Creatures·GAME FREAK·TV Tokyo·ShoPro·JR Kikaku ©Pokémon ©2019 PIKACHU PROJECT36著作権の関係により画像を掲載しておりません
実写合成の目© OLM Digital, Inc. 37
虹彩/強膜のバンプマップ© OLM Digital, Inc. 38バンプマップ: ON
虹彩/強膜のバンプマップ© OLM Digital, Inc. 39バンプマップ: OFF
実写に対応• キャッチライト、コースティクスのシェーディング機能© OLM Digital, Inc. 40対応前 対応後
実写に対応• Directional Light以外のキーライトに対応• キーライトのテクスチャをキャッチライトのテクスチャとして使用© OLM Digital, Inc. 41IBL画像エリアライトとキャッチライトテクスチャ
今後の課題• プロシージャルにジオメトリを作成– シェーダーは利点があるが、リアリティ向上には限界がある• パラメータ調整だけで作れる利点を保つ© OLM Digital, Inc. 42ジオメトリで眼球を作成した例 OLM Eye と ジオメトリの眼球 との比較
まとめ• 効率化– シェーダーで作成– UVを投影– コンポジットで調整• 表現力– テクスチャの使用– リアルな表現– トゥーンの表現– 実写のための改良© OLM Digital, Inc.©Nintendo·Creatures·GAME FREAK·TV Tokyo·ShoPro·JR Kikaku ©Pokémon ©2019 PIKACHU PROJECT43リアル トゥーン著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
OLM Toonアニメのための輪郭線とセルシェーダー© OLM Digital, Inc.©TOMY/ZW製作委員会・テレビ東京 44
トゥーンシェーダーの役割• 作画のアニメに合わせる• セルルックのフルCG– 作画・イラスト調© OLM Digital, Inc. 45©TOMY/ZW製作委員会・テレビ東京©Nintendo·Creatures·GAME FREAK·TV Tokyo·Shoro·JR Kikaku ©Pokémon©2019 PIKACHU PROJECT著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
トゥーンシェーダーの実装• OLM Toon for mental ray– Arnoldが標準レンダラーになったため使えない• ラインの描画方法– フィルターで描画– シェーディング時に描画© OLM Digital, Inc. 46レイスクリーン シーンフィルターサイズ
トゥーンシェーダーの実装• OLM Toon for mental ray– Arnoldが標準レンダラーになったため使えない• ラインの描画方法– フィルターで描画– シェーディング時に描画© OLM Digital, Inc. 47レイスクリーン シーンフィルターサイズ
トゥーンシェーダーの実装• OLM Toon for mental ray– Arnoldが標準レンダラーになったため使えない• ラインの描画方法– フィルターで描画– シェーディング時に描画© OLM Digital, Inc. 48レイスクリーン シーンフィルターサイズ
トゥーンシェーダーの実装• OLM Toon for mental ray– Arnoldが標準レンダラーになったため使えない• ラインの描画方法– フィルターで描画– シェーディング時に描画© OLM Digital, Inc. 49レイスクリーン シーンフィルターサイズ
Arnold aiToon• シェーダー + 輪郭線フィルター• 太い輪郭線の場合は遅い• 輪郭線の太さの微調整が難しい• 他のフィルターと組み合わせることができない• 機能不足• 拡張不可能© OLM Digital, Inc. 50フィルターサイズ
トゥーンシェーダーの自社開発• 当時代替ツールがなかった• 自社開発の利点– デザイナーの要望対応– ほかのArnoldシェーダーとの併用© OLM Digital, Inc.©Nintendo·Creatures·GAME FREAK·TV Tokyo·Shoro·JR Kikaku ©Pokémon ©2019 PIKACHU PROJECT 51ほかのArnoldシェーダー著作権の関係により画像を掲載しておりません
OLM Toon の機能の概要• セルシェーダー– ベース、シャドー、ハイライト– トランジション• ハード• ソフト• 輪郭線– オブジェクトの間– 法線・デプスなどの差• MayaでのプレビューとArnoldでのレンダリング© OLM Digital, Inc. 52
セルシェーダー© OLM Digital, Inc.©TOMY/ZW製作委員会・テレビ東京 53
セルシェーダーの基本機能• 基本は3色– ノーマル、影色、ハイライト– 輝度を三色にマップ– トランジションの制御が可能• ハード• ソフト• 影とハイライトの追加 (2号影)• テクスチャ© OLM Digital, Inc. 54H1NMS1H2S2
リムライト• ランプのオフセット• 後ろからのライトを疑似的に表現– カメラの方向と法線の角度で範囲が決まる55リムなし リムあり リム幅: 大 リムアルファ調整リムグラデーションリム色変更© OLM Digital, Inc.
Maya上でのセルシェーダー• ビューポートプレビュー• UI (アトリビュートエディター)– ランプUI© OLM Digital, Inc. 56セルシェーダーのアトリビュートエディターMayaでのGPUプレビュー
輪郭線シェーダー© OLM Digital, Inc.©TOMY/ZW製作委員会・テレビ東京 57
輪郭線の基本機能• 線の種類– オブジェクト、UV、シェーダー、デプス、法線、色– ソフトしきい値• 種類ごとに設定– 色– 太さ• 透過、レイヤー58© OLM Digital, Inc.©TOMY/ZW製作委員会・テレビ東京セルシェーダー輪郭線セルシェーダー + 輪郭線著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
輪郭線の種類59© OLM Digital, Inc.オブジェクト同士の交差による輪郭線背景との輪郭線オブジェクト同士の輪郭線 シェーダー輪郭線法線輪郭線Wireframe輪郭線デプス輪郭線
輪郭線の見た目• 色– 単色、テクスチャ• 太さ– 一定の値、シェーダーごと指定も可能– テクスチャで指定可能• 手書きの表現• 線の削除にも利用可能60© OLM Digital, Inc.©Nintendo·Creatures·GAME FREAK·TV Tokyo·ShoPro·JR Kikaku ©Pokémon©2019 PIKACHU PROJECT著作権の関係により画像を掲載しておりません
コントラスト色の輪郭線• 色の差がある部分に線を描画• パーツごとに異なる色を設定– パーツ間に線を描画• タイル状に並べ、タイルごと異なる色に61Contrast ColorとUV© OLM Digital, Inc.©TOMY/ZW製作委員会・テレビ東京著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
ソフトしきい値• デプスや法線などによる線のフェードイン・アウト© OLM Digital, Inc. 62ソフトしきい値なし ソフトしきい値ありデプスによる輪郭線
輪郭線の透明度• 半透明なオブジェクトの向こうに輪郭線を描く• 眼鏡、窓、コックピットなど© OLM Digital, Inc. 63©L5/YWP·TX著作権の関係により画像を掲載しておりません
奥のオブジェクトを手前に描画• まゆ毛 を 髪の毛 の手前に描画• 虹彩 を まぶたの影 の手前に描画© OLM Digital, Inc. 64
奥のオブジェクトを手前に描画 (半透明)• 前髪がかかっている目やまゆ毛を半透明に透過© OLM Digital, Inc. 65
プロダクションにおけるOLM Toonの活用• 様々な作品で利用• ロボット系• 動物、人間66© OLM Digital, Inc.
技術面© OLM Digital, Inc. 67
サンプルデータの評価• サブピクセルごとにサンプルデータ作成• サンプルデータを比較 → ライン描画をマーク© OLM Digital, Inc. 68…輪郭線のソースサブピクセル 輪郭線のソース…評価中のサブピクセルオブジェクト…評価点線を描くエッジをマーク
輪郭線の描画• エッジへの距離に応じて線のアルファ決定© OLM Digital, Inc. 69…輪郭線…輪郭線 (半透明)線を描くエッジ線の幅
サンプルデータのキャッシュ• サンプルデータをキャッシュする– 近傍点のデータも必要© OLM Digital, Inc. 70現在のサブピクセルと近傍サブピクセルhttps://docs.arnoldrenderer.com/display/a5af3dsug/systemバケット線の幅
サンプリング• Arnoldは中心にレイキャストしない• サブピクセルの中心に自分でレイキャスト© OLM Digital, Inc. 71Arnoldのサンプリング例 OLMToonのサンプリング
レイヤー (透過)• 透過先のサンプルデータも保存• レイヤーごとに管理• 手順– サンプリング (サンプルデータを保存)– レイをそのまま通す– 次のレイヤーの計算• 透過するレイヤー分のメモリが必要– 上限設定© OLM Digital, Inc. 72
OLM Toon VS aiToon• OLM Toonはフィルターを使わない– 通常のフィルター(ガウシアンなど)を利用できる → 描画結果がきれい© OLM Digital, Inc. 73線の太さ レンダリング時間 メモリ使用量 カメラレイの数OLM Toon aiToon OLM Toon(サンプルデータ)aiToon(AOV)OLM Toon aiToon1 00:03 00:02 94 MB 273 MB 12,523,233 4,817,4752 00:04 00:02 96 MB 273 MB 12,549,051 4,971,7804 00:05 00:04 102 MB 290 MB 13,673,467 5,287,68010 00:17 00:22 120 MB 346 MB 17,861,315 6,293,70020 01:02 02:25 153 MB 449 MB 21,450,627 8,164,800線が太くても高速 メモリ消費少ない中心への再レイキャストによりレイが増える
まとめ• Arnoldで輪郭線シェーダー実装– 自社開発 → カスタマイズ可能• いくつかの技術的な問題を解決– レンダリング時の後処理– グローバルキャッシュ– バケットごとのキャッシュ• 今後– アニメレンダラーの自社開発?© OLM Digital, Inc. 74
まとめ© OLM Digital, Inc. 75OLM ToonOLM EyeOLM Lit Sphere Smooth Voronoi©TOMY/ZW製作委員会・テレビ東京©Nintendo·Creatures·GAME FREAK·TV Tokyo·Shoro·JR Kikaku ©Pokémon©2019 PIKACHU PROJECT著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません