起因是有人谈到HDRP更新了半透明阴影,然后想了想透明物体在NPR中还是比较常见的,至少我上次就看到有人发了个模型,就因为衣服上的丝绸部分没有加描边,导致看上去完成度很低。
透明物体有丝绸,雨衣(透明胶制服装),玻璃杯等等,还算挺常见的,而且都有生成描边和投影的需求。
正好把一些遗留的问题解决了。
半透描边大概就三种方案,1.按透明绘制但是写入深度,2.用模板缓存代替深度,3.当不透明物体渲染并用GrabPass来模拟透明。我这里用的是最简单的第一种。
和头发类似,先绘制背面,再绘制正面,然后再扩边绘制背面的描边,3个PASS,需要保证模型的内面的深度更高。封闭物体都具有这个性质。
Tags{ "RenderType" = "Transparent" "Queue" = "Transparent" }
Pass
{
Blend SrcAlpha OneMinusSrcAlpha
ColorMask RGB
Cull Front
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
ENDCG
}
Pass
{
Blend SrcAlpha OneMinusSrcAlpha
Color