Menu Close

Unofficial 3dsMax What’s New

Often it is hard to get the whole picture of new feature/improvement for each 3dsMax release. They are scattered around blog post, help documentation and release notes. Many users doesn’t even know many of their requests are already addressed if they have not carefully follow each update.

3dsMax team posted this time line. But, there are a lot more than what’s listed in that post.

So, I decided to compile all my Unofficial 3dsMax What’s New list here, which I have maintained since 3dsMax 2017. I have been a beta tester for 3dsMax for long time. This list is collected from from beta documentation and beta forum thread.

This list has 2 purposes. 1) To show how 3ds Max development really has progressed, 2) help you to find if any specific feature has been added or bug has been fixed. If so, when.

This list is divided by each release year and have all features/improvement/fixes from previous year release. For example, 3dsMax 2017 list means anything done between 3dsMax 2016 initial release and 3dsMax 2017. So, it will have all updates of PU or SP for 3dsMax 2016.

!!! From 2022.1, I’ll update this list for each PU(Product Update). I’m also adding my related video link.

Be prepare for long list!

3dsMax 2025.1

New – Turbulent Color Noise OSL map

  • Emulates turbulence by repeatedly displacing a position. Can be used to drive a built in ‘rainbow’ effect to make things like oil slicks and similar, but it also has a Float output to drive other more custom color ramps. The Point output returns the actually distorted coordinate position. This can be fed into other texture shaders to distort their coordinates.
  • 16 Presets – Default, Soapy Turbulence, Pastel Mix, Water Drop, Color Smoothie, Raindow Marble, Poison, Ice and Fire, Oldies, Starry Night, Chaos, Psychedelic  Swirl, Christmas Mint, BW Marbling, Rainbow, Highlights

Modeling

  • Array
    • Faster processing – the Array Modifier will now process results up to 250% faster than before for high res source objects.
    • Random Number Seeds is animable now
  •  Boolean
      • Voxel Size spinner value is now adjusted by a value 0.1, with a minimum value of 0.001.
      • The result of the Volume based Boolean operation will not update automatically if the artist clicks and drags on the spinner arrows to increase or decrease the value through their mouse movements. It will now update when you release your mouse.
      • If you have a very low Voxel Size set, 3ds Max will now warn you that this value is too low before allowing you to proceed or abort the operation. This warning is based on the number of voxels that would be needed.
      • A new ESC mechanism has been added to the Boolean Modifier when using Volume meshing so you can interrupt processing. If you abort, 3ds Max will restore the Voxel Size value to the last processed value that was used.
    • Resolved an issue where the state of the Shell modifier was not being properly saved.
    • Resolved a crash which would occur if the user had an animated symmetry modifier gizmo/plane and then applied the Array modifier on top of the result,
    • Resolved a crash that could occur the user attempted to apply the interactive Chamfer tool, or a Chamfer operation to a isolated Vertex
    • Resolved an issue with the Face Extrude modifier where it could cause 3ds Max to crash when reopening a file

Animation

  • Skin
    • Adjusted the mouse movement distance needed to adjust the paint strength to give a MUCH finer control. Pixel distance to go from brush strength o to 1 changed from 19 pixels to 500.
    • Added  “skinOps.isInPaintWeightsMode” which will allow users the ability to craft a macro script to, with a hot key, easily exit and enter paint mode for more efficient bone selection during skin weight painting.
    • SkinPaintModeToggle macroscript is provided here.
      https://help.autodesk.com/view/3DSMAX/2025/ENU/?guid=GUID-49096AC0-F769-483C-A2BB-1A6D5B5D2BF0
  • Fixed a rare crash when trying to display the Position XYZ controllers rollout in the motion panel.
  • Resolved an issue where a Morph Target could disappear if it was also using a Morph modifier and had other modifiers added or removed from its stack.

Color Management

  • Color picker HWBt section now respects the Scene/Display toggle. HWBt ramps will also have the warning indicators similar to other ramps in the picker.
  • Custom colors added to the object color palette are now properly color managed in all color management modes. Please note that this palette can hold colors only in the sRGB gamut,
  • Color management settings of the maxstart.max file is now respected
  • File/ New operation now keeps the current color management settings intact.
  • Improved speed to show the map when clicking on “Texture Checker (UV_Checker.png)” in UVWUnwrap editor.
  • View transform list in the virtual frame buffer is no longer filtered based on the source color space
  • Fixed incorrect Max name when ColorConverter tool is used.
  • Messages generated by the OCIO library are now prefixed with “OCIO:”
  • iDisplayGamma max script interface is now deprecated.When used, it will show a warning text on the max script window. This warning message will be displayed once per session.

SME

  • Material/Map Browser visibility is correctly turned ON/OFF through the Search tool.
  • Improved hit testing on edge of node anchors to allow for more predictable connections.
  • Fixed incorrect order of Maps/Materials > Additional Parameters.

UI

  • GlobalSearch settings are now stored in C:\Users\$username$\Autodesk\3ds Max 2025\User Settings\GlobalSearch.ini, instead of in 3dsmax.ini.
  • Tree view background color has been updated to be darker for better contrast.

Core

  • Performance: SceneExplorer registers with SceneEventManager, but does not trigger/reset messages. If user loaded a bunch of scenes with lots of nodes, file reset got slower and slower and slower. This fix will address this issue.
  • When scene file loading fails, additional info on where is written to max.log
  • 3dsmax.assert.log and DebugOutputString.Log were attempted to be created in 3dsmax root folder, but if root folder was under C:\Program Files creation of these files would fail. In this case, these files are stored to appdata\Network\DebugOutputString.Log instead.
  • Fix crash when long path specified in plugin.ini
  • File / Summary Info now shows ellipsed node name if node name > 25 characters, object type name clamping is increased to 12 characters, if do Save to File the file contains unclamped node and object type names.
  • When create a WSM object and bind a node to it, a binding modifier is applied to the node. If the WSM object is then deleted, the binding modifier is now automatically removed.
  • Fixed losing modifier enabled setting for Paste Skin Weights and Project Mapping Holder on scene file save/load.
  • Improved detection of running out of disk space while saving scene file.
  • Fixed an issue in Vector Map where blending between pages of a PDF texture would output unexpected color values
  • Fixed issue where Transform Gizmo axes are shown incorrect in viewports.

MAXScript

  • A new MaxScript function has been added: “getMAXFileFileProperties <filename>” to acquire file properties from an external max file
  • UiCustomization.ShowDialog #menus|#mouse|#toolbars|#colors|#hotkeys|#menus to cover Custom UI dialogs
  • Macroscript scanner handles / … / comments better.
  • When resizing maxscript listener window, and macro recorder output section was minimized by sliding separator bar up, don’t expand macro recorder output section. Give consistent look with non 100% dpi scaling.
  • Implemented ‘print_all_elements’ logic where applicable. The following classes implement this logic: Array, BitArray, ArrayParam, MAXKeyArray, MultiMaterialClass, MAXModifierArray, NodeChildrenArray, MAXCustAttribArray, Dictionary, SelectionSetArray, MAXNoteKeyArray, and CurvePointsArray.
  • Fixed creation procs for many objects like scripted spline plugins  so that they properly support OSnap.
  • Fixed bounding box properties for NodeChildrenArray values.
  • If have a rollout defined in a scripted plugin, and the rollout registers as a callback a rollout defined function that accesses scripted plugin members, will no longer get ‘Runtime error: Plug-in not active, unable to access plug-in local or parameter’ when the callback function is called.
  • Fixed buildShape handler being called excessively in simpleSpline scripted plugins

InterOp

  • NX version 2312 is now supported.

MaxToA/Arnold

  • MAXtoA 5.7.1.1.
  • Intel® Open Image Denoise (OIDN) is now default, and Intel® Open Image Denoise (OIDN) version is updated to version 2.2.2
  • OptiX denoiser runs on progressive negative AA passes
  • Arnold RenderView (ARV) has new snapshot functionality
  • Arnold RenderView is now dockable
  • OCIO environment variable behavior follows 3ds Max color management settings
  • MAXtoA now fully supports the new Imager API, and user-supplied imager plug-ins (in the Arnold plugin path) are usable from inside MAXtoA. Since Imagers are now considered their own node type in Arnold, they have their own selectable category on export.
  • The MaterialX node definitions for Arnold shaders now use the standard surfaceshader and volumeshader types, which make them easier to use in DCCs and mix with standard library shaders.
  • USD
    • Light linking on custom procedural
    • Imager node support
    • Export ArnoldOptions as UsdRenderSettings
    • Velocities motion blur for points

3dsMax 2025

Menu Modernization

  • A complete re-write of the 3ds Max menu editing system, affecting both regular menus and quad menus. This work will provide a foundation for a modern menu editing system, portable menus, and future menu work.
  • The new Menu Editor allows you to easily customize 3ds Max menus and quad menus. The editor lets you add, rename or remove menu and quad menu items, create new separators and sub-menus, as well as re-order menus.
  • For end users and administrators, menu customizations are now portable between 3ds Max versions (upgrade-safe), so they do not need to be re-created after each upgrade.
  • Slate menu adopted the new menu system and is customizable.
  • A menu definition file can be created and shipped with the Application Plugin Package, making menu creation and management much simpler for third parties. The new menu system uses a transformation approach, ensuring that menus accurately reflect the currently loaded plug-ins. In the previous system, menu customizations were not
  • Developer Mode – provides additional functionality to expose their own menus or modify / add to existing ones in this mode.
    • When you switch to Developer Mode, only the base menu configuration and either the selected preset or an empty preset is loaded; plug-in and user defined menus are not loaded. This simplifies the menu structure and provides a clean configuration for a developer to work with.
    • For Quad menus, in Developer Mode you get an additional Quad Menu Context selection, to display only the quad menus in that context. This lets you add/rename/delete quad menus for a specific context, and more importantly, create a new quad menu context for use in your own plug-in. In non-Developer mode, Quad menus are isted for all contexts.
    • Developer mode also provides access to the resource ID based localization workflow.  Select “Create localization file”, and creates .mnx or .qmnx file. This creates a skeleton resource file for the configuration file, which contains the resource ID and display text for each item in the menu/quad. Once .res file is translated, placed it in the target language subdirectory for the plug-in (for example, for French, in a directory called fr-FR under the directory containing the .mnx/.qmnx file).
  • New C++ API – NOTIFY_CUI_REGISTER_MENUS or NOTIFY_CUI_REGISTER_QUADMENUS callback and new ICui* classes.
  • New Maxscript API – CuiMenuMgr, CuiMenu, CuiMenuItem, CuiActionMenuItem, CuiDynamicMenu, CuiQuadMenuMgr, CuiQuadMenuContext, CuiQuadMenu

Revamped Global Search

  • Qt based UI, consistent now with the Max UI style.
  • Results display your last 5 used commands so you can repeat actions with ease.
  • A new column in search shows the Item’s ‘Category’ (for example, Modifiers, Tools, MassFX, Render, and so on.)
  • Filters to exclude Start with any, Contains, Metadata
  • Double-click results to enact – Launch actions quickly and directly from the Search menu by double-clicking on your search results as they appear. This has the advantage that the item gets not executed right away when you do a selection in the persistent
  • Contextual results – Your search results will only contain relevant items (items applicable in the current context).
  • Search text highlighting can be disabled in the context menu, enabled by default.
  • Resizable search bar width – From the gear icon contextual menu, you can access the Popup Width slider.
  • Create a dockable window – choose Toggle Window/Popup.
  • Shortcuts and extended Tooltips – Expanded results are displayed with your search.
  • Settings remembered – 3ds Max will remember the last state of the tool (these settings are stored in the 3dsMax.ini file).
  • Separator after the last triggered items.

Retopology/Mesh Cleaner

  • Retopology
    • Reform 1.5  – provides an 8% speed improvement.
    • Pre-processing can now be run as its own stand alone option.
    • OpenVDB remeshing as a new mode
    • A new escape mechanism has also been added to interrupt OpenVDB based meshing. Use the ESC key to call an abort request on the OpenVDB process.
    • New and updated tooltips for the Retopology modifier to improve descriptions
  • Mesh Cleaner
    • 3 new options.
      • Zero Area UVs – will look for really small UV coordinates and repair them by detaching from their neighboring UVs and perturbing (scaling) the UV larger.
      • Non planar faces – will adjust faces that aren’t planar.
      • Isolated Vertex – will remove any vertices in the mesh data that are not associated with a face.
    • An escape (ESC) mechanism has been added to the modifier, enabling you to abort with operations that could take a while when you are dealing with tens of thousands of errors to repair (zero area UV & non-manifold geometry)

Color Management

  • 3ds Max now starts up in “OCIO-Default” mode by default. Users can return to Gamma Mode through the Color Management preferences.
  • The Bake to Texture tool now lets you select the color space for output files.                 T
  • Vertex Paint tool’s color palette is now properly color managed.
  • The new “Color Space Conversion” process operator has been added to Data Channel modifiers to convert color data from one rendering space to another.
  • SetDefaultDisplayViewTransform and GetDefaultDisplayViewTransform functions are added to ColorPipelineMgr maxscript interface.
  • It is now possible to add OCIO v1 style “Color Space Name Rule” to the “Automatic Color Space Assignment Rules” in the color management settings. This rule will assign input color space if its name appears in the image file path/name.
  • The Lock status of a Custom OCIO file is saved in the scene. It’s also preserved when saved as default.
  • The version of OCIO has been updated to 2.3.2.
  • Floating Active Shade window title now indicates that it’s not color managed in OCIO modes.
  • Modal 8-bit Color Pickers handle correctly low range values.
  • Improved stability of the Whiteness slider after closing/reopening the Color Picker.
  • Thumbnails of mtlbases saved in the scene are checked for the correct colorspace/viewtransform.
  • The Color Picker refreshes the colors when the View Transform changes.
  • Removed warning message when reloading a scene with custom OCIO file loaded.
  • Fixed the slowness in loading OSL maps in SME while using v.1 OCIO files.
  • Drag and drop between Qt and Win32 color swatches inside of 3ds Max now works as expected. Also legacy color swatches do not suspend the creation of animation keys any more, so it’s now possible to use color clipboard utility to assist the creation of animated color values.
  • Fixed an issue with vertex paint had incorrect color value processes when working with Color Management.
  • A Color Management issue where RGB color swatches in various tools lost precision/values for dark colors has been fixed.
  • Whiteness slider set to 1 instead of zero after closing/reopening the Color Picker

Slate

  • Menu is now customizable.
  • Bitmap nodes in SME now have a new context menu entry “View Image” that offers a quick way to view the containing bitmap
  • Fixed an issue where the Slate Material Editor would become semi-transparent when moved around.
  • Fixed Show Shaded Material in Viewport functionality for bitmaps assigned to a nested materials
  • A wire selected alone without its nodes will no longer be deleted when a compound is created.
  • Fixed an issue with the color picker where the alpha would reset to a value of 1 when using the HSV sliders.
  • Fixed an issue where the Mat/Map browser becomes narrow when collapsing rollout group or after right-click.
  • Fixed alpha reset to one using HSV sliders in Color Picker

USD 0.7

  • Importer
    • Support to import animated attribute of camera and light into 3ds Max.
    • Support to import blendshapes from USD into Morphers.
    • Added ability to specify specific animation ranges in the USD Importer.
    • USD Importer now has a setting for using/disabling the progress bar via scripting (UIOption.UseProgressBar = true|false).
  • Exporter
    • Support for mixing the material switcher and multi/sub-object materials in the USD Exporter for creating material variants.
    • Added a new export options to enable or disable the last resort USDPreviewSurface material (options.UseLastResortUSDPreviewSurfaceWriter).
    • Added further validation of target material file paths to prevent unicode characters.
    • Added support for the <filename> token in exported material files paths. It is replaced by the root layer file name at export time.
    • Updated the USD exporter to use the current timeline frame range when initially setting the export range.
  • Stage
    • Added ability to select USD prims in the viewport while in prim sub-object mode.
    • Added ability to transform a USD prim in the viewport.
    • Added support for basic rectangle selection of the USD Stage Object (only support’s crossing mode).
  • USD Explorer
    • Selection and parent highlighting for selected prims in the USD Explorer.
    • Added ability to expand/contract the entire hierarchy below a prim with CTRL+LMB for USD Explorer.
    • Added a column in the USD Explorer to display a prim’s authored kind.
    • Added support to keep the USD Context menus open when holding down the CRTL key. The is helpful when changing variants on a USD Prim and wanting to test different variant selections.
    • New option added to the USD explorer to auto-expand the tree to the current selection.
    • Prim name column now auto-expands to fill available size of USD Explorer.
    • Arnold export
      • The scene hierarchy is now aligned better between MAXtoA and 3ds Max USD.
      • Instanced objects are now exported correctly.
      • inherited transformation matrices are now exported correctly.
  • Updated the labels and tooltips in the USD Preview Surface Material.

Animation

  • CAT
    • Cloning using Shift + Move for CAT Helper objects now work as expected with improved stability, no duplicated naming and no issues with Undo.
    • Resolved an issue where 3ds Max was not able to Undo the creation of CAT: Cloned Helper objects after a Shift + Move clone operation was performed.
    • Improved stability with scenes containing a Wire Parameter trying to access a CAT object it does not have access to.
    • Improved 3ds Max stability when deleting all CAT objects within a scene.
    • Resolved an issue with the CAT bone twist weights where certain values could cause 3ds Max to crash.
    • Resolved a crash that could occur with the CAT “Load Anim” and “Load Pose” actions.
    • Resolved issues where the viewport might be disabled when saving or loading CAT data or when loading saved Motion layer to ABS layer.
    • Viewport now updates a CAT rig properly after loading a local clip via script.
    • Resolved CAT Copy/Paste Layer stability issue when used in the Layer Manager.
    • Resolved issues with CAT scenes not loading due to loop references set in anim layers.
    • Restored Maxscript access for CAT’s “DigitData” and “CATSpineData2” parameters on CAT Digit and CAT Spine controllers which was has been disabled since 3ds Max 2020.
  • Resolved an issue when the Motion Panel is closed that could cause an edge case that might cause 3ds Max to crash.
  • Resolved an issue where the List Controller’s “List” table was not properly resizing its height to match changes that the user might set with the Windows display resolution scale options

Modeling

  • OpenSubDiv library has been updated to 3.6.0.
  • Improved the algorithm that is used with the CTRL based point-to-point select for polygons to get the better accuracy for models with dense polygon topology
  • When using the Unwrap UVW modifier with the Cylinder Mapping gizmo, some polygon faces might have been wrongly split along invisible support edges, causing incorrect UVs. We’ve updated this method to minimize face splitting and make UV editing easier.
  • Resolved an issue where loading a Boolean modifier scene could cause the memory utilization to increase and cause 3ds Max to crash.
  • Resolved an issue where some modifiers that set the ShowEndResults would cause an unnecessary stack re-evaluation when selected and if they are located at the top of the Stack.
  • Fixed a crash issue when creating or loading a new scene after using the Shape Check utility on a curve with self-intersections without exiting the utility first.
  • Fixed a crash issue that occurred in specific scenarios when executing Weld, Target Weld, or Clean Edge Removal on meshes lacking specified Normals within an Editable Poly or Edit Poly modifier.

Core

  • Qt 6.5.6, Pyside 6
  • OpenVDB 11.0, OpenColorIO 2.3.1, OpenEXR 3.2, OpenSubDiv 3.6.0, Python 3.11.4, FBX 2020.3.5.
  • When the user runs out of disk space while saving a scene file, they will no longer get the multiple “Can’t begin chunk inside Data chunk” dialogs. Now the user will receive a notification that they are out of disc space and will be prompted to save in another location.
  • Resolved an issue where the user could not add a custom attribute to a node due to faulty dependency loop testing.
  • Fixed a crash when opening a 3ds Max scene with isolated objects.
  • Fixed FBX import crash when FBX file contains Arnold materials.
  • Fixed a scene file loading crash when the user has an xref-ed multi-material, where a sub-material uses a non-key animation controller, and override material is enabled for the multi-material.
  • General performance improvement – A timer used to update the status of Container objects now performs an action only if Container objects exist
  • Material Library instances are now handled in the same manner as most ReferenceTargets in terms of lifetime control, reducing potential for memory leakage.

Performance

  • Object Color mode will disable all material evaluation completely. This is only way to disable animated OSL map evaluation while keeping the map in the scene.

UI

  • Command Panel visible items has been increased so no need to scroll when there are more than 20 items in the panel

Maxscript

  • Exposed maxops.GlobalScaleTime function to scale time in the same manner as is done via ‘Re-scale Time’ in Time Configuration dialog.
  • Added == and != support for MAXScript Interval values.
  • getPoint() and setPoint() functions are now available for CurveControl UI control.
  • Added optional arguments to windows.processPostedMessages. Default values correspond to legacy behavior. Also added additional methods that can be used instead of processPostedMessages in some cases.
  • Added following options to Interface7.FindNodeFromBaseObject: handleBranching – If true, if obj is a branch of an object (such as Boolean), will continue search using the object. preferSelected – If true, if find node that is not selected, continue searching and if find node that is selected return the selected node instead. These are also exposed to MAXScript via maxOps FPS.
  • Maxscript editor selection highlighting. is now case insensitive for Maxscript files.
  • When opening Save dialogs in Maxscript editor, the file filter that corresponds to the file extension of the current file is automatically selected.
  • MultiResIconLoader doesn’t return higher requested resolution for SVG

Viewport

  • By default, the value of shadow map size limit in the viewport has been increased from 512 to 4096. This value is persist across 3ds Max sessions that the setting is saved in .ini file.
  • Fixed Material dropped to an object directly from the Material list are black in the Viewport in Standard Quality.

Arnold

  • MAXtoA 5.7.0.0, which introduces Arnold 7.3.0.0 core.
  • Progressive dithered sampling
    Arnold now supports dithered samples in progressive and adaptive rendering. Dithering brings nicer noise distributions at low AA sample counts.
  • GPU Renderer Overhaul
    A large part of the GPU renderer was rewritten using NVIDIA OptiX 8. This allowed much faster startup times and better scaling on multiple GPUs. The following features are newly supported on GPU

    • multiple render sessions.
    • autobump on per-face displacement shaders, previously, autobump would use the first shader applied.
    • motion blur on the sphere primitive.
    • shader parameter on skydome lights.
    • polygons edge type in the wireframe shader.
    • OSL LPE writing via debug closures.
    • image shader file wrap mode.
    • ID mode in utility shader.
    • edgelength mode in utility shader.
    • improved GPU texture filtering logic, such that there is a closer match to the CPU renderer.
    • a number of fixes have been made to the GPU color management logic such that there is a closer match to the CPU renderer when rendering multiple sessions with different color management setting.
  • Global light sampling in volumes – The render time speedup when using global light sampling in volumes depends on the number of lights, but even scenes with only a few lights are faster to render.
  • Distance shader in reflections
  • New Overlay imager allows you to decorate or tag your renders by printing text over the rendered images.
  • Curves in thick mode are on average 10% faster (in some cases, more than 100% faster) and they look better in closeups.
  • The toon shader now outputs AOVs for direct lighting from lights that have a label in their aov parameter.
  • Imager setups can be exported and imported from arnold files (.ass, usd)
  • When you add imagers, they are automatically applied in the most useful order (for example, Light Mixers go first in the list). You can still re-order them manually if necessary.
  • You can select objects in the Arnold RenderView after a production render, as well as after an an interactive rendering.
  • The OSL compiler in MAXtoA now loads include files from the same directories used by 3ds Max for OSL files.
  • Arnold can now render MaterialX node graphs mixing standard library. DCCs loading the Arnold node definitions will benefit from the newly added UI metadata and provide a better user experience. Arnold also now uses MaterialX 1.38.8. This update includes new nodes from the MaterialX standard library.
  • Per-light-group indirect AOVs no longer include emission. Emissive surfaces now only appear in the “default” light group output. When using emission in shaders, the sum of the light group AOVs will now add up to the beauty pass.
  •  Autobump will now be evaluated in the SSS computation with the GPU renderer when the sss_use_autobump option is enabled, this matches the behavior when rendering on CPU.
  • The Intel denoiser now includes real-time denoising through NVIDIA and Intel GPU support. You can switch between Auto/CPU/GPU modes for the OIDN denoiser imager. Arnold now also provides accurate timing information for the denoiser in the log.
  • now aborts if there is a license error in a batch render. The option abort_on_license_fail is now true by default, and applies to batch renders only. This means you don’t have to check rendered image sequences for watermarks. Interactive renders do not abort, and have a watermark on license fail as usual. The environment variable ARNOLD_FORCE_ABORT_ON_LICENSE_FAIL overrides this default behavior (0 = batch and interactive render with watermarks on license fail, 1 = batch and interactive abort on license fail).
  • The render statistics now include the “license checkout time”, which is the time in microseconds spent on license checkout for a specific render. This is useful for diagnosing long checkout times when rendering in batch.
  • Generating a .tx file (maketx, autotx, AiMakeTx) now works even if the paths to the output .tx file do not exist: Arnold now creates those paths.
  • Arnold renders a few percent faster when there are many overlapping volumes.
  • Improved profiling – Procedural and volume intersection times are now listed separately, instead of being included with the parent BVH. Profiling has also been added in other areas, in particular multithreaded code where helper threads were not being accounted for. This should result in higher quality statistics.
  • USD
    • Update to USD 23.11: The USD version was updated USD from 22.11 to 23.11 in the procedural.
    • Light instances: You can now instance lights with a Point Instancer.
    • Visibility and Mattes on instances in Hydra: In the Hydra Render Delegate, the Arnold visibility and matte attributes now work on instances.
    • UDSZ files supported as file format: You can render usdz files with kick, and load them with the usd procedural.
    • Orthographic cameras in Hydra: Orthographic Cameras are now supported in the Hydra render delegate.
    • Pixel Aspect Ratio in Hydra: The Arnold Render Delegate now supports the pixelAspectRatio parameter in RenderSetting primitives

3dsMax 2024.2

New Conform Modifier

  • The Conform modifier places a spline or mesh onto the surface of one or more target meshes, allowing easy adjustment of the model’s appearance without explicit shaping. It supports animated source and target meshes for added flexibility. It provides two methods, Volume and Shrink Wrap.
  • Embree-based projection delivers fast performance.
  • Volume
    • tries to preserve the overall shape of the conform object by deforming only the bottom parts after it’s projected onto the target mesh. For example, you can use it for  conforming the flange to the pipe, without deforming the top portion of the flange.
    • 5 Direction controls are provided. Axis, Target Direction, Helper Origin, Vertex Normal,  Closest Point.
  • Shrink Wrap
    • shrinks the entire conform surface around the target, like wrapping a piece of cellophane (the conform object) around another object (the target object). As a result, the volume of the conform object is not preserved.
    • 3 Direction controls are provided. Axis, Target Direction, Helper Origin
  • Options – provides various options such as Offset, Strength for added flexibility
  • Advanced Selection Output allows passing various conform data as a soft selection channel such as Volume mode selection, Missed verts, Ray Distance, Min/Max Distance.
  • Cache button allows to cache the result in the modifier for faster further modification and file loading.

