Auto-Optimize File Size#
Need to optimize files for AR? VR? Web? Games?
Transmogrifier has a toolset for automatically reducing file size with texture- and mesh-optimizing features!
Perform automatic file-optimization methods that are adaptive to every model in order reduce exports' file sizes below a custom target threshold.
Tip
This feature adapts to each model, meaning that Transmogrifier iteratively reduces an export's file size only inasmuch as required to "sneak" below the target threshold. This allows you to always have each individual export exist at its maximum allowable quality within the limit you set.
Target#
Set a target threshold below which Transmogrifier should attempt to adaptively reduce each export files' size (in Megabytes
).
Overwrite Files#
If you elected to Overwrite Exports
in the Exports
box above, then you have the option to overwrite All
existing export files or overwrite export files Only Above Target
.
How is this helpful?
Sometimes a batch conversion with auto-optimize can still yield some exports with file sizes above the target threshold. This allows you to focus on re-batch-converting only the few outliers that need extra optimization.
Example
-
Let's say that out of
100
models converted,5
models are still above a target of15MB
.- Let's also say that batch took
7min.
to process, - but you absolutely have to have all
100
models below15MB
.
- Let's also say that batch took
-
You have two options:
Overwrite All
๐ขOverwrite Only Above Target
๐Adjust your auto-optimize settings, re-batch-convert, and wait another 7min.
for the100
models to convert all over again when95
didn't need to.Adjust your auto-optimize settings, then Only Above Target
will only re-batch-convert those5
files in, say,20sec.
. You just saved about6.5min.
!
Methods#
Choose among texture- and mesh-optimization methods to use.
Method | Description | Adjustment |
---|---|---|
Draco | Try activating Draco compression for exported models. (Only works for glTF /GLB files). |
Draco compression level |
Resize textures | Set minimum image texture resolution for auto file size not to go below. Images will not be upscaled. | Resolution |
Reformat textures | Try reformatting all textures except the normal map to JPEG's to lower the exported file size. | Include Normal Maps (usually avoided because JPG compression causes artifacts in normal maps) |
Decimate | Try decimating objects to lower the exported file size (Uses edge collapse at a 50% ratio each time. Set a maximum decimate iteration). | Decimate iteration limit |
Decimate Warning
Decimation is a destructive form of mesh optimization. When batch converting models with textures, it's important to note that while Blender does its best to preserve UV's when decimating, texture distortion can occur.
Example
For example, let's say you want to Transmogrify a single FBX
file into a USDZ
file. Let's also say you have the Target
threshold set to 15MB
and with default Methods
settings. Your import file is a 10MB
FBX
+ (4) 4K, PNG
external textures at 10MB
each = 50MB
total.
Transmogrifier will run through the following steps in order to optimize the file:
- Export the model
- Export the model with no adjustments
- Get the export file's size (
50MB
)
- First iteration
Resize Textures
by halving their resolution4096px
/2
=2048px
- Export the model again
- Get the export file's size (
30MB
)
Reformat Textures
by converting them to aJPEG
format- Export the model again
- Get the export file's size (
22MB
)- Since
22MB
is still greater than your target of15MB
, Transmogrifier will begin again with another optimize iteration. ๐
- Since
- Second iteration
Resize Textures
by halving their resolution2048px
/2
=1024px
- Export the model again
- Get the export file's size (
14MB
)- Since
14MB
<15MB
, Transmogrifier will exit the auto-optimize loop and move on the converting the next model. โ
- Since
What if Transmogrifier Runs out of options?
If all methods are exhausted and the file size is still above the target maximum, Transmogrifier will report this in the Conversion Log
and move on to converting the next file.
Missing Something?
Do you think we're missing a feature? Submit a request on Github!