I have found a shader, but the shader don't work .. can anyone convert it to slyex 3 or something else?
Code:
//
//---------------------------------------------------------------------- EXTERNAL PARAMETERS
//
float fExposure;
float fGamma;
//
//---------------------------------------------------------------------------- INPUT OUTPUT
//
sampler2D HDRImage : register(ps, s0);
sampler2D BloomImage : register(ps, s1);
struct VS_INPUT
{
float4 Pos : POSITION;
float2 TexCoord0 : TEXCOORD0;
};
struct VS_OUTPUT
{
float4 Position : POSITION;
float2 TexCoord0 : TEXCOORD0;
};
//
//----------------------------------------------------------------------------- VERTEXSHADER
//
VS_OUTPUT VS_Exposure( VS_INPUT input )
{
VS_OUTPUT o = (VS_OUTPUT)0;
o.Position = input.Pos;
o.TexCoord0 = input.TexCoord0;
return o;
}
//
//----------------------------------------------------------------------------- PIXELSHADER
//
half4 PS_Exposure( VS_OUTPUT input, uniform bool bloom ) : COLOR
{
half4 c = tex2D( HDRImage, input.TexCoord0 ) * fExposure;
if ( bloom == true )
{
c.rgb += tex2D( BloomImage, input.TexCoord0 ) * ( 1.0 - c );
}
return c;
}
//
//------------------------------------------------------------------------------- TECHNIQUES
//
technique Exposure
{
pass p0
{
VertexShader = compile vs_2_0 VS_Exposure();
PixelShader = compile ps_2_0 PS_Exposure( false );
MinFilter[0] = Linear;
MagFilter[0] = Linear;
MipFilter[0] = Point;
AddressU[0] = Clamp;
AddressV[0] = Clamp;
}
}
technique ExposureBloom
{
pass p0
{
VertexShader = compile vs_2_0 VS_Exposure();
PixelShader = compile ps_2_0 PS_Exposure( true );
MinFilter[0] = Linear;
MagFilter[0] = Linear;
MipFilter[0] = Point;
AddressU[0] = Clamp;
AddressV[0] = Clamp;
MinFilter[1] = Linear;
MagFilter[1] = Linear;
MipFilter[1] = Point;
AddressU[1] = Clamp;
AddressV[1] = Clamp;
}
}