Qtfied/Revamped Assign Controller rollout in Motion panel and Assign Controller dialog

  • The Assign Controller rollout has been rewritten with QT and now shows the entire track tree view for the selected object.
  • Navigate with the Up or Down arrow keys
  • Rollout management for the Motion panel has been rewritten. now Assign Controller rollout will be open by default and retain Assign Controller rollout open and closes state between sessions
  • Controllers in the Assign Controller rollout in Motion panel support the exact same right click menu that you can see in other areas of 3dsMax such as the Modify panel. This means all the new Paste options which were added in 3dsMax 2024.1, the new Assign Controller sub menus,  Show in TrackView, Show in Parameter Wire Dialog are also available in the Motion panel right click menu.
  • Assign Controller – You can now assign a controller from the right click sub-menu without opening Assign Controller dialog
  • Improved and more stable playback performance when playing back their animation when the Motion panel is also open.
  • Assign Controller dialog also has been Qtfied

Animation

  • List Controller
    • Append – Add a new sub controller and assign the default controller.
    • Assign – opens Assign Controller dialog so the user can change/assign a new sub controller type.
    • Controller and Weight spinner now supports the usual right click menu functionalities.
    • Fixed a bug with List Controllers when using the Delete or Cut actions where the weight value of the remaining controllers did not update correctly
    • Resolved a crash that could occur when deleting an in list controller with instances
  • Track View
    • Updated the intervals at which the Script Controllers. Track View performance should be 2x better.
    • Enhanced the curve drawing for Script controller. Now the lines connect properly when hitting the out of range dotted lines. Also when zoomed in, the curve draws less steps.
    • Resolved an issue where the Mini Curve Editor can grow slightly taller each time it is opened and closed in the 3ds Max session.
  • Motion Paths
    • When using a Float List controller on your Position X, Y and or Z  PositionXYZ transforms, the active sub controllers tangents that are used to drive the position animation are now displayed in the viewport, and can be influenced, when using Motion Trails
  • Biped
    • Fixed the issue when pasting data between Xtra bones where the “Paste” and “Paste Opposite” data was not properly interpolated against the existing keys, causing a “spike” or “noise” in the animation curve. Users would need to resolve this issue through a workaround by reloading their scene, which impacts workflow and productivity.
    • Reduced the number of notifications that the Biped Motion Mixer window sends. Biped’s motion mixer was always being notified when the time changes.Now it is notified only when Biped with motion mixer was used in the scene. This should help give a small performance improvement when working with the Motion Mixer.
    • Updated some of the defaults on the .BIP file save dialog.
      • “Save MAX Objects” is set to OFF by default
      • The “Keyframe per frame” option is now set to OFF by default.
      • “Save list controllers” is also now OFF by default
    • The Biped List Controller UI has been updated
  • CAT
    • Fixed the CAT Capture Animation UI – This fix corrects issues with Auto Map, along with save and load mapping that prevented this functionality from operating as expected.
    • Fixed crashes that could occur when playing back animation data on a CAT rig caused by destructive changes to the layer’s controllers or limb references. After this update, the corrupt animation data will not play.
    • FIxed the crash when users detached a CAT Tail bone (or series of CAT tail bones) from the main rig. This is because detaching the CAT Tail bone breaks a dependency within the CAT rig. Now 3ds Max handles this broken dependency, allowing animators to continue to work.
    • Fixed crash while loading Clips onto a CAT rig with a LookAt constraint by improving LookAt constraint code to handle CAT bone Clip data.
    • Resolved a crash that could occur when saving a CAT Clip when there is no animation data in the CAT layer (or any of the CAT layers)
    • When loading or double clicking a CAT Rig, the rig data will be correctly loaded at the location of the CAT Parent.
    • Mirroring CAT Muscles, has been documented to address a longstanding issue where CAT mirrored muscle Pivots would cause the muscle strand to rotate around the longitudinal axes.
  • Expression Controller
    • “Assign to Controller” button is renamed as “Assign to Controller / Node” when you select the Vector variable to show the user can select node and get the node position.

Data Channel Modifier

  • New – Maxscript Process Operator
    • Allow to use Maxscript to process channels
  • New – Expression Float/Point3 Process Operator
    • The interface is the same as the Expression controller. If you know how to use the Expression controller, you already know how to use this. This makes the conditional and the float calculation a lot easier.
    • 2 separate operators each incoming data type
    • Use InValue built-in variable for the incoming channel data
  • New – Presets
    • Explode Elements- Explode elements from the bounding box center. You can adjust Scale op value to control the push amount.
    • Map to Soft Selection – Convert map brightness value as soft selection. It is the same as Texture mode in Vol.Select modifier.
    • Random Element Color – Set random uv value per elements. You can use this random number for driving drive OSL maps. For example, color or other parameter variation for tree leaves.
    • Smooth Push – Smooth out normals and then push. It helps to prevent mesh overlapping when the surface is noisy. You can control the smooth amount and push amount with Smooth and Scale op.
  • Resizer handle has been added to the Data Channel Modifier’s Operator Stack.
  • Fixed the issue that Maxscript Input Op, theNode was returning undefined

Performance

  • Vol.Select
    • By Gizmo(Box, Sphere, Cylinder)/MatID/SmoothingGroup mode – 2x – 3x.
    • By Mesh mode – 4x-8x(without Soft Selection) – 5x-15x(with Soft Selection)
    • By Texture – 1.5x-4.5x
    • Biggest fix came from ignoring soft selection for face mode. Face doesn’t have sub-object selection and Vol.Select was still calculating it. Select by mesh on half mil verts shows 15000% improvement! 0.16fps vs 42.829fps.
  • Push – 50-100% faster for Mesh
  • Relax – 40% faster for Mesh
  • XForm – 2x – 3x faster for Mesh, 8x-9x faster for Poly
  • Boolean – about 30%, the result can vary depending on geometry.
  • Retopology – about 30%, the result can vary depending on geometry.
  • Skin – up to 20% for the case which there are multiple skins for small/medium meshes
  • Animated Splines will now properly notify 3ds Max that they have changed, this change will help to improve viewport performance.

Color Management

  • Color Management in 3ds Max has exited Technology Preview.
  • Color Management Preferences window now modeless and dockable so edits can be made while working in 3ds Max
  • New Color Management mode: “Environment Variable”
    • A new OCIO mode has been added called Environment Mode. Previously, if an OCIO Environment variable was present, and the user specified a custom path, they would clash in some situations. It was not clear which was being used. To avoid these conflicts, the new Environment Variable mode uses only the environment variable to be the config source. In turn, the Custom Config mode will never use the environment variable.
  • Rules can now be customized  in the UI. Users can add a new role, change the existing rule, reorder rows, remove items, and resize columns.
  • Rules can now be exported and imported as standard OCIO config files
    • changes can now be undone, and rules can be imported and exported as standard OCIO config files. Exporting and Importing rules are accessible through MaxScript as well. Bitmaps with input rules set to Automatic will have their rules automatically reapplied.
  • The new Color Management tab in the Render Message Window shows any errors due to improper config files. It will also be logged in the specified log file.
  • Users can manually enter values for HEX codes into the Color Picker.
  • Spectral Conversion Colors that are specified with color (kelvin) temperature will now work with all rendering color spaces, not just sRGB.
  • OCIO and OIIO updated Open Color IO has been updated to 2.2.1, and Open Image IO has been updated to 2.4.13.0 in 3ds Max 2024.2.
  • Color picker HSV sliders are now more stable during transient ambiguous colors
  • The Display and View Transform settings applied by the user in the Color Management OCIO modes are now saved with the scene file and do not reset to the default “Automatic” setting when the scene is reloaded.

Boolean Modifier Updates

  • When a captured operand is selected, a separator bar will now display between the operands stack and the Boolean modifier to clearly denote that you are accessing a captured operand’s history.When the operand object or its modifiers are instanced the bar will be colored grey, otherwise the bar will be displayed as a teal color.
  • Better coplanar face handling. The coplanar surfaces are not handled by Carve at all, rather, Max perturb the overlapping faces apart slightly, call Carve to perform the portion of the Boolean operation associated with any non-zero volumes of intersection, then finally move the faces back together, excised the area of overlap, and stitch together the resulting open edges.
  • Operands’s pivot is now properly maintained. Making it easier to further manipulate the position/rotation/scale of the operand inside the Boolean modifier.
  • Cut and paste operations now work with both captured operands and live operands. Paste operations must be performed in the Boolean modifier where the original cut was made.
  • If you turn off Use Material, the original material ID of perands will be preserved as is.
  • Improved non-manifold vertices and edges, as well as spur edges clean up. This will provide better mesh topology and more stable animation.
  • Processing mesh based boolean operations is now 35% faster.
  • When you are not using a Live Reference operand, the Pivot Align button will now be disabled
  • OpenVDB mode supports animated parameters on operand objects.
  • OpenVDB modes will generate a hollow mesh if the source is hollow.

Modeling

  • Spline
    • New Enable Shape Angle Constraints
      • Snap Options (Tools > Grids and Snaps > Grid and Snap Settings > Options panel) lets you define your own angle constraint when creating a line object using the Create panel or the Create Line operation in the Editable Spline or Edit Spline Modifier.
      • Previously, holding Shift (absolute values) or Ctrl (relative values) constrained line creation to 90 degree value changes. Now, the default of 15.0 degrees can be changed to any value or turned off altogether to customize the snapping used to constrain the line creation
    • Spline End Cap Material ID
      • New behavior for working with spline end caps and Material IDs has been introduced:The end caps of renderable splines now use the same Material ID as the rest of the spline. If a renderable spline is assigned a multi/sub-object material, changing the Material ID of a segment also changes the ID of its attached cap.
      • Note: To take advantage of this multi/sub-object material update, edit the UseFixedRenderableEndCapMaterialID parameter in the Shapes section of the 3dsMax.ini file (C:\Users\<username>\AppData\Local\Autodesk\3dsMax\<year> – 64bit\<language>) to UseFixedRenderableEndCapMaterialID=0 and restart 3ds Max.
  • Vol.Select
    • Material ID, Smoothing Group ID can be animated now
  • Camera Map Modifier
    • added “Animated Camera” checkbox. When this is on, the map projection will be updated on each frame.
  • Retopology
    • updated to ReForm 14.0.3 which improves the success rate and makes processing faster up to 30%.
  • The Unfold3D Pack,
    • now respect the current UV selection, and the operation is only applied to the selection.
  • Array modifier
    • fixed “First Middle Last” type where it required a minimum of 4 elements to operate.
  • LSCM(Quick Peel)
    • Fixed a crash that can occur with the due to a mismatch of the data found in the geometry and in UV data
  • Smart Extrude
    • Resolved an issue where shading artifacts could occur when performing a non-uniform scale.
  • Optimize Modifier
    • Resolved a crash that could occur when it attempts to perform its operations to malformed mesh data (such as data from Sketchup).
  • Symmetry modifier
    • when working with older 3ds Max scenes (2021 or earlier). The modifier was not correctly utilizing the same specific version of the Symmetry code when the object was cloned. This could change the upstream topology and damage the stack result.

SME

  • New nodes should respect the hide-unused preference that can be toggled by the toolbar button with no node selected.
  • Slate Material Editor right click menus are now Qtfied and dark gray in the Dark Mode.
  • Fixed the SME>Show Shaded/Realistic Material in Viewport button functionality.
  • Restored the tooltips on buttons in SME when the focus is on the material editor window.
  • Resolved situations where a docked SME would grab focus of the Alt key from the main UI preventing many common keyboard shortcuts from being available. Note that pressing the Alt key will no longer allow the user to access the SME menus when it is in a docked state.
  • When the Thumbnail cache is deleted, there will not be any cache stored left and consumed by Compound nodes.

MaxFluid

  • Motionfield mesh error has been fixed.

Maxscript

  • Scripting Editor Selected word highlighting – Scripting editor now highlights all instances of a selected word in the editor.
  • Two new commands have been added to the Scripting Editor File Menu
    • Copy Path (to copy the path of the current script to the clipboard)
    • Open Containing Folder (to open the folder for the current script).
  • GlobalScaleTime is now exposed. maxOps.GlobalScaleTime <interval>oldSegment <interval>newSegment modifyTimeline:<boolean> scaleToWholeFrames:<boolean>
  • thehold.getUndoNames() and thehold.getRedoNames() – is added to access the undo/redo stack string
  • getClassInstances – if you give an array of class as the argument, this function will return a dictionary with class as keys.
  • The callbacks.addScript() function can now take a fileName: keyword argument that is a Python script.
  • The LoadSaveAnimation interface contains new methods for getting map files and directories: getAnimFileDirectories(), getMapFiles() and getMultLoadAndMapFileFromDlg().
  • The importFile(), exportFile(), and resetMaxFile() functions now take a quiet keyword argument, which is consistent with quitMax().
  • Fixed ‘fileProperties.getNumProperties #contents’ to properly handle properties added before/after saving a scene file.
  • ignoreSSSEState: now defaults to false for safeExecute, safeReadValue, safeReadExpr

Core

  • New – Asset Tracker: Check Network Paths  – this new option, enabled by default, that verifies network paths whenever the Tracker is opened or refreshed.
  • Now when you save a file, unnecessary data is detected and no longer saved. Previously, every time scenes were Merged or XReffed the unnecessary data could accumulate and result in huge files and performance slowdowns.
  • Empty Animation Layers, Note Tracks, or Note Keys
  • Duplicate Note Track keys
  • Note Tracks persisting on file load, creation, or reset.
  • Provide better diagnostic info in ‘Can’t begin chunk inside Data chunk’ error message box, display error dialog at most once per file save operation.
  • Fix crash when opening/saving file in folder with long name (260+ characters)
  • Fixed crash when Detaching group nodes when list of nodes to detach include all the nodes in a group plus their group head.
  • Fixed issues with Shift+Move cloning of nodes when selected nodes had unselected targets, and more than one copy was being made.
  • Fixed a crash that could occur with the Collapse Utility
  • HasBoneChildren() method has been added to prevent frequent BaseNode::NumberOfBoneChildren() call

InterOp

  • Export dialog text box is pre filled with current scene file name
  • The legacy SketchUp importer has been removed, and the default importer can now read SketchUp linework, including lines, arcs, polygon curves, polylines, and segmented lines. Linework is imported into 3ds Max as spline objects. See SketchUp (SKP) files.
  • A new Image Quality option is now available in the SketchUp Import Settings window, improving the import speed for some SketchUp models. When enabled, distorted texture maps are redrawn. When disabled (default), import is faster, but with possible image distortion.
  • FBX 2020.3.4
  • Updated the “Adobe Illustrator” export to “Adobe Illustrator 8” to show the supported version

Viewport

  • Now one maximized viewport is the default.
  • Selection Bracket is off by default now.
  • Viewport Clipping Plane is now fully exposed to MXS.
    • vpSetting = NitrousGraphicsManager.GetActiveViewportSetting()
    • vpSetting.ViewportClippingEnabled = true
    • vpSetting.ViewportClipNear = 0.05
    • vpSetting.ViewportClipFar = 0.8
    • vpSetting.ResetViewportClipNearFar()
  • Display Resolution settings are exposed to Maxscript
    • vpSetting = NitrousGraphicsManager.GetActiveViewportSetting()
    • vpSetting.TextureSizeLimit
    • vpSetting.ProceduralTextureSizeLimit
    • vpSetting.BackgroundTextureSizeLimit

Rendering

  • Physical Camera – it will update properly when only the Zoom is animated and Specify FOV is unchecked.
  • Scanline>Raytrace Message checkbox remains OFF when importing objects from scenes having this checkbox ON.

MaxToA

  • MAXtoA 5.6.5.1 for Arnold 7.2.6.1.
  • Improved interactivity when modifying large scenes. When editing lights or shaders in scenes with millions of instances, the time to first pixel is nearly instantaneous instead of having to wait multiple seconds. Modifying nodes during an interactive session now usually results in an update of just the modified node, not of all nodes. In scenes with many nodes, this can substantially speed up interactive node updates. In case of missing updates, you can disable this feature by setting options.enable_fast_ipr to false. An Arnold cache flush can also be used to trigger all nodes to update again.
  • The efficiency of global light sampling with indirect lighting has been improved in many cases.
  • Reduced numerical precision differences across CPU vendors
  • Reduced noise from mesh lights in volumes
  • A new kick flag -aov selects the AOV to show in the kick display window.
  • If the OCIO color_manager is not given a config filename and the OCIO environment variable is not defined, Arnold will now use the builtin config. Previously it would fail with a warning and not apply any color conversions.
  • You can now control whether autobump is visible on SSS for specific shapes, instead of relying on the global control, just as you can for the other autobump visibility controls. This setting has subtle effects and can increase rendering times, so enabling it only where it matters will help optimize scenes.
  • Global Light Sampling (GLS) is now available with GPU rendering. Many scenes with moderate to large number of lights render 2-6x faster with GLS. Scenes that do not benefit from GLS tend to be a few percent faster or slower.
  • Supports multiple outputs, such as the new outputs of the distance shader or the state shaders.
  • Added out_distance and out_direction output parameters to the distance shader, which return the direction and distance to the nearest surface, respectively. The shader still returns the color-mapped result by default, which is now available as the out_rgb parameter.
  • Alpha in PNG AOV output – AOVs saved to the PNG format now include an alpha channel, and you can choose between unpremultiplied and premultiplied alpha
  • The Qt version of MAXtoA now matches the Qt version of 3ds Max (for example, MAXtoA for 3ds Max 2024 uses the same Qt version as 3ds Max 2025).
  • Arnold RenderView (ARV) framerate improvements
  • The Material Editor no longer generates tx files when it creates the swatches for a material library
  • Toon shader now does a better job of detecting angle threshold silhouettes that are internal to a single object. This is most apparent in the regions between nearly parallel surfaces of an object that are at different distances to the camera.
  • Improved time to first pixel (up to 10% for scenes containing many large meshes) and overall render time (up to 5% for scenes with multiple flat mesh lights).
  • Multiple optimizations to make interactive renders snappier by improving the interruption rate when modifying the scene.
  • Reduced noise with Global Light Sampling for surfaces near or behind flat lights (disk or quad lights).
  • For interactive renders (IPR), the dependency graph is always enabled, regardless of the value of options.enable_dependency_graph. Interactive rendering updates for scene changes are improved by (and in some cases require) the dependency graph, so enforcing this setting avoids potential crashes.
  • Added new boolean parameters skip_alpha and unpremult_alpha to the driver_png node. They behave in the same way as in the TIFF driver, with skip_alpha ignoring the alpha channel, and unpremult_alpha selecting either unassociated alpha (on) or associated alpha (off). Please note that PNG files with associated alpha are not supported by the PNG standard. (ARNOLD-10540)
  • The OCIO color manager now supports the use of OCIO color space aliases.
  • Support multipart scanline EXRs
  • USD
    • Now possible to render MaterialX nodes defined in third-party node definitions using the ARNOLD_MATERIALX_NODE_DEFINITIONS environment variable
    • Add Arnold render status and estimated render time to viewport annotation
    • Add support for camera filtermap and uv_remap
    • forces USD to generate non-random prototype names for instances when using the USD_ASSIGN_PROTOTYPES_DETERMINISTICALLY environment variable. This addresses frame stability issues when using Cryptomatte.
    • Add a Mtl scope for materials when authoring usd file.
    • Add AI_RAY_SUBSURFACE visibility flag support in the render delegate and procedural.
    • Custom MaterialX node definitions MaterialX node definitions placed under a folder defined by the environment variable PXR_MTLX_STDLIB_SEARCH_PATHS are now supported when rendered with Arnold, through USD or Hydra
    • ArnoldProceduralCustom support in Hydra Primitives ArnoldProceduralCustom are now supported inside of Hydra, and allow to render 3rd party Arnold procedural nodes 

Civil View

  • CivilView Signs are now created with correct size
  • CivilView – Fix .NET runtime exception when importing traffic simulation .FZP file
  • CivilView traffic simulation (FZP) can now import PTV Vissim V11 files

USD 0.5.1

MaterialX

  • MaterialX Material – This scripted material can load MaterialX files (.mtlx) into the Material Editor. Under the hood, it is actually importing the MaterialX files into a Physical Material composed of an OSL network of textures.
  • MaterialX Importer – Allow to import .mtlx document as Physical material and OSL maps
  • MaterialX maps – MaterialX standard library nodes are implemented ax mx_ OSL maps in Slate. This allows users to edit/author MaterialX using 3dsMax native material editors.
  • MaterialX Exporter – allow to export a valid Physical material tree as MaterialX document.
  • MAXScript – The MaterialX Importer and Exporter are exposed to MAXScript to allow automation and scripting.
  • Integration with USD – The MaterialX plug-in comes with a Shader Writer for the 3ds Max USD Plug-in that will allow the USD export to bind references to the MaterialX files to USD Prims when exporting scenes using a MaterialX Material

Blendshape Export

  • Export Morpher modifier channels as Blend Shapes in USD.

Performance Improvement

  • Improved the performance of generating preview materials in the viewport for a USD Stage Object set to display materials.
  • Refactored the USD Exporter code to be significantly faster at exporting complex scenes with interdependencies that are animated.

Stage Object

  • Animation Frame Range now correctly accepts negative values.
  • Added a button in USDStageObject to clear the current session layer.
  • Not allow an empty stage mask value. If and empty string value is given, the value is automatically set to “/”.

Exporter

  • USD Exporter UI to be organized into rollouts.
  • A ShaderWriter is available that exports the MaterialX scripted material in the USD file as a Mtlx Reference.
  • Now sets Map Channel 1 to be named “st” in meshes by default.
  • The default material scope in the USD Exporter from “Materials” to “mtl” to align with Maya.
  • Export non-renderable geometry objects with the Guide purpose.
  • Export Group Nodes as the USD “group” kind.
  • Changed the defaultPrim to “root” in the USD Exporter.
  • Properly bind materials to USD GeomSubsets when the material IDs on the mesh are greater than the Multimaterial numsubs.

Exporter SDK Changes

  • Added a new Python class to export materials to USD and bind to prims to help scripters and tool developers to build custom tools with materials.
  • Major changes to the PrimWriter API. The PrimWriter interface now also better aligns with the ShaderWriter interface.
  • Every Node->Prim translation now gets its own PrimWriter instance. Previously, a single instance was created for the entire export.
  • The CanConvert() method was renamed to CanExport() and was made static. A static_assert makes sure the method exists in derived PrimWriters.
  • As a consequence, the PrimWriter’s methods no longer receive a 3dsMax node as argument, instead, the node can be retrieved using PrimWriter::GetNode().
  • PrimWriter::Write() is now called multiple times on animated data, for each frame that needs to be exported.
  • New PrimWriter method GetValidityInterval() : Enables PrimWriter to specify the validity interval of their exported data at a certain time. From this, the exporter figures out at what frames PrimWriter::Write() needs to be called (base implementation returns the object’s validity interval).
  • New header TimeUtils.h
  • The TimeConfig class has been modified to ease usage, all conversions TimeValue/3dsMax frame/TimeCode are now handled from there.
  • New class “ExportTime” : Represents a single time sample export configuration. I.e. the 3dsMax time value, and what USD timecode it corresponds to.
  • MeshConverter::ConvertToUSDMesh() now also receives a specific time frame to convert the mesh at.

USDView

  • USDView that ships with the 3ds Max USD plugin to display MaterialX.
  • Added the ability to supply an explicit python.exe path (via –python-exe) to the USD tools bundled with the USD Plugin. Read RunUsdTool.bat in the bin folder of the plugin for more information.

3dsMax 2024.1

Boolean Modifier Improvements

  • New caching mechanism – Boolean modifier will cache the result and save in the scene file to reduce loading time and improve stability. But, this means you can’t load 3dsMax 2024.1 max file with cache in 3dsMax 2024.To get around this problem, you can turn off the caching(SaveFinalResult) through this MaxScript command “BooleanModifierInterface.SaveFinalResult=false”. This will cause all Boolean modifiers in the scene to save WITHOUT the final result cache. Such files will load properly into any version of Boolean modifier.
  • Normal support – Now fully supports smoothing groups, specified normals, and explicit normals that can exist on input boolean operands. When a mixture of smoothing groups, specified normals and explicit normals is used, all of the data in the boolean operation is converted to explicit normals.
  • The UI will now display an “!” on any operands that are detected as not being watertight. Non-water tight operands in a Boolean operation have a higher degree chance of causing failures with its operand, or subsequent boolean operands.
  • Support “hollow” objects. 
  • Resolved an issue with picking a group as an operand. It was not keeing transform correctly.
  • Resolved an issue where the results of the Boolean could generate physically small elements that also had a small number of faces. This could create an issue with subsequent Boolean operations or modifiers. They are automatically removed now.
  • Resolved a crash that could occur in the Boolean Modifier if the user deleted all of the operands from the Operands List.
  • Resolved a crash that could occur in the Undo/Redo stack when removing operands from the Operands List in the Boolean Modifier.
  • Resolved an issue the output could be incorrect when a Folder is used for OpenVDB mode.
  • Fixed an issue where operand objects with animation data or animated parameters could cause 3ds Max to lockup when using the Boolean Modifiers OpenVDB mode.
  • When extracting an operand from the Boolean modifier, the extracted object will now be correctly shaded as a solid object, instead of transparent.

Array Modifier Updates

  • New Array by Element parameters
    • First, Middle, Last – the First and Last elements specified are used only once at the beginning and the end, while the remaining elements are repeated throughout the distribution. Artists can specify the First, Middle, and Last through the element arrangement in X, Y, or Z space, or through the Clone ID of the element.
    • Ordered – the cloning of elements in the array is performed in the same repeating pattern for how the elements are arranged in the mesh data, through X, Y, or Z position on the initial mesh data, or through the Clone ID of the element.
  • New Phyllotaxis Distribution method parameters
    • Angle Variation enables the location of each successive clone to be slightly offset along the rotation distribution.
    • Seed controls the randomness at which the variation is applied to clones.
  • Center By in the Arrange by Elements options is supported for Surface distribution
  • Resolved an issue when using the Array Modifier’s Spline distribution type where Arrange by Elements > Random type would not randomize elements across Y and Z values.

