If anyone else gets this issue, i would advise just using some other code, i got it to work by using ' tpelham42's ' code -
Shader "Shield" {
Properties {
_Offset ("Time", Range (0, 1)) = 0.0
_Color ("Tint (RGB)", Color) = (1,1,1,1)
_SurfaceTex ("Texture (RGB)", 2D) = "white" {}
_RampTex ("Facing Ratio Ramp (RGB)", 2D) = "white" {}
}
SubShader {
ZWrite Off
Tags { "Queue" = "Transparent" }
Blend One One
Cull Off
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_fog_exp2
#include "UnityCG.cginc"
struct v2f {
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
float2 uv2 : TEXCOORD1;
float3 normal : TEXCOORD2;
};
uniform float _Offset;
v2f vert (appdata_base v) {
v2f o;
o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
float3 viewDir = normalize(ObjSpaceViewDir(v.vertex));
v.texcoord.x = v.texcoord.x;
v.texcoord.y = v.texcoord.y + _Offset;
o.uv = TRANSFORM_UV (1);
o.uv2 = float2( abs (dot (viewDir, v.normal)), 0.5);
o.normal = v.normal;
return o;
}
uniform float4 _Color;
uniform sampler2D _RampTex : register(s0);
uniform sampler2D _SurfaceTex : register(s1);
half4 frag (v2f f) : COLOR
{
f.normal = normalize (f.normal);
half4 ramp = tex2D (_RampTex, f.uv2) * _Color.a;
half4 tex = tex2D (_SurfaceTex, f.uv) * ramp * _Color;
return half4 (tex.r, tex.g, tex.b, ramp.r);
}
ENDCG
SetTexture [_RampTex] {combine texture}
SetTexture [_SurfaceTex] {combine texture}
}
}
Fallback "Transparent/VertexLit"
}
its much the same, with the exception of not having the main texture slide around, but that wont be hard to write.
Thanks anyway guys!
Hi, im having some trouble with getting a shader to work, its the sheild shader writen by Omar Rojo (Toack).
I right clicked and created a new shader, i removed all the stock code (should i have done that?) and pasted in the Java version of the shader...
Shader "ForceField"
{
Properties
{
_Color("_Color", Color) = (0,1,0,1)
_SoftParticlesFactor("_SoftParticlesFactor", Range(0.1,3) ) = 2
_Inside("_Inside", Range(0,0.2) ) = 0
_Rim("_Rim", Range(1,2) ) = 1.2
_Texture("_Texture", 2D) = "white" {}
_Speed("_Speed", Range(0.5,5) ) = 0.5
_Tile("_Tile", Range(1,10) ) = 5
_Strength("_Strength", Range(0,5) ) = 1.5
}
SubShader
{
Tags
{
"Queue"="Transparent"
"IgnoreProjector"="True"
"RenderType"="Transparent"
}
Cull Off
ZWrite On
ZTest LEqual
CGPROGRAM
#pragma surface surf BlinnPhongEditor alpha vertex:vert
#pragma target 3.0
float4 _Color;
sampler2D _CameraDepthTexture;
float _SoftParticlesFactor;
float _Inside;
float _Rim;
sampler2D _Texture;
float _Speed;
float _Tile;
float _Strength;
struct EditorSurfaceOutput {
half3 Albedo;
half3 Normal;
half3 Emission;
half3 Gloss;
half Specular;
half Alpha;
};
inline half4 LightingBlinnPhongEditor_PrePass (EditorSurfaceOutput s, half4 light)
{
half3 spec = light.a * s.Gloss;
half4 c;
c.rgb = (s.Albedo * light.rgb + light.rgb * spec);
c.a = s.Alpha + Luminance(spec);
return c;
}
inline half4 LightingBlinnPhongEditor (EditorSurfaceOutput s, half3 lightDir, half3 viewDir, half atten)
{
viewDir = normalize(viewDir);
half3 h = normalize (lightDir + viewDir);
half diff = max (0, dot (s.Normal, lightDir));
float nh = max (0, dot (s.Normal, h));
float3 spec = pow (nh, s.Specular*128.0) * s.Gloss;
half4 res;
res.rgb = _LightColor0.rgb * (diff * atten * 2.0);
res.w = spec * Luminance (_LightColor0.rgb);
return LightingBlinnPhongEditor_PrePass( s, res );
}
struct Input {
float4 screenPos;
float3 viewDir;
float2 uv_Texture;
};
void vert (inout appdata_full v, out Input o) {
float4 VertexOutputMaster0_0_NoInput = float4(0,0,0,0);
float4 VertexOutputMaster0_1_NoInput = float4(0,0,0,0);
float4 VertexOutputMaster0_2_NoInput = float4(0,0,0,0);
float4 VertexOutputMaster0_3_NoInput = float4(0,0,0,0);
}
void surf (Input IN, inout EditorSurfaceOutput o) {
o.Albedo = 0.0;
o.Normal = float3(0.0,0.0,1.0);
o.Emission = 0.0;
o.Gloss = 0.0;
o.Specular = 0.0;
o.Alpha = 1.0;
float4 ScreenDepthDiff0= LinearEyeDepth (tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(IN.screenPos)).r) - IN.screenPos.z;
float4 Multiply6=ScreenDepthDiff0 * _SoftParticlesFactor.xxxx;
float4 Saturate0=saturate(Multiply6);
float4 Fresnel0_1_NoInput = float4(0,0,1,1);
float4 Fresnel0=float4( 1.0 - dot( normalize( float4(IN.viewDir, 1.0).xyz), normalize( Fresnel0_1_NoInput.xyz ) ) );
float4 Step0=step(Fresnel0,float4( 1.0 ));
float4 Clamp0=clamp(Step0,_Inside.xxxx,float4( 1.0 ));
float4 Pow0=pow(Fresnel0,_Rim.xxxx);
float4 Multiply5=_Time * _Speed.xxxx;
float4 UV_Pan0=float4((IN.uv_Texture.xyxy).x,(IN.uv_Texture.xyxy).y + Multiply5.x,(IN.uv_Texture.xyxy).z,(IN.uv_Texture.xyxy).w);
float4 Multiply1=UV_Pan0 * _Tile.xxxx;
float4 Tex2D0=tex2D(_Texture,Multiply1.xy);
float4 Multiply2=Tex2D0 * _Strength.xxxx;
float4 Multiply0=Pow0 * Multiply2;
float4 Multiply3=Clamp0 * Multiply0;
float4 Multiply4=Saturate0 * Multiply3;
float4 Master0_0_NoInput = float4(0,0,0,0);
float4 Master0_1_NoInput = float4(0,0,1,1);
float4 Master0_3_NoInput = float4(0,0,0,0);
float4 Master0_4_NoInput = float4(0,0,0,0);
float4 Master0_6_NoInput = float4(1,1,1,1);
o.Emission = _Color;
o.Alpha = Multiply4;
}
ENDCG
}
Fallback "Diffuse"
}
I then created a new material and applyed the shader, and added a texture to to the texture slot, in the inspector the shader looks fine, but when i add it to an object (default spheare primatave) it doesnt show up anything in either the real-time or editor windows, but the object is still there.
I was under the impression that the shader should have had a texture slot for a B/W ramp, but i dont see one. Could someone please tell me what i have done wrong?
This is the page where i got the code.
A solution would be really appreciated.
Thanks! - Graeme.