Menu Close

Category: 3dsMax New Features

3dsMax 2026 – Automatic Render Output Default update

With the newer OCIO-based color management, you now have the ability to save your output files in a variety of color spaces. This is a big change from the old days when you were mostly limited to gamma-corrected floats.

While it’s great to have more options, that doesn’t mean you should use them all at render time. In fact, it’s best practice to save your renders in the same color space as your rendering space, and handle any color conversions later during post-processing.

3dsMax 2024

In 3ds Max 2024, the Render Output Defaults were set to “No Conversion,” and users could only select one color space for all automatic render outputs.

This setup worked well for studios primarily outputting EXR files. However, it wasn’t ideal for users who also needed to export legacy gamma-encoded formats like PNG or JPG.

3dsMax 2025

The developer received user feedback and updated the default settings to align the Render Output Defaults with the Display and Views defaults.

This change affects only gamma-encoded formats; linear formats like EXR or HDR will continue to use “No Conversion.”

It seemed like a good compromise at first, but it introduced a new issue. Some studios were using ACEScg as their rendering space, yet they required linear sRGB output for their post-processing workflows.

I should note that using different color spaces for rendering and output can lead to issues—for example, data render elements may contain incorrect information. However, the user needed to use this workflow regardless.

3dsMax 2026

In 3ds Max 2026, two sets of defaults are available—one for gamma-encoded formats and another for linear formats—giving you control over each scenario. These settings are also exposed in MaxScript (MXS) accordingly, by adding a fileType argument to the GetDefaultOutputConversion() and SetDefaultOutputConversion() methods.

That said, I still strongly recommend not using different color spaces for rendering and output.

Other Color Management Update for 3dsMzx 2026

  • Finally, network rendering (slave mode) is now fully supported for both Backburner and Deadline.
  • IFL support is also included.
  • setclipboardBitmap global function, Image button, Angle UI, ImgTag UI, and createDialog now has doDisplayTransform:<boolean> parameter  For Bitmap UI, the keyword arg is doDisplayTransformBitmap.
  • colorContext keyword argument for ColorPicker UI has been added.

OK, that’s it!

3dsMax 2026 – ADSK_3DSMAX_CUI_PRE_USER_CONFIG

This new approach allows easy appending or overriding of default hotkeys and menus, making them fully supported by application plugin packages. Scripted setup is now largely unnecessary, and third-party developers are expected to use application packages for hotkey and menu definitions.

Studios that previously used scripts for custom menus may find it trickier now, as script-based menu edits are no longer recommended.

To help with this, 3ds Max 2026 introduces a way to load new hotkey and menu files after plugins/scripts are initialized but before the final user configuration is applied.

This is implemented by a new 3dsmax environment variable, ADSK_3DSMAX_CUI_PRE_USER_CONFIG_%MAJOR_VERSION%. , so e.g. ADSK_3DSMAX_CUI_PRE_USER_CONFIG_2026.

The new environment variable allows a list of cui files such as .hsx(hotkey) and .mnx(menu), separated as usual for envVars by a semicolon ‘;’ like the following image. Order of evaluation will be as specified in the list.

This is my menu setup.

Here’s what I did:

I created a “csStudio” menu, removed Arnold, Civil View, and Substance, then saved it as D:\PROJECT\_maxDefault\menu\csStudio.mnx. After that, I set the ADSK_3DSMAX_CUI_PRE_USER_CONFIG_2026 environment variable as shown above.

Next, I added a “MYMMYMY” menu and saved the .mnx file in the User Settings folder.

With this setup, studios can deploy a default menu without scripting, while allowing individual artists to maintain their own custom menus.

Bonus Tip, ADSK_3DSMAX_USERSETTINGS_DIR !

I also set the ADSK_3DSMAX_USERSETTINGS_DIR environment variable, which lets me keep all settings in a shared folder across 3ds Max versions. Since I didn’t use the version token, changes made in one version—like a viewport preset saved in 2025—automatically carry over to 2026, 2027, and beyond.

If you prefer to keep settings separate per version, you can include the major version token in the path to isolate each version’s folder.

Hold up—so what’s the difference between the new env var and ADSK_3DSMAX_USERSETTINGS_DIR?

The User Settings folder just tells Max where your custom files are. You can have a bunch of config files there and choose which one to load manually, like in the screenshot.

You can copy those files over to a new machine or a new version of Max, but you still have to load the one you want at least once. That choice gets saved in 3dsMax.ini.

The new env var works differently—it takes the full path including the file name, so Max just loads it automatically when it starts. And it gets applied before any user settings, so users can still tweak things on top of it if needed.

If you’re the only one using Max, you can probably just use the new env var and not worry about the User Settings folder at all.

Recap the loading order

  • all application plugin packages

  • Files from ADSK_3DSMAX_CUI_PRE_USER_CONFIG.
    It accepts multiple files and loads them in the order they’re listed. So if you’re using a custom app launcher, you could set it up like this:
    S:\pipeline\studio.mnx;S:\pipeline\dept_lighting.mnx;S:\pipeline\show_starwars.mnx

  • The selected user configuration file in the User Settings folder

More to read

With this pipeline integration setup, nearly all of my customizations automatically carry over to future versions of 3ds Max. Also, even if I delete the ENU folder, these settings remain intact since they’re stored outside of it.

So, check out the following tutorials and give it a try. It might take a bit of time upfront, but it’s definitely worth it in the long run.

New 3dsMax 2025 Menu System and How to Transfer UI Customization to a New Version
How-to-manage-tools-part-1-scripts-featuring-new-pipeline-integration
How-to-manage-tools-part-2-plugins-featuring-new-pipeline-integration
3dsmax-2023-pipeline-integration-v2

The end!

Want to work smarter, not harder? Start learning Maxscript! Let’s maxscript!

3dsMax 2026 & .NET Core 8

3ds Max has long offered excellent .NET integration, allowing Maxscript to seamlessly tap into the power of any .NET library. Personally, I’ve made extensive use of .NET features in my own tools.

Previously, 3ds Max relied on the .NET Framework 4.8 and was recently updated to 4.8.1 for the 2025 release. However, with 3ds Max 2026, Autodesk has transitioned to .NET Core 8. This shift brings a more modern foundation but also removes support for certain features from the older framework.

One notable example is the CSharp.CSharpCodeProvider.CompileAssemblyFromSource method, which many scripters used to dynamically compile C# code—eliminating the need to distribute separate DLL files. Unfortunately, this method is no longer supported in .NET Core 8.

As a result, any script that relies on this method will crash in 3ds Max 2026 like this.

-- Error occurred in anonymous codeblock; filename: C:\myscript\awesomescript.mcr; position: 231; line: 18
-- MAXScript MacroScript Error Exception:
-- Runtime error: Cannot resolve type: Microsoft.CSharp.CSharpCodeProvider
-- MAXScript callstack:
-- thread data: threadID:1254

So, what can we do?

The good news is that 3ds Max now provides an alternative: CSharpUtilities.CSharpCompilationHelper, which allows dynamic compilation of C# code in the new environment.

Please visit this link for an example on how to update your scripts using the new approach.

The bad news? If your scripts are affected, they’ll need to be manually updated—there’s no automatic fix for this transition.

 

Want to work smarter, not harder? Start learning Maxscript! Let’s maxscript!

#3dsMax 2025.2 Scientific color maps and extra presets

#3dsMax 2025.2 features Scientific color OSL map by Fabio Cramel.

It is 32 color gradient map with sRGB based interpolation under the hood. But, what’s important is the presets. The map comes with the full sets of 39 Scientific colour maps by Fabio Crameri.

You can see the preview image here.

The color was resampled to 32 color from the original dataset with matplotlib. It is sRGB values.

If you don’t know what the perceptually uniform color maps for scientific visualization is. Please check this page.
https://www.kennethmoreland.com/color-advice/

That being said I gathered even more color maps and made another preset.
It has 371 additional maps from the following sources.

Smooth Cool Warm by Kenneth Moreland.
Viridis  by Eric Firing
Plasma, Inferno by Stéfan van der Walt and Nathaniel Smith
Kindlmann, Extended Kindlmann by Kindlmann, Reinhard, and Creem.

Color specifications and designs developed by Cynthia Brewer
http://colorbrewer.org/

ColorCet by HoloViz
https://github.com/holoviz/colorcet/

cmocean by Kristen Thyng
https://github.com/matplotlib/cmocean

To use this, download the attached ScientificColorMaps.csv file and replace this file.
C:\Program Files\Autodesk\3ds Max 2025\OSL\ScientificColorMaps.csv

Download_ScientificColorMaps_Extra_Presets

 

As of now, the csv file has to be in the same folder as maps.
I hope there could be a way to use a different folder to add preset in the future.

New 3dsMax 2025 Menu System and How to Transfer UI Customization to a New Version

New Menu System

One of the new 3dsMax 2025 features is the completely rewritten new menu system for menus and quad menu. This is a part of the initiative called Upgrade-Safe UI which was introduced in 3dsMax 2020 for the hotkeys first.

For users, the most important and beneficial change is how the customization is stored and loaded.

The legacy UI customization system was the “Save and Load” system. When users customize menu items and save them, the entire menu status is saved in a .mnux file. Then, when users load the .mnux file, the entire menu items will be replaced by the content of the file. This causes the following issues.

  • Dev added a feature XYZ in a new version and added menu items for that. All these newly added items will disappear when users loaded a .mnux file from an older version of max.
  • A user had a plugin ABC and menu items for it when they save the .mnux file. But, the new 3dsMas version doesn’t have the plugin anymore. When users load the ,mnux file, all the menu items for the plugin ABC will remain in the menu and be broken.

To address these problems, the new menu/hotkey system uses a transformation approach. Basically instead of save/load the explicit configuration of the menu, the new system stores only the delta(change) from the default menu/hotkey and applies back the changes and overrides the default status.

This will allow users to keep the changes they made while still receiving updates from the global changes. This also means the menu customization will be portable between versions and machines.

