48 lines
1.3 KiB
HLSL
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);
|
|
}
|