先码上效果图:
1、基本思想
- 通过物体法线与灯光方向的点积来获得基础的漫反射效果
- 通过floor函数 来将漫反射灯光颜色进行离散切割,获得卡通的硬过渡效果
- 最后将灯光与贴图颜色相乘获得最后的效果
2、代码展示
Shader "Roystan/Toon/Lit"
{
Properties
{
_Color("Color", Color) = (1,1,1,1)
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags
{
"RenderType" = "Opaque"
"LightMode" = "ForwardBase"
}
UsePass "Legacy Shaders/VertexLit/SHADOWCASTER" //引入Unity的Pass通道,此通道用来渲染物体的阴影
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
#include "L