MotionBlur.shader 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "Hidden/MotionBlur" {
  3. Properties {
  4. _MainTex ("Base (RGB)", 2D) = "white" {}
  5. _AccumOrig("AccumOrig", Float) = 0.65
  6. }
  7. SubShader {
  8. ZTest Always Cull Off ZWrite Off
  9. Pass {
  10. Blend SrcAlpha OneMinusSrcAlpha
  11. ColorMask RGB
  12. BindChannels {
  13. Bind "vertex", vertex
  14. Bind "texcoord", texcoord
  15. }
  16. CGPROGRAM
  17. #pragma vertex vert
  18. #pragma fragment frag
  19. #include "UnityCG.cginc"
  20. struct appdata_t {
  21. float4 vertex : POSITION;
  22. float2 texcoord : TEXCOORD;
  23. };
  24. struct v2f {
  25. float4 vertex : SV_POSITION;
  26. float2 texcoord : TEXCOORD;
  27. };
  28. float4 _MainTex_ST;
  29. float _AccumOrig;
  30. v2f vert (appdata_t v)
  31. {
  32. v2f o;
  33. o.vertex = UnityObjectToClipPos(v.vertex);
  34. o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
  35. return o;
  36. }
  37. sampler2D _MainTex;
  38. half4 frag (v2f i) : SV_Target
  39. {
  40. return half4(tex2D(_MainTex, i.texcoord).rgb, _AccumOrig );
  41. }
  42. ENDCG
  43. }
  44. Pass {
  45. Blend One Zero
  46. ColorMask A
  47. BindChannels {
  48. Bind "vertex", vertex
  49. Bind "texcoord", texcoord
  50. }
  51. CGPROGRAM
  52. #pragma vertex vert
  53. #pragma fragment frag
  54. #include "UnityCG.cginc"
  55. struct appdata_t {
  56. float4 vertex : POSITION;
  57. float2 texcoord : TEXCOORD;
  58. };
  59. struct v2f {
  60. float4 vertex : SV_POSITION;
  61. float2 texcoord : TEXCOORD;
  62. };
  63. float4 _MainTex_ST;
  64. v2f vert (appdata_t v)
  65. {
  66. v2f o;
  67. o.vertex = UnityObjectToClipPos(v.vertex);
  68. o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
  69. return o;
  70. }
  71. sampler2D _MainTex;
  72. half4 frag (v2f i) : SV_Target
  73. {
  74. return tex2D(_MainTex, i.texcoord);
  75. }
  76. ENDCG
  77. }
  78. }
  79. SubShader {
  80. ZTest Always Cull Off ZWrite Off
  81. Pass {
  82. Blend SrcAlpha OneMinusSrcAlpha
  83. ColorMask RGB
  84. SetTexture [_MainTex] {
  85. ConstantColor (0,0,0,[_AccumOrig])
  86. Combine texture, constant
  87. }
  88. }
  89. Pass {
  90. Blend One Zero
  91. ColorMask A
  92. SetTexture [_MainTex] {
  93. Combine texture
  94. }
  95. }
  96. }
  97. Fallback off
  98. }