So im trying to make some sort of distortion. Everything looks fine with perspective camera,but doesnt work with 2D/ortographic camera. Here`s my shader. Code (CSharp): Shader"Effects/Distortion/CullBack+1"{ Properties{ _Color("Main Color",Color)=(1,1,1,1) _MainTex("Base (RGB) Gloss (A)",2D)="black"{} _BumpMap("Normalmap",2D)="bump"{} _ColorStrength("Color Strength",Float)=1 _BumpAmt("Distortion [0-100]", range (0,100))=10 } SubShader{ Tags{"Queue"="Transparent+1""RenderType"="Transperent"} GrabPass{} LOD 200 ZWriteOn CullBack CGPROGRAM #pragma surface surf Lambert alpha vertex:vert sampler2D _MainTex; sampler2D _BumpMap; float_BumpAmt; float_ColorStrength; sampler2D _GrabTexture; float4 _GrabTexture_TexelSize; float4 _Color; structInput{ float2 uv_MainTex; float2 uv_BumpMap; float4 proj : TEXCOORD0; }; void vert (inout appdata_full v,outInput o){ UNITY_INITIALIZE_OUTPUT(Input,o); float4 oPos = mul(UNITY_MATRIX_MVP, v.vertex); #if UNITY_UV_STARTS_AT_TOP float scale =-1.0; #else float scale =1.0; #endif o.proj.xy =(float2(oPos.x, oPos.y*scale)+ oPos.w)*0.5; o.proj.zw = oPos.zw; } void surf (Input IN, inout SurfaceOutput o){ o.Normal=UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); half2 offset = o.Normal.rg *_BumpAmt*_GrabTexture_TexelSize.xy; IN.proj.xy = offset * IN.proj.z + IN.proj.xy; half4 col = tex2Dproj(_GrabTexture, UNITY_PROJ_COORD(IN.proj)); fixed4 tex = tex2D(_MainTex, IN.uv_MainTex)*_Color; o.Emission= col.xyz + tex*_ColorStrength; o.Alpha=_Color.a; } ENDCG } FallBack"Effects/Distortion/Free/CullBack" } 2D/Ortograpic Perscpective