# Compression Commit

This commit performs both lossless and lossy compression on every .obj and .png in homedecor. The .png files were all 100% losslessly compressed using ect.exe and optipng.exe (more details below) at maximum settings. The .obj files were lossy-compressed so that comments were removed, trailing 000's were removed and all numbers rounded to 3 decimal places max. Blender exports at 6 decimal places but for minetest, 3 decimal places is the absolute maximum a person with anything under a 256K screen will ever need.

## Results
```
Original entire modpack size: 6343.5 KB
New entire modpack size:      5312.2 KB
Total Reduction:              1031.3 KB  (16.3% less)
```
Please note that actual media size is likely more like 4,500 KB so media reduction is more around 20-25%.

## Details / What actions were actually performed

Used these programs:

https://github.com/ExeVirus/Compress-Obj

https://sourceforge.net/projects/optipng/

https://github.com/fhanau/Efficient-Compression-Tool

Ran this command on every .obj: (fast)

```
luajit.exe compress.lua -f <file> -precision 3
```

Ran these commands on every .png: (slow)
```
ect.exe  -9 -strip --allfilters-b <file>
optipng.exe -o7 -strip all -clobber <file>
```

Note that for future compression, I recommend only using optipng.exe instead of both. ECT can get better results but it takes a LOT longer and only ever saves another 1-2% of the file size. Not worth an extra 10-20 seconds per texture file in my opinion.

## Time spent

Roughly 2 Hours from start to finish + commit + PR
This commit is contained in:
ExeVirus
2021-01-23 07:28:20 -05:00
parent a57723df7d
commit f9ca183f2a
827 changed files with 88657 additions and 89231 deletions

View File

