shader_flowlight_step04.shader 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. Shader "Custom/shader_flowlight_step04" {
  2. Properties {
  3. _MainTex ("Base (RGB)", 2D) = "white" {}
  4. _FlowTex ("Light Texture(A)", 2D) = "black" {} //流光贴图
  5. _uvaddspeed ("",float) = 2//流光uv改变速度
  6. }
  7. SubShader {
  8. Tags {"RenderType"="Transparent" "Queue"="Transparent" }//改为透明
  9. LOD 200
  10. Blend SrcAlpha OneMinusSrcAlpha //指定alphaBlend
  11. CGPROGRAM
  12. #pragma surface surf Lambert
  13. sampler2D _MainTex;
  14. sampler2D _FlowTex;//属性
  15. float _uvaddspeed;//属性
  16. struct Input {
  17. float2 uv_MainTex;
  18. };
  19. void surf (Input IN, inout SurfaceOutput o) {
  20. half4 c = tex2D (_MainTex, IN.uv_MainTex);
  21. float2 uv =IN.uv_MainTex;//计算流光uv
  22. uv.x/=2;//取一半
  23. uv.x+=_Time.y*_uvaddspeed;//横向加上
  24. float flow = tex2D (_FlowTex, uv).a;//取流光亮度
  25. //o.Albedo = c.rgb + float3(flow/2,flow/2,flow/2);//加上流光亮度颜色
  26. o.Emission = c.rgb + float3(flow/2,flow/2,flow/2);//改为输出Emission,不受光影响
  27. o.Alpha = c.a;
  28. }
  29. ENDCG
  30. }
  31. //FallBack "Diffuse" 去掉fallback,也就不投影了
  32. }