Skip to main content

Optimize Settings Guide

3D Model Optimization Method

Optimization has two main branches:

  1. Material Optimization: Bake materials into new PBR textures, using existing tiled texture coordinates, or generating new atlas UVs. This can help improve performance by reducing the number of materials and textures.

  2. Mesh and Material Optimization: When meshes are being optimized, RapidPipeline attempts to preserve materials, textures, and UVs. Optionally, materials can be merged together or replaced altogether. But optimization always considers materials when they are present.

Material Optimization

Materials can be optimized independently if desired, without changing the mesh topology.

Material Merger

  • Material Merging
  • Keep Tiled UVs
  • Tiling Threshold
Setting TitleSetting NameLevelType [Range] (Default)Description
Material MergingmaterialMergingMethodbasicstring [auto] (auto)method to define how materials are merged
Keep Tiled UVskeepTiledUVsbasicBoolean (false)preserves repeating texture coordinates
Tiling ThresholdtilingThresholdadvancednumber [>= 1 && <= 1.7976931348623157e+308] (1.5)UV extent after which a UV channel is considered repeating (= tiling texture)
Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
"normalMap": {}
}
}
},
"keepTiledUVs": false,
"tilingThreshold": 1.5
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}

Keep Tiled UVs

Preserves repeating texture coordinates (UVs) and associated texture maps. UVs are considered tiling if they extend 150% outside the 0-1 UV space.

Material Regenerator

Merged or altered materials inherit the original material properties, or alternatively get assigned new materials and UVs.

The following options are available:

Generate UV Atlas + Texture Baker

Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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": {}
}
}
}
]
}

UV Atlas Settings

