Optimize Settings Guide
3D Model Optimization Method
Optimization has two main branches:
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.
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 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) |
Examples: | JSON | WebUI | PluginUI |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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
- Material Replacer + Default Material (+ Unwrapping Options)
- Material Replacer + Drop Uniform Texture Maps
Generate UV Atlas + Texture Baker
Examples: | JSON | WebUI | PluginUI |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 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 |
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 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 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 Title | Setting Name | Level | Type [Range] (Default) | Description |
|---|---|---|---|---|
| Default Texture Map Resolution | default | basic | integer [>= 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 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 |
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 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 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 |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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
Currently 3D Processor can not preserve 2nd UV sets.
| 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 |
Examples: | JSON | WebUI | PluginUI |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 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 |
Examples: | JSON | WebUI | PluginUI |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 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 |
Examples: | JSON | WebUI | PluginUI |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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 |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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.
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.
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 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 octree depth (resolution) for the initial remeshing process (0=auto) |
| Filter Back Projected | filterBackProjected | basic | boolean (false) | avoids reconstructing backside faces when remeshing |
Examples: | JSON | WebUI | PluginUI |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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": {}
}
}
}
]
}


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 |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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": {}
}
}
}
]
}


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 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 |
Examples: | JSON | WebUI | PluginUI |
- 🖹 JSON Settings File:
- 🗔 Web Platform UI:
- 🔶 Blender Add-On (Expert Mode):
{
"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.
The 3D Processor is available for multiple interfaces: