LoginSignup
3
0

More than 5 years have passed since last update.

shader02

Posted at

Shaderを実際使ってみる

はじめに

今回から実際shaderを使ってみましょう!
今回使うツールはunityです。(バージョンは5.6です)

使うまでの流れ

流れとしてはまずmaterialを作ります。その後createでshader(standard surface shader)を選択してshaderスクリプトを作ります。そしたら作った2つの物を関連付けます!materialのshaderの部分をCustomにして自分が作ったshaderスクリプトを選択してください。(画像ではmaterial:test shaderスクリプト:testとなっています。)
スクリーンショット 2017-06-02 01.06.43.png

実際のコーディング

今回は最も簡単なSurfaceShaderについて書いていきます。

スクリーンショット 2017-06-06 01.33.50.png

1.まずはコード全体をShader "Custom/test" {SubShader {....}FallBack "Diffuse"
}で囲みます。

2.CGPROGRAMはここからshaderコードが始まりENDCGで終わるということです。

3.#pragma surface surf LambertはSurfaceShaderのメイン関数はsurfということです。
そしてLambertはライティングの方法です。ざっくりいうと視点の位置に関わらず(近似された)同じ色で見えるという方法です。

4.10〜12行目ではshaderに流れ込んでくる情報を定義します。今回は色ですね!

5.14~16行目は主役、メインです!引数のINはInput構造体で定義した流れ込んでくる変数、oは出力する構造体です。はじめはなかなかイメージがわかないと思いますが、イメージとしては流れ込んできた構造体の変数をいじって出力構造体にセットみたいな感じです!そしたら画面に変化が訪れるはず!です。今回では出力の拡散光の色を赤にセットしているのでこのmaterialをセットしたオブジェクトは赤くなるはずです。

最後に

初学者向けに書いているので少し難しいところは飛ばして書いてあるので触れてない部分に関しては少し我慢して写経してみてください。今後の記事でしっかり書いていくつもりですので心配しないでください!また間違いがあった場合もしくは質問などがあったらコメントください!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0