   POT or NPOT textures?
  My program needs to draw rotated 2D images. I'm reading the online OpenGL 1.1 documentation, and if I'm not mistaken, the only way (or the best way) to draw rotated images is using textures. The projection is orthographic and the rotation is around the Z axis, so it's just like a simple rotation in 2D graphics rendering. Most of the images are rectangles, and I don't know if NPOT is better in this case. I can include both, but maybe one is clearly better in this case, which is why I'm asking. I read about extensions. Rectangle textures are a little slower. Speed is more important in this program than memory. A lot more important. So adding garbage pixels to images so that they are POTS is not a problem, but there additional pixels take processing time. The question is what takes more time: the overhead or rectangle textures or processing the additional pixels? Is there usually one answer to this question for 2D games or I should include both options and test for each image which option is faster?   
  I think this one is hard to call and the only way to truly find out is to test and compare them both, I'm betting that there is very little difference between both approaches though.   ;  NPOT sized textures are quicker (~10%) even if theyre bigger eg1024x1024 vs 1024x700   ;  You might not get linear filtering and mip-mapping with NPOT textures, so if you dont need tiling, go with POT.   ;  If you plan on using hardware acceleration (which you should if performance is critical), use POTS. A lot of video cards have no support for non-power of two textures, so those will need to render NPOTs in software mode which is SLOW. Even my brother's 7600GT (a fairly recent card) with the latest drivers from NVidia does not support NPOTS textures. As of last year NVidia had dropped support for NPOTS from their drivers entirely if I'm remembering correctly.Added padding to a POT doesn't really add any processing time if you do it right. If you try to render the entire texture with the garbage bits set to transparent values then yeah, you'll waste some fillrate, but if you adjust your texture coordinates so that the garbage pixels aren't even drawn you'll get the same performance as hardware accelerated NPOTs (minus the possibility of some extra cache misses), and you don't need to worry about cards that don't support NPOTs.   ;  >>Even my brother's 7600GT (a fairly recent card) with the latest drivers from NVidia does not support NPOTS textures. As of last year NVidia had dropped support for NPOTS from their drivers entirely if I'm remembering correctly.<<both points are incorrect   ;Quote:Original post by zedzNPOT sized textures are quicker (~10%) even if theyre bigger eg1024x1024 vs 1024x700If this is accurate, then this is a small difference (in the vast majority of cases). Try both methods and profile your code. Chances are theres a bottleneck in your app that results in the difference in you using POT and NPOT textures irrelevant.I think the benefit of trying it out and obtaining empirical results will far outweigh any advice/information we can give. It should be relatively little overhead implementing both, and like I said, there may be other things affecting the performance that far outweigh the cost between using POT and NPOT textures. A profiler is a much better indicator of performance than any expert I know :)Please post your findings if you try both methods, I for one am eager to see the results :)   ;  NPOT textures are supports since OpenGL 2.0:Quote:OpenGL 2.0 Specification, Page 341I.3    Non-Power-Of-Two TexturesThe restriction of textures to power-of-two dimensions has been relaxed for all texture targets, so that non-power-of-two textures may be specified without generating errors. Non-power-of-two textures was promoted from the ARB texture non power of two extension.(and nVidia has not dropped the support for them)If you are targeting OGL 2.0, you can safely use NPOT textures. The only problem I had was ATI driver not compressing NPOT textures on the fly although pre-compressed NPOT textures work fine.;  Doesn't ATI's early X1xxx series GPUs not properly support NPOT (as in massive slowdown when they are used)?   ;Quote:Original post by n00bodyDoesn't ATI's early X1xxx series GPUs not properly support NPOT (as in massive slowdown when they are used)?I have observed this issue on a Mac with an X1600. Definitely make sure your drivers are fully updated, though.   