勉強会のレポート(メモ)です。
参加したのはこちら、「Unity Shader 勉強会」
タイムスケジュール
開始時間 | 終了時間 | 内容 |
---|---|---|
19:00 | 受付開始 | |
19:20 | 19:35 | オープニング(諸注意等) |
19:35 | 19:50 | Image Based Shader Programming(@Es_Program) |
19:50 | 20:05 | Visual Effects Graph入門(@notargs ) |
20:05 | 20:15 | 休憩 |
20:15 | 20:30 | Unityを使ったVJでよく使うイメージエフェクト集(@kaiware007) |
20:30 | 20:45 | 頂点シェーダーアニメーション入門(@TEST_H_ ) |
20:45 | 21:00 | Shaderを運用する(@___shanon) |
21:00 | 22:00 | 懇親会 |
22:00 | 撤収 |
- スポンサー様紹介
- 1. Image Based Shader Programming
- 2. Visual Effects Graph
- 3. Unityを使ったVJでよく使うイメージエフェクト集
- 4. 頂点シェーダアニメーション入門
- 5. Shaderを運用する
- タイムライン
- 感想
スポンサー様紹介
会場提供はドリコムさん
懇親会の提供はGroovesさん、Unity部さんです
Grooves
Forkwellではエンジニアの転職サービスやってます。
成長しつづけるエンジニアを応援しています。
勉強会のスポンサー費用として800万円ほどやってきました、
瓶ビール79年分です。それくらい応援したいのです。
また出たなForkwell!
ポートフォリオサイトをリニューアルしました。
自己紹介などにお使いください。
皆様にプレゼントがあります。
github連携して新規でご登録くださった方にプレゼント。
今日から三日間のサービスです。
Unity部
年末LT大会やります。
ページはもうすぐ公開します。
UNIBOOKの執筆者募集してます。
1. Image Based Shader Programming
目標 Image Based Shader Programming
入出力をイメージできるようにするのが目標です。
シェーダーの基礎について話します。
諸注意
数年前のコードなので注意してね。
内積について
式などが多いのでスライドを見てね
古典的ライティングモデル
物体固有の色が見える反射をDiffuse反射、
ハイライトの反射をSpecular反射といいます
Lamvert反射(ランバート)
受けた光を受けた分同じく反射する
Specular反射(スペキュラー)
法線とライトの角度が小さいほど光の色がでて、
大きいほどでないというのを数式につっこんだもの
おまけ
マイクロファセットを考慮すると物理的な意味をこめた反射ができます
まとめ
内積さえわかれば単純
順を追って紐解けば難しくない数学です
2. Visual Effects Graph
VFX Graphの使い方が画像付きで詳しく解説されています。
スライドを見てください。
注意
正式リリース前なので注意、いろいろ変わる可能性があります
Visual Effects Graph
GPUベースで動くノードベースのパーティクルシステム
シュリケンより自由度が高い
速くて安くてうまい
使う場合
Unity最新版を使いましょう
セットアップ
スライドを見てね
基本ノード
Spawn:エミッター
Initialize:初期化処理
Update:毎フレーム行う処理
Output:どんな見た目で表示するかを設定
大量にだす場合
・Capacityを適当に増やす
・Spawnrateを増やす
まとめ
・正式前なのでいろいろ不安定
・とても自由度が高い
3. Unityを使ったVJでよく使うイメージエフェクト集
「Unityを使ったVJでよく使うイメージエフェクト集」のスライドとサンプルを下記に公開しました!!!! https://t.co/9ofXGnFqF0#UnityShader勉強会
— kaiware style🌱 (@kaiware007) November 8, 2018
UnityでVJしてますか?
VJ?
クラブやコンサートで音楽に映像を合わせる人
プリレンダ系とジェネ系にわかれます
私はジェネ系です
・音声入力とスペクトラム解析
・イメージエフェクト
最近はPostProcessingStackを使うのが主流
よく使うエフェクト
・Edge Detection
曲の雰囲気が変わるときに使うとよい
・Mosaic
ドットドットさせる
音量や曲のリズムに合わせて使う
・Distortion
音量に合わせて使う
・Invert & Random Invert
サビや激しい場面で使う
乱発しないで
・Radietion Blur
激しい音に合わせる
・Reflection
ちょっとした時に使う
・RGB Shift
音量に合わせてずらして使う
・Glitch
位置とか色をランダムな位置に飛ばす
まとめ
シンプルでも音に合わせてかけると気持ちい
シェーダー駆使して作ろう
4. 頂点シェーダアニメーション入門
便乗して私の方も先行してスライドを公開👀
— mao (@TEST_H_) November 8, 2018
こちらをベースに補足などしていければと思います🙇♀️#UnityShader勉強会
頂点シェーダーアニメーション入門https://t.co/M0hHsPbvQ7
図やコードが豊富に載っています。スライドを見てみてね。
メモ程度だけ置いておきます
話す内容
頂点シェーダーでオブジェクトを動かすにはどうやるのか
頂点の動かし方
ローカル座標に値を代入するだけ
拡大させたり回転させたいときは変換行列で簡単に実装できます
行列と頂点をかけることで動かせます
順番は大事
行優先、列優先についてはこのリンクをぜひ読んでください
おまけは資料でね
5. Shaderを運用する
スライドは後日完全版が上がります完全版商法
@___shanon
今日の話題 Shaderは爆発する
最強のShaderを作る。
→デザイナーさんの意見にそってどんどん拡張
→するとどんどん増えて、シェーダーが組み合わせ爆発します
・ブレンディングモード
・Culling
・Vertex オンオフ
・Lightingの方式 選べるように
・Rimlight.....
どんどん増える
単純な機能 on offが10機能あると1024ファイルできます
ところが
実際には10ではたりない
ではどうする
1.ブレンドやカリングはシェーダーにわける必要はなくプロパティにする
インスペクタから指定できるようにします
Enumをつけると、ドロップダウンリストで表示されます
実はこれでも使いづらい
この組み合わせはデザイナーにやさしくない
プロパティにさらにもうひとつ追加
シェーダーGUIを継承したやつでOnGUIで表示させてあげる
Unityのスタンダードシェーダーは公開されているのでダウンロードしましょう
2.機能のon offはShader Variantで表示する
on offはifで表現したい...
しかしifは重いから使ってはならない?
ifは実行しない分もクロックされるため重いのです
この辺りはGPUのいい感じの本を読んでね
shader_featureとmulti_compileが用意されています
プリプロセッサ的に指定できます。
もっと使いやすくするには、トグルを使う。
onにするとこれ以降のキーワードが有効になる~などの処理ができます。
スライドはここで終わっている・・・・
2つの違いについて
featureは実際には使われない組み合わせのシェーダーをビルドから除外してくれます。
それに対して強制的に全部の分岐を含めるのがmulti。
ただfeatureはランタイムにキーワードのonoffをした時、ビルド時に表示されなくなる。
そういうときはmultiで事前に生成してやるとよい。
タイムライン
こんな感じで迷いました (愚か) #UnityShader勉強会 pic.twitter.com/UvNyCTl41Y
— 青木とと(ˊᗜˋ*)))ジソク3㎝ (@lycoris102) November 8, 2018
VFX環境の作り方はこのリプライツリー読むと良いと思います#UnityShader勉強会 https://t.co/B4nphzqmC5
— さやちゃんぐbot (@songofsaya_) November 8, 2018
HDRPが最近VRで使えるようになったという噂のでどころはおいらなのではなかろーか。#UnityShader勉強会 https://t.co/REuqfFI8V1
— さやちゃんぐbot (@songofsaya_) November 8, 2018
#unityshader勉強会
— ザバイオーネ (@z_zabaglione) November 8, 2018
「UnityでVJしていますか?」
ざわ。。。ざわ。。。
Jnityってなんだと思ったらUが見切れてた#UnityShader勉強会
— そくはちくう (@Sokuhatiku) November 8, 2018
シェーダ書くとき地味に便利なのとして float a = 1.0; float4 b = a.xxxx; みたいに、float -> float4に拡張することができる。 #UnityShader勉強会
— edom18@VR (@edo_m18) November 8, 2018
回転行列については前に書いた記事で紹介した図が理解しやすいと思ってます。 https://t.co/3bawrsbtJk #UnityShader勉強会
— edom18@VR (@edo_m18) November 8, 2018
これが、こうなって、こう!
— 龍 lilea (@lileaLab) November 8, 2018
シェーダーでif使っちゃいかん理由完全に理解した。#UnityShader勉強会 pic.twitter.com/aldlqW8y7D
進捗 #UnityShader勉強会 pic.twitter.com/YXCWzUvH0G
— へりえる (@herie270714) November 8, 2018
本日は本当にありがとうございました!初主催で色々ご迷惑をおかけしたりしましたが、ご協力いただいた皆さんのおかげで無事成功させることができました! #UnityShader勉強会
— Es (@Es_Program) November 8, 2018
感想
ピザの写真撮り忘れた
シェーダーは初歩的なことしか知りませんでしたがとてもためになりました。
Visual Effects GraphとかもTwitterで見ると面白そうだけど実際に触ったことはないので、そろそろ触っておこう。
デモのキューブをたくさん出すやつがととさんのバナーのやつっぽくて最高にエモい。
Twitterのタイムラインを見てても、if文がなぜ重いかの解説が好評だった模様。
トレンドにのりました定期