unity视频变灰

xiaoxiao2021-03-01  25

Shader "Hidden/BWDiffuse" {     Properties {         _MainTex ("Base (RGB)", 2D) = "white" {}         _bwBlend ("Black & White blend", Range (0, 1)) = 0     }     SubShader {         Pass {             CGPROGRAM             #pragma vertex vert_img             #pragma fragment frag               #include "UnityCG.cginc"               uniform sampler2D _MainTex;             uniform float _bwBlend;               float4 frag(v2f_img i) : COLOR {                 float4 c = tex2D(_MainTex, i.uv);                                  float lum = c.r*.3 + c.g*.59 + c.b*.11;                 float3 bw = float3( lum, lum, lum );                                   float4 result = c;                 result.rgb = lerp(c.rgb, bw, _bwBlend);                 return result;             }             ENDCG         }     } }

 

 

using UnityEngine; using System.Collections;

[ExecuteInEditMode] public class BWEffect : MonoBehaviour {

    public float intensity;     private Material material;

    // Creates a private material used to the effect     void Awake ()     {         material = new Material( Shader.Find("Hidden/BWDiffuse") );     }

    // Postprocess the image     void OnRenderImage (RenderTexture source, RenderTexture destination)     {         if (intensity == 0)         {             Graphics.Blit (source, destination);             return;         }

        material.SetFloat("_bwBlend", intensity);         Graphics.Blit (source, destination, material);     } }

转载请注明原文地址: https://www.6miu.com/read-4050005.html

最新回复(0)