@ -1,125 +1,122 @@
# Blender v2.73 (sub 0) OBJ File: 'bedroom-wardrobe.blend'
# www.blender.org
o Cylinder
v -0.500000 -0.500000 0.500000
v -0.500000 -0.500000 -0.437500
v 0.500000 -0.500000 -0.437500
v 0.500000 -0.500000 0.500000
v -0.500000 1.500000 0.500000
v -0.500000 1.500000 -0.437500
v 0.500000 1.500000 -0.437500
v 0.500000 1.500000 0.500000
v -0.437500 0.250000 -0.437500
v -0.437500 0.250000 -0.500000
v 0.437500 0.250000 -0.500000
v 0.437500 0.250000 -0.437500
v -0.437500 0.500000 -0.437500
v -0.437500 0.500000 -0.500000
v 0.437500 0.500000 -0.500000
v 0.437500 0.500000 -0.437500
v -0.437500 -0.062500 -0.437500
v -0.437500 -0.062500 -0.500000
v 0.437500 -0.062500 -0.500000
v 0.437500 -0.062500 -0.437500
v -0.437500 0.187500 -0.437500
v -0.437500 0.187500 -0.500000
v 0.437500 0.187500 -0.500000
v 0.437500 0.187500 -0.437500
v -0.437500 -0.375000 -0.437500
v -0.437500 -0.375000 -0.500000
v 0.437500 -0.375000 -0.500000
v 0.437500 -0.375000 -0.437500
v -0.437500 -0.125000 -0.437500
v -0.437500 -0.125000 -0.500000
v 0.437500 -0.125000 -0.500000
v 0.437500 -0.125000 -0.437500
v 0.062500 0.562500 -0.437500
v 0.062500 0.562500 -0.500000
v 0.437500 0.562500 -0.500000
v 0.437500 0.562500 -0.437500
v 0.062500 1.437500 -0.437500
v 0.062500 1.437500 -0.500000
v 0.437500 1.437500 -0.500000
v 0.437500 1.437500 -0.437500
v -0.437500 0.562500 -0.437500
v -0.437500 0.562500 -0.500000
v -0.062500 0.562500 -0.500000
v -0.062500 0.562500 -0.437500
v -0.437500 1.437500 -0.437500
v -0.437500 1.437500 -0.500000
v -0.062500 1.437500 -0.500000
v -0.062500 1.437500 -0.437500
v -0.500000 1.437500 -0.437500
v 0.500000 1.437500 -0.437500
v -0.500000 -0.375000 -0.437500
v 0.500000 -0.375000 -0.437500
v -0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.437500
v 0.500000 0.500000 -0.437500
v 0.500000 0.500000 0.500000
vt 1.000000 0.000000
vt 1.000000 0.937500
vt 0.000000 0.937500
vt 0.000000 0.000000
vt 0.000000 1.000000
vt 0.062500 0.000000
vt 0.062500 1.000000
vt 1.000000 1.000000
vt 0.875000 1.000000
vt 0.875000 0.000000
vt 0.562500 0.937500
vt 0.562500 0.062500
vt 0.625000 0.062500
vt 0.625000 0.937500
vt 0.250000 0.937500
vt 0.250000 0.062500
vt 0.312500 0.062500
vt 0.312500 0.937500
vt 0.937500 0.437500
vt 0.937500 0.562500
vt 0.062500 0.562500
vt 0.062500 0.437500
vt 0.875000 0.937500
vt 0.875000 0.062500
vt -0.000000 0.062500
vt 0.062500 0.062500
vt 1.000000 0.062500
vt 0.062500 0.937500
vt 0.937500 0.062500
vt 0.937500 0.937500
vt 0.937500 1.000000
vt 0.937500 0.750000
vt 1.000000 0.750000
vt 0.062500 0.750000
vt -0.000000 0.750000
vt 0.062500 0.125000
vt 0.937500 0.125000
vt 0.937500 0.500000
vt 1.000000 0.500000
vt 0.062500 0.500000
vt 0.000000 0.500000
vt 0.937500 0.000000
vt 0.937500 0.250000
vt 1.000000 0.250000
vt 0.062500 0.250000
vt -0.000000 0.250000
vt 0.062500 0.187500
vt 0.937500 0.187500
vt 0.500000 0.937500
vt 0.437500 0.937500
vt 0.437500 0.062500
vt 0.500000 0.062500
vt 0.437500 0.000000
vt 0.437500 1.000000
vt 0.562500 0.000000
vt 0.562500 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
g Cylinder_Cylinder_wood
v -0.5 -0.5 0.5
v -0.5 -0.5 -0.437
v 0.5 -0.5 -0.437
v 0.5 -0.5 0.5
v -0.5 1.5 0.5
v -0.5 1.5 -0.437
v 0.5 1.5 -0.437
v 0.5 1.5 0.5
v -0.437 0.25 -0.437
v -0.437 0.25 -0.5
v 0.438 0.25 -0.5
v 0.438 0.25 -0.437
v -0.437 0.5 -0.437
v -0.437 0.5 -0.5
v 0.438 0.5 -0.5
v 0.438 0.5 -0.437
v -0.437 -0.062 -0.437
v -0.437 -0.062 -0.5
v 0.438 -0.062 -0.5
v 0.438 -0.062 -0.437
v -0.437 0.188 -0.437
v -0.437 0.188 -0.5
v 0.438 0.188 -0.5
v 0.438 0.188 -0.437
v -0.437 -0.375 -0.437
v -0.437 -0.375 -0.5
v 0.438 -0.375 -0.5
v 0.438 -0.375 -0.437
v -0.437 -0.125 -0.437
v -0.437 -0.125 -0.5
v 0.438 -0.125 -0.5
v 0.438 -0.125 -0.437
v 0.063 0.563 -0.437
v 0.063 0.563 -0.5
v 0.438 0.563 -0.5
v 0.438 0.563 -0.437
v 0.063 1.438 -0.437
v 0.063 1.438 -0.5
v 0.438 1.438 -0.5
v 0.438 1.438 -0.437
v -0.437 0.563 -0.437
v -0.437 0.563 -0.5
v -0.062 0.563 -0.5
v -0.062 0.563 -0.437
v -0.437 1.438 -0.437
v -0.437 1.438 -0.5
v -0.062 1.438 -0.5
v -0.062 1.438 -0.437
v -0.5 1.438 -0.437
v 0.5 1.438 -0.437
v -0.5 -0.375 -0.437
v 0.5 -0.375 -0.437
v -0.5 0.5 0.5
v -0.5 0.5 -0.437
v 0.5 0.5 -0.437
v 0.5 0.5 0.5
vt 1 0
vt 1 0.938
vt 0 0.938
vt 0 0
vt 0 1
vt 0.063 0
vt 0.063 1
vt 1 1
vt 0.875 1
vt 0.875 0
vt 0.563 0.938
vt 0.563 0.063
vt 0.625 0.063
vt 0.625 0.938
vt 0.25 0.938
vt 0.25 0.063
vt 0.313 0.063
vt 0.313 0.938
vt 0.938 0.438
vt 0.938 0.563
vt 0.063 0.563
vt 0.063 0.438
vt 0.875 0.938
vt 0.875 0.063
vt 0 0.063
vt 0.063 0.063
vt 1 0.063
vt 0.063 0.938
vt 0.938 0.063
vt 0.938 0.938
vt 0.938 1
vt 0.938 0.75
vt 1 0.75
vt 0.063 0.75
vt 0 0.75
vt 0.063 0.125
vt 0.938 0.125
vt 0.938 0.5
vt 1 0.5
vt 0.063 0.5
vt 0 0.5
vt 0.938 0
vt 0.938 0.25
vt 1 0.25
vt 0.063 0.25
vt 0 0.25
vt 0.063 0.188
vt 0.938 0.188
vt 0.5 0.938
vt 0.438 0.938
vt 0.438 0.063
vt 0.5 0.063
vt 0.438 0
vt 0.438 1
vt 0.563 0
vt 0.563 1
vn -1 0 0
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn 0 -1 0
vn 0 1 0
g 1
s off
f 53/1/1 54/2/1 2/3/1 1/4/1
f 6/5/2 7/4/2 50/6/2 49/7/2
@ -139,7 +136,7 @@ f 52/10/2 28/24/2 16/25/2 55/4/2
f 40/26/2 50/6/2 55/1/2 16/27/2
f 45/28/2 13/2/2 54/8/2 49/7/2
f 36/29/2 16/27/2 13/2/2 41/30/2
g Cylinder_Cylinder_drawers
g 2
f 13/8/1 14/31/1 10/32/1 9/33/1
f 14/31/2 15/7/2 11/34/2 10/32/2
f 15/7/3 16/5/3 12/35/3 11/34/3
@ -155,7 +152,7 @@ f 30/38/2 31/40/2 27/45/2 26/43/2
f 31/40/3 32/41/3 28/46/3 27/45/3
f 25/47/5 26/36/5 27/37/5 28/48/5
f 32/37/6 31/48/6 30/47/6 29/36/6
g Cylinder_Cylinder_doors
g 3
f 37/49/1 38/50/1 34/51/1 33/52/1
f 38/50/2 39/28/2 35/26/2 34/51/2
f 39/28/3 40/3/3 36/25/3 35/26/3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 740 B

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 B

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 935 B

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

After

Width:  |  Height:  |  Size: 444 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 B

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 916 B

After

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 668 B

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 B

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB