I introduced pixelization as a technique to make art fit with my Color Grid technique in this post. However, it is worth talking about this technique just as it's own technique and not even referring to the Color Grid. I am in the process of converting a lot of terrain and environment assets myself. I thought this might be a great time to share my findings as I am doing this for myself. I based it upon the default texture sizes set for the properties of the textures in the Unity inspector.
I may not get extremely verbose on describing this. I am mostly going to let the images do the speaking for me. I'll show you some before and after results:
First I am working with 3DForge's Village Exteriors asset from the Unity Asset Store.
Installed and default this is taking up 897 MB of disk space. Textures take up 658 MB of disk space. That means over 73% of the size of this asset is textures.
STARTING STATS:
- Unconverted asset is 897 MB disk.
- Unconverted textures is 658 MB disk. (NOTE: some textures were 4096x4096 even though inspector property was 2048x2048. I based my process off of 2048x2048 for these.)
The above images are the two source objects I am looking at BEFORE any conversion. Pixel size is 1x1 in this image with no artificial pixels.
Here is what the model looks like untextured:
The technique I am using in this particular case is to simply replace all of the original textures with my converted textures so that the assets visually are instantly updated. Later on I may make atlases and improve this more, but for now this is all I am doing. I pixelize the texture and then am reducing the resulting texture by an amount since it no longer needs to be as large since it now has artificially created larger pixels.
8x8 Pixels
Divide original texture by 2.
- Converted textures 16.1 MB disk space (2.4% of the original size)
16x16 Pixels
Divide original texture by 4.
- Converted textures 4.54 MB disk space (0.7% of the original size)
32x32 Pixels
Divide original texture by 8.
- Converted textures 1.51 MB disk space (0.2% of the original size)
I suspect the use of this technique is why a game like Valheim takes up so little disk space. Keep in mind this also reduced memory space required by textures as well.
Simply dividing the texture size cannot account for this difference. There is another thing I did. I didn't use any TIFF, TGA, or JPG textures. All of my converted textures are PNGs. JPG is still not a bad format to use in some cases but using TIFF and TGA seems really stupid in the modern era but people still do so from time to time and that makes for some very bulky textures in terms of memory/disk requirements.
You could actually divide the texture by double the amount I did. In my experience the result has a blurry look to it. This is likely due to dithering and MIP mapping, etc. If you turned off filtering and did it as point filtered it probably would still work. In fact I am going to give a bonus section on that.
8x8 Pixels - Point Filtering - Divide by 4
- Converted textures 13.1 MB disk space (2.0% of the original size)
Now if you turn it from point filter back to something like Bilinear filtering you get the following images. I wanted to provide them so you could see what I meant by the blurry effect. (You may need to click on the image to view a larger version)
I will be converting some other assets this was just the first one I did.