POT or NPOT ?

I always think that POT is the better choice to work with as it will help computation & rendering efficient, and mip-map (which we don’t really need for 2d game).
But for some circumstances, having to create POT texture but with not enough sprites to cover the entire area is somewhat annoying me and leads me to think that whether NPOT should be avoided or not.

I read about discussion from riq (creator of cocos2d) at http://www.cocos2d-iphone.org/forum/topic/31092, and he seems to find out that there’s a bug in using some certain set up with POT, and he suggested others to avoid it.

So now it’s my question. Do you guys prefer POT or NPOT? and what’s the benefit of using one of another? Thanks!

Afaik iOS is always allocating memory for mip-maps if you are using POT textures even if you don’t use mip-mapping (I think I read something about that somewhere on unity forum) so this 33% more memory “bug” for POT textures discussed in your link to cocos2d forum is probably not really a cocos2d bug and I don’t know if this problem even exists on android. I usually prefer POT textures because it allows repeating textures with GL_REPEAT and I use mip-maps. Even in 2d game in some cases when you use scalling they can really make your sprites look better. And generally good tools for making spritesheets can place your sprites in very optimal way so not covering entire area of your texture with sprites is usually not a big problem.

1 Like

Hey thanks for reply. I agreed with you, and one point that I miss to mention about POT is scaling. Yes, that helps, and thanks for reminding me.

I have one more question.
Will OpenGl try to create a POT texture buffer to hold our input NPOT texture on the fly?

No. OpenGl won’t automatically convert a NPOT texture to a POT texture.

Okay, thank you Leszek.