Skip to main content

DCC Importer Changelog

RapidPipeline DCC Importer logo

This page contains a curated, chronologically ordered list of notable changes for each version of the RapidPipeline DCC Importer, to show precisely what notable changes have been made between each release.

Version v0.14.0 - September 12th, 2024

  • A new internal generic version string comparison functionality has been introduced
  • Add support for RPDX v7.x settings
  • Fixes issue with texture quality on file format conversion for alternate outputs
  • Adjustments have been made to the baking process

Version v0.13.0 - June 25th, 2024

  • Add support to new Khronos' glTF Material Extensions:
    • Clear Coat
    • Sheen
    • Iridescence
    • Dispersion
  • A new UV Overlap threshold has been added, customizable by the CLI argument --uvThreshold:
    • This overlap threshold aims to minimize the need to reunwrap models when performing material baking, when the overlap is minimal and would cause no visual issues.
    • When the overlap in face area is lesser than or equal to the threshold, it is ignored.
    • By default, this threshold is set to 5%.
  • The installation procedure has been revamped:
    • The installation of Python dependencies can now be performed completely offline.
    • Copies of all Python-related files necessary for the installation procedure are now shipped with the DCC Importer module.
    • The --skipDCC CLI argument has been removed from the installation script.
    • A new --python CLI argument has been added to the installation script, allowing override of Python executable versions for installation and environment creation, if multiple versions can be found.
    • For compatibility, the older installation script is still provided as install_requirements_legacy.py, but should be considered deprecated and will be removed in the future.
  • A license check specific for the DCC Importer module is now performed at the start of the process:
    • This makes use of your exist RapidPipeline credentials, through the RPD_ACCOUNT environment variable.
  • A new environment.json file is generated during the installation process:
    • This file contains the DCC executable path used during the installation process.
    • As a result, the CLI argument --executablePath has been removed from the main Python script for the DCC Importer Module.
    • The CLI argument --executablePath remains available during installation, and the value provided here will define the executable to be used by the DCC Importer Module.
  • The Python dependencies have been adjusted:
    • Introduced OpenImageIO as the image library of the DCC Importer Module.
    • As a result, previous image library modules such as OpenCV, PIL, psd-tools and scikit-image have been removed.
  • Dependencies are now isolated and different between the DCC Importer main process and the one internal to the DCC:
    • The installation and validation processes have been adjusted accordingly.
  • Added support to Emission Multiplier in simple materials.
  • Added experimental support to more 3dsMax Standard or Legacy materials:
    • RayTrace Material - Converted into VRayMtl
    • Architectural Material - Converted into VRayMtl
    • Shellac - Converted into VRayBlend
    • DoubleSided - Replaced by the Front material
  • Baked Textures coming from the DCC are now rendered in EXR format:
    • The gamma correction procedures have been adjusted accordingly.
    • As a result, the baking of VRayReflectionGlossiness render elements is no longer needed and has been removed.
  • The Baking Procedure for complex baked materials has been optimized, reducing the padding to 1-pixel:
    • This provides considerable performance improvement in higher resolutions.
    • "Infinite-padding", e.g. to the edges of the image, is added as a post-processing, providing similar results to before.
  • Special characters and non-ASCII characters, if present, are now removed from output folder names.
  • The resolution identified procedure on Auto Resolution baking mode has been optimized.
  • Fixes issues with certain MultiMaterials configurations that could lead to crashes.
  • The IOR-to-Metalness procedure has been adjusted.
  • Updated Bounding Box size parameter calculation for the glTF Volumetric extension.
  • Adjusts file operation functions.
  • Simplifies logging messages in several parts of the process.

Version v0.12.0.4 - May 24th, 2024

  • The application has been renamed to "RapidPipeline - DCC Importer Module".
  • Fixes issue with archiving functions.

Version v0.12.0.3 - May 14th, 2024

  • Updates Python dependencies.

Version v0.12.0.2 - May 7th, 2024

  • Fixes issues when the flag --bakeDisplacement is not provided.
  • Updates Python dependencies.

Version v0.12.0.1 - May 3rd, 2024

  • Fixes issues with --mergeByMaterial flag.