This also means it is very easy to go back to the default menus if you need to by simply choosing the locked “3dsMax Default Menus” configuration. This is the same for hotkeys since they are using the same system. Everybody probably had an experience where you had to jump on other’s max and realized that all the hotkeys and quad menu are heavily customized. Now you can easily revert to Default and back to the custom.

User Settings Folder

The menu file(.mnx) are saved in the “User Settings” folder by default. This folder is in the  “Autodesk” folder in the user folder, not the hidden AppData folder.  C:\Users\[username]\Autodesk\3ds Max 2025\User Settings

You can also set a custom location using ADSK_3DSMAX_USERSETTINGS_DIR env var.

Pasted-4

This means that all these settings will survive when you nuke ENU folder to fix issues. Also, you can just copy everything in this folder to another  version or machine to get all the settings in this folder.

Currently the following settings are stored in this folder. Any files in this folder is portable and upgrade safe. When you move version to version. Just copy them to the new version folder.

  • Hotkey Set File(.hsx) – need to load to apply
  • Menu Configuration File(.mnx) – need to load to apply
  • Custom Default File – DefaultParameters.ini
  • MaxToA settings
  • Viewport Settings Preset – High Quality/Standard/Performance are just presets of Per-Viewport Configuration. You can even make your own, and the own preset settings file is stored in this folder as .json file.

Pasted-5

Plugins/Script Developers

The old menu system is gone now. So, Maxscript Menu Manager interface(MenuMan) is gone. If your plugin/script/pipeline has been using MenuMan for adding custom menus. You need to update to the new system.

A good news is that now you don’t necessarily need to code to add menus. The application package now support “menu parts” component. I updated my csMakePreview to demonstrate how you can use this for any scripts.

You can download and check the package. But, in short, I modified the menu and saved .mnx with the new Menu Editor. Then, add the .mnx file in the package and added this line.

<ComponentEntry ModuleName=”./Contents/cui/csMakePreview.mnx”/>

The plugin package will replace the built-in Make Preview viewport menu with csMakePreview like this. Pasted-6

To assist this, The “Developer Mode”.has been added to the new Menu Editor. When you switch to this mode, only the base and either the selected preset or an empty preset is loaded(no plug-in and user defined menus)to provide a clean configuration to work with.

Pasted-7

How to Upgrade/Transfer All Your Customized UI, Preference, Plugins, Scripts

UI

There are 5 UI items you can customize. Mouse, Toolbar, Menu/QuadMenu, Hotkey, Color.

  • Hotkeys – If you use a newer than 3dsMax 2020.1, just copy files in the User Settings folder and load your Hotkey Set File(.hsx)
  • Menu/QuadMenu – Since the menu system is just introduced(2025), you will get the benefit from 3dsMax 2026. But, if you need to transfer the customization for 3dsMax 2025. Same as Hotkey,  just copy files in the User Settings folder and load your Menu Configuration File(,mnx).
  • Mouse, Toolbar, Color – These are still using the legacy system. I really hope the 3dsMax dev works on the toolbar sooner than later. For these, you need to load the customization files from an older version.

But! Which file is THE file you need to use? Isn’t there a million places that have ui files? Well… Yes and No. First, the answer to the question is \en-US\UI\MaxStartUI.* files under ENU folder.

C:\Users\[username]\AppData\Local\Autodesk\3dsMax\2024 – 64bit\ENU\en-US\UI\MaxStartUI.*

This is the ui files that gets updated when you close 3dsMax when you turn on “Save UI Configuration on Exit” in the Preference, and they are loaded when 3dsMax starts.

Browse to the 3ds Max ENU folder you want to load UI from and load them. MaxStartUI.cuix is for the toolbar, and MaxStartUI.clrx is for the color. For mouse, MaxStartUI.musx is not automatically generated. So, you can save anywhere and load it.

AGAIN, NOW YOU JUST NEED TO COPY .HSK .MNU BETWEEN VERSION(OR MACHINE) AND LOAD IT TO UPGRADE OR TRANSFER  CUSTOMIZATION TO .OTHER MAX

A Friendly Reminder!

Before you transfer any of this UI customization. You need to make sure to install all your plugin/scripts first. For that matter, I already have 3 parts for this. I highly recommend you to read this and try. Since I have implemented this setup, I never ever needed to touch any plugin/scripts install/setup ever again.

/how-to-manage-tools-part-1-scripts-featuring-new-pipeline-integration/
/how-to-manage-tools-part-2-plugins-featuring-new-pipeline-integration/
/3dsmax-2023-pipeline-integration-v2/

 

3dsMax 2024.2 Conform Sample Pack

Here is some of max file you saw in the Conform Sizzle Reel including the tire and track scene.

Download 3dsMax 2024.2 Conform Sample Pack

 

Credit

Greg Glezakos – conform_clock, conform_Tire
Paul Erdtmann – conform_tracks
Logan Foster – conform_zipper
Michael Spaw – conform_scanner
Changsoo Eun – conform_array_rope,conform_Fake_Collision conform_noiseball_animated, conform_proxymity_shader, conform_shrinkwrap_band, conform_missed_verts, conform_volume

 

 

3dsMax 2024 Highlights

3dsMax is here with tons of new features. Here are some of highlights.

#3dsMax 2024 OCIOv2 Color Management
OCIO v2 based color management is here, From image loading to rendering space, output and color picker, comprehensive color management is possible now.

#3dsMax 2024 – Boolean modifier
New MNMesh2 powered modifier-based Boolean workflow. Capture mode will embed operands into the main object. If you don’t want to embed, you can still choose to live reference. For example, for animation, you may want live reference. The UX has also been a big focus for this modifier. You will notice a lot of small but thoughtful features throughout the modifier.

#3dsMax 2024 Boolean – OpenVDB Volume Boolean
In addition to mesh boolean, OpenVDB-based volume boolean mode is added. It enables simple and easy mesh <> volume workflow. Combined with the Retopology modifier, it opens a lot of new possibilities

#3dsMax 2024 Boolean – SplitAttach
2 New boolean operationstypes. Split cut meshes by keeping Intersection and Subtraction result. Attach combines multiple objects into one without affecting their topology.
It also has improved support for booleans across multiple elements. For example, when performing a Split or Inset operation on the Boolean Modifier, these operations will be processed one at a time on each element.

#3dsMax 2024 Boolean – Topology
By nature, boolean is prone to generate bad topology. The boolean modifier has a lot of built-in clean-up code for input/output topology. This also allows more stable Boolean operations.

#3dsMax 2024 Qt Slate ME
Slate material editor ahs been Qtfied with the new look and faster performance. Now it is dockable, and the colors of UI elements are customizable.

#3dsMax 2024 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. Just use like anyother material/maps.

#3dsMax 2024 Material Switcher
Allow to switch among sub materials up to 9999. You can switch between multi/sub materials, too.

#3dsMax 2024 Transform List controller
Just like all other list controller. But, for transform. No need to have list controllers for position, rotation, scale separately. Also all list controller has been Qtfied and got a new index mode. The index mode allow you to simply switch between sub-controllers without weight adjusting.

#3dsMax 2024 Qt Modifier LIst
The modifier list has been Qtfied which maker it a lot faster. It also now has search filter. Scroll bar now has size Preference option.

#3dsMax 2024 Array v2
Awesome Array modifie has gotten even better with New Phyllotaxis Distribution method. It also has new Mateiral ID option and Proigressive transform option, ransform Before Projection checkbox/.

#3dsMax 2024 STLCheck/STLImport Performance Improvement
STLCheck/STLImport Performance has been improved thousands times faster. Ye, thousand times.

#3dsMax 2024 Triangulation Improvement
The improved triangular algorithm which was introduced in 2023.1 has been improved further. Now also used in Edit Poly modifier.  The following Editable Poly/Edit Poly operations now use the new triangulation algorithm – Face splitting by insertion of edges, Slice, Cut, Bridge, Vertex extrusion, Edge extrusion, Cap, Smart Extrude. Cap Holesmodifier is using this new algorithm

#3dsMax 2024 USD 0 4

3dsMax 2023.3 Organic Noise

I know it is gross. This is the new OrganicNoise OSL map from 3dsMax 2023.3. It makes organic-looking noise! Like the above image.
It is so cool because…

  • First of all, it ships with 28 ready-to-use presets!
  • Lots of options to play with
  • 3D procedural noise. You don’t need UV
  • Animation-ready Phase parameter
  • Work well with displace modifier and gradient map

I renderers all 28 presets as animation. Check it out. Don’t forget to music on!

 

3dsMax 2023.3 Highlights

It has been only a little bit more than a month since we got big USD updates. But, this is December, the month of the last PU of the year.

The new Organic Noise OSL map will allow you to create organic looking noise patterns by modulating and filtering OSL noises.

The best part of new #3dsMax 2023.3 Organic Noise is that it comes with 28 ready-to-use presets. It is like having a holiday gift basket!
I rendered all 28 presets with Phase/Scale animation and even put some background music. It is interesting to see that the scale adds even more variations.

When #3dsMax 2023.2 Array modifier was released, I had to connect a few OSL nodes to randomize maps per clone. Now you can just use a single UVWRandomizer OSL map for the randomization part

#3dsMax core optimization effort never stops. This time Poly to Mesh conversions performance has been improved across 3dsMax. If you have a stack with lots of channels and jump around Poly/Mesh a lot, you will feel the difference.

3dsMax USD 0.3

3dsMax USD 0.3 has been released. Here is the highlights.

USD Stage Object

  • SD 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 Array Sample Pack

These are some Array modifier sample max files from me and other beta testers. I’ll eventually post something ti explain some of these files. But, if you are impatient, just open these files and figure it out! Enjoy!

Download3ds_Array_Sample_Pack here!
* Array_Spline_MetalHose requires Tubo MCG.