Setting TitleSetting NameLevelType [Range] (Default)Description
Unwrapping Methodmethodexpertstring [isometric, forwardBijective, fixedBoundary, fastConformal, conformal (isometric)method to be used for UV unwrapping
Segmentation Cut Angle (Degrees)segmentationCutAngleadvancednumber [>= 0 && <= 180] (88)threshold (degrees) for cutting sharp edges
Segmentation Chart Angle (Degrees)segmentationChartAngleadvancednumber [>= 0 && <= 180] (130)threshold (degrees) for overall curvature of 3D charts
Maximum Angle Error (Degrees)maxAngleErrorexpertnumber [>= 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 ChartmaxPrimitivesPerChartexpertinteger [>= 1] (10000)limits max number primitives in any UV chart
Cut Overlapping UV PiecescutOverlappingPiecesadvancedBoolean (true)turns removal of UV self-overlaps through cutting on/off
UV Atlas ModeatlasModebasicstring [single, separateAlpha, separateNormals, separateAlphaNormals, separateMaterials] (separateAlpha)mode used to assign meshes to atlases
Allow Rectangular AtlasesallowRectangularAtlasesadvancedboolean (false)create rectangular POT textures when beneficial for auto sized textures
Packing ResolutionpackingResolutionbasicinteger [>= 0 && <= 16384] (1024)resolution at which packing will be computed
Packing Pixel DistancepackingPixelDistanceadvancedinteger [>= 1 && <= 16384] (2)distance in pixels packing will keep at reference packing resolution
Multiple Atlas FactoratlasFactorbasicinteger [>= 0 && <= 16] (1)divide each created atlas into n new atlases

UV Atlas Mode

How many materials are created, each with its own UV atlas and set of PBR textures (color, normal, etc.). By default atlases are separated by opacity (separateAlpha).

  • single: Bake a single material for the whole asset.

  • separateAlpha: Bake two materials, one for parts using alpha, and the other without alpha. This reduces texture file size because the non-transparent material doesn't need an alpha channel. If no alpha was present in the input, then only one material is baked.

  • separateNormals: Bake two materials, one for parts with textures already, and the other for untextured parts. For the untextured parts, this bakes normal maps without having to bake any other PBR textures.

  • separateAlphaNormals: This combines the features of both separateAlpha and separateNormals.

  • separateMaterials: Bake the same number of materials as the input.

Multiple Atlas Factor

Increases the number of texture sets. Each material atlas is divided by this value, so a value of 2 means each atlas becomes two atlases.

This can help improve texture resolution in the output. This can be paired with a lower value for 'Texture Baking Resolution' as a good alternative to using fewer atlases with a higher texture resolution (e.g. two 2048s vs. one 4096).

Texture Baker Settings

Setting TitleSetting NameLevelType [Range] (Default)Description
Baking Sample CountsampleCountbasicinteger [>= 1 && <= 16] (4)number of samples per texel for texture baking
Texture Map Auto ScalingtexMapAutoScalingbasicboolean (true)if true, each texture's pixel budget is divided by all atlases
Bake Combined ScenebakeCombinedSceneadvancedboolean (false)bakes the scene as a single entity even if its meshes have transformations
Bake Topological Holes to Alpha MaptopologicalHolesToAlphaadvancedboolean (false)capture areas where the corresponding source surface was not found on an alpha mask
Power of Two ResolutionpowerOfTwoResolutionexpertstring [none, ceil, floor, round] (ceil)ensures that textures have power of two dimensions
Inpainting RadiusinpaintingRadiusexpertnumber [>= 0 && <= 32] (32)radius, in pixels, for texture inpainting

Texture Resolution Auto Scaling

When enabled the value for 'Texture Baking Resolution' is used for the largest atlas in terms of occupied 3D surface. Materials on smaller meshes will use smaller power of 2 resolutions, according to their size in 3D space.

When disabled, all atlases will use the same texture resolution, as set by the 'Texture Baking Resolution' parameter.

Texture Baking Resolution

Resolution for the new baked textures. Default is 2048x2048 pixels.

It is usually best to enter a powers-of-two number, for example 256, 512, 1024, etc.

Using a non-powers-of-two value can generate non-square dimensions when beneficial, if 'Texture Resolution Auto Scaling' is enabled.

Setting TitleSetting NameLevelType [Range] (Default)Description
Default Texture Map Resolutiondefaultbasicinteger [>= 0 && <= 16384] (2048)default resolution for baked texture maps

Normal Map Baking Settings

Normal Map Mode

Normal map baking can be either always enforced, only performed if the input material already has normal maps, or not performed at all.

  • always: Normal maps are baked for every material. The baked maps will include details from both the original normal maps and the input geometry.

  • ifInInput: Normal maps are only baked for materials that have normal maps already.

  • never: Normal maps are not baked.

Setting TitleSetting NameLevelType [Range] (Default)Description
Normal Map Baking Modemodebasicstring [always, ifInInput, never (always)when to (re)bake normal maps
Recompute NormalsrecomputeNormalsadvancedboolean (true)recompute normals before baking
Skip Normals Roughness ThresholdskipNormalsRoughnessThresholdadvancednumber [>= 0 && <= 1] (0)roughness value below which difference in normals between source/target are not baked
Normal Map ScalenormalMapScaleexpertnumber [>= 2.2250738585072014e-308 && <= 1.7976931348623157e+308] (1)normal scaling for the baked normal map (only used on glTF output)
Tangent Space Normal MapstangentSpaceexpertboolean (true)switches between tangent-/object-space normal maps

Occlusion Map Baking Settings

Bake Occlusion Map

Bakes an ambient occlusion texture.

If 'Preserve Tiling' is enabled, then a 2nd UV is generated using an 'atlas' layout and the occlusion is baked into it.

If 'Preserve Tiling' is disabled, the first UV is re-generated using an 'atlas' layout and the occlusion is baked into it.

Setting TitleSetting NameLevelType [Range] (Default)Description
Strengthstrengthbasicnumber [>= 0.1 && <= 1] (0.5)strength (intensity) for generated AO maps
Replace Original Ambient Occlusion MapreplaceOriginaladvancedboolean (true)computes a new AO map even if one is present in the input
Filter RadiusfilterRadiusexpertnumber [>= 0 && <= 16] (3)filter radius for smoothing the AO map (if any)
Texture SamplestextureSamplesexpertinteger [>= 8 && <= 64] (48)number of samples per texel for AO map generation (converted to a multiple of 8)

Material Replacer + Default Material (+ Unwrapping Options)

Identical to the same options within 3D Edit:

  • Default Material + generate UVs (Cube Unwrapping)
  • Default Material + generate UVs (Generate UV Atlas)
Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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": {}
}
}
}
]
}

