Files
Cielonos/Assets/OtherPlugins/GraphicsCat/Modules/LitPlus/Shaders/Includes/Passes/MetaPass.hlsl
SoulliesOfficial d15957c719 更新
2025-12-17 04:19:38 -05:00

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);
}