Credit

  • Array_Cobblestone_Road – Sergio Santos
  • Array_DNA, Array_Radial_Tower, Array_Spline_Chain, Array_Spline_Fence – Michael Spaw
  • Array_Grid_Chainmail – David Almeida
  • Array_LostShipLoadFloating – Paul Erdtmann
  • Array_Rope, Array_Tire – John Martini
  • Others – me 🙂

3dsMax 2023.2 Highlights

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 – Grid, Radial, Spline, Surface
  • Array by Element allows each element as an array source
  • Extensive Transform options such as Incremental, Alternating, By Axis, Incremental By Axis and provide very flexible control.
  • Randomization
  • Clone ID UV data
  • Remove allow to remove clones by % or object volume
  • Create Instances – bake to instanced individual objects

3dsMax 2023.2 – 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.

3dsMax 2023.2 –  Object Color mode Material Evaluation Override

3dsMax 2023.1 Highlights

3dsMax 2023.1 – Performance

Improving/optimizing performance #3dsMax has been one of the big focus for a while. #3dsMax 2023.1 has another round of big performance boost. Especially these updates are for animators.

3dsMax 2023.1 – Spline Extrude

3dsMax is known for the best spline tool on the market. Yet it has gotten even better!

3dsMax 2023.1 – Progress bar update

File IO operations will show progress and progress will displayed in task bar icon.

#3dsMax 2023.1 – 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.

#3dsMax 2023.1 – New Triangulation algorithm

New Triangulation algorithm prevents inverted or collapsed triangles, generates more regular fewer long, thin triangles and handles non-planar faces better. Chamfer and SmartExtrude utilize this new algorithm. It will eventually be deployed more broadly.

#3dsMax 2023 1 – Vertex Paint modifier Capture

A new button is available called “Capture” which copies all of the existing vertex colors that exist under the current Vertex Paint modifier into this level. This will allow you to blur and work with the existing data easier.

#3dsMax 2023 1 – Background Playback & Merge Performance

Improved playback speed with animated background if the source image is in sRGB or gamma 2.2. It is 2x-3x faster.
Improved performance of Merge dialog when dealing with large number of nodes.

3dsMax 2023 Retopology 1.2

3dsMax 2023 includes the updated Retopology modifier. Retopology modifier is an automatic retopology solution that was introduced in 2021.3. It is based on a Autodesk’s proprietary tech called Reform.

If you are new to this modifier here are some links you can read.
Retopology Gallery     Tutorial Video Collection     Quick Start 1     Quick Start 2

Preprocess/Remesh

One of the main update is “Preprocess Mesh” checkbox(On by default). If this option is on, Retopology modifier will preprocess/remesh to make a evenly triangulated mesh first before retopolizing the mesh.

Reform really love this preprocessed mesh which makes the retopology process really really faster. Especially, when you go from very high poly count to low count target. The  above bunny has almost 70k triangles. When I retopo to 5k without preprocessing. It took 34 seconds. With preprocess, it took only 4.7 second.

Second, because the preprocess smooth out small details(or noises), it produce a better edge flow as you can see from the following image. Of course, if you want to keep all the details as much as possible, you might want to turn off preprocess.

Another important benefits of the preprocess is that it actually allow to retopo a highly detailed mesh to a very low target. Reform tend to try to keep all the details as much as possible. Because of this, Reform sometimes just fail or give you a result that has a lot more poly than you wanted. Preprocess solves this issue.

Here are some examples of retopo with preprocess on. I have Ryzen 2700X. Both models were sliced half and reassembled with Symmetry modifier.

Left – 2.4 million poly        Center – 20ok poly / 77 seconds         Right – 24k poly / 20 seconds

730k poly        39602 poly / 25s       10282 polys / 9s       2978 polys / 7s        1003 polys / 6s

Data Propagation/Preservation

3dsMax mesh has more data than just vertex and faces such as UV, normal, smoothing group and material id. Now Retopology modifier keeps any of this data which you set as “Auto Edge” while preprocessing and processing. For example, if you turn on Auto Edge > UV Channel, it will create edges along the uv seams and re-project uv data to the new mesh.

I picked a Megascan asset and retopoed from high res model to 5000 poly target which is same as their LOD0 mesh. The left one is Retopoloigy modifier result. It took 26s with the default setting.

UV after/before retopo

But, Let’s talk a little but more about Auto Edge especially for uv seams as Auto Edge.

I have scanned model. The green line is th euv seams. Do you see all those tiny uv elements? If I turn on Auto Edge with UV Seams, Retopology modifier will try really hard to keep all of them, which means retopo will likely fail unless you set the target really really big. So, please check your UV if your retopo process fails with Auto Edge/UV seam.

 

 

 

 

 

 

 

 

To solve this issue, you will likely create a new uv with less elements and bake maps to the new uv. This is the result after I created new seam abd used BTT to transfer the texture to new uv. It took 104 seconds to retopo to 25000. I’ll have a new post dedicated to this process in the future.

 

 

 

 

 

 

 

 

Here is some images of retopolized Megascan assets. Most of them was just one click.

Output Mesh type

Now you can choose to output either Retopology mesh or Remeshed Mesh(Preprocessed mesh) to the stack.

As you can see, remeshed mesh has extremely simulation friendly topology. As of now, you can’t just get remeshed mesh. But, remesh process usually a few seconds. You can just press ESC when retopology process starts to get only remeshed mesh.

That’s it for today!

3dsMax 2023 Pipeline Integration v2

The pipeline integration which was introduced in 2022.3 has a small but very very important update in 3dsMax 2023,

%ADSK_3DSMAX_MAJOR_VERSION%  and %ADSK_3DSMAX_MINOR_VERSION%

  • %ADSK_3DSMAX_MAJOR_VERSION% – represents the major version of the 3ds Max (3dsmax.exe) process. For example “2023” for 3ds Max 2023
  •  %ADSK_3DSMAX_MINOR_VERSION% – represents the minor version of the 3ds Max (3dsmax.exe) process. For example “1” for 3ds Max 2023 Update1

In a not shell, you can set all pipeline integration folders per 3dsMax version and even for each PUs.

For example, this is my ADSK_3DSMAX_PLUGINS_ADDON_DIR setup.

When 3dsMax launches, it loads plugins from D:\PROJECT\_maxDefault\plugin_2023

One more example?

Setting ADSK_3DSMAX_STARTUPSCRIPT_ADDON_DIR as
\\server\3dsMax\%ADSK_3DSMAX_MAJOR_VERSION%.%ADSK_3DSMAX_MINOR_VERSION%\scripts\startup

will make your startup script path to be
\\server\3dsMax\2023.0\scripts\startup

When 3ds Max 2023 Update 2 is is installed, the path becomes
\\server\3dsMax\2023.2\scripts\startup

With this new edition, the following article need to be updated. You don’t have to use batch file or script anymore.

How to manage tools part 2 – Plugins (featuring new 3dsMax 2022.3 pipeline integration)

ADSK_3DSMAX_USERTOOLS_DIR

ADSK_3DSMAX_USERTOOLS_DIR allow you to set user settings folder,
The default location is C:\Users\[username]\Autodesk\3ds Max 2023\User Tools\

Why it is important? Because this is the folder where MCG goes.
This is the default MCG installation location.
C:\Users\[username]\Autodesk\3ds Max 2023\User Tools\Max Creation Graph\Packages

So, now I can set ADSK_3DSMAX_USERTOOLS_DIR as D:\PROJECT\_maxDefault\MCG and put all my mcg package file in D:\PROJECT\_maxDefault\MCG\Max Creation Graph\Packages.

After I set this up one time, I will not need to set MCG folder forever and ever. Update? re-install? new version? PR? I don’t need to do anything to get my MCG back.

And more…

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_ENVVAR_TOKEN_SUPPORT – Enables auto-tokenization of 3ds Max installation files, similar to the -envartoken command line switch.

3dsMax 2023 Highlights

3dsMax 2023 – Snap Working Pivot
Quick way to place and align working pivot. Just place the mouse near where you want to have a pivot and press CTRL+ ~ to see the magic happens! https://help.autodesk.com/view/3DSMAX/2023/ENU/?guid=GUID-5516D160-4031-4CF6-A655-A9D70752F890

3dsMax 2023 – Retopology 1.2
Pre-processing == faster and better retopo result.  Data propagation == Now it preserves UV and more! Preprocessed mesh(Remeshed mesh) is super sim friendly. https://help.autodesk.com/view/3DSMAX/2023/ENU/?guid=GUID-65A60AD3-CDB1-48F2-A103-C7168FD56EFC

3dsMax 2023 – glTF Material and Exporter
Not just an exporter. A dedicated glTF Material and accurate viewport representation. https://help.autodesk.com/view/3DSMAX/2023/ENU/?guid=GUID-EFBB037D-C4EB-42D2-9CE1-30FCAD483C31

3dsMax 2023 – Autobackup Improvement
Your voice has been heard. A lot of work has been done to make autobackup experience smoother. New Autobackup Toolbar – Enable/Disable button, Autobackup Time Interval progress indicator, Reset Timer. Minimize user activity interruption – Timer only progresses when the scene is changed. Timer will pause when users are interacting with max. Compress on Autobackup, Prepend Scene Name , Better handling of simultaneous Max sessions. https://help.autodesk.com/view/3DSMAX/2023/ENU/?guid=GUID-0378F364-72C4-4C8D-9E05-B918656E1761

3dsMax 2023 – Compress Save Performance
Continuing file save performance improvement of 3dsMax 2022.Save with compression performance has been greatly improved(500% to 2500% in my test) with New zstandard compression engine. Now 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.

3dsMax 2023 – Pipeline integration v2
Now you can control pipeline integration env var per 3dsMax version! Also now autoback and MCG folder can be set by env var.%ADSK_3DSMAX_MAJOR_VERSION%, %ADSK_3DSMAX_MINOR_VERSION%, ADSK_3DSMAX_ENVVAR_TOKEN_SUPPORT,ADSK_3DSMAX_AUTOBACKUP_DIR,ADSK_3DSMAX_ROOT, ADSK_3DSMAX_USERTOOLS_DIR

