| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 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
|