Material Replacer + Drop Uniform Texture Maps

Identical to the same options within 3D Edit.

Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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": {}
}
}
}
]
}

Keep Materials and UVs

Preserves original materials and texture coordinates.

Optional choice of:

  • Drop Uniform Texture Maps
  • Generate 2nd UV Atlas
info

Currently 3D Processor can not preserve 2nd UV sets.

Setting TitleSetting NameLevelType [Range] (Default)Description
Force Rebaking Normal MapsforceNormalRebakingexpertboolean (false)rebakes normal maps when preserving UVs, even if UV overlaps are detected
Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"keepMaterialsUVs": {
"forceNormalRebaking": false
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}

Drop Uniform Texture Maps

Identical to the same options within 3D Edit.

2nd UV Atlas Texture Baker

Texture Baking Settings for baking into 2nd UV atlas.

Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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 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

Material and UV Aggregator

UVs are preserved and textures are aggregated from different materials into a single atlas when possible.

Optional choice of:

  • Drop Uniform Texture Maps
  • Generate 2nd UV Atlas
Setting TitleSetting NameLevelType [Range] (Default)Description
Allow Rectangular AtlasesallowRectangularAtlasesbasicboolean (true)create rectangular POT textures when beneficial for auto sized textures
Force Rebaking Normal MapsforceNormalRebakingexpertboolean (false)rebakes normal maps when preserving UVs, even if UV overlaps are detected
Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"optimize": {
"3dModelOptimizationMethod": {
"onlyMaterial": {
"materialUVAggregator": {
"allowRectangularAtlases": true,
"forceNormalRebaking": false
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}

Mesh and Material Optimization

Decimator


Simplifies a mesh by reducing the number of faces while preserving materials, UVs and textures. This is useful for reducing file size, and improving performance by reducing memory usage.

Vertices are collapsed and merged by distance and angle, while attempting to preserve the original volume and curvature. The decimator is capable of reducing mesh complexity while keeping important properties such as original UV coordinates, normals and topology in place.

Decimation is computed from the original mesh, therefore the quality of the result highly depends on the quality of the input topology.

Setting TitleSetting NameLevelType [Range] (Default)Description
Preserve TopologypreserveTopologybasicboolean (false)preserves topological features like holes during decimation
Preserve NormalspreserveNormalsbasicboolean (false)preserves vertex normals during decimation
Preserve Mesh BorderspreserveMeshBordersadvancedboolean (true)preserves borders (vertices) common between meshes
Preserve Material BorderspreserveMaterialBordersadvancedboolean (false)preserves mesh material borders during decimation
Collapse Unconnected VerticescollapseUnconnectedVerticesadvancedboolean (true)switches collapsing of nearby, unconnected vertices on/off
Boundary Preservation FactorboundaryPreservationFactorexpertnumber [>= 0 && <= 1] (0.5)factor to steer preservation of boundaries during decimation
Collapse Distance ThresholdcollapseDistanceThresholdexpertnumber [>= 0 && <= 0.1] (0.005)threshold w.r.t BBox diagonal for collapsing nearby vertices
Decimation Methodmethodexpertstring [quadric, edgeLength] (quadric)method to be used for decimation
Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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": {}
}
}
}
]
}

Face Target

