Unityシェーダー超入門 あいさつ
はじめに
備忘録且つ自分と同じような初学習者の方の少しでもお役にたてばと思い執筆しました。
学ぼうとしたきっかけは、Unityでの演出面を鍛えたくなったのが一番の理由です。
ShaderGraphで良くない?って思ったのですが、ノードベースとはいえ根底を理解してないと
しんどいなって思ったからです。ちなみにやりたい表現がShaderGraph等でレシピ化されてる事もあるのでそれを触ったほうが近道になる場合もあります。
プログラミング知識について
前提として基礎のプログラミング知識はあった方がいいと思います。
「if文って何?」の人は素直にC#なりの入門書なり記事なりを読んで置くのが良いです。
無くても進めれると思いますが、後付でもいいので身につけるのをオススメします。
四則演算や条件分岐あたりが分かれば十分だと思います。
シェーダーって何?
はい、僕もまだ良くわかってないです。陰影の処理だったり描画処理に纏わる物という認識です。
こちらの記事が個人的には分かりやすかったです。
情報源は複数あった方が良いので、他にも色んな記事や本に目を通すといいと思います。
ちなみに今自分は見返していても理解が追いついてない箇所はあります。
とりあえず、自分は頂点シェーダーとフラグメントシェーダーのことを抑えてから進みました。
他のことは、必要になったり読み返した時に穴埋めしていけばいいと思います。
数学知識がいるって聞いたけど…
はい、必要です!!!!そして!!!
僕は中学1年生位のレベルの数学しか出来ません。
シェーダーの学習と並行して数学を学び直しています。
ここも後々結びつけて行けばいいと思います。
そんな知識で大丈夫?
とりあえず、やってみましょう!桜井さんもそう言っております。
とりあえず書き写そう
プログラムは書くしかないです。
特に最初のうちは読むの同時にそっくりそのまま書いたほうがいいです。
そして実行して同じ結果になるまでを確認しましょう。
とりあえず、こちらの記事の内容のシェーダーを全部手書きで実行しましょう。
シェーダーで出来る表現のことなどなど、詳しく解説してくれています。
AIと上手く付き合おう
今噂の「ChatGPT」がシェーダーも書けちゃいます。
学習のお供としてコーディングのミスの指摘や分からない関数の処理の内容だったりを教えてくれます。
言語化するのにも良い壁打ち相手になると思います。活用しましょう。
いきなり100%は理解出来ない
僕がそうなんですが、コードを一回書いただけ、記事や本を一回読んだだけでは全部が理解出来ません。何度も書いたり読んだりするうちに徐々に理解出来るようになっていきました。
この記事を書いてる時点でシェーダーを学び出して一週間ですが、分からないことだらけです。
とりあえずやってみよう!
こうして書くと結構敷居が低くなってるかも?
「ChatGPT」の存在が大きいかもしれません!
ほぼ、自分に言い聞かせるように書いた記事ですが
初学習者の方々のお役に立てば光栄です。
次からは実際に作ったシェーダーの解説とかをやっていければと思います。
Discussion