res-avatar-unity/Assets/_PoiyomiShaders/Shaders/7.3/Patreon/VoxelCubed/Includes/PoiSubsurfaceScattering.cginc

30 lines
967 B
HLSL
Raw Normal View History

2023-07-16 02:51:23 +00:00
#ifndef SUBSURFACE
#define SUBSURFACE
float _SSSThicknessMod;
float _SSSStrength;
float _SSSPower;
float _SSSDistortion;
float4 _SSSColor;
UNITY_DECLARE_TEX2D_NOSAMPLER(_SSSThicknessMap); float4 _SSSThicknessMap_ST;
float3 finalSSS;
void calculateSubsurfaceScattering(v2f i, float3 viewDir)
{
float SSS = 1 - UNITY_SAMPLE_TEX2D_SAMPLER(_SSSThicknessMap, _MainTex, TRANSFORM_TEX(i.uv, _SSSThicknessMap));
half3 vLTLight = poiLight.direction + baseNormal * _SSSDistortion;
half flTDot = pow(saturate(dot(viewDir, -vLTLight)), _SSSPower) * _SSSStrength;
half3 fLT = poiLight.attenuation * (flTDot) * saturate(SSS + -1 * _SSSThicknessMod);
finalSSS = fLT;
}
void applySubsurfaceScattering(inout float4 finalColor)
{
finalColor.rgb += finalSSS * poiLight.color * albedo * _SSSColor;
}
#endif