== 仅供学习、笔记积累之用 ,如有错误望指正==
前言
效果:面片随着视线角度增大图案会被消隐,类似光栅立体卡片的效果。
本篇介绍实现方式的一种。
原理
类似视差映射的其中一步。这里把切线空间的视线的z分量作为fade的控制量。在切线空间中,z轴与表面normal对齐,当视线与平面平行时,视线的z值接近0,相互垂直时接近1。
实现
real4 frag(v2f i) : SV_TARGET
{
real4 col = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
//=====> Mask <=====//
float3 ViewDirW = normalize(_WorldSpaceCameraPos.xyz - i.posW);
float3 NormalW = i.normalW;
float3 BinormW = i.binormW;
float3 TangentW = i.tangentW;
float3x3 TBN = float3x3(TangentW, BinormW, NormalW);
float3 ViewDirT = normalize(mul(ViewDirW, TBN));
float fade_mask =pow(max(ViewDirT.z,0),_FadeRange);
col = lerp(_BaseColor, col, fade_mask);
return col;
}