3dsMax 2023 – Occlude selection mode improvement
Further optimizations have been made to the Occlude Selected functionality. The selection performance and accuracy has been greatly improved.

3dsMax 2023 – Physical Material Autodesk Standard Surface Compliant mode
Thin Film and Sheen support.  https://help.autodesk.com/view/3DSMAX/2023/ENU/?guid=GUID-A9CF77A3-48EF-4103-9DCB-22AD856D0BD0

3dsMax 2023 – FBX Maya Interop
Improved FBX so now it supports the physical material and you can send to/from Maya without much loss of data.

3dsMax 2023 – Render/Viewport Instancing API
This new API provides a consistent way for third party developers to provide instancing data for a Renderer and viewport.

3dsMax 2023 – Volume Display API
This new API simplifies displaying a volume in the viewport when a plugin provides the voxels data, positions and display options. MaxToA Volume object in MAXtoA 5.2.0 is using this API.

How to manage tools part 1 – Scripts (featuring new 3dsMax 2022.3 pipeline integration)

We, 3dsMax users, love 3rd party scripts and plugins. But, we don’t necessarily like the process of installing and managing those. Sometimes this is one of the reasons why we don’t even upgrade 3dsMax. In this post, I’ll show you how to decouple the installation of 3rd party scripts from 3dsMax for easier management. I will also show how the new pipeline integration feature in 3dsMax 2022.3 will make this task simpler. We will use the famous Soulburn script as an example.

First, we need to know how scripts are loaded when 3dsMax launches. Fortunately there is already very good documentation here. In a nutshell, 3dsMax executes startup scripts and macros scripts from certain locations while being launched. Users need to install scripts in those locations so they can be loaded properly.

Startup scripts

There are a few reasons why users would want to execute scripts automatically when 3dsMax starts. For example, If you use any scripted plugins such as the famous Paul’s PEN_Attribute_Holder, you probably want it to be loaded and ready to use just like C++ plugins. Another important use of startup script is setting working environments, defaults and system directories which we will utilize in this post. I also have a separate post about this subject here. Please check it out.

As you see in the above document, 3dsMax reads the startup script from the various places. But, the most commonly used folders are these two folders.

  • system startup scripts folder – C:\Program Files\Autodesk\3ds Max 2022\scripts\Startup
  • user startup scripts folder – C:\Users\[username]\AppData\Local\Autodesk\3dsMax\2022 – 64bit\ENU\scripts\startup

One of the important rules of 3dsMax tool management is you never touch the 3dsMax root folder. If you need to add/modify anything, you should add/modify files in the appdata folder which is usually called the “ENU” folder. C:\Users\[username]\AppData\Local\Autodesk\3dsMax\2022 – 64bit\ENU\

But, as you can see, using a user data folder brings a lot of challenges, especially for a team. So, I have been managing startup scripts using a seed startup script, [3dsMax root]/scripts/startup.ms. This script basically calls the real script like this.

FileIn @ "D:\PROJECT\_maxDefault\startup\mystartup.ms"

By using this seed script, I can update the startup script centrally without re-depolying again to all workstations. this is one of two files I allow an exception personally.

BUT! I don’t need this seed script anymore because of the new pipeline integration feature. This feature allows users to set various paths used by 3dsMax with Environment variables which means you can set paths from the outside of 3dsMax before it launches. Even though 3dsMax provides a great amount of control over every aspect of 3dsMax with Maxscript. The fundamental limitation of the script based approach is that everything happens after 3dsMax launched. The new pipeline integration removes this limitation. Also it allows you to control folders that never have been allowed to control before such as the appdata folder itself.

So, how can we use this feature? There are 2 ways to set environment variables in Windows.

  • The first one is setting in System Properties or using a group policy. As you can already see, IT dept. would love this central management.
  • The second way is using a batch file or Python to set env var only for the session. If your studio is using a launcher, they are already using this way.

For startup script, we can use the first method since scripts are usually compatible between 3dsMax versions and you can put a condition if there are any version specific things in it.

After I added “ADSK_3DSMAX_STARTUPSCRIPTS_ADDON_DIR” env var, my 3dsMax runs any scripts in this folder. I don’t need to add anything to 3dsMax root folder. I don’t need to worry about re-coying again this file after wiping out ENU folder to solve my 3dsMax issues. I don’t even need to do anything for any future version of 3dsMax. It is truly set it and forget it!

Setting custom system directories with startup script

Even though the new pipeline integration allows you to add “scripts” folders with “ADSK_3DSMAX_SCRIPTS_ADDON_DIR”. This folder actually doesn’t matter much because we never execute all scripts in these folders automatically. Also setting env var doesn’t actually change 3dsMax system directories, and most scripts are usually called other scripts or macroscript(We will discuss it later) using #scripts or #userScripts system directories to allow more flexible installation instead of hard-coded path. For example, this is a macroscript from the Soulburn script.

MacroScript blendedBoxMapMaker category:"SoulburnScripts" tooltip:"blendedBoxMapMaker" Icon:#("SoulburnScripts_blendedBoxMapMaker",1)
(
Include "$scripts/SoulburnScripts/scripts/blendedBoxMapMaker.ms"
on execute do blendedBoxMapMakerDefaults()
on Altexecute type do blendedBoxMapMakerUI()
)

As you can see, this action will try to find “/SoulburnScripts/scripts/blendedBoxMapMaker.ms” file under #scripts folder($scripts is a symbolic pathname for #scripts).

By default #scripts is set to C:\Program Files\Autodesk\3ds Max 2022\scripts and  #userScripts is set to C:\Users\ChangsooEun\AppData\Local\Autodesk\3dsMax\2022 – 64bit\ENU\scripts. 3rd party scripts are suppose to use #userScripts. This means that we have to install the Soulburn script files under C:\Program Files\Autodesk\3ds Max 2022\scripts unless we change the location.

The good news is that we can change any system directories using the “setdir” Maxscript command! This is the first two lines of my startup script. This allows me to install any 3rd party script under D:\PROJECT\_maxDefault\scripts\ instead of 3dsMax root or my user folder.

setdir #scripts @"D:\PROJECT\_maxDefault\scripts\"
setdir #userscripts @"D:\PROJECT\_maxDefault\scripts\"

TIP! As you can see from the 3dsMax system directories document, you can also set any project folders using “setdir” command. By default, they are set as a relative path to the current project folder. But, you can change those using “setdir“ command. For example, you can change autoback folder to “D:\3dsMax_Autoback” instead of in your Document folder.

setdir #autoback @"D:\3dsMax_Autoback"

Macroscripts

Macroscript is a script that defines “ActionItems” in 3dsMax. ActionItem is “that represents the action that can be assigned to Toolbars, Menus, QuadMenus and Keyboard Shortcuts using the Customize User Interface dialog”. Basically if you want to make an UI like a button or shortcut, you need a macroscript for the script. It also allows the script to show up in Global Search(X menu).

3dsMax executes the macroscripts in #userMacros and #macroScripts system directories by default when it starts. Now you may think we could change these folder to own custom folder like #scripts and #userscripts. BUT! We can’t do that for macroscript because 3dsMax and many 3rd parties actually use these folders. BTW, there is the new Autodesk Application Plug-in Package format which 3rd parties can completely separate their files from 3dsMax factory installation. If your favorite plugin doesn’t support this. Ask them!

Another problem of #userMacros folder is that it is used when user create macroscript by drag and drop. For example, if I type print “Hello, World” and drag and drop this line to a toolbar. 3dsMax makes “DragAndDrop-Macro1.mcr” under #userscripts folder. If you share this folder across many users, you will get macroscript from all your teammates.

Therefore, it is better to load the commonly shared macroscripts from an added folder using “ADSK_3DSMAX_MACROS_ADDON_DIR” env var.

If you are using 3dsMax without the pipeline integration, you have a few ways to do this.

  • Copy all .mcr files to #userMacros folder.
  • Just run all .mcr files with the “FileIn” function.
  • You can copy to the 3dsMax root folder. But, I wouldn’t recommend it.

Honestly none of the above options are good. This just shows how beneficial the new pipeline integration is.

Icons

This is the last piece of puzzle for 3rd party script management. Sometimes 3rd party scripts include icon files. We can use both startup script or env var for this. It doesn’t matter much. I choose to use “ADSK_3DSMAX_ICONS_ADDON_DIR”  env var.

If you are using older version of 3dsMax, I will just set #usericons folder in a startup script.

Let’s put together all the pieces for Soulburn script

I have set 3 environment variables.

  • ADSK_3DSMAX_STARTUPSCRIPTS_ADDON_DIR = D:\PROJECT\_maxDefault\startup
  • ADSK_3DSMAX_MACROS_ADDON_DIR = D:\PROJECT\_maxDefault\usermacros
  • ADSK_3DSMAX_ICONS_ADDON_DIR = D:\PROJECT\_maxDefault\usericons

I have set 2 system directories in a startup script in D:\PROJECT\_maxDefault\startup

folder(ADSK_3DSMAX_STARTUPSCRIPTS_ADDON_DIR).

  • setdir #scripts @”D:\PROJECT\_maxDefault\scripts\”
  • setdir #userscripts @”D:\PROJECT\_maxDefault\scripts\”