Version v0.12.0 - April 15th, 2024

  • Revamps treatment of MultiMaterials:

    • MultiMaterials are, once again, detached and treated individually within 3dsMax;
    • MultiMaterials are now only treated as "containers/compounds of other materials";
    • At the end of the inner-DCC operations, after baking/rendering, they are reattached;
    • The submaterials are translated individually outside of 3dsMax, maintaining their individual properties;
    • This method provides better visual quality, and in some cases improved performance.
  • MultiMaterials and Shell Materials are now classified as Supported Materials for input scenes.

  • The padding for complex materials atlas baking has been reduced:

    • The padding is now proportionally dependent on the resolution in use for baking, for example:
      • 256 - 2px;
      • 512 - 4px;
      • 1024 - 8px;
      • 2048 - 16px;
      • 4096 - 32px.
    • In short, 1px of padding is added for each 2px of baking;
    • This change allows for considerable improvement in baking performance.
  • Improves VRayDisplacementModifier conversion into Bump maps:

    • Reduced the number of VRayBumpMtl materials created to one material per modifier/material pair.
    • Modifiers that can't be baked to geometry (e.g. 2D displacement and SubDivision Displacement) are now always converted to Bump.
  • Adjusted material conversion for Hair & Fur geometry.

  • Adjusted error checking when adding modifiers to geometry nodes.

  • Adjusted Falloff conversion:

    • The replacement of Falloff by black color/texture is now only performed on Falloff texmaps connected to the reflection slots of VRayMtls;
    • All other Falloffs are converted to an 80/20 mix between Front & Side texmap/color.
  • Revamped vertex color cleaning operations:

    • A more efficient vertex color cleaning method has been implemented, improving performance;
    • Additionally, vertex colors are now only cleaned for geometry nodes that have vertex colors applied, improving performance even further.
  • Revamped two sided geometry operation, for volumetric materials:

    • The Shell Modifier is no longer used;
    • This operation is now only performed if an object is not watertight, improving performance.
  • When converting VRayBlendMaterials, certain non-bakeable parameters are now exported based on the Base material:

    • Thin-Walled flag;
    • Volume Depth;
    • Fog Color;
    • Emission Multiplier.
  • Fog color/attenuation color is now taken into account for reimported VRay materials into Shell shaders.

  • Fixes issues with multipliers during material simplification inside the DCC.

  • Fixes issues with VRayDisplacementModifier baking into geometry, when using multimaterials and multi-uv channels.

  • Fixes issues with Cloth modifier conversion.

  • Gradient and Gradient Ramp nodes are now classified as Functional Texmaps.

  • Scenes with repeated names are checked before batch processing starts, rather than during.

    • As a result, statistics for "skipped" scenes are no longer reported at the end of the batch.
  • The performance and memory usage of certain Image operations have been improved.

  • Fixes issue with complex materials multiplier mixing for 1-channel images.

  • Fixes issue with log file being overwritten by a blank file.

  • Known Issues:

    • Certain refractive complex materials have artifacts around their UV edges. A fix is being investigated.

Version v0.11.2 - March 28th, 2024

  • Major internal refactoring and optimization of Translation procedures:
    • The translation procedures are now unified across the different material complexities.
  • The reimport of glTF Files into the output Max file has been revamped:
    • An additional, simplified, VRay shader is now created in addition to the glTF Material;
    • This is due to 3dsMax limitations and issues with rendering glTF Materials on VRay;
    • Both the VRay and the glTF material shaders are plugged into a Shell Material, for easier export and rendering;
    • The Shell Material is compatible with the Autodesk glTF Exporter.
  • Introduces a threshold for Opacity and Transmission:
    • Materials that are very close to being Opaque (or non-Transmissive) will be considered so, preventing rendering issues;
    • This threshold is fixed in 5% and currently can't be adjusted.
  • Introduces Texture to Color simplification:
    • Textures that are identified to be a single color will be converted into color values.
  • Revamped Treatment of VRayDisplacementModifier when --bakeDisplacement is off:
    • Only one VRayBumpMtl is now created for each modifier instance, per base material.
    • VRayDisplacementModifiers of types 2D and SubDivision, which are unable to be baked, will now always be converted into VRayBumpMtl materials.
  • Fixed issues with multipliers on simple materials.
  • Fixed an issue with Bump to Normal map conversion on simple materials.
  • Fixed an issue where simple and complex materials were overly transparent.
  • The gamma correction treatment has been revamped:
    • As a result, several gamma correction issues have been solved, especially on simple materials.
  • New metadata files for the scene and/or batch of scenes are now saved in the output folder.
  • Optional MaterialX creation has been disabled due to the Translation changes:
    • As a result, the experimental flag --createMtlx has been removed.
  • Implemented a new Python glTF loader library:
    • As a result, the pygltflib dependency has been removed.

Version v0.11.1 - March 22nd, 2024

  • The creation of additional output files (GLB, USDZ, FBX, GLBOpacity) is now handled through a new flag --additionalFormat or -f:
    • Multiple file formats can be provided to -f/--additionalFormat at once.
    • Example usage:
      • --additionalFormat usdz glb fbx
      • -f usdz glb fbx
      • If you want to generate additional glbs and FBXs, but no USDz files: -f glb fbx
      • If you only want to generate additional FBX files: -f fbx
    • NOTE:
      • glTF files are always generated, no matter the usage of this flag or not.
      • Providing the same format multiple times (e.g., -f fbx fbx or -f fbx -f fbx) has no additional effect.
      • Providing the flag multiple times (e.g., -f fbx -f glb) overwrites the file format.
  • Deactivated layers are now ignored during scene preprocessing, and its child geometry nodes removed.
  • Fixes known issue from version v0.11.0, when using instances and references in the same node.
  • The flag --additionalOutputs has been removed.
  • The flag --generateOpacity has been removed.
  • Fixes issue when multiple exporter plugins with support for FBX or glTF are installed.
  • Fixes warning when clearing subobject selection on 3dsMax.
  • Fixes issue introduced with version v0.11.0, with the return code being overridden.

Version v0.11.0.1 - March 18th, 2024

  • Fixes an issue with incompatible Python dependency versions.

