Jump to content
  • Advertisement
Sign in to follow this  
simpler

DirectX scaling pixelated textures

This topic is 2545 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm having some troubles with scaling and maintaining the pixelated look of my textures.

Am7S0.png

That one is 16x16 and I want to be able to scale it up to any size and still have the same pixelated style.
This is what it looks like when i scale it to 256x256:
v0mQp.png


As you can see it's very blurry but I've been able to improve the result a bit by setting AlphaBlendEnable = FALSE in my pixel shader, that makes it look like this:

0WW6t.png


Removing alpha blending makes the border look right, but it's still very blurry inside. I tried to scale up the 16x16 texture in paint to a much bigger size and the result was exactly like I wanted, so I'm sure it's possible to do this with DirectX as well. Does anyone know what render states I should set to get the result I want? Or if there's something else I'm missing please tell me.

I hope there weren't to many images in this post, I really wanted to be clear about my problem.

Thanks smile.gif

Share this post


Link to post
Share on other sites
Advertisement
I think you have to change the filter mode in your sampler description.

if your using direct3d 11, then when you fill out the D3D11_SAMPLER_DESC change the Filter member to D3D11_FILTER_MIN_MAG_MIP_POINT

the same is for direct3d 10 except you use D3D10_FILTER_MIN_MAG_MIP_POINT.

I hope i'm right, at least it worked for me when i wanted to keep my images pixelated when they are stretched

Share this post


Link to post
Share on other sites

I think you have to change the filter mode in your sampler description.

if your using direct3d 11, then when you fill out the D3D11_SAMPLER_DESC change the Filter member to D3D11_FILTER_MIN_MAG_MIP_POINT

the same is for direct3d 10 except you use D3D10_FILTER_MIN_MAG_MIP_POINT.

I hope i'm right, at least it worked for me when i wanted to keep my images pixelated when they are stretched


Yeah that's exactly the problem. What you're seeing is the bilinear filtering being applied to each pixel resulting in a blur across the pixels. Setting it to point will get rid of the blurring. Also if you only need alpha as being on or off you're probably better off using Alpha Test instead of Alpha Blend.

Share this post


Link to post
Share on other sites
If you're using POINT sampling for pixelated textures, you may need to offset your texture coordinates by half a pixel (0.5 / size), or you can end up with weird texturing issues that may be hard to spot at first.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!