CLI Migration Guide
Introduction
This guide covers the process of upgrading the RapidCompact CLI v1.4.0-v6.x.x
(legacy) to the RapidPipeline 3D Processor CLI v7.0.0
and newer.
It also compares the differences between the versions in terms of commands and general CLI usage, settings and schemas, as well as the JSON
configuration settings files.
CLI Commands Differences
The 3D Processor CLI (v.7.0.0
+) and most of the available commands
and arguments
are not compatible with older versions of the RapidCompact CLI (legacy) and vice versa.
For converting commands
and configuration setting
JSON
files from RapidCompact (legacy) v1 - 6.x
to v7.0.0
and newer, please refer to the Conversion Script and Future Updates sections further below.
CLI Commands Comparison Overview
Even though certain legacy commands will not be directly supported within 3D Processor v7.0.0 and newer, most settings and commands can be converted through the Conversion Script.
Commands: General
RC 6.x Command | 3DP Command | additional info |
---|---|---|
-h [--help] | -i [ --help ] | same behavior |
-i [--import] | -i [ --import ] | same behavior |
-e [--export] | ✨ | re-introduction with 3DP v7.2.0 update, in v7.0.0 and 7.1.0 file exports are configured within the settings JSON files, documentation here |
-w [--export_web arg ] | ❌ | command retired |
-p [--print_info] | -p [ --print_info ] | same behavior |
--pop | ❌ | command retired, for certain operations such as LOD creation a new modifier (scheduled for v7.2.0 ) will replace the usage of this command |
--duplicate | ❌ | command retired, with 3DP this functionality is now automated depending on the utilized configuration settings |
--flatten | ❌ | command retired, with 3DP instead the sceneGraphFlattening object now performs the same operation |
--scale | ❌ | command retired, with 3DP instead the scaleFactor setting in modelEdit object within 3dEdit section now performs the same operation |
-g [--get] | ✨ | re-introduction with a future 3DP update, however arguments for this command will change, as settings names and structures changed |
-s [--set] | ✨ | re-introduction with a future 3DP update, however arguments for this command will change, as settings names and structures changed |
--read_config | --read_config | same behavior |
--write_config | --write_config | same behavior, however 3DP currently only writes out an example of 3D processing settings, as settings are now organized within a object based structure which does not allow for mutually exclusive instructions any more, see the 3D Processing Schema as reference here |
--write_metrics | --write_metrics | same behavior |
--write_info | --write_info | same behavior |
--selfdocument | ❌ | command retired |
Commands: Main Operations
RC 6.x Command | 3DP Command | additional info |
---|---|---|
-c [--compact] | ❌ | command retired, with 3DP instead the optimize object specifies the optimization process within the JSON settings files, the new --run command executes the general processing |
-u [--unwrap] | ❌ | command retired, with 3DP instead the uvAtlasGenerator within the optimize object specifies the unwrapping process within the JSON settings files |
-b [--bake] | ❌ | command retired, with 3DP instead the textureBaker within the optimize object specifies the baking process within the JSON settings files |
--triangulate | ❌ | command retired, with 3DP triangulation is triggered automatically |
Commands: Color Assignment
RC 6.x Command | 3DP Command | additional info |
---|---|---|
--colorize_vertex_ao | ❌ | command retired |
--set_checker_texture | ❌ | command retired, with 3DP instead the addCheckerTexture object within defaultMaterial in the 3dEdit section now performs the same operation |
Commands: Mesh Modification
RC 6.x Command | 3DP Command | additional info |
---|---|---|
-d [ --decimate ] | ❌ | command retired, with 3DP instead the decimator within the optimize object specifies the decimation process within the JSON settings files |
--remove_duplicate_vertices | ❌ | command retired, with 3DP this functionality is now automated depending on the utilized configuration settings |
--remove_invisible_geometry | ❌ | command retired, with 3DP instead the occlusionCulling object within the meshCulling section now performs the same operation |
--remove_small_features | ❌ | command retired, with 3DP instead the smallFeatureCulling object within the meshCulling section now performs the same operation |
Commands: Rendering
RC 6.x Command | 3DP Command | additional info |
---|---|---|
-v [--set_view_matrix] | ❌ | command retired, similar functionality now served by the cameraPosition setting , documentation here |
--render_image arg | --render arg | similar behavior, however the render command now requires a JSON configuration file validated against the rendering schema , see more documentation here |
--render_turntable arg arg | --render arg | similar behavior, however the render command now requires a JSON configuration file validated against the rendering schema , see more documentation here |
CLI Settings Differences
The 3D Processor CLI (v.7.0.0 +) and corresponding Configuration Settings files (JSON) are NOT compatible with older versions of the RapidCompact CLI (legacy).
RapidCompact CLI Settings (legacy)
The RapidCompact CLI v1-6 does not have a settings schema, settings are directly ingested, potentially resulting in Errors or Warnings.
Settings have no hierarchy (all settings are on the same level).
Settings which exist, but are not specified in the configuration file are still applied in their default state.
For an automated conversion of the CLI commands and settings please refer to the last section of this guide below.
Example (all CLI v6.10.0
compact
(general optimization) and decimation
category settings with defaults):
{
"compact:addUVsToTiledMeshes": false,
"compact:aggregateUVs": false,
"compact:allowRectangularPOTTextures": false,
"compact:animationSimplification": "none",
"compact:atlasingFactor": 1,
"compact:atlasingMode": "separateAlpha",
"compact:baseColorFlatTexThreshold": 0,
"compact:defaultFlatTexThreshold": 0,
"compact:displacementFlatTexThreshold": 0,
"compact:emissiveFlatTexThreshold": 0,
"compact:materialNamingScript": "",
"compact:metallicFlatTexThreshold": 0,
"compact:nodeNamingScript": "",
"compact:normalsFlatTexThreshold": 0,
"compact:occlusionFlatTexThreshold": 0,
"compact:pixelsPerUnitLength": 0,
"compact:powerOfTwoTextures": "ceil",
"compact:quality": "default",
"compact:removeInvisibleGeometry": false,
"compact:removeSmallFeatures": "",
"compact:roughnessFlatTexThreshold": 0,
"compact:specularFlatTexThreshold": 0,
"compact:splitMode": "auto",
"decimation:boundaryPreservationFactor": 0.5,
"decimation:collapseDistanceThreshold": 0.0050000000000000001,
"decimation:collapseUnconnectedVertices": true,
"decimation:defaultTarget": "f:20000",
"decimation:method": "quadric",
"decimation:preserveCommonMeshBorders": true,
"decimation:preserveMaterialBorders": false,
"decimation:preserveNormals": false,
"decimation:preserveTiledUVs": false,
"decimation:preserveTopology": false,
"decimation:preserveUVs": false,
"decimation:probQuadricStddev": 0,
"decimation:recomputeNormals": true,
"decimation:tiledUVThreshold": 1.5
}
All other settings under the following categories are still being applied with their defaults:
ao
, baking
, compact
, export
, flattening
, general
, geoCompression
, import
, inpainting
, logging
, material
, packing
, remeshing
, rendering
, segmentation
, unwrapping
, visibility
Read more about RapidCompact CLI legacy settings here
3D Processor CLI Settings
Settings are depending on 3 new schemas:
Settings Category | Schema | Description |
---|---|---|
3D Processing | 3D Processing Schema | Direct operations on the 3D Data, such as Optimization, Compression, etc. |
Rendering | Rendering Schema | Rendering of 3D Data using the RapidPipeline PBR Renderer |
System | System Schema | System Settings - only relevant for the 3D Processor CLI |
The major differences here are that there are hierarchical settings structures with 2 distinct groups:
- Objects (setting categories)
- Settings (within objects)
Example (CLI v7.0.0
optimize
and decimation
category settings file example with defaults):
{
"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": {}
}
}
}
]
}
As per 3D Processing Schema the example above is only one variation of expressing 3D optimization with mesh decimation.
Read more about possible configuration settings within optimize
here.
In addition, note that the export section is required
as with 3D Processor the specification of the export format takes place within the configuration settings file itself.
CLI Settings Comparison Overview
AO
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
ao:enabled boolean | ⦸ | In 3DP this is now an object: aoBaker , documentation here |
ao:filterRadius real | filterRadius real | same behavior, part of aoBaker |
ao:replaceMissingAlbedo boolean | ❌ | setting retired |
ao:replaceOriginal boolean | replaceOriginal boolean | same behavior, part of aoBaker |
ao:strength real | strength real | same behavior, part of aoBaker |
ao:textureSamples integer | textureSamples integer | same behavior, part of aoBaker |
ao:vertexSamples integer | ❌ | setting retired |
Baking
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
baking:bakeCombinedScene boolean | bakeCombinedScene boolean | same behavior, part of textureBaker |
baking:baseColorMapResolution integer | baseColor integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:clearcoatMapResolution integer | clearcoat integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:clearcoatNormalMapResolution integer | clearcoatNormal integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:clearcoatRoughnessMapResolution integer | clearcoatRoughness integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:displacementMapResolution integer | displacement integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:emissiveMapResolution integer | emissive integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:fixedAtlasResolution boolean | texMapAutoScaling boolean | this is now the reverse, the default is also reversed to achieve the same behavior, part of textureBaker |
baking:forceNormalRebaking boolean | ❌ | setting retired |
baking:forcedDisplacementMax real | ✨ | will be re-introduced as part of a new displacement baker object |
baking:forcedDisplacementMin real | ✨ | will be re-introduced as part of a new displacement baker object |
baking:generateDisplacement boolean | ✨ | will be re-introduced as new displacement baker object |
baking:generateNormal boolean | ⦸ | In 3DP this is now an object: normalMap baker, documentation here |
baking:genericMapResolution integer | default integer | now driven by new setting for default texture resolution, part of bakingResolution of type object within textureBaker |
baking:iridescenceMapResolution integer | iridescence integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:iridescenceThicknessMapResolution integer | iridescenceThickness integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:metallicMapResolution integer | metallic integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:normalMapResolution integer | normal integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:normalMapScale real | normalMapScale real | same behavior, part of object normalMap baker, documentation here |
baking:occlusionMapResolution integer | occlusion integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:recomputeNormals boolean | recomputeNormals boolean | same behavior, part of object normalMap baker, documentation here |
baking:roughnessMapResolution integer | roughness integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:sampleCount integer | sampleCount integer | same behavior, part of textureBaker |
baking:sheenColorMapResolution integer | sheenColor integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:sheenRoughnessMapResolution integer | sheenRoughness integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:skipNormalsRoughnessThreshold real | skipNormalsRoughnessThreshold real | same behavior, part of object normalMap baker, documentation here |
baking:specularColorMapResolution integer | specularColor integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:specularValueMapResolution integer | specularValue integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:tangentSpaceNormals boolean | tangentSpace boolean | same behavior, part of object normalMap baker, documentation here |
baking:thicknessMapResolution integer | thickness integer | same behavior, part of bakingResolution of type object within textureBaker |
baking:topologicalHolesToAlpha boolean | topologicalHolesToAlpha boolean | same behavior, part of textureBaker |
baking:transmissionMapResolution integer | transmission integer | same behavior, part of bakingResolution of type object within textureBaker |
Compact
The compact
command is discontinued with 3D Processor. All relevant settings and functionalities are now converted into or are themselves part of objects
which cover specific aspects of the compact operation. The majority of these can now be found within the optimize
processing category
example: compact:aggregateUVs
is now the object materialUVAggregator
.
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
compact:addUVsToTiledMeshes boolean | ❌ | setting retired |
compact:aggregateUVs boolean | ⦸ | In 3DP this is now an object: materialUVAggregator , documentation here |
compact:allowRectangularPOTTextures boolean | allowRectangularAtlases boolean | same behavior, part of uvAtlasGenerator documentation here |
compact:animationSimplification string | simplification string | same behavior, part of animationOptimization , documentation here |
compact:atlasingFactor integer | atlasFactor integer | same behavior, part of uvAtlasGenerator documentation here |
compact:atlasingMode string | atlasMode string | same behavior, part of uvAtlasGenerator documentation here |
compact:baseColorFlatTexThreshold integer | baseColor integer | same behavior, part of dropTextures , documentation here |
compact:defaultFlatTexThreshold integer | default integer | same behavior, part of dropTextures , documentation here |
compact:displacementFlatTexThreshold integer | displacement integer | same behavior, part of dropTextures , documentation here |
compact:emissiveFlatTexThreshold integer | emissive integer | same behavior, part of dropTextures , documentation here |
compact:materialNamingScript string | ✨ | will be re-introduced with v7.1 release |
compact:metallicFlatTexThreshold integer | metallic integer | same behavior, part of dropTextures , documentation here |
compact:nodeNamingScript string | ✨ | will be re-introduced with v7.1 release |
compact:normalsFlatTexThreshold integer | normal integer | same behavior, part of dropTextures , documentation here |
compact:occlusionFlatTexThreshold integer | occlusion integer | same behavior, part of dropTextures , documentation here |
compact:pixelsPerUnitLength real | ✨ | will be re-introduced, automated by screensize object within modifier , documentation here |
compact:powerOfTwoTextures string | powerOfTwoResolution string | same behavior, part of textureBaker , documentation here |
compact:quality string | ❌ | setting retired |
compact:removeInvisibleGeometry boolean | ⦸ | In 3DP this is now an object: occlusionCulling within meshCulling , documentation here |
compact:removeSmallFeatures boolean | ⦸ | In 3DP this is now an object: smallFeatureCulling within meshCulling , documentation here |
compact:roughnessFlatTexThreshold integer | roughness integer | same behavior, part of dropTextures , documentation here |
compact:specularFlatTexThreshold integer | specularValue integer , specularColor integer | same behavior, part of dropTextures , documentation here |
compact:splitMode string | ❌ | setting retired |
Decimation
The decimate
command is already deprecated
in RapidCompact 6.x (legacy) and is also discontinued with 3D Processor. All relevant settings and functionalities are now part of the decimator object
within the optimize
processing category.
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
decimation:boundaryPreservationFactor real | boundaryPreservationFactor real | same behavior, part of decimator object, documentation here |
decimation:collapseDistanceThreshold real | collapseDistanceThreshold real | same behavior, part of decimator object, documentation here |
decimation:collapseUnconnectedVertices boolean | collapseUnconnectedVertices boolean | same behavior, part of decimator object, documentation here |
decimation:defaultTarget string | ⦸ | In 3DP this is now an object Faces(Target) , part of decimator object, documentation here |
decimation:method string | method string | same behavior, part of decimator object, documentation here |
decimation:preserveCommonMeshBorders boolean | preserveMeshBorders boolean | same behavior, part of decimator object, documentation here |
decimation:preserveMaterialBorders boolean | preserveMaterialBorders boolean | same behavior, part of decimator object, documentation here |
decimation:preserveNormals boolean | preserveNormals boolean | same behavior, part of decimator object, documentation here |
decimation:preserveTiledUVs boolean | keepTiledUVs boolean | In 3DP this is now part of materialMerger object, which also can be part of the decimator object documentation here |
decimation:preserveTopology boolean | preserveTopology boolean | same behavior, part of decimator object, documentation here |
decimation:preserveUVs boolean | ⦸ | In 3DP this is now an object and can be activated as a oneOf choice within onlyMaterial or within the decimator , both are options within optimize |
decimation:recomputeNormals boolean | ❌ | setting retired, in 3DP this is now triggered automatically if a decimation takes place and no UV or normal preservation is active. |
decimation:tiledUVThreshold real | tilingThreshold real | In 3DP this is now part of materialMerger object, which also can be part of the decimator object documentation here |
Export
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
export:baseColorMapFormat string | baseColor (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:centerModel boolean | centerModel boolean | same behavior, part of export object, documentation here |
export:clearcoatMapFormat string | clearcoat (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:clearcoatNormalMapFormat string | clearcoatNormal (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:clearcoatRoughnessMapFormat string | clearcoatRoughness (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:convertToMetalRough boolean | convertMetalRoughness (glTF) boolean | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:discardUnusedUVs boolean | unusedUVs boolean | same behavior, now part of discard object within export , documentation here |
export:displacementMapFormat string | displacement string | same behavior, now part of each specific 3D format 's material settings, see example for the usd format here |
export:displacementToNormalMapAlpha boolean | displacementToNormalMapAlpha boolean | same behavior, now part of obj format 's mtl settings, documentation here |
export:emissiveMapFormat string | emissive (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:excludeTangents boolean | excludeTangents boolean | same behavior, now part of each specific 3D format 's settings within export , see example for the glTF format here |
export:fbxAxisSystem string | axisSystem string | same behavior, now part of fbx format 's settings within export , documentation here |
export:fbxNormalmapYFlip boolean | flipNormalmapY boolean | same behavior, now part of fbx format 's settings within export , documentation here |
export:fbxUnits string | units string | same behavior, now part of fbx format 's settings within export , documentation here |
export:fbxUnitsConversion boolean | unitConversion boolean | same behavior, now part of fbx format 's settings within export , documentation here |
export:forceDoubleSidedMaterials boolean | forceDoubleSidedMaterials (glTF) boolean | now part of each specific 3D format 's settings within export , see example for the glTF format here |
export:forceSeparateOcclusionMap boolean | separateOcclusionMap boolean | now part of each specific 3D format 's settings within export , see example for the glTF format here |
export:geometryCompression string | geometryCompression (glTF) string | same behavior, now part of glTF , glb , vrm 's format 's settings within export , documentation here |
export:gltfIgnorePbrExtensions boolean | excludePbrExtensions boolean | same behavior, now part of glTF , glb , vrm 's format 's material settings within export , documentation here |
export:iridescenceMapFormat string | iridescence (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:iridescenceThicknessMapFormat string | iridescenceThickness (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:jpgQuality integer | quality integer | same behavior, now part of each specific 3D format 's material settings, under new object textureCompression see example for the glTF format here |
export:jpgQualityNormals integer | qualityNormals integer | same behavior, now part of each specific 3D format 's material settings, under new object textureCompression see example for the glTF format here |
export:ktxCompressionSpeed integer | compressionSpeed integer | same behavior, now part of each specific 3D format 's material settings, under new object textureCompression see example for the glTF format here |
export:ktxQuality integer | quality integer | same behavior, now part of each specific 3D format 's material settings, under new object textureCompression see example for the glTF format here |
export:maxBaseColorMapResolution integer | baeColor (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxClearcoatMapResolution integer | clearcoat (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxClearcoatNormalMapResolution integer | clearcoatNormal (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxClearcoatRoughnessMapResolution integer | clearcoatRoughness (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxDisplacementMapResolution integer | displacement integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxEmissiveMapResolution integer | emissive (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxGenericMapResolution integer | ❌ | setting retired |
export:maxIridescenceMapResolution integer | iridescence (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxIridescenceThicknessMapResolution integer | iridescenceThickness (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxMetallicMapResolution integer | metallicRoughness (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxNormalMapResolution integer | normal (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxOcclusionMapResolution integer | occlusion (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxRoughnessMapResolution integer | metallicRoughness (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxSheenColorMapResolution integer | sheenColor (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxSheenRoughnessMapResolution integer | sheenRoughness (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxSpecularMapResolution integer | specular (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxThicknessMapResolution integer | thickness (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:maxTransmissionMapResolution integer | transmission (glTF) integer | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format's maxTextureResolution here |
export:metallicMapFormat string | metallicRoughness (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:mipmapCount integer | mipmapCount integer | same behavior, now part of ktx format 's textureCompression settings see documentation here |
export:normalMapFormat string | normal (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:occlusionMapFormat string | occlusion (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:overrideMaterials string | ❌ | setting retired, now superseded by defaultMaterial settings within materialReplacer in 3D Edit section |
export:preferBinaryFormat boolean | preferBinaryFormat boolean | same behavior, now part of fbx format 's settings within export , documentation here |
export:preferredUVChannel integer | preferredUVChannel integer | same behavior, now part of obj format 's settings, documentation here |
export:preserveTextureFilenames boolen | preserveTextureFilenames boolean | same behavior, part of each export slot object within export , documentation here |
export:roughnessMapFormat string | metallicRoughness (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:scaling real | scalingFactor real | same behavior, now part of modelEdit object within 3D Edit section, documentation here |
export:sheenColorMapFormat string | sheenColor (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:specGlossMapFormat string | specularGlossiness (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:specularMapFormat string | specular (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:textureCopyPolicy string | reencodeTextures string | similar behavior, different string arguments, now part of each export slot object within export , documentation here |
export:textureMapFilePrefix string | textureMapFilePrefix string | same behavior, now part of each export slot object within export , documentation here |
export:textureNamingScript string | ✨ | will be re-introduced with v7.1 release |
export:thicknessMapFormat string | thickness (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:transmissionMapFormat string | transmission (glTF) string | same behavior, now part of each specific 3D format 's material settings, see example for the glTF format here |
export:uastcQuality string | uastcQuality string | same behavior, now part of each specific 3D format 's material settings, under new object textureCompression see example for the glTF format here |
export:unlitMaterials boolean | forceUnlitMaterials boolean | same behavior, now part of glTF format 's material settings, see documentation here |
export:usdProfile string | usdProfile string | same behavior, now part of usd format 's settings within export , documentation here |
export:usdUnits string | usdUnits string | same behavior, now part of usd format 's settingswithin export , documentation here |
export:webpQuality integer | quality integer | same behavior, now part of each specific 3D format 's material settings, under new object textureCompression see example for the glTF format here |
export:webpQualityNormals integer | qualityNormals integer | same behavior, now part of each specific 3D format 's material settings, under new object textureCompression see example for the glTF format here |
flattening
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
flattening:mode string | mode string | same behavior, now part of sceneGraphFlattening object, documentation here |
flattening:preservedSceneDepth integer | preservedSceneDepth integer | same behavior, now part of sceneGraphFlattening object, documentation here |
general
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
general:maxConcurrentThreads integer | maxConcurrentThreads integer | same behavior, now part of system schema, documentation here |
general:normalsComputationMethod string | computationMethod string | same behavior, now part of meshNormals object within 3D Edit section, documentation here |
general:normalsHardAngleDeg real | hardAngleThreshold real | same behavior, now part of meshNormals object within 3D Edit section, documentation here |
geoCompression
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
geoCompression:boneWeightQuantization integer | boneWeightsQuantization integer | same behavior, now part of draco mesh compression within glTF format object in export section, documentation here |
geoCompression:normalQuantization integer | normalQuantization integer | same behavior, now part of draco mesh compression within glTF format object in export section, documentation here |
geoCompression:positionQuantization integer | positionQuantization integer | same behavior, now part of draco mesh compression within glTF format object in export section, documentation here |
geoCompression:uvQuantization integer | uvQuantization integer | same behavior, now part of draco mesh compression within glTF format object in export section, documentation here |
import
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
import:alphaMapBlendToMaskThreshold real | alphaBlendToMaskThreshold real | same behavior, now part of materialEdit object in 3dEdit section, documentation here |
import:alphaMapToOpaqueThreshold real | alphaMapToOpaqueThreshold real | same behavior, now part of materialEdit object in 3dEdit section, documentation here |
import:discardAnimations boolean | animations boolean | same behavior, now part of discard object within import section, documentation here |
import:discardCameras boolean | cameras boolean | same behavior, now part of discard object within import section, documentation here |
import:discardLights boolean | lights boolean | same behavior, now part of discard object within import section, documentation here |
import:discardMorphTargets boolean | morpTargets boolean | same behavior, now part of discard object within import section, documentation here |
import:discardUnusedUVs boolean | unusedUVs boolean | same behavior, now part of discard object within import section, documentation here |
import:fbxNormalmapYFlip boolean | normalmapYFlip boolean | same behavior, now part of general object within import section, documentation here |
import:maxCADTessellationDeviation real | ❌ | retired in facor of new tessellationResolution setting within CAD object in import section, documentation here |
import:recomputeNormals boolean | recomputeInputNormals boolean | same behavior, now part of meshNormals object in 3dEdit section, documentation here |
import:restrictToSubfolders boolean | restrictToSubfolders boolean | same behavior, now part of system schema, documentation here |
import:rotateZUp boolean | rotateZUp boolean | same behavior, now part of general object within import section, documentation here |
import:usdProfile string | profile string | same behavior, now part of USD object within import section, documentation here |
inpainting
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
inpainting:radius real | inpaintingRadius real | same behavior, now part of textureBaker object within optimize section, documentation here |
logging
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
logging:infoLevel integer | infoLevel integer | same behavior, now part of streams object in system schema, documentation here |
material
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
material:defaultBaseColor string | baseColor array | same behavior, now part of defaultMaterial object within 3dEdit section, documentation here |
material:defaultMetallic real | metallic real | same behavior, now part of defaultMaterial object within 3dEdit section, documentation here |
material:defaultRoughness real | roughness real | same behavior, now part of defaultMaterial object within 3dEdit section, documentation here |
packing
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
packing:pixel_distance integer | packingPixelDistance integer | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
packing:resolution integer | packingResolution integer | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
remeshing
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
remeshing:enabled boolean | boolean | In 3DP this is now an object remesher , part of the optimize section, documentation here |
remeshing:method string | method string | same behavior, now part of remesher object in optimize section, documentation here |
remeshing:resolution integer | resolution integer | same behavior, now part of remesher object in optimize section, documentation here |
rendering
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
rendering:IBLBackgroundBlur integer | IBLBackgroundBlur integer | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:IBLFilePath string | IBLFilePath string | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:IBLIntensity integer | IBLIntensity integer | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:background string | background string | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:cameraPosition string | cameraPosition array | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:cameraUpVector string | cameraUpVector array | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:cameraVerticalFOVDeg integer | cameraVerticalFOVDeg integer | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:cameraViewVector string | cameraViewVector array | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:disableEnvMap boolean | disableEnvMap boolean | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:enableDropShadow boolean | enableDropShadow boolean | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:imageHeight integer | imageHeight integer | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:imageWidth integer | imageWidth integer | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:sampleCount integer | sampleCount integer | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:shadingMode string | shadingMode string | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:showBackFaces boolean | showBackFaces boolean | same behavior, now part of streams object in rendering settings and schema, documentation here |
rendering:toneMapper string | toneMapper string | same behavior, now part of streams object in rendering settings and schema, documentation here |
segmentation
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
segmentation:chartAngleDeg real | real | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
segmentation:cutAngleDeg real | real | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
segmentation:maxPrimitivesPerChart integer | integer | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
unwrapping
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
unwrapping:cutOverlappingPieces boolean | cutOverlappingPieces boolean | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
unwrapping:maxAngleErrorDeg real | maxAngleError real | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
unwrapping:method string | method string | same behavior, now part of uvAtlasGenerator object within 3dEdit and optimize sections, documentation here (3D Edit) and here (optimize) |
visibility
RC 6.x Setting and Type | 3DP Setting and Type | additional info |
---|---|---|
visibility:diffusion string | diffusion string | same behavior, now part of occlusionCulling object within meshCulling section, documentation here |
visibility:perMesh boolean | perMesh boolean | same behavior, now part of occlusionCulling object within meshCulling section, documentation here |
visibility:quality string | quality string | same behavior, now part of occlusionCulling object within meshCulling section, documentation here |
Conversion Script (BETA)
The conversion script is able to batch convert RapidCompact CLI commands and JSON
settings files into 3D Processor CLI commands and JSON
settings files. The script is python
based.
GitHub Repo available with 3D Processor v7.1.0
release (announced here)
Current Limitations
RapidCompact Legacy Commands and support status within the conversion script (converted input):
Command | Description | Support Status | additional info |
---|---|---|---|
-i [ --import ] | imports an asset from a file | ✅ | multiple occurances in one legacy commandline are converted into multiple 3DP command lines |
-e [ --export ] | exports an asset to a file | ✅ | converted into 3DP v7.0.x-7.1.x export slots (json settings file) |
-p [ --print_info ] | prints information about the current 3D asset | ⦸ | no conversion needed |
-c [ --compact ] | turns the current asset into a simplified, textured representation | ✅ | multiple occurances in one legacy commandline are converted into multiple 3DP command lines |
-s [ --set ] | sets the setting with the given name to the given value | ✅ | no direct command equivalent, converted into the respective section (json settings file) |
--read_config | reads and apply the given config file | ⦸ | no conversion needed |
--write_config | writes current settings to the given config file | ⦸ | no conversion needed, see remarks in the commands section above |
--write_info | writes information about the current 3D asset to a JSON file | ⦸ | no conversion needed |
--write_metrics | writes metrics to a file using this ID | ⦸ | no conversion needed |
--render_image | renders an image of the current asset to a file | ✅ | see remarks in the rendering commands section above |
--render_turntable | renders a turntable-like image series to a directory | ✅ | see remarks in the rendering commands section above |
--pop | removes the current 3D asset from the stack | ✅ | multiple occurances in one legacy commandline might trigger conversion into multiple 3DP command lines |
--remove_invisible_geometry | removes geometry that cannot be seen from the asset | ❌ | |
--remove_small_features | removes lumps of geometry [...] | ❌ | |
--remove_duplicate_vertices | removes duplicated vertices from the asset | ❌ | |
-g [ --get ] | gets the value of the given setting and prints it | ❌ | |
--duplicate | duplicates the current 3D asset on the stack | ❌ | |
--scale | scales the current 3D asset on the stack using units relative to the asset | ❌ | |
--flatten | flattens (combining meshes and transformations) the 3D asset at the top of the stack | ❌ | |
--export_web | exports to a directory with HTML 3D viewer | ❌ |
Future Updates
- Reintroduction of
--export
command, which enables to dynamically specify one or more output file format(s) as well as output file name(s) (e.g.--export output.glb --export output.usdz
) - Allow for direct ingestion and conversion of most legacy RapidCompact (
v1-6
)JSON
configuration settings files and selected legacy commands into 3D Processor CLIv7.x