The target amount of faces (triangles), default is 150,000 triangles. RapidPipeline will attempt to get as close as possible to the chosen value, though sometimes a mesh may require a slightly different final triangle count to preserve surface continuity.

Deviation Percentage

Target percentage of deviation relative to the original mesh. Smaller values tend to cause higher triangle counts.

Works in conjunction with face target as a cap. Depending on the deviation, the final face count can be lower or equal to the face count.

We recommend a percentage of 0.05% or less for complex highly detailed 3D assets, to achieve a reasonably small deviation. For a medium deviation from the input, we recommend a percentage around 0.3%.

Preserve Topology

Preserves topological features like holes during decimation.

Disabled by default, since this acts as a constraint on the decimation and thus the desired face target might not be reached.

In most cases it is recommended to decimate meshes without attempting to preserve the exact topology constraints from the input shapes. This allows the simplification algorithm to remove small holes or handles, for example, when creating a low-triangle approximation.

However for some applications and input models, it may be desired to better preserve the exact topology of the input shape. Preserve Topology applies limits on decimation that holes should never be closed, handles and different surface parts should never be merged, and geometric details like fine strands should be preserved.

Preserve Mesh Normals

Preserves vertex normals during decimation, rather than recalculating normals after merging vertices.

Disabled by default, since this acts as a constraint on the decimation and thus the desired face target might not be reached.

Generate UV Atlas (Decimator)

Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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": {}
}
}
}
]
}

Keep Materials and UVs (Decimator)

Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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": {}
}
}
}
]
}

UV Aggregator (Decimator)

Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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": {}
}
}
}
]
}

Remesher


Remeshes the original mesh and decimates to a face or vertices target value or percentage. The initial remeshing resolution can be configured with the resolution setting.

tip

Get started using the Remesher with the 3D Processor Blender Integration Remeshing Tutorial (Expert Mode) here. The techniques and configuration utilized is also compatible with the 3D Processor CLI rpdx.

info

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.

Setting TitleSetting NameLevelType [Range] (Default)Description
Remeshing Methodmethodbasicstring [voxelization, shrinkwrap] (voxelization)method for the initial remeshing process
Resolutionresolutionadvancedinteger [>= 0 && <= 11] (0)maximum octree depth (resolution) for the initial remeshing process (0=auto)
Filter Back ProjectedfilterBackProjectedbasicboolean (false)avoids reconstructing backside faces when remeshing
Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"optimize": {
"3dModelOptimizationMethod": {
"meshAndMaterialOptimization": {
"remesher": {
"target": {},
"method": "voxelization",
"resolution": 0,
"filterBackProjected": false,
"materialMerger": {
"materialRegenerator": {
"uvAtlasGenerator": {
"textureBaker": {
}
}
}
}
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}

caution

The setting filterBackProjected requires 3D Processing schema v1.3 (= rpdx v7.3.x) and applies only to method shrinkwrap.

Material Merger (Remesher)

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.

Material Regenerator + UV Atlas Generator + Texture Baker (Remesher)

Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"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,
"filterBackProjected": false
}
}
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}

caution

The Material Merger within Remesher does not have the option to preserve tiled UV coordinates due to the newly created mesh surface.

Animation Optimization

Settings for animation optimization.

Setting TitleSetting NameLevelType [Range] (Default)Description
Animation Curve Simplificationsimplificationbasicstring [conservative, aggressive, extreme] (conservative)specify how much to simplify animation curves
Examples: | JSON | WebUI | PluginUI |

{
"version": 1.4,
"optimize": {
"animationOptimization": {
"simplification": "conservative"
}
},
"export": [
{
"fileName": "",
"textureMapFilePrefix": "",
"discard": {},
"format": {
"gltf": {
"pbrMaterial": {}
}
}
}
]
}

Further Documentation

For the full Documentation on all available data operations commands and system settings, please refer to the CLI Commands Guide and 3D Processor System Schema & Settings.