思路:
1:场景去色
//屏幕UV
float4 screenPos = IN.ase_texcoord3;
float4 grabScreenPos = ComputeGrabScreenPos( screenPos );
float4 grabScreenPosNorm = grabScreenPos / grabScreenPos.w;
float4 tex2DNode28 = tex2D( _AfterPostProcessTexture, grabScreenPosNorm.xy );
float3 desaturateInitialColor7 = tex2DNode28.rgb;
//去色常用公式
float desaturateDot7 = dot( desaturateInitialColor7, float3( 0.299, 0.587, 0.114 ));
2:利用模型的顶点色去改变颜色(在shader里面添加顶点色,添加一个判断,可以让模型直接变成纯白或纯黑)
//加一个判断,只去色,不作阈值
#if _Gray
Color = desaturateDot7.xxx;
#endif
//Alpha用1也行其他也行
return half4( Color, Alpha );
3:设定一个值?0~1是原本颜色,1~2是白色,2~3是黑色
拓展:
CZ——Wang的黑白闪
https://zhuanlan.zhihu.com/p/460631289