Shader "Custom/Planet_Base" { Properties{ _MainTex("Base (RGB)", 2D) = "white" {} _AOalbedo("AO in albedy", Range(0.0, 2)) = 0.0 [NoScaleOffset]_Glossiness("Glossiness", 2D) = "black" {} _SmoothnessShift("Smoothness shift", Range(-1, 1)) = 0.0 _AOsmoothness("AO in smoothness", Range(-1, 1)) = 0.0 [NoScaleOffset]_BumpMap("Normal Map", 2D) = "bump" {} _BumpScale("Bump Scale", Range(0.0, 1.0)) = 1.0 [NoScaleOffset]_AOMap("AO Map", 2D) = "white" {} _AOintensity("AO intensity", Range(0.2, 5)) = 1.0 [NoScaleOffset] _EmissionMap("Emission Map", 2D) = "white" {} _EmissionScale("Emission Scale", Float) = 0.0 } CGINCLUDE //@TODO: should this be pulled into a shader_feature, to be able to turn it off? #define _GLOSSYENV 1 #define UNITY_SETUP_BRDF_INPUT SpecularSetup //#define UNITY_SETUP_BRDF_INPUT MetallicSetup ENDCG SubShader { Tags{ "RenderType" = "Opaque" } LOD 300 CGPROGRAM #pragma target 3.0 #include "UnityPBSLighting.cginc" //#pragma surface surf Standard #pragma surface surf Standard fullforwardshadows //#pragma surface surf Lambert //#define UNITY_PASS_FORWARDBASE sampler2D _MainTex; sampler2D _BumpMap; sampler2D _Glossiness; sampler2D _AOMap; sampler2D _EmissionMap; uniform float _AOalbedo; uniform float _AOsmoothness; uniform float _SmoothnessShift; uniform float _EmissionScale; uniform float _AOintensity; uniform half _BumpScale; struct Input { float2 uv_MainTex; }; void surf(Input IN, inout SurfaceOutputStandard o) { float3 albedotex = tex2D(_MainTex, IN.uv_MainTex); float4 glossinesstex = tex2D(_Glossiness, IN.uv_MainTex); float4 normaltex = tex2D(_BumpMap, IN.uv_MainTex); float4 ao = tex2D(_AOMap, IN.uv_MainTex); float3 emission = tex2D(_EmissionMap, IN.uv_MainTex); o.Occlusion = pow(ao.g, _AOintensity); o.Albedo = lerp(albedotex, float3(0.0f, 0.0f, 0.0f), saturate((1.0f-o.Occlusion) * _AOalbedo)); o.Emission = emission.rgb * _EmissionScale; o.Normal = normalize(UnpackScaleNormal(normaltex, _BumpScale)); o.Metallic = 0.0f; o.Smoothness = saturate(glossinesstex.g + ((1.0f-o.Occlusion) * _AOsmoothness) + _SmoothnessShift); } ENDCG } FallBack "Diffuse" }