blob: 58cf74a03d90d67a848683e3805da59ce14a0471 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#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
|