If you download the SoulburnScriptsPack_3dsMax_v112_R2013toR2022.zip file, it has 3 folders.

  • Copy all files in “MacroScripts” folder to D:\PROJECT\_maxDefault\usermacros (ADSK_3DSMAX_MACROS_ADDON_DIR)
  • Copy “SoulburnScripts” folder in “scripts” folder to D:\PROJECT\_maxDefault\scripts\ (#scripts)
  • Copy all files in “\UI_ln\IconsDark” or “\UI_ln\Icons” folder to D:\PROJECT\_maxDefault\usericons (ADSK_3DSMAX_ICONS_ADDON_DIR).
    You can’t use “Icons” or “IconsDark” folder in #usericons folder. .bmp icons are only supported for backward compatibility since 3dsMax 2017. If you want to have a different set of icons per theme, you need to use the new .png icon naming convention and “iconname:” argument. The details are here.

Now I have the Soulburn script in my 3dsMax 2021, 2022 and will have them in the whatever future version of 3dsMax without any more steps. I can nuke the ENU folder anytime without worrying about re-installing these scripts.

This also works with any 3rd party scripts.

  • If they are .mcr files, put in the ADSK_3DSMAX_MACROS_ADDON_DIR folder.
  • If they are .ms files, put in the #scripts folder.
  • If they have icons, put in the ADSK_3DSMAX_ICONS_ADDON_DIR folder.

To help your understanding, I’ll give one more example, another famous script, DebrisMaker2.

In this case, the downloaded file is .mzp file. This is a self-installation zip file. You can actually unzip with any zip uncompressor such as 7-zip.

If you unzip, it has 3 folders under “DebrisMaker2.0” folder. Guess where would you need to copy the files?

  • MacroScripts -> D:\PROJECT\_maxDefault\usermacros
  • Scripts -> D:\PROJECT\_maxDefault\scripts\
  • UI_ln\Icons -> D:\PROJECT\_maxDefault\usericons

Again, now you will have DebrisMaker2 in any 3dsMax 2021 and above!

Before I finish this post. Someone might wonders why I said “3dsMax 2021 and above”. Isn’t it a new feature of 3dsMax 2022.3? Yes, right. It is officially added to 3dsMax 2022.3 with more complete support. But, 3dsMax 2021.3 actually have had some env var support for Autodesk internal use. At least, the 3 env var we have utilized work for 2021.3, too. I let you know because setting env var as system env var will affect 2021.3. I don’t want you to be confused or surprised.

If you want to use the pipeline integration for only certain version of 3dsMax, you have to use batch file of Python script which I will cover in the next post.

Happy rendering with renderStacks 2!

3dsMax 2022.3 Highlights

3dsMax 2022.3 has been released with new/improved features and fixes. Here are some highlights. Please check Unofficial 3dsMax What’s New for all 3dsMax updates in detail!

Advanced Wood OSL shader

As an OSL shader, 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.

Per-Viewport Filtering

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. User can 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

You can control most 3dsMax path with environment variables. This reduce the need of extra file deployment. It also allow you have more flexible setup like different plugin configuration for same version easily.Support for Environment Variable Tokens in Paths found in Configuration Files.

Occlude mode – marquee(box)/paint selection support

High-polling rate mouse fix

Save Performance Improvement 2

We got the second round of file save performance improvement.,This is the sheet I made during beta testing. As you can see, 2022.3 saving is 20-40% faster on top of 2022.2. The % number in the table is how much it is improved. So, 100% means 2 times faster. 200% means 3 times faster.You can see some of big files are saving more than 4 times faster than 3dsMax 2016.

Autodesk Official Site https://makeanything.autodesk.com/3dsmax?fbclid=IwAR1Nlc-oTE0dm4n9yYYGgHZnF3V-BPC92Hcrdf_aCkBVT_GwAeVqKIy-z2k
3dsMax 2022 What’s New https://help.autodesk.com/view/3DSMAX/2022/ENU/?guid=GUID-E2B9038C-3041-44CC-A957-AB2E5EEC631E
3dsMax 2022
Release Notes https://help.autodesk.com/view/3DSMAX/2022/ENU/?guid=3dsMax_ReleaseNotes_3dsmax_2022_3_releasenotes_html
Maxscript What’s New https://help.autodesk.com/view/MAXDEV/2022/ENU/?guid=What-s-New-in-MAXScript-in-3ds

Make your rendering life awesome with renderStacks 2!

3dsMax 2022.2 Highlights

3dsMax 2022.2 has been released with new/improved features and fixes. Here are some highlights. Please check Unofficial 3dsMax What’s New for all 3dsMax updates in detail!

Unfold3D Packing – New

The well known Unfold3D tech has been introduced to 3dsMax 2022.2.  You can enjoy Unfold3D Peel, Pack and Relax. Unfold3D Pack works great. But, it requires to have non-manifold clean faces. When it is not, Unfold3D struggle to fix by itself and usually ending up in mangled output. So, #3dsMax dev went one step further and implemented automatic uv data fix.

Unfold3D Peel – New

Unfold3D is the default algorithm used for the Peel functions now inside of 3ds Max 2022.2 with the Unwrap UVW modifier.

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. Add modifier, opening UV editor, switching sub-object mode, selecting and transforming sub-object is now a lot faster. In the video, you can see selecting an UV element is 10 times faster.

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. The stability has been also improved when quickly moving the results back and forth before committing to a final position.

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. In many case, turning on compress in 2022.2 is faster than composers off in 2016. I have a 6G scene(compress off) with 25mil tris. 2016 compress off took 118s to save. 2022.2 compress ON took 102s.

Pen Pressure Improvement

More device support as long as they support Wintab32.dll. (E.g. Huion, XP-Pen). Now 3dsMax 2022.2 supports 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)

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

A lot of new features has been added since beta 0.1 including transform/animation support. Various export options include fully customizable uv data export. Ready to use pre-compiled USDView with all required Python module.

Do you like 3dsMax 2022.2 updates? Then, you will also love renderStacks 2!

 

3dsMax 2022.1 Highlights

I have been making some short videos to showcase the new release of 3dsMax version or Product Update. This is the collection of items for 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“.
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.

Occlude mode for EditablePoly/EditPoly

Occlude mode is for WYSIWYG selection for Editable Poly/Edit Poly. If you turn on this mode, you can only select objects you can see. In this video, I have a tons of verts behind box. As you can see, 3dsMax is not allowing to select any verts that you can’t see if I turn on Occlude mode.

Smart Extrude Performance Update

As you can see from the last a few release, 3dsMax dev is trying to provide not only cool but also performant feature. The original implementation kind of naively looked at every mesh face as a candidate for cut-through, until it did a test to exclude the face. The new improved smart extrude is using a spatial partitioning approach to drastically reduce the number of those costly tests. Even better, this improvement could also bring more cool new features to smart extrude.

MaxFluid Loader Particle ID support for Particle Interface

Now MaxFluid loader expose ID properly to particle interface. What does this mean in English? This means any particle system that supports interface can read MaxFluid data directly. Here is an example reading MaxFluid with tyFlow and instancing shapes. The green thingies are leaves. I know I should have made it bigger.

Restore Factory Settings & Startup Failure Detection

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 shortcut to access the folder. 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. The best thing about this feature is it is not removing the entire ENU folder. It only reset the needed settings. But, if you want to reset other folders, you can choose to do so, too.


No more MentalRay missing plugin error

Hidden gem of #3dsMax 2022.1. Apparently there is one important 2022.1 feature was undocumented in release note.
A 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.


Here is the details from dev.
—————————————————————————–
By default, the scene contain only following types of MentayRay data which polluted scene even MentalyRay plugin was never touched wouldn’t trigger MissingDLLs and SceneConverter dialogs on file open.
mental ray: material custom attribute
mental ray: Displacement Custom Attributes
mental ray: Indirect Illumination custom attribute
mental ray: light shader custom attribute
If you want to hide more plugin data for missing plugin cases (not limited to MentalRay plugins) on file open, you can:
  1. Open 3ds Max 2022 Installation Folder\stdplugs\stdscripts\SceneConverter.ms
  2. Add a maxscript call to SceneConverter.AddSilentClassID with the class_id you want to hide. E.g, hide MentayRay mr Area Spot light objects:
  3. SceneConverter.AddSilentClassID #(0x0001b669L, 0x000875c2L) –mental ray: mr Area Spot
  4. Restart 3dsMax
NOTE: On file open, all plugin data from missing plugins will be removed automatically if “Automatically remove missing legacy assets on File Open” is checked, otherwise, they will be kept in the scene, and you can use Scene Converter later to remove or convert them. Remove all SceneConverter.AddSilentClassID calls from SceneConverter.ms will restore old behavior.

renderStacks is waiting for you. Click here!

 

3dsMax 2022 Modifier Modernization & Performance Improvement (includes 3dsMax 2021 PUs)

3dsMax is now 25 years old program. But, that doesn’t mean that all its core is 25 years old. The core of 3dsMax has been continuously updated and being updated at this moment. Upgrading core while not breaking the existing feature is a monumental task. It is very difficult and somewhat boring. But, that hasn’t stop 3dsMax team.

After 3dsMax 2021 has been released, 3dsMax developers put some great effort for modernizing modifiers and underlying cores related to modifiers I made a comprehensive list of the efforts since this kinds of things are hard to show as video.

EditPoly Remove Edges/Vertices [2533x!]

This was a typical case of “a good sample file load to fast and effective fix” case. I had to lower the poly count of a model which already had animation. I applied Edit Poly and was removing many extra loops. But, it was so slow as I remove more and more loops. I sent the max file to 3dsMax dev team. I got the fix. 3dsMax dev accelerated EditPoly Remove edges (with ctrl on) and Remove vertices in various places (including EditablePoly). How much is it improved? A LOT. REALLY A LOT.

I tested on an object with 318402 verts  and removed 238,800 verts from it.
2021.3 : 4276.9 seconds
2022 : 1.688 seconds : 253370% improvement
2533 times faster!

Since Edit Poly is recomputed when you open a max file. It will also improve file loading time a lot if you have many deleted many verts with Edit Poly.

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. Saving to previous versions will collapse EditPoly.

Bevel Faces and to a lesser extent Chamfer Edges [22x]

3dsMax dev accelerated underlying algorithms of Bevel Faces and Chamfer Edges.  This change will also accelerate any code which uses max’s “mesh clusters”. One of test showed.
2021.3 : 85 seconds
2022 : 4 second. 2125% improvement

Auto Smooth [ 3.8x – 3057x ]

The underlying auto smooth algorithm has been totally revamped which means this improvement not just for Smooth modifier. EditableMesh and EditablePoly AutoSmooth command, EditMesh and EditPoly Autosmooth command, Autosmooth modifier and Renderable Spline with Autosmooth on.

