#pragma once #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/MetaInput.hlsl" struct Attributes { float4 positionOS : POSITION; float4 uv0 : TEXCOORD0; float2 uv1 : TEXCOORD1; float2 uv2 : TEXCOORD2; }; struct Varyings { float4 positionCS : SV_POSITION; float4 uv : TEXCOORD0; }; Varyings mVaryings; #include "Includes/Common/Input.hlsl" #include "Includes/Utils/MathUtils.hlsl" #include "Includes/Utils/ColorSpaceUtils.hlsl" #include "Includes/Features/Surface/Data/UV.hlsl" #include "Includes/Features/Surface/Maps/BaseMap.hlsl" #include "Includes/Features/Surface/Maps/MaskMap.hlsl" #include "Includes/Features/Effects/Emission.hlsl" Varyings VertexMeta(Attributes input) { Varyings output; output.positionCS = MetaVertexPosition(input.positionOS, input.uv1, input.uv2, unity_LightmapST, unity_DynamicLightmapST); output.uv.xy = TRANSFORM_TEX(input.uv0, _BaseMap); output.uv.zw = input.uv0.zw; return output; } half4 FragmentMeta(Varyings input) : SV_Target { mVaryings = input; SetupUV(); SetupBaseMap(); SetupMaskMap(); float2 uv = input.uv; MetaInput metaInput = (MetaInput)0; metaInput.Albedo = _BaseColor.rgb * tex2D(_BaseMap, uv).rgb; // metaInput.SpecularColor = SampleSpecularSmoothness(uv, 1.0h, _DirectSpecularColor, tex2D(_MaskTEXTURE2D_ARGS(_SpecGlossMap, sampler_SpecGlossMap)).xyz; metaInput.Emission = GetEmission(); return MetaFragment(metaInput); }