Packing and blending textures
Textures are not only useful for storing loads of data or pixel colors as we generally tend to think of them, but also for multiple sets of pixels in both the X
and Y
directions and RGBA
channels. We can actually pack multiple images into a single RGBA texture and use each of the R
, G
, B
, and A
components as individual textures themselves by extracting each of these components from the shader code.
The result of packing individual grayscale images into a single RGBA texture can be seen in the following screenshot:
Why is this helpful? Well, in terms of the amount of actual memory that your application takes up, textures are a large portion of your application's size. We can, of course, reduce the size of the image, but then we would lose details in how it can be represented. So, to begin reducing the size of your application, we can look at all of the images that we are using in our shader...