The performance gains are significant. Yes, you saw it right in the headline. One of models showed 3000 times faster performance. The particular model was tree from MaxTree. Tons of elements. Most million+ big mesh shows 30-40 times faster performance. Now Smooth modifier is faster than any other 3rd party solution.

MaxTree model / Verts : 4,467,434 / faces  : 1,381,628
2021.3 :  6664.69 seconds
2022 : 2.18 seconds : 305719% improvement
3057 times faster

An Engine CAD model / Verts : 2,260,497 / faces  : 4,516,570
2021.3 :  74.853 seconds
2022 : 2.207 seconds : 3391% improvement

Turning on Enable in Viewport for an imported spline pattern / 523k knots.
2021.3 : 724.388 seconds
2022 : 12.432 seconds : 5826% improvement

Extrude [ 4.5x – 130x ]

Optimized capping provides significant performance improvement for complex shape with a lot of elements. Also it is now cache the capped shape. Therefore, when you adjust the amount value, you can see the change instantly.

A spline with 220 spline / 523,176 points
2021.3 : 3576.56  seconds
2022 : 27.7 seconds : 12911% improvement

Relax [ 1.5x – 3x ]

It is fully multi-threaded now. It also provide the volume preservation option.

Stanford dragon model / Verts : 3,609,455 / faces  : 7,218,906
2021.3 :  21.5 seconds
2022 : 7.22 seconds : 297% improvement

Slice/Symmetry [ 1.5x – 3x ]

This modifier has some story. In the legacy Slice modifier, there is a mode button at the bottom which is set to “Poly” by default. I never paid attention to this button. But, apparently this button determines which data structure Slice would operate on. That means if you apply a Slice modifier on a mesh object. It will convert to editable poly first(!) and slice. This means there will be the conversion tax. On top of that, slicing poly is slower than slicing mesh. When I change the mode to mesh for highres mesh object, even the legacy Slice was not that slow.

Now, “Automatic” option has been added and is ON by default. It will use whatever native type which is coming from stack. BUT! Here is a catch. Because mesh slicing in 2022 is so fast now. Even with conversion tax, slicing in mesh mode is always faster. Therefore, I recommend to set to mesh especially you would use mesh for the above level.

Measuring performance was a little bit tricky because the shape of slice has greater effect than tri count. So, I applied Slice and animate rotation and measured the average time.

Stanford dragon model / Verts : 3,609,455 / faces  : 7,218,906
MESH
2021.3 :  2.88 seconds
2022 : 1.00 seconds : 286.73% improvement

I mentioned that 2021.3 default is set to “Poly”. If I don’t change this option as Mesh. It took  9.49 second! Therefore, when you apply Slice modifier on a mesh object. the improvement is actually 900% compare to 2021 when you use the default option.

POLY
2021.3 :  7.22 seconds
2022 : 5.08 seconds  – 141.95% improvement
2022 as mesh : 2.52 second – 286.66% improvement

One more tip. When your sliced a section with a lot of elements, somehow mesh slicing slowed down a lot. It is not sure what is causing an issue as of now. But, dev need to investigate what’s going on. Good news is. Poly performs very well for this case.

This is a test with 100 elements in section.
2021.3 Mesh : 4.91 seconds
2021.3 Poly : 0.22 seconds
2022 Poly : 0.19 seconds

PathDeform [ 3x – 20x ] – 3dsMax 2021 PU3

PathDeform is now fully multi-threaded. You can see hi poly models shows 20 times faster performance.

A CAD Tank thread model / Verts : 1,078,300 / faces  : 2,161,000
2021.3 :  63.463 seconds
2022 : 2.793 seconds : 2272.4% improvement

Stanford dragon model / Verts : 3,609,455 / faces  : 7,218,906
2021.3 :  9.773 seconds
2022 : 0.497 seconds : 1966% improvement

Push [ 1.5x – 5x ] – 3dsMax 2021 PU2

PathDeform is now fully multi-threaded. In the past, poly was performing worse than mesh. Now it is fixed. There is not much difference between mesh and poly. Therefore, you will see bigger improvement on poly objects.

Stanford dragon model as poly  / Verts : 3,609,455 / faces  : 7,218,906
2020 :  2.623 seconds
2021 : 0.842 seconds : 311% improvement

Have you tried renderStacks?

3dsMax 2021.3 Retopology Tutorials Video Collection

Max’s New Remesher is INSANE!

Simple Trick for Perfect Retopology in Max

Introduction to Retopology Tools for 3ds Max®: Retopologizing CAD datal

Introduction to Retopology Tools for 3ds Max®: Retopologizing a Booleaned Model

Introduction to Retopology Tools for 3ds Max®: Retopologizing a Scanned Mesh

Retopology in 3ds Max. Tips & Tricks

3ds Max Retopology

3ds Max Retopology from Jose M. Elizardo

Boolean Mesh Retopoly pitfalls

Miro Retopo

Gladiator Hulk Retopo

3D Studio MAX 2021 Retopology Tools – Adán Martín

Now time to check renderStacks!

3dsMax 2021.3 New Retopology Modifier Test Gallery

3dsMax 2021.3 has been released. The biggest addition of this update is the brand new Retopology modifier. I’ll have another post for the collection of showcase and tutorial videos.

It comes with 3 algorithms to choose, Reform, InstantMesh and QuadriFlow. Reform is the internally developed Autodesk’s own retopology engine.

I have had a chance to beta test while is was developed. This post is the collection of images that I have created while beta testing. I tried my best to test many different types of sources includes 3D scanned model, ZBrush sculpting, CAD import, booleaned meshes and more. Enjoy!

Make sure click image to see big to see wireframe better. Under the image I also tried to post the original source of model as much as remember.

ZBrush Sculpt

296k , 408k

201,881 Poly
Original model 1.2 million poly
Close up
60k, 210k, 2.8mil

732k / 86k / 32k / 20k / 8.6k vets

Do you like new Retopology modifier? renderStacks is as good as this for rendering! Click here to learn!

Scanned Model

https://sketchfab.com/3d-models/lowe-von-asparn-57a57a99ce1f4e45adee5ae37a91f51b
100mil / 300k/ 100k verts
857k / 513k / 116f faces

 

1.5 mil vs 220k https://www.artec3d.com/

CAD Import

Boolean

Up Resolution

One more chance!  Click here to learn about renderStacks. It will change your rendering life!

 

52,464 / 106,302 / 246,787 / 394,237 https://gumroad.com/l/xAQxj

3dsMax 2020.1 Hot Key Editor

One of the new feature of 3dsMax 2020.1 is the new Hot Key Editor plus Hot Keys and underlying system.

Hot Key Editor

The new Hot Key editor is cool. But, the more important change is the way of how the customized hot keys are stored and loaded. When you save and load hot keys in the past, 3dsMax had saved and loaded the entire hot key assignment. Because of this save/load mechanism, any newly added hot keys by 3dsMax dev would have lost when you load the hot keys from previous version. It was not possible to have a studio0wide custom hot keys since the hot keys would have gone when an artist load their own hot keys.

To solve this kinds of issues and make UI customization upgrade-safe, the new override based hot key customization engine is developed. Now 3dsMax stores only the changed hot key assignments in the file when users customize their hot keys. Then 3dsMax will override only the changed keys when the file is loaded.

This will allow users to keep the changed they made while still receiving updates from the global changes. Also you can deploy multiple level of hot key customization.  For example, you can have a studio-wide hot keys on top of 3dsmax default hot key while artist still can have own hot keys if they want.

New Hot Keys

Another change is the new hot keys.Yes, some of hot keys have been changed. This new hot key assignment is the fruit of the community effort of 3dsMax and beta users. There has been many feedback and discussion for the best hot keys on the beta. Special thanks to Sergio Santos for the great contribution. 3dsMax put a nice documentation with map images to show the complete list of changes like this. Please visit HERE for all images.

But, I know there are always ones who doesn’t want to change their 20 years old hot keys. For them, here is a hot key files to go back the legacy hot keys. Download it and load in the Hotkey Editor.

Download 3dsMaxLegacyHotKeys

If you have had customized hot key in pre-2019 version, this is the step to move to new hot key system.

1) Generate KBDX file using the maxscript command actionMan.saveKeyboardFile “C:\TEMP\LegacyDefaultUI-2019.kbdx”.
If you specify a KBDX extension, it will convert the entire active hotkey set to the legacy format through the old code. If you specify HSX, it will output in the new format and only contain user customizations.
Or Download this file.

2) Swap it out with the one in your UI_ln/CUI folder (rename the old one to keep a backup). This will use the new hotkey defaults as a reference point when doing the migration, and will treat every difference as a user customization, reaching the same result as if you remapped every single difference back to how it was in 2020-

 

3dsMax 2020 – OSL update

3dsMax developer has changed their delivery model to continuous delivery. Instead of delivering a feature at one release, now a feature will be delivered continuously until all the planned feature is finished. The automatic OSL > HLSL conversion for viewport was the one of them. It has been improved in every PU since tisinception. Now almost all OSL shader will be automatically converted to HLSL including 3rd party OSL shaders.

Also, the viewport playback performance of animated OSL map has been greatly improved.

This is the viewport playback of the sample file for my OSL shader pack1 in 3dsMax 2019/2020.

3dsMax 2019.3 – Alembic update

Since I posted the Alembic improvement of 3dsMax 2019 release, each PU has been added more and more improvements continuously. Let’s check what has been added.

Per object metadata with .userProperties and .arbGeomParams

3dsMax 2019 introduced the export of per object propery. But, it was only compatible between 3dsMax. With the PU3 update, you can export/import per object properties via .userProperties and .arbGeomParams. This allows a greater compatibility between 3dsMax and Maya/Houdini.

Here is an example of Alembic file exported to Maya.

Here is some details.

