Menu Close

Author: changsooeun

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 🙂

csArrayMaker

3dsMax 2023.2 has been released with the new feature-packed Array modifier.

This is an array/tile “rigger” based on the new Array modifier. I originally wanted to make a series of tutorials. But, I had to admit that typical Max users are too lazy to follow all the steps. So, I just made this script. I still hope to have some tutorials. But, you can just use this meanwhile.
Download

 

The generated object is “rigged”. If you change the base object size, the array/tile will adapt to it.

  • 4 geometric patterns – Circle, Diamond, Triangle, Hexagon
  • 4 tile types – Herringbone, Chevron, Wood Strip, Basker Weave
  • Option to make Chamferd/Non-Chamfered version
  • Initial Size option
  • Clone UV ID
  • 5 Material presets
    • Bitmap projection
    • Random Color MTL – random color between 2 colors per clone.
    • Random Switcher MTL – randomly chosen colors per clone among 5 given color. You can change the amount of color.
    • Random UV Offset Bitmap MTL – randomly offset UV transform and color for a bitmap.
    • Random Advanced Wood MTL – randomly offset UV 3D transform and Advanced Wood material

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.

MCG : map2vc

It has been a while I made an MCG. This simple MCG allow to set vertex color(or any uv) using any 3dsMax 2d map.

Download

How to use.

  1. Pick a 3dsMax map. You can use a map tree. But, it has to be all 2d maps with Explicit Map Channel.
  2. Set Source ID same as the uv index which the map is using.
  3. Set Target ID to bake map into.
    As label says that channel 0 is vettex color channel in max.

If you wander what the graph looks like, this is the graph. The core portion is smaller. But, error checking made graph a little bit bigger.

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.

3dsMax tips #7 – Use startup script instead of maxstart.max file

I know a lot of 3dsMax users uses maxstart.max to set their default working environment. While that is certainly a convenient method. I haven’t used that for more than 10 years. Here is why.

  • It replaces everything. It is a load/save. I can’t pick and choose what to set. For example, all the renderer settings are saved and loaded. If the renderer developer changes some default value for their new feature. Your maxstart.max from the older version will override all that settings.
  • It is hard to know what you actually have set. There is no trace whatsoever what you have changed. If someone accidently changed settings and overwrote the file, there is no way to know until someone has an issue. This is actually the most important reason for me to switch to startup script.
  • Obviously there are settings that aren’t stored in a max file.
  • It is rare and probably ok now. But, back in the day, there was a bug that maxstart.max was loaded AFTER I already loaded a max file.

This is a sample startup template that you can use as a starter point. This include the #script and #userscripts folder setup that I posted in another post. Now I just throw this script in my “ADSK_3DSMAX_STARTUPSCRIPTS_ADDON_DIR” folder and good to go forever!

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

-- system unit
DisplayType = #Generic
units.SystemType = #Inches
units.SystemScale = 1

-- animation
frameRate = 24
animationRange = interval 1 72
maxOps.autoKeyDefaultKeyOn = true
maxOps.autoKeyDefaultKeyTime = 1

-- gamma
IDisplayGamma.colorCorrectionMode = #gamma
IDisplayGamma.affectMEdit = true
IDisplayGamma.affectColorPickers = true
displayGamma = 2.2
fileInGamma = 2.2
fileOutGamma  = 2.2

-- renderer
if vray == undefined then (
    renderers.current = Arnold()
)
else(
    renderers.current = VRay()
)

-- autoback
autosave.Enable = true
autosave.NumberOfFiles  = 20
autosave.Interval = 10.0

-- UI
-- hide viewcube
ViewCubeOps.Visibility = false
-- hide Sign In
qtmax = python.import "qtmax"
(((qtmax.GetQMaxMainWindow()).menuBar()).children() as array)[2].close()

-- Viewport
-- Set all viewport background as solid
actionMan.executeAction 0 "618"

callbacks.removeScripts id:#startup4reset
callbacks.addScript #systemPostReset filename:(getSourceFileName()) id:#startup4reset
callbacks.removeScripts id:#startup4new
callbacks.addScript #systemPostNew filename:(getSourceFileName()) id:#startup4new

– To prevent “Do you want to savr?” dialog after fresh start
setSaveRequired false
    
format "startup script is loaded\n"

Try renderStacks. It will change your Max life!