Welcome to 3ds Max 2021 API update! On March 27th, the new version of 3ds max was released. Shortly after, in early April, the 3ds Max Design Automation engine and Model Derivative Forge services were also updated to 3ds Max 2021. The following is a summary of features and changes in 3ds Max 2021 including customization aspects for customers and developers.
If you are interested to know more about Forge Design Automation for 3ds Max, check out this webinar: https://youtu.be/sWJwo7du8vQ
General Feature Summary
The following is a brief summary of the most important new features in 3ds Max 2021:
- New Bake to Texture Tool – a new tool to bake maps and generate surface maps, supports PBR workflows, Mikk-t normal, and more
- Physically Based Rendering (PBR) Materials – physical material is the default throughout 3ds Max, new simplified physical material
- New Weighted Normals Modifier – based on popular user request we added support for weighted normals to be calculated and applied to models in 3ds Max
- New OSL Shaders - Color Correction, HDRI Environment, HDRI Lights, Float and Color Curves, Camera Projection, Object Projection, Spherical Projection, Uber Noise
- Arnold 6 as default renderer – Right out of the box, 3ds Max 2021 offers a modern, high-end renderer
- New Substance plugin – supports the new “Substance2” map, uses latest Substance engine and up to 8k textures
- New Install Experience - the online and offline installation has been overhauled for a simpler and faster experience
- Scene Converter - the Scene Converter's new and improved workflow makes creating custom conversion rules easy. Presets are locked and cannot be saved over, and you are reminded of unsaved changes before closing the Scene Converter.
- Viewport Improvements – Viewports support Roughness and Ambient Occlusion, clearer viewport customization options can be saved as presets, performance and other quality improvements
- ProSound improvements - Added support for 24bit wav files and unlimited number of audio clips, and bug fixes
- Chamfer Improvements for Edit/Editable Poly – The new chamfer technology already available in the Chamfer modifier has been integrated into Edit Poly Modifier and Editable Poly Shape
- Sketchup Import improvements – the ATF based Sketchup Importer now support more features previously available in the legacy Sketchup Importer
- User Defined Defaults - Users can now set their own default values that persists through 3ds Max sessions
Developer Feature Summary
- New Developer Help – the documentation for the C++ SDK, Python, MAXScript and MCG are available in a new online publication that is separate from the 3ds Max online help. This will help when searching on common 3ds Max topics, but in a developer/customization context! The direct link is here.
- Backward compatibility with 3ds Max 2020 - 3ds Max 2021 is compatible with and will load C++ plugins compiled for 3ds Max 2020. For 3ds Max 2020 plugins packaged as an Application Package Format, the SeriesMax tag has to be 2021 in order for 3ds Max 2021 to load them.
- 3ds Max SDK download – the 3ds Max SDK will be available as a free download on the Autodesk Developer Network website. It will also ship on the 3ds Max 2021 cd-image (<cd-image>\x64\Tools\MAXSDK), but it is not offered as an optional install item through the new 3ds Max 2021 installer.
- New Python 3 Support – the Python 3 interpreter integrated into 3ds Max 2021 offers a modern and robust experience for extending and integrating 3ds Max into production pipelines. Python 2.7 is still supported and can be enabled with a command line switch of environment variable. See this link for details.
- Python 3 Samples - The product team also put together a nice github repo of Python How-to samples. These match the MAXScript tutorials content, but using the newest Python 3 environment. See here for details.
- pymxs Python API improvements and MaxPlus Python API deprecation – Python developers can confidently migrate from MaxPlus to pymxs knowing that they can access the entire set of functionalities 3ds Max has to offer, and interoperate with MAXScript . The MaxPlus Python API is still available with Python 2.7, but you should consider moving to poymxs, so you can get into Python 3.x because the Python organization has deprecated Python 2.x.
- Application Plugin Package Format Improvements – AMG and OSL shaders, and Scene Converter extension scripts are now supported by the Application Plugin Package Format making it easier to migrate your plugin to it
What’s New in the 3ds Max C++ SDK
Here is a highlight of the most important things to know:
No SDK Break
3ds Max 2021 is binary backward compatible with 3ds Max 2020. Plugins compiled for 3ds Max 2020 will load and work in 3ds Max 2021.
Note: for 3ds Max 2020 plugins packaged as an Application Package Format, the SeriesMax tag has to be 2021 in order for 3ds Max 2021 to load them.
3ds Max 2021 is compiled with the same compiler as 3ds Max 2020, namely Visual Studio 2017, toolset 14.1. The header files are now compatible with the Visual Studio /permissive- flag which allows plugin developers to turn on standards-conforming compiler behavior.
Qt version and configuration
3ds Max 2021 is using Qt 5.12.5. 3rd party 3ds Max plugins that use Qt 5.12 are supported.
3ds Max SDK Download
The 3ds Max SDK is now available on the 3ds Max Developer Center. It’s still provided in most distribution media, but you can download anytime from here. https://www.autodesk.com/develop3dsmax
The plugin package format has been improved to support AMG and OSL shaders, and also supports the scene converter extensions. See link here.
Change in behavior regarding loading plugins compiled for a compatible release of 3ds Max
3ds Max 2021 will not automatically load binary plugin dlls whose run-time requirements specify 2020 as SeriesMax, even though 3ds Max 2021 is binary compatible with 3ds Max 2020. Plugin developers will have to re-publish their plugins with the SeriesMax run-time requirement attribute set to 2021, once they verified that their plugins built against the 3ds Max 2020 SDK works properly in 3ds Max 2021.
Why use the Application Plugin Package Format?
Packaging and installing plugins using this format has the following advantages for plugin developers and their users:
- Plugin installers don’t need to understand where 3ds Max is installed. Instead 3ds Max will discover and load all plugins that are packaged and described in a way that adheres to the Application Package Format
- 3ds Max installations are not modified by plugin installers, reducing the risk to break it, and making it easier for the users to un-install 3ds Max and 3rd party plugins
- Plugins can be installed anywhere, if the ADSK_APPLICATION_PLUGINS environment variable contains a path to the installation directory. It is strongly recommended that plugins offer as default installation path %APPDATA%\Autodesk\ApplicationPlugins\ or%PROGRAMDATA%\Autodesk\ApplicationPlugins\
We strongly suggest to plugin developers to adopt this plugin packaging and installation format, since support for loading plugins described in configuration files will be dropped in the future.
Note that plugin package format has been supported since 3ds Max 2015.
- New APIs for handling keyboard shortcut files
- New message box API
- New Normal mapping API
- Mikk Tangent support, and tangent computation callback
- New IAutoBackup interface
- New modifier name change notification
What’s New in 3ds Max Python Scripting
Python based tools for 3ds Max have been gaining popularity over the last few years. To better support the needs of our tech-savvy users, we are updating our Python support, and improving the Python development experience with 3ds Max. See here for all the changes.
MaxPlus Python deprecation
One thing to make note of… The MaxPlus Python API is not available with Python 3.7, and it will be deprecated in the future alongside Python 2.7. Currently 3ds Max 2021 still supports MaxPlus in the Python 2.7 environment to help give porting time to pymxs.
What’s New in MAXScript
MAXSCript has also been improved for 2021 release. See here for complete list of updates.
- The new Bake-To-Texture feature has been exposed to Maxscript as a new utility class.
- PluginPackageManager interface has six new APIs for getting information about paths searched for the Scene Converter, OSL, and AMG. See the “Interface: PluginPackageManager” topic for more information.
- The callbacks.addScript() method can now take a MAXScript function as the callback argument. Previously this argument was a string, stringStream, or file name.
- The new Weighted Normals Modifier is exposed in the MAXScript class Weighted_Normals.
- All of the ATF-based import plugins have two new properties: importHiddenObjects and preserveLayers.
- The Edit_Poly object and Editable_Poly modfier have many new properties and methods exposing the Chamfer updates introduced in previous 2020 releases.
- The SME (Slate Material Editor) interface has several new methods for managing Material Libraries.
For a list of new features released throughout 3ds Max 2020 Updates, please see this online help page.