In Pixyz Studio, 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 meshes optimization. Texture maps (whether they were imported in Pixyz Studio 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,...


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 exported as embedded within the FBX file (default), or separately.

Go to Preferences (F9) > IO > Export > FBX


How To


How textures are exported from Pixyz Studio is defined in from Preferences (F9) > Material > Texture export.

Fine-tune the exposed parameters to your liking:

"Export Texture Format" parameter

Choose between PNG (default) and JPEG as the default texture export format for Pixyz Studio.


Important notes:

  • When saving a file from the Texture Editor, the extension can be chosen from the "Export texture" dialog box (overriding Pixyz Studio's general preference)
  • When exporting a file in script, using the function material.exportImage(), the extension can be chosen in the "Filename" path.

With the 2 methods, the Quality and Compression used are the ones defined in the `Preferences`


"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 raises 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]")