Sign in to follow this  
Xmon

Multiple bluring

Recommended Posts

Xmon    136
Part of my shader blurs a texture to another texture render target. However the blur is not enough. How do I set up the fx and cpp file to blur a second pass. My code looks like this:
struct VS_GLOWOUTPUT
{
	float4 Position	: POSITION;
	float2 ScreenPos0 : TEXCOORD0;
	float2 ScreenPos1 : TEXCOORD1;
	float2 ScreenPos2 : TEXCOORD2;
	float2 ScreenPos3 : TEXCOORD3;
	float2 ScreenPos4 : TEXCOORD4;
	float2 ScreenPos5 : TEXCOORD5;
	float2 ScreenPos6 : TEXCOORD6;
	float2 ScreenPos7 : TEXCOORD7;
};

VS_GLOWOUTPUT RenderGlowVS(float4 vPos: POSITION, float2 vTexCoord0: TEXCOORD0)
{
	VS_GLOWOUTPUT Output;
	Output.Position=vPos;
	Output.ScreenPos0=vTexCoord0+gCoordOffset[0];
	Output.ScreenPos1=vTexCoord0+gCoordOffset[1];
	Output.ScreenPos2=vTexCoord0+gCoordOffset[2];
	Output.ScreenPos3=vTexCoord0+gCoordOffset[3];
	Output.ScreenPos4=vTexCoord0+gCoordOffset[4];
	Output.ScreenPos5=vTexCoord0+gCoordOffset[5];
	Output.ScreenPos6=vTexCoord0+gCoordOffset[6];
	Output.ScreenPos7=vTexCoord0+gCoordOffset[7];
	return Output;
}

struct PS_GLOWOUTPUT
{
	float4 RGBColor : COLOR0;
};

PS_GLOWOUTPUT RenderGlowPS(VS_GLOWOUTPUT In)
{
	PS_GLOWOUTPUT Out;
	float4 temp0 = tex2D(GlowTextureSampler,In.ScreenPos0);
	float4 temp1 = tex2D(GlowTextureSampler,In.ScreenPos1);
	float4 temp2 = tex2D(GlowTextureSampler,In.ScreenPos2);
	float4 temp3 = tex2D(GlowTextureSampler,In.ScreenPos3);
	float4 temp4 = tex2D(GlowTextureSampler,In.ScreenPos4);
	float4 temp5 = tex2D(GlowTextureSampler,In.ScreenPos5);
	float4 temp6 = tex2D(GlowTextureSampler,In.ScreenPos6);
	float4 temp7 = tex2D(GlowTextureSampler,In.ScreenPos7);
	
	Out.RGBColor.rgb =	temp0.rgb * temp0.aaa * gWeight[0].rrr +
						temp1.rgb * temp1.aaa * gWeight[1].rrr +
						temp2.rgb * temp2.aaa * gWeight[2].rrr +
						temp3.rgb * temp3.aaa * gWeight[3].rrr +
						temp4.rgb * temp4.aaa * gWeight[4].rrr +
						temp5.rgb * temp5.aaa * gWeight[5].rrr +
						temp6.rgb * temp6.aaa * gWeight[6].rrr +
						temp7.rgb * temp7.aaa * gWeight[7].rrr;
	Out.RGBColor.a=1.0f;
	return Out;
};

And, another question, can you set a global variable inside a technique? Thank you for your time:)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this