Двусторонний шейдер делается легко, за это отвечает инструкция
Cull Off
, подробнее про куллинг можно почитать
здесь. Нужную вам прозрачность можно получить с помощью
alpha:fade
, если говорить про
surface-шейдеры, с другими шейдерами будет немного сложнее. Ниже обычный шаблон шейдера, который я немного подчистил и добавил две недостающие инструкции.
Shader "Custom/NewSurfaceShader"
{
Properties
{
_Color("Color", Color) = (1,1,1,1)
_MainTex("Albedo (RGB)", 2D) = "white" {}
_Glossiness("Smoothness", Range(0,1)) = 0.5
_Metallic("Metallic", Range(0,1)) = 0.0
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
// Выключаем куллинг, чтобы меш рисовался с двух сторон
Cull Off
CGPROGRAM
// По с равнению со стандартным шаблоном в конце добавилось "alpha:fade" для получения прозрачности
#pragma surface surf Standard fullforwardshadows alpha:fade
#pragma target 3.0
struct Input
{
float2 uv_MainTex;
};
fixed4 _Color;
sampler2D _MainTex;
half _Glossiness;
half _Metallic;
void surf(Input IN, inout SurfaceOutputStandard o)
{
fixed4 color = tex2D (_MainTex, IN.uv_MainTex)*_Color;
o.Albedo = color.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = color.a;
}
ENDCG
}
FallBack "Diffuse"
}
Если хотите побольше узнать про шейдеры, то можете почитать
The Book of Shaders и соответствующий
раздел мануала. Ещё есть хорошая
серия туториалов на эту тему.