Resizing textures for all devices

Apps designed to work with multiple resolutions have a design problem to overcome regarding different resolutions. You might be working with something as small as 480×320 to as big as the new iPad’s 2048×1536 resolution. Obviously textures that fit nicely a 480 width screen would look awful zoomed up over 4 times their original definition. However, if you start with large textures and shrink them down when rendered on smaller screens the performance can be poor. Small devices are usually less powerful too. One way to overcome the performance hit on smaller devices is to have larger, better defined texture sheets for larger resolutions and smaller, less defined texture sheets for smaller resolutions.

The above works well and it links in with another issue. If you want to be able to zoom in and out of the action, say, in an action video game, the further out you go the bigger the performance hit with having to render so many textures while zooming in can result in loosing a lot of definition. The solution is similar to what I mentioned in the above paragraph and also the mip-mapping techniques used in 3D games – different textures for different magnifications.

What I’m trying to do today is create a 2D texture rendering system that can not only adjust itself for multiple resolutions but also use different quality textures depending on how close to the action the current zoom level is. In theory I think it should be possible to use OpenGL mip-mapping to achieve this. Instead I will create my own system capable of retrofitting old code because I know the technique I use works for sure. Ideally I want to take any set of large sprites, run them through something like TexturePacker (a GREAT bit of software, btw) and let my system take care of the rest. In the end it could speed up development time considerably.

In other news, inspired by Ludum Dare and other similar competitions/projects I attempted to write a game in 5 hours. The time taken doubled to 10 hours and I ended up including previously written code. Even still, the experience was fun and I got a game out of it. Will post a video, download link and explanation soon.

Oh, and a PowFish update is immanent.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>