Skip to content

Commit 23327f6

Browse files
Billboard metallic shader
1 parent 4a25551 commit 23327f6

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
Shader "Billboard Metallic"
2+
{
3+
Properties
4+
{
5+
_Color ("Color", Color) = (1,1,1,1)
6+
_MainTex ("Albedo Map", 2D) = "black" {}
7+
_BumpMap ("Normal Map", 2D) = "bump" {}
8+
_MetallicGlossMap ("Metallic (R) Smoothness(A) Map", 2D) = "black" {}
9+
}
10+
11+
Subshader
12+
{
13+
Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" }
14+
CGPROGRAM
15+
#pragma surface SurfaceShader Standard fullforwardshadows addshadow vertex:vertexDataFunc
16+
17+
sampler2D _MainTex, _BumpMap, _MetallicGlossMap;
18+
float4 _Color;
19+
20+
struct Input
21+
{
22+
float2 uv_MainTex;
23+
float2 uv_BumpMap;
24+
float2 uv_MetallicGlossMap;
25+
};
26+
27+
void vertexDataFunc( inout appdata_full v, out Input o )
28+
{
29+
UNITY_INITIALIZE_OUTPUT( Input, o );
30+
v.vertex.xy *= float2(length(unity_ObjectToWorld._m00_m10_m20), length(unity_ObjectToWorld._m01_m11_m21));
31+
float3 forward = -normalize(UNITY_MATRIX_V._m20_m21_m22);
32+
float3 up = normalize(UNITY_MATRIX_V._m10_m11_m12);
33+
float3 right = normalize(UNITY_MATRIX_V._m00_m01_m02);
34+
float4x4 rotationMatrix = float4x4(right, 0, up, 0, forward, 0, 0, 0, 0, 1);
35+
v.vertex = mul(v.vertex, rotationMatrix);
36+
v.normal = mul(v.normal, rotationMatrix);
37+
v.vertex.xyz = mul((float3x3)unity_WorldToObject, v.vertex.xyz);
38+
v.normal = mul(v.normal, (float3x3)unity_ObjectToWorld);
39+
}
40+
41+
void SurfaceShader (Input IN, inout SurfaceOutputStandard o)
42+
{
43+
float4 c = tex2D(_MainTex,IN.uv_MainTex);
44+
o.Albedo = c.rgb * _Color;
45+
o.Normal = UnpackNormal (tex2D(_BumpMap, IN.uv_BumpMap));
46+
o.Metallic = tex2D(_MetallicGlossMap, IN.uv_MetallicGlossMap).r;
47+
o.Smoothness = tex2D(_MetallicGlossMap, IN.uv_MetallicGlossMap).a;
48+
clip (c.a - 0.5);
49+
}
50+
51+
ENDCG
52+
}
53+
}

0 commit comments

Comments
 (0)