【Unity】初めて『シェーダーグラフ』でシェーダーを学んでみる 基礎編.⑤

f:id:Effect-Lab:20180415184308j:plain

 

こんにちは。

 

シェーダーを一度も触った事のないデザイナーが、Unityの「シェーダーグラフ」を使ってシェーダーを学んでみるシリーズ。

 

このシリーズでは、公式のサンプルシーンを元に僕がシェーダーグラフで学んだ事を解説していきます。
シェーダー学習初という事もあり、たくさんの方のブログを拝見し、勉強させていただきました。
このシリーズには僕が参考にさせていただいたブログのリンクを貼らせていただいておりますので、そちらも併せて読んでいただくとより一層理解が深まるかと思います。
 

 

今回は「基礎編.⑤」という事で、公式のサンプルシーンにある上の画像のリングがどのように作られているかを解説します

 

まずはこちらの記事で紹介したサンプルシーン「Shader Graph Example Library」を開いてください。

 

シーンは開けましたか?
それではシェーダーの解説に入ります。

 

 シェーダーを開く

サンプルのシーンを開いたら、「Procedural-Shape-Ring」というファイルをダブルクリックして下さい。

f:id:Effect-Lab:20180415190607j:plain

 

するとシェーダーグラフのエディターが立ち上がります。
※Propertyにコンバートされていたノードは「Convert To Inline Node」で元に戻してあります。

f:id:Effect-Lab:20180415190810j:plain

 

 全体の流れ

個々のノードを見ていく前に、このシェーダーが何をしているのか、全体の流れを軽く把握していきましょう。

f:id:Effect-Lab:20180415191318j:plain

このシェーダーは、二つのEllipseノードで作った大きさ違いの円を①で合成してリングを作っています。

その後はColorノードから出力された緑カラーとリングをMultiplyノードで乗算して、下記のようなリングが完成します。

 f:id:Effect-Lab:20180415191456j:plain

 

 重要ノードの解説

さて、全体の流れを把握した所で、今回のシェーダーで重要な役割を持つノードを詳しく見ていきましょう。

 

 ① Subtract

f:id:Effect-Lab:20180415191929j:plain

このノードは、Aに入力された値をBに入力された値で減算するノードです。

式で表すとこのようになります。

A-B=Out

このシェーダーでは、同じ白色(R:255,G:255,B:255)の大きな円と小さな円を重ねているため重なった個所のRGBが減算され0になり、このようにリング状になるというわけです。 

 

 完成!

f:id:Effect-Lab:20180415191456j:plain

これで今回のシェーダーは完成です!

 

 まとめ

今回は、2つの異なる図形を掛け合わせて新たな図形を作るという、今までより一歩進んだシェーダーでした。

今回新しく覚えるべきノードは1つだけです。

  1. Subtractで減算する!

この1つを覚えたら次へ進みましょう!