Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unity道場aseスペシャル補足資料

6,080 views

Published on

Unity道場 Special「Amplify Shader Editorを使ってみよう!」勉強会補足資料

Published in: Engineering
  • Be the first to comment

Unity道場aseスペシャル補足資料

  1. 1. Unity道場 Special Amplify Shader Editorを使ってみよう! 勉強会補足資料 Unity Technologies Japan合同会社 コミュニティエバンジェリスト 小林信行 2017/04/08
  2. 2. 本日のハッシュタグは #Unity道場で! セミナー終了までに、 Unity Meetupアプリをインストール。 Unity道場運営より2つのお願い
  3. 3. 本日のポイント⇒4つ  シェーダーをいじることは怖くない。 シェーダーをいじってもそう簡単にPCが壊れることはない。  シェーダーは、ノードの組み方のパターンで憶えるとよい。  リアルタイム表示やデバッグノードなどを利用しながら、 トライアンドエラーでパターンを憶えるとよい。  最適化に当たっては、必ずエンジニアに相談しよう。
  4. 4. ノーマルマップ 補足説明の時間 1
  5. 5. バーテックスノーマル/ノーマルマップ ←4頂点しかないQuadでも、 ノーマルマップを割り当ててやると、 凹凸があるように見える。 (フラグメントシェーダーの機能) UVマップ バーテックスノーマル ノーマルマップ (タンジェントスペース)
  6. 6. アルベドマップ スペキュラマップ 補足説明の時間 2
  7. 7. Albedoマップ、Specularマップ⇒PBRか否か? Standardの場合 Standard Specularの場合
  8. 8. カラーは、光の中に含まれる各電磁波がマテリアル表面に当 たってディフューズ反射をする際に、波長ごとにフィルタされる ことで、最終的に決定する。 PBRでの「アルベドマップ」とは、超簡単に言うと「光に対する カラーフィルタ」のようなもの。アルベド由来のカラーは、光が あって初めて決定する。 PBRで重要な概念 ⇒ 「光は電磁波」「カラーは特定の波長の電磁波の反射」
  9. 9. PBRでのアルベドマップ⇒反射能マップ Standardの場合 Standard Specularの場合
  10. 10. アルベド以外のカラーマップ⇒ディフューズマップ マテリアルの物理特性とは関係なく、ディフュー ズ反射後のカラーをそのままマップとしたもの。 従来のカラーマップは、ほぼこれである。 ライティングやシェーディングからの情報を除き、 マテリアルのサーフェイスカラーを基本的に決定 します。 正しいカラーが出るのは、白のライトを当てた場 合のみ。それ以外は「正確さ」は保証されない。 これらはまたシェーダーの作り方にも依存します。
  11. 11. PBRでのスペキュラマップ⇒マテリアルの特性 を表すマップのひとつ Standard Specularの場合のみ
  12. 12. PBR以外のスペキュラマップ⇒鏡面反射マップ 光が、サーフェイス表面でそのまま反射する(こ れを鏡面反射といいます)様子を、光沢という形 で表現するマップ。右の例では、暗い部分は光 沢を減らし、明るい部分は光沢を増やすという 形でハイライトを加えている。他にも直接色をの せたり、スペキュラ自体の輝きの調子を調整した りして質感を表現することもある。 実装の仕方はシェーダーに依存する。
  13. 13. 物理ベースシェーダー 補足説明の時間 3
  14. 14. 物理ベースシェーダー(PBS)とは • Unity5が搭載するスタンダードシェーダーは、物理ベースシェーダー(PBS)です。 PBSの特長は、どんなライティング下でも正しい質感が得られることです。 • これらのシェーダーが「物理ベース」と呼ばれるのは、「物理的に正しい」実装がされているからです。 • 「物理的に正しい」 ⇒「エネルギー保存の法則が破綻しない」 ⇒「サーフェイスに入射する光(入射光)の明るさ以上の反射光をサーフェイスが反射しない」 • 物理ベース以外のシェーダーは、サーフェイスがカラーとして反射するディフューズ反射と、ハイライ ト部分として反射するスペキュラ反射の部分を個別に調整ができるので、全体としてエネルギー保 存の法則に従っていない可能性があります。 • その影響として、あるライティング下でセッティングしたマテリアルが、 別のライティング下ではまったく質感が異なってしまうということが発生します。 それを解決するのが、PBSです。
  15. 15. 3つの反射:ディフューズ反射、グロッシィ反射、 スペキュラ反射 • 光がサーフェイス上に入射すると、サーフェイスの特性に従って次の3つのパターンの反射が発生します。 1. ディフューズ反射(拡散反射):光が全ての方向に均一に散乱します。 2. グロッシィ反射(光沢反射):光線の方向性を維持しつつ、ある程度散乱したり和らいだりする。 3. スペキュラ反射(鏡面反射):光のシャープさが維持され、全ての光線が散乱せずに反射する。 • グロッシィ反射とスペキュラ反射は、散乱があるかないかなので、ここでは一緒に「スペキュラ反射」とし て扱うことにします。 The Comprehensive PBR Guide by Allegorithmic – Vol.1 BDサポート MAYAサポート Q&A MILA導入編
  16. 16. エネルギー保存をどのレイヤーで保証する? • PBSには、リアルタイム用とプリレンダー用 の2種類があります。プリレンダー用の代表 例は、Maya mentalRayのmia_materialで すが、その場合、エネルギーの優先順位で、 Reflection(反射)>Refraction(屈折) /Translucency(透過)>Diffuse(拡散)の 順番でエネルギーが取られていきます。 • スタンダードシェーダーなどのリアルタイム 用のPBSでは、屈折や透過はそのままでは 扱えませんので、サーフェイス表面上で発 生するスペキュラ反射とディフューズ反射 の2つの間でエネルギーを取り合います。 Everything You Always Wanted to Know About mia_material* (* But Were Afraid to Ask)/Zap Andersson, Autodesk
  17. 17. F0とBRDF(Bidirectional Reflection Distribution Function) 他のツールにマテリアルを移植する際に注意するポイント • 他のツールのPBSにマテリアルを移植する時に、「質感」に大きく影響を与える可能性があるのが、 F0とBRDFです。 • BRDF(双方向反射分布率関数)は、簡単に言ってしまえば、実世界のサーフェイスがもつ複雑な反 射の関係(様々な入射角から入る光がどの程度反射し、どの程度吸収されるかなど)を数式によっ て表したものです。BRDFの定式化には、簡単なものから複雑なものまであり、Unity5.3以降では最 高クオリティでGGXという方式が取られています。BRDFはシェーダーが扱うので、アーティストは意 識する必要がありません。他のツールにマテリアルを移植する際には、どの方式かを確認します。 Background: Physics and Math of Shading / Naty Hoffman
  18. 18. F0とBRDF(Bidirectional Reflection Distribution Function) 他のツールにマテリアルを移植する際に注意するポイント • 一方、F0(0度のフレネル値)は、あるマテリアルを垂直に見下ろした場合の反射率のことです。 屈折率(IOR : Index of Refraction)側から見ると、IORは、1からF0を引いたものとなります。F0は各 素材ごとに固有の値で、これらはマテリアルを作成する時に、なんらかのマップにインプリメントされ て実装されることになります。つまり、現実に存在するどのような素材なのかを想定しながら、マップ に各マテリアルを割り当てていくことで、各々のワークフローに応じて実装されることになります。 Background: Physics and Math of Shading / Naty Hoffman The Comprehensive PBR Guide by Allegorithmic – Vol.1
  19. 19. PBS向けマテリアル作成の2つのワークフロー • PBS向けマテリアル作成のワークフローとしては、シェーダー の実装方式によって代表的なものが2つあります。実装の 方式は違いますが、両者は本質的には同じものです。 1. メタル・ラフネス ワークフロー : Standard Shader / Albedo Map、Metallic MapとSmoothness Map。 Smoothness Mapは、ラフネスマップの反転になってい る。アルベドマップが取れるsRGBの値に定義域がある ことに注意すること。 2. スペキュラ・グロッシネス ワークフロー:Standard (Specular) Shader / Albedo Map、Specular Mapと Smoothness Map。Smoothness Mapとグロッシネス マップは同じもの。スペキュラマップは従来型シェー ダー向けの「スペキュラマップ」とはまったく違うものな ので注意すること。(従来型シェーダーのスペキュラマッ プは、事実上スペキュラマスクのようなもの) • どちらかと言えば扱いやすくメモリにも優しいのが、 メタル・ラフネス ワークフローのほうです。 Standard Shader Standard (Specular) Shader
  20. 20. リニアカラースペース ガンマカラースペース 補足説明の時間 4
  21. 21. リニアカラースペース/ガンマカラースペース? http://www.slideshare.net/SIGTART/ss-6903030 物理ベースの絵作りのための基礎 知識/ 鈴木雅幸 http://help.autodesk.com/view/MAYAUL/2016/JPN//?guid=GUID- B877BB9F-176C-4D36-8CCB-7293A54CE747 http://compojigoku.blog.fc2.com/blog-entry-26.html
  22. 22. https://ja.wikipedia.org/wiki/ガンマ値 ポイント: 人間の視覚は元々、明るさに対して リニアではない! 人間の明るさに対する反応をそれっ ぽくシミュレートしたものが、上に凸の ガンマコレクションカーブ。 モニタ上で表示される、元の明るさ 50%は、まずCRTのガンマを通って 22%程度の明るさで表示され、それ を人間の目が受けた時に、22%の明 るさが視覚側で補正されて、初めて 脳内で50%の明るさに見える。
  23. 23. 入力するイメージのデガンマ処理 ガンマ補正されたテクスチャイメージ 0.4545のガンマを掛ける リニアのデータにする http://matome.naver.jp/odai/2135967112171159001
  24. 24. イメージのリニア化をしないと何が起こる? http://download.autodesk.com/global/docs/maya2013/en_us/index.html?url=files/GUID- F7A7FC66-4D36-4544-9DBD-24FA35C66C2C.htm,topicNumber=d30e623483
  25. 25. 出力イメージの補正 http://help.autodesk.com/view/MAYAUL/2016/JPN//?guid=GUID-A1329E53-4132- 4229-AF14-607BE0371F95

×