Version v0.11.0 - February 14th, 2024

  • Major baking workflow revamp on 3dsMax:
    • Baking is now performed in relation to the original meshes with minimal changes.
    • As a result, several texture/baking issues related to transforms have been solved.
  • Refactored/revamped RapidPBR internal Material system.
  • Initial support for several new types of materials:
    • VRaySkinMtl, VRayALSurfaceMtl
    • VRayHairMtl: no support for VRayHairMtl as a submaterial of any kind (e.g., of MultiMaterials, Blend/VRayBlendMtl, etc).
    • VRayStochasticFlakesMtl, VRayFlakesMtl, VRayFlakesMtl2: currently only supported as Coat materials of a VRayBlendMtl, no support for Clearcoat glTF extension yet.
    • VRayCarPaintMtl, VRayCarPaintMtl2: no support for Clearcoat glTF extension yet.
    • Shell Materials, replaced by their Rendering material.
    • VRaySwitchMtl, replaced by the Material set by their index parameter.
  • The treatment of the standard 3ds Max Blend Material has been updated:
    • Fixes issues with Refraction textures.
  • Direct support of MultiMaterials has been added (WIP):
    • MultiMaterials with only simple materials are now exported directly.
    • MultiMaterials with any simple or complex materials are baked down to a single atlas.
    • The new treatment is tied to the changes in the baking workflow, as the previous Detachment procedure is no longer supported.
    • This procedure will still undergo further changes and we expect it to improve overtime.
  • Geometry instances are now preserved in the output glTF file:
    • In addition, only one instance of each node is taken into account when unwrapping/baking.
    • This change results in severely improved quality and execution time when baking a high number of geometry instances in a single atlas.
  • Automatic Backdrop Detection/Removal (WIP):
    • A new procedure to detect backdrops automatically by their bounding boxes has been added.
    • Note that the Backdrop Removal feature:
      • Only supports scenes with one backdrop;
      • Ignores nodes with complex materials;
      • Is still in development, may still undergo further changes.
  • The VRayDisplacementModifier baking has been revamped:
    • Baking the modifier into Bump should now produce more accurate results.
    • When Baking the modifier into geometry, the result is now processed with RapidCompact for removal of excessive polygons.
    • Displacement baking now processes one geometry at a time, resulting in a faster, more stable and memory efficient process.
    • The edge length is now fixed at 4.0 (pixels or world units).
  • The treatment of Falloff nodes has been updated:
    • When the Front (1st slot) Color/Texmap is black, the Side (2nd slot) Color/Texmap is ignored.
    • Otherwise, defaults to the previously used 80%/20% mix.
  • Revamped Material Translation related to Metalness & IOR treatment.
  • The progress of the current rendering is now logged:
    • The progress reported includes an estimate of time needed to complete the current rendering, if the information is available (omitted otherwise).
    • Example: 50% [Rendering done in: 0:00:12 (est.)]
    • NOTE: The time remaining is an estimate based on the progress reported by the renderer, and is only for reference. Actual times may vary.
  • Adjusts thickness factor calculation for the glTF Volumetric Extension.
  • Improves support of VRayBitmap texmap nodes for simple materials.
  • Support for 3dsMax version 2022 has been deprecated.
    • Minimum supported 3dsMax version is now 2023.
  • Support for Python versions 3.7 and 3.8 has been deprecated.
    • Minimum supported Python version is now 3.9.
  • The recommended RapidCompact version is now v6.6.0 and up.
  • The installation procedure has been updated:
    • The installation will not proceed with unsupported Python or 3dsMax versions.
    • The 'ensurepip' step of the installation procedure no longer produces Python bytecode.
  • The 3dsMax system settings for RapidPBR are now isolated from the rest of the system.
  • Fixes issues related to Material IDs not being kept during the complex materials baking procedure.
  • Fixes issues related to UV preservation when using OpenSubDiv modifiers.
  • Fixes issues related to Particle objects removal.
  • Fixes issue related to Compact Material Editor cleanup.
  • Improved Baking Elements validation step.
  • TextPlus objects with no material are now ignored during scene preprocessing.
  • Fixes issues related to system Keyboard Interrupts and zombie subprocesses.
  • Known Issues:
    • Submaterials of complex MultiMaterials with non-bakeable parameters, such as Fog Color (usually translated into glTF's Attenuation Color), might have visual issues. A fix is under investigation.
    • Use of References and Instances together, in the same nodes, is currently not supported and might result in issues, depending on the Modifier configuration of the references.

Version v0.10.8 - January 15th, 2024

  • The system stability when loading files and resetting scenes has been improved:
    • Several issues related to legacy components in scenes from older 3dsMax versions have been addressed.
  • Adjusts Validation features messages:
    • Python packages are now only printed during validation mode (--verifyInstallation) or upon verification failures.
  • Unified RapidPBR logs:
    • All 3dsMax and VRay log messages of severity Warning or higher are now printed to the main RapidPBR log.
    • Selected messages of severity Info or Debug are also printed to the main log file.
    • As a result, separate log files for the DCC and Renderer are no longer saved.
  • Scene statistics are now printed at the end of every scene executed:
    • Shows the number of scenes completed, skipped or with errors, up to that point.
  • The sub-object selection is now cleared during scene preprocessing.
  • Revamps file copy operation.
  • Revamps log tailing operation.
  • Improves node triangulation error check.
  • Certain image-related operations have been revamped for memory efficiency.
  • Automatic 3dsMax and RapidCompact path detection now prioritizes the newest possible version.
  • VRay License checks are now only performed when starting 3dsMax for the first time, or upon rendering failures.
  • Scene-specific log files now only start after the scene-skip check.
  • When exporting FBX files, the FBX SDK version is forced as version FBX202000.
  • Fixes issues with subprocess execution.
  • Fixes issues with Asset Retargetting.
  • Fixes log tailing issues related to encoding.
  • Fixes issues with AABB size calculation.
  • Fixes issues with Real World Scale detection.
  • Fixes issues with Color and Texmap functions on 3dsMax.
  • Fixes issues with VRayDisplacementModifier baking:
    • UVs are now transferred from the original object.
    • Disabled modifiers are now ignored.
    • Baked node transforms are reset after baking.
  • Fixes issues with Hair & Fur modifier baking:
    • Disabled modifiers are now ignored.
    • Hair node transforms are reset after baking.
  • Fixes issues related to mesh conversion from Deformable gPoly and other legacy geometry classes.
  • Python dependency changes:
    • The blend_modes Python dependency has been removed.
    • The watchdog Python dependency has been removed.
    • The pandas Python dependency has been removed.
    • Package versions of several Python dependencies have been updated.

Version v0.10.7 - November 23rd, 2023

  • Revamps and homogenizes file operations:
    • A stricter logging, error check and treatment has been added.
  • Revamps VRay License Check:
    • New checks are now performed when errors happen during baking, as well as on scene load.
  • Adjusts error treatment when baking doesn't finish successfully.

Version v0.10.6 - November 20th, 2023

  • Fixes issues with Benchmark reimport process.
  • Benchmark entries for DCC execution time and full scene execution time are now included in the sceneInfo.json file.

Version v0.10.5 - November 15th, 2023

  • Scene files in output folders are now ignored during input file scan operations:
    • This is, effectively, only relevant if your output folder is contained in the input folder.
    • We recommend that the input and output folder are completely separate, one not including the other or vice versa.
  • Most subprocesses started by RapidPBR now have timeout error checks accordingly.
  • Fixes an exception during scene batch verification if the verification file is incomplete.
  • Revamps error checking for long paths during several file scanning operations.
  • Revamps error checking for invalid paths on Max system related function calls.
  • Fixes issues with encoding on JSon file I/O.
  • Fixes issues with encoding on glTF file I/O.

Version v0.10.4 - November 9th, 2023

  • Revamps RapidPBR return code treatment:
    • If any given scene processed by RapidPBR results in an error/didn't finish successfully, RapidPBR will now produce a return code of 1.
    • RapidPBR will, now, only return 0 if all scenes that have been found are finished processed correctly.
  • A VRay license check is now performed during the validation procedure of RapidPBR.
  • Revamps error checking during 3D model conversion with RapidCompact.

Version v0.10.3 - November 8th, 2023

  • Introduces retry of failed scenes, if the status in the status tracking field of the sceneInfo.json file is not RPDP_FINISHED.

Version v0.10.2 - October 31st, 2023

  • A RapidPBR status tracking feature has been added:
    • The status of a given scene is now tracked in the sceneInfo.json file.
    • In the event of errors, description about the issue may also be included.
    • The new status field of the sceneInfo is used by the application to ensure workflow consistency.
  • The geometry node attachment procedure has been revamped:
    • The performance of this specific method has been drastically increased for scenes in the order of thousands of nodes.
  • Error checking during scene file gathering has been revamped.
  • Fixed issue with transforms during Hair & Fur conversion.
  • Breaking changes:
    • The flag --skipExistent has been removed: scenes will now always be skipped if the output is encountered:
      • The presence of the new status field, with any status value, in the sceneInfo.json, indicates that some sort of output is present in the scene.
    • The flag --timestampLog has been removed: log messages will now always have a timestamp.
    • The flag --quick has been removed:
      • The previous default quality settings will always be in effect now.
      • To render quick tests, use a lower resolution parameter instead.
  • A new flag (--forceMaterialBaking) to force simple materials to be baked has been added.

Version v0.10.1 - October 27th, 2023

  • The Asset Retargetting feature has been revamped:
    • The Material Editor is now reset during retargetting, removing unused assets from scene;
    • Input folders are now scanned for missing assets, in certain situations.
  • Instances are now converted to unique objects during scene preprocessing.
  • The base color calculation has been adjusted.
  • Fixes issues with DCC-server connection:
    • Revamps connection checks.
  • Improves error and exception logging.
  • Fixes encoding issues with process logging.
  • Fixes issues with "useRoughness" property in VRayMtl materials used in VRayBlendMtl materials.
  • Improves non-geometric nodes deletion.
  • Fixes issues with 3dsMax command line argument case sensitiveness.
  • Fixes error checking during scene load and merging.
  • Fixes issue with baking with mismatching material ID.
  • Fixes error with missing output options for 3dsMax bitmaps for simple materials.

Version v0.10.0 - September 15th, 2023

  • Adjusts Basecolor translation.
  • Improves IOR To Metalness workflow.
  • Adds full support to VRayBumpMtl:
    • Extra Bump Map is now taken into account.
  • Adds support for VRayMtl Multipliers in simple materials.
  • Adds support to 3dsMax Bitmap Parameters for simple materials.
  • Adjusts quality presets:
    • Quality setting is now a boolean flag, -q or --quality.
    • When no flag is provided, the default quality settings will be used.
    • When the flag is provided, the results will be noisier but faster to process.
    • The flag might have further internal (quality, parameter) changes but no further changes to the flag usage are planned at this point.
  • Fixes normal map inversion in simple materials.
  • Fixes glTF validation issues.
  • Fixes issue with asset paths in the glTF Reimporter.
  • Fixes issue with process interruption.
  • Adjusts RapidPBR to make use of new Path classes:
    • This fixes issues with certain file names, as well as adds additional error checks.
  • Adjusts DCC-system wide functions.
  • Fixes issues with empty group heads.
  • Improves error checking, inside and outside the DCC.
  • Adds initial support for scene metadata.
  • Bone nodes are now removed during scene preprocessing.
  • Fixes issues with VRayLightMtl translation:
    • Emission is now also used as Diffuse.
    • Takes opacity into account properly.
  • Adjusts triangulation procedure.
  • Improves stability of installation script.
  • Upon a crash during the glTF reimport, temporary/incomplete files will be deleted for consistency.
  • Missing Texmaps are now ignored in the material classification.
  • Fixes temp files race condition when using verification mode flag.
  • Adjusts USDZ scale:
    • For compatibility with Omniverse, files will be exported in centimeters.
    • This change requires usage of RapidCompact v6.4.3.

Version v0.9.3 - August 2nd, 2023

  • Fixes translation cases for VRayMtl when Fresnel Reflections are turned off.
  • Adds support to IOR to Metalness conversion to all material levels.
    • Additionally, several issues with the IOR to Metalness conversion have been fixed.
  • Normal Maps no longer will be compressed on 3D model conversions by RPDX.
  • The parameter export for VRayBlendMtl has been improved.
  • Fixes issue when no resolution is provided as override.
  • Fixes issue with IOR texture baking for VRayMtl materials with Fresnel Reflections turned off.
  • Fixes issue with gamma override in the glTF reimporter.
  • Fixes issue with unexpected object name prefix added by the 3dsMax glTF exporter.

Version v0.9.2 - July 27th, 2023

  • Minor changes to the Specular Factor calculation for untextured materials.

Version v0.9.1 - July 26th, 2023

  • Introduces IOR Texture Translation into Metalness:
    • As a result, the Base Color translation has been adjusted.
  • Revamps IOR Texture Baking for VRay-Compatible Materials:
    • For VRayMtl, the IOR value is now baked correctly even if no texture is provided.
    • For VRayBlend, this is a composite of its submaterials' IOR values and textures.
    • Introduces IOR baking for VRayFastSSS2.
    • For materials without an IOR: a texture equivalent to IOR 1.0 will be baked.
  • Revamps Refraction Baking for VRayBlendMaterial:
    • This fixes issues with non-Refractive base materials.
  • Added initial support to Texmap Output Options for simple Materials:
    • Texmap Inversion is now supported.
  • Fixes issues with Emissive Strength extension across all levels of materials.
  • Unsupported Materials are now replaced with a Default Material:
    • WIP Materials will print a warning to the user but still be processed.

Version v0.9.0 - July 21st, 2023

  • Revamps several functions, including file paths building, increasing stability.
  • Internal refactoring of the main process.
  • A custom RapidCompact settings file is no longer taken as input:
    • For optimal results, settings used for RapidCompact are now fixed for RapidPBR.
  • Adjusts translation to work by keeping original reflection IORs.
    • Influence of the reflection into base color is controlled by IOR.
    • Refraction and fog colors still impact the base color, however.
  • Adds the flag "--iorToMetalness" to convert input reflection IOR for simple Materials into metalness values.
    • Reflection color is then mixed into base color based on the input reflection IOR.

Version v0.8.1 - July 5th, 2023

  • Adjusted the "--verifyInstallation" flag behavior:
    • Use of this flag will ignore most other arguments provided (e.g. input, output folders, etc).
    • You may still provide the "--logLevel" and "--executablePath" flags, however.

Version v0.8.0 - July 4th, 2023

  • Geometric nodes are now individually preserved unless a "--mergeByMaterial" flag is provided:
    • As a result, the reunwrapping procedure and several correlated functions have been adjusted to account for multiple nodes.
  • Material and Geometry Node names are now guaranteed to be kept:
    • Exceptions for Materials when MultiMaterials are involved, as we need to split objects by material.
    • Names of material subfolders might differ when the original name includes special or non-ASCII characters, but the name in the model itself is always kept.
  • The external startup script has been removed.
  • Enforces usage of Editable Meshes instead of Editable Poly:
    • This change provides massive performance increase for scenes with thousands of objects.
    • As a result, several functions have been adjusted, notably:
      • More efficient triangulation, object removal and material detachment procedures.
  • Adds scene retry on unhandled exceptions.
  • Adds scene metadata verification:
    • Within the DCC, without opening the file:
      • Scene assets, XRefs
      • Scene file version
    • Outside the DCC:
      • Renderer name
      • Number of cameras, lights, objects, faces, vertex, etc.
  • Scenes can be ignored from the input folder depending on file name prefixes or suffixes.
    • This is configurable through the RadpiPBR settings file.
  • Adjusts Hair & Fur material assignment.
  • Adds proper XRef skipping by checking the assets of all scenes of a batch.
  • Revamps scene post processing before final scene export within the DCC.
  • Applies fixes to Real World Scale to the whole object through the modifier options.
  • Adds UUID to Material objects inside DCC for easier identification.
  • Revamps creation of Max Material creation within DCC.
  • Adjusts requirements file.

Version v0.7.7 - June 20th, 2023

  • Adds DCC and main Python process system information check:
    • RapidPBR now enforces VRay, 3dsMax and Python versions.
    • Versions of Python packages are checked for compatibility in relation to the requirements file.
    • The DCC system language is checked for English (US).
    • RapidPBR throws correspondent errors in case the checks fail.
  • Makes use of RPDX to generate Opacity versions of glTF transmission assets.
  • The creation of additional output files (opacity GLB, USDZ, FBX) is now optional and handled through a flag, --additionalOutputs.
  • The rendering of previews through RPDX is now optional and handled through a flag, --renderPreview.
  • Fixes issue with encoding of log files.
  • Fixes glTF reimport file paths.

Version v0.7.6 - June 7th, 2023

  • Adjusts paths related to Virtual Environments.
  • Fixes issue when not providing an RPDP settings file.
  • Revamps installation script:
    • Introduces usage of pip-tools module for installation of requirements.
  • Fixes issue with venv path check on Windows systems.
  • Fixes issue with Mix nodes conversion.

Version v0.7.5 - June 2nd, 2023

  • Usage of virtual environments is now enforced both inside and outside the DCC Python distributions:
    • RapidPBR is unable to continue executing if the virtual environments are not setup correctly.
    • The creation of virtual environments is handled by the installation script.
    • As a result, you are now required to activate the virtual environment of the main process before executing RapidPBR.
    • Please, refer to the README for further instructions.

Version v0.7.4 - June 1st, 2023

  • Updates installation and obfuscation scripts.
  • Unifies Python requirements for different 3dsMax versions.

Version v0.7.3 - May 30th, 2023

  • Adds code obfuscation:
    • Code is now encrypted and obfuscated, both inside and outside the DCC.
    • As a result of the changes, the main execution script is now rapidpbr.py:
      • The installation script remains the same, install_requirements.py.
      • An script to obfuscate the code has been added, obfuscate_code.py.
  • Adjusts installation scripts:
    • You may now install dependencies only for the main Python installation by adding the flag --ignoreDCC.
  • Fixes issue with --prepareForCloud flag cleanup.

Version v0.7.2 - May 26th, 2023

  • Adds script to reimport glTF materials back to 3ds Max after translation process.
  • Exports original texture transforms to the translation step.
  • Changes export of simple materials textures.

Version v0.7.1 - May 24th, 2023

  • Fixes issues with Benchmark script.
  • Fixes issues with 3dsMax not closing at the end of a batch.
  • Fixes issues with the installation script.

Version v0.7.0 - May 23rd, 2023

  • The application has been renamed as "RapidPBR".
    • References within the code and comments have been updated accordingly.
  • The general workflow involving the DCCs has been revamped:
    • As a result, the DCC application will remain open for a batch of scenes, resulting in considerable time savings.
    • The DCC now works in a server <-> client way in relation to the main process:
      • The main process (client) sends messages with scene data.
      • The DCC (server) waits for new requests and process the scenes accordingly.
      • In case the DCC crashes, it will be restarted accordingly.
      • Multiple instances of RapidPBR are allowed to run in parallel, but each one of them will make use of a different 3dsMax instance.
      • The DCC interruption procedure and its conditions have been updated accordingly.
      • Memory cleanup has been added to the DCC at the end of each scene processing.
    • A new logging procedure has been implemented:
      • The main process starts a logging socket to which the DCC sends messages.
      • This effectively allows for two way communication between the processes.
      • The DCC system log is followed to account for exceptions, warnings and errors:
        • For the time being, only feasible way to obtain exceptions from outside the DCC at all times.
  • The logs saved per scene and per batch have been altered:
    • On a per-scene basis: V-Ray log, rpdp log.
    • On a per-batch basis: 3dsMax system log, complete rpdp log.
    • Logs for specific scenes are saved in the scene output folder, logs for a batch are saved in the root folder.
  • Revamps certain image processing functions to reduce memory usage.
  • Adds memory profiling:
    • This should never be in production as it considerably slow the code down.
    • For debugging purposes only.
  • Revamps statistics logged at the end of a batch:
    • Added measurement of accumulated time of batch scene processing.
  • The bump2Normal function has been renamed to color2bump.
  • The almostGreyscale function has been reworked into isValidNormalMap:
    • A invalid normal map is considered a color map and will be converted accordingly.
  • The volumetric check within the DCC has been updated accordingly:
    • Fixes incorrect print statement.
    • Adjusts conditions.
    • A new isBlackTexmap function has been added.
  • Vertex colors are now cleared within the DCC before exporting.
  • Layers are now flattened within 3dsMax, before processing the scenes.
  • The tailhead Python dependency has been removed.
  • The watchdog Python dependency has been added.
  • Fixes crash related to Real World Scale conversions.
  • Fixes crash related to unexpected Material prefixes and the glTF and FBX exporters.
  • Fixes crash related to the multiprocessing module when no server is started.

Version v0.6.1 - April 27th, 2023

  • Minor fix to benchmark script.

Version v0.6.0 - April 26th, 2023

  • Adds support to PSD texture files.
  • Improves texture transform support for simple materials.
  • Ignores input files within __MACOSX folders.
  • Removes USD Importer dependency:
    • We now only operate in glTF or FBX files for DCC<->RPDX interop.
  • Improves support to Refraction Roughness:
    • The resulting roughness texture is now a weighted result of refraction and reflection roughness based on the transmission texture used by glTF.
  • Adds conversion from Real World Scale textures when possible.
  • Adds check for "nearly" gray scale bump textures for simple materials.
  • Adds check of what caused a material to be considered complex.
  • Adds Displacement to Bump conversion, as well as Normal map compositing, for simple materials.
  • Added experimental VRayDisplacementModifier baking (WIP).
  • Added experimental Hair & Mesh modifier conversion to mesh (WIP).
  • Added experimental VRayHairNextMtl to VRayMtl conversion (WIP).
  • Added manual garbage collection (WIP).
  • Adds initial support to 3dsMax 2024:
    • Known Issues/Workarounds:
      • The glTF Exporter exports the UV channel 1 as UV channel 2.
        • For the time being, we export FBX files from Max 2024.
      • The Collapse Geometry utility sometimes crashes 3dsMax.
        • As a workaround, for 3dsMax 2024 we have a different attachment workflow that uses mehsop functions.
  • Adds VRayOverrideMtl replacement by its base material.
  • Fixes crash with invalid multimaterial id.
  • Fixes issue with simple material luminance function.
  • Fixes issue with alpha values in ColorMap to Color value conversions.
  • Fixes issues with UV Offset for simple materials.
  • Fixes issues with 'non-tilable' simple materials.
  • Fixes issue with displacement bump baking.
  • Fixes issues with installation script.

Version 0.5.6 - April 12th, 2023

  • Adds Benchmark mode:
    • Measures execution time for function calls through decorators and context switchers.
    • Adds a wrapper script that executes RPDP for the same set of scenes N times:
      • Metrics included: min, max, mean and median of times.
      • Note that: failure in one execution will exit the whole process as of now.

Version 0.5.5 - March 21st, 2023

  • Improves Volumetric extension:
    • Adds thickness texture baking for complex materials:
      • Baked as inner occlusion from a VRay Dirt map.
      • Thickness texture baking is not supported for simple materials.
    • Adds thickness factor calculation from AABB dimensions.
      • Values are converted to meters before exporting.
    • Adds backside to all volumetric geometries with Shell modifier before exporting.
    • Thin-walled materials no longer receive the extension.
    • Fixes issue with attenuation distance.
  • Thin-walled transmissive materials are now double sided.
  • Improvements to simple Materials Translation:
    • Added proper Base Color calculation.
  • Fixes issues with Material classification.
  • Adds function to override minimum material level.
  • Fixes an issue with emission multiplier equal to 0.
  • Vertex color attributes are now removed when exporting glTFs.
  • Improves general script performance by disabling scene redraw and undo.
  • Optimizes triangulation and mesh normal smoothing.
  • Adjustments to high IOR workflow:
    • Threshold has been reduced from 4.5 to 4.0.
    • Further adjustments are being investigated.
  • Adds support to XRef merging.
  • Adds basic conversion of VRay Hair materials, for compatibility.
  • Revamps asset retargeting:
    • Adds better support to assets in external drives.
    • Fixes issues with repeated asset names.
    • Improves retargeting performance.
  • Fixes several issues related to Transforms propagation.
  • Improves scene preprocessing.
  • Clarifies error messages.
  • Fixes issues with Material Detachment by ID:
    • Empty and single-child MultiMaterials are now skipped.
    • Face IDs not present in the material will default to the first material slot.
  • Fixes issues with frozen nodes and layers.
  • Fixes issues with Shape->Poly conversion.
  • Displacement modifiers are now taken into account when baking displacement into Bump.
  • Fixes issues with IOR values between 0 and 1, inside 3dsMax.
    • Reflection IORs in the range 0-1 act as a decrescent IOR from 100 to 1, exponentially.
    • Refraction IORs in the range 0-1 act as an IOR of value 1.0.
  • For thinwalled materials, we now multiply refraction by fogcolor.
  • Adds function to check whether a node has UV coordinates or not.
  • Empty geometry nodes will now be deleted.
  • Ignores pre and post rendering scripts.
  • Fixes issues with incorrect UV channel being used for baking.
  • Fixed 3dsMax warnings when accessing projection baking settings.
  • VRayTriplanarTex texmaps are now classified as procedural nodes.
  • Scene units are now used when loading scenes.
  • Fixes issues with Cageless-Baking due to unused Push modifiers.
  • Updated default install dependencies requirements.
  • Adds scene counter (i.e. how many scenes completed successfully or errored).

Version 0.5.0 - March 1st, 2023

  • Adjustment to simple material treatment:
    • Simple materials are exported and treated outside 3dsMax if deemed 'simple Materials'.
    • Simple materials are only composed of texture, color, bump and normal map texmaps.
    • At the moment, VRayblend and VRayFastSSS2 cannot be considered simple Materials.
    • Non-simple simple materials are now baked inside 3dsMax in a way to preserve its tiling.
    • The translation of simple simple materials outside of the DCC has special requirements and is a WIP:
      • At the moment, we only consider Diffuse components for the Base color of simple materials.
      • Texture rotation is not yet taken into account.
  • As a result of the adjustments to simple materials, changes to the classification and baking have occurred:
    • Materials with Real World Texture will be considered complex materials.
    • Materials and Textures with UDIM are not yet supported.
    • simple materials, both simple and Standard simple, do not support Ambient Occlusion maps baking.
  • RPDX is now only called once to unwrap all nodes in the scene.
  • Revamped node -> color value conversion.
  • Revamped image related functions: images are only read/saved when needed.
  • Ignores nodes and materials listed in the RPDP configuration file.
  • Added python script to install dependencies.
  • Updated default install dependencies requirements.
  • Changes to MaterialX usage:
    • MaterialX is now an optional dependency.
    • Creation of MaterialX files is now skipped if library can't be found.
    • a --createMtlx flag has been created to optionally create MaterialX files.
    • MaterialX files are now created completely outside of DCCs.
    • As a result, it's no longer needed to install MaterialX inside any DCC applications.
  • Added new Renderer classes.
  • Revamped Asset Retargetting/Path Fixing.
  • Forces VRayBlend and VRayFastSSS2 to be treated as complex materials.
  • Removed unused code and flags.
  • Unsupported procedural VRay geometries, such as VRayPlane, are now ignored.
  • General bug fixes.

Version 0.4.5 - January 24th, 2023

  • Adjustments to Base Color calculation.
  • Ability to close the 3dsMax process by a keyboard interruption (for example, pressing "Ctrl + C").
  • Fixes and adjustments to opacity and transmission.
  • Fixes and adjustments to specular and metalness.
  • Adjustments to fog color and refraction color calculation.
  • Logging feature with a controllable verbose level (parameter --logLevel).
    • Level ranges from 0 (Critical messages only) to level 4 (Debug level, all messages).
    • By default, the logging level is level 3, Info.
  • Displacement baking into bump:
    • Compatible with VRayMtl and VRayFastSSS2 materials.
    • Displacement is slotted into the bump slot of a VRayNormal node for baking.
    • If we already have a bump bap in the slot, we compose them together as an overlay.
  • UVs are now not re-unwrapped if they are proper for baking (within 0-1 and no overlap).
  • Improvements to Normal map baking.
  • New Dependency: Python package 'psutil'.
    • The requirements.txt has been updated accordingly.
    • To install this new package, you can follow the same procedure as before.

Version 0.3.0 - September 30th, 2022

  • Increases maximum texture size for baking to 2048x2048 pixels (WIP).
  • Adds initial support to opacity on simple/complex materials (WIP).
  • The 3dsMax UV unwrapping and texture baking has been completely reworked.
  • General Bug Fixes & Improvements:
    • Refactored 3dsMax scene preprocessing.
    • Added quick mode to Material Baking on 3dsMax.
    • Ignored animation data when processing 3dsMax scenes.
    • On 3dsMax, forces texture channel to be 1 (due to current RPDX USD channel limitations).
    • On 3dsMax, only the objects being currently baked are unhidden at a time.
    • The padding for texture baking has been increased on 3dsMax.
    • Fixes issues with USD export on 3dsMax.
    • The Autodesk USD plugin is now mandatory to execute RapidPBR on 3dsMax.
    • Fixes different issues on the 3dsMax material detachment and attachment.

Version 0.2.1 - August 4th, 2022

  • Fixes an issue with gltf extension validation.
  • Fixes an issue with the blender plugin if multiple materials are applied on the same mesh.
  • Now supports baking of textured and procedural material through the blender plugin.
  • General Bug Fixes & Improvements:
    • Fixed some smaller issues in the blender plugin.
    • Fixed light setup of blender quad rendering.
    • Implemented benchmark flag for blender.

Version 0.2.0 - August 3rd, 2022

  • Adds support for detachment of meshes by multi-material ID on 3dsMax:
    • Effectively "flattens" the multi-material by splitting the sub-objects into their own nodes.
  • Adds geometry collapsing by material on 3dsMax:
    • This only applies to geometry nodes that have textured or procedural texmap nodes.
  • The Quad rendering has been replaced with Texture Baking on 3dsMax:
    • This allows for certain details and aspects of the material, such as highlights, to be properly represented in the resulting images.
    • Following this change, functions related to the quad rendering have been updated or removed.
    • The Blender plugin remains unchanged on this aspect.
  • To prevent compatibility issues during USD export for 3dsMax, several fixes are now performed:
    • All materials and meshes now have a "RPDP" prefix appended to their names.
      • This is due to an issue where the 3dsMax USD exporter would rename certain mesh names.
    • All materials are now converted to PhysicalMaterial before exporting.
      • This is due to an issue where the 3dsMax USD exporter would ignore certain materials.
      • No difference is observed in the final result as RapidPBR replaces all materials.
  • New optional flags -b and -c have been added to the execution line:
    • -b: Turns on benchmark mode to allow disabling rendering of scene and thumbnails.
    • -c: Turns on the cleanup of the output folder, keeping only files relevant to the 3d models.
  • To better represent the materials, some fixes are performed for VRayMtls on 3dsMax:
    • SSS and Thin Walled are disabled, as they are not supported by RapidPBR yet.
    • This changed may be reviewed in the future.
  • The creation and usage of Environment Maps has been revamped on 3dsMax:
    • The spheres and scenes are always rendered using a specific Environment Map.
    • The baking of textures uses the environment map chosen by the user.
  • General Bug Fixes & Improvements:
    • A new 3dsMax procedural texmap is supported: 'Gradient Ramp'.
    • Fixes a crash caused by Material Library files with different resolutions.
    • Fixes setup of lights and exposure when skipping rendering of thumbnails and full scene (WIP).
    • 3dsMax autobackup files are now ignored.
    • Fixes the Neural Network optimization for Normal Maps.
    • The Wand library dependency has been removed.
    • Adds a check that corrects the image resolution during resize, if needed.
      • This prevents crashes if images with wrong resolutions are in the library folder.
    • Hidden objects are now ignored during the 3dsMax plugin execution.

Version 0.1.6 - July 26nd, 2022

  • General Bug Fixes & Improvements:
    • Fixes exposure for material rendering.
    • Prevents lights, cameras and geometries from being created multiple times per scene.
    • Fixes an issue with simple glass material with IOR different than 1.45.
    • Fixes an issue with calling the Blender plugin from outside the RapidPBR main directory.
    • Fixes an issue with special characters in material names.

Version 0.1.5 - July 25th, 2022

  • General Bug Fixes & Improvements:
    • Several small fixes related to the Material Generation Neural Network and Quad Camera.
    • Added default DCC and RPDX paths.
    • Other small changes.

Version v0.1.0 - July 18th, 2022

  • OOP refactor:
    • Added new base classes: AABB and Project.
    • Added abstract methods to new and existent base classes.
    • Added new Max derived classes and their respective methods.
    • Added new RPDP class to use with the rpdp_main.py file.
  • Integrated Quad material rendering for simple/complex material generation.
  • Initial Fully Automated Version:
    • Refactored rpdp_main.py file.
    • Added RPDX USD > glTF conversion.
    • Integrated material creation and assignment to glTF files.
  • General Bug Fixes & Improvements:
    • Fixes Thumbnail Parenting Issues (WIP).
    • Scenes are now executed one by one, for the sake of benchmarking.
    • The max_thumbnail.py file was deleted:
      • Its contents were refactored and incorporated into the new MaxRenderings class.
    • Adds RPDX rendering of real-time model previews.
    • Fixes a crash that occurred when the environment map was missing.
    • Fixes a bug with the use of dome lights affecting quad rendering results.
    • Quad renderings have now a fixed resolution of 256x256.
    • Fixes an issue obtaining relative texture paths.
    • Fixes an issue related to glTF PBR texture factors.
    • Camera distance is now also influenced by depth of the object.

Version v0 - June 23rd, 2022

  • Baseline version, mostly as presented during the RapidPBR R&D Forum on June 10th, 2022.