Import
  • It will read from both .arbGeomParams(Maya default) and .userProperties
  • It supports integer, float, boolean, string.
  • It supports animated value.
  • If Extra Attribute is on shape node, it will be in Alembic Geom Parameters rollout(alembic_geom_attributes). If Extra Attribute is on transform node, it will be in Alembic XformParameters rollout(alembic_xform_attributes)
Export
  • The custom attributes on the top modifier and base object will be exported.
  • 3dsMax will use .userProperties for export and store data on transform node by default.
  • If you use the same custom attribute name alembic_geom_attributes and alembic_xform_attributes which 3dsMax alembic importer uses. You can even have control over where your custom attribute export goes. To store data on shape node, you need to make the alembic_geom_attributes on the baseObject.
  • If you have duplicated name custom attributes on an object, none of custom attributes  will be exported. You will see the warning in Maxscript elistener.
  • Layer name will be on transform node.
  • Material name and Object ID will be shape node.
  • 3dsMax will import Layer name/Material name/Object ID as custom attribut on the respective rollout, too

Alembic Inspector

This is added in PU1. This allows to browse the content of the alembic object even without opening the alembic file. Now PU3 allow you to open the Alembic Inspector for the already imported alembic files. Use the Alembic Inspector button in the Alembic container object(the root Alembic object with Alembic logo icon),

Alembic Inspector is also accessible via Maxscript. Link.

Maya compatble Multi UV and Vertex Color

Maya is very picky about reading the multi UV and vertex color in Alembic file. To send multi UV(UV channel 2+) to Maya,  you need to choose UV for Extra Channels type. Also vertex color data from Maya will be imported as a proper vertex color channel. Before PU3, the vertex color channel was imported as an UV 2+ channel.

Instancing Support

Support for instances allows files to be much smaller while maintaining complexity and can dramatically improve export speed. PU2.

Alembic library 1.7.5

Alembic library has been updated to 1.7,5 in PU2.

Alembic Transform Controller Performance improvemant

Alembic Transform controller playback is more than 2x faster in PU3. Also Source and Object browse buttons are added for Alembic Transform controller.

Material ID will be exported when all Material IDs for an object were the same

Before PU3, None if mMaterial ID was exported.

Alembic Peformance mode will only cache the current animation range

Before PU3, it was caching from frame 0 all the time.

UV Channel will be preserved

Unicode Support

Fixed Alembic not able to use relative paths

Fixed High-speed rotations no longer deform objects

 

Thanks  for 3dsMax team for continuous effort to improve Alembic support!

3dsMax 2019.3 – OSL Viewport Support : OSL > HLSL

Since it is introduced in 3dsMax 2019, OSL Map has been comtinuously improved in every release.
There has been many updated on performance, OSL editor useability and viewport display.
The most important improvement among all is the viewport display.

Now 3dsMax viewpot can display almost all shippinig OSL and many 3rd party OSL shaders properly even as 3D procedural map.
How canit even support random 3rd party OSL shader?
The 3dsMax rendering team has developed automatic OSL > HLSL converter instead of making HLSL shader for each OSL shader.

The OSL shaders in the following images are all 3rd party OSL as 3D procedural map.
It is oddly satisfying to see all the 3D shaderes in the viewport exactly as renders.

And,,, a little bird told me even more stuff might come in the future. 🙂

3dsMax 2019.1 – Attaching large amounts of meshes is up to 7 times faster

3dsMax 2019.1 has been release with many improved features.

Many new features has been added to Alembic/OSL/Fluid/Arnold. Python and Project got some improvement. Plus 94 fixes.

One of the item among “Bringing your ideas to life in 3ds Max 2019.1 Update” was “Attaching large amounts of meshes is up to 7 times faster”.

So, I decided to test if it is true. The enhancement was done for Collapse utility. I think 3dsMax dev choose to enhance this because this is the only attach which keeps explicit normals.

I test total 4 files. I open the file and attach all geometries.
The result is… drum roll…

05_TM_manyLowRes

Obj:5616 Verts:99,686 Faces: 165,505
2019 : 3.335s
2018 : 32.724
9.81 times faster

08_Static_Many
Obj:19913 Verts:2,264,540 Faces: 3,265,430
2019 : 11.2s
2018 : 2236s
199.35 times faster

bistro
Obj:2429 Verts:2,766,360 Faces: 3,850.480
2019 : 9.5s
2018 : 546s
57.23 times faster

EmeraldSquare
Obj:29596 Verts:9,065,430 Faces: 7,722,170
2019 : 274s
2018 : 19980s
72.95 times faster

It is actually far better than 7 times!

3dsMax 2019 – Alembic Improvement

Alembic is a geometry cache format developed by Sony Imageworks and ILM. It is a very powerful format. It can handle animated transform and deformation(include topology changing animation). It can also have custom meta data as much as you want.

Alembic has been added to 3dsMax 2016 and developed continuously  since then. I’ll go over Alembic improvement of 3dsMax 2018 first and show what has been added for each previous versions.

But, before we jump on the improvement list.Allow me go over how 3dsMax implementation works first. 3dsMax Alembic works more like referencing system. Each object in Alembic file is imported as separate object which has two component, AlembicObject for geometry data and AlembicXform Controller for transform animation data. This allows users to edit anything after it is imported. You can apply any modifiers, edit geometry, change controller setup and delete any objects. Imported Alembic object is just like any other object. In a way, it almost like ObjectXref.

Other way of using alembic is treating the entire alembic object as one object like VRayProxy or Arnold Procedural object.This makes overall workflow simpler and easy to manage. But, you lose granular control. I think It is good to have both workflow inside of 3dsMax.The more choice is always better.

3dsMax 2019

Per object metadata export

3dsMax Alembic supported faceset(material ID) and per vertex arbirary channel from the beginning. But, it never had support for per object metadata. Now you can export per object meta data using Custom Attribute and some export options in Export dialog.

You can choose to export the following data from Alembic Export Option dialog.

  • Layer Name
  • Material Name
  • Object ID

Custom Attribute export supprts most data types like float, integer, string and boolean. It even support animated values.

BUT, Please keep in mid, Alembic format specification doesn’t have amy standard on this matter. Because 3dsMax write these data into Alembic file, it doesn’t mean that other DCC will magically read this data. User must figure out how to load this data in other DCC.

To know, how 3dsMax exporter stores these information, You can export a test Alembic file with HDF5 format and use the great tool called HDFView. This tool will show the entire structure of the Alembic file. Here is a sample screen grab.

As of now, the 3dsMax importer doesn’t support these data yet. I hope we would see the support for these meta data import soon.

 

UV/Extra Channel and FaceSet(MaterialID) name parsing

Since 3dsMax is rely on ID number for UV and Material ID. It was very challenging to get consistent UV channel or material ID number when you import and update alembic file. At least, 3dsMax 2017 added a way to keeping uv channel and material ID number consistent between 3dsMax. Therefore, if you export from 3dsMax and import into 3dsMax, all uv channel IDs and material IDs are preserved. But, when you import an alembic from other DCC. You didn’t have any controls. It just came in the order of channel order in the Alembic file.

Now alembic importer will check the face set and extra channel name, and if the name is end with number, the number will be used as Material ID or uv channel number. For example, if you name face group name as “group_7” in Houdini, the faces will get material id 7 when it is imported. THIS IS A SMPLE YET VERY IMPORTANT UPDATE!

Also when you export/import between 3dsMax, the data about the original uv channel and material ID is explicitly stored in the Alembic file instead of relying on naming convention. This makes the ID preservation between 3dsMax even more solid and allow the export the UV channel you set in 3dsMax. For eample, if you name your uv channel 2 as “the second UV“. the exported Alembic channel will have the name, “Max Map Channel the second UV

 

Option to choose what to export/Import

Now you can choose which channels to export and import. In the previous version, 3dsMax import/export everything it supported. The following image is the new import and export dialog.

Ont thing you need to know is that, there is a hidden ExtraChannels  Maxscript option for both import and export. What is ExtraChennels? For export, ExtraChannel means UV channel other than 1. For import, it is arbirary per vertex data other than UV. By default, it is on for both export and import.

This new options are also very important for troubleshooting. Alembic from a different DCC can easily have problematic data. At work, I found out that most of the crash while importing Alembic file turned out to be a bad data in the Alembic file(Especially normal and extra channel). Without this options, it was very hard to troubleshoot because you have to try to a data and export again iover and over again. Usually the normal and uv data caused the problem. Now with this option, I can just exclude some data to see whats causing problem. I can also decide not to import the problematic data instead od waiting for re-export.

Of course, this also allow to get better performance by removing unnecessary data.

Velocity Channel

Velocity channel in 3dsMax is a long story. It requires its own long post. In a nutshell, 3dsMax itself never has had the concept of velocity vertex channel at all. When you don’t even have the concept, it is abvious that the imported Alembic can not handle vertex velocity.

Finally 3dsMax dev added the vertex velocity channel support in the SDK. If the Alembic file has standard velocity(or v) channel, 3dsMax import the channel as vertex velocity channel. If you have been re-routing the v channel to extra channel. You don’t need to do that anymore.

But, this doesn’t mean that all renderers will magically start to see vertgex velocity channel. Each rednerer need to support the new velocity channel to utilize this data.

 

Vertex Color

Now you can export and import vertex color channel(uv chennel 0)

 

Subsampling

You can export Alembic file with subsampleing in the previous version of 3dsmax 2019. Butm the worklow was confusing. To export subsamples. You need to set 2 things.

  • Set Every Nth Frame less than 1.0. IF you set 0.5, you will get 2 subsamples per frame.
  • Then, you must be in tick mode. You need to set Time Display in Time Configuration dialog either FRAMETICKS ir MM:SS:TICKS

Now you dont need to turn on tick mode anymore. Also the Every Nth Frame option has been changed to Samples per Frame.

 

Option for Exporting Hidden Geo

In the previous version, 3dsMax Alembic Exporter export geometry data only for unhidden object. If your object is hidden, only transfom animator was exported. THis might make sense for some. But, it also make some users scratch their head for sure.

