How to set TextureFilter to Point to make example Bloom filter work?

Posted by Mr Bell on Game Development See other posts from Game Development or by Mr Bell
Published on 2011-11-17T22:57:18Z Indexed on 2011/11/18 2:04 UTC
Read the original article Hit count: 452

Filed under:
|
|
|

I have simple app that renders some particles and now I am trying to apply the bloom shader from the xna samplers ( http://create.msdn.com/en-US/education/catalog/sample/bloom ) to it, but I am running into this exception:

"XNA Framework HiDef profile requires TextureFilter to be Point when using texture format Vector4."

When the BloomComponent tries to end the sprite batch in the DrawFullscreenQuad method:

        spriteBatch.Begin(0, BlendState.Opaque, SamplerState.PointWrap, null, null, effect);
        spriteBatch.Draw(texture, new Rectangle(0, 0, width, height), Color.White);
        spriteBatch.End(); //<------- Exception thrown here

It seems to be related to the pixel shaders that I am using to animate the particle. In a nutshell, I have a texture2d in vector4 format that holds particle positions, and another one for velocities. Here is a snippet from that area:

        GraphicsDevice.SetRenderTarget(tempRenderTarget);
        animationEffect.CurrentTechnique = animationEffect.Techniques[technique];
        spriteBatch.Begin(SpriteSortMode.Immediate,
                          BlendState.Opaque,
                          SamplerState.PointWrap,
                          DepthStencilState.DepthRead,
                          RasterizerState.CullNone,
                          animationEffect);

        spriteBatch.Draw(randomValues, new Rectangle(0, 0, width, height), Color.White);
        spriteBatch.End();

What I comment out the code that calls the particle animation pixel shaders the bloom component runs fine. Is there some state that I need to reset to make the bloom work?

© Game Development or respective owner

Related posts about c#

Related posts about xna-4.0