LoginSignup
3
0

More than 3 years have passed since last update.

Unity ShaderGraph レシピ #7 トゥーンシェーディング

Posted at

トゥーンシェーディング

gif_animation_007.gif

作り方

ライトベクトルとメッシュの法線から頂点の明るさを算出し、その値をUVとしてトゥーン用のライトマップ(ToonMap)から最終的な明るさを決め、モデルに適用します。

1.ToonMapに使うUV値の計算

頂点の法線と、ライトの向きで内積を取ります。どちらも単位ベクトルの場合、結果は(-1〜1)の値に収まります。
法線がライトの向きと向き合っている場合(明るい場合)=1、ライトと同じ方向を向いている場合(暗い場合)=-1になります。
この値をUV値にしたい(0〜1の値)ので、まず0.5を掛けて(-0.5〜0.5)その結果に0.5を足すことで0〜1の範囲に収めることができます。

スクリーンショット 2020-12-27 17.58.09.png

2.UV値を使ってToonMapをマッピング

スクリーンショット 2020-12-27 22.51.16.png

3. ToonMapをメッシュのテクスチャと乗算してライティング

スクリーンショット 2020-12-27 23.50.11.png

完成!

スクリーンショット 2020-12-27 23.52.04.png

スクリーンショット 2020-12-27 23.50.43.png

ToonMapを変えることでシェーディングをカスタマイズできます

toon3.png
↑の場合は↓
(作ってる時には気づかなかったですが画像の右上にゴミがありますね…)
スクリーンショット 2020-12-27 23.52.04.png

toon2.png
↑の場合は↓
スクリーンショット 2020-12-27 23.52.16.png

toon1.png
↑の場合は↓
スクリーンショット 2020-12-27 23.52.24.png


その他のレシピはShaderGraphレシピ一覧にまとまっています

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