Bringing down the bulk of the file size
Images can be a big cause of filesize bloating, to the point that a single image may even take up half of the file, take these 2 models as an example.
The top model's icon has been optimized, the lower model's icon hasn't, other than that they are mostly the same.
So, what went wrong with the lower one? Well, the original icon's resolution on both of them is 1024x1024, but the top one had the image used in the exported model as 256x256 and optimized it with the help of OptiPNG.
You might be thinking: "Is it really that easy?" and the answer is yes, yes it is, and then again, not really.
The only reason I am using PNG in the first place is because the icon has transparency, normally I would go with JPG if the file size ends up being lower, but JPG doesn't support transparency.
Now, OptiPNG is, in fact, a program used to losslessly compress PNG files, but I've taken the time to include a few links to plugins for different image editing programs allowing you to export an image with OptiPNG.
If you were to export a plugin as a JPG, you would be better off using a lossless JPG compression tool, like jpgtran, here are a few links for plugins using it:
Now, what if you were to upload the model to ModelSaber? Do you still need to optimize the images for that? At the time of writing this, yes, but automatic image optimization will be implemented in ModelSaber v2, it will ONLY take care of actual lossless compression, you still have to think of the resolution.
ModelSaber v2 will also have a minimum upload image size of 512x512 so keep that in mind! I also personally recommend uploading an image with the resolution of 1024x1024 to ModelSaber, it has a good resolution and a small filesize.
Now, on to MipMaps.
I am not the most knowledgeable on mipmaps, but I do know what they are and what they do, if you don't know already, think of LODs but for images.
If you don't know what LODs are either, it's a way of switching out a 3d model with a lower quality one when it's so far away that you can't notice the difference.
Now, read that sentence again but switch out "LODs" with "MipMaps" and "3d model" with "image" and you have the description of what a mipmap is. albeit with broken grammar
ALWAYS have mipmaps on if the asset is to be used in a game, there are close to no exceptions to this. It increases filesize BUT it also brings vast performance increases, if you want to know more about mipmaps I recommend reading unity's guide on them.
So, in short:
- Save the original icon to your device with the native resolution of 1024x1024.
- Save the icon used for the export with the downscaled resolution of 256x256.
- Run the icon for the export through a lossless compression tool.
- Do the same for any other texture asset you use in the model, except for resolution, the resolution depends on the use of the texture, experiment in these cases.
- Use mipmaps.