55 lines
1.5 KiB
HLSL
55 lines
1.5 KiB
HLSL
#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);
|
|
}
|
|
|