DCC Importer Changelog
This page contains a curated, chronologically ordered list of notable changes for each version of RapidPipeline DCC Importer. This makes it easier for users to see 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.
- This makes use of your exist RapidPipeline credentials, through the
- 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.
- The padding is now proportionally dependent on the resolution in use for baking, for example:
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.
- As a result, the experimental flag
- 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.
- Multiple file formats can be provided to
- 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.
- Python packages are now only printed during validation mode (
- 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.
- The flag
- 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.
- Quality setting is now a boolean flag,
- 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.
- Within the DCC, without opening the file:
- 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
.
- You may now install dependencies only for the main Python installation by adding the flag
- 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.
- The glTF Exporter exports the UV channel 1 as UV channel 2.
- Known Issues/Workarounds:
- 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.
- Adds thickness texture baking for complex materials:
- 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.
- All materials and meshes now have a "RPDP" prefix appended to their names.
- 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.