Modeling

  • Splines
    • Connect open knots – When manipulating a spline that has more than one open element, you can now use Automatic Welding and Insert mode to quickly draw/continue from an open knot of one element to an open knot of another element. This workflow results in two elements that are correctly welded and connected together as one continuous element.
    • Close Spline prompt – A Close Spline prompt no longer appears when using operations found in the Edit Spline modifier or Editable Spline object, or when using Automatic Weld to close an open spline element. This update lets you continue your spline creation workflow without interruption.
    • New vertices respect neighboring knot types – When inserting new vertices on a spline, the knot type of the new vertex is based on the knot types of its neighboring vertices.
      • If both neighboring vertices are the same knot type, like Corner, the new vertex inherits the Corner type.
      • If the neighboring vertices are not the same knot type, for example one is Bezier and one is Corner, the new vertex inherits the Bezier type.
      • This update affects the Edit Spline modifier and Editable Spline’s Refine, CrossInsert, and Divide operations as well as Shape Booleans, Chamfer/Fillet modifier, and the Boolean modifier.
    • New Vertex Type parameter is now respected – When working with Editable Splines or the Edit Spline modifier, creating a new vertex in Create Line and Insert modes respects the selected New Vertex Type parameter (Geometry rollout)
    • Improved Normalize Spline modifier so that it will better respect the incoming spline curve data as it rebuilds the spline. This fix has been versioned so that it will only apply to new applications of the Normalize Spline and not affect scenes that already utilize the modifier.
  • Smart Extrude
    • When Smart Extrude, the faces that are not planar to previously existing geometry, will be automatically smoothed if they are within 30 degrees of tolerance from one another.
    • When performing a Smart Extrude with Editable Poly objects. 3ds Max will attempt to utilize the existing normals of neighboring faces when the extrusion is co-planar.
  • Explicit normal
    • Explicit normal preservation – Turn to Poly, Vol. Select, Mesh Select, MaterialByElement, UVW Mapping Clear, UVW Mapping Add and Select By Channel modifiers on a Mesh class object.
    • Explicit Normals are now supported on a Mesh class object when using the Maxscript call modifiersEdit_Normals.EditNormalsMod.MakeExplicit ()
    • A bug with MNFace::Insert was fixed which could affect Specified Normals when you are adding normals due to a topology change.
  • Path Deform
    • If the Path Deform spline path is smaller than the size of the Object that is being deformed, the object was disappearing. This is fixed.
  • Volume Select
    • Fixed an issue where the OSL Map that it uses would not display in the viewport if the Material Editor was not open
  • Shell
    • Fixed an issue with making non-manifold UV data.

Performance

  • VertexPaint – various optimization provide much faster performance for highres mesh painting, For example, unaltered geometry and topology channels would not be evaluated. The world space bounding box is cached while painting. Brush falloff curve now utilizes a precomputed lookup table.
  • FFD 2x2x2, FFD 3x3x3, FFD 4x4x4, FFD(box), FFD(box) Space Wrap is now up to 2x faster.
  • Adding keys for the Bezier controllers and the TCB Rotation controller has been optimized – All Bezier controllers are now up to 30x faster. TBC rotation controller is up to 4.5x faster.

User-defined defaults

  • Set as New Default – takes the current parameter value and sets it as default. This change persists not only for the current session, but remains the default until you change or reset it. You can return to this new default value with the existing Use Default (Ctrl + right-click) that is already in the right-click menu.
  • Restore to Factory Default – to return the value to what shipped with 3ds Max.

Animation

  • Animation Controller
    • Copy and Paste Animation in right-click menu no longer require controllers to be pre-assigned. 3ds Max now assigns the default controller automatically while copying.
    • The right-click Copy/Paste menu will show the parameter name that you are copying and pasting.
    • Copy, and then Paste – Copy (or Paste – Instance) directly from the parameter in the main UI to controllers in the Track View
    • Assign Controller and Reset to Default Control options have been added to the right-click menu.
  • Character Studio
    • Resolved a crash that can occur when parenting an Biped Xtra Bone to a Biped Nub object. Xtras are now blocked from being parented to the nub objects
    • Fixed a crash that could occur when animating a part of the Biped that uses an IK Target and your active time range does not start at frame 0.
    • When using the Biped Dope Sheet, a crash could occur when extending or sliding a footstep past the last footstep; as well as fixed a regression where sliding, extending footsteps were causing crashes.
  • Fixed an issue where when the user is driving the vertex deformation of the Skin Modifier with an animated Spline object instead of bones The object would not update properly in the viewport when the frame changes unless the object was selected and the modify command panel was active with the Skin modifier selected.  It still required the listed selection workaround.
  • Resolved an issue with the Morpher modifier where it was using the modifier selection instead of the channel selection. This could result in scenes created in previous versions of 3ds Max having their Morpher data not playback as expected.
  • Fixed an issue with the Offset Controller where it was not updating the transform matrix caching after it was applied
  • Resolved a crash that could occur when objects or controllers with note tracks in the curve editor or dope sheet were cloned and then the user attempts to undo the clone action.
  • Resolved a crash when using a Link Constraint and its linkParams parameter.
  • Resolved a crash that could occur when attempting to undo a “Delete Selected Animation” command that was applied to Biped objects, Bones, Link Constraints, and other 3ds Max objects.
  • Fixed an issue with the Curve Editor where the Isolate Curve button was not properly updating it’s state when active.

Color Management

  • Sliders in the Color Selector dialog indicate values that cannot be reproduced on your display. In addition, there is a warning when the selected color is out of gamut for your display or rendering space.
  • For UI colors and non-color data, the numeric columns in the Color Selector show the same values in float and integer format, rather than the scene and display values.
  • Added “ConvertColor” function to the “ColorPipelineMgr” MXS interface to transform single colors (Point4)
  • Added support to load OCIO archive files (ocioz extension) in the color management settings.
  • MXS Bitmap creation function now takes optional “colorSpace” parameter to assign a color space to the created bitmap.
  • Color Management for the viewport is disabled using legacy drivers. OCIO is still selectable but will affect only rendering.
  • Color Management: Output Defaults will now filter Views based on Display as expected
  • Fixed incorrect Color Management>Preference UI when loading OCIO files with long names (view transform etc…)
  • OSL version has been upgraded to 1.12.9.0

