In all the references to image maps I see requirements for 256, 512, 1024 etc. All powers of 2.
Why is this? Is it imposed by the game engines? If so is it all of them or just some? Is it a memory thing?
the reason behind it is purely efficiency - the binary system dictates that it can send through so many bits (8 iirc) of data in one packet; when conforming to the power of 2, so when it's called, it doesn't have to do more transfers than is necessary because it's just below, or just above that data range. In the end it can have a fairly nasty knock-on effect with transfer bandwidth speeds, and also in most all game cases if a texture isn't a power of 2 it'll be resized onboard to make it that before passing it down the pipeline (which results in some poor handling, sampling, and quality issues).
for example, if you do something like support 'mirroring' of textures in the hardware, you need to be doing mathamatical manipulation of the texture coordinates, and if you can just do it in some binnary shifts, it is a lot easier than hold number, add number, subtract, change sign.....
this i guess gets more relevant for doing mipmapping, but i dont know for certain what hardware support has been done for mipmapping.
yes, cards may do nonpower2 sizes, but internally, it probablt is putting them onto powerof2 texture memory anyrate....
It all stems from computers running on a binary number system (I hope you know what that means). The reason textures are usually restricted to squares that are whole binary numbers (best way I can think of saying it, eg. 2 to the power of 9= 512) is that computers find it a lot easier to process them this way. I'm not too sure on the theory behind it all, and any stabs in the dark I take would probably be misguided, but I hope this gives you a start.