[Unite2018] 新機能Shader Graphを使えばプログラミング無しにシェーダーが作れるようになります!
公式サイト
http://events.unity3d.jp/unitetokyo2018/session-lineup.html#session52
講演者
高橋 啓治郎 (ユニティ・テクノロジーズ・ジャパン合同会社)
SlideShare
資料なし(ライブデモのみ)
Github
https://github.com/keijiro/ShaderGraphExamples
概要
- Unity2018から使えるShader Graph入門
- 基本的な使い方
- 動作原理
- テクニック
内容
- シェーダグラフ
- ノードベースのエディタ
- かんたんにシェーダが組める
- シェーダの互換性を高める
- カメラのrendering pathごとにシェーダを組む必要
- scriptable render pipelineの追加対応など
- カメラのrendering pathごとにシェーダを組む必要
- ノードベースのエディタ
- セットアップ手順
- Lightweight RPをインストールする
- package manager 経由でインストール
- Light weight PBR Graph
- Create > Shader > PBR Graph, Sub Graph, ...
- Lightweight RPをインストールする
- シェーダグラフの基礎
- PRB
- ライティングあり
- Sub
- 割愛
- Unlit
- ライティングなし(出色を直接指定)
- ex)
- Input > Basic > Color 色を作成
- UI左上 Save Assetで保存→shaderとして登録
- propertyを追加して、エディタ上で編集することも可能
- PRB
実装例
ディゾルブエフェクト
- Alpha Cutout
- cutoff値を生成
- それより低い値が透明になる
- 線形
- なめらかなグラデーション
- ノイズ
- もや〜っとした感じ
- cutoff値を生成
- Step Node
- しきい値処理
- Time, Fraction
- アニメーション処理を自動管理
- Alpha Cutout
エネルギーゲージ
- グラデーション素材とthresholdの組み合わせ
- Remap
- In Min ~ Maxの値がOut Min ~ Maxで出力される
- ex) in 0, 1 out 1, 0とすると、
0 ~ 1を入力すると1 ~ 0で出力される
- ex) in 0, 1 out 1, 0とすると、
- In Min ~ Maxの値がOut Min ~ Maxで出力される
- Smooth Step
- 2つのedgeを指定してthresholdのedgeをなめらかにする
- Lerp
- 値の補間、2点の間をつなぐ
古風なTVエフェクト
- Sin, (Split, Combine), Saturate
- Sinで櫛状の縞模様を作成
- SplitのG成分でUVのY軸の値を取り出す
- Saturateでsinの0以下の値を切り捨て
- Gradient Noise
- 画像を揺らがせる
- CombineでU値にAdd
- Remapで出力を調整
- Timeをかませることで、ゆらぎの強弱をつける
- Sin, (Split, Combine), Saturate
カスタムシェーダも作成可能