获取观察方向和物体Normal的夹角
这样可以获取到边缘的值
float rim = 1.0 - saturate(dot(IN.viewDir, o.Normal));
o.Emission = _Color * pow(rim, _RimPow);
o.Alpha = rim;
dot(IN.viewDir, o.Normal)//获取观察方向对Normal方向的差异
如果差异越小则返回值越大。
1-之后则是差异越小则返回值越小,当观察者与Normal方向接近垂直时的值越大。
所以看到的就是接近边缘的地方了
Hologram的实现,就是把需要透明显示的部分的Alpha通道用Rim值代替