Unity++blog.

UnityやC#とかについて学習したことを書いてます

シェーダプログラミング リムライティング

今回はまたまたこちらのサイトよりシェーダプログラミングについて学習しました。しばらくシェーダについてをこちらから学習したいと思います。

 

【Unityシェーダ入門】リムライティングのシェーダを作る - おもちゃラボ

 

リムライティングとは3Dモデルの背後から当たった光が、モデルの手前側へ回り込むことを指すそうです。

 

左がノーマルで右がリムライティングを適用したものです。

f:id:nabesi777:20181009165505j:plain

 

このオブジェクトだと後ろから?かはわかりませんが、ライトが反射しています。

こちらがリムライティングのシェーダプログラムです。

f:id:nabesi777:20181009165733j:plain

 

このプログラムでは、オブジェクトの輪郭部分のエミッション(光の当たり具合)を高くし、中央部分を低くすることでオブジェクトの背景から光が当たっているような演出をしています。詳細の説明は上記サイトに記載があります。

 

理屈は前回の氷のシェーダプログラミングとにていますね!

 

nabesi777.hatenablog.com

 

またもっとシャープに光を減衰させたい場合は

下記の部分を

o.Emission = rimColor * pow(rim, 2.5);

o.Emission = rimColor * pow(rim, 3);

rim係数3乗としてあげると綺麗に輪郭のみが浮かびあがるようになります。

 

試してみると下図のようになりました。左が3乗にしたものです。

f:id:nabesi777:20181009170525j:plain

 

より自然になりました!