読者です 読者をやめる 読者になる 読者になる

Unity 虹色の影を作る(サーフェスシェーダの影の色を変更する)

以下のような虹色の影を作る
f:id:yasuaki-ohama:20150720212036p:plain
元の画像
f:id:yasuaki-ohama:20150720212042p:plain

サーフェスシェーダを作る
これが基本形
gist.github.com

LambertをSimpleLambertに変更したものが以下
基本形と同じ動きをする...とリファレンス言ってますが影が若干おかしい(気にしない気にしない)
gist.github.com

これに影の設定を入れる
影の色 _ShadowColor ("ShadowColor", Color) = (0,0,1,1)
法線情報と光の計算 half NdotL = dot (s.Normal, lightDir);
影のパラメータ atten

c.rgb = s.Albedo * _LightColor0.rgb * (NdotL * atten * 2);
以下のように変更影に色をつける
c.rgb = s.Albedo * _LightColor0.rgb * (NdotL * min((atten + _ShadowColor.rgb), 1) * 2);

gist.github.com


スクリプト
上のシェーダを設定したマテリアルを付けたオブジェクトの生成をする。
今回無理やりHSV 360色彩分オブジェクトを作成しています。
なのでドローコール360のパワープログラミング(笑
次回にでUVで自動色変更したいするものにします。
gist.github.com


f:id:yasuaki-ohama:20150720212036p:plain

PSM DevPortal
Unity サーフェスシェーダの影の色を変更する(仮):simiのブログ
unity_shader_back_light - FreeStyleWiki
【Unity,C#】RGBではなくHSVによる色指定 | naichilab - Android iOSアプリ開発メモ
その3 サーフェイスシェーダ

RGBをHSV(HSB)、HSL(HLS)、HSIに変換、復元する: .NET Tips: C#, VB.NET

Unity - マニュアル: ShaderLab: Fallback
nakamura001 @ ウィキ - トップページ/Unity(Unity3D)/内蔵シェーダのソースコード
Yaminabe:うにばな(シェーダ的なもの1) - livedoor Blog(ブログ)
Unity 4.2で無料版でもリアルタイムの影の描画が可能に - 強火で進め
PSM DevPortal

Shader Affected by unity lights? | Unity Community



UnlitAlphaWithFade - Unify Community Wiki