tl;dr what kind of optimization do we want to achieve - speed / memory usage
during game - OR - storage footprint?
optipng version: 0.7.5
libpng version: 1.6.16
zlib version: 1.2.8
Using the shell script fdoptipng.sh (attached as fdoptpng), I ran optipng
against a folder containing copies of the images from FDRPG. Compared against a
folder of "untouched" copy images, I was only able to achieve a savings of ~350
bytes. The script also took just over an hour to complete (6-core AMD bulldozer
- sorry matthias :) ).
du -d1.
131860 ./freedroid_orig
131424 ./freedroid_optiforce
A copy of the log file from the process is attached in tar.bz2 format.
Of note is the "summary" file. This file lists all "unique" palettes optipng
found during optimization. For the most part, FDRPG images are reported to use
system 4x8 bit/RBG+Alpha. However, numerous other "non-standard" palettes were
encountered, especially with "shadow" images. If this is an exercise in saving
space, I doubt much was achieved.
Also of concern is a possible performance penalty. Having numerous images (FDRPG
has 1600+ png's) each with a non-standard palette would had a memory hit. Do we
want to reduce files for space but lose runtime optimization because of using a
unique palette for a large number of immages?
As an explanation for the error, some images encountered were monochrome or
limited colours. Using optipng with the fix and force options (see man optipng
for explanations) prevented the error from occurring.
I would suggest this error indicates a problem with consistency in how files are
exported/produced from blender in certain situations (or they have been
previously "optimized").
|