Skip to main content

v0.7.3

  • 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.

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.7.2

  • 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.

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.7.1

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

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.7.0

  • 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 3ds Max 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: 3ds Max 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 3ds Max, 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.

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.6.0

  • 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 3ds Max 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 3ds Max.
        • As a workaround, for 3ds Max 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.

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.5.6

  • 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.

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.5.5

  • 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 3ds Max.
    • 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 3ds Max 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).

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.5.0

  • Adjustment to simple material treatment:
    • Simple materials are exported and treated outside 3ds Max 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 3ds Max 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.

For more information, see the reference documentation for RapidPipeline DCC Importer.

v0.4.5

  • Adjustments to Base Color calculation.
  • Ability to close the 3ds Max 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.

For more information, see the reference documentation for RapidPipeline DCC Importer.