Now there is a Maxscript property to control this. In AlembicExport interface, .Hidden property controls this hehavior.

Here is a tip. You can utilize this behavior as a way to export only transform animation. If you want to export transform animation only without any geometry data. Turn off this option and hide all object and export.

 

Graceful warning/exit for import/export malfunction

Sometimes bad geometry causes crash when you export/import Alembic file.  3dsMax 2019 will pop-up an explanatory Alembic Export Malfunction message box and abort when the Alembic Export plug-in encounters an unexpected issue while exporting instead of crashing.

Generally 3dsMax 2019 handles geometry import a lot more stable than the previous versions. In many cases, 3dsmax importer will try to fix the problem and give you a best possible result. If Alembic library itself errors, 3dsMax will relay the error message.

Export Selected will grab only needed hierarchy.

Since alembic is designed to keep hierarchy, 3dsMax exporter is grabbing other necessary object when you Export Selected object. The problem in the previous version was that it is grabbing too much(the entire hierarchy tree). This is changed now. 3dsMax will grab only the immediate ancestors of selected object.

 

Better duplicated object name handling

If you have duplicated name object while exporingAlembic file, it can cause problems. In ideal world, user should check if they have the duplicated name objects before export. But, since that’s not ganna happen most time, 3dsMax will check the duplicated name and suffix nodel handle to make all object name unique.

 

Respect Maxscript #noPrompt option for duplicated name object handling for import

When an Alembic file is imported, you get a duplicated warning pop-up if there is already the same name object. When you use importFIle with #noPrompt option, this dialog will not pop up as it should be.

 

Alembic Container Object Icon

Alembic log shape icon insteaf of dummy for AlembicContainer object.

 

Remember dialog setting

The export and import will remmeber the last used settings.

 

Extra Channel UV Data Animation Fix

In the previous version, the Extra channel(UV 2+) animation was not imported if the channel has UV data(vertex data + face indice). It is fixed. Please do not confuse this with per vertex channel data which never has been a problem.

 

More Maxscript Exposure for AlembicImport

.FitTimeRange : bool : Read|Write
.SetStartTime : bool : Read|Write

 

Performance Mode Stabilixation

The Performance Mode in AlembicContainer has been stablized a lot. This feature is probably the most underrated feature of 3dsMax considering how poerful it is. I’ll mpost about this feature someday.

 

3dsMax 2018

 

Visibility Support

Visibility track support is  added including visibility animation.

 

.ShapeSuffixMaxscript Option for Maya

Our little precious Maya could not handle the geometry name from Alembic file properly. Therefore, 3dsMax dev had to add a solution for them. If you tuen on this option, yout geometry name will get “Shape” suffix.

 

3dsMax 2017

 

Preserving UV Channel and Material ID number

When you export and import an Alembic file between 3dsMax, the UV channel ID and Material ID number will be preserved.

 

Extra Channel Import Support integer, float, vector, color

3dsMax 2016 only supported color and vector.

 

Proper Deformation Export for Object with Spacewrap

In the previous version, 3dsMax exported the object with SpaceWarp in World coordinate. If the object is not at the root level, the object will get double transform since the deformation animation already include the animation.

 

Alembic Performance Mode for Any Object

Alembic Performance Mode cab be used for any 3dsMax geometry. In the previous version, only AlembicObject without any modifier was supported.

 

More Stable UV Loading

In the previous release, UV data loading was unstable. Sometimes UV data corrupt after user scrub time slider. User need to use Channel Info dialog to copy UV channel data and paste back to the same channel to lock the UV data right after they import thr Alembic file. This is fixed.

 

Full Maxscript Exposure for Alembic Export

All Alembic Export funcions are exposed to Maxscript.

 

Preserving Object Name

3dsMax 2016 suffix “_mesh” for geometry. Now object will be exported with unchanged name,

 

AlembicContainer Object as Dummy

 

——————————————————————————————-

OK,  that’s it. I hope it is helpful for you.

3dsMax 2019 – OSL map

3dsMax 2019 has been released.

The most noticable feature is the OSL(Open Shading Language) map. You should watch Mads video to see what it can do. Obviously this is a god send for technical minded users. It is like MCG for maps. You can make anything. Your imagination is the limit.

But, what does it brings to the artist who doesn’t/can’t/doesn’t want to code?

3dsMzx 2019 is shipped with 101 OSL maps from bitmap loading to procedural noise, color correction and utilities. Thisbrings some interesting features and workflows. Let’s see what we can do with them.

Random By Index

You can randomize any vaule type that OSL supports by index number. For example, You can randomize gain value(float) or UVW offset(vector) or diffuse color. Anything!

Object property access

Even better, OSL map allows to access various object data such as Material ID, Object ID, Wire(frame) Color, Node Handle(a unique id per object), Node(Object) name and User properties(!). If you combine these maps with Rendom By Index map, you can randomize almost every map/material paramateres per object. Here is an exmaple. All object have the same material with single bitmap texture.

Switcher

Finally the switcher map has been arrived. This map allow you choose a map among the multiple children map. You have 1-of-10 and 1-of-5. But, you can cascade them to support more than 10.

Independent UVW control

It is like Coordinate rollout is a seperate map, and you can plugin the UVW into multiple maps. Yes, now you can instance UVW across multiple maps. Also you can also randomize UV by using the above maps. Do you want to distort UV? then apply a noise map to UVW map.

Randomized Bitmap

“Randomly place (and alpha blend) a set of bitmaps on top of something else”.
Just try it. So much fun!

Shuffling channel

You can easily shuffle channels around. Find Compoments(Color) map and connect from where you want get to where you want to put.

 .tx /.dpx format loading

OSL uses OIIO for image IO. Therefore, the image formats which supported by OIIO will be supported in OSL map. But, you can read .tx and .dpx directly.

Filename as a map

When you have a single file which is needed be used in multiple map. You can use Filename map and feed to the path to multiple Bitmap Lookup maps(OSL version of bitmap map).

Gamma checkbox in the map

You don’t need to use file dialog anymore for gamma settings. Gamma setting is in the paramaters rollout! It also has AutoGanna option which will set gamma value depends on the file format.

Samplerinfo

OSL gives you access to various scene data such as position/normal/uv. You can get this data in various space. You can use local object position or world normal vector as map. Do you want to render out UV as texture? Just plug UVW to diffuse color.

Math, Math, Math

You can do all kinds of math you want to do. Many math functions are exposed as maps. You don’t have to “code” for simple math operations. Do you want to have a black and white mask for your mountain? Let world position value and remap to 0-1. Simple.

Granular color correction

Of course, you can use any math maps to do whatever you want. But, 3dsMax 2019 also has 2 OSL maps you can use for color correction, Lift/Gamma/Gain and Tweak. This should cover all features of legacy Color Correction map.

Procedural map that renders exactly same across renderer

Many renderers support 3dsMax noise map. But, the result of the noise map could be different for the renderer which doesn’t use 3dsMax map api because they have own implementation of noise map. In this case, your rendered noise mapptern would not match with other portion of 3dsMax such as Displace modifier. If you use OSL procedurals, the render result would be exactly same regardless of renderers. This is HUGE. OSL allow to have a foundation of unified map workflow across renderers. Check out these renders. The left one is rendered with VRay. The right one is rendered with Arnold.

3dsMax 2019 come with new noise map with the follwing 6 types of new noise. perlin/uperlin/simplex/cell/hash/gabor

New pattern maps

It also has a few interesting new pattern maps.
Checker(3D), Candy, Mandelbrot, Revets, Digits

Unified and portable map tree

The biggest chanllenge of moving shader around between renderer is the complicated map tree. One incompatible map in the middle of shader tree will break the shader tree from that point. Even thiough there are enough matching maps. It is almost impossible to reuse shader tree and produce exactly the same result. With OSL, you can. As long as you stay in OSL, the result map tree will always be same just like procedurals.

Possibility of rendering on Linux

You already can convert mesh data to a renderer scene file format like vrscene or ass, rib file for rendering. But, the nature of 3dsMax renderer integretion always requires 3dsMax to evaulate map tree unless you only uses the renderer native maps. This is the main obstacle to render max scene on linux.  Now with OSL, the renderer scene file format could include all map tree in the file and render. It opens a posibility of rendering 3dsMax scene on Linux.

This is a new era for rendering in 3dsMax. Enjoy!

3ds Max 2017 – Fastest 3ds Max Ever

In 3ds Max 2017, there are a lot of performance improvements in may area.
I think It is the fastest 3ds Max ever.

  • Viewport is faster than ever in many cases. Selecting and manipulating sub-object is also a lot faster.
  • UV Editor is totally rebuilt with DirectX which is a lot faster and can handle bigger mesh.
  • TrackView also perform better and stable.
  • Now you can use alembic performance mode for any object and have an option for force cache.
  • Many unnecessary evaluation problem is fixed. For example, if object is hidden/frozen/display as box, the applied material would not be evaluated.

Here is some benchmarks numbers to show how much 3ds Max is faster than the previous versions.

 2012201420162017
Deforming Mesh6.932.045.495.3
HiRes Transform Anim25.017.920.027.7
Static Many Object3.83.93.714.8
Production Scene1.03.13.25.1

All numbers are fps. The fps number is measured by script. It is not from viewport statistics.

Deforming Mesh

This scene has 4 point cached characters.
4objs / 142k verts / 283k Faces.
Thanks to the brand new GPU mesh builder in 2017, 2017 is 1,300% faster than 2012.

HiRes Transform Animation

This scene has an animated hires rigged rigid mesh robot.
800 obj / 9.1mil verts / 18mil faces.

Many Static Objects

I made a 10+ buildings with Building Generator script. It has more than 20,000 low-res statics objects.
20,000 obj / 2.2mil verts / 3.2mil faces
You can see 400% performance improvement

Production Scene

One of sample scene file from Blur which is included in Brandon Young’s DVD.
Four point cached hires character and baked transforms.
106 obj / 407k verts / 791k faces
You can see 500% performance improvement compare to 2012.