Slate Material Editor

  • Import multiple images at once with Drag&Drop
  • Bitmaps added in SME through Drag&Drop have Color Management rules applied.
  • SME>Scene Materials>Show Sub-Tree is turned off by default.
  • SME>Scene Materials>Display Group>Text by default.
  • Fixed missing triangle highlight for a material used in a scene when loading an old file
  • Fixed unnecessary rendering on nodes inside a Compound each time the Compound is opened.
  • New properties and methods has been exposed for Slate ME Node interface. .width .height .hideUnusedNodeSlots ShowAllAdditionalParams <boolean>show openMode: {#topLevelOnly|#recursive}
  • New methods have been added to the NodeView interface for selecting and laying out nodes: GetSelectedSceneMaterials(), GetAllSceneMaterials(), and LayoutAll().

Viewport

  • Selection Brackets is off by default.
  • DoF based on Physical Camera>Custom>Focus Distance is correct in the viewport.
  • Fixed issue with MaxScript when setting a region with ActiveShade in the viewport.

Rendering

  • Rendered images and sequences saved from Quicksilver and Arnold are also correct.
  • Fixed incorrect loop reset when reducing the number of materials in a Multi-Sub material applied to an object.
  • Fixed a crash produced when opening a scene containing an OSL Uber Bitmap/OSL Bitmap Lookup loading a UDIM sequence.
  • Fixed Color Picker sending incorrect OnCancel() notification when pressing OK
  • Fixed artifacts in the viewport and rendering when using OSL. The issue can happen when using OSL nodes and Legacy Bitmap in the same material tree.
  • PNG files can now be saved as 8-bit Greyscale again as expected.
  • Colors shown in the color picker now match the colors shown in the UI allowing easier customization of UI colors.
  • Viewport Canvas settings can be saved and loaded. Fixed MXS exception.

Arnold/MaxToA

  • MAXtoA 5.6.2.0 for Arnold 7.2.1.1
  • AOV Wizard: The updated AOV manager consolidates the two existing “Wizard” functionalities into a single streamlined AOV Wizard experience. You can now set up the most useful set of AOVs with a few clicks.
  • Automatic Cryptomatte setup: The required Cryptomatte AOV shader is now automatically added when you create any Cryptomatte AOV and launch a render.
  • Ability to set Crypto Asset tags on objects : The Arnold Properties modifier can now set the Crypto Asset tag on one (or many!) objects, unleashing the full benefits of the crypto_asset AOV.
  • Arnold RenderView Log window : The Arnold RenderView logging window is now available in MAXtoA, which gives a searchable view into the Arnold render logs.

ATF Importer

  • Supports NX 2212, SolidEdge 2023, and SolidWorks2023

Core

  • Fix crash when various file operation where path name >= 260 characters. Importing files, or doing drag and drop of files, saving bitmap files, exporting files
  • Fixed issue with node name numbering when cloning nodes with a very large number (214748364765564 or greater) at the end of the node name.
  • Fixed issue with loading of application packages that specify a Components type that is not one the predefined types. If the Components entry should not be handled due to SeriesMin/SeriesMax, no error message should be generated that the Components type is not recognized.
  • Fixed issue where only the first UI element associated with parameters assigned the same controller were updated when the parameter value was changed.
  • Now the 3ds Max Plugin Package environment variable could be  appended or pre-pended to as many times as needed. Removing however is still blocked for variables already defined in a package
  • Fixed a bug where custom attributes with a function that used keyword “this” would trigger a syntax error.
  • When doing SaveNodes or Save Selected, the saved scene material lib will contain only the materials on those nodes and those otherwise used

MAXScript

  • Added Maxscript method for setting/clearing current scene file name is exposed. Setting name via this method also updates title bar. setCurrentSceneFileName “hello.max” returns true and title bar is updated. if you set “”, the session will become untitled session, Save file dialog will appear when you reset or loading other files.
  • The #forever and #never options for Interval construct an interval with effectively an eternal time span, or with no time span, respectively.
  • The Array, Dictionary, and DataPair values can now be compared using the deepEqual() function.
  • Two new functions allow you to get and set user-defined properties on nodes using Dictionary values: getUserPropsAsDict() and setUserPropsAsDict().
  • improved the performance with deep copy on some data types and added a new flag copyAllValuesAsUnique. When set to true deepcopy will use the faster legacy method. It will run faster as all values will be copied as unique and we will not check for duplicate values in a list.
  • Fixed ‘fileProperties.getNumProperties #contents’ to properly handle properties added before/after saving a scene file.
  • ignoreSSSEState: now defaults to false for safeExecute, safeReadValue, safeReadExpr

Civil View

  • CivilView Signs are now created with correct size
  • CivilView – Fix .NET runtime exception when importing traffic simulation .FZP file
  • CivilView traffic simulation (FZP) can now import PTV Vissim V11 files

3dsMax 2024

New OCIO v2 based Color Management 

  • Until 2024 3ds max has assumed color spaces with sRGB primaries and provided color management via de-gamma/re-gamma workflow. That sRGB assumption removed. Also color processing pathways, including few API exposed areas were modernized to make sure color fidelity is retained throughout the system. Old gamma manager and colorcorrection manager classes are being deprecated, new ColorPipelineMgr will provide unified interface for both the legacy gamma workflow and OCIO-based modern color management workflow.
  • The highest priority was not breaking the existing workflows or existing scenes while providing the brand-new workflow. Default is Gamma Workflow. Therefore, if you don’t do anything. Everything should work exactly same as before. The previous workflow is provided as an optional mode.
    • “Unmanaged” mode will give you the same behavior as the “Enable Gamma/LUT Correction” unchecked.
    • “Gamma Workflow” mode will give you the same behavior as the “Enable Gamma/LUT Correction” checked.
  • Color Management Preferences(Previously Gamma and LUT) has two new OpenColorIO v2.2 based color management mode
    • OCIO (Technology Preview) – 3ds Max Default
    • OCIO (Technology Preview) – Custom Config File
  • Bitmaps now have associated color spaces and GetLinearPixels() call will not only linearize the pixels but will also convert the colors into the rendering color space on the fly.
  • Bitmap Image Selector, OSL Bitmaps, Arnold Image map support color spaces conversion fromOCIO config file
  • Rendering color space support including ACEScg
  • Display/VIew color space support for Viewport, Render Frame Window, Material Editor, Color Picker, Color Swatch, Image File Viewer and Arnold Render View
  • Scene Linear Exposure and Post Display Gamma spinner in Render Frame Window and Image Viewer for investigating the image
  • In the Render Frame Window’s right-click window information display has been expanded. You can see the assigned color space (also visible in the window title). Selected pixel values will now be displayed in 3 different color spaces: the image color space, the rendering color space, and the display color space.
  • Render Frame Window has also received some speed boost, panning and zooming should be much smoother compared to 2023.
  • Viewports are properly color managed in the DirectX mode, GPU rendering is also performed in the specified rendering color space and the result will be displayed using the selected display/view transform pair.
  • Active Viewport Settings/Color Management Tab allows every viewport may have its own display/view transform or can use the default Display/View transform (Automatic).
  • Image File Save supports No Conversion, Color Space Conversion and View/Display Transform from OCIO config file
  • MaxToA now pass on all color management information from 3ds Max to Arnold for rendering by handing over the entire OCIO configuration for rendering.
  • Improved Color Swatch displays colors in 2 different color spaces, Scene-referred linear space (Rendering space) and Display-referred space Values are displayed in 3 different number formats, unbounded floating point, unsigned 8-bit integer (0..255), Hex web colors
  • New utility called Color Converter is available in the Utilities>More list, and as a sample in the MaxSDK. This utility will showcase the Color Management API
  • System for tagging color parameters for their use case (UI colors, surface colors, light colors, non-color data, etc) to exclude those colors from color management
  • Full Maxscript exposure through ColorPipelineMgr interface
  • Allow to lock custom OCIO mode with Maxscript. The UI will reflect the locked state through an icon.
  • The Bitmap object has several new read-only attributes added as part of the new Color Management support, and the openBitmap() method has a new optional colorSpace: keyword parameter. There is are also new validateColorSpace() and SetOutputColorConversion() methods for bitmaps.

New Boolean modifier

New Material Switcher material

  • Allow to switch among sub materials up to 9999
  • Sort by ID, Name or Material Name
  • Lock button allows to Insert or Delete a sub material without changing index

New Transform List controller and List controller improvement

  • Let you add multiple Transform controllers to an object as layers of blended animation data. This lets animators add unique animation data to each layer, as well as letting them control how the layers blend together.
  • All list controller UI has been converted to Qt.
  • New Index mode has been added all List controllers. You can easily isolate the animation the of selected sub-controller.
  • By Name in Index mode allow to select a sub controller by name

Qt Slate material editor

  • Slate material editor has been changed and modernized based on Qt. The look of maps/materials, and the color of elements like wires, inputs/outputs, node headers, text, etc… have been updated.
  • Faster Performance
  • Docking support
  • SME elements are now exposed to Color Customization. Use the new SME section in Color Customization for the supported elements.
  • The Instanced map/material is highlighted by the “chain” icon on the header.
  • Preference option to allow nodes to be drawn on top of the connecting wires
  • At least one tab will exist all the time.

New Compound material/map

  • Allows the user to group and collect materials, maps, and node trees in a single collector that can be collapsed or expanded.
  • Expose Input and Output maps/materials accessible from outside the Compound, that can be connected to any compatible node. Compounds and Inputs/Outputs can be renamed.
  • Support nest Compounds inside Compounds.
  • The Compound can be saved in a Material Library and loaded from any Max scene.
  • All common SME features are supported, like moving between views, copy, delete, rename, etc.

Qt Modifier list

  • Converted to Qt and provide faster performance
  • Search filter
  • Scroll bar size Preference option

Animation

  • CAT
    • Resolved an issue with CAT when the Display Layer Transform Gizmo option was active that would result in the Motion Command Panel continuously redrawing, creating a flickering affect. This redraw affected viewport performance and made it almost impossible to move keys on the Time Slider.
    • Resolved an issue where if a user adds a Vertex Paint modifier to the CAT Bones, paints vertex colors, and then chooses “Collapse To” from the modifier stack, 3ds Max would crash.
  • Character Studio
    • Resolved a crash that would occur with Biped when deleting Xtra Bones from the Biped Structure in Figure Mode, and then undo the action and attempt to restore the Xtra Bones to your Bip rig.
    • Resolved a crash that would occur with Biped when attempting to Undo after deleting Xtra Bones from the Biped Structure while in Figure Mode.
    • Resolved a crash that could occur when creating a Biped with a twist node when the user double-clicks on the viewport
  • Motion path
    • It has been updated to work with List controllers and now uses the active sub control position to display keys and tangents.
    • Motion path now allow to edit keys and tangent for nested list controllers.
  • Fixed a crash that can occur when baking keys with MassFX and then attempting to undo the action.
  • When opening the Motion Capture utility in the command panel for the first time, if there is no motion capture controller assigned to the object, this utility will no longer pop-up an error window warning the user about needing to assign the proper controller. This message is now properly displayed in the 3ds Max status area of the UI where the user knows to look for messages.
  • Fixed when copying an object with attachment constraint that has its “Align to Surface” Checkbox disabled, the newly cloned/copied object will now also have its “Align to Surface” in the same disabled state.

Array v2

  • New Phyllotaxis Distribution Method – clones in a spiral pattern, distributing clones from the center out. The resulting spiral mimics organic distribution patterns that are found in nature, like leaves on a plant or seeds in the head of a sunflower.
  • New Material ID options
    • Assignment methods – Ordered, First Middle Last
    • N TImes – allow repeat material id assignment
    • Phase animation
  • New Progressive Transform option for the Radial, Spline, and Phyllotaxis distribution types enables the artist to alter the transform data to progressively change from first to last mesh distribution.
  • Transform Before Projection – allow to transform the position of the clone prior to them being projected to a surface using the spline distribution. The typical use case is that of a set of fence posts on uneven terrain. The customer wants to be able to randomize the position of the post while still ensuring that they are set into the ground and don’t move off of the terrain.
  • Create Objects now keeps hidden edges for mesh source.

Modeling

  • The improved triangular algorithm which was introduced in 2023.1 has been improved further. Now also used in Edit Poly modifier. This will results that minimizes concavity when performed on non-planar topology.
  • The following Editable Poly/Edit Poly operations now use the new triangulation algorithm to produce better geometric results Face splitting by insertion of edges, Slice, Cut, Bridge, Vertex extrusion, Edge extrusion, Cap, Smart Extrude.
  • Cap Holesmodifier is using this new algorithm
  • Material modifier
    • Now preserves explicit normals when it is applied to Mesh
    • It would not convert spline to mesh when applying to a spline
    • allow to set material id on spline
  • Spline improvement
    • Automatic weld would snap to target instead of the midpoint
    • Segment auto weld will weld each vertex, each knot to the nearest one as expected
    • When you close Insert on spline, it will correctly snap to target end point
    • Fixed Optimize spline breaks Mat Id
  • Retopology
    • Reform 14.0.1 –  fixes some previous failure cases, and improves the quad topology in some others.
    • Fixed a data loss issue when you navigate under the Retopology modifier in the stack, make some sort of geometric or topological change, and then save without recomputing retopology. Previously, this would “lose” the remeshed and retopologized meshes in the saved file; now, they are properly retained.
    • Selected Edges Auto Edge constraint previously was not honored when the Preprocess Mesh option was active; now, this is correctly handled.
  • Symmetry modifier default axis changed to X.
  • Normalize Spline Modifier will preserve MatID
  • Fixed an issue with the UVW Map modifier where it was incorrectly clearing the explicit normals of a Mesh.

Core

  • Custom Attributes on rootScene are now removed when loading new file. This should prevent day1refCA is spreading when you open scene files in the contaminated session.
  • For startup performance debugging, each GlobalUtilityPlugin class instance is logged as it is started
  • FIxed the issue of Param wire dialog not showing controllers
  • Select By Name dialog now properly restores screen position and size on open.
  • XREF Objects now support Point2 animatable parameters.

Performance

Maxscript/Python

  • Complete MXS exposure for CreatePreview()
    • instead of initializing preset/visualstyle/edgedface/textures options hard-coded (e.g., High-Quality for preset), init them using the active viewport’s options (e.g., use UserDefined preset if the current viewport use a customized preset)
    • add missing maxscript exposure – dspCamViewName:true autoPlay:true vpPreset:#userdefined vpStyle:#defaultshading vpEdgedFaces:true vpTextures:false
  • Allow controller argument to setPropertyController to be ‘undefined’ for removing controller, ditto setting property via <object>.<property>.controller.
  • The EmptyModifier no longer converts the incoming object to a mesh on the stack.
  • You can now specify whether to display a running script that encounters an error in the Scripting Editor. This setting is exposed as preferences.displayScriptEditorOnError and scriptEditor.displayOnError, and on the Preferences > MAXScript dialog as Display Editor On Error.
  • The new scriptEditor struct exposes two other properties: hwnd and isVisible.
  • Two settings for displaying warnings are now exposed as system globals: preferences.displayTopoMessage preferences.displayCollapseMessage
  • The following options are added to MergeMaxFile:
    • #mergeChildren which will flag that any max node asked to be merged will automatically merge its children.
    • #mergeByHandles when set to to true the user can replace the nameList with a list of handle IDs.
  • New maxscript function, getMaxFileObjects similar to getMaxFileObjectNames. This function now returns an array for each node with the following information.
    • 1 Node name
    • 2 Node hierarchy level
    • 3 Node handle
    • 4 Node Parent handl
  • objXRefMgr.AddXRefItemsFromFile now has objHandles:<int64 array> and  refOptions:#mergeChildren option.
  • Scripted plug-ins have two new event handlers for when they are added or removed as custom attributes on objects: on refAdded and on refDeleted.
  • The <WindowStream> value has a new property .hwnd, which contains the windows handle for its associated Script Editor window.
  • The windows struct has several new functions: windows.isWindow(), windows.isWindowVisible(),windows.showWindow(), windows.getWindowPlacement(), windows.setWindowPlacement(), windows.setFocus(), windows.setForegroundWindow(), windorootscene
  • ws.getWindowLong(), and windows.setWindowLong().
  • All windows struct functions that take a HWND argument for the window to operate on now can take a RolloutFloater, Rollout, or the main 3ds Max window (specified by the name #max), making it easier to operate on these types of windows without having to query their window handle first.
  • The new errTracebackDisabled system global specifies whether to disable error tracebacks in the listener window. Intended for testing / internal use only.
  • The <ChangeHandler> value has a new .enabled property that allows you specify whether the handler is enabled. This allows you to disable handlers without having to de-register or delete them.
  • The spinner UI control has a new property autoscale:<boolean>, and these existing creation keyword parameters are now exposed as properties that can be accessed at runtime: scale and type.
  • Read-only ‘superClassID’ property to MAXSuperClass has been added.
  • Added system global: errTracebackDisabled – bool  Setting errTracebackDisabled immediately before running an expression that throws a runtime error controls whether an error traceback is sent to listener. This is primarily used when writing unit tests.
  • Fixed issue that rollouts that are defined as structure members can now access other members of the structure instance. Rollouts that are defined as local variables in functions defined in a structure still cannot access other members of the structure instance.
  • Added protection when recursively enumerating the SubAnims of objects to prevent infinite recursion due to a SubAnim under a node pointing to the parent node of the node.
  • Fixed issue where memory corruption could occur in a certain case when updating scripted plugins using new plugin definition.
  • Fixed issue that non-persistent callbacks were not executed if In Preference Settings dialog, MAXScript tab, ensure ‘Load/Save Scene Scripts’ was disabled
  • Tighened MAXScript number parsing so that commands like “.” as integer and “f” as integer are not considered numbers
  • The qtmax python module now exposes LoadMaxMultiResIcon
  • fixed a problem of “callability” on pymxs object (before they were all callable)

InterOP

  • ATF Importer now supports NX 2206.

Arnold/MaxToA

  • MAXtoA 5.6.0.100 using Arnold core 7.2.0.0.
  • Support for 3ds Max 2024 Color Management
    • MAXtoA now passes on all color management information from 3ds Max to Arnold for rendering by handing over the entire OCIO configuration for rendering.
    • Arnold Render View supports Max 2024 Color Management:
    • Arnold Image Node supports color spaces from OCIO confi
    • Colorspace included in TX filename: AutoTX-generated files now include the original extension and the texture and rendering color spaces in the filename.
  • Support for 3ds Max 2024 Compounds
  • Support for 3ds Max 2024 Material Switcher
  • Support for MaxUSD plugin version 0.4
  • Faster node init/update up to 20%
  • Improved rendering performance when using OCIO up to 20% reduction in rendering time especially when using multi-socket systems.
  • Better autobump visibility masking – Allow to disable autobump on camera and shadow rays. This would give up to a 50% speed up, usually without changing the look
  • Support up to 1024 CPU cores – AI_MAX_THREADS has been increased from 256 to 1024,
  • Instancer light linking – If a light is linked to a shape and both are instanced, then the instancer now preserves this link within instances.
  • polymesh.smoothing defaults to true
  • Remove warning about using tiled with deep_exr
  • LatLong is now the default mapping in the SkyDome light
  • Physical_sky shader now also has an enable_sky parameter for disabling the sky.
  • Modified directory structure: For 3ds Max 2023 and 2024, kick.exe and other Arnold executable tools are now in a “bin” subdirectory, and Arnold plugins are now in a “plugins” directory, to align with other Arnold installations.
  • New distance shader that uses the distance to the nearest surface to interpolate between near and far color values.
  • Changed default of ‘Re-translate scene on Frame Change” to On which guarantees that during production rendering, the Arnold scene is translated consistently every frame. This is to ensure a consistent result for things like Cryptomatte ID’s and similar
  • Ability to define Auto-TX Path if the directory is not writable, in a subdirectory of the %TEMP%\TX directory.
  • Improved light sampling- it in the new “Light Sampling” group in the “Arnold Renderer” tab of the Render Setup dialog.
  • Improved translation of Bitmap shader
  • Improved triangle intersector
  • alembic.objectpath changed to an array so multiple object paths can be given to a single alembic procedural.
  • Upgrade OSL to version 1.12.9: Open Shading Language (OSL) has been upgraded to version.
  • USD
    • MaterialX displacement shaders
    • Arnold shader metadata in the Sdr registry
    • AutoTX environment variable: HDARNOLD_auto_generate_tx can be set to override the default AutoTX behavior in the render delegate. 
    • Driver options in the RenderProduct primitive – allow to set the driver options in the RenderProduct primitive using attribute names prefixed with the driver name in the Arnold namespace.

USD 0.4

  • SDK
    • Added Context construct to the USD Exporter SDK. This allows USD Plugin developers to better control the export of their plugin data and help simplify the exporter UI for users.
    • Added self.GetNodesToPrims() to PrimWriters that will get a map of prims made from nodes in the scene. Helpful for writing associations to prims created from other nodes in the scene.
    • Added the .version property to the maxUsd Python module to know the USD plugin version.
  • Exporter
    • Support for Skin to be exported to USDSkel.
    • The items in the plugin configuration combobox are now checkable. Multiple elements can be selected or none of them can be selected.
    • Added an option in the USD Exporter to not nest Gprims. This option will now be on by default and makes the USD created from 3ds Max conform more to the general USD guidelines.
    • Updated to merge Plugin-Configuration settings and user-settings, allowing USD Preview Surface materials to be written alongside context-driven materials, such as Vray Materials (when an appropriate version of Vray is installed).
    • Updated the USD Exporter to comply with USD standards for not nesting shader nodes.
    • Fixed missing sourceColorSpace, scale and bias settings for Normal maps in the USD Exporter that was casing incorrect normals display in USD. Also, for non-Normal maps, sourceColorSpace will be set to “raw”.
    • Updated USD Exporter default primvar name of UV channel 1 from “st” to “st0”. This is a temporary fix to deal with a MaxToA issue introduced with the change to USD 22.11.
    • Updated the USD Exporter to fall back to a simple USDPreviewSurface material with a diffuse color for any non-supported material types. Also added an option for PrimWriters to skip material generation.
  • USD Stage Object
    • Support multiple UV channels for offline USD Stage rendering using the fallback method.
    • Added support for Alembic references in the USD Stage.
    • Fixed defect causing unexpected evaluation of the stage while manually editing the Stage mask.
    • Fixed USDStageObject.SelectRootLayerAndPrim() not returning the Payloods option. The Payloads option now returns as a boolean in the third item in the resulting array.
  • USD Preview Surface Material
    • Improved support for opacity in the MaxUsdPreviewSurface material.
    • Fixed some transparent materials not displaying in the viewport.

3dsMax 2023.3

New OSL maps

  • OrganicNoiseThe new Organic Noise OSL map will allow you to create organic looking noise patterns by modulating and filtering OSL noises.
  • The Organic Noise map ships with 28 presets to quickly set up a variety of caustic, artistic, and abstract noises. Abstract – Cross Contour, Abstract – Cross Contour 2, Abstract – Marbley, Abstract – Portal To Hell, Abstract – Shooting Stars, Abstract – Starry Night, Caustics – Bright, Caustics – Dark, Caustics – Fractals, Caustics – Oily, Caustics – Puddle, Cells, Cells – Mask, Defaults, Fabric – Pinholes, Fabric – Plastic Bumps, Fabric – Stretch, Membrane, Oil – Mask, Oil – Shiny, Plasma, Smoke – Gooey, Smoke – Puffs, Smoke – Rings, Splotches – Bright, Splotches – Cartoony, Splotches – Glassy, Splotches – Tearing
  • UVW Randomizer 3D/2Dapplies a random Scale, Offset and Rotation to UVW data. These can be driven by seed for per-object randomness for each effect.The 2d one defaults to UV Channel 1 and only does 2d rotations. The 3d one defaults to object space and does full 3d rotations.

Performance

  • Poly to Mesh conversions performance has been improved across 3dsMax. Modifiers that need to convert data from Poly to Mesh can see up to a 40% speed improvement, viewport performance can benefit up to 35%, and users can see a small boost in performance when their scene data is sent to an offline renderer such as Arnold.

Animation

  • Attachment constraint – It would always set a key at frame zero when using Auto Key mode. Now a key is either set at the current frame or the default animation frame if that is enabled in the preferences
  • CAT
    • Resolved a lockup that could occur when the animator attempts to rotate the limb bones of the CAT Rig when 3ds Max Motion Paths is enabled.
    • Using the maxscript command “$.TMController.CATParent” users can check if a CAT bone in their scene has a valid parent and CAT Parent bone. If the value returned is “undefined”, the CAT bone can be safely removed from the scene without breaking the CAT rig.
  • ParticleFlow – When using a PFlow Birth Texture operator, Physical materials are now properly supported to work with the bitmap data of the material and not the luminance value of the shader at each pixel to determine where a particle can emit.

InterOp

  • 3ds Max’s Autodesk Translation Framework (ATF) importer now supports Catia V5-6R2022 and Alias 2023 models.
  • Substance 2.4.9 now supports version 8 and 9 of the Corona Renderer.

Modeling

  • Fixed the Relax modifier issue that might introduce spikes when soft selection is used.
  • Fixed the error when performing a Smart Extrude operation below an active Turbosmooth modifier on the Modifier Stack when using “Show End Result
  • Fixed a crash that could occur with the UVW Map modifier when switching from Face mapping back to another mapping type when the mesh has degenerate face and edge data
  • Array
    • Improved memory management for the Array modifier’Fixed Radial Array loses pivot in Boolean Compound Objects
    • Corrected an issue when using the Array modifiers Volume removal causing a small memory leak
    • Scale transform value of the target surface object will no longer incorrectly transfer to the data distribution results
    • Explicit normals transforms are now respected with the Array modifier

Rendering

  • Fixed RenderSetup starting with the wrong currentPage which can lead to a crash when reopening the dialog, using Corona plugin.
  • Fixed the cropping of the Compact Material Editor, when resizing and/or reopening the UI.
  • Solid viewport background color settings are correctly saved and reloaded

MaxToA

  • MAXtoA 5.4.3.10 for Arnold 7.1.3.2. But, MaxtoA 5.5.1.8 using Arnold core 7.1.4.1.is available to download. This includes the following new features in MaxToA 5.5.0.7.
  • Automatic generation of TX files
  • Log files can be written separately per-frame
  • MAXtoA now supports Visibility
  • Arnold Render View by default
  • Optimized translation of Physical Material
  • Viewport representation for Standard Surface, 3ds Max Bitmap and 3ds Max OSL shaders
  • Hair melanin and redness
  • Sharp textures through reflections and refractions
  • MaterialX 1.38.5
  • USD Enhancements including MaterialX, Alembic references and payloads, Imager support and more

Maxscript

  • Fixed issue with scripted controller where if evaluated early during scene file load, variables holding subAnim values where the subAnim owner does not exist would return ‘undefined’ instead of cached value.
  • Fixed a crash produced when baking textures through Maxscript.
  • In 2023.2, a fix was made to prevent wiring of parameters that did not have the same controller class to prevent memory corruption. But doing this prevented wiring Point3 parameters to PRS controller’s Position and Scale tracks. Now explicit handling of Position and Scale controller types to the Point3 wire controller class is added.

3dsMax USD 0.3

USD Stage Object

  • USD Stage Node is now supported in 3ds Max. Reference a USD stage directly into 3ds Max to create a scene with USD assets from an existing file. Using this workflow, you can view and render USD data directly in 3ds Max.
  • File > Reference > USD Stage…. Create Panel > Geometry > USD >  USD Stage
  • Stage Masking support
  • Full access to working with in-memory stage data. You can build Python, C++ and MAXScript tools to interact with the data inside a USD Stage Object. The stage has a read-only property called CacheId that can be used to access the stage from a global USD cache. Using this you can directly manipulate and interact with USD data (moving prims, changing visibility, etc.)

USD Stage Rendering

  • USD Stage fallback rendering mode allows rendering USD Stage even when renderers do not support accessing a USD stage directly.
  • UsdPreviewSurface material support using texture transforms (UsdTransform2d) and texture wrap modes.
  • Assign USD Materials button to build a Multi/Sub material for fallback rendering mode. Users can override any parameters of the material tree.

USD Export & SDK

  • USD Stage Objects can now be exported as USD references.
  • SDK includes all you need to build your own PrimWriter, ShaderWriter and Chasers to hook into our USD Exporter using C++ or Python
  • 3ds Max USD SDK comes with a set of working (simple) samples covering ShaderWriter, PrimWriter and Chaser, written in both C++ and Python to get everyone going rapidly with the new SDK

3dsMax 2023.2

Array modifier

  • A brand new feature-packed Array Modifier. As a modifier, it provides a fully procedural non-destructive modeling and animation experience.
  • Based on the brand new geometry processing engine, MNMesh2(MNMesh means Poly), which is built for performance, stability, flexibility, and scalability. It is the foundation for the future of 3dsMax, and Array is the first practical implementation using this technology.
  • Supports Mesh, Poly, and Spline
  • 4 Distribution Methods
  • Array by Element  – allows each element as an array source
  • Transform –  allow to control Position, Local/World Rotation, Scale per clone Extensive options such as Incremental, Alternating, By Axis, Incremental By Axis and provide very flexible control.
  • Randomization Apply To option for partial randomization
  • Clone ID UV data Allow store each clone’s ID or position data in uv channel. Combined with OSL, it provides great procedural control. Supports normalized value and additive to the existing data
  • Remove – allow to remove clones by % or object volume
  • Create Instances – bake to instanced individual objects

 Animation

  • TrackView
    • Auto-Zoom, Interactive Update, and Sync Cursor Time states now persist between sessions
    • The state of various Curve Editor menu item icons now clearly indicates if the option is active
    • The Filter option buttons at the bottom of the Curve Editor now always respond to mouse clicks
    • The Mini Curve Editor now frames the timeline correctly when opened
    • “Filter Only For Animated Tracks” active by default.
    • “Enable Auto Zoom” functionality active by default.
    • “Interactive Updates” on by default. This user requested change enables the track view to frame the active range of keys in the timeline when changing a track or channel in the Track View
    • Fixed an issue with the Dope Sheet when attempting to select Scale keys in conjunction with other keys using the Time Selection tool meant that the Scale keys would not be selected.
  • CAT
    • Resolved a crash issue that can occur when Cloning a CAT Object
    • Fixed a crash that could occur when renaming CAT bones during their creation.
    • Resolved a crash that could occur when adjusting a spinner value in the CAT parameters while the user is in the process of creating the CAT rig.
    • CAT > Apply Max IK throws an exception when applying to CAT rig fingers
    • Resolved a Maxscript exception that is thrown when the user attempts to apply an 3ds Max IK system to the fingers of a CAT rig.
  • Other
    • Resolved an issue where creating Bones from the command panel with a History Dependent IK Solver resulted in the first bone not being properly applied to the IK solution.
    • Resolved a crash that can occur when copy and pasting the Skin modifier to other objects in your 3ds Max scene.
  • Skin
    • Fixed an issue with the Skin modifier where the bone influence heat map of Edit Envelope was overwriting the vertex color data for the object that it was applied to.
  • DeltaMush
    • “The Delta Mush operator found in the Data Channel Modifier has been updated to use an improved algorithm that will provide an enhanced symmetrical result across the mesh.
    • A “Use Legacy Compute” checkbox is now found on the Delta Mush UI. When loading older scene files, this checkbox will be active. When creating scenes from scratch in 2023.2 (or adding the Delta Mush operator for the first time to a new Data Channel modifier), this box will be unchecked.
    • When switching the “Use Legacy Compute” checkbox, the user should do this at the “neutral” or “rest” pose time, because capturing the rest pose stores information critical to the Delta Mush functionality

Performance

  • MeshSmooth Various operations within Poly have been updated to provide improved performance when checking for and processing data without bad mesh data (which can be cleaned with the Mesh Cleaner modifier). It will improve NURMS performance in Mesh Smooth, Edit and Editable Mesh, and Edit and Editable Poly
  • Skipped material’s evaluation under Display Color>Shaded: Object Color mode
  • Removed the baking of textures/procedurals when Viewport Configuration>Display Performance>Textures is unchecked, to greatly improve the loading time of scenes with this setting turned off.

glTF

  • Physical Material to glTF conversion The Scene Converter contains a new preset called “PhysicalToGLTF” that allows you to easily convert all physical materials in a scene to glTF materials.

Bake to Texture

  • Two new callbacks are added to BakeToTexture. mapBakedCallback queueBakedCallback

Modeling

  • The new triangulation algorithm which was introduced in 2023.1 has been implemented in Editable Poly.
  • Chamfer
    • Limit Effect output has been improved to prevent self intersections in chamfered surfaces.
    • now generates improved surface normals when working with non-explicit normals. It prevents the hard edges can appear on chamfer segments and cannot be corrected with the Smoothing parameter in the Chamfer modifier.
  • Resolved an issue that can occur with the Symmetry modifier where in some very extreme cases no weld threshold is found along the symmetry plane to weld to.
  • Corrected an issue where the VertexPaint modifier was incorrectly removing explicit normals from Mesh type objects, such as Editable Mesh, when it was applied.
  • Improved selection hit test code to provide enhanced accuracy when attempting to select and edge or face component and an obtuse or near obtuse angle

Core

  • Environment variable ADSK_3DSMAX_BUFFEREDFILE_BUFFERSIZE and 3dsmax.ini setting Performance / BufferedFileBufferSize for a file buffer size to use when loading or saving most types of bitmap files. If neither are specified, a buffer size of 256KB is used.
  • In Parameter Wiring dialog, added testing to ensure selected parameters use same controller type. If not, the direction buttons are disabled and their tooltip says the parameter controllers are incompatible. If attempting to wire via maxscript, the wiring will fail.
  • in some cases of scene file corruption, attempting to merge nodes from the scene would fail when the first instance of corrupted data was found. Now when the scene contains the corrupted data “Select Nodes With Corrupted Data” button will appear at the bottom right corner. User can check the problematic node with this and revert the selection to avoid merging if the objects.

Maxscript

  • The Collapse interface exposes the functionality of the Collapse Utility.

Rendering

  • Removed the limit of 499 characters in Render Setup>Common>Common Parameters>Frames
  • Render Setup UI remembers the last used tab for the Max session.
  • Fixed incorrect rendering of backfacing surfaces when using OSL and Scanline.
  • Rendering in EXR format can be saved in folders with non-Latin characters.
  • Added support to custom hotkey(s) to toggle Active Shade in the Viewport. The action name is “Active Shade Fragment Toggle”
  • Material Editor UI will remember the state Open/Close of the rollups

Arnold

  • MaxtoA 5.4.0.37 based on Arnold 7.1.3.0
  • Improved V-Ray scene converter –  The V-Ray scene converter now has been improved and supports many new features.
  • Dual-lobe phase function for standard_volume = A new phase function model has been implemented for the standard_volume shader. This provides a more realistic approximation to the physical phase function of scattering media such as clouds.
  • Physically correct volume emission scaling – The standard_volume shader has been improved to support scaling of volumetric emission in a more physically correct manner (via the emission_scaling option).
  • Pinned curves – A new wrap_mode parameter on curves can enable curve pinning.
  • Nested instancers – Nested instancers (instancer that contains instances of instancers) now properly perform instancing
  • Cameras in ASS procedurals – Cameras stored in .ass file procedurals can now be used for rendering.
  • Cryptomatte 1.2.0
  • Upgrade OpenImageIO 2.4.1
  • Reduced missing texture overhead –  The time spent handling missing textures has been reduced.
  • Light profile blocks – The AiLightsPrepare() profile result has been elaborated on, with LightSampling, light_filters, and LightInitSampler profile blocks being added. This can help point out where render time is going during lighting.
  • Python binding error message – When Arnold cannot be loaded by the python bindings, we now output the original exception error message instead of just the cryptic “Could not find libai”.
  • USD Enhancements
    • Support dataWindowNDC – when the render settings primitive defines the attribute dataWindowNDC, it now renders accordingly in both Hydra and the USD reader.
    • Cryptomatte in Hydra – When rendering final frames with Hydra, the cryptomatte metadatas are set in the output image
    • Render products with no productName – When AOVs are defined through a render product prim that doesn’t have any product name, they now render to the same filename as the beauty image.
    • Instances optimizations in the procedural – When using instances, the usd procedural now relies on a usdStageCache to represent the instance prototypes, instead of re-loading the usd files on disk for each prototype.
    • Pinned curves – Curves pinning is now supported in hydra and in the procedural

3dsMax 2023.1

Spline Extrude

  • New SHIFT+Extrude for Editable Spline and Edit Spline modifier 
    • In a Segment sub-object component mode, holding SHIFT+LMB (Drag) while performing a Move, Rotate, or Scale transform action will Extrude the segments based on the transform action, creating new supporting Vertex and Segments.
    • SHIFT+LMB (Drag) on the start or end points of an open spline on the Vertex sub-object component will enable the user to draw new segments and further extend the spline.
    • Cloning of Spline Vertices or Segments can now be performed with CTRL+SHIFT+LMB (Drag)
  • When the user changes a Spline Vertex type to Smooth, Bezier, or Bezier Corner, 3ds Max will also automatically adjust the adjacent Spline Segments will also be adjusted to a Curve type (if they are not already defined this way). This change will result in a more immediate update and visual representation of the data instead of the Segments being locked as linear or straight

Triangulation

Progress bar update

Performance

  • Skin improved data management that is performed by the Skin modifier. Users will see an improvement of roughly 30%-90% when “Edit Envelopes” is not active.
  • Morpher improved animation performance through numerous optimizations with threading, caching, improved explicit normals acceleration, channel management, and memory management. Users should see anywhere from a 4x to 40x improvement to their Morpher Modifier.
  • TurboSmooth threading and improved memory management provides roughly 2x performance improvement
  • Alembic has been updated to  1.8.3. This update improves file load and read performance improvement which can provide between 25 and 65% performance gains
  • Point helper values are cached with a validity interval. It provides about 10% evaluation performance improvement.
  • Viewport background playback Improved playback speed with animated background if the source image is in sRGB or gamma 2.2. It is 2x-3x faster.
  • Asset file loading Increased buffer size when reading/writing image files from 4KB to 256KB for most image file formats. This results in improved performance when reading/writing image files over a network
  • Merge dialog Improved performance of Merge dialog when dealing with large number of nodes.
  • Selecting/moving/rotating object sub-elements in Mikkt mode greatly improved

Isolate selection updates

  • Zoom Extents On Isolate (ZEOI) is now persistent from session to session (in 3ds Max.ini).
  • Default value of ZEOI is set to off, means do not zoom extents on isolation.
  • ZEOI is now shown in the quad menus by default, below Isolate and End Isolate (Note: menu reset is needed if doing an upgrade install).
  • The Isolate Selection button in the status bar is now a flyout (caret) button with two states.
  • Hotkey improvements (default: Alt+Q). If in isolation mode and the key is pressed again 
    • If nothing is selected: end isolate (feels like a toggle)
    • If selection is the same as last isolated objects: end isolate (feels like a toggle)
    • Else Isolate new selection (feels like a new isolate)

Modeling

Core

  • ADSK_3DSMAX_COMPRESSEDFILE_TEMP_FOLDER that can be used to specify a folder where to create the temporary files used when loading and saving compressed scene files. These files hold the uncompressed content. When not specified, the folder specified by the TMP environment variable is used.
  • Missing plugins dialog has been removed. The Scene Converter provides the same missing plugin information and allow to remove them selectively, The missing plugin information is now also listed in Max.log.
  • In the Save dialog for saving a material library, the ‘Save as type:’ dropdown will contain contents similar to the max scene Save dialog. It will contain entries for the current max version (unnumbered) and the previous 3 versions (numbered).
  • The Object Rename tool now renumbers objects using three digits instead of two.

InterOp

  • SketckUp 2022 support
  • glTF
    • glTF Exporter now supports a BitmapTexture’s tiling in exported file.
    • Fixed issue with the way that specular maps and specular color maps were being exported in the glTF Exporter.
    • Fixed MAXScript error when loading a glTF Material from a material library.
    • Updated the Realtime Exporter to remember the file type between Max sessions (FBX or glTF)
    • Fixed issue with Realtime Exporter not respecting Selection Sets

UI

  • SVG Icon Support You can now use SVG format icons for custom icons, both as individual .svg files and compiled into .rcc archives in Macro Scripts.
  • Spinners are jumping when wrapping cursor (on screen border and near spinner) Dragging spinners across the screen borders results in non linear value jumps in some situations.
  • Asset Tracker Constantly Loses Previous Position/Size Fixed issue with Asset Tracker losing previous position and size if 3ds Max was opened and then closed without the Asset Tracker dialog being displayed
  • Flashing UI while executing reduceKeys fixed MAXScript command “reduceKeys” no longer spawns MAXScript listener upon completion

Animation

  • Scaled Keys Lose Curve Fidelity Corrected an issue where the tangents for keyframes would not update properly as the keys are scaled down significantly. Now when keyframes are scaled down the curves retain their correct information with minimal distortion from the original value.
  • Controllers don’t preserved the original transform information of the objects when created with Maxscript fixed This affected the Animation > Constraints menu actions
  • Fixed an issue with the names of the TCB controllers found in the Animation toolbar menu Instead of being listed as Quaternion TCB these controllers are now descriptively (and correctly) named TCB Position, TCB Rotation, and TCB Scale

Rendering

  • Physical Material: Maps can be drag-and-dropped onto a slot and have a bitmap node created.
  • Enabled the output selector when dragging & dropping multi-output maps directly on a Physical material map input.
  • Active Shade refreshes correctly when Hide by Category is enabled/disbled
  • Random index by Number/Color has been updated to provide better randomization for a small range. Also it handles integer inputs better.

Viewport

  • Perspective Match improved with a new switch called “Allow Distorted View”. When ON, this switch allows the final view to be distorted, a non-uniform camera could be created in these cases. Note that some applications will not fully support non-uniformed scaled cameras.
  • Back Face Lines color customization fix This color is re-connected. So, now you can control the darker edge color. It will get 0.5 of assigned color for the darker edge. When you use the light scheme, bg color and darker edge color happen to be the same. Now you can adjust this color to solve the issue.
  • The viewport setting “Improve Quality Progressively” is saved with the scene.

Maxscript

  • support for saving material libraries to previous versions of 3ds Max. ‘saveAsVersion’ support added to saveTempMaterialLibrary, saveMaterialLibrary, sme.SaveMtlLib and sme.SaveMtlLibAs FPS methods.
  • The optional skipXRefs parameter for loadMaxFile allows you to disable scene and object XRefs during scene load to speed up file loading. You can load XRefs later by selecting the reference and updating it.
  • When the following render settings are changed via MAXScript : RenderWidth, RenderHeight, Image aspect ratio, Image aspect ratio lock, Pixel aspect ratio, Pixel aspect ratio lock, Aperture width. The render format is now automatically changed to “Custom”
  •  ‘this’ structure instance lost going through createDialog Fixed issue that rollouts that are defined as structure members can now access other members of the structure instance. Rollouts that are defined as local variables in functions defined in a structure still cannot access other members of the structure instance.
  • AssetManager Keeps Previous Scene Assets in Memory Fixed issue with BatchRenderManager not properly releasing assets when deleted
  • The File/New All command immediately removes the selection set names from the previous scene.

Python

  • PYTHONPATH support was restored (removed in 2022.2_Update, back in 2023) Several studios commented recently that the lack of support for the PYTHONPATH env var creates disruptions in their pipelines, they have to understand how to patch their pipeline scripts.

3dsMax 2023

glTF Export

  • New glTF Material
  • Exporting Static Mesh Geometry with BitmapTexture
  • In BitmapTexture, the Tiling, Offset and W_Angle are exported using the KHR_texture_transform extension if Offsets or W Angle are non-zero or Tiling is non-one
  • Textures are automatically packed together into proper channels once exported
  • Export limited support for Physical Material
  • Accurate viewport display of the glTF Material in most cases (some, like volume, require Active Shade using Arnold)

Snap Working Pivot

  • Quick Pivot – align working pivot to the nearest sub-object with one key
  • Place Working Pivot – When active a gizmo will be displayed to aid you in the placement of the pivot on your vertex, edge(center), or face (center)
  • Selection Pivot – With an active component selection, this option will place the pivot on the center of the selection. The pivot should be oriented in the averaged direction of the selection.
  • Align Working Pivot – When enabled, this mode allows the user to adjust the orientation of the working pivot. You also have the optional ability to lock a particular axis, so that the axis stays aligned to where it is currently placed, by double clicking on the circular gizmo at the end of the working pivot when this mode is active.
  • Reset Working Pivot – Resets the working PivotAlign Pivot to Working Pivot Adjusts the Pivot to match the current position and orientation of the Working Pivot
  • Place Pivot Bounding Box – This adds an optional bounding box that fits the object or selection. The bounding box has 24 additional points that allow the user to snap the working pivot to a selected point.
  • Create Grid From Working Pivot – Create a new Grid Object aligned to the position and orientation of the Working Pivot.
  • Create Point From Working Pivot – Create a new point helper in your scene aligned to position and orientation of the active Working Pivot.
  • Snap Pivot Toolbar Tools – Tool > Snap Working Pivot Tools menu, toolbar and quad menu has been added.

Retopology

  • Preprocess
    • Turning on this option will build an intermediary Remesh state based on the target quad count using the proprietary ReForm pre-processing algorithm. This provides the following benefits.
    • This evenly-sized triangle mesh makes ReForm processing significantly faster(1000%-2000% faster in my test).
    • Allow you to get a really low target result. Without preprocessing, ReForm simply refuses to respect a very low target.EIther it would fail or give a lot more polygons.
    • The interim remesh provides a very simulation friendly topology.
  • Data Preservation All data corresponding to the selected Auto Edge options is now propagated to both the remeshed and retopologized meshes; for instance, if you select the map seam and material ID Auto Edge options, then the select map channel and the material IDs will be propagated.
  • The “Output” parameters on the Retopology modifier will now control which set of mesh data is utilized and pushed up the modifier stack. Allowing the artist to send the original mesh, the retopologized quad mesh, or the triangulated preprocessing mesh (if generated).

Autobackup Improvement

  • Autobackup Toolbar
    • Right clicking the Enable/Disable Autobackup button in the Autobackup Toolbar now opens the Files tab of the Preferences dialog so that users can easily edit the Autobackup settings
    • New Autobackup Time Interval progress indicator
    • Enable\disable Autobackup, Autobackup Interval progress indicator\counter, Reset Timer
    • Autobackup commands can be assigned hotkeys
  • Autobackup Settings
    • Added option to toggle displaying the number in the toolbar (“Display Countdown Value”)
    • Compress on Autobackup (disabled by default) – allows files to be saved compressed and backups to be un-compressed (for maximum speed). Also exposed to Maxscript: autosave.Compress
    • Prepend Scene Name (disabled by default) – when used, helps minimize overrides of Autobackup files by simultaneous Max ssessions. Also exposed to Maxscript: autosave.prependscenename
    • Handling of backup files by simultaneous Max sessions has been improved: The “number of backup files” (N) setting represents the number of total backup files given a the backup naming convention used by Max sessions. If multiple sessions use “Autobackup” as name, they will preserve existent Autobackup files until N is reached, then start replacing the oldest file. This is an improvement over Max 2022, where two simultaneous sessions would each try to backup to Autobackup01, overwriting each other’s backup. Now, session1 of Max creates Autobackup01, session2 of Max creates Autobackup02 etc. When AutobackupN+1 needs to be created, the oldest Autobackup file is replaced.
    • Autobackup timer pause can happen when <20 seconds left, and it can be changed with autosave.finalCountdownInterval
    • Default timer interval changed from 5 min to 15 min
    • Default number of backup files changed from 3 to 10
  • Autobackup does not interrupt user activity
    • Autobackup timer starts only when the scene is dirty and stops if the scene is no longer dirty. To support this feature, many actions that were making the scene dirty unnecessarily have been fixed include opening RTT, toggling Export dialog.
    • Autobackup will not kick in during MassFX simulation, Fluid Simulation, Cloth,  Texture Baking and any actions that use the main UI progress bar.
    • Animation Playback will pause the timer when 20 seconds left
    • Modal dialogs prevent Autobackup. The timer will keep counting down, but it will pause at 10 seconds if a modal dialog is displayed
    • Mouse down+drag, most right click menus and menus in the main toolbar or any mouse capture such as during object creation will pause the timer (when 20 seconds remaining)
    • Editing in fields prevents Autobackup from kicking in (except in a few places such as MCG nodes)
    • Autobackup wouldn’t steal focus from MXS editor
    • Reduced the frequency with which the Bailout Manager checks if the Escape key is pressed from 0.5 seconds to 1 second
  • Backup File Menu
    • File > Autobackup  > Autobackup Now –  allows you to save a backup right away
    • File > Autobackup  > Open Autobackup Location – allow to open autobackup folder.
  • Scripting and SDK
    • Added two functions to MAXscript to allow users to save their Autobackup settings to the 3dsmax.ini file or load them from the 3dsmax.ini file. autosave.saveSettings() autosave.loadSettings()
    • C++ and Scripting APIs for preventing Autobackup from kicking in. These should be used by 3rd party plugins and scripts GetAutoBackupInterface()->SetTempDisable(true|false); autosave.tempDisable = true|false

Compress Save Performance

  • New zstandard compression engine
  • When saving a compressed file, compress the data for each entity immediately after its data is generated.
  • Great performance improvement when compression is on(500% to 2500% in my test).
  • Saving with compression on will only take 10-15% longer than with off in my test case. Before this improvement, turning on compression on used to be 400-600% slower than off.
  • In many cases, now saving with compression on in 3dsMax 2023 is even faster than compression off in an older version.

Modeling

  • Occlude selection mode improvement Further optimizations have been made to the Occlude Selected functionality. The selection performance and accuracy has been greatly improved.
  • Smart Extrude Improvement
    • All updates which are provided in PUs such as partial cut-through functionality are now available in the Edit Poly, too.
    • Fix for “zero-length” edge welding which is sometimes corrupting results when making very small extrusions with very large, high aspect ratio faces.
  • The maximum number of height and cap segments, as well as sides, has been increased for the Cylinder, Sphere, Tube, Cone, and Torus primitives. Now they support up to 3600 sides, and up to 1000 height and cap segments.
  • New UV hotkeys
    • Stitch (custom) (SHIFT + S)
    • Pack (custom) (SHIFT + A)
    • Quick Peel (CTRL + Q)
    • Quick planar map (SHIFT + Q)
    • TV element mode (4)
    • grid visible (G)
    • TV Ring select (ALT + R)
    • TV Loop select (ALT + L)
    • Grow (CTRL + PgUp)
    • Shrink (CTRL + PgDn)
    • Relax (SHIFT + X)
    • Align to Edge (SHIFT + E)
    • Straighten Edges (SHIFT + F)
    • Align Horizontal (SHIFT + H)
    • Align Vertical (SHIFT + V)
    • Show map (SHIFT + M)
    • Edge selection to Pelt Seam add (SHIFT + P)
    • Edge selection to Pelt Seam Replace (CTRL + SHIFT + P)
    • Flatten by Smoothing Group (CTRL + SHIFT + S)
    • Cylindrical Mapping (SHIFT + C)
  • ADSK_3DSMAX_SMART_EXTRUDE has been added to globally disable Smart Extrude from operating on the Edit Poly modifier (which might be required for file compatibility with 3ds Max 2021 versions that do not contain this Smart Extrude functionality in Edit Poly).
  • When Manipulate Mode is active, 3ds Max will now only display the manipulator for the active level of the modifier stack that the user is on (instead of displaying all possible manipulators).
  • The XForm modifier is now versioned to enable it to provide the same level of visual consistency when loading older 3ds Max scenes. When opening older 3ds Max scenes (scenes from 3ds Max 2020 or earlier) the XForm modifier will default the “Perserve Normals” option to be OFF, enabling the scenes to be consistent with how the modifier previously operated
  • Corrected an issues where it was possible for deforming World Space Modifiers (such as FFD and Noise) could crash 3ds Max when applied over top of modifiers that compute explicit normals (such as Edit Normals or Weighted Normals)
  • XForm modifier created by ResetXForm is named “ResetXForm“.

Pipeline integration v2

  • Added support for simplified usage of environment variables meant to customize the 3ds Max environment, without the need to define them per 3dsmax.exe process.At run-time, 3ds Max defines two process wide environment variables:
    • %ADSK_3DSMAX_MAJOR_VERSION% – represents the major version of the 3ds Max (3dsmax.exe) process. For example “2023” for 3ds Max
    • %ADSK_3DSMAX_MINOR_VERSION% – represents the minor version of the 3ds Max (3dsmax.exe) process. For example “1” for 3ds Max 2023 Update1
    • The above env vars can be used in the env vars that support the customization of the user environment (ADSK_3DSMAX_***_DIR).
    • For example, ADSK_3DSMAX_STARTUPSCRIPT_ADDON_DIR=\\server\3dsMax\%ADSK_3DSMAX_MAJOR_VERSION%.%ADSK_3DSMAX_MINOR_VERSION%\scripts\startup
  • ADSK_3DSMAX_ENVVAR_TOKEN_SUPPORT – Enables auto-tokenization of 3ds Max installation files, similar to the -envartoken command line switch.
  • ADSK_3DSMAX_AUTOBACKUP_DIR – Defines the path used by Autobackup to save files.
  • ADSK_3DSMAX_ROOT – An environment variable defined by the 3ds Max process that contains the directory from which the current 3dsmax.exe program is running, regardless of where 3ds Max is installed. Only defined when auto-tokenization is enabled.
  • ADSK_3DSMAX_USERTOOLS_DIR – The path for reading and writing user-defined tools, as well as MCG and Scene Converter scripts.

Rendering

  • Update openEXR to version 2.5.7
  • Updated OpenShadingLanguage (OSL) to v.1.11.16

MaxToA

  • Upgrade to Arnold 7.1.0.0/MaxtoA 5.1.0
  • Triplanar now with different texture on each axis
  • The new and improved NVIDIA Optix 7 denoiser on GPU which allows for consistent denoising results across AOVs. This makes it possible to composite and assemble AOVs back together without any artifacts.
  • Multiple optimizations and enhancements improving the experience when interactively rendering a scene. For example, interactive GPU rendering now performs better when handling heavier scenes through the implementation of a fixed minimum frame rate.
  • Increased Arnold stability, especially when using multiple render sessions.
  • Also MAXtoA 5.2.0 is available. It includes the new Viewport Volume Display. This feature allows volumetric objects to appear directly in the viewport while building and working on scenes.

Per-Viewport FIltering Improvement

  • More MXS exposure include ViewportID property and IsNodeShown, OpenDialog|CloseDialog,  ShowCategory and FilterChangeCallback.
  • ViewportFIlter now supports Multi-Edit with CTRL/SHIFT.
  • Enabled playback while changing Viewport Filtering settings
  • Fixed – Per Viewport Filtering Icon was not visible with Safe Frame ON.
  • Fixed – cannot select linked geometry with Show Renderable Only ON
  • Fixed ghost when toggle filtering
  • Fixed missing filtering on the group head or bone-only node

Security

  • Safe Script Execution
    • enum value MaxSDK::AssetManagement::AssetType::kScript An asset file reflecting any script file other than a pre- or post-render script file.
    • enum value MAXScript::ScriptSource::Dynamic To be used for scripts that are dynamically generated at runtime and could contain input from various sources that are interpreted as scripted commands.
    • Dynamic scripts will always execute with restricted security rights, regardless of Safe Scene Script Execution settings.
    • ExecuteScriptAsset function Executes the given script file specified as an AssetUser. This function should be used for executing script files whose name is stored in the scene file.
    • MAXScript::ScriptSource argument to ExecuteMAXScriptScript function specifies the security rights of the evaluated script string.
    • Added additional .net types to whitelist of types that can be created by embedded scripts. This included adding Autodesk.Max.MaxPlus.Box3, which is used by MCG modifiers.
    • Safe Scene Script Execution settings now apply to the NetworkManager.Send command when called from script embedded in the scene file
    • MAXScript strings executed through the OLE IMaxRenderer interface are now executed with ScriptSource::Dynamic security rights
  • Secure way for plugins to load binary dependencies 3ds Max will load dynamic-link libraries (DLLs) that plugins have a link-time (implicit) dependency on from the folder where the plugin resides. In other words, the DLLs the plugin depends on does not have to be installed in 3ds Max’s root folder (<maxroot>), nor does the plugin need to do extra work to load the dlls at run-time (by calling LoadLibrary() for example). Simply deploy the DLLs the plugin depends on side-by-side within the same folder where the plugin resides, and 3ds Max will be able to load the plugin

Core

  • Improved scene file load performance of Scene Converter when file contains large number of missing plugin instances
  • Improved visual appearance of progress bar in main 3ds Max UI
  • Removed Missing Dlls Dialog as Scene Converter Dialog already displays the same information. Scene Converter Dialog now shows by default the list of missing dlls
  • The following actions are now  undoble and make the scene dirty properly.
    • Changing Object Color and Object Properties
    • Enabling/Disabling  a modifier..
    • Disabling a modifier in the viewport/renders.
  • Fixed not being able to do Drag and Drop of scene file onto 3ds Max if scene file size was greater than 2 GB
  • Microsoft Visual Studio 2019, version 16.10.4, C++ Platform Toolset v142, and Windows Platform SDK 10.0.19041.0
  •  Qt 5.15.1 and PySide2 5.15.1
  • .NET 4.8

InterOp

  • Improved FBX so now it supports the physical material and you can send to/from Maya without much loss of data.

Maxscript

  • Scripted Bake To Texture Map plug-ins support using the CommonBakeMap and CommonBakeMapOperator classes.
  • New functions for file attributes getFileAttributeNames(), getFileAttributes(), isFileAttributeSettable()
  • Both meshop and polyop now have functions to return an array of vertices or faces that match a specified material ID: meshop.getFacesByMatid <mesh> <matID> meshop.getVertsByMatid <mesh> <matID> polyop.getFacesByMatid <poly> <matID> polyop.getVertsByMatid <poly> <matID>
  • New “stepName” argument was added to progressUpdate() function, and New “allowCancel” was added to progressStart
  • The “windows” struct contains a new member, isWindowEnabled HWND, that returns true if the specified window is enabled (able to recieve mouse and keyboard inputs). The new getFocus() function returns the HWND of the window that currently has focus.
  • Fixed assigning a reference object for Symmetry and Slice modifiers through Maxscript could crash.
  • Fixed argument count checks for MAXScript functions getSubTexmapSlotName, getSubMtlSlotName, getClassName, and getObjectName to allow localizedName: keyword argument to be specified.
  • Fixed issue where could not specify subAnim keyword argument for type paramBlock2 parameters in scripted plugins.

Python

  • Python 3.9.7 –  3ds Max ships with the visual effects platform-recommended Python 3.9.7. which boasts performance improvements, new string functions, and improved quality that will aid Technical Directors and pipeline integration.
  • C++ function called DisableMaxAcceleratorsOnFocus has been exposed in the qtmax python module. This is a helper function that disables 3ds Max accelerators on Qt widgets

Plugin Packages Improvement

  • The Plugin Package description file (PackageContents.xml) now supports environment variable definitions of type string and path.
  • Addition of Hotkeys specification in plugin package file – PluginPackageManager was extended to support a new component type ‘hotkey parts’. 3ds Max will load plugin sourced keyboard shortcuts from the specified location.

Volume Display API

  • This new API simplifies displaying a volume in the viewport when a plugin provides the voxels data, positions and display options. 3ds Max will convert the voxels data on the GPU and display it according to the different supported viewport modes such as wireframe, shaded etc. This API proposes many options for the display such as: bounding box, wireframe, voxels, volume with a voxel color and opacity, black body, turbo gradient, or gradient custom texmaps color modes are also available. So far, it supports the volume grids of type fog and level sets. You can use a slice axis to show only a part of the volume at display time. The voxels grid data can be normalized automatically, or manually, or not normalized at all. You can use a 1D density transfer texture to remove some parts of the voxels data at display time, so a 3rd party can control how the volume looks. It also provides support for selection hit testing and wireframe display

Instance Rendering  API

  • This new API provides a consistent way for third party developers to provide instancing data for a Renderer. It removes the requirement of having to implement such logic in the renderer itself or in any given plugin. The API has two different clients, Producers and Consumers. Third party tools such as tyFlow and Thinking Particles can be considered Producers, they can generate data from their plugins using the new API and Renderers such as Arnold, Vray or Corona are consumers as in they use the API to retrieve the data generated by the producers
  • Class RenderTimeInstancingInterface allows a renderer to access an object’s instancing information so that it can do efficient instancing at render-time. This interface is implemented by an object and called by a renderer. A renderer should not call the object’s GetRenderMesh() method if the object supports the RenderTimeInstancingInterface interface.
  • Instantiating INodes and Meshes.
  • Overriding the material of instances.
  • Overriding the material IDs of instances.
  • Linear and curved motion blur using 2 or more transform matrices.
  • Deleting meshes when they are flagged as requiring deletion.
  • UVW overrides
  • MaxToA support this API.

Instance Display API

  • This new API allows an object plugin to display many instances in the viewport without creating them all in the scene. The plugin describes the instance data based on a single object, and 3ds Max creates efficient representations of that object on the GPU. The instances can have different transforms, materials, mapping3 coordinates, and vertex colors. Examples of plugins that would benefit from using this API are particle systems, scattering tools, instancers, etc.
  • To take advantage of this API, plugins should use the methods of class InstanceDisplayGeometry, which are implemented by 3ds Max. For more details, please see maxsdk\include\graphics\InstanceDisplayGeometry.h, and the sample project located in maxsdk\howto\objects\InstancedObject\ folder of the 3ds Max SDK

Max to viewport material conversion API

  • Additional helper functions in MaxSDK::Graphics::MaterialConversionHelper.
  • To convert from a 3ds Max material (Mtl class) into a Nitrous viewport material (BaseMaterialHandle class) with the function: ConvertMaxToNitrousMaterial.
  • And to create a Nitrous viewport material from a physical material preset with the function: GetNitrousMaterialFromPhysicalMaterialPreset

Fixes

  • Corrected an issues where it was possible for deforming World Space Modifiers (such as FFD and Noise) could crash 3ds Max when applied over top of modifiers that compute explicit normals (such as Edit Normals or Weighted Normals)

3dsMax 2022.3

Per-Viewport Filtering – New

  • You can hide/unhide objects by category or by class per each viewport. Each viewport’s settings can be set independently from one another, giving you the flexibility to display what you need in a given viewport. Per-Viewport Filtering does not affect the scene or renderer.
  • Copy/Paste filter setting between viewport
  • Shift+K to toggle on and off the viewport filter
  • Full MXS exposure with ViewportFilter interface
  • Per view settings/preference dialog is modeless and dockable now

Pipeline integration – New

  • Environment Customization Enable studios to configure the software and enable their artists to easily switch between projects that require a uniquely configured environment, script, and plug-in environment using environment variables.
  • The following paths used by 3ds Max can now be configured using environment variables.
    • The ADSK_3DSMAX_x64_<year> – The path to the 3ds Max install. Created by the installation process. On systems where 3ds Max was copied instead of installed, this variable needs to be defined manually.
    • ADSK_3DSMAX_APPDATA_DIR – The path used by 3ds Max to read and write local user data. By default this location is C:\Users\<username>\AppData\Local\Autodesk\3dsMax\<year> – 64bit\<lang>
    • ADSK_3DSMAX_USERSETTINGS_DIR – The path for reading and writing user settings.
    • ADSK_3DSMAX_PROJECT_DIR – The path for the location for project data (such as material libraries, render presets, render output, etc).
    • ADSK_3DSMAX_STARTUPSCRIPTS_ADDON_DIR – 3ds Max Startup Scripts Folders.
    • ADSK_3DSMAX_SCRIPTS_ADDON_DIR- 3ds Max User Scripts Folders.
    • ADSK_3DSMAX_MACROS_ADDON_DIR – 3ds Max User Macro Scripts Folders.
    • ADSK_3DSMAX_ICONS_ADDON_DIR – 3ds Max User Icons Folders.
    • ADSK_3DSMAX_PLUGINS_ADDON_DIR – 3ds Max Plugins Folders. ADSK_3DSMAX_ASSETS_MAPS_DIR –  A list of semicolon-delimited paths, used in addition to the Xrefs paths defined in the Configure Project Paths dialog.  ADSK_3DSMAX_ASSETS_XREFS_DIR – A list of semicolon-delimited paths, used in addition to the External Files paths defined in the Configure Project Paths dialog.
  • Support for Environment Variable Tokens in Paths found in Configuration Files This feature allows users to define or modify paths found in various 3ds Max configuration files, including 3dsmax.ini, using user defined environment variables, referred to as “environment variable tokens”.

Advanced Wood OSL shader – New

  • designed to match the accurate appearance of many common wood types such as maple, walnut, and oak. Delivering a rich and vibrant result that is easy to configure, displays beautifully in the viewport and in any OSL compatible renderer.
  • UVW can be modified with external shaders, and a random seed can be driven to have per-object variations.
  • It is also fully supported in a ‘High Quality’ viewport and will render exactly the same on any OSL capable renderer.

SketchUp 2021 Support – New

  • allowing users to successfully import SketchUp 2021 models into the software where they can continue to model and render the asset.

MaxToA/Arnold

  • Arnold 7.0.0.0.
  • color_curves imager
  • Intel open image denoiser imager
  • EXR’s multipart parameter
  • The Tonemap Imager now supports a Look-up Tables (LUT) mode to apply to a LUT file in any format supported by OCIOv2.
  • Arnold lights also now have new defaults that give better first render results, along with sticky settings that allows you to create lights with the same setting as the light previously created.

Performance Improvement

Modeling Improvement

  • Occlude node – marquee(box)/paint selection support
  • Smart Extrude – overlap is treated properly in multi-body cut-throughs.
  • Smart Extrude – treatment to deal with when either the extruded faces or the target face were significantly non-planar. Now, under the hood we split all faces along any non-flat diagonals at the beginning of the operation, and re-merge them at the end, so arbitrarily non-planar faces now work just as well as planar faces.
  • Symmetry modifier – a new “Slice Cleanup Threshold” to the “Slice Along Mirror” option has been added in 3ds Max 2022.3. This threshold will allow you to further control the cleanup of vertices that are in close proximity to one another along the cutting plane before the Symmetry action takes place.
  • Unfold3D Peel/Pack – Further improvement on non-manifold map topology automatic fix
  • Unfold3D Peel/Pack – Proper MXS support for Unfold3D pack. Now users can choose Unfold3D as .pack methods and use all arguments of the method.
  • Chamfer modifier – “Limit Affects” functionality has been updated to generate improved results on non-planar faces and non-collinear chamfered edges.

User Experience Improvement

  • Orphaned Layers – When loading or merging a scene, orphaned layers and objects with no parent layers are now automatically recovered and can be interacted with once again.
  • Auto-Expand Selection in Scene Explorers is now off by default.
  • Show Selection Range – Show Selection Range in the Time Slider configuration is now on by default, making it easier to quickly scale the range of a selected set of keys.
  • LookAt Constraints Viewline Length – Viewline Length Absolute inLookAt Constraint is now off by default.
  • Installation from Hidden Folders – Now supports being installed and launched from a hidden folder, enabling the software to be more easily deployed.
  • Searching using partial material’s names in SME views enabled.
  • Fixed possible freeze with long shader tree can when right-clicking on the material in SME.

Software Security Enhancements

  • When Safe Scene Script Execution is enabled in 3ds Max 2022.3, scripts embedded in a scene will now prevent writing to folders where 3ds Max expects to find plug-ins and scripts.

3dsMax 2022.2

Unfold3D Peel – New

  • Unfold3D is the default algorithm used for the Peel functions now inside of 3ds Max with the Unwrap UVW modifier.
  • In the Edit UV window of the Unwrap UVW modifier you will see that the Peel section has changed to reflect a new set of options. A rollout menu is now provided so that you can choose to use the old LSCM method from before, or stick with Unfold3D
  • Peel, Peel Mode, and Reset Peel should all function as expected. Peel will unfold based on the UV coordinate selection as they exist. Peel Mode brings you into the interactive peel function. Reset Peel will take your selection, generate a new set of UV data and unfold them.
  • The options menu has also been updated to reflect Unfold3d’s various parameters for unfolding, or to access the settings for the legacy algorithms

Unfold3D Packing – New

  • Unfold3D requires clean non-manifold topology for processing. The Unwrap UVW modifier will check your UV data to and fix the problematic data such as degenerate,or  non-manifold uv data or stacked & welded elements.
  • By default the Unfold3D packing algorithm is also the default for all packing actions and is hooked into the same settings and options from before that are found in the Edit UV window.
  • A new options menu exists where you can further refine the packing options, or switch to the other algorithms within 3ds Max that we provided before for packing.

Unfold 3D Optimize – New

  • Unfold 3D Optimize is added in the Relax method dropdown.

UV Editor Performance Improvement

  • Improved performance of selection and uv manipulation by multithreading and optimizing memory allocations of topology validation and selection algorithms. Also threaded and batched data gathering for uv window painting.
  • Tested with 26 files ranging from 4k verts to 2.7 million verts.
  • Adding unwrap_uvw modifier – 486% faster (108% – 869%)
  • Opening UV editor – 175% faster (104% – 238%)
  • Switching sub-object mode from verts to faces – 174% faster (107% – 245%)
  • Switching sub-object mode from facesto verts – 296% faster (109% – 578%)
  • Selecting sub-object mode – 174% faster (114% – 229%)
  • Transforming sub-objects – I couldn’t measure this with script. But, you can see this is at least 2-300% faster from my video.

UV Editor Updates

  • The UV Editor’s default size is updated to be adaptive to the screen resolution on the end user’s machine. By default the Edit UV window will open centered and at 80% of the users screen resolution size. Changes to this window’s position and size are also saved.
  • A small progress bar has been added to the Peel rollout in the Edit UV window to help inform the user about the status of a Peel or Pack action that Unfold3D has been told to perform.
  • Users can cancel a Peel or Pack action by pressing ESC.
  • The default blackand white checker map that is used in the Edit UV window to help with UV mapping is now generated at a higher resolution (2048). A user can further adjust this resolution up to 8192 in the Unwrap Options

File Save Performance Improvement

  • File save code has been greatly optimized by caching data instead of recalculating it, minimizing moving file pointers, eliminating the object creation\destruction and setting\clearing flags instead.
  • Tested with 10 files which took more than a few seconds to save previously. The file save without compression is now 193% faster and 423% faster with compression on than 2021.3. So, turning on compression makes the file save 360% slower compared to 673% slower in 3dsMax 2021.3.

Smart Extrude – Multi Cut-Through & Partial Merge 

  • You can now drag a face through multiple surfaces, or drag a face partially through a volume of a mesh and it will cut and clean the geometry as expected.
  • It has been enhanced to produce more accurate results that might occur from numerical precision on overlapping faces.
  • Improved Smart Extrude stability when quickly moving the results back and forth before committing to a final position.

Pen Pressure Improvement

  • More device support as long as they support Wintab32.dll. (E.g. Huion, XP-Pen)
  • support the full range of pressure sensitivity that is offered by the pen tablet device by checking with the Wintab32.dll on your local Windows system. (E.g. Huion Kamvas16 support 8192 level)
  • Brush pressure from pen tablet input devices is now properly captured by 3ds Max and can be utilized once again in various tools/functions within the application that supports this functionality. For best results, disable Windows Ink

Performance

  • Accelerated moving verts in editpoly by not locking for every getnormal.
  • Improved loading performance if SME is open and there are heavy shading trees

Improved Hide by Category

  • New Qt UI
  • New Show Renderable Only checkbox
  • New Scene Contents to show only categories which exist in the scene.

USD b0.2

  • Supports exporting animation data such as node transform animations and vertex animation cache.
  • Added basic support for exporting splines.
  • Enhanced support for exporting and importing Photometric Lights.
  • Enhanced support for exporting and importing cameras.
  • Improved performance for exporting mesh and scene data.
  • Added export option to include/exclude hidden nodes.
  • Added options to control export of map channel data from meshes.
  • USDView now available with required dependencies.
  • Mesh conversion function available in MAXScript to create mesh from a USD Prim.
  • New export option to control polygon triangulation.

Modeling

  • The Symmetry modifier’s welding algorithms have been updated to provide even more predictable results by finding matching pair vertices on the mirrored surface. The tolerance threshold now enables welding to solve across open gaps along the symmetry line. These enhancements will make symmetry operations faster and more accurate than before, even on open surfaced models.
  • Symmetry now performs a check for non-manifold edges and vertices. It will attempt to clean incorrect mesh data when these errors are found. This will help resolve issues with vertices being accidentally welded to other vertices on other elements after using Symmetry.

Security

  • Security Settings Management -: 3ds Max now supports management of security settings by IT administrators by specifying and locking the Safe Scene Script Execution settings through the registry. This allows for all installations to use the same security settings, which helps define team or studio-wide software security policies.
  • Support3ds Max now logs all Python scripts and imports. If a module is imported multiple times, it’s logged only once per 3ds Max session

Core

  • The ADSK_APPLICATION_PLUGINS environment variable can now list the folder where the PackageContents.xml file of a plugin packages is located. This allows for finer control over organizing plugin packages and providing 3ds Max with the paths to load them from.

Maxscript

  • enableColorMap and useRGBColorMap properties added to StandardTextureOutput MAXScript exposure. Setting on any of the properties via MAXScript for StandardTextureOutput updates display in Compact Material Editor and Slate Material Editor.
  • When a hyperlink control in an embedded scene script is clicked, a security warning dialog is displayed to confirm that the user trusts the target website.
  • The getINISetting() function now takes an optional defaultValue keyword parameter that defines a value to return if the specified key is not found.
  • The new getEncoding() function returns the character encoding of a specified text file.

Python

  • It is now possible to execute pyc files in 3ds Max.
  • The Python interpreter runs with the -E switch.

Fixes

  • Fixed issues related to cloning of script editor tabs in MAXScript editor.
  • Resolved an issue with the Symmetry modifier where it would merge vertices there were in close proximity to one another together before stitching the mirror results together.
  • Fixed issue where user could not add Tracks to Track Sets.
  • Fixed an issue that caused the getINISetting MAXScript function to change the encoding of the files it read to UTF-16 LE with BOM. Now the original encoding of files is always preserved when they are read using getINISetting.

3dsMax 2022.1

Explicit Normal Performance Improvement

  • Last year I have posted a tip about “3dsMax tips #3 How to make imported tree animation 15 times faster”. /3dsmax-tips-3-how-to-make-tree…/
  • In that post, I hinted 3dsMax dev is working on improving the situation. Finally that effort come to fruition and released in 2022.1. Now all explicit normal computation is fully safely multithreaded. My test shows 2x to 4x “overall” performance improvement. The video I attached has 4 of 25k verts characters with explicit normals(total 100k deforming verts). It went from 9 fps to 36 fps! This was no simple task and touched the core of 3dsMax. As you can see from the last a few release, 3dsMax team is putting a lot of effort for modernizing the core and improving performance.

New Selection Filters for Editable Poly and Edit Poly modifier – Occlude mode

  • Two new Optional Culling selection filters, Backface and Ignore Occluded, have been added to Editable Poly and the Selection Rollout for Edit Poly modifier. When enabled, artists will be able to only select the components (vertices, edges, polygons) that are visible in their view. Hence, making it easier to select visible components only and preventing you from unintentionally selecting components that are occluded from view. These options replace the legacy Ignore Backfacing toggle. In addition, Target Weld and Bridge poly functions now perform better with these options enabled.

Restore Factory Settings & Startup Failure Recovery

  • A new Restore to Factory Settings button has been added to the General Preferences tab to let you restore 3ds Max default settings from within the software if you experience unexpected UI behavior or performance issues. Everybody knows “Deleting ENU folder” trick to solve many odd issues. But, you also lose user macros and script by doing so. Also you have to remember those hidden folder location. Bow, 3dsMax will reset only needed setting for you with a button. Also it will give you one click shorcut to access the folder.
  • On launch, if 3ds Max detects that initialization has been corrupted in a way that prevents it from launching, a Startup Failure Detection window now appears. (You can ignore the dialog and continue without restoring. If 3ds Max continues to fail at startup, the option will still appear.)

Modeling

  • Smooth Modifier to Clear Explicit NormalsAs a part of explicit normal handling improvement, Smooth modifier now clears explicit normal interface completely for Poly object. You can see the technical details at the above my tutorial link.
  • Vertex Paint ImprovementsSub-object component selections can now be passed up the modifier stack to the Vertex Paint modifier. This will enable artists to utilize the component selection as a mask to control where you can paint. Vertices of hidden faces are no longer selectable with your mouse when using Vertex Paint.

Performance

  • Smart Extrude Performance ImprovementThis update brings significant performance enhancements(over 20x) to Smart Extrude allowing you to perform Smart Extrude actions to a selection of polygons on their models faster than ever before. You can also apply these actions utilizing higher polygon counts than what was previously possible.
  • 3dsMax scene mesh to viewport display gpu mesh conversion has been improved.
  • Noise map multi-threading handling has been improved.
  • The performance of the selection of objects in the viewport with SME opened has been improved.

MaxFluid

Core

  • No more MentalRay missing plugin error new mechanism (came with a new SceneConverter API – AddSilentClassID ) was introduced in 2022.1 to allow to hide any missing plugin data (e.g., from MentalRay). In English, you wouldn’t see this popup anymore. It doesn’t matter if the missing plugin data is in xref or material library. The new feature will simply ignore them and will not show popups.

InterOp

  • Improved Support for Vertex Colors in FBX ImportsVertex Colors are now supported in FBX imports from a broader set of sources, enabling greater collaboration opportunities across different creative tools with less compromise.

Fixes

  • Only 1 click necessary to work with Render Setup properties if focus is elsewhere in Max.
  • Fixed Perspective Match handles behavior.
  • Animation keeps playing while the view is moving/panning/orbiting.
  • Resolved an issue where Xform modifier gixmo was always displaying in the viewport, even when the object it was applied to was not selected and it was not the active modifier on the stack.
  • Preferences saving issue with V-Ray installed
  • Weighted edges that are set as 0 in Editable Poly or the Edit Poly modifier Chamfer by weight will now produce proper results when using Chamfer and “By Weight”. Any Chamfer modifier applied within 3ds Max 2022.1 Update will now utilize this new code to handle edge weights when chamfering.
  • Fixed issue introduced in 3ds Max 2022 where strings used as initialization values for structures, scripted plugins and scripted rollouts were not properly handled, resulting in code that could change the content of the actual string literal.
  • Fixed command panel rollouts not expanding or retracting
  • Solved issue with .psd files locked in Photoshop.
  • PBR Importer rules can now recognize spaces in texture names.
  • Fixed a bug that prevented maxscript from writing to the listener window when called from python.
  • Fixed the save of sequences from Make Preview when Multi Pass is enabled.
  • Anim Layers were not being removed when the the controlling node was deleted. Now when a node is deleted any anim layers referencing that node are also deleted. Also on file open/merge anim layers that are orphaned are deleted.

3dsMax 2022

Smart Extrude

  • Smart Extrude Cut-through removes geometric data when the smart extrude passes to the other side of faces.
  • Smart Extrude Bridge perform union operations and join non neighboring polygons together from complete intersections.
  • EditPoly support for Smart Extrude
  • PU2 – Smart Extrude Adjacent faces are completely rebuilt and stitched together, matching the final visual output. No more need for time-consuming repairs on hidden faces or other geometric data resulting from extrusions.
  • PU1 – Interactive Extrusion and Inset(AKA Shift Extrude/Scale) Users can now utilize a Shift+Drag (left mouse button) with the Move transform tool to extrude polygon component selections when using an Editable Poly or an Edit Poly modifier. Shift+Drag with the Scale transform tool now performs a polygonal inset action on selected polygon component selections when using an Editable Poly or an Edit Poly modifier Clone/Copy actions are now performed with Ctrl+Shift+Drag when using the Move transform tool on the polygon component on and Editable Poly or an Edit Poly modifier.

Revamped Slice/Symmetry modifier

  • Multiple axis slice planes with Planar slicing/symmetry. This allows you to slice/symmetry on X, Y and Z axis at the same time. You can flip any of the individual axis to get the desired result.
  • Radial slicing Radial slicing along one plane (z by default). You have control over the two angles up to 180 degrees.
  • Radial symmetry enables a new symmetry function to quickly duplicate and repeat your geometry around the gizmo center to rapidly create new variations and empower your workflow. You can use as rasial array, too.
  • Mirror option for Radial Symmetry Mirrors each radial symmetry part to create seamless connection between each part.
  • Pick Face option for Planar slicing/symmetry allows you to quickly align the slice plane to any face of the object that the modifier is applied to.
  • Pick Object picking a different object in the scene to drive the transform of the slice/symmetry. Gizmo transform. This makes it much easier to animate the gizmo. Almost like having a local and world space modifier in one.
  • Improved Performance. 2x faster than the original slice modifier.
  • Smarter Weld Seam modifier actually knows what vertices are split from one another and welds them back based on the slice plane instead of blankly weld by distance threshold. The edges not being sliced (generating new vertices) aren’t considered. It allows to weld vertices from different elements of a mesh in a smarter way
  • Cap(Slice) open holes created by the Slice operation can now be capped along its boundary edges.
  • Set Cap Material(Slice)
  • Automatic selection for capped faces(Slice)
  • Automatic Operation mode(Slice) Slice modifier will use the same data type coming from stack  by default.

Improved Relax modifier

  • Fullt multithreaded for better performance. A test shows 3.5x improvement over 1.1mil verts and 2.2mil tris
  • Preserve volume option

Improved Extrude modifier

  • Optimized capping provides significant performance improvement for complex shape with a lot of elements. A test on a spline with 220 spline and 523,176 points was 130 times faster than before(3576 second vs 27.7 second).
  • Capped geometry is cached. Therefore, the extrude updates instantly when the amount value is changed.

Retopology(PU3)

  • A brand new Retopology modifier 3 automatic retopology algorithm. Reform, QuadriFlow, InstantMesh
  • Reform the proprietary retopology algorithm, reconstructs problematic polygonal mesh data as clean quad-based topology with uncompromising accuracy.
  • QuadriFlow and InstantMesh for quick retopology.
  • Various hard edge preservation options. Material ID, UV, Boolean Seams, Specified Normals, Selected Edges, Angle

Improved Subdivide modifier(PU3)

  • 3 new algorithms for remeshing Delaunay Adaptive Variable Curve
  • All three algorithms can preserve existing mesh data include UV on the output result
  • The pre/post processing was threaded, and some obvious sources of inefficiency were fixed.

New Path Deform modifier(PU3)

  • Completely rebuilt while retaining backwards compatibility with older scenes.
  • Fully multi-threaded average 400% faster. 1 million verts test showed 1700% improvement.
  • Support for per element path deform, control the pivot for each element and whether the elements are deformed individually or as a group
  • Utilize nodes with multiple curve elements to transition the path deform from one shape to another
  • Preserve form by element – The objects form is now maintained when moving along the path
  • Texture coordinates are properly transferred from the path to the object (and will no longer crash 3ds Max)
  • Preserve form by Group – Grouped object positions are now

Improved Push modifier(PU2)

  • Fully multi-threaded average 300% faster.
  • Vertex normals are now cached, maintaining their input normals when a push operation is applied to them. This provides an added performance for animation.

Safe Scene Script Execution

  • 3dsMax will block the execution of scripted commands found in the scene that could be used for malicious purposes. The same commands found in script files (*.ms, *.mse, *.mcr, *.py, etc) will not be blocked. Safe Scene Script Execution (SSSE) is enabled by default
  • The Safe Scene Script Execution settings can be found in the Security tab of the Preferences dialog The commands being blocked fall into these categories: 1) Maxscript system commands: these are commands that allow access to resources outside the 3ds Max scene, such as file system, process execution, network and internet. Examples include DosCommand, ShellLaunch, createOLEObject, LoadDllsFromDir, 2) Python commands: these are commands that allow for executing python code from Maxscript. Basically the methods of the Python Maxscript interface are all off limits. 3) 3rd part .NET code: instancing of .NET types that 3ds Max does not use are disallowed from scripts embedded in a scene file.
  • User friendly notifications on blocked scripted commands When a scripted command is blocked, a message is displayed in our new modeless Security Message window, and it’s displayed in orange to indicate that it’s new (hasn’t been read yet).  the blocked command icon in the status bar will increment the count of  blocked messages and turn orange for a little while the plugin\feature that owns the script containing the blocked command will pop open. The message that displays the name of the blocked command, also displays the parameters passed to the command
  • Security Tools integrated into Security preferences You can enable\disable the Security Tools from the Security preferences tab – see the “Malware Removal” section.
  • Unsafe dragAndDrop FPS methods are blocked by the Safe Scene Script Execution feature
  • 3dsmax.exe (3dsmaxio.exe), 3dsmaxbatch.exe and 3dsmaxcmd.exe all support the command line options and env vars for controlling Safe Scene Script Execution. command-line option for all flavors of 3ds Max : ‘- safescene [on|off]’ environment variable ‘ADSK_3DSMAX_SAFE_SCENE’ (with ‘[1|0]’ values) The order in which the settings are read and applied (the last valid in list is the one retained): 3ds Max ini file, environment variable, command-line
  • Evaluating macroscript definitions and running macros.new or macros.load are blocked when called from embedded script and Safe Scene Script Execution is enabled.
  • The dotnet.loadAssembly <assembly_dll_string> method is blocked when called from embedded script, Safe Scene Script Execution is enabled, and SSSE execution of .Net is disabled
  • Unsafe dragAndDrop FPS methods are blocked by the Safe Scene Script Execution feature
  • The Malware Removal functionality also has an option to notify the user of updates available to the Security Tools on Autodesk App Store.

