Unity 3: Shader for translucent objects

while working on an enhanced vegetation shader for unity 3 supporting translucency like the new tree leaves shader i tested my first efforts also on other game objects.
in the example below you can see the result: shading the translucent parts of the tents.
it works pretty well so far but leads to some issues when turning on SSAO: everything looks alright on my MacBook Pro (Nvidia GeForce 9600M GT) but when testing it on an iMac (ATI Radeon HD 2600 Pro) SSAO is also rendered on the translucent parts… is it a bug in the shader or a bug in the ATI drivers?
as far as i can see this wrong rendering of SSAO doesn’t appear on the tree leaves even on the iMac.

lars

Shader "My/MyTent" {
Properties {
	_Color ("TransColor", Color) = (1,1,1,1)
	_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
	_BumpMap ("Normalmap (RGB)", 2D) = "bump" {}
}

SubShader {
	Tags {"IgnoreProjector"="True" "RenderType"="TreeLeaf"}
	LOD 200
	
CGPROGRAM
#pragma surface surf MyLambert addshadow

sampler2D _MainTex;
sampler2D _BumpMap;
float4 _Color;

#pragma lighting LightingMyLambert exclude_path:prepass
inline half4 LightingMyLambert (SurfaceOutput s, half3 lightDir, half atten)
{
	half diff = dot(s.Normal, lightDir);
	
	half trans = max(0, -diff);
	half3 translucencyColor = _Color * trans * 2.0;
	
	// wrap around diffuse
	diff = max(0, diff * 0.5 + 0.5);
	
	half4 c;
	
	c.rgb = s.Albedo * (diff + translucencyColor);
	c.rgb *= _LightColor0.rgb;
	c.rgb *= (atten * 2);
	//c.a = s.Alpha;
	return c;
}

struct Input {
	float2 uv_MainTex;
	float2 uv_BumpMap;
	float4 color : COLOR;		
};


void surf (Input IN, inout SurfaceOutput o) {
	half4 c = tex2D(_MainTex, IN.uv_MainTex);
	o.Albedo = c.rgb;
	o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
	//o.Alpha = c.a;
	
}
ENDCG
}
}


Nice!

I’m looking for something like this - have you developed this further?