BEGIN_OPTIONS END_OPTIONS BEGIN_PROPERTIES [NoScaleOffset]_MainTex("Albedo (RGB) Alpha (A)", 2D) = "white" {} [NoScaleOffset][Normal]_BumpMap("Normal (RGBA)", 2D) = "bump" {} [NoScaleOffset]_MetallicGlossMap("Metallic (R) Occlusion (G) Smoothness (B)", 2D) = "white" {} [NoScaleOffset]_EmissionMap("Emission (RGB)", 2D) = "white" {} _Color("Color", Color) = (1,1,1,1) _BumpScale("Normal Map Strength", Range(0,5)) = 1 _Metallic("Metallic", Range(0,1)) = 0 _GlossMapScale("Smoothness", Range(0,1)) = 1 _Emission("Emission", Color) = (0,0,0) _Tiling("Tiling", Float) = 1.0 END_PROPERTIES BEGIN_CBUFFER float4 _Color; float _BumpScale; float _Metallic; float _GlossMapScale; float3 _Emission; float _Tiling; END_CBUFFER BEGIN_CODE TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex); TEXTURE2D(_BumpMap); SAMPLER(sampler_BumpMap); TEXTURE2D(_MetallicGlossMap); SAMPLER(sampler_MetallicGlossMap); TEXTURE2D(_EmissionMap); SAMPLER(sampler_EmissionMap); void SurfaceFunction(inout Surface o, ShaderData d) { float2 coord = d.texcoord0.xy * _Tiling; float4 texMain = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, coord); float4 gloss = SAMPLE_TEXTURE2D(_MetallicGlossMap, sampler_MetallicGlossMap, coord); float4 bump = SAMPLE_TEXTURE2D(_BumpMap, sampler_BumpMap, coord); float4 glow = SAMPLE_TEXTURE2D(_EmissionMap, sampler_EmissionMap, coord); #if !_SKIP_ALPHA_CLIP clip(texMain.a * d.vertexColor.a * _Color.a - 0.5f); #endif o.Albedo = texMain.rgb * d.vertexColor.rgb * _Color.rgb; o.Normal = UnpackScaleNormal(bump, _BumpScale); o.Metallic = gloss.r * _Metallic; o.Occlusion = gloss.g; o.Smoothness = gloss.b * _GlossMapScale; o.Emission = glow.rgb * _Emission; o.Alpha = texMain.a * d.vertexColor.a * _Color.a; } END_CODE