デザインセンスがなくてもかっこいいビジュアルグラフィックスができるんですか?

2.1K Views

July 18, 24

スライド概要

LT会に登壇したときの資料です。
(一部不正確な情報が含まれるおそれがあります)
Shader/GLSLなどについて話しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

デザインセンスが なくても カッコいい グラフィックスが できるんですか? モーショングラフィックス大好き少年が、 シェーダーと出会う話

2.

【言い訳】俺が登壇するまでの流れ 登壇決定から今日までの日数… 2日

3.

やさしくしてね

4.

「カッコいい」が好きだった 思春期の俺の話

5.

モーショングラフィックスが好きだった モーショングラフィックス… 文字や図形などを使った、良い映像。

6.

自分もやってみた あれこれ試すけど… センスがない!!!

11.

鼻の黒い点がある 鼻の黒い点がない

12.

問題:次のような関数を考えよ。 視線ベクトル 𝒑𝒑 と面の法線ベクトル 𝒏𝒏 が与えられる。 横からの目線のとき、その面を透明にしたい。 すなわち、不透明度を • 𝒑𝒑 と 𝒏𝒏 が平行に近ければ大きく • 𝒑𝒑 と 𝒏𝒏 が垂直に近ければ0に近く すればよい。 そのような関数を実装できるだろうか? 厳密には… ベクトルは正規化されているものとしてよい。 また、法線ベクトルの向きは適切な向きになっているものとしてよい。

13.

俺にはデザインのセンスがなくても… 数学力が ある! (ちょっと)

14.

具体的に何ができるの? いかにシェーダーが数学を使うか知ってもらおう

15.

こういうのを書いてみました 輪郭が浮き彫りになるやつ(オーブのようなイメージ)

16.

オーブができるまで 1/3 まず素直にテクスチャの色をそのまま表示するコードを書く。

17.

オーブができるまで 2/3 視線ベクトル 𝒑𝒑 と面の法線ベクトル 𝒏𝒏 を取得する。 不透明度 (col.a) を 1 − 𝒑𝒑 � 𝒏𝒏 に設定する。

18.

オーブができるまで 3/3 輪郭をパキッとさせるため、不透明度を4乗する。

19.

いろいろあります シェーダー×数学 先程の例でも、内積と指数関数を用いた。他にも… • どの角度から見てもこちらを向いてくるシェーダー ⇒ 回転行列 • 画面を歪ませたりしたいんですけど ⇒ 極座標 など • 画面を一刀両断してみたい! ⇒ 外積 (切断面の法線ベクトル) パッと思いつくだけでこんなにある

20.

何が嬉しい? 勝ちまくりモテまくり 2選

21.

嬉しいこと① ネタが思いつきやすい • 一般的に、デザインは簡単にネタ切れを起こす。 • 「カッコいい動画」のパターンを挙げてください→抽象的で難しい • 普通に他分野を学んでいて面白かったことを実装すれば良い。 • この物理モデルを実装してみよう→具体的で取り組みやすい • 基本的に何でもできます。 • 畳み込みニューラルネット・逆運動学・探索アルゴリズムを組み合わせている人 もいて、怖い。 https://phi16.hatenablog.com/entry/2019/09/02/010324

22.

嬉しいこと② 言いやすい 以前までの自分: 「このアルゴリズムを使ってこのボトルネックが解消して オーダーがこうなるから高速化できて~」 • 地元の友だちから「何?」って目で見られる • 楽しいのに、伝わらない…。 今の自分: 「こういうことをやっています(動画を見せる)」 • 親に話しやすい • 視覚に訴えかけてくるので、ちゃんと伝わる

23.

「やってみようかな」←そんなあなたに • つぶやきGLSL • やってる人多いイメージある • つぶやきGLSLのススメ - notargs さん https://www.slideshare.net/slideshow/glsl-249579645/249579645 • WebGL • フロントエンド大好き人間におすすめかも • Three.js使うと楽です 「Three.js 入門」で検索 • Unity (Shaderlab/Shadergraph) • 「Unityシェーダープログラミングの教科書 ShaderLab言語解説編」 • Shadergraphでビジュアルプログラミングできるよ

24.

シェーダーには夢がいっぱい!

25.

ご清聴 ありがとうございました! 感謝の牛肉、アンガトビーフ(アンガスビーフ)