36 lines
1.4 KiB
HLSL
36 lines
1.4 KiB
HLSL
|
#ifndef ADVANCED_DISSOLVE_INITIALIZE_LIT_LIT_SURFACE_DATA
|
||
|
#define ADVANCED_DISSOLVE_INITIALIZE_LIT_LIT_SURFACE_DATA
|
||
|
|
||
|
|
||
|
inline void AdvancedDissolve_InitializeSimpleLitSurfaceData(float2 uv, out SurfaceData outSurfaceData, float4 cutoutSource)
|
||
|
{
|
||
|
outSurfaceData = (SurfaceData)0;
|
||
|
|
||
|
half4 albedoAlpha = SampleAlbedoAlpha(uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap));
|
||
|
outSurfaceData.alpha = albedoAlpha.a * _BaseColor.a;
|
||
|
|
||
|
|
||
|
float cutout = _Cutoff;
|
||
|
//Advanced Dissolve/////////////////////////////////////////
|
||
|
#if defined(_AD_STATE_ENABLED) && defined(_ALPHATEST_ON)
|
||
|
AdvancedDissolveCalculateAlphaAndClip(cutoutSource, outSurfaceData.alpha, cutout);
|
||
|
#endif
|
||
|
|
||
|
|
||
|
AlphaDiscard(outSurfaceData.alpha, cutout);
|
||
|
|
||
|
outSurfaceData.albedo = albedoAlpha.rgb * _BaseColor.rgb;
|
||
|
#ifdef _ALPHAPREMULTIPLY_ON
|
||
|
outSurfaceData.albedo *= outSurfaceData.alpha;
|
||
|
#endif
|
||
|
|
||
|
half4 specularSmoothness = SampleSpecularSmoothness(uv, outSurfaceData.alpha, _SpecColor, TEXTURE2D_ARGS(_SpecGlossMap, sampler_SpecGlossMap));
|
||
|
outSurfaceData.metallic = 0.0; // unused
|
||
|
outSurfaceData.specular = specularSmoothness.rgb;
|
||
|
outSurfaceData.smoothness = specularSmoothness.a;
|
||
|
outSurfaceData.normalTS = SampleNormal(uv, TEXTURE2D_ARGS(_BumpMap, sampler_BumpMap));
|
||
|
outSurfaceData.occlusion = 1.0;
|
||
|
outSurfaceData.emission = SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap));
|
||
|
}
|
||
|
|
||
|
#endif
|