Texture image resolution as powers of 2?

For other people’s projects that I’ve seen, the texture images are often scaled to pixel resolutions that are powers of 2 (512 x 512, 1024 x 1024, 2048 x 2048, etc).

I tend to use this convention myself, but I never really understood why. My guess is that it’s originally done to optimize an image for efficient real-time rendering, but I’m not sure. Does it offer any kind of performance boost in Blender, or is it mostly useless?

I don’t believe it matters for rendering, but it does matter for real-time (the GE). You can use any image size you want in the GE, but it will be converted to a power of two before it is displayed, and that takes time (very little, but time nonetheless). Creating textures in powers of two removes this step, and saves time.

Correct me if I’m wrong anyone.

It started with early graphics cards using neat math tricks to render power of 2 textures faster and more efficiently. The trickle down effect was that many game engines, applications, and on board chips utilized these neat maths and required that images be supplied in this format. A standard had been created.

How rigidly enforced this standard is today, I’m not quite sure. But there are still applications / environments out there that will at best blur and stretch your textures, or at worst outright reject them. And as 3dmedival says, there is a performance hit when a chip or engine has to make conversions behind the scenes.

It’s good practice to keep your textures in this standard as you never know when you may have to repurpose and that PowerVR based platform that you port you textures to is going to stretch and blur your non standard textures and run like gash. (I’m lookin’ at you, iPhone)

Most of the game engines, utilizes power of 2 , with the help of grid systems, since the calculations are done bit efficiently.

System memory , hard disks, cache, input output, all are based on binary systems. so feeding the system, what it really needs , results in better output.

Rest of the info is already mentioned above.

by the way, following a set rules always results in better productivity. same goes in textures as well. a 256 x 512 , 1024x 1024 size texture is easier to maintain then 1000 x 498 or 800 x 600.
Scalability also suffer from using a non standard resolution. (In terms of Game Engines, ok for desktops etc)