image.pngimage.pngSnipaste_2022-05-05_10-25-05.png
    思路:
    1:场景去色

    1. //屏幕UV
    2. float4 screenPos = IN.ase_texcoord3;
    3. float4 grabScreenPos = ComputeGrabScreenPos( screenPos );
    4. float4 grabScreenPosNorm = grabScreenPos / grabScreenPos.w;
    5. float4 tex2DNode28 = tex2D( _AfterPostProcessTexture, grabScreenPosNorm.xy );
    6. float3 desaturateInitialColor7 = tex2DNode28.rgb;
    7. //去色常用公式
    8. float desaturateDot7 = dot( desaturateInitialColor7, float3( 0.299, 0.587, 0.114 ));

    2:利用模型的顶点色去改变颜色(在shader里面添加顶点色,添加一个判断,可以让模型直接变成纯白或纯黑)

    1. //加一个判断,只去色,不作阈值
    2. #if _Gray
    3. Color = desaturateDot7.xxx;
    4. #endif
    5. //Alpha用1也行其他也行
    6. return half4( Color, Alpha );

    3:设定一个值?0~1是原本颜色,1~2是白色,2~3是黑色

    拓展:
    CZ——Wang的黑白闪
    https://zhuanlan.zhihu.com/p/460631289image.png