- Home /
Question by
ScottySR · Jan 07 at 12:24 AM ·
shader writingunlit transparent
How do I fix my strange looking double sided transparent shader
I'm trying to write a shader that is:
Double sided
Transparent
Unlit
To me it looks like there is some priority problem with the faces, but I don't know how to fix this. EDIT: Turning ZWrite to On does fix the priority issue, but not all back faces are drawn in that case.
The shader is edited from the unlit transparent shader that comes with unity. I don't remember how the original was so I don't know if the shader as is is any different from the original.
Shader "Unlit/Transparent" {
Properties {
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}
SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 100
ZWrite Off
Cull Off
Blend SrcAlpha OneMinusSrcAlpha
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
#pragma multi_compile_fog
#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f {
float4 vertex : SV_POSITION;
float2 texcoord : TEXCOORD0;
UNITY_FOG_COORDS(1)
UNITY_VERTEX_OUTPUT_STEREO
};
sampler2D _MainTex;
float4 _MainTex_ST;
v2f vert (appdata_t v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.vertex = UnityObjectToClipPos(v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.texcoord);
UNITY_APPLY_FOG(i.fogCoord, col);
return col;
}
ENDCG
}
}
}
shader.png
(101.1 kB)
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613051353im_/https://answers.unity.com/themes/thub/images/avi.jpg)