OldBlueWater/BlueWater/Assets/FlatKit/Shaders/StylizedSurface/LibraryUrp/StylizedInput.hlsl

130 lines
3.1 KiB
HLSL
Raw Normal View History

2023-08-04 16:02:49 +00:00
#ifndef FLAT_KIT_STYLIZED_INPUT_INCLUDED
#define FLAT_KIT_STYLIZED_INPUT_INCLUDED
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl"
#ifndef FLATKIT_TERRAIN
2023-08-23 07:32:24 +00:00
#if _FORWARD_PLUS
CBUFFER_START(UnityPerMaterialNoBatching)
#else
2023-08-04 16:02:49 +00:00
CBUFFER_START(UnityPerMaterial)
#endif
2023-08-23 07:32:24 +00:00
#endif
2023-08-04 16:02:49 +00:00
// --- `SimpleLitInput.hlsl` ---
float4 _BaseMap_ST;
#ifndef FLATKIT_TERRAIN
half4 _BaseColor;
half _Cutoff;
half _Surface;
#endif
half4 _EmissionColor;
// -----------------------------
half4 _UnityShadowColor;
// --- _CELPRIMARYMODE_SINGLE
half4 _ColorDim;
// --- _CELPRIMARYMODE_SINGLE
// --- DR_SPECULAR_ON
half4 _FlatSpecularColor;
float _FlatSpecularSize;
float _FlatSpecularEdgeSmoothness;
// --- DR_SPECULAR_ON
// --- DR_RIM_ON
half4 _FlatRimColor;
float _FlatRimSize;
float _FlatRimEdgeSmoothness;
float _FlatRimLightAlign;
// --- DR_RIM_ON
// --- _CELPRIMARYMODE_STEPS
half4 _ColorDimSteps;
sampler2D _CelStepTexture;
// --- _CELPRIMARYMODE_STEPS
// --- _CELPRIMARYMODE_CURVE
half4 _ColorDimCurve;
sampler2D _CelCurveTexture;
// --- _CELPRIMARYMODE_CURVE
// --- DR_CEL_EXTRA_ON
half4 _ColorDimExtra;
half _SelfShadingSizeExtra;
half _ShadowEdgeSizeExtra;
half _FlatnessExtra;
// --- DR_CEL_EXTRA_ON
// --- DR_GRADIENT_ON
half4 _ColorGradient;
half _GradientCenterX;
half _GradientCenterY;
half _GradientSize;
half _GradientAngle;
// --- DR_GRADIENT_ON
half _TextureImpact;
half _SelfShadingSize;
half _ShadowEdgeSize;
half _LightContribution;
half _LightFalloffSize;
half _Flatness;
half _UnityShadowPower;
half _UnityShadowSharpness;
half _OverrideLightmapDir;
half3 _LightmapDirection;
2023-08-23 07:32:24 +00:00
half _DetailMapImpact;
half4 _DetailMapColor;
2023-08-04 16:02:49 +00:00
half4 _OutlineColor;
half _OutlineWidth;
half _OutlineScale;
half _OutlineDepthOffset;
half _CameraDistanceImpact;
// Unused, required in Meta pass.
#ifndef FLATKIT_TERRAIN
half4 _SpecColor;
TEXTURE2D(_SpecGlossMap); SAMPLER(sampler_SpecGlossMap);
#endif
#ifndef FLATKIT_TERRAIN
CBUFFER_END
#endif
inline void InitializeSimpleLitSurfaceData(float2 uv, out SurfaceData outSurfaceData)
{
outSurfaceData = (SurfaceData)0;
2023-08-23 07:32:24 +00:00
half4 albedo = SampleAlbedoAlpha(uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap));
outSurfaceData.alpha = albedo.a * _BaseColor.a;
2023-08-04 16:02:49 +00:00
AlphaDiscard(outSurfaceData.alpha, _Cutoff);
2023-08-23 07:32:24 +00:00
outSurfaceData.albedo = albedo.rgb;
2023-08-04 16:02:49 +00:00
#ifdef _ALPHAPREMULTIPLY_ON
outSurfaceData.albedo *= outSurfaceData.alpha;
#endif
outSurfaceData.metallic = 0.0; // unused
outSurfaceData.specular = 0.0; // unused
outSurfaceData.smoothness = 0.0; // unused
outSurfaceData.normalTS = SampleNormal(uv, TEXTURE2D_ARGS(_BumpMap, sampler_BumpMap));
outSurfaceData.occlusion = 1.0; // unused
outSurfaceData.emission = SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap));
}
half4 SampleSpecularSmoothness(half2 uv, half alpha, half4 specColor, TEXTURE2D_PARAM(specMap, sampler_specMap))
{
half4 specularSmoothness = half4(0.0h, 0.0h, 0.0h, 1.0h);
return specularSmoothness;
}
#endif // FLAT_KIT_STYLIZED_INPUT_INCLUDED