Unity Shader学习:素描效果
这是乐乐大佬书里的非真实渲染,其中的算法还是挺有意思的,感兴趣的小伙伴可以试一试。
素描效果基本原理:先将物体进行描边画出轮廓,计算物体的漫反射部分,漫反射越暗表明颜色越暗,然后根据漫反射的值来设置采样贴图的权重。
采样贴图:
shader部分:
Shader "Unlit/Sketch"
{
Properties
{
_Color("Color",Color) = (1,1,1,1)
//贴图平铺系数
_TileFactor("TileFactor", Range(0, 10)) = 1
_Hatch0("Hatch0",2D)="white"{
}
_Hatch1("Hatch1",2D) = "white"{
}
_Hatch2("Hatch2",2D) = "white"{
}
_Hatch3("Hatch3",2D) = "white"{
}
_Hatch4("Hatch4",2D) = "white"{
}
_Hatch5("Hatch5",2D) = "white"{
}
//描边系数
_OutlineFactor("OutlineFactor",Range(0.0,0.1))=0.01
}
SubShader
{
Tags{
"Queue" = "Transparent" }
//描边使用两个Pass,第一个pass沿法线挤出一点,只输出描边的颜色
Pass