XuanKuang.shader 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. Shader "Unlit/XuanKuang"
  2. {
  3. Properties
  4. {
  5. [HDR]_MainCol("MainCol",color) = (1,1,1,1)
  6. [HDR]_FlowCol("FlowCol",color)= (1,1,1,1)
  7. _FlowTex("FlowTex",2D)= "white" {}
  8. _FlowSpeed("FlowSpeed",Vector)= (0, 0,0, 0)
  9. }
  10. SubShader
  11. {
  12. Cull Off
  13. ZTest Off
  14. ZWrite Off
  15. Blend SrcAlpha OneMinusSrcAlpha
  16. Tags {"Queue"= "Transparent" "RenderType"="Transparent" }
  17. Pass
  18. {
  19. CGPROGRAM
  20. #pragma vertex vert
  21. #pragma fragment frag
  22. #include "UnityCG.cginc"
  23. struct appdata
  24. {
  25. float4 vertex : POSITION;
  26. float4 color : COLOR;
  27. float2 uv:TEXCOORD0;
  28. };
  29. struct v2f
  30. {
  31. float4 color: TEXCOORD0;
  32. float4 vertex : SV_POSITION;
  33. float2 uv:TEXCOORD1;
  34. };
  35. half4 _MainCol, _FlowCol;
  36. sampler2D _FlowTex;
  37. float4 _FlowTex_ST;
  38. float4 _FlowSpeed;
  39. v2f vert (appdata v)
  40. {
  41. v2f o;
  42. o.vertex = UnityObjectToClipPos(v.vertex);
  43. o.color = v.color;
  44. o.uv = TRANSFORM_TEX(v.uv, _FlowTex);
  45. o.uv += _Time.y * float2(_FlowSpeed.x, _FlowSpeed.y);
  46. return o;
  47. }
  48. half4 frag(v2f i) : SV_Target
  49. {
  50. // sample the texture
  51. half4 col = half4(_MainCol.rgb,_MainCol.a*i.color.a);
  52. half4 flowCol = tex2D(_FlowTex, i.uv) * _FlowCol* i.color.r;
  53. half4 finalCol = half4(col.rgb + flowCol.rgb, min(1, (col.a + i.color.r))* i.color.a);
  54. return finalCol;
  55. }
  56. ENDCG
  57. }
  58. }
  59. }