You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.9 KiB
64 lines
1.9 KiB
#ifndef UNIVERSAL_INPUT_SURFACE_INCLUDED |
|
#define UNIVERSAL_INPUT_SURFACE_INCLUDED |
|
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" |
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl" |
|
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl" |
|
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl" |
|
|
|
TEXTURE2D(_BaseMap); |
|
SAMPLER(sampler_BaseMap); |
|
float4 _BaseMap_TexelSize; |
|
float4 _BaseMap_MipInfo; |
|
TEXTURE2D(_BumpMap); |
|
SAMPLER(sampler_BumpMap); |
|
TEXTURE2D(_EmissionMap); |
|
SAMPLER(sampler_EmissionMap); |
|
|
|
/////////////////////////////////////////////////////////////////////////////// |
|
// Material Property Helpers // |
|
/////////////////////////////////////////////////////////////////////////////// |
|
half Alpha(half albedoAlpha, half4 color, half cutoff) |
|
{ |
|
#if !defined(_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A) && !defined(_GLOSSINESS_FROM_BASE_ALPHA) |
|
half alpha = albedoAlpha * color.a; |
|
#else |
|
half alpha = color.a; |
|
#endif |
|
|
|
#if defined(_ALPHATEST_ON) |
|
clip(alpha - cutoff); |
|
#endif |
|
|
|
return alpha; |
|
} |
|
|
|
half4 SampleAlbedoAlpha(float2 uv, TEXTURE2D_PARAM(albedoAlphaMap, sampler_albedoAlphaMap)) |
|
{ |
|
return half4(SAMPLE_TEXTURE2D(albedoAlphaMap, sampler_albedoAlphaMap, uv)); |
|
} |
|
|
|
half3 SampleNormal(float2 uv, TEXTURE2D_PARAM(bumpMap, sampler_bumpMap), half scale = half(1.0)) |
|
{ |
|
#ifdef _NORMALMAP |
|
half4 n = SAMPLE_TEXTURE2D(bumpMap, sampler_bumpMap, uv); |
|
#if BUMP_SCALE_NOT_SUPPORTED |
|
return UnpackNormal(n); |
|
#else |
|
return UnpackNormalScale(n, scale); |
|
#endif |
|
#else |
|
return half3(0.0h, 0.0h, 1.0h); |
|
#endif |
|
} |
|
|
|
half3 SampleEmission(float2 uv, half3 emissionColor, TEXTURE2D_PARAM(emissionMap, sampler_emissionMap)) |
|
{ |
|
#ifndef _EMISSION |
|
return 0; |
|
#else |
|
return SAMPLE_TEXTURE2D(emissionMap, sampler_emissionMap, uv).rgb * emissionColor; |
|
#endif |
|
} |
|
|
|
#endif
|
|
|