Files
2026-07-13 13:13:17 +08:00

48 lines
1.3 KiB
HLSL

//RWTexture2D<float4> outputTexture : register(u0);
Texture2D<float4> InputTexture : register(t0);
sampler texSampler : register(s0);
cbuffer ParamConstants : register(b0)
{
float4 MultiplyR;
float4 MultiplyG;
float4 MultiplyB;
float4 MultiplyA;
float4 Add;
float ClampResult;
}
cbuffer TimeConstants : register(b1)
{
float globalTime;
float time;
float runTime;
float beatTime;
}
struct vsOutput
{
float4 position : SV_POSITION;
float2 texCoord : TEXCOORD;
};
float4 psMain(vsOutput psInput) : SV_TARGET
{
float2 uv = psInput.texCoord;
//float4 c = InputTexture.SampleLevel(texSampler, uv, 0.0);
//return c;
float4 col = InputTexture.Sample(texSampler, psInput.texCoord);
//return col;
float r = dot( clamp( col,0, 99999999 ), float4(MultiplyR.r, MultiplyG.r, MultiplyB.r, MultiplyA.r)) + Add.r;
float g = dot( clamp( col,0, 99999999 ), float4(MultiplyR.g, MultiplyG.g, MultiplyB.g, MultiplyA.g)) + Add.g;
float b = dot( clamp( col,0, 99999999 ), float4(MultiplyR.b, MultiplyG.b, MultiplyB.b, MultiplyA.b)) + Add.b;
float a = dot( clamp( col,0, 99999999 ), float4(MultiplyR.a, MultiplyG.a, MultiplyB.a, MultiplyA.a)) + Add.a;
return ClampResult > 0.5 ? float4(clamp(float3(r,g,b),0,10000), clamp(a,0.0001,1)) : float4(r,g,b,a);
}