Performance

  • Accelerated Auto Smooth.algorithm EditableMesh and EditablePoly AutoSmooth command, EditMesh and EditPoly Autosmooth command, Smooth modifier and Renderable Spline with Autosmooth on. The performance gains are significant. One of the test models took 2.8 second compared to 6664 second before. 3000 times faster!
  • Faster EditPoly Remove Edges and to a lesser extent, Remove Vertices EditPoly Remove edges (with ctrl on) and Remove vertices in various places (including EditablePoly). A test which removed 238,800 verts from 318402 verts showed 2,533 times improvement. 2021.3 took 4276.9 second, and 2022 took 1.688 second. This change break backward compatibility. This means you will not see improvements when loading old files. Only the newly added Edit Poly modifier will use this improvement.
  • Accelerated mesh clusters. A test model with Bevel Faces and Chamfer Edges processed in 4 second compare to 1 minute 25 second before.
  • Accelerate an internal controller data structure “TempStore” This optimization improves key creation speed. this can improve file loading of scenes with a bazillion keys (since you have to “create” all those keys on file load). And it may improve performance of operations that destroy/create many keys at once (for example reduce key). It also comes with a tiny (very tiny) bump in speed for most controllers
  • Update geometry library to conform to c++11 object creation/destruction 3dsMax geometry library has been modernized to help performance and stability. it could improve modifiers that work with geometry a lot (and use standard containers & algorithms). We also made our matrices safer (they could read corrupted memory, causing crashes or bad values)
  • Optimized Attachment controller added math optimizations and the ability to cache the data so that playback speeds are improved after the data has been loaded and played the first,
  • PU3 – The initial MAXScript heap size allocation is increased from 15 MB to 100 MB, which can improve performance when the Ribbon is open.
  • PU2 – Faster loading scenes with many deep OSL shading trees.
  • PU2 – Improved import skin weight for high poly meshes. Tests showed 120x improvement in the example scene we were given!
  • PU2 – perform enhanced explicit comparisons between the cached mesh and input mesh passed to determine if topology changes to faces or vertices should invalidate Unwrap UVW data above the stack.
  • PU2 – The Mesh commands of RemoveDegenerateFaces() and Mesh::RemoveIllegalFaces() have been updated to support multiple threads, enabling these actions to be performed much quicker on more dense data sets.
  • PU2 – MAXX-57473 : Accelerate panning in trackview
  • PU2 – MAXX-48640 – Playback performance improved when TrackView is open.
  • PU1 – Corrected mesh validation issue affecting FBX import speeds when the file contains invalid data.
  • PU1 – Improvements to the mesh selection algorithms should speed up performance for machines that have 4 cores/threads or less.
  • PU1 – The intersectRay MAXScript function will now perform with increased accuracy and consistency with both mesh and MNMesh type objects when dealing with faces by performing improved bounding box tests.
  • PU1 – Anim Layers were not being removed when the controlling node was deleted. Now when a node is deleted, any anim layers referencing that node are also deleted. Also on file open/merge anim layers that are orphaned are deleted.
  • PU1 – Improved file loading, saving, and/or merging when dealing with Motion Clips we now cull out orphaned motion clips that are unreferenced. ParamBlock2 post load callback speed has also been improved.
  • PU1 – Added Track View action item called ‘Delete Selected Custom Attributes’ to delete any selected custom attributes in the active Track View and help reduce file bloat issues. It is only enabled when a Custom Attribute is selected.

