|
|
|
|
|
|
//------------------------------------------------------------------------------------- |
|
|
|
#include "CoreRP/ShaderLibrary/Packing.hlsl" |
|
|
|
#include "CoreRP/ShaderLibrary/Sampling/SampleUVMapping.hlsl" |
|
|
|
#include "CoreRP/ShaderLibrary/EntityLighting.hlsl" |
|
|
|
#include "../MaterialUtilities.hlsl" |
|
|
|
|
|
|
|
#if (SHADERPASS == SHADERPASS_DBUFFER) |
|
|
|
void GetSurfaceData(float2 texCoordDS, float4x4 normalToWorld, out DecalSurfaceData surfaceData) |
|
|
|
|
|
|
} |
|
|
|
#endif |
|
|
|
#if (SHADERPASS == SHADERPASS_MESHDECALS) |
|
|
|
void GetSurfaceData(float2 texCoordDS, out DecalSurfaceData surfaceData) |
|
|
|
void GetSurfaceData(FragInputs input, out DecalSurfaceData surfaceData) |
|
|
|
float totalBlend = 1.0f; |
|
|
|
float totalBlend = _DecalBlend; |
|
|
|
surfaceData.baseColor = SAMPLE_TEXTURE2D(_BaseColorMap, sampler_BaseColorMap, texCoordDS.xy); |
|
|
|
surfaceData.baseColor = SAMPLE_TEXTURE2D(_BaseColorMap, sampler_BaseColorMap, input.texCoord0); |
|
|
|
surfaceData.normalWS.xyz = UnpackNormalmapRGorAG(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, texCoordDS)) * 0.5f + 0.5f; |
|
|
|
float3 normalTS = UnpackNormalmapRGorAG(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, input.texCoord0)); |
|
|
|
float3 normalWS; |
|
|
|
GetNormalWS(input, 0, normalTS, normalWS); |
|
|
|
surfaceData.normalWS.xyz = normalWS * 0.5f + 0.5f; |
|
|
|
surfaceData.mask = SAMPLE_TEXTURE2D(_MaskMap, sampler_MaskMap, texCoordDS.xy); |
|
|
|
surfaceData.mask = SAMPLE_TEXTURE2D(_MaskMap, sampler_MaskMap, input.texCoord0); |
|
|
|
surfaceData.mask.z = surfaceData.mask.w; |
|
|
|
surfaceData.mask.w = totalBlend; |
|
|
|
surfaceData.HTileMask |= DBUFFERHTILEBIT_MASK; |
|
|
|