Export textures
Using Pixyz, it is possible to define if textures should be exported as PNG or JPEG files, with a parameterization of image quality for JPEG, and image compression for PNG.
Indeed, data preparation is not only about mesh optimization. Texture maps (whether they were imported in Pixyz or generated through a baking process) can also be optimized in order to be lighter, while having a control over their quality.
Almost all export formats handled by Pixyz support the export of textures, whether they are embedded or as separate files: FBX, glTF, OBJ, USDZ, etc.
Note
Not all textures will be exported as the output format may not support all map types (or none at all), like Normal maps, Opacity maps, NPOT maps…
Supported image formats
Import
Name | Extensions |
---|---|
Windows bitmap | .bmp |
Portable image formats | .pbm .pgm .ppm |
Sun raster | .sr .ras |
JPEG | .jpeg .jpg .jpe |
JPEG 2000 | .jp2 |
Portable network graphics | .png |
TIFF | .tiff .tif |
HDR | .hdr |
KTX2 | .ktx2 |
Export
Name | Extensions |
---|---|
JPEG | .jpeg .jpg .jpe |
Portable network graphics | .png |
KTX2 | .ktx2 |
Embedded vs. Not embedded textures
When exporting a 3D model that uses textures, depending on the format used to export, textures can be embedded within the file, or saved separately:
- Embedded: .fbx, .glb, .usdz, .jt, .3dxml
- Separate files: FBX, .gltf, obj, .usda, .usdc, .vrml
The FBX format has an export parameter Fbx Embedded Textures to define whether textures should be exported as embedded within the FBX file (default), or separately.
See Preferences settings. By default Pixyz is set to:
pxz.core.setModuleProperty("IO", "FbxEmbeddedTextures", "False")
Learn more
JPEG Quality parameter
Defines the Quality of the textures saved as JPEG files. Choose between 0 and 100 (the higher is the better), 95 being the default value
PNG Compression parameter
Defines the level of compression for textures saved as PNG files, from 0 to 9. A higher value means a smaller size and longer compression time
Note
The JPEG format is lossy by definition, even if the quality level is set to 100. With the PNG format, even with the highest compression level the image is saved/loaded lossless. However, the saving/loading time increases with higher compression. The compression level is a trade-off between file size and encoding/decoding speed
Scripting
These parameters can be set in a script using the following commands:
core.setModuleProperty("Material", "ExportTextureFormat", "JPEG")
core.setModuleProperty("Material", "JpegQuality", "[95, 0, 100]")
core.setModuleProperty("Material", "PngCompression", "[1, 0, 9]")