- Home /
 
               Question by 
               Hypnotoad0 · Sep 20, 2015 at 04:42 PM · 
                shadertexturespriteuvtexturecoord  
              
 
              Accessing a second texture's offset in a modified sprite shader
Im a complete noob when it comes to shaders. Ive been trying to make an overlay shader for my weapon sprites (so I can add cool animated effects like lightning and fire to them).
This is a modified version of the default shader that I came up with:
 Shader "Sprites/Overlay"
 {
     Properties
     {
         [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
     _OverlayTex("Overlay Texture", 2D) = "white" {}
     _Color("Tint", Color) = (1,1,1,1)
         [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
     }
 
         SubShader
     {
         Tags
     {
         "Queue" = "Transparent"
         "IgnoreProjector" = "True"
         "RenderType" = "Transparent"
         "PreviewType" = "Plane"
         "CanUseSpriteAtlas" = "True"
     }
 
         Cull Off
         Lighting Off
         ZWrite Off
         Blend One OneMinusSrcAlpha
 
         Pass
     {
         CGPROGRAM
 #pragma vertex vert
 #pragma fragment frag
 #pragma multi_compile _ PIXELSNAP_ON
 #include "UnityCG.cginc"
 
     struct appdata_t
     {
         float4 vertex   : POSITION;
         float4 color    : COLOR;
         float2 texcoord : TEXCOORD0;
     };
 
     struct v2f
     {
         float4 vertex   : SV_POSITION;
         fixed4 color : COLOR;
         half2 texcoord  : TEXCOORD0;
     };
 
     fixed4 _Color;
 
     v2f vert(appdata_t IN)
     {
         v2f OUT;
         OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
         OUT.texcoord = IN.texcoord;
         OUT.color = IN.color * _Color;
 #ifdef PIXELSNAP_ON
         OUT.vertex = UnityPixelSnap(OUT.vertex);
 #endif
 
         return OUT;
     }
 
     sampler2D _MainTex;
     sampler2D _OverlayTex;
     sampler2D _AlphaTex;
     float _AlphaSplitEnabled;
 
     fixed4 SampleSpriteTexture(float2 uv)
     {
 
         fixed4 color = tex2D(_MainTex, uv);
         fixed4 overlayColor = tex2D(_OverlayTex, uv);
 
         color.rgb *= overlayColor.rgb;
 
         if (_AlphaSplitEnabled)
             color.a = tex2D(_AlphaTex, uv).r;
 
         return color;
 
     }
 
     fixed4 frag(v2f IN) : SV_Target
     {
 
         fixed4 c = SampleSpriteTexture(IN.texcoord) * IN.color;
 
         c.rgb *= c.a;
 
         return c;
 
     }
 
         ENDCG
     }
 
     }
 }
How the hell do I access the overlay texture's offset and tiling? Im assuming I have to use a second UV, but I have no idea how to do that. This is probably very simple but Im banging my head against the wall over here
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Assigning UV Map to model at runtime 0 Answers
Sprite shader relative UV's 0 Answers
Are shaders more efficient than manual pixel replacement? 0 Answers
Shifting Texture Coordinates via CG Shader 1 Answer
Sprite obstruction transparent area 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                