32 lines
743 B
HLSL
32 lines
743 B
HLSL
#include "common.hlsli"
|
|
|
|
struct v2p
|
|
{
|
|
float2 tc0 : TEXCOORD0;
|
|
float4 c : COLOR0;
|
|
|
|
// Igor: for additional depth dest
|
|
#ifdef USE_SOFT_PARTICLES
|
|
float4 tctexgen : TEXCOORD1;
|
|
#endif // USE_SOFT_PARTICLES
|
|
|
|
float4 hpos : SV_POSITION;
|
|
float fog : FOG;
|
|
};
|
|
|
|
// Pixel
|
|
float4 main(v2p I) : SV_Target
|
|
{
|
|
float4 result = I.c * s_base.Sample(smp_base, I.tc0);
|
|
|
|
// Igor: additional depth test
|
|
#ifdef USE_SOFT_PARTICLES
|
|
float4 Point = GbufferGetPoint(I.hpos.xy);
|
|
float spaceDepth = Point.z - I.tctexgen.z;
|
|
result *= Contrast(saturate(spaceDepth * 1.3f), 2.0f);
|
|
#endif // USE_SOFT_PARTICLES
|
|
|
|
clip(result.a - (0.01f / 255.0f));
|
|
return PushGamma(lerp(fog_color, result, I.fog));
|
|
}
|
|
|