Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Shaders / AuraShader.shader
  1. Shader "MyShaders/Image Effects/Aura Shader"{
  2. Properties{
  3. _MainTex("Texture", 2D) = "white"{}
  4. _Color("Color",Color) = (1,1,1,1)
  5. _NoiseTex("Noise Texture", 2D) = "white"{}
  6. _Intensity("Intensity",Range(0,1)) = 0
  7. _AuraColor("Aura Color",Color) = (1,1,1,1)
  8. }
  9. SubShader{
  10. Pass{
  11. HLSLPROGRAM
  12. #pragma vertex MyVertexProgram
  13. #pragma fragment MyFragmentProgram
  14. #include "UnityCG.cginc"
  15. struct VertexData {
  16. float4 position : POSITION;
  17. float2 uv : TEXCOORD0;
  18. float2 uvNoise : TEXCOORD1;
  19. };
  20. struct VertexToFragment {
  21. float4 position : SV_POSITION;
  22. float2 uv : TEXCOORD0;
  23. float2 uvNoise : TEXCOORD1;
  24. };
  25. sampler2D _MainTex;
  26. sampler2D _NoiseTex;
  27. float4 _MainTex_ST;
  28. float4 _Color;
  29. float4 _NoiseTex_ST;
  30. float _Intensity;
  31. float4 _AuraColor;
  32. VertexToFragment MyVertexProgram(VertexData vertex)
  33. {
  34. VertexToFragment v2f;
  35. v2f.position = UnityObjectToClipPos(vertex.position);
  36. v2f.uv = vertex.uv * _MainTex_ST.xy + _MainTex_ST.zw;
  37. v2f.uvNoise = vertex.uvNoise * _NoiseTex_ST.xy + _NoiseTex_ST.zw;
  38. return v2f;
  39. }
  40. float4 MyFragmentProgram(VertexToFragment v2f) : SV_TARGET
  41. {
  42. float4 nsTex = tex2D(_NoiseTex, v2f.uvNoise + (_Time.x * 2));
  43. float4 bckTex = tex2D(_MainTex, v2f.uv);
  44. bckTex = bckTex * _Color;
  45. float4 inverseColor = abs(float4(1,1,1,1) - nsTex);
  46. float4 colorClamped = clamp(inverseColor,float4(0.7,0.7,0.7,0.7),float4(1,1,1,1)) * _AuraColor;
  47. float4 lerpdColor = lerp(bckTex, colorClamped, _Intensity);
  48. return lerpdColor;
  49. }
  50. ENDHLSL
  51. }
  52. }
  53. }