Schema & Settings v1.0
Introduction
The 3D Processing Schema is a set of rules that represent and validate the structure and format of RapidPipeline's 3D processing functionalities.
In addition to describing the structure of data, schemas apply constraints and expectations to data so it can be validated as it moves between systems. These standard definitions allow data to be interpreted consistently, regardless of origin, and remove the need for translation across applications.
RapidPipeline maintains this semantic normalization by using schemas. Schemas are the standard way of describing data processes in RapidPipeline, allowing all data that conforms to schemas to be reused across all different tools and interfaces without conflicts.
RapidPipeline 3D Processing Configuration Settings adhere to the 3D Processing Schema and are designed to achieve any 3D processing goal.
The 3D Processing Schema v1.0 is utilized by multiple RapidPipeline Software Packages making use of the 3D Processor:
Software Package | Schema | Description |
---|---|---|
3D Processor CLI v7.0.0 | 3D Processing Schema v1.0 | Direct operations on the 3D Data, such as Optimization, Compression, etc. |
RapidPipeline Blender Plugin v0.1.0 - v0.1.1 | 3D Processing Schema v1.0 | Direct operations on the 3D Data, such as Optimization, Compression, etc. |
The 3D Processing Schema
The 3D Processing Schema describes all the Options RapidPipeline 3D Processor offers in regards to:
- 3D Data Optimization and other 3D Operations
- 3D File Format Transcoding
- 3D Material Model Conversion
3D Processing Schema v1.0 (JSON Schema File).
Schema Documentation
3D Processing Settings
3D Processing settings are types of settings operating directly on a 3D model and are able to alter the entire structure or re-create meshes, materials, UVs, texture maps and other 3D model properties.
A set of 3D processing configuration settings in the RapidPipeline Web Platform is described as a 3D Processor Preset.
The settings as displayed within the In the JSON Settings File sections are all utilizing an additional simple glTF export.
This is only needed if the given config is solely utilized with no other (export) configuration given, as the 3D Processing Schema requires at least one file export. More about file exports and settings within the export format section.
Preset Examples
In order to try out some example presets the new 3D Processor Presets in the RapidPipeline Web Platform can be utilized.
See the update regarding the new presets in the Product Updates section here
To download a preset in editable JSON format, activate Preview New Settings with the radio button and download the respective settings JSON files via the Actions menu:
These JSON settings files can be ingested by the RapidPipeline Blender Plugin or the RapidPipeline 3D Processor CLI.
Learn more about how to ingest the JSON settings files with the 3D Processor CLI here: https://docs.rapidpipeline.com/docs/componentDocs/3dProcessorCLI/cli-documentation-7.0.0#command-line-examples
Import 📥
Settings for customizing the file import process into the RapidPipeline 3D Processor.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"import": {
"general": {
"rotateZUp": false,
"fixAnimationData": false,
"normalmapYFlip": false
},
"USD": {
"profile": "arkit",
"purpose": "render"
},
"CAD": {
"tessellationResolution": "fine"
},
"discard": {
"cameras": false,
"lights": false,
"animations": false,
"morphTargets": false,
"unusedUVs": false
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
General Import Settings
Settings applied on all import data.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Convert Z- to Y-Up | rotateZUp | basic | boolean (false) | turns rotation to z-axis pointing upwards on/off |
Fix Animation Data | fixAnimationData | advanced | boolean (false) | cleans up weights so they sum up to 1 and assigns bone 0 for 0-weights |
Normal Map Y Flip | normalmapYFlip | expert | boolean (false) | flip normalmaps Y axis on import. Only affects fbx data. |
USD Import Settings
Settings applied to all usd file imports.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
USD Profile | profile | basic | string [generic, arkit] (arkit) | defines how input USD files are interpreted |
USD Purpose | purpose | expert | string [render] (render) | Defines the purpose of rendering a prim, used to control render visibility and classify prims into visibility categories |
CAD Import Settings
Settings applied to all CAD file imports.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Resolution | tessellationResolution | basic | string [coarse, medium, fine] (fine) | Tessellation resolution for imported CAD surfaces |
Discard Properties on Import
Properties of a 3D asset to discard on import.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Discard Cameras | cameras | basic | boolean (false) | if true, discards any imported cameras |
Discard Lights | lights | basic | boolean (false) | if true, discards any imported lights |
Discard Animations | animations | basic | boolean (false) | if true, discards any imported animations |
Discard Morph Targets | morphTargets | advanced | boolean (false) | if true, discards any imported morph targets (shape keys, blend shapes) |
Discard unused UVs | unusedUVs | expert | boolean (false) | "if true, discards unused UV sets (if possible) |
Scene Graph Flattening
Full control over scene graph, specifying how nodes are merged or kept.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"sceneGraphFlattening": {
"method": "auto",
"preservedSceneDepth": 0
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Flattening Method | method | basic | string [none, full, auto, byOpacity, byMaterial] (auto) | method to be used for scene graph flattening |
Preserved Scene Depth Level | preservedSceneDepth | advanced | integer[>=0] (0) | number of layers in the scene structure that should not be flattened |
3D Edit 🔧
Modify the asset, including generation of new UVs, assignment of new textures, centering the model, and more.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"3dEdit": {
"meshNormals": {
"recomputeInputNormals": false,
"hardAngleThreshold": 60.0,
"computationMethod": "area"
},
"modelEdit": {
"scalingFactor": 1.0,
"centerModel": false
},
"materialEdit": {
"materialReplacer": {
"defaultMaterial": {}
},
"alphaBlendToMaskThreshold": 1.0,
"alphaMapToOpaqueThreshold": 1.0
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Mesh Normals
Settings for Mesh Normal Computation.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Recompute Input Normals | recomputeInputNormals | basic | boolean (false) | if true, discards the original normals and recomputes them |
Normal Hard Angle Threshold (Degrees) | hardAngleThreshold | advanced | number [>= 0 && <= 180] (60) | hard threshold (degrees) used for normal generation (0 = everything flat, 180 = everything smooth |
Normal Computation Method | computationMethod | expert | string [angle, area] (area) | weighting method for computation of mesh normals |
Model Edit
Settings applied directly to the Geometry or Mesh Node(s) of a 3D asset.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Scaling Factor | scalingFactor | basic | number [>= 2.2250738585072014e-308 && <= 1.7976931348623157e+308] (1) | asset scaling before export, does not affect asset for further processing |
Center Model | centerModel | advanced | boolean (false) | centers the model around the coordinate origin before export |
Material Edit
Settings applied to the Materials of a 3D asset.
The material edit section carries some settings for certain material operations (e.g. alpha blending conversions), as well as the material replacer node, which allows for replacing materials with default materials or replacing texture maps with values.
The material replacer is optional.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Alpha Blend to Mask Conversion Threshold | alphaBlendToMaskThreshold | advanced | number[>= 0 && <= 1] (1) | use alpha masking instead of blending when the alpha map has same or more than the given fraction of black or white pixels |
Alpha Blend to Opaque Conversion Threshold | alphaMapToOpaqueThreshold | advanced | number[>= 0 && <= 1] (1) | consider the material opaque if the alpha map mean value is above the given value [0, 1] |
Material Replacer (Option 1.a Default Material + Cube Unwrapping)
The Material Replacer has 2 main options. With the first option it replaces all original materials with a 3D Processor Default Material.
In a second step, the default material can then also receive optional UV layouts (either Cube Unwrapping or Generate UV Atlas).
The first variation (1.a) applies Cube Unwrapping and allows to optionally apply a UV Checker Texture.
Note that all of the UV Options are optional.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"3dEdit": {
"meshNormals": {},
"modelEdit": {},
"materialEdit": {
"materialReplacer": {
"defaultMaterial": {
"generateUVs": {
"cubeUnwrap": {
"addCheckerTexture": {},
"scale": 1.0
}
},
"baseColor": [
1.0,
1.0,
1.0,
1.0
],
"metallic": 0.0,
"roughness": 0.5
}
},
"alphaBlendToMaskThreshold": 1.0,
"alphaMapToOpaqueThreshold": 1.0
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Default Material Settings
Settings for the 3D Processor Default Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Base Color | baseColor | basic | array [>= 4 && <= 4] ([1,1,1,1]) | default material base color |
Metallic | metallic | basic | number [>= 0 && <= 1] (0) | default material metallic property |
Roughness | roughness | basic | number [>= 0 && <= 1] (0.5) | default material roughness property |
Generate UVs
Decision node to choose between Cube Unwrapping and Generate UV Atlas.
Cube Unwrapping
Applies cube unwrapping very similar to Blender's Cube Projection
Add Checker Texture
Optionally add a UV Checker Texture.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Cube UV Scale | scale | basic | number [>= 2.2250738585072014e-308 && <= 1.7976931348623157e+308] (1) | TBD |
Material Replacer (Option 1.b Default Material + Generate UV Atlas)
Instead of applying Cube Unwrapping, a UV Atlas can be generated. This option is very similar to the UV Atlas Generation within the Optimize section.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"3dEdit": {
"meshNormals": {},
"modelEdit": {},
"materialEdit": {
"materialReplacer": {
"defaultMaterial": {
"generateUVs": {
"uvAtlasGenerator": {
"addCheckerTexture": {},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2
}
},
"baseColor": [
1.0,
1.0,
1.0,
1.0
],
"metallic": 0.0,
"roughness": 0.5
}
},
"alphaBlendToMaskThreshold": 1.0,
"alphaMapToOpaqueThreshold": 1.0
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Generate UV Atlas
Options for the newly generated UV Atlases. All generated Atlases are in the 1-by-1 UV space.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Unwrapping Method | method | expert | string [isometric, forwardBijective, fixedBoundary, fastConformal, conformal (isometric) | method to be used for UV unwrapping |
Segmentation Cut Angle (Degrees) | segmentationCutAngle | advanced | number [>= 0 && <= 180] (88) | threshold (degrees) for cutting sharp edges |
Segmentation Chart Angle (Degrees) | segmentationChartAngle | advanced | number [>= 0 && <= 180] (130) | threshold (degrees) for overall curvature of 3D charts |
Maximum Angle Error (Degrees) | maxAngleError | expert | number [>= 0 && <= 180] (114) | the maximum angle (degrees) difference between UV and 3D space beyond which a chart is split and re-unwrapped |
Maximum Primitives per UV Chart | maxPrimitivesPerChart | expert | integer [>= 1] (10000) | limits max number primitives in any UV chart |
Cut Overlapping UV Pieces | cutOverlappingPieces | advanced | Boolean (true) | turns removal of UV self-overlaps through cutting on/off |
UV Atlas Mode | atlasMode | basic | string [single, separateAlpha, separateNormals, separateAlphaNormals, separateMaterials] (separateAlpha) | mode used to assign meshes to atlases |
Allow Rectangular Atlases | allowRectangularAtlases | advanced | boolean (false) | create rectangular POT textures when beneficial for auto sized textures |
Packing Resolution | packingResolution | basic | integer [>= 0 && <= 16384] (1024) | resolution at which packing will be computed |
Packing Pixel Distance | packingPixelDistance | advanced | integer [>= 1 && <= 16384] (2) | distance in pixels packing will keep at reference packing resolution |
Material Replacer (Option 2. Drop Uniform Texture Maps)
Instead of replacing original materials with default materials, existing textures can also be converted into values instead. This option is called "Drop Textures".
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"3dEdit": {
"meshNormals": {},
"modelEdit": {},
"materialEdit": {
"materialReplacer": {
"dropTextures": {
"default": 0.0,
"baseColor": 0.0,
"opacity": 0.0,
"normal": 0.0,
"metallic": 0.0,
"roughness": 0.0,
"emissive": 0.0,
"occlusion": 0.0,
"displacement": 0.0,
"clearcoat": 0.0,
"clearcoatColor": 0.0,
"clearcoatRoughness": 0.0,
"clearcoatSpecularLevel": 0.0,
"clearcoatNormal": 0.0,
"transmission": 0.0,
"attenuationColor": 0.0,
"scatteringColor": 0.0,
"scatteringDistanceScale": 0.0,
"sheenColor": 0.0,
"sheenRoughness": 0.0,
"sheenOpacity": 0.0,
"specularColor": 0.0,
"specularValue": 0.0,
"anisotropy": 0.0,
"anisotropyAngle": 0.0,
"iridescence": 0.0,
"iridescenceThickness": 0.0
}
},
"alphaBlendToMaskThreshold": 1.0,
"alphaMapToOpaqueThreshold": 1.0
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Drop Uniform Texture Maps
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Texture Map Threshold | default | basic | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform texture maps |
Base Color Map Threshold | baseColor | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform base color maps |
Opacity Map Threshold | opacity | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform opacity maps |
Normal Map Threshold | normal | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform normal maps |
Metallic Map Threshold | metallic | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform metallic maps |
Roughness Map Threshold | roughness | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform roughness maps |
Emissive Map Threshold | emissive | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform base emissive maps |
Ambient Occlusion Map Threshold | occlusion | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform ambient occlusion maps |
Displacement Map Threshold | displacement | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform displacement maps |
Clearcoat Map Threshold | clearcoat | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform clearcoat maps |
Clearcoat Color Map Threshold | clearcoatColor | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform clearcoat color maps |
Clearcoat Roughness Map Threshold | clearcoatRoughness | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform clearcoat roughness maps |
Clearcoat Specular Level Map Threshold | clearcoatSpecularLevel | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform clearcoat specular level maps |
Clearcoat Normal Map Threshold | clearcoatNormal | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform clearcoat normal maps |
Transmission Map Threshold | transmission | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform transmission maps |
Thickness Map Threshold | thickness | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform thickness maps |
Attenuation Color Map Threshold | attenuationColor | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform attenuation color maps |
Scattering Color Map Threshold | scatteringColor | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform scattering color maps |
Scattering Distance Scale Map Threshold | scatteringDistanceScale | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform scattering distance scale maps |
Sheen Color Map Threshold | sheenColor | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform sheen color maps |
Sheen Roughness Map Threshold | sheenRoughness | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform sheen roughness maps |
Sheen Opacity Threshold | sheenOpacity | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform sheen opacity maps |
Specular Color Map Threshold | specularColor | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform specular color maps |
Specular Value Map Threshold | specularValue | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform specular value maps |
Anisotropy Map Threshold | anisotropy | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform anisotropy maps |
Anisotropy Angle Map Threshold | anisotropyAngle | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform anisotropy angle maps |
Iridescence Map Threshold | iridescence | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform iridescence maps |
Iridescence Thickness Map Threshold | iridescenceThickness | advanced | number [>= 0 && <= 1] (0) | Threshold for dropping nearly-uniform iridescence thickness maps |
Mesh Culling
Removal of small features or invisible interior geometry.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"meshCulling": {
"occlusionCulling": {},
"smallFeatureCulling": {
"sizeThreshold": {
"percentage": 0.0
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Occlusion Culling
Removes occluded (invisible) triangles.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"meshCulling": {
"occlusionCulling": {
"perMesh": false,
"quality": "default",
"ignoreTransparency": false,
"diffusion": "none",
"runAfterDecimator": true
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Per Mesh | perMesh | basic | Boolean (false) | switches visibility computation between per mesh and global |
Culling Quality | quality | advanced | string [default, fast, thorough, extreme] (default) | specify how fast or thorough triangle visibility should be determined |
Ignore Transparency | ignoreTransparency | advanced | Boolean (false) | culling will not consider geometry as visible anymore, if occluded by geometry associated with transparent materials |
Run After Decimator | runAfterDecimator | expert | Boolean (true) | if true, removes occluded (invisible) triangles after decimation |
Visibility Diffusion | diffusion | expert | string [none, conservative] (none) | control if neighbours of visible triangles are also flagged as visible |
Small Feature Culling
Removes small features (mesh lumps).
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Run After Decimator | runAfterDecimator | expert | Boolean (true) | if true, removes small features after decimation |
Size Threshold
Choice between Relative Percentage (bbox) or Value (scene units).
Relative Percentage (bbox)
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"meshCulling": {
"smallFeatureCulling": {
"sizeThreshold": {
"percentage": 0.0
},
"runAfterDecimator": true
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Relative Percentage (bbox) | percentage | basic | number [>= 0 && <= 100] (0) | percentage (relative to the scene's bounding box) defining the largest mesh lump bbox sidelength considered small |
Value (scene units)
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"meshCulling": {
"smallFeatureCulling": {
"sizeThreshold": {
"value": 1.0
},
"runAfterDecimator": true
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Value (scene units) | value | basic | number [>= 2.2250738585072014e-308] (1) | absolute value (in scene units), defining the largest mesh lump bbox sidelength considered small |
Optimize 🚀
The Optimize category contains the main functionalities for Mesh and Material Optimization, including options for decimation, remeshing, texture atlas baking, UV aggregation, and more.
3D Model Optimization Method
Choice of the major Optimization method.
There are 2 main options to choose from:
Material Optimization 🎨
Main option for optimizing the model's materials, including material merging, UV (atlas) generation, Texture Baking, and more. Keeps mesh topology as is.
There are multiple options available:
Material Merger
Option which merges materials according to existing material properties if possible (currently the merging method is set to "auto" = merges materials by opacity and keeps non-combinable materials separate). Optionally preserves materials with tiled UVs.
Additional UV (atlas) unwrapping and texture baking options are available via the Material Regenerator in order to project the original material properties onto the merged output materials.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {}
}
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Material Merging | materialMergingMethod | basic | string [auto] (auto) | method to define how materials are merged |
Keep Tiled UVs | keepTiledUVs | basic | Boolean (false) | preserves repeating texture coordinates |
Tiling Threshold | tilingThreshold | advanced | number [>= 1 && <= 1.7976931348623157e+308] (1.5) | UV extent after which a UV channel is considered repeating (= tiling texture) |
Material Regenerator
The Material Regenerator makes sure the merged or otherwise altered materials are inheriting the original material properties or alternatively get assigned new materials and UVs.
The following options are available:
- Generate UV Atlas + Texture Baker
- Material Replacer + Default Material (+ Unwrapping Options)
- Material Replacer + Drop Uniform Texture Maps
Choice Between UV atlas generator or material replacer.
Required if Material Merger is used.
Material Regenerator + UV Atlas Generator + Texture Baker
This is the most common usage of the Material Regenerator within the RapidPipeline 3D Processor.
It enables creation of new UV atlases corresponding to the (new, merged) output materials and baking from the original input materials and meshes onto the merged or otherwise altered output materials and meshes.
This process does consider all (PBR) material properties and is able to project from material, vertex colors and other material attributes to texture maps as well as perform normal map and ao baking to capture mesh, normal and occlusions from the original data.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {
"mode": "always",
"recomputeNormals": true,
"skipNormalsRoughnessThreshold": 0.0,
"normalMapScale": 1.0,
"tangentSpace": true
},
"aoBaker": {
"strength": 0.5,
"replaceOriginal": true,
"filterRadius": 3.0,
"textureSamples": 48
},
"bakingResolution": {
"default": 2048
},
"sampleCount": 4,
"texMapAutoScaling": true,
"bakeCombinedScene": false,
"topologicalHolesToAlpha": false,
"powerOfTwoResolution": "ceil",
"inpaintingRadius": 32.0
},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2,
"atlasFactor": 1
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Generate UV Atlas
Options for the newly generated UV Atlases. All generated Atlases are in the 1-by-1 UV space.
Part of Material Regenerator.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Unwrapping Method | method | expert | string [isometric, forwardBijective, fixedBoundary, fastConformal, conformal (isometric) | method to be used for UV unwrapping |
Segmentation Cut Angle (Degrees) | segmentationCutAngle | advanced | number [>= 0 && <= 180] (88) | threshold (degrees) for cutting sharp edges |
Segmentation Chart Angle (Degrees) | segmentationChartAngle | advanced | number [>= 0 && <= 180] (130) | threshold (degrees) for overall curvature of 3D charts |
Maximum Angle Error (Degrees) | maxAngleError | expert | number [>= 0 && <= 180] (114) | the maximum angle (degrees) difference between UV and 3D space beyond which a chart is split and re-unwrapped |
Maximum Primitives per UV Chart | maxPrimitivesPerChart | expert | integer [>= 1] (10000) | limits max number primitives in any UV chart |
Cut Overlapping UV Pieces | cutOverlappingPieces | advanced | Boolean (true) | turns removal of UV self-overlaps through cutting on/off |
UV Atlas Mode | atlasMode | basic | string [single, separateAlpha, separateNormals, separateAlphaNormals, separateMaterials] (separateAlpha) | mode used to assign meshes to atlases |
Allow Rectangular Atlases | allowRectangularAtlases | advanced | boolean (false) | create rectangular POT textures when beneficial for auto sized textures |
Packing Resolution | packingResolution | basic | integer [>= 0 && <= 16384] (1024) | resolution at which packing will be computed |
Packing Pixel Distance | packingPixelDistance | advanced | integer [>= 1 && <= 16384] (2) | distance in pixels packing will keep at reference packing resolution |
Multiple Atlas Factor | atlasFactor | basic | integer [>= 0 && <= 16] (1) | divide each created atlas into n new atlases |
Texture Baker
The general texture baking options which bakes all supported PBR material properties.
The following options are also available within the Texture Baker:
Part of Material Regenerator.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Baking Sample Count | sampleCount | basic | integer [>= 1 && <= 16] (4) | number of samples per texel for texture baking |
Texture Map Auto Scaling | texMapAutoScaling | basic | boolean (true) | if true, each texture's pixel budget is divided by all atlases |
Bake Combined Scene | bakeCombinedScene | advanced | boolean (false) | bakes the scene as a single entity even if its meshes have transformations |
Bake Topological Holes to Alpha Map | topologicalHolesToAlpha | advanced | boolean (false) | capture areas where the corresponding source surface was not found on an alpha mask |
Power of Two Resolution | powerOfTwoResolution | expert | string [none, ceil, floor, round] (ceil) | ensures that textures have power of two dimensions |
Inpainting Radius | inpaintingRadius | expert | number [>= 0 && <= 32] (32) | radius, in pixels, for texture inpainting |
Texture Baking Resolution 🌄
Settings block within the Texture Baker to steer the baking resolution of supported texture maps.
Part of Texture Baker.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Texture Map Resolution | default | basic | integer [>= 0 && <= 16384] (2048) | default resolution for baked texture maps |
Base Color Map Resolution | baseColor | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked base color maps |
Opacity Map Resolution | opacity | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked opacity maps |
Normal Map Resolution | normal | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked normal maps |
Metallic Map Resolution | metallic | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked metallic maps |
Roughness Map Resolution | roughness | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked roughness maps |
Emissive Map Resolution | emissive | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked emissive maps |
Occlusion Map Resolution | occlusion | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked occlusion maps |
Displacement Map Resolution | displacement | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked displacement maps |
Clearcoat Map Resolution | clearcoat | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked clearcoat maps |
Clearcoat Color Map Resolution | clearcoatColor | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked clearcoat color maps |
Clearcoat Roughness Map Resolution | clearcoatRoughness | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked clearcoat roughness maps |
Clear Coat Specular Map Resolution | clearcoatSpecularLevel | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked clearcoat specular maps |
Clear Coat Normal Map Resolution | clearcoatNormal | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked clearcoat normal maps |
Transmission Map Resolution | transmission | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked transmission maps |
Thickness Map Resolution | thickness | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked thickness maps |
Attenuation Color Map Resolution | attenuationColor | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked attenuation color maps |
Scattering Color Map Resolution | scatteringColor | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked scattering color maps |
Scattering Distance Scale Map Resolution | scatteringDistanceScale | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked scattering distance scale maps |
Sheen Color Map Resolution | sheenColor | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked sheen color maps |
Sheen Roughness Map Resolution | sheenRoughness | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked sheen roughness maps |
Sheen Opacity Map Resolution | sheenOpacity | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked sheen opacity maps |
Specular Color Map Resolution | specularColor | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked specular color maps |
Specular Value Map Resolution | specularValue | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked specular value maps |
Anisotropy Map Resolution | anisotropy | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked anisotropy maps |
Anisotropy Angle Map Resolution | anisotropyAngle | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked anisotropy angle maps |
Iridescence Map Resolution | iridescence | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked iridescence maps |
Iridescence Thickness Map Resolution | iridescenceThickness | advanced | integer [>= 0 && <= 16384] (2048) | resolution for baked iridescence thickness maps |
Normal Map Baker 🧊
Can be found within the Texture Baker. This option steers the normal map baking process.
Part of Texture Baker.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Normal Map Baking Mode | mode | basic | string [always, ifInInput, never (always) | when to (re)bake normal maps |
Recompute Normals | recomputeNormals | advanced | boolean (true) | recompute normals before baking |
Skip Normals Roughness Threshold | skipNormalsRoughnessThreshold | advanced | number [>= 0 && <= 1] (0) | roughness value below which difference in normals between source/target are not baked |
Normal Map Scale | normalMapScale | expert | number [>= 2.2250738585072014e-308 && <= 1.7976931348623157e+308] (1) | normal scaling for the baked normal map (only used on glTF output) |
Tangent Space Normal Maps | tangentSpace | expert | boolean (true) | switches between tangent-/object-space normal maps |
Ambient Occlusion Map Baker 🌓
This optional baker steers the generation of ambient occlusion texture maps. Turns AO (Ambient Occlusion) generation on/off
Optional part of Texture Baker.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Strength | strength | basic | number [>= 0.1 && <= 1] (0.5) | strength (intensity) for generated AO maps |
Replace Original Ambient Occlusion Map | replaceOriginal | advanced | boolean (true) | computes a new AO map even if one is present in the input |
Filter Radius | filterRadius | expert | number [>= 0 && <= 16] (3) | filter radius for smoothing the AO map (if any) |
Texture Samples | textureSamples | expert | integer [>= 8 && <= 64] (48) | number of samples per texel for AO map generation (converted to a multiple of 8) |
Material Regenerator + Material Replacer (Default Material Option)
Similar option and choices as in the 3D Edit Section 🔧:
- Default Material + generate UVs (Cube Unwrapping)
- Default Material + generate UVs (Generate UV Atlas)
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialMerger": {
"materialRegenerator": {
"materialReplacer": {
"defaultMaterial": {
"generateUVs": {
"uvAtlasGenerator": {
"addCheckerTexture": {},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2
}
},
"baseColor": [
0.0,
0.0,
1.0,
1.0
],
"metallic": 0,
"roughness": 0.5
}
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Default Material Settings
Settings for the 3D Processor Default Material.
Settings |
---|
Same Settings as in 3D Edit Section |
Material Regenerator + Material Replacer (Drop Uniform Texture Maps Option)
Similar to Material Replacer Option within 3D Edit section.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialMerger": {
"materialRegenerator": {
"materialReplacer": {
"dropTextures": {
"default": 0.0,
"baseColor": 0.0,
"opacity": 0.0,
"normal": 0.0,
"metallic": 0.0,
"roughness": 0.0,
"emissive": 0.0,
"occlusion": 0.0,
"displacement": 0.0,
"clearcoat": 0.0,
"clearcoatColor": 0.0,
"clearcoatRoughness": 0.0,
"clearcoatSpecularLevel": 0.0,
"clearcoatNormal": 0.0,
"transmission": 0.0,
"thickness": 0.0,
"attenuationColor": 0.0,
"scatteringColor": 0.0,
"scatteringDistanceScale": 0.0,
"sheenColor": 0.0,
"sheenRoughness": 0.0,
"sheenOpacity": 0.0,
"specularColor": 0.0,
"specularValue": 0.0,
"anisotropy": 0.0,
"anisotropyAngle": 0.0,
"iridescence": 0.0,
"iridescenceThickness": 0.0
}
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Drop Uniform Texture Maps
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
Settings |
---|
Same Settings as in 3D Edit Section |
Keep Materials and UVs
Preserves original materials and texture coordinates.
Optional choice of:
Currently 3D Processor can not preserve 2nd UV sets.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"keepMaterialsUVs": {
"forceNormalRebaking": false
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Force Rebaking Normal Maps | forceNormalRebaking | expert | boolean (false) | rebakes normal maps when preserving UVs, even if UV overlaps are detected |
Drop Uniform Texture Maps
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
Settings |
---|
Same Settings as in 3D Edit Section |
Generate 2nd UV Atlas
Optionally generated a 2nd UV Set.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"keepMaterialsUVs": {
"atlasGenerator2ndUV": {
"textureBaker2ndUV": {
"bakingResolution2ndUV": {
"default": 2048
},
"aoBaker2ndUV": {
"strength": 0.5,
"replaceOriginal": true,
"filterRadius": 3.0,
"textureSamples": 48
},
"sampleCount": 4,
"texMapAutoScaling": true,
"bakeCombinedScene": false,
"powerOfTwoResolution": "ceil",
"inpaintingRadius": 32.0
},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2,
"atlasFactor": 1
},
"forceNormalRebaking": false
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Generate UV Atlas Section |
2nd UV Atlas Texture Baker
Texture Baking Settings for baking into 2nd UV atlas.
Settings |
---|
Same Settings as in Texture Baker Section |
2nd UV Texture Baking Resolution
Texture Baking Resolution for baking into 2nd UV atlas.
Settings |
---|
Same Settings as in Texture Baking Resolution Section |
2nd UV Ambient Occlusion Map Baker
Bakes a new ambient occlusion map into the generated 2nd UV atlas. This is very useful if the 1st UV atlas is reserved due to UV atlas preservation or aggregation.
Settings |
---|
Same Settings as in Ambient Occlusion Map Baker Section |
UV Aggregator
UVs are preserved and textures are aggregated from different materials into a single atlas when possible.
Optional choice of:
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialUVAggregator": {
"allowRectangularAtlases": true,
"forceNormalRebaking": false
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Allow Rectangular Atlases | allowRectangularAtlases | basic | boolean (true) | create rectangular POT textures when beneficial for auto sized textures |
Force Rebaking Normal Maps | forceNormalRebaking | expert | boolean (false) | rebakes normal maps when preserving UVs, even if UV overlaps are detected |
Drop Uniform Texture Maps
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
Settings |
---|
Same Settings as in 3D Edit Section |
Generate 2nd UV Atlas
Optionally generated a 2nd UV Set.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialUVAggregator": {
"atlasGenerator2ndUV": {
"textureBaker2ndUV": {
"bakingResolution2ndUV": {
"default": 2048
},
"aoBaker2ndUV": {
"strength": 0.5,
"replaceOriginal": true,
"filterRadius": 3.0,
"textureSamples": 48
},
"sampleCount": 4,
"texMapAutoScaling": true,
"bakeCombinedScene": false,
"powerOfTwoResolution": "ceil",
"inpaintingRadius": 32.0
},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2,
"atlasFactor": 1
},
"allowRectangularAtlases": true,
"forceNormalRebaking": false
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Generate UV Atlas Section |
2nd UV Atlas Texture Baker
Texture Baking Settings for baking into 2nd UV atlas.
Settings |
---|
Same Settings as in Texture Baker Section |
2nd UV Texture Baking Resolution
Texture Baking Resolution for baking into 2nd UV atlas.
Settings |
---|
Same Settings as in Texture Baking Resolution Section |
2nd UV Ambient Occlusion Map Baker
Bakes a new ambient occlusion map into the generated 2nd UV atlas. This is very useful if the 1st UV atlas is reserved due to UV atlas preservation or aggregation.
Settings |
---|
Same Settings as in Ambient Occlusion Map Baker Section |
Mesh and Material Optimization 🌐🎨
Main option for optimizing the model's meshes and materials, including mesh decimation, remeshing, material merging, UV (atlas) generation, Texture Baking, and more.
Two main options to choose from, each has different sub-options:
Remesher 🌟
Remeshes the original mesh and decimates to a face target.
Due to the entire re-creation of the original surface, original materials and UVs can not be kept. Material Merger and Regenerator are therefore required in order to reproject original mesh and material properties.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"target": {},
"method": "voxelization",
"resolution": 0,
"materialMerger": {}
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Remeshing Method | method | basic | string [voxelization, shrinkwrap] (voxelization) | method for the initial remeshing process |
Resolution | resolution | advanced | integer [>= 0 && <= 11] (0) | maximum tree depth (resolution) for the initial remeshing process (0=auto) |
Faces (Target)
Face Targets for the Decimation Operation after the initial Remeshing.
Faces Percentage
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"target": {
"faces": {
"percentage": 100.0
}
},
"method": "voxelization",
"resolution": 0,
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {}
}
}
}
}
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Faces Percentage | percentage | basic | number [>= 0 && <= 100] (100) | target percentage of faces for the decimation after the remeshing process |
The default of 100% results in exactly the original mesh resolution of the input, as the remeshed surface is always decimated after the initial remeshing. The initial resolution of the remeshing process can be steered with the remeshing resolution setting.
The default of 100% results in the exact same mesh resolution than the input.
Faces Value
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"target": {
"faces": {
"value": 1
}
},
"method": "voxelization",
"resolution": 0,
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {}
}
}
}
}
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Faces Value | value | basic | integer [>= 1] (1) | target faces value for the decimation after the remeshing process |
The default of 1 is not recommended for an actual production config. We recommend at least 1,000 faces.
In theory, the target face value can be higher than the input, achieving a denser mesh than the original (depending on the remeshing resolution setting).
Material Merger (Remesher)
Option which merges materials according to existing material properties if possible (currently the merging method is set to "auto" = merges materials by opacity and keeps non-combinable materials separate). Optionally preserves materials with tiled UVs.
Additional UV (atlas) unwrapping and texture baking options are available via the Material Regenerator in order to project the original material properties onto the merged output materials.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"target": {
"faces": {
"percentage": 100.0
}
},
"method": "voxelization",
"resolution": 0,
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {}
}
}
}
}
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
The Material Merger within Remesher does not have the option to preserve tiled UV coordinates due to the newly created mesh surface.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Material Merging | materialMergingMethod | basic | string [auto] (auto) | method to define how materials are merged |
Material Regenerator (Remesher)
The Material Regenerator makes sure the merged or otherwise altered materials are inheriting the original material properties or alternatively get assigned new materials and UVs.
The following options are available:
- Generate UV Atlas + Texture Baker
- Material Replacer + Default Material (+ Unwrapping Options)
- Material Replacer + Drop Uniform Texture Maps
Choice Between UV atlas generator or material replacer.
Required if Material Merger is used.
Material Regenerator + UV Atlas Generator + Texture Baker (Remesher)
This is the most common usage of the Material Regenerator within the RapidPipeline 3D Processor.
It enables creation of new UV atlases corresponding to the (new, merged) output materials and baking from the original input materials and meshes onto the merged or otherwise altered output materials and meshes.
This process does consider all (PBR) material properties and is able to project from material, vertex colors and other material attributes to texture maps as well as perform normal map and ao baking to capture mesh, normal and occlusions from the original data.
Generate UV Atlas (Remesher)
Options for the newly generated UV Atlases. All generated Atlases are in the 1-by-1 UV space.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"target": {
"faces": {
"percentage": 100.0
}
},
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {
"mode": "always",
"recomputeNormals": true,
"skipNormalsRoughnessThreshold": 0.0,
"normalMapScale": 1.0,
"tangentSpace": true
},
"aoBaker": {
"strength": 0.5,
"replaceOriginal": true,
"filterRadius": 3.0,
"textureSamples": 48
},
"bakingResolution": {
"default": 2048
},
"sampleCount": 4,
"texMapAutoScaling": true,
"bakeCombinedScene": false,
"topologicalHolesToAlpha": false,
"powerOfTwoResolution": "ceil",
"inpaintingRadius": 32.0
},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2,
"atlasFactor": 1
}
}
},
"method": "voxelization",
"resolution": 0
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Generate UV Atlas Section within Material Optimization |
Texture Baker (Remesher)
The general texture baking options which bakes all supported PBR material properties.
The following options are also available within the Texture Baker:
Part of Material Regenerator.
Settings |
---|
Same Settings as in Texture Baker Section within Material Optimization |
Texture Baking Resolution (Remesher) 🌄
Settings block within the Texture Baker to steer the baking resolution of supported texture maps.
Part of Texture Baker.
Settings |
---|
Same Settings as in Texture Baking Resolution Section within Material Optimization |
Normal Map Baker (Remesher) 🧊
Can be found within the Texture Baker. This option steers the normal map baking process.
Part of Texture Baker.
Settings |
---|
Same Settings as in Normal Map Baker Section within Material Optimization |
Ambient Occlusion Baker (Remesher) 🌓
This optional baker steers the generation of ambient occlusion texture maps. Turns AO (Ambient Occlusion) generation on/off
Part of Texture Baker.
Settings |
---|
Same Settings as in Ambient Occlusion Map Baker Section within Material Optimization |
Material Regenerator + Material Replacer + Default Material (Remesher)
Similar Option and choices as in the 3D Edit Section and the Material Optimization Section
- Default Material + generate UVs (Cube Unwrapping)
- Default Material + generate UVs (Generate UV Atlas)
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"materialMerger": {
"materialRegenerator": {
"materialReplacer": {
"defaultMaterial": {
"generateUVs": {
"uvAtlasGenerator": {
"addCheckerTexture": {},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2
}
},
"baseColor": [
0.0,
0.0,
1.0,
1.0
],
"metallic": 0,
"roughness": 0.5
}
}
}
},
"target": {
"faces": {
"percentage": 100.0
}
},
"method": "voxelization",
"resolution": 0
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Default Material Settings (Remesher)
Settings for the 3D Processor Default Material.
Settings |
---|
Same Settings as in Default Material Settings Section within 3D Edit |
Material Regenerator + Material Replacer + Drop Uniform Texture Maps (Remesher)
Similar Option as in the 3D Edit Section and the Material Optimization Section
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"materialMerger": {
"materialRegenerator": {
"materialReplacer": {
"dropTextures": {
"default": 0.0,
"baseColor": 0.0,
"opacity": 0.0,
"normal": 0.0,
"metallic": 0.0,
"roughness": 0.0,
"emissive": 0.0,
"occlusion": 0.0,
"displacement": 0.0,
"clearcoat": 0.0,
"clearcoatColor": 0.0,
"clearcoatRoughness": 0.0,
"clearcoatSpecularLevel": 0.0,
"clearcoatNormal": 0.0,
"transmission": 0.0,
"thickness": 0.0,
"attenuationColor": 0.0,
"scatteringColor": 0.0,
"scatteringDistanceScale": 0.0,
"sheenColor": 0.0,
"sheenRoughness": 0.0,
"sheenOpacity": 0.0,
"specularColor": 0.0,
"specularValue": 0.0,
"anisotropy": 0.0,
"anisotropyAngle": 0.0,
"iridescence": 0.0,
"iridescenceThickness": 0.0
}
}
}
},
"target": {
"faces": {
"percentage": 100.0
}
},
"method": "voxelization",
"resolution": 0
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Drop Uniform Texture Maps (Remesher)
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
Settings |
---|
Same Settings as in Drop Uniform Texture Maps Section within 3D Edit |
Decimator 💎
The Decimator is capable of reducing mesh complexity while being able to keep important properties such as original UV coordinates, normals and topology in place.
Mesh Decimation is computed directly from the original mesh, therefore the quality of the results highly depends on the quality of the input topology.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {}
}
}
}
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Preserve Topology | preserveTopology | basic | boolean (false) | preserves topological features like holes during decimation |
Preserve Normals | preserveNormals | basic | boolean (false) | preserves vertex normals during decimation |
Preserve Mesh Borders | preserveMeshBorders | advanced | boolean (true) | preserves borders (vertices) common between meshes |
Preserve Material Borders | preserveMaterialBorders | advanced | boolean (false) | preserves mesh material borders during decimation |
Collapse Unconnected Vertices | collapseUnconnectedVertices | advanced | boolean (true) | switches collapsing of nearby, unconnected vertices on/off |
Boundary Preservation Factor | boundaryPreservationFactor | expert | number [>= 0 && <= 1] (0.5) | factor to steer preservation of boundaries during decimation |
Collapse Distance Threshold | collapseDistanceThreshold | expert | number [>= 0 && <= 0.1] (0.005) | threshold w.r.t BBox diagonal for collapsing nearby vertices |
Decimation Method | method | expert | string [quadric, edgeLength] (quadric) | method to be used for decimation |
Faces (Target)
Face Targets for the Decimation Operation.
In conjunction with Mesh Deviation they serve as a cap for the maximum allowed number of faces.
Faces Percentage
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Faces Percentage | percentage | basic | number [>= 0 && <= 100] (100) | target percentage of faces for the decimation process |
The default of 100% results in the exact same mesh resolution than the input.
Faces Value
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Faces Value | value | basic | integer [>= 1] (1) | target faces value for the decimation process |
The default of 1 is not recommended for an actual production config. We recommend at least 1,000 faces.
Deviation (Target)
Mesh Deviation between original and decimated surface.
Deviation works in conjunction with any Face Target, which will serve as a cap for the maximum allowed number of faces.
Deviation Percentage
For highly detailed complex 3D assets, to achieve a reasonably small deviation we recommend a percentage of 0.05% or less, and for a rather medium deviation from the input a percentage around 0.3%
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Deviation Percentage | percentage | basic | number [>= 0 && <= 100] (0) | target percentage of deviation relative to the original mesh |
Deviation Value
If you are unsure about scene units, we recommend to utilize Deviation Percentage instead in order to always stay relative in terms of deviation from input mesh.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Faces Value | value | basic | integer [>= 0] (0) | target deviation value in absolute scene units |
Material Optimization (Decimator)
Option within Decimator for optimizing the model's materials, including material merging, UV (atlas) generation, Texture Baking, and more.
There are multiple options available to pair the decimation process with:
Material Merger (Decimator)
Option which merges materials according to existing material properties if possible (currently the merging method is set to "auto" = merges materials by opacity and keeps non-combinable materials separate). Optionally preserves materials with tiled UVs.
Additional UV (atlas) unwrapping and texture baking options are available via the Material Regenerator in order to project the original material properties onto the merged output materials.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {}
}
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Material Merger Section within Material Optimization |
Material Regenerator (Decimator)
The Material Regenerator makes sure the merged or otherwise altered materials are inheriting the original material properties or alternatively get assigned new materials and UVs.
The following options are available:
- Generate UV Atlas + Texture Baker
- Material Replacer + Default Material (+ Unwrapping Options)
- Material Replacer + Drop Uniform Texture Maps
Choice Between UV atlas generator or material replacer.
Required if Material Merger is used.
Material Regenerator + UV Atlas Generator + Texture Baker (Decimator)
This is the most common usage of the Material Regenerator within the RapidPipeline 3D Processor.
It enables creation of new UV atlases corresponding to the (new, merged) output materials and baking from the original input materials and meshes onto the merged or otherwise altered output materials and meshes.
This process does consider all (PBR) material properties and is able to project from material, vertex colors and other material attributes to texture maps as well as perform normal map and ao baking to capture mesh, normal and occlusions from the original data.
Generate UV Atlas (Decimator)
Options for the newly generated UV Atlases. All generated Atlases are in the 1-by-1 UV space.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {
"mode": "always",
"recomputeNormals": true,
"skipNormalsRoughnessThreshold": 0.0,
"normalMapScale": 1.0,
"tangentSpace": true
},
"aoBaker": {
"strength": 0.5,
"replaceOriginal": true,
"filterRadius": 3.0,
"textureSamples": 48
},
"bakingResolution": {
"default": 2048
},
"sampleCount": 4,
"texMapAutoScaling": true,
"bakeCombinedScene": false,
"topologicalHolesToAlpha": false,
"powerOfTwoResolution": "ceil",
"inpaintingRadius": 32.0
},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2,
"atlasFactor": 1
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Generate UV Atlas Section within Material Optimization |
Texture Baker (Decimator)
The general texture baking options which bakes all supported PBR material properties.
The following options are also available within the Texture Baker:
Part of Material Regenerator.
Settings |
---|
Same Settings as in Texture Baker Section within Material Optimization |
Texture Baking Resolution (Decimator) 🌄
Settings block within the Texture Baker to steer the baking resolution of supported texture maps.
Part of Texture Baker.
Settings |
---|
Same Settings as in Texture Baking Resolution Section within Material Optimization |
Normal Map Baker (Decimator) 🧊
Can be found within the Texture Baker. This option steers the normal map baking process.
Part of Texture Baker.
Settings |
---|
Same Settings as in Normal Map Baker Section within Material Optimization |
Ambient Occlusion Baker (Decimator) 🌓
This optional baker steers the generation of ambient occlusion texture maps. Turns AO (Ambient Occlusion) generation on/off
Part of Texture Baker.
Settings |
---|
Same Settings as in Ambient Occlusion Map Baker Section within Material Optimization |
Material Regenerator + Material Replacer + Default Material (Decimator)
Similar Option and choices as in the 3D Edit Section and the Material Optimization Section
- Default Material + generate UVs (Cube Unwrapping)
- Default Material + generate UVs (Generate UV Atlas)
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"materialOptimization": {
"materialMerger": {
"materialRegenerator": {
"materialReplacer": {
"defaultMaterial": {
"generateUVs": {
"uvAtlasGenerator": {
"addCheckerTexture": {},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2
}
},
"baseColor": [
1.0,
1.0,
1.0,
1.0
],
"metallic": 0,
"roughness": 0.5
}
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
},
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Default Material Settings (Material Merger + Regenerator + Replacer) (Decimator)
Settings for the 3D Processor Default Material.
Settings |
---|
Same Settings as in Default Material Settings Section within 3D Edit |
Material Regenerator + Material Replacer + Drop Uniform Texture Maps (Decimator)
Similar Option as in the 3D Edit Section and the Material Optimization Section
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"materialOptimization": {
"materialMerger": {
"materialRegenerator": {
"materialReplacer": {
"dropTextures": {
"default": 0.0,
"baseColor": 0.0,
"opacity": 0.0,
"normal": 0.0,
"metallic": 0.0,
"roughness": 0.0,
"emissive": 0.0,
"occlusion": 0.0,
"displacement": 0.0,
"clearcoat": 0.0,
"clearcoatColor": 0.0,
"clearcoatRoughness": 0.0,
"clearcoatSpecularLevel": 0.0,
"clearcoatNormal": 0.0,
"transmission": 0.0,
"thickness": 0.0,
"attenuationColor": 0.0,
"scatteringColor": 0.0,
"scatteringDistanceScale": 0.0,
"sheenColor": 0.0,
"sheenRoughness": 0.0,
"sheenOpacity": 0.0,
"specularColor": 0.0,
"specularValue": 0.0,
"anisotropy": 0.0,
"anisotropyAngle": 0.0,
"iridescence": 0.0,
"iridescenceThickness": 0.0
}
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
},
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Drop Uniform Texture Maps (Material Merger + Regenerator + Replacer) (Decimator)
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
Settings |
---|
Same Settings as in Drop Uniform Texture Maps Section within 3D Edit |
Keep Materials and UVs (Decimator)
Preserves original materials and texture coordinates.
Optional choice of:
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"keepMaterialsUVs": {
"forceNormalRebaking": false
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Force Rebaking Normal Maps | forceNormalRebaking | expert | boolean (false) | rebakes normal maps when preserving UVs, even if UV overlaps are detected |
Drop Uniform Texture Maps (Keep Materials and UVs) (Decimator)
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"keepMaterialsUVs": {
"dropTextures": {
"default": 0.0,
"baseColor": 0.0,
"opacity": 0.0,
"normal": 0.0,
"metallic": 0.0,
"roughness": 0.0,
"emissive": 0.0,
"occlusion": 0.0,
"displacement": 0.0,
"clearcoat": 0.0,
"clearcoatColor": 0.0,
"clearcoatRoughness": 0.0,
"clearcoatSpecularLevel": 0.0,
"clearcoatNormal": 0.0,
"transmission": 0.0,
"thickness": 0.0,
"attenuationColor": 0.0,
"scatteringColor": 0.0,
"scatteringDistanceScale": 0.0,
"sheenColor": 0.0,
"sheenRoughness": 0.0,
"sheenOpacity": 0.0,
"specularColor": 0.0,
"specularValue": 0.0,
"anisotropy": 0.0,
"anisotropyAngle": 0.0,
"iridescence": 0.0,
"iridescenceThickness": 0.0
},
"forceNormalRebaking": false
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Drop Uniform Texture Maps Section within 3D Edit |
Generate 2nd UV Atlas (Keep Materials and UVs) (Decimator)
Optionally generated a 2nd UV Set.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"keepMaterialsUVs": {
"atlasGenerator2ndUV": {
"textureBaker2ndUV": {
"bakingResolution2ndUV": {
"default": 2048
},
"aoBaker2ndUV": {
"strength": 0.5,
"replaceOriginal": true,
"filterRadius": 3.0,
"textureSamples": 48
},
"sampleCount": 4,
"texMapAutoScaling": true,
"bakeCombinedScene": false,
"powerOfTwoResolution": "ceil",
"inpaintingRadius": 32.0
},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2,
"atlasFactor": 1
},
"forceNormalRebaking": false
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Generate UV Atlas Section |
2nd UV Atlas Texture Baker (Keep Materials and UVs) (Decimator)
Texture Baking Settings for baking into 2nd UV atlas.
Settings |
---|
Same Settings as in Texture Baker Section |
2nd UV Texture Baking Resolution (Keep Materials and UVs) (Decimator)
Texture Baking Resolution for baking into 2nd UV atlas
Settings |
---|
Same Settings as in Texture Baking Resolution Section |
2nd UV Ambient Occlusion Map Baker (Keep Materials and UVs) (Decimator)
Bakes a new ambient occlusion map into the generated 2nd UV atlas. This is very useful if the 1st UV atlas is reserved due to UV atlas preservation or aggregation.
Settings |
---|
Same Settings as in Ambient Occlusion Map Baker Section |
UV Aggregator (Decimator)
UVs are preserved and textures are aggregated from different materials into a single atlas when possible.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"materialUVAggregator": {
"allowRectangularAtlases": true,
"forceNormalRebaking": false
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Allow Rectangular Atlases | allowRectangularAtlases | basic | boolean (true) | create rectangular POT textures when beneficial for auto sized textures |
Force Rebaking Normal Maps | forceNormalRebaking | expert | boolean (false) | rebakes normal maps when preserving UVs, even if UV overlaps are detected |
Drop Textures (Material and UV Aggregator) (Decimator)
The default setting (basic level) steers all existing texture map types. If specific threshold settings (advanced level) are set, the respective settings overwrite the default.
The threshold ( 0 to 1) reflects RGB values. If for example "default": 1.0 is set, all texture maps get converted to the respective values.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"materialUVAggregator": {
"dropTextures": {
"default": 0.0,
"baseColor": 0.0,
"opacity": 0.0,
"normal": 0.0,
"metallic": 0.0,
"roughness": 0.0,
"emissive": 0.0,
"occlusion": 0.0,
"displacement": 0.0,
"clearcoat": 0.0,
"clearcoatColor": 0.0,
"clearcoatRoughness": 0.0,
"clearcoatSpecularLevel": 0.0,
"clearcoatNormal": 0.0,
"transmission": 0.0,
"thickness": 0.0,
"attenuationColor": 0.0,
"scatteringColor": 0.0,
"scatteringDistanceScale": 0.0,
"sheenColor": 0.0,
"sheenRoughness": 0.0,
"sheenOpacity": 0.0,
"specularColor": 0.0,
"specularValue": 0.0,
"anisotropy": 0.0,
"anisotropyAngle": 0.0,
"iridescence": 0.0,
"iridescenceThickness": 0.0
},
"allowRectangularAtlases": true,
"forceNormalRebaking": false
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Drop Uniform Texture Maps Section within 3D Edit |
Generate 2nd UV Atlas (Material and UV Aggregator) (Decimator)
Optionally generated a 2nd UV Set.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"decimator": {
"target": {
"faces": {
"value": 1
},
"deviation": {
"value": 0.0
}
},
"materialOptimization": {
"materialUVAggregator": {
"atlasGenerator2ndUV": {
"textureBaker2ndUV": {
"bakingResolution2ndUV": {
"default": 2048
},
"aoBaker2ndUV": {
"strength": 0.5,
"replaceOriginal": true,
"filterRadius": 3.0,
"textureSamples": 48
},
"sampleCount": 4,
"texMapAutoScaling": true,
"bakeCombinedScene": false,
"powerOfTwoResolution": "ceil",
"inpaintingRadius": 32.0
},
"method": "isometric",
"segmentationCutAngle": 88.0,
"segmentationChartAngle": 130.0,
"maxAngleError": 114.0,
"maxPrimitivesPerChart": 10000,
"cutOverlappingPieces": true,
"atlasMode": "separateAlpha",
"allowRectangularAtlases": false,
"packingResolution": 1024,
"packingPixelDistance": 2,
"atlasFactor": 1
},
"allowRectangularAtlases": true,
"forceNormalRebaking": false
}
},
"preserveTopology": false,
"preserveNormals": false,
"preserveMeshBorders": true,
"preserveMaterialBorders": false,
"collapseUnconnectedVertices": true,
"boundaryPreservationFactor": 0.50,
"collapseDistanceThreshold": 0.005,
"method": "quadric"
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Settings |
---|
Same Settings as in Generate UV Atlas Section |
2nd UV Atlas Texture Baker (Material and UV Aggregator) (Decimator)
Texture Baking Settings for baking into 2nd UV atlas.
Settings |
---|
Same Settings as in Texture Baker Section |
2nd UV Texture Baking Resolution (Material and UV Aggregator) (Decimator)
Texture Baking Resolution for baking into 2nd UV atlas
Settings |
---|
Same Settings as in Texture Baking Resolution Section |
2nd UV Ambient Occlusion Map Baker (Material and UV Aggregator) (Decimator)
Bakes a new ambient occlusion map into the generated 2nd UV atlas. This is very useful if the 1st UV atlas is reserved due to UV atlas preservation or aggregation.
Settings |
---|
Same Settings as in Ambient Occlusion Map Baker Section |
Animation Optimization 🏃
Settings for animation optimization.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"optimize": {
"animationOptimization": {
"simplification": "conservative"
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Animation Curve Simplification | simplification | basic | string [conservative, aggressive, extreme] (conservative) | specify how much to simplify animation curves |
Modifier
Optional additional optimization which will alter the output data according to the given modifier type.
All modifiers take effect after the Optimize and Export settings and generally try to respect the settings (e.g compression, texture map formats etc.).
However in a lot of cases the modifiers will overwrite settings which need to be altered to achieve a certain modifier goal (e.g. a certain file size or size on screen resolution etc.).
If no optimization settings are set, the modifiers will still optimize to the given target if needed (e.g. a certain number of MB). In that case default optimization settings are utilized.
File Size 💾
Modifier which alters the optimization settings in order to meet a given maximum file size (MB).
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"modifier": {
"filesize": {
"maxMegabytesOnDisk": 5.0
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Maximum Megabytes On Disk | maxMegabytesOnDisk | basic | number [>= 0.1] (5) | Limits the maximum allowed MB size on disk for the given output asset |
Size on Screen 💻
Modifier which utilizes mesh deviation and pixel per unit metric in order to calculate the optimal mesh and texture resolution for a given display size on screen (px).
The pixel target is limited to one value, which is used for width and height of the given size on screen.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"modifier": {
"screensize": {
"pixelTarget": 1024.0
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Pixel Target | screensize | basic | number [>= 0 AND <= 7680] (1024) | Target size on screen in pixel (width and height) |
Export 📤
Specification and customization of export options.
The 🔶RapidPipeline Blender Plugin does exchange data based on the glTF format and thus will not utilize any export settings for formats other than glTF, glb.
Export Slot
Export slot for defining an export format as well as general and format specific export settings.
Each export slot is an array item. At least one export slot is required.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
File Name | fileName | advanced | string [pattern: ^[a-zA-Z0-9_]*$] | File Name for all written output formats |
Preserve Texture File Names | preserveTextureFilenames | basic | boolean (false) | Preserves Texture File Names if possible |
Texture Map File Prefix | textureMapFilePrefix | advanced | string [pattern: ^[a-zA-Z0-9_]*$] | prefix to be used for texture map names |
Re-Encode Textures | reencodeTextures | expert | string [auto, never, copyLossy, always] (auto) | specify when to copy or re-encode texture files |
Discard on Export
Discard properties on export.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Discard unused UVs | unusedUVs | expert | boolean (false) | Discards UV coordinates which are not used by any material(s) |
Format
File format to be exported.
Also defines the name for the respective output sub-directory (e.g. if only one export slot is used which defines the glTF
format, the default output from rpdx will be output/0_gltf/...
).
glTF, glb, vrm
glTF
Writes out and sets settings for the GL Transmission Format - glTF.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
- 🔶 In the Blender Plugin:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"gltf": {
"pbrMaterial": {
"maxTextureResolution": {
"default": 16384
},
"textureFormat": {
"default": "auto"
},
"textureCompression": {
"jpeg": {
"quality": 90,
"qualityNormals": 95
},
"webp": {
"quality": 95,
"qualityNormals": 95
},
"ktx": {
"compressionSpeed": 2,
"quality": 128,
"uastcQuality": "default",
"mipmapCount": 2
}
},
"separateOcclusionMap": false,
"excludePbrExtensions": false,
"forceDoubleSidedMaterials": false,
"forceUnlitMaterials": false,
"convertMetalRoughness": false
},
"geometryCompression": "none",
"excludeTangents": true,
"draco": {
"positionQuantization": 14,
"normalQuantization": 10,
"uvQuantization": 12,
"boneWeightsQuantization": 12
}
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Geometry Compression | geometryCompression | basic | string [none, draco, dracoLossy] (none) | desired geometry compression (currently only available for GLTF/GLB export) |
Exclude Tangents | excludeTangents | advanced | boolean (true) | prevents export of tangent data, expects render client to compute them in MikkTSpace |
Draco Compression Settings
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Position Quantization | positionQuantization | expert | integer [>= 1 && <= 32] (14) | bits per position vertex attribute |
Normal Quantization | normalQuantization | expert | integer [>= 1 && <= 32] (10) | bits per normal vertex attribute |
UV Quantization | uvQuantization | expert | integer [>= 1 && <= 32] (12) | bits per UV vertex attribute |
Bone Weight Quantization | boneWeightsQuantization | expert | integer [>= 1 && <= 32] (12) | bits per bone weights vertex attribute |
glTF PBR Material
Settings for the glTF PBR Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Separate Occlusion Map | separateOcclusionMap | basic | boolean (false) | export a occlusion as a separate map instead of including it in the ORM |
Exclude Material Extensions on Export | excludePbrExtensions | advanced | boolean (false) | If true, no glTF material PBR extensions are exported |
Force Double Sided Materials | forceDoubleSidedMaterials | advanced | boolean (false) | export all materials as double sided |
Force Unlit Materials | forceUnlitMaterials | advanced | boolean (false) | enables that all materials are specified as unlit, for .gltf/.glb export |
Convert to MetalRoughness | convertMetalRoughness | expert | boolean (false) | if true, materials are always converted from spec/gloss to rough/metal |
Texture Format
Format for exported texture maps.
Part of glTF PBR Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Texture Map Format | default | basic | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | default format for exported texture maps |
Base Color Map Format | baseColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported base color maps |
MetallicRoughness Map Format | metallicRoughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported metallicRoughness maps |
Occlusion Map Format | occlusion | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported occlusion maps |
Emissive Map Format | emissive | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported emissive maps |
Normal Map Format | normal | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported normal maps |
Clearcoat Map Format | clearcoat | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported clearcoat maps |
Clearcoat Roughness Map Format | clearcoatRoughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported clearcoat roughness maps |
Clearcoat Normal Map Format | clearcoatNormal | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported clearcoat normal maps |
Transmission Map Format | transmission | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported transmission maps |
Sheen Color Map Format | sheenColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported sheen color maps |
Sheen Roughness Map Format | sheenRoughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported sheen roughness maps |
Specular Map Format | specular | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported specular maps |
Specular Color Map Format | specularColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported specular color maps |
Thickness Map Format | thickness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported thickness maps |
Iridescence Map Format | iridescence | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported iridescence maps |
Iridescence Thickness Map Format | iridescenceThickness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported iridescence thickness maps |
Diffuse Color Map Format | diffuse | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported diffuse color maps |
SpecularGlossiness Map Format | specularGlossiness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for specularGlossiness maps |
Maximum Texture Resolution
Settings for the maximum resolution for exported texture maps.
Part of glTF PBR Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Maximum Texture Map Resolution | default | basic | integer [>= 0 && <= 16384] (16384) | default maximum resolution for exported texture maps |
Maximum Base Color Map Resolution | baseColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported base color maps |
Maximum MetallicRoughness Map Resolution | metallicRoughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported metallicRoughness maps |
Maximum Occlusion Map Resolution | occlusion | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported occlusion maps |
Maximum Emissive Map Resolution | emissive | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported emissive maps |
Maximum Normal Map Resolution | normal | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported normal maps |
Maximum Clearcoat Map Resolution | clearcoat | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported clearcoat maps |
Maximum Clearcoat Roughness Map Resolution | clearcoatRoughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported clearcoat roughness maps |
Maximum Clearcoat Normal Map Resolution | clearcoatNormal | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported clearcoat normal maps |
Maximum Transmission Map Resolution | transmission | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported transmission maps |
Maximum Sheen Color Map Resolution | sheenColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported sheen color maps |
Maximum Sheen Roughness Map Resolution | sheenRoughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported sheen roughness maps |
Maximum Specular Map Resolution | specular | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported specular maps |
Maximum Specular Color Map Resolution | specularColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported specular color maps |
Maximum Thickness Map Resolution | thickness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported thickness maps |
Maximum Iridescence Map Resolution | iridescence | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported iridescence maps |
Maximum Iridescence Thickness Map Resolution | iridescenceThickness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported iridescence thickness maps |
Maximum Diffuse Color Map Resolution | diffuse | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported diffuse color maps |
Maximum SpecularGlossiness Map Resolution | specularGlossiness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported specularGlossiness maps |
Texture Compression Settings
Texture compression settings for jpg, webp and ktx texture compression formats.
Part of glTF PBR Material.
JPG Compression Settings
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
JPG Compression Quality | quality | advanced | integer [>= 1 && <= 100] (90) | quality (in percent) of images exported as JPG |
JPG Compression Normal Quality | qualityNormals | advanced | integer [>= 1 && <= 100] (95) | quality (in percent) of images with normal data exported as JPG |
WebP Compression Settings
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
WebP Compression Quality | quality | advanced | integer [>= 1 && <= 100] (93) | quality (in percent) of images exported as WebP |
WebP Compression Normal Quality | qualityNormals | advanced | integer [>= 1 && <= 100] (95) | quality (in percent) of images with normal data exported as WebP |
KTX Compression Settings
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
KTX Compression Speed | compressionSpeed | advanced | integer [>= 0 && <= 5] (2) | compression speed for KTX (0 = fast, 5 = slow but higher quality) |
KTX Compression Quality | quality | advanced | integer [>= 0 && <= 255] (128) | compression quality for KTX (0 = lowest quality but max compression, 255 = max quality) |
KTX UASTC Compression Quality | uastcQuality | advanced | string [default, high, balanced, compressed, high+compressed] (default) | compression quality for UASTC KTX |
Mip Map Count | mipmapCount | advanced | integer [>= 0 && <= 2147483647] (2) | number of mipmap levels generated on export (only supported for KTX2 files) |
glb
Writes out and sets settings for the GL Transmission Binary Format - glb.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"glb": {
"pbrMaterial": {},
"geometryCompression": "none",
"excludeTangents": true,
"draco": {
"positionQuantization": 14,
"normalQuantization": 10,
"uvQuantization": 12,
"boneWeightsQuantization": 12
}
}
}
}
]
}
Settings |
---|
Same Settings as in glTF Format |
vrm
Writes out and sets settings for the Virtual Reality Model Format - vrm.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"vrm": {
"pbrMaterial": {},
"geometryCompression": "none",
"excludeTangents": true,
"draco": {
"positionQuantization": 14,
"normalQuantization": 10,
"uvQuantization": 12,
"boneWeightsQuantization": 12
}
}
}
}
]
}
Settings |
---|
Same Settings as in glTF Format |
usd, usda, usdc, usdz
usd
Writes out and sets settings for the Universal Scene Description Format - usd.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"usdz": {
"usdPreviewSurface": {
"maxTextureResolution": {
"default": 16384
},
"textureFormat": {
"default": "auto"
},
"textureCompression": {
"jpeg": {
"quality": 90,
"qualityNormals": 95
},
"webp": {
"quality": 95,
"qualityNormals": 95
},
"ktx": {
"compressionSpeed": 2,
"quality": 128,
"uastcQuality": "default",
"mipmapCount": 2
}
}
},
"usdProfile": "arkit",
"usdUnits": "cm",
"forceDoubleSidedMeshes": false
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
USD Export Profile | usdProfile | string [arkit, generic, omniverse] (arkit) | desired USD output usage | |
USD Units | usdUnits | string [cm, m, original] (cm) | desired USD system unit | |
Exclude Tangents | excludeTangents | boolean (true) | prevents export of tangent data, expects render client to compute them in MikkTSpace | |
Force Double Sided Meshes | forceDoubleSidedMeshes | boolean (false) | export all meshes as double sided |
USD Preview Surface Material
Settings for the USD Preview Surface Material.
Texture Format
Format for exported texture maps.
Part of USD Preview Surface Material.
Other Software supporting USD might not support certain texture formats such as webp and ktx.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Texture Map Format | default | basic | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | default format for exported texture maps |
Diffuse Color Map Format | diffuseColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported diffuse color maps |
Metallic Map Format | metallic | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported metallic maps |
Roughness Map Format | roughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported roughness maps |
Emissive Color Map Format | emissiveColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported emissive color maps |
Normal Map Format | normal | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported normal maps |
Clearcoat Map Format | clearcoat | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported clearcoat maps |
Clearcoat Roughness Map Format | clearcoatRoughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported clearcoat roughness maps |
Occlusion Map Format | occlusion | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported occlusion maps |
Displacement Map Format | displacement | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported displacement maps |
Maximum Texture Resolution
Settings for the maximum resolution for exported texture maps.
Part of USD Preview Surface Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Maximum Texture Map Resolution | default | basic | integer [>= 0 && <= 16384] (16384) | default maximum resolution for exported texture maps |
Maximum Diffuse Color Map Resolution | diffuseColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported base color maps |
Maximum Metallic Map Resolution | metallic | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported metallic maps |
Maximum Roughness Map Resolution | roughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported roughness maps |
Maximum Emissive Color Map Resolution | emissiveColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported emissive color maps |
Maximum Normal Map Resolution | normal | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported normal maps |
Maximum Clearcoat Map Resolution | clearcoat | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported clearcoat maps |
Maximum Clearcoat Roughness Map Resolution | clearcoatRoughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported clearcoat roughness maps |
Maximum Occlusion Map Resolution | occlusion | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported occlusion maps |
Maximum Displacement Map Resolution | displacement | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported displacement maps |
Texture Compression Settings
Texture compression settings for jpg, webp and ktx texture compression formats.
Part of USD Preview Surface Material.
Settings |
---|
Same Settings as in glTF PBR Material |
Adobe Standard Material
Settings for the Adobe Standard Material.
The Adobe Standard Material will be written in addition to the USD Preview Surface Material into usd exports. Currently ASM is only supported if the input already carries any ASM nodes.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"usdz": {
"usdPreviewSurface": {
"maxTextureResolution": {
"default": 16384
},
"textureFormat": {
"default": "auto"
},
"textureCompression": {
"jpeg": {
"quality": 90,
"qualityNormals": 95
},
"webp": {
"quality": 95,
"qualityNormals": 95
},
"ktx": {
"compressionSpeed": 2,
"quality": 128,
"uastcQuality": "default",
"mipmapCount": 2
}
}
},
"adobeStandardMaterial": {},
"usdProfile": "arkit",
"usdUnits": "cm",
"forceDoubleSidedMeshes": false
}
}
}
]
}
Texture Format
Format for exported texture maps.
Part of Adobe Standard Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Texture Map Format | default | basic | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | default format for exported texture maps |
Base Color Map Format | baseColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported base color maps |
Opacity Map Format | opacity | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported opacity maps |
Roughness Map Format | roughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported roughness maps |
Metallic Map Format | metallic | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported metallic maps |
Specular Level Map Format | specularLevel | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported specular level maps |
Specular Edge Color Map Format | specularEdgeColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported specular edge color maps |
Normal Map Format | normal | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported normal maps |
Height Map Format | height | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported height maps |
Anisotropy Level Map Format | anisotropyLevel | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported anisotropy level maps |
Anisotropy Angle Map Format | anisotropyAngle | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported anisotropy angle maps |
Emissive Map Format | emissive | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported emissive maps |
Sheen Opacity Map Format | sheenOpacity | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported sheen opacity maps |
Sheen Color Map Format | sheenColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported sheen color maps |
Sheen Roughness Map Format | sheenRoughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported sheen roughness maps |
Transulcency Map Format | translucency | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported translucency maps |
Absorption Color Map Format | absorptionColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported absorption color maps |
Scattering Color Map Format | scatteringColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported scattering color maps |
Scattering Distance Scale Map Format | scatteringDistanceScale | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported scattering distance scale maps |
Coat Opacity Map Format | coatOpacity | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported coat opacity maps |
Coat Color Map Format | coatColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported coat color maps |
Coat Roughness Map Format | coatRoughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported coat roughness maps |
Coat Specular Level Map Format | coatSpecularLevel | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported coat specular maps |
Coat Normal Map Format | coatNormal | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported coat normal maps |
Ambient Occlusion Map Format | ambientOcclusion | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported ambient occlusion maps |
Volume Thickness Map Format | volumeThickness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported volume thickness maps |
Maximum Texture Resolution
Settings for the maximum resolution for exported texture maps.
Part of Adobe Standard Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Maximum Texture Map Resolution | default | basic | integer [>= 0 && <= 16384] (16384) | default maximum resolution for exported texture maps |
Maximum Base Color Map Resolution | baseColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported base color maps |
Maximum Opacity Map Resolution | opacity | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported opacity maps |
Maximum Roughness Map Resolution | roughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported roughness maps |
Maximum Metallic Map Resolution | metallic | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported metallic maps |
Maximum Specular Level Map Resolution | specularLevel | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported specular level maps |
Maximum Specular Edge Color Map Resolution | specularEdgeColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported specular edge color maps |
Maximum Normal Map Resolution | normal | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported normal maps |
Maximum Height Map Resolution | height | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported height maps |
Maximum Anisotropy Level Map Resolution | anisotropyLevel | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported anisotropy level maps |
Maximum Anisotropy Angle Map Resolution | anisotropyAngle | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported anisotropy angle maps |
Maximum Emissive Map Resolution | emissive | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported emissive maps |
Maximum Sheen Opacity Map Resolution | sheenOpacity | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported sheen opacity maps |
Maximum Sheen Color Map Resolution | sheenColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported sheen color maps |
Maximum Sheen Roughness Map Resolution | sheenRoughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported sheen roughness maps |
Maximum Transulcency Map Resolution | translucency | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported translucency maps |
Maximum Absorption Color Map Resolution | absorptionColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported absorption color maps |
Maximum Scattering Color Map Resolution | scatteringColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported scattering color maps |
Maximum Scattering Distance Scale Map Resolution | scatteringDistanceScale | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported scattering distance scale maps |
Maximum Coat Opacity Map Resolution | coatOpacity | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported coat opacity maps |
Maximum Coat Color Map Resolution | coatColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported coat color maps |
Maximum Coat Roughness Map Resolution | coatRoughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported coat roughness maps |
Maximum Coat Specular Level Map Resolution | coatSpecularLevel | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported coat specular maps |
Maximum Coat Normal Map Resolution | coatNormal | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported coat normal maps |
Maximum Ambient Occlusion Map Resolution | ambientOcclusion | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported ambient occlusion maps |
Maximum Volume Thickness Map Resolution | volumeThickness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported volume thickness maps |
Texture Compression Settings
Texture compression settings for jpg, webp and ktx texture compression formats.
Part of Adobe Standard Material.
Settings |
---|
Same Settings as in glTF PBR Material |
usda
Settings |
---|
Same Settings as in usd Format |
usdc
Settings |
---|
Same Settings as in usd Format |
usdz
Settings |
---|
Same Settings as in usd Format |
fbx
Writes out and sets settings for the Filmbox Format - fbx.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"fbx": {
"3dsMaxPhysicalMaterial": {
"maxTextureResolution": {
"default": 16384
},
"textureFormat": {
"default": "auto"
},
"textureCompression": {
"jpeg": {
"quality": 90,
"qualityNormals": 95
},
"webp": {
"quality": 95,
"qualityNormals": 95
},
"ktx": {
"compressionSpeed": 2,
"quality": 128,
"uastcQuality": "default",
"mipmapCount": 2
}
}
},
"units": "m",
"unitConversion": true,
"axisSystem": "original",
"excludeTangents": true,
"flipNormalmapY": false,
"preferBinaryFormat": true
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
FBX Units | units | basic | string [mm, dm, cm, m, km, inch, foot, mile, yard] (m) | desired FBX system unit |
FBX Deep Unit Conversion | unitConversion | advanced | boolean (true) | deep convert scene units instead of scaling root node |
FBX Axis System | axisSystem | advanced | string [original, mayaZUp, mayaYUp, max, motionbuilder, opengl, directx, lightwave] (original) | desired FBX axis system |
Exclude Tangents | excludeTangents | advanced | boolean (false) | prevents export of tangent data, expects render client to compute them in MikkTSpace |
FBX Flip Normal Map Y | flipNormalmapY | expert | boolean (false) | flip FBX normalmaps Y axis on export |
Prefer Binary Format | preferBinaryFormat | expert | boolean (true) | turns export in binary format on/off (if available) |
3ds Max Physical Material
Settings for the 3ds Max Physical Material.
This material model is only fully supported by Autodesk 3ds Max.
Texture Format
Part of 3ds Max Physical Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Texture Map Format | default | basic | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | default format for exported texture maps |
Base Color Map Format | baseColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported base color maps |
Cutout Map Format | cutout | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported cutout maps |
Metalness Map Format | metalness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported metalness maps |
Roughness Map Format | roughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported roguhness maps |
Emission Color Map Format | emitColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported emission color maps |
Bump Map Format | bump | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported bump maps |
Coating Map Format | coat | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported coating maps |
Coating Roughness Map Format | coatRough | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported coating roughness maps |
Sheen Color Map Format | sheenColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported sheen color maps |
Sheen Roughness Map Format | sheenRough | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported sheen roughness maps |
Transparency Map Format | transparency | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported transparency maps |
Reflection Color Format | reflColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported reflection color maps |
Diffuse Roughness Format | diffRough | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported diffuse roughness maps |
Maximum Texture Resolution
Part of 3ds Max Physical Material.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Maximum Texture Map Resolution | default | basic | integer [>= 0 && <= 16384] (16384) | default maximum resolution for exported texture maps |
Maximum Base Color Map Resolution | baseColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported base color maps |
Maximum Cutout Map Resolution | cutout | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported cutout maps |
Maximum Metalness Map Resolution | metalness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported metalness maps |
Maximum Roughness Map Resolution | roughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported roguhness maps |
Maximum Emission Color Map Resolution | emitColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported emission color maps |
Maximum Bump Map Resolution | bump | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported bump maps |
Maximum Coating Map Resolution | coat | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported coating maps |
Maximum Coating Roughness Map Resolution | coatRough | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported coating roughness maps |
Maximum Sheen Color Map Resolution | sheenColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported sheen color maps |
Maximum Sheen Roughness Map Resolution | sheenRough | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported sheen roughness maps |
Maximum Transparency Map Resolution | transparency | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported transparency maps |
Maximum Reflection Color Resolution | reflColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported reflection color maps |
Maximum Diffuse Roughness Resolution | diffRough | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported diffuse roughness maps |
Texture Compression Settings
Texture compression settings for jpg, webp and ktx texture compression formats.
Part of 3ds Max Physical Material.
Settings |
---|
Same Settings as in glTF PBR Material |
obj
Writes out and sets settings for the Wavefront Object File Format - obj.
- 🖹 In the JSON Settings File:
- 🗔 In the Web Platform UI:
{
"export": [
{
"fileName": "",
"preserveTextureFilenames": false,
"textureMapFilePrefix": "",
"reencodeTextures": "auto",
"discard": {
"unusedUVs": false
},
"format": {
"obj": {
"mtl": {
"maxTextureResolution": {
"default": 16384
},
"textureFormat": {
"default": "auto"
},
"textureCompression": {
"jpeg": {
"quality": 90,
"qualityNormals": 95
},
"webp": {
"quality": 95,
"qualityNormals": 95
},
"ktx": {
"compressionSpeed": 2,
"quality": 128,
"uastcQuality": "default",
"mipmapCount": 2
}
},
"displacementToNormalMapAlpha": false
},
"preferredUVChannel": 0
}
}
}
]
}
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Preferred UV Channel | preferredUVChannel | integer | integer [>= 0] (0) | if an export format does not support multiple UV channels, pick the one set here |
mtl
The .mtl Material file written out with .obj files.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Displacement to Normal Map Alpha Channel | displacementToNormalMapAlpha | basic | boolean (false) | bakes displacement values into the normal map's alpha channel |
PBR material references
As the PBR material standard is not streamlined with .obj and .mtl files, we recommend using the following syntax (reference: https://en.wikipedia.org/wiki/Wavefront_.obj_file#Physically-based_rendering):
Texture | Single Value | Map Input | example |
---|---|---|---|
basecolor | Kd | map_Kd | map_kd material0_albedo.jpg |
normal | / | norm | norm material0_normal.png |
occlusion | / | occlusion | occlusion material0_occlusion.jpg |
metallic | Pm | map_Pm | map_Pm material0_metallic.jpg |
roughness | Pr | map_Pr | map_Pr material0_roughness.jpg |
emission | Ke | map_ke | map_Ke material0_emission.jpg |
Texture Format
Referenced in .mtl Material File.
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Texture Map Format | default | basic | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | default format for exported texture maps |
Base Color Map Format | baseColor | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported base color maps |
Metallic Map Format | metallic | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported metallic maps |
Roughness Map Format | roughness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported roguhness maps |
Occlusion Map Format | occlusion | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported occlusion maps |
Emissive Map Format | emissive | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported emissive maps |
Normal Map Format | normal | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported normal maps |
Displacement Map Format | displacement | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported displacement maps |
Diffuse Map Format | diffuse | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported diffuse maps |
Specular Map Format | specular | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for exported specular maps |
Glossiness Map Format | glossiness | advanced | string [auto, jpg, png, png8, webp, ktx-basis-etc1s, ktx-basis-uastc] (auto) | format for glossiness maps |
Maximum Texture Resolution
Setting Title | Setting Name | Level | Type [Range ] (Default ) | Description |
---|---|---|---|---|
Default Maximum Texture Map Resolution | default | basic | integer [>= 0 && <= 16384] (16384) | default maximum resolution for exported texture maps |
Maximum Base Color Map Resolution | baseColor | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported base color maps |
Maximum Metallic Map Resolution | metallic | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported metallic maps |
Maximum Roughness Map Resolution | roughness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported roguhness maps |
Maximum Occlusion Map Resolution | occlusion | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported occlusion color maps |
Maximum Emissive Map Resolution | emissive | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported emissive maps |
Maximum Normal Map Resolution | normal | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported normal maps |
Maximum Displacement Map Resolution | displacement | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported displacement maps |
Maximum Diffuse Map Resolution | diffuse | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported diffuse maps |
Maximum Specular Map Resolution | specular | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported specular maps |
Maximum Glossiness Map Resolution | glossiness | advanced | integer [>= 0 && <= 16384] (16384) | maximum resolution for exported glossiness maps |
Texture Compression Settings
Texture compression settings for jpg, webp and ktx texture compression formats.
Settings |
---|
Same Settings as in glTF PBR Material |
other formats
Documentation coming Soon ✨✨✨
For now check out the 3D Processing Schema