BakeToTexture

  • Common Maps extend bake elements that users can pick to quickly achieve desired results. – The following maps are supported in 2022. Beauty, Color, Metalness, Roughness, Vertex Color, Emissive, MaterialID, Material Input, Opacity, Normal, Ambient Occlusion, Rounded Corners. Any renderer can “hook” into those Common Maps to define how they want to best bake that common map. Common Maps are MaxScript based for 3rdparty to support easily. If a Common Map is not supported by a renderer yet, it will display as unsupported (barred teapot icon at the beginning of the line).
  • Gamma settings are now exposed in Bake to Texture for non-data maps, which will bake at a 1.0 setting
  • Baking normal maps with scanline no longer produces specular artifacts. MAXX-59733
  • Baking multiple UV tiles no longer bakes the same time repeatedly. MAXX-59240
  • Baking self projected normal maps no longer produces artifacts and noise. MAXX-59075
  • Baking with Arnold no longer applies an unexpected filtering, resulting in a blurred result.
  • The Enter key no longer commits unexpected changes in the Bake to Texture window.
  • Save to previous function no longer triggers unexpected warnings when scene contains Bake to Texture data.
  • PU2 – Enable batch rendering of baked maps from Bake to Texture
  • PU1 – User can decide to skip or overwrite existing maps from the Existing File(s) Found dialog in Bake to Texture
  • PU1 – The Output-To Material in Bake to Texture loads the resulting image sequences if animated maps are baked
  • PU1 – Baked UDIM tiles are automatically loaded in the baked material using Multi-Tiles maps.
  • PU1 – Animated map outputs support as well as multiple animated frames
  • PU1 – Multiple line editing of the Output-To column for Objects and Maps MAXX-56156
  • PU1 – Improved performance when dealing with large numbers of objects with bake maps defined.
  • PU1 – Add multiple maps to multiple objects to the Bake to Texture list in a single MaxScript command.
  • PU1 – Output-To settings are now exposed to MAXScript.
  • PU1 – Enabling the MacroRecorder no longer has a significant performance impact on the Bake to Texture performance.
  • PU1 – Map order in Bake to Texture is now preserved after loading an existing scene.
  • PU1 – When baking a map using Map Override with Scanline, the map is now shown in the Bake to Texture window if the scene is closed and re-opened.
  • PU1 – Bake to Texture Output-To state lo longer resets to File Only and loses settings when switching Output-To options.

Modeling

  • PU3 – Preference > Viewports > Selection Pixel Radius setting for easier selection on HiDPI monitor.
  • PU3 – Spline Chamfer modifier improvements Enhanced functionality controls what knots are influenced through minimum angle parameters. The calculation of knot positions after fillet/chamfer operations has also been improved to provide optimal results.
  • PU3 – Improved hit detection for selections Implemented improved methods to handle pick selection when there are multiple components under the users cursor. This includes finding near or neighboring selection options to the cursor and comparing screen (z) depth to be more deterministic.
  • PU3 – Depth cycling issues for selection have been fixed. When you try and cycle through verts/edges/faces that are directly in front of or behind other verts/edges/faces, it no longer makes a selection of the different components when in Edit/able Poly.
  • PU3 – Updated the Bridge operation to provide improved mesh stability to look for and remove dead vertices to make the mesh safe once it has completed its action. Other poly actions in 3ds Max have also been enhanced to look for this same problem as well.
  • PU2 – Selection Improvements Loop and ring selection is now more intuitive at various component levels. Hold Ctrl and double click to add loops and limited loops. Hold Alt and double click to remove loops and limited loops.
  • PU2 – Spline Chamfer Modifier Procedural chamfer on spline as a modifier Use Stack Selection, Limit Effect options
  • PU1 – Explicit Normals Preservation for Mesh Applying an Edit Mesh modifier no longer invalidates explicit normals, nor do the following actions: Attach, Detach to Object, Detach to Element, Clone to Object, Clone to Element, Detach as Clone to Element.
  • PU1 – Resolved an issue where a reset command was issued and the bind pose on Skin Wrap was not properly updating. We have also exposed a new Maxscript command called fullReset to call this reset action as well.
  • PU1 – add  skinops.getVertexBoneIDsAndWeights add skinops.getVertexBoneIDsAndWeights to correspond with skinops.setvertexweights <#(<vertex_boneId_array>, <weight_array>)>skinOps.getVertexBoneIDsAndWeights <Skin> <vertex_integer> [node:<node>]

Rendering

  • Faster Qt Render dialog
  • Classic Material Editor default slot materials are all set to simple gray Physical material for faster loading.
  • PU3 – PBR Importer Enables the quick automatic creation of PBR or Physical Materials by loading a range of PBR texture files.
  • PU3 – ActiveShade viewport resolution multiplier You can now render in the ActiveShade viewport with 1/8, 1/4, 1/3 or 1/2 resolution to increase render speed, especially when working with high resolution monitors.
  • PU3 – Hide Unused Nodes now correctly hides unused input and output slots.
  • PU3 – RenderMap() now supports 32bits (EXR)
  • PU3 – Fixed Tabbing Between Views in SME with “Ctrl+Tab”
  • PU3 – Updated default settings to 20 for the Create Preview Animation tool
  • PU2 – Adaptive Degradation is Off by default 3dsmax.ini > [performance] > adaptiveDegradation key stores the last value so that it’s remembered across max sessions.
  • PU2 – A warning is displayed when collecting more than 10 materials from the scene in SME. You can change the default number using the “Warn on Get All Scene Materials” flag in the SME.ini file, or set it to 0 to restore the legacy behavior.
  • PU2 – Render Message window QT interface with a new color scheme Copy and paste is easier Enable / Disable Render Message window auto-scroll. Added checkbox for Open on warning
  • PU1 – SME: In single-click mode, the maps and materials are automatically selected on creating, copying and picking from object.
  • PU1 – PBR material support displacement
  • PU1 – Faster Slate Material Editor The Slate Material Editor now pans and zooms smoother and faster when using a 4k monitor
  • PU1 – Improved  Slate Material Editor Search field perform global search through all materials and maps in the editor. For example, if you were searching for the Advanced Wood map and typed “wood,” the old search would not find it but now it will.
  • PU1 – Optimized OpenImageIO cache setting to improve performance for evaluation of OSL shaders. Increased the memory limit from 2 GB to 16 GB before swapping textures.
  • PU1- New Render output size default to HDTV resolution of 1280 x 720
  • PU1 – Render Preset UI is now HiDPI compatible
  • PU1 – When adding a node in the Slate Material Editor, it now shows in the viewport (shaded mode) as the Show Shaded material in Viewport is now on by default. You can change the default behavior in 3dsmax.ini: 0 = Show Shaded Material in Viewport OFF, 1 = Show Shaded Material in Viewport ON.
  • PU1 – MAXX-56763 Materials added only in Compact Material Editor will update their properties in real-time in the viewport.
  • PU1 – Quicksilver will no longer use Time to render in the Slate Material Editor, so you will no longer be locked out of 3ds Max.
  • PU1 – “Rendering in the Cloud” and “Open A360 Gallery” have been removed, and the “Quick-Render” button in the main toolbar now has an additional fly-off to setup a A360 Cloud-rendering.

OSL

  • PU2 – New – Bitmap Random Tiling OSL Map Looks up a bitmap from UV coordinates and modifies each repetition so tiling is not evident. The shader has a mode to properly transform normal maps. It outputs the modified UV so it can be hooked up to other Bitmap Lookup shaders so you can apply the identical randomness, in addition, it outputs the Random Index itself to drive downstream synchronized modifications.
  • PU2 – New – PBR Mixer OSL Map Mixes all parameters for two sets of PBR materials.
  • PU2 – New – 1 of N (filename) OSL Map Picks one of the numerous inputs.
  • PU2 – New – Scale (color) / Scale (vector) OSL Map Multiplies a color/vector by a float
  • PU2 – New – MultiMixer (color)/Mix (color) / Mix (vector) OSL Map Mixes many pairs of color inputs driven by a single Mix input.
  • PU2 – New – Wireframe Creates a wireframe with a fixed width relative to rendered pixels, with a square every 1×1 unit square in UV space.
  • PU2 – Random By Index(Color) OSL Map New Randomize Per component option
  • PU2 – Curve OSL Map New UV input mode option

Viewport

  • Presentation Mode Borderless floating viewport.
  • PU3 – Viewport Bloom Reproduce the illusion of a very bright light overwhelming the camera capturing the scene, creating a glow. Bloom can be applied on background or on specific objects. Settings include quality and radius, strength, tint, threshold & smoothing, and Dirt map.
  • PU3 – Viewport shader compilation feedback
  • PU3 – Point cloud display enhancements Point cloud data has been enhanced by integrating a new color/spectrum ramp and a new shader for intensity and elevation. This aligns how point clouds display in the viewports with how ReCap displays this information.
  • PU2 – Improved zoom extents behavior for perspective viewports
  • PU1 – Support OSL string in viewport. You can play animated sequences in viewport when you use OSL bitmap.MAXX-56995
  • PU1 – UDIM display via OSL bitmap.
  • PU1 – Depth of field now affects the environment map, It can be disabled by editing 3dsmax.ini, and set DisableDOFForBackground=1 in the [Nitrous] section.
  • PU1 – the vignetting scale is now the same value as defined in the camera
  • PU1 – Matte/Shadows materials now work in the viewport
  • PU1 – Each viewport can now have their own exposure, white-balance and vignette settings.
  • PU1 – 3ds Max now starts properly when 10 GPUs are present. MAXX-50053

Fluids

  • PU1 – Fluid loader is exposed to particle interface. You can directly render MaxFluid with VRayInstancer and such.
  • PU1 – The Velocity channel now reports correct information when not using meters as your default scene scale. This fix will enable motion blur in your renderer
  • PU1 – PRT now supports signed and unsigned integer values (via .ini change).
  • PU1 – PRT export of uv and id for Fluid has been fixed.

User Defined Defaults(PU1)

  •  PU1 – Allows you to set your own default values for ParamBlock2 supported spinner, radial, checkbox, or input field through MAXScript calls.

