- Home /
Question by
Shifty-Geezer · Jul 15, 2017 at 08:04 PM ·
rendertexturealphasurface shader
How do I add alpha writes to this shader?
I draw the camera output to a RenderTexture with sprites drawn with the following shader (2D normal mapped sprite). The sprites appear when drawn to the screen, but are invisible when drawn to the RenderTexture. What do I need to change to write opacity to the RenderTexture? Thanks!
Shader "SG/_ShipSurfaceShader" {
Properties {
_MainTex ("Main texture", 2D) = "white" {}
_NormalTex ("Normal map", 2D) = "bump" {}
_SpecColor ("Specular colour", Color) = (1,1,1,1)
_SpecPower ("Specular power", Range (0.0,2.0)) = 0.5
}
SubShader {
Tags { "Queue"="Transparent" }
Blend SrcAlpha OneMinusSrcAlpha
LOD 200
CGPROGRAM
#pragma surface surf BlinnPhongTransparent alpha
inline fixed4 LightingBlinnPhongTransparent (SurfaceOutput s, fixed3 lightDir, half3 viewDir, fixed atten) {
half3 h = normalize (lightDir + viewDir);
fixed diff = max (0, dot (s.Normal, lightDir));
float nh = max (0, dot (s.Normal, h));
float spec = pow (nh, s.Specular*32.0) * s.Gloss;
fixed4 c;
c.rgb = (s.Albedo * _LightColor0.rgb * diff + _LightColor0.rgb * _SpecColor.rgb * spec) * (atten);
c.a = s.Alpha;
return c;
}
sampler2D _MainTex;
sampler2D _NormalTex;
half _SpecPower;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
o.Normal = UnpackNormal(tex2D (_NormalTex, IN.uv_MainTex));
o.Specular = _SpecPower;
o.Gloss = 1;
}
ENDCG
}
FallBack "Diffuse"
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220612130347im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Does alpha blending work on image effects? 1 Answer
The alpha value in the RenderTexture are not the same in Editor mode and Build mode. 2 Answers
Distant object won't render in 'distance camera' 0 Answers
Graphics/RenderTexture Alpha Brush 0 Answers
GUI.DrawTexture to draw a rendertexture with particle shaders in the scene. 1 Answer