Maxscript

  • Improved ATSOps interface – allowing repathing of scene assets via MAXScript
  • Dock toolbars with correct height Dockwidgets created via MaxScript maintain the correct/initial size
  • PU3 – The callbacks.show() function now indicates when a callback definition is loaded from a scene file with SceneFileEmebedded:true|false
  • PU2 – New executeScriptFile() function provides a way to execute a script file and return any error messages it might generate
  • PU1 – New functions allow you to enable or disable some callback types: Time change callback, Viewport redraw callbacks, Selection filter callbacks, Display filter callbacks
  • PU1 – MAXScript time and key functions operating on object hierarchies such as deleteTime, addNewKey, and addEaseCurve, now operate once on instanced controllers. MAXX-36508
  • PU1  – The new “PostSamplingKeyReducer” option for the FBX Importer controls whether animation keys are reduced post-conversion.
  • PU1 – The setFocus() function can now take a rollout’s HWND property.
  • PU1 – A new setForegroundWindow() function is similar to setFocus(), but also brings the specified UI component to the foreground.
  • PU1 – Added useMPCamEffect:<bool> to MAXScript createPreview method. MAXX-56186
  • PU1 – Changes to the expression of a script controller are now undoable. MAXX-56055
  • PU1 – Math functions have improved accuracy for large integer, integer64, and integerptr values (those that cannot be accurately represented as float values). MAXX-53250
  • PU1 – Fixed MAXScript ‘apropos’ command to properly handle ‘ ‘ as terminating character in pattern. MAXX-52844
  • PU1 – Fixed issue that ‘[‘ in MAXScript node path names was handled as the beginning of a regex set in some cases. Disabled regex set handling when dealing with node names in MAXScript. MAXX-50783
  • PU1 – Can now set row of bigMatrix using array of float, and can now coerce row of bigMatrix to array. MAXX-45013
  • PU1- Added asBox3:<bool> to methods returning bounding boxes, added Box3Value::operator + that performs union of Box3Value values, added read-only ‘boundingBox’ property to classes such as ObjectSet that have Point3 min/max properties, property returns a Box3Value.
  • Updated the showInterfaces MAXScript function so that it displays the signatures of MAXScript functions with a format that is easier to understand.
  • PU1 – Changed the default font of the MAXScript Editor, MAXScript Listener, Macro Recorder and newScript() windows to Consolas, which is a monospaced font.

Python

  • PU3 – The Python version can now be set using the ADSK_3DSMAX_PYTHON_VERSION environment variable for 3dsmaxcmd.exe MAXX-60073
  • PU1 – Switched from an embedded Python 3.7 to a standard Python 3.7, which is more suitable to be used for developing Python scripts., meaning all standard modules are available (including venv and ensurepip)
  • PU1 – Improved Python exception traceback information to also display the information from the first call level. MAXX-56107
  • PU1 – Fixed assigning a new value to a SubAnim (an animatable property of a scene object accessed by index instead of by name) through Python. It is now possible to assign a new controller to a SubAnim in Python.MAXX-56019
  • PU1 – ‘MAXClass’ MAXScript types can now be compared in Python without exception being thrown and logged, which were interrupting Python script execution, and resulted in 3dsMax Batch reporting errors in tasks that executed such Python code. MAXX-55982
  • PU1 – Deleting an item using Python from a MAXScript collection now removes it from the collection as opposed to setting it to None. MAXX-53295
  • PU1 – Fixed issue where MAXScript values created when calling MAXScript function from Python were not properly protected from garbage collection. Also improved memory stack handing when passing large argument lists.
  • 3dsMax can now be started from a virtualenv and a venv

InterOp

  • SolidWorks 2021 support
  • PU2 – Mirrored or copied linked models are now imported through direct Revit import or Link Revit import.
  • PU1 – Shared Views –  Shared Views now supports Physical material.
  • PU1 – SketchUp 2020 models are now supported.
  • PU1 – SketchUp model importation – There is improved handling of internal edge visibility, improving the imported mesh quality, and Fixed edge visibility in the new ATF-based Sketchup importer.
  • PU1 – A new UI export option has been added to support data cleanup when exporting alembic files.

Security

  • Updated SecurityTools to handle ALC alpha variant
  • In an effort to allow for auditing software security issues such as malware attacks, we are now logging all maxscripts 3ds Max loads.
  • Added a new environment variable (ADSK_3DSMAX_SESSION_LOG) that users can use to specify the name and location of a session log file.
  • PU3 – To enhance system security, startup scripts with hidden or system file attributes are now blocked.
  • PU3 – Scripts in a hidden or system folder (other than ‘%LocalAppData%’ and ‘%ProgramData%”) are also blocked.
  • PU3 – If a script is blocked for these reasons, it is logged to the system log with the script path and name, the file attributes, and “Action: not loaded.” In addition, all other scripts are logged, which can help you diagnose issues caused by scripts in general, as well as to audit potential security incidents.
  • PU3 – 3ds Max Security Tools 1.3 is included in this version, which detects and removes malicious code known as “PhysxPluginMfx.”

Core

  • CAT Preset Files now stored in this folder: C:\Users[User}\Autodesk\3ds Max [year]\User Settings\CAT.
  • Particle Flow Presets now stored in this location: C:\Users\<username>\Autodesk\3ds Max 2022\UserSettings\Particle Flow .
  • Updated to Qt 5.15
  • Updated to PySide2 version 5.15.1 (matching Qt) MAXX:Core
  • Updated to OpenSSL version 1.1.1i
  • Updated to libJPEGTurbo library 2.0.5 MAXX:Core,
  • Updated to openexr library 2.5.3 MAXX:Core,
  • Updated to OpenImageIO library 2.2.7.0 MAXX:Core,
  • Updated to OpenShadingLanguage(OSL) library 1.10.13 MAXX:Core, MAXX:Rendering
  • Updated to Boost 1.73.0 MAXX:Core, MAXX:USD
  • Updated to the latest version of FBX
  • To make it easier to know which plugins packages are loaded into 3ds Max, the Plugin Manager now displays the author and version number for each plugin package in addition to its description and location.

Fixes

2021.3 Fix list

  • Resolved an issue with the Edit Poly modifier, introduced in 2021.1, where animated vertex component data would not play back properly.
  • Solved an error with how Vray handled materials, causing 3ds Max to crash when you opened the Edit UV window of the Unwrap UVW modifier.
  • Cloning keys over existing keys in the curve editor, timeline, mini curve editor, key info floaters, motion panel and dope sheet no longer creates incorrect tangents.
  • MAXX-58984 Fixed a defect in the Skin modifier that permitted adding duplicate entries of the same bone into the system. This will prevent the problem in the future. Current scenes affected by this must still be manually cleaned.

2021.2 Fix list

  • Fixed a crash in a CAT Parent object when pressing the time warp button. MAXX-57295
  • Fixed the buttons to open Curve Editors for a CAT Layer displaying empty curve editors (no keys or curves).

2021.1 Fix list

  • Improved warning message when rendering an animation sequence without an output file being specified, and added the ability to silence the warning for the current 3ds Max session.
  • Fixed Flight Studio so it doesn’t evaluate nodes at time 0 on scene file load, now it evaluates nodes at the beginning animation time.

3dsMax 2021

* No SDK Break – Plugins compiled for Max 2020 are supported in Max 2021

Full MikkT Space Support for Normal Map

  • Baking -Scanline Renderer can output normal map in MikkT sapce
  • Rendering – Normal map in MikkT space can be rendered in Scanline Renderer
  • Viewport – Physical Material supports MIkkt space normal map in viewport
  • API – Normal bump mode is now exposed as a part of 3dsMax API

BakeToTexture – New

  • Brand new tool for baking maps and surfaces offers streamlined workflow with full queue control
  • Extensive renderer support including Arnold
  • Error validation and compatible map filtering
  • Faster performance
  • MikkT normal map baking
  • Override map
  • Extensive renderer support including OSL and Blended Box Map
  • Bake element viewing in VFB while baking
  • No bake size limitation

New Simplifed PBR Material

  • Two simplified frontends to Physical Material has been added, that are intended to mimic shading models commonly used in game engines
  • PBR Material (Rough/Metal)
  • PBR Material (Spec/Gloss)
  • Drag and drop downloaded PBR maps straight from Windows Explorer into the Material/Maps Browser.

OSL

  • Advanced User Interface
  • Metadata-driven UI Additional metadata can be used to make more complex UIs such as “null”, “connectable”, “worldunits”.
  • Row Packing the metadata packName decides which parmeters to “pack” into the same row. Any two or more parameters that have the same “packName” will show up on the same row, with that “packName” as the row header. To additionally size the columns as needed, the metadata widgetWidth allows some amount of adjustment of the relative size of the widgets, to keep the layout looking balanced
  • Custom Widgets Two custom widgets are supported, max:ramp0 and max:actionButton
  • Dynamic UI With the help of the “max:actionButton” shown above, a few helper scripts have been introduced that makes shaders dynamic – as in – the shader is actually modifying its own sourcecode!
  • Qt based custom ui support it now also has the ability to load a .ui file that completely defines the user interface of an OSL shader. The default layout engine was improved to right-justify parameter headings and have some more user control of the layout.
  • Extended parameter support The new “semi-types” vector2, vector4, color2, color4 and matrix33 can now be used. These types are not built-in OSL types, but defined in header files. Including these header files and using these types is now supported (see the section about include files). Also, parameters of type array are supported in certain cases (see the ramp widget).
  • Support was added for adding OSL shaders from a 3ds Max “Package”. This is the preferred method to distribute sets of OSL shaders.
  • New HDRI Environment map – Environment shader with exposure adjustments, ground projection mode, and separation between Background and Environment.
  • New HDRI Lights – Allows using a set of HDR photos of light sources as an environment map.
  • New Environment/Background Switcher
  • New Camera/Object/Spherical Projection map
  • New Curve(Color), Curve(Float) map – Transform an input using a arbitrary curves. Can be used for gradients or as a color correction tool. Each color channel is mapped individually by the curve.
  • New Uber Noise map – Combines many noise functions in one. Can do classic Perlin, Fractal, Cell as well as fBm noise and multiple flavors of Worley noise.
  • New Color Correction map
  • New Wireframe map
  • New 4-Point Gradient map
  • New Spect/Gross to Physical map
  • FBX export will embed OSL code
  • “Version” metadata support
  • Proper UDIM support for AssetTracker
  • Paths in OSL shaders can be edited in Asset Tracker
  • OSL compilation at startup runs on separate thread
  • Fixed OIIO file lock. Bitmap files used in an OSL map can now be edited outside of 3ds Max, as the file no longer locks (PU3)

Physical Material and Arnold as Default

  • Physical Material and Arnold as Default
  • Previous defaults is still available by MAX.Legacy market default
  • Physical material for imported model
  • FBX now supports the Physical Material. Internally to FBX it is saved as an Arnold Standard Surface. On import to other DDCs it is seen as an Arnold node. When importing to 3ds Max it is seen as the Physical Material. Basic FBX materials are now also converted to the Physical Material
  • Support PBR Wavefront MTL extention from Exocortex for Obj import
  • API support for 3rd party for new default
  • VRayMaterial to Physical Material support
  • CoronaMaterial to Physical Material support

Viewport

  • New “HDAO” mode – gives a “tighter” AO apperance revealing smaller details.
  • AO (when enabled) is always on, and does not disappear while navigation
  • New Progressive Skylight viewport menu option can turn on/off the progressive mode (really same as the old “Skylight as Ambient” but with the opposite polarity of the switch and a better name)
  • New Progressive Skylight visible option in the Per-View Presets viewport menu dialog
  • New slider for the fading factor in the Per-View Presets dialog
  • Physical Material Coating support in the viewport
  • Custom Per-View Settings
  • Synchronize with Display Mode (PU2)
  • Image-based lighting (IBL) is now automatic when an environment is added to the scene. This saves time as there is no need to add a skylight to the scene to have to enable this feature
  • Roughness for physical materials is now supported in the viewport in “Realistic” mode (PU2)
  • improved shadows supported in “Default” lighting mode (PU2)
  • Floating viewports (PU1) Float up to 3 viewport windows Provides more flexibility in how you work by leveraging your multiple-monitor setup Floating viewports are fully functional and can be configured separately

Rendering

  • Substance plugin
  • QT re-write of Physical Material UI to increase performance.
  • New 2K UV template image(color/Grayscale)
  • Single click map select in Slate Material Editor

Python 3

  • Python 3.7 integration(3.7.5,)
  • Python 3 is the default. Command line is -pythonver <2|3>, and env var is ADSK_3DSMAX_PYTHON_VERSION=<2|3>
  • 3rd party Python module compilerd with different version of compiler support
  • Both Python 2.7( 2.7.17) and Python 3.7 interpreters are supported.Python 2.7 can be enabled through a command line switch or environment variable.
  • PySide2 was updated to 5.12.5 for both Python2 and Python3
  • qtmax helpers – GetQApplication() returns PySide2.QtWidgets.QApplication, GetQMaxMainWindow() returns PySide2.QtWidgets.QMainWindow
  • Connect VS Code to Max’s python and debug scripts
  • Virtual Environment support
  • Startup script support with package entry-points
  • MAXScript global variables can be created from Python through pymxs.
  • New items can be added to MAXScript arrays and dictionaries directly from Python.
  • improved handling of passing parameters (arguments) by reference (as opposed to by value) to pymxs APIs
  • ability to pass functions to callbacks.addScript() as opposed to passing their names as a string
  • Python 3 Alert Mode (PU2) Will assist in preparing for the Python 2.7 to 3 transition. With mode enabled, users will be informed of exactly which scripts needs to be updated. Both users and automated tool are easily detected as warnings are logged to the MAXScript Listener, the 3ds Max system log file (Max.log) and the console when running 3ds Max Batch.”

New Weighted Normal Modifier

  • Improves the shading of models by altering the vertex normals to be perpendicular to larger flat polygon and generates explicit normals for meshes better and faster than ever
  • Area/Angle/Largest Face based
  • Full control over smoothing and blending values.
  • Hard edge detection by smoothing group/UV/edge angle
  • Snap to Largest Face (face aligned normals) – allows for coplanar faces contribute to the weighting. When active it will snap the normal to the face with the highest weight, among the faces sharing that particular normal vector based upon the detected hard edges. This option can be used in combination with Area and Angle weighting
  • Using the existing UV seams (and channel) – as an additional hard edge detection option to generate smoothing results for weighted normals.

New Installer

  • Supports online and offline installation. Simpler and faster.
  • Material Library installation is optional

Explicit Normal Preservation

  • Editable Poly – Detach to Clone, Detach to Element, Detach to Element as clone, Clone to Object, Clone to element, Attach
  • Edit Poly – Detach to Clone, Detach to Element, Detach to Element as Clone, Clone to Object, Clone to element, Attach
  • Editable Mesh – Detach to Object, Detach to Element, Clone to Object, Clone to Element
  • Edit Mesh -Detach to Object
  • XForm modifier Preserve Normals option – ensures that normals are maintained when the XForm has a negative scale.

Performance

  • Accelerated the data structure for AnimHandles speed up on Max loading, scripts that deal with large scenes, interacting/loading large scenes, working with many animatable things, etc
  • Modernization of TrackView utilizing new AnimHandle data structure. Faster and more stable TrackView
  • Speed up selection of object while TV open by caching all animatables of a scene
  • Improved multithreading of asset resolution on scene file load, implemented multithreading of asset resolution on scene file save, and disabled asset resolution on hold and autobackup
  • Improved selection performance with many instances
  • Intersectray has been reworked. Subsequent raycasts are now multithreaded and can be up to ~3x faster (depending on CPU)
  • Deleting helpers with many object selected faster (PU3)
  • Further optimization of  duplicate message (PU3) The new improvements accelerate all message propagation in Max, which should improve overall interactive and playback speeds. This optimization gives us many small gains (roughly 20% of message costs), so results will vary. Should be noticeable on bigger or very complex scenes
  • Optimization of  duplicate message (PU2) 3ds Max now avoids sending duplicate messages to plug-ins using the 3ds Max referencing system. This improves performance in many areas of the software, including: Creating keys, Trackview, Slate UI, File Reset
  • List controller evaluation is now 15X faster with average weight on or off (PU2)
  • Better handling of REFMSG_CHANGE for TrackView to prevent unnecessary TrackView update caused by non-scene object (PU1)

Modeling

  • Improved hit detection when using Swift Loop
  • improved the distribution of Vertex Paint, improved the efficiency of the calculation, and apply blending between approaches when a brush overlaps only some of the vertices of a particular face. This should now allow vertex painting to be applied more consistently to an object
  • Bitmap sampling for the Edit UV window has been multi-threaded to help improve bitmap file loading times
  • Fixed performance issue with Snap in scenes with Body Objects
  • Fixed TextPlus performance with lots of text
  • Improvements to selection when using backface culling, which make it easier to select what you need and avoid accidental selections (PU2)
  • Editable Poly Command panel display further speed up (PU1)
  • Doubleclick element selection (PU1) faces, vertices, segments, etc. Supports Editable Poly, Editable Spline, EditSpline and EditPoly modifiers, Unwrap UVW Editor. It also supports modifier hotkeys to add/subtract selection and works in Maya Interaction mode
  • Nearest Preview Selection (PU1) When SubObj preview selection is enabled in EditPoly, the nearest edge/vertex will be highlighted and selected when clicking. When shaded – only the front facing/visible items will be highlighted and selected. This also disables ‘ctrl’ paint selection behavior to avoid changing hotkey behavior in preview mode

Chamfer

  • The triangulation of the chamfer output has been updated to produce better non-concave results when applied to faces with concave/co-linear vertices.
  • 0 segment Chamfer
  • Supports new Chamfer features in Edit Poly
  • Data Channel modifier support for Vertex weight channel(PU3)
  • Supports new Chamfer features in Editable Poly (PU2)
  • Vertex Chamfering (PU2)
  • Patch and Radial mitering (PU2)
  • By Weight chamfer amount type (PU1) allows you apply an absolute weight to an edge rather than interpolating between vertices
  • Chamfer Depth (PU1) can be set on a per-edge basis
  • Radius Bias (PU1) blends the chamfer size to the radius amount to help handle sharp corners
  • Data Channel modifier support for Edge Weight and Edge Depth (PU1)

ProSound

  • ProSound now supports 24-bit wav files.
  • Fixed ProSound issue causing audio to play at 50% volume after frame 100.
  • Removed 100 audio clip limit with ProSound.
  • Removed ProSound popup dialog when changing animation range.

ATF Import (PU3)

  • JT 10.5
  • CATIA V4 files created from CATIA V5-6R2019

ketchUp Importer – New

  • Preserve Layers
  • Import Hidden Objects
  • ATF based new importer allows any version of SketchUp files to be imported into 3ds Max, whereas the legacy importer can only import files up to SketchUp 2014 (PU2)
  • Able to maintain compatibility with future versions (PU2)

Hot Key Editor and Hot Key (PU1) – New

  • New Hotkey Editor tool replaces the Keyboard tab in the Customize User Interface dialog
  • Search for action by keywords or by current hotkey assignments
  • Clear current assignments and conflicts with undo history
  • Filter actions by current customization status, and by groups
  • Migrate legacy keyboard shortcut files without missing out on updates to the defaults
  • User hotkey settings are saved separately from defaults in a dedicated and accessible User Settings folder
  • Configuration selector allows easy and quick switching between hotkey sets

Core

  • OSL and AMG shaders will now also be loaded from the directory C:\ProgramData\Autodesk\ApplicationPlugins
  • All message boxes pause auto-backup, real-time animation playback, and viewport refresh until dismissed, bringing consistency and predictability to the user experience (PU2)
  • Decimal separator improvement (PU2) Users from various geographic locations (geos), can now trust 3ds Max to use the decimal separator symbol specified in their Windows regional settings when displaying floating point numbers in the user interface.
  • standardized file extensions (PU1) file extension will be always lower case unless user specified

UI

    • Main menu bar contents no longer appear white and inconsistent with dark UI styling.
    • PU3 Upgrade Qt component version to 5.12.4
    • PU3 Restore Dialog on off desktop space in main window
    • PU2 Lock UI fix
    • PU2 Fixed spinners jumping when wrapping screen borders
    • PU1 Command panel multi column speed up include Editable Poly

Maxscript

  • Added ability to modify scripted attribute definitions during scene file load
  • Fixed MaxScript accessess python modules with wrongly capitalized identifiers (PU3)
  • Maxscript edittext support multiline (PU1)
  • Autocomplete for MAXScript (PU1) Autocomplete is now on by default in the MAXScript editor. The new generateAPIList<stringstream> MAXScript API makes it easier for users to enable autocomplete for MAXScript in 3rd party editors.
  • Maxscript edittext support multiline (PU1)
  • More predefined messgebox, retryCancelBox, okCancelBox retryIgnoreAbortBox, cancelTryContinueBox (PU1)

Arnold

  • Update to Arnold 6.0.2.1.
  • Help isolating materials with void or invalid connected textures
  • Improve the material editor preview performances
  • MaterialX operator updated to support material assignments
  • New USD procedural
  • New string_replace operator
  • Supporting the physical camera’s tilt correction and lens distortion
  • Controllable auto-instancing on ASS procedurals
  • Faster procedural initialization
  • Reduced noise on smooth transmissive thin-walled surfaces
  • Autodesk analytics program available for Windows
  • OpenEXR updated to version 2.4.
  • Better animation support UI for procedural and volume
  • Support normal maps space and orientation parameters
  • Use the Arnold’s viewport API for procedural display
  • Arnold GPU
  • New AOV and Light Groups interface
  • Extend the Arnold Properties modifier for cameras
  • OSL version of the physical sun and sky shader
  • Export/Import materials as .ass/.mtlx files
  • Expose aov_write_vector.
  • Arnold core 5.4.0.1. (PU3)
  • Arnold procedural and alembic objects now have a viewport representation (PU3)
  • Arnold alembic object supports layer information (PU3)
  • You can change render settings while in ActiveShade (PU3)
  • shader_override node (PU3)
  • Baking normal and height maps is now supported (PU3)
  • Exposed the clip_geo shader (PU2)
  • Arnold lights viewport support (PU2)
  • Initial OSL OpenVDB support on GPU (PU2)
  • Most lights supported on GPU except IES (PU2)

Fixes

  • Option for MaxFluid PRT UV data type for better comparability with Thinkbox product. [Fluids] section in the 3dsmax.ini file. When PRTUVFormat is set to 3, the particle UVs will be exported as U/V/W values. When PRTUVFormat is set to 2 or is not present, the UVs will be written as U/V values.
  • FBX Importer Reduces Animation Keys Without Option Fixed. User can disable the post-rotation filter by using one of the following commands: FBXImporterSetParam “PostSamplingKeyReducer” false or FBXImporterSetParam “Import|IncludeGrp|Animation|SamplingPanel|PostSamplingKeyReducer” false
  • Physical cameras will no longer look in different directions when file opened MAXX-53022
  • 3dsMax 2021 – 84 Fixes
  • 3dsMax 2020.3 – 59 Fixes
  • 3dsMax 2020.2 -59 Fixes
  • 3dsMax 2020.1 – 48 Fixes

3dsMax 2020

Chamfer

  • The new Fixed Weight Chamfer keeps a consistent chamfer width.
  • Weighted chamfer allow chamfer to be controlled on a per-edge basis with crease weights.
  • New presets allow to save favorite or set default settings.
  • Added Inset adds edge rings to chamfers for users who cannot use smoothing
  • groups, such as models for game engines.
  • End Point Bias: Edges that don’t end at a corner terminate on the next parallel edge can
  • bias between the near and far vertex.
  • Added Depth allows the profile of the chamfer to go from a depth of 1 (a sharp edge) to 0 (a straight edge), to -0.5 (an inverted curve)

OSL

  • 14 New Shaders
  • Color Key
  • Math/Color/ColorSpace (convert colors between, rgb, hsv, YIQ etc.)
  • Falloff
  • Halftone (screen space dot pattern)
  • UVW/UVW MatCap (get MatCap mapping UV coordinates)
  • Scene/Normal (get the normal vector)
  • Switchers/Random Index by Number/Color
  • Simple Gradient
  • Simple Tiles
  • Tri-tone
  • Threads
  • Toon Width
  • Waveform (Animated)
  • Weave
  • Bitmap Lookup / UberBitmap : Support UDIM lookup
  • Composite: Add “Blending Mode”
  • Tweak renamed to Tweak/Levels and added a Midtones setting to better match Photoshop “Levels”
  • OSL updated to 1.10.2 / OpenImageIO updated to 1.8.16
  • OSL to HLSL viewport shader auto-conversion supports most shipping/3rd party OSL shader display in viewport
  • OSL animated map performance improvement
  • OSL API for 3rd party renderer dev include OSL trace() function call
  • OSL improved bump map support (PU3)
  • OSL Editor colors configurable in the Customize UI dialog (PU3)
  • OSL Editor improved bracket highlighting, syntax highlighting, and better docking ability (PU3)
  • OSL Editor highlights matching bracket, line number (PU2)
  • OSL Editor improvement – font customization, Bracket Matching , indentation (PU1)
  • OSL performance improvement especially with Scanline renderer (PU1)

Make Preview

  • Much faster. 1.5 – 3x faster creation on local drives
  • Capture size greater than viewport dimensions supported
  • “Quality” setting accessible from Preview UI (Nitrous only)
  • Default preview filename based on current scene filename
  • 100% output resolution on by default
  • MXS snippet can be executed per frame for custom strings
  • Filename and MXS snippet values can be specified from MXS command line of CreatePreview()
  • After executing the preview, the time slider is returned to the original starting frame
  • “Play when done” accessible from Preview UI
  • If running from MXS command line, avoid dialog boxes, output to listener instead
  • Allows AVI codec selection.
  • Getter/Setter added to Interface Class (SDK enhancement).
  • Getter/Setter Preview property added to MaxScript commands.

Performance

  • Animation controller validity intervals optimizationnot evaluating curves that don’t change. improving playback speeds – up to 500% faster rig evaluation.
  • Optimizations have been made when interacting with the viewport and lots of grouped objects
  • The SetNormals MaxScript function is now up to 10x faster
  • Autobackup is more responsive when you want to interrupt it by pressing ESC
  • The framerate (FPS) displayed in the viewport has been adjusted to be more accurate
  • Some Mesh conversion optimizations
  • ParamBlock2 id to index mapping – The performance of looking up a parameter index based on its id has been improved
  • Flatten mapping is an order of magnitude faster when working with many uv islands and pixel snap settings now save and reload.
  • Collapse Utility performance improvement – up to x200 times faster (PU1)

Alembic

  • custom attributes on non-geometry such as locators and dummies are exported
  • improved triangulation on concave ngons
  • Performance mode fix
  • Custom Attribute per object support via .userProperties and .arbGeomParam (PU3)
  • Alembic Transform controller performance improvement more than 2x faster (PU3)
  • Maya Multi UV and Vertex Color supprot (PU3)
  • Relative path fix (PU3)
  • Alembic Performance mode caches only animation range (PU3)
  • Instance support (PU2)
  • Alembic library 1.7.5 (PU2)
  • Unicode support (PU2)
  • Fix high speed rotation warps objects (PU2)
  • 3ds Max Object Properties and Custom Attributes support (PU2)
  • Alembic Inspector (PU2)
  • Re-sizable Alembic Container Icon (PU1)
  • Duplicate name handling (PU1)
  • Proper NURBS support (PU1)

Revit Import

  • Combine By options allows you to combine by material more selectively by choosing:
  • Combine by Revit Category and Revit Material
  • Combine by Revit Family Type and Revit Material
  • Filter dialogue now displays the number of nodes that will be created in the scene’s category or family type.
  • Import Revit 2017, 2018, and 2019 files into 2020 without the need to upgrade
  • Revit Compatibility pack (for each supported version) needs to be installed on your machine for functionality. IES lights imported from Revit are converted more accurately.
  • Daylight System Update; We removed reliance on Mental Ray, resulting in a better translation. We now leverage the physical sun and sky, where the translation is done automatically without interruption.
  • Importing Autodesk Revit files is now twice as fast as before (PU3)
  • Proper lights import(via FBX/RVT) (PU3)
  • Improved Import dialog (PU3)

Fluid

  • Fluid Loader (PU2) make it easy to load and manipulate cached simulation data. You can individually transform each object, offset their playback, assign materials and render or hide any number in the completed simulation.
  • Enable/Disable checkbox for all object list (PU2)
  • Rendering fluids data channels such as Vorticity, Density, Age, etc. with Arnold (PU2)
  • Alow to copy display and render settings (PU2)
  • Channel Field (PU1) lets you manipulate specific properties within your simulation, and the boundary controls and Volume helper,

Interactive ActiveShade Viewport (PU3)

  • With the new improvements to ActiveShade, you can now interact and render simultaneously in the same viewport.
  • The ActiveShade viewport mode extends your rendering workflow so you can now see the final result of your adjustments as you make them.

3ds Max Security Tools (PU2)

  • 3ds Max Security Tools can safely remove corruption-causing scripts from your system, including any infected scene files. The cleaning process is non-destructive, and does not affect any scene data
  • 3ds Max Security Tools scan for and remove the following corruption-causing scripts ALC, ALC2, CRP, ADSL

Maxscript

  • MaxScript method maxops.CollapseNodeTo() ignores quiet mode with Xref Object
  • Allow change color of MAXScript listener window
  • extraFlags in messagebox for more control
  • Methods for listing callbacks registered by registertimecallback (PU3)
  • Alembic inspector (PU2)
  • LayerManager option to add multiple nodes (PU2)
  • Expose ‘owner’ property for custom attribute container (PU2)
  • MaxScript operations on the Skin Modifier no longer require objects to be selected (PU2)
  • Support for compress on save. setCompressSceneFileOnSave <bool>compress writeInCfgFile:<bool> (PU1)
  • Archive support (PU1)
  • Improve behavior of setUserProp/getUserProp (PU1)

Python

  • PySide2 missing module support QtConcurrent, QtMuluseredia, QtMuluserediaW, QtOpenGL, QtScriptTools, QtWinExtras
  • Python dictionaries using Maxscript values as keys (PU1)
  • Converting a large object set from MaxScript (pymxs.runtime.objects) to a Python list is now instantaneous (PU1)

UI

  • Editable Poly UI speed improvement (PU3)
  • Windowed TrackView/Scene Explorer/State Sets (PU2)

Project

  • New Project toolbar (PU1)
  • Enable/disable the project automated swtiching (PU1)

Shared View

  • Export Autodesk materials and V-Ray Materials with textures (PU2)
  • Support all butmap types (PU1)
  • Render and upload most procedural textures (PU1)
  • the ability to resize textures on upload (PU1)
  • Support for Shell material and arbitrary UV channels (limited to 1) (PU1)

Etc

  • Expanded PointCould format support e57 and PLY file formats
  • Copy+Pasted modifiers maintain their custom names
  • StateSet – Arnold AOV support
  • Scene file compression now supports large data sets (greater than 2GB) (PU1)
  • FBX animation only export (PU1)
  • Vault integration now supports the check-in and checkout of large files, and auto-login (PU1)

Arnold

  • GPU rendering (BETA): you can now switch between CPU and GPU render devices interactively and expect visually similar results. NVIDIA® GPUs from Turing™ to Maxwell™ architectures are supported, and Arnold will take advantage of multiple GPUs, NVLink™ and NVIDIA® RTX™ hardware accelerated raytracing if available.
  • Improved adaptive sampling
  • Improved skydome sampling
  • Visible lights
  • Microfacet multiple scattering
  • Improved random-walk SSS
  • Anisotropy controls forcoat in standard_surface
  • Smart opaque
  • Operator connection on procedurals
  • New include_graph operator
  • Improved ramp_rgb shader
  • New uv_projection shader
  • Faster .ass file writing
  • Autobump visibility now exposed in the Arnold Properties
  • MaterialX export
  • Operators can now be grouped together in the Operator Graph
  • The Merge and Switch operators are now exposing the input ports
  • Improved UI for the Set Parameter operator
  • ParticleFlow Instancer
  • RTT texture baking support (PU2)
  • Cell Noise shader (PU2)
  • Sheen function in the Standard Surface (PU2)
  • Edge detection can be controlled in Toon Shader using the STRING type user data, toon_id (PU2)
  • OptiX Denoiser – reduced memory consumption (PU2)
  • Noice Denoiser – stability improvement (PU2)
  • Adaptive sampling (PU1)
  • OptiX Denoiser (PU1)
  • Noice Denoiser (PU1)
  • Toon shader (PU1)
  • Ramp shader (PU1)
  • Native Alembic procedural (PU1)

Fixes

3dsMax 2019

OSL – New

Advanced Wood – New

  • a new procedural map.based on the same wood texture available in Fusion 360
  • Highly customizable way to generate wood textures includes presets for maple, cherry and oak.
  • Designed to work closely with the Physical Material, with outputs that can be used directly in the material such as Roughness and Bump.
  • Available for Arnold and Scanline renderers.

Shape Booleans – New

  • let you combine splines into new shapes using Boolean operations.
  • Similar UI to 3D Booleans.
  • Dynamic chamfer/fillets for created vertices.
  • Works on closed and open shapes.

Alembic

  • Option to choose what to export
  • Vertex Color support
  • Vertex Velocity channel support
  • Per node meta data export – Object ID / Material Name / Layer Name / Custom Attribute
  • MaterialID/UV channel name parsing – You can control the imported MaterialID/UV number
  • Remember dialog setting
  • Set Current Time to Start Frame
  • Better duplicated object name handling
  • Export Selected doesn’t grab unnecessary full hierarchy
  • Respect Maxscript quiet option for duplicated name object handling for import
  • Subsampling support in non tick mode
  • Option for exporting hidden geometry
  • Better error mesh handling

Custom Scene File Streams – New

  • allow write and read custom data to 3ds Max scene files. In MAXScript this functionality is exposed by methods in: CustomFileStream Interface CustomSceneStreamManager Interface

Project

  • The projects tool has been updated to allow full control over the folder structure of your projects. What’s more, you can now create “empty” projects that do not have pre-assigned folder structures, and automatically switch between projects when opening a file from a different project.

Modeling

  • Spline QuadCap
  • New extrude option – keeping straight corners (PU4)
  • Boolean – Retain Non-Planar Faces

Spline Tools (PU2)

  • many new spline modifiers and improvement on existing spline modifiers
  • Freehand Spline
  • Spline Influence Modifier
  • Spline Mirror Modifier
  • Spline Morph Modifier
  • Spline Overlap Modifier
  • Spline Relax Modifier
  • Optimize Spline Modifier
  • PathDeform Modifier
  • Normalize Spline Modifier

MaxFluid (PU3+)

  • Soft Lock Time Slider
  • Solve Cache Path Override
  • Final Path
  • GPU Points
  • Liquid Parameter Presets (PU4) allow quickly simulate such standard fluids as milk, honey, blood, and chocolate, as well as various types of oil. You can also use these presets as a starting point for your own custom simulations.
  • Initial State (PU4) allow to start a new simulation based off of the state of an existing simulation on a particular frame.
  • Truncate simulation (PU4) allow truncate a simulation, deleting all simulation files after a specified frame. Use this feature to further fine-tune a simulation while preserving earlier results.
  • With UV Projection (PU4) allow set a map channel to project UVs directly onto the liquid volume.
  • PRT Export with full channel support (PU4) allow export .prt files for liquid and/or foam directly from the context menu of a selected solver.
  • MaxFluid (PU3) allow you to create fluid simulations directly inside 3ds Max using Bifrost technolody Read/create BIF files for direct interoperability with Maya Save/create presets based on viscosity, giving the illusion of different fluid types (honey, water, jelly, etc.) Read/open VDB files Dynamically create meshes based on the simulation, which can be processed at the same time or independently Outputs mesh to Alembic so you can play anywhere Alembic is supported or have faster playback.
  • MotionField SpaceWarps (PU3) works with Fluids, 3ds Max’s particle systems, and deforms meshes Combines multiple forces that would have had to be done separately previously, such as drag, wind, and gravity Ability to turn specific components on/off as needed

3ds Max Batch (PU2)

  • You can now pass string and numeric data to the executing script from the command-line using the new -mxsString and -mxsValue arguments (PU4)
  • 3ds Max Batch now supports configurable verbosity levels, and logs errors to the console and log files (PU4)
  • Scene files can now be loaded via the batch script, allowing for more automation options (PU4)
  • Additional MAXScript commands now allow scripts to specify custom exit codes and send custom messages to the log file (PU4)
  • allows you to perform MAXScript or Python automation in the background, as a standalone process or in parallel with the desktop application without consuming license (Pu2)
  • 3ds Max Batch can be deployed on the cloud (PU2)

3ds Max Interactive (PU1+)

  • VR editing is now possible with the new Level Viewport VR, letting you use your VR headset to enter and edit your level in virtual reality.
  • Smart Placement tool provides you with a new and intuitive way to place objects precisely when working in the Level Viewport or editing your scene in VR.
  • Live Transform Tracking mode syncs transform controls between 3ds Max and 3ds Max Interactive.
  • Photometric lights from 3ds Max are now imported as Physical Lights in 3ds Max Interactive. Any associated IES files are also imported.
  • VR Desktop template can be used with either Oculus or HTC Vive systems.
  • Player Start helper
  • Vray materials support improvement
  • Physically-based lights (PU4)
  • Clear coat is now more energy conserving (PU4)
  • A new shading environment property (PU4)
  • Add frequently used assets or folders as favorites in the Asset Browser (PU4)
  • The Capture Frames tool now supports PNG format, plus additional codecs (PU4)
  • The Deployer supports bundling a project in a self-extracting zip file instead of creating an installer (PU4)
  • Updated Project Manager (PU4)
  • Debug a project’s Lua code from the Visual Studio Code editor (PU4)
  • 3dsMax Interactive (PU1)

File IO

  • Civil View is now using Physical Materials and ART/Arnold compatible objects in lieu of MR
  • Inventor Appearance Overrides are now successfully translated
  • ATF import performance improvement (PU2)

Shared Views

  • lets you share your models anyone online, and receive their feedback.
  • Publish an entire model or a selection directly from 3ds Max.
  • Easily view and share designs in your browser.
  • Collaborators use a URL, they don’t need to install software.
  • Print out views that are important to you.
  • Capture screenshots to use in emails and presentations.

MCG

  • Match_Items_by_Distance (PU1)
  • Match_Items_by_Index (PU1)
  • Cycle_Index (PU1)
  • Random_Transforms_on_Mesh_with_Max (PU1)

Arnold

  • Compatible with Fluids.
  • Update to Arnold 5.0.1.3
  • Polymeshes can be volume containers.
  • Global AOV shaders exposed.
  • Indirect AOV checkbox added to skydome light.
  • RGBA (beauty) AOV now allowed.
  • Indirect Sample Clamp and Indirect Specular Blue exposed in rendering options.
  • Iridescence (thin film) section added to the Standard Surface shader.
  • Normal Map shader exposes a strength parameter.
  • Coat built-in AOVs added.
  • Improved mesh light sampling.
  • Shaper quad and disk light spread.
  • Up to 2x faster BVH build.
  • Support for point cloud objects.
  • min_pixel_width added to the Arnold property modifier.
  • “Skip License Check” renamed “Render with Watermarks.”
  • Scene information added as metadata when exported to .ass file.
  • OIO upgraded to 1.7.15.
  • OSL upgraded to 1.9.0.
  • New CLM license.

Fixes

3dsMax 2018

Arnold Renderer – New

  • The MAXtoA plugin includes Arnold version 5
  • Volumetric effects with OpenVDB support
  • Atmospheric effects
  • Procedural (proxy) objects allow scene interchange with other Arnold plugins
  • Extensive array of built-in Arnold professional shaders and materials
  • Supports 3rd party shaders compiled for Windows and Arnold 5
  • Easy Image-Based-Lighting workflow with separate Environment and Background capabilities
  • Arnold Properties modifier controls rendertime effects and options per-object
  • Arbitrary Output Variable (AOV) support for compositing and post-processing
  • Depth-of-Field, Motion Blur and camera Shutter effects
  • New VR camera
  • New easier-to-use layered Standard Surface with Disney compatibility, replacing Arnold Standard Shader
  • New melanin-driven Standard Hair Shader with simpler parameters and artistic controls for more natural results
  • Supports Photometric lights for easy Revit interop. Full support of 3ds Max Physical material and legacy maps.
  • All-in-one Arnold light supports textured area lights, mesh lights, Skydome and Distant light sources.
  • New Portal mode for Quad and Skydome lights to improve sampling interior scenes.
  • New Roundness and Soft Edge options for Quad and Spot lights.

MCG

  • MCG packaging No need to unpack MCG graph. This also makes sure that the MCG is using compounds from the package.Consume graphs in package form (.mcg) by simply dragging into the viewport!
  • Mapped Connections The added ability to mapping over an operator by connecting an array of values for graph simplicity.
  • Live Type Displaying computed types in the editor as you work. Seeing the data types that you are working with while you are authoring a graph should make things much more approachable.
  • MCG type resolver improvements should no longer need to add extra nodes to provide hints about the type system in MCG. (‘pairItem1’ should work on its own now.)
  • Significant compiler efficiency improvements Should be doing a better job of optimizing graph expressions particularly with functions. This means that large complex graphs with lots of function could receive a significant speed up.
  • Node Properties Panel updated to display information about the selected node, as well as links to the node’s usage in other compounds.Undo in the MCG editor
  • Automatic Tool input generation
  • New Color Scheme
  • More artist friendly operator/compound naming and categorization
  • 78 New Operators include Generating random transforms on a mesh – Random Transforms on Mesh. Polygons and extrusions – Mesh Polygons, Mesh Polygon Transforms, Mesh Extrude Polygons. Sampling noise values – Noise 1, Noise 3, Fractional Brownian Motion, Fractal Cell Noise, Turbulence. Interpolating values on a spline based on a normalized distance between each sample – Points on Spline, Points and Tangents on Spline, Transforms on Spline, Transforms on Spline with Guide. Array summing, sliding, shuffling, grouping, and sorting – Partial Sums, Sliding Window, Shuffle Array, Group by Key, Sort by Key. Seeded random value generation – Array of Random Integers, Array of Random Floats, Array of Random Vectors, Array of Random Booleans.

Motion Path

  • Display the 3D path for a selected object’s position tracks
  • Insert and delete keys along the path
  • Change the shape of the path using transforms to move, rotate, and scale keys
  • Adjust the curve of the path by moving the tangent handles attached to each key
  • Use a spline object to create a motion path
  • Convert a path into a spline object
  • Collapse any transform controller into editable keys

State sets

  • SlateSDK based UI gives you a more consistent look and functionality
  • New node based render pass management

UI

  • QT5 framework with enhanced docking
  • Ongoing Hi-DPI icon conversion (370 icons converted)
  • Timeline tear-off
  • Tear-off menus

Customizable Workspaces

  • lets you switch quickly among any number of different interface setups. It can restore custom arrangements of toolbars, menus, viewport layout presets, and so on.
  • Workspace Scene Explorers

Modeling

  • Chamfer modifier quad intersections checkbox
  • Unwrap UVW Pack selected

Alembic

  • visibility track support
  • Shape suffix management via maxscript

Data Channel Modifier (EXT1) – New

  • a new tool for automating complex modelling operations. By piping mesh data through a series of controls known as operators, you can achieve a huge variety of effects that dynamically update as you make changes.
  • Input Operators Color Elements, Component Space, Curvature, Delta Mush, Distort, Edge Input, Face Input, Maxscript, Node Influence, Tension Deform, Transform Elements, Vector, Velocity, Vertex Input, XYZ Space
  • Process Operators Clamp, Convert to SubObject Type, Curve, Decay, GeoQuantize, Invert, Normalize, Point 3 To Float, Scale Smooth
  • Output Operators Edge Output, Face Output, Vertex Output

Blended Box Mapping (EXT1) – New

  • allows you to project maps onto objects in a much simpler way than the traditional method requiring complex UV mapping
  • 1/3/6 Projection
  • Frame Lock
  • Cube Projection
  • Projection Transform Randomization

Level Sync with Autodesk Stingray (EXT1)

  • link and export entire scenes built in 3ds Max directly to Stingray.

3ds Max Asset Library 1.3 (EXT1) – New

  • View 3ds Max file thumbnails natively in the asset panel (#1 requested user feature).
  • The Dependency Manager can re-path multiple 3ds Max file dependencies at once across many folders.
  • View many types of image formats directly in the asset panel (check known issues for formats not supported)
  • Deep search of 3ds Max files by stats such as face count, renderer type, version, and more! (Check the help docs linked in the app for more info.)
  • Deep search of many image files by available properties such as resolution and bit depth.
  • Drag and drop images directly into material editor map slots

Etc

  • Security Fix (EXT2)
  • Maxscript Autocomplete (EXT2)
  • Autodesk Civil View update (EXT 1)allow import the latest FZP files from VISSIM to animate and display traffic simulations.

Fixes

3dsMax 2017

UI

  • modernized with streamlined Qt based UI new icons.
  • High DPI compatiblity correctly applies Windows display scaling so the interface appears optimally on your high DPI monitors and laptops
  • Spinner Reset to default value Copy/paste key

Viewport Performance

  • 300% improvement in Deforming Mesh performance improvement with new GPU mesh builder.
  • 300-500% performance improvement for navigating tens of thousands objects.
  • Selecting and manipulating sub-objects is 200%-300% faster.
  • Transform Cache
  • Unwrap UVW can handle 10 times dense objects easily.

Viewport

  • DarkerEdge mode for Backfacing Wireframe
  • GPU Backface Cull for Deforming Object
  • Shadow cache for better/faster shadow
  • New viewport navigation mode : Orbit Point of Interest
  • Customizable Viewport Tooltips by preViewportTooltip callback
  • Selection Outline Look Change(Thinner and Shaper)
  • Per Pixel Camera Map Support for Nitrous
  • Reorganized Viewport Label
  • Viewport Configuration Presets
  • Viewport Material Override
  • Better Readable Viewport Label
  • Performance Shader for Viewport
  • New DX Mode
  • Hidden/Frozen/Display as box object will not evaluate/load map
  • Gamma corrected background playback slowdown fixed
  • Viewport switching when maximized fixed
  • Viewport Statistics have been realigned for larger numbers.

UV

  • Dramatic Performance improvements
  • New Non-Convex Packing Algorithm
  • New Peeling based on ABF
  • New Freeform Mode Gizmo
  • Rescale element on Multiple Object
  • Move Brush
  • Relax Brush
  • Angle Distortion Visualization
  • Area Distortion Visualization
  • Sub-Object Selection Preview
  • Point-to-Point Selection Preview
  • Symmetrical Geometry Selection
  • Mirror Axis Visualization
  • New UV Template
  • Rotate/Scale Transform Type In
  • Alt + click to erase the seam
  • SHIFT+Polygon for Loop Selection
  • SHIFT+Edge for Ring Selection
  • CRTL+click for sub-object mode conversion
  • Double click Polygon for Element Selection
  • Set/Select Material ID in UV Editor
  • Display Only Selected Polygon in 3d view
  • Material ID Filter Sort by ID
  • Tiling settings for checker texture
  • Pack Edge Padding

Boolean – New

  • Brand new Boolean compound object based of CARVE library
  • Double precision algorithm
  • Boolean Explorer
  • Nested Boolean

Modeling

  • New Local Aligned Coordinate – new axis alignment method that uses the coordinate system of the selected object to calculate X and Y axes in addition to Z
  • Working Pivot – Direct Access Working Pivot from Place Pivot Surface Quadmenu
  • Allowing the right-click menu in the modifier stack even if empty (paste to groups)
  • Copy/Paste modifiers to multiple objects at once
  • Sub-Object Selection Loop Preview in EPoly
  • Point to Point Selection/Preview
  • Toggle between Sub-Object Levels hotkey
  • Override SubObject Pick in EPoly
  • New Bevel Method for Bevel Profile Modifier
  • Mesher – Particle Flow 5 million Face Limit Removed
  • Fix for poly object Obj export to prevent vertex index change

Trackview

  • Buffer Curves Feature facilitate change management by allowing you to keep your original curve position in a buffer
  • better default layout
  • sticky user defined trackview (persistent between sessions and open close of TV)
  • Button to enable/disable TV Autozoom behavior – in the menu
  • New Zoom extents mode for selected Keys
  • Ability to apply horizontal and vertical zoom extents at the same time
  • Double-click a track view curve to select all of the keys
  • Scale Values Improvement
  • SHIFT-click to remove keys in Add Key mode
  • auto-key default frame can be any frame

New Key Editing Tools

  • Nudge – <SHIFT> Left
  • Flatten to Average Value = <SHIFT> Welds to average value and time
  • Flatten = <SHIFT> flattens to the last selected key
  • Ease to Next Key –  Eases the value to the next key. <SHIFT> eases to the previous key.
  • Split – Deletes the selected key and creates two new keys.
  • Space Keys Evenly – Spaces the keys evenly in time between the first and last keys. <SHIFT> Spaces evenly in value
  • Relax Keys – Relaxes keys in time and value between the first and last keys. <SHIFT> align the keys between the first and last keys.
  • Loop – Copies the first key value to the last frame of the current animation range. <SHIFT> copies the first key value of the animation to the last key.

Animation

  • Improved Key reduction performance for baked animation 60X improvement
  • Evaluate performance using Maya’s Profiler tool
  • Motion Panel Tracks in list controller can be made active by double clicking in the controller tree view Empty Tracks and Assigned Controllers can be reset to their default controller type Controllers can by copied and pasted via the right click menu in the controller tree view
  • Time Configuration Rescale Time improvement: “Rescale keys to whole frames” checkbox to force quantization
  • Custom Attributes Presets Load/Save sets of CA’s whereever user can add them – via Parameter Editor
  • Animation Preset (EXT1) allow you to capture and load animations from one object to another.
  • Offset Controller (EXT1)
  • MCG LookAt Constraint (EXT1)
  • MCG Ray to Surface Position Constraint (EXT1)
  • MCG Ray to Surface Position and Orientation Constraints (EXT1)
  • MCG Ray to Surface Transform Constraint (EXT1)
  • MCG 1 DOF Rotation Spring Controller (EXT1)
  • MCG 3 DOF Rotation Spring Controller (EXT1)

Animation Modifier

  • Skin Geodesic Voxel Solver (EXT1) Heatmap Solver (EXT1) Holding SHIFT for Paint/Blend Weights Mode Change (EXT1)
  • Morpher Unlimited Morph Target (EXT1)

ART(Autodesk RayTracer)

  • New Renderer ART a fast, physically-based renderer, ideal for design visualization workflows used in Revit®, Inventor®, Fusion 360™, and other Autodesk applications.
  • Image Noise Filter drastically reduce render times, and improve the quality of the rendering
  • New Sun Positioner and Physical Sky a replacement for the legacy Daylight System and mr Physical Sky.

Physical Material – New

  • a new standard material for 3dsMax with Scanline, Art, Arnold, VRay support

UDIM

  • New Multi Tile Map allows you to load UDIM texture tiles
  • Render UVW Templtes Support
  • Show Multitile in UV Dialog
  • View in Viewport
  • FBX Import/Export

Map

  • New Color Map Solid Color map with gain and gamma adjustment feature
  • New Shape Map (EXT2) Generates texture from spline and vector data
  • New Text Map (EXT2)
  • New TextureObjMask Map (EXT2) allow dynamic map generation using another object as a mask

Scene Converter

  • New framework for simple workflow to migrate rendering related features such as material, map, lights and renderer settings
  • Removing missing plugins also allow to select only selected plugins

Python Integration

  • Python.Import
  • pymxs : Maxscript Exposure to Python
  • MAXScript Editor and Listener Python Language Support
  • Include All PySide libraries
  • Integrate PySideUic Package
  • Simplify API for QWidget Attach
  • Full Native Support for Parenting/Docking Python Tools
  • with Redraw/Quiet/Undo/Animate/At Level/At Time On Off
  • Listener Mode Switch Accept Undo/Redo on Indicator
  • MAXScript Type Marshalling(Point2, Point4, Quat, EulerAngles,AngleAxis)
  • Tuple from MaxScript to Python
  • Support multithread for Python’s execution on Max
  • Follow Standard Python sys.path Rules
  • Support Quad Poly on MaxPlus
  • Support AppData Chunk API

Alembic

  • Performance mode support for any object
  • Proper deformation export when spacewrap applied
  • Vector, Float, Integer support for arbitrary channel import
  • UV1 animation support
  • UV2+ vertex order fix
  • UV Channel ID preserved
  • Material/Face ID preserved
  • Topology changing mesh does not break Material ID
  • Object name preserved
  • Full MXS exposure – range, nth frame exposed
  • Alembic container object icon
  • Alembic Performance Mode Force Caching Option

Scene Explorer

  • Remember visible/frozen state of nested layers when overridden by parent layer
  • Child layer can not be turned on when parent layer is turned off
  • Layer will always goes above objects
  • Hide/Unhide All Layers button
  • Freeze/Unfreeze All Layers button

State Sets

  • Track modifier ON/OFF in viewport and render
  • Expansion of Composite view to create a new node based render pass system
  • Nodes can be dragged out to more easily view your State changes
  • Nodes can be created from scratch for a more direct render pass management workflow without tracking/recording
  • Support for basic Render Parameters, ART, Vray, Object collections, Object Properties, Material Assignment
  • Persistent Composite View (you no longer loose your work on close)
  • Track Vray VFB checkbox for better render element support with Vray
  • Camera Sequencer Lock Animation Parameter to allow for scaling camera animation when tracks are scaled
  • Return of Record button by default (can be switched back in preferences)
  • All docked dialogs now open in their own new tab by default

MCG

  • EXT2
  • MCG Shape
  • Time-related Nodes
  • Simulations
  • Bullet Physics
  • CSV reading and parsing
  • OpenVDB Support
  • Signal parameter
  • New Parameter Types(Node Array, Single Array, Vector3)
  • Vector4 Support
  • Improved Bitmap Support
  • Polygon/Element Access
  • Creating Empty Arrays of Specific Types
  • 100+ New Operators and Compounds
  • Improved Performance
  • EXT1
  • MCG Animation Controllers
  • Extension of maxscript plugin capabilities, new maxscripted controller plugins: float, point3, point4, color, position, rotation, scale, and transform controllers
  • MCG controller authoring based on scripted controller classes previously mentioned. Users can use most mcg operators and graph functionality to create unique custom controllers
  • MCG implicit controller transform parameter, allows users to get the Position, Rotation or Scale transforms of the current transform controller
  • Ability  to select and assign multiple nodes via the mcg tool UI
  • MCG implicit time parameter, When  the time implicit parameter operator is used, the graph is re-evaluated on each frame
  • Time conversion operators, Tick->Frames->seconds
  • Simulation operators based on bullet physics api, allows user to create physically based simulation controllers.
  • Ability to use maxscript  in custom UI tab to extend MCG graph functionality (mouse handling, sub- controller modification, assigning values to parameter blocks)
  • 3 MCG authored Constraints accessible from animation menu, MCG Lookat with Billboard Constraint, MCG RaytoSurface Position/Orientation/Transform , Rotation Spring

TextPlus (EXT1)

  • Manipulate Text Mode
  • Values as Strings
  • Advanced Bevel with Bevel Profile Editor
  • Large Text Window

Stingray Live Link (EXT1)

  • Monitor Connection Status
  • Shader FX Update
  • Master/Slave Synchronization
  • Seamless Communication between 3dsMax and Stingray Editor

Etc

  • Autodesk 3ds Max asset Library
  • CFD (Computational Fluid Dynamics) import via MCG (EXT2)
  • Send to Print Studio (EXT2) Artists can now 3D print a design asset or creation by simply launching Print Studio directly from Autodesk 3ds Max with a single click.
  • Game Exporter (EXT1) llows users to transfer many different types of data from 3ds Max into game engines: Unity, Unreal Engine and the new Autodesk Stingray engine, using FBX interchange technology: models, animation takes, character rigs, textures, materials, LODs, lights, and cameras
  • Creative Market Integration (EXT1) online marketplace featuring high-quality 3D and 2D assets that artists can license and use in their own projects.