Menu Close

cs_sme_drop

It seems everybody loves the new multiple image drag and drop to Slate material editor in 3dsMax 2024.1.

As I mentioned in the video. You can make own function for the new callback. Here is an example script that supports VRay, Corona, Arnold and OSL map. You can add this as a startup script folder. It will auto-detect VRay, Corona, Arnold, FStorm, Octane, Redshift and make a native image loader for each renderer. If you edit as “local useOSL = true”, it will generate OSL UberBitmap.

Here is the download Download - Updated to 1.1

Here is the code.

 

-- cs_sme_drop v1.1
-- by Changsoo Eun
-- www.changsooeun.com
(
	local maxver = (maxversion())
	if maxver.count > 7 and maxver[8] > 2023 and maxver[5] > 0 then (
		fn cs_sme_drop test urls pos = (
			if not test then (			
				for f in urls do (
					-- Set this to true if you want OSL UberBitmap
					local useOSL = false
					local amap = (bitmaptexture())
					amap.filename = f					
					if useOSL then 
					(
						amap = (osl_UberBitmap2b())
						amap.filename = f		
					)
					else
					(
						if Corona != undefined and ((classof renderers.current) == Corona) then (
							amap = (CoronaBitmap())
							amap.filename = f
						)
						if vray != undefined and (matchpattern (renderers.current as string) pattern:"*v_ray*") then (
							amap = (vrayhdri())
							amap.HDRIMapName = f
						)	
						if (matchpattern (renderers.current as string) pattern:"*FStorm*") then (
							amap = (FStormBitmap())
							amap.filename = f
						)	
						if (matchpattern (renderers.current as string) pattern:"*octane*") then (
							amap = (RGB_image())
							amap.filename = f
						)		
						if (matchpattern (renderers.current as string) pattern:"*redshift*") then (
							amap = (RS_Bitmap())
							amap.tex0_filename = f
						)		
						if Arnold != undefined and ((classof renderers.current) == Arnold) then (
							amap = (ai_image())
							amap.filename = f
						)			
					)
					if useOSL then (
						pos.x += 100
					)
					else(
						pos.y += 100
					)
					amap.name = (getFilenameFile f)
					(sme.getview sme.activeview).createnode amap pos
				)
			)
			true
		)
		sme.fileDropCallback = cs_sme_drop
	)
	else (
		messagebox "3dssMax 2024.1+ is required"
	)
)

 

csMakePreview

3dsMax 2024 bring a lot of new features. Some of them are hard to show in a video. This is one of those features.

I always have wanted to have a modified version of Make Preview. For example, if you are a pipe guy at a studio, you probably would not want to give assess to the output path to artists. How about forcing some consistent studio-default options?

I have used UIAccessor in the past. I also know some studio just made their own make preview utility. But, with the update in 3dsMax 2020, I really wanted to use Max’s own Make Preview engine since it can make bigger than screen size preview.

There is a MXS command, createPreview. But, it didn’t have all the functionality of UI version. Especially, there was no way to control viewport settings. Finally, the 3dsMax 2024 createPreview function exposes every single UI option to MXS function.

So, I re-created Make Preview dialog as a script for the following reasons.

  • I wanted to check if it still misses anything compared to UI.
  • I wanted to give a template implementation for other users.
  • I wanted to add some of the features that users wanted
Download csMakePreview from here.

The added features

  • Use Current Viewport Settings checkbutton – If this button is on, the current Viewport Preset/Stylem Edges Faces and Texture settings of the active viewport will be used. Basically, it will make a preview as you can see in the viewport. This is on by default.
  • The output path textbox is editable. You can directly type/edit in the textbox.
  • Token! It supports all tokens in “Name Template”.  You can also use any global variable or global function.
    For example, you can make a  setPrefiewPath global function and set <setPrefiewPath> as path. This script will run the global function and use the result as the output path.
    Ot, If you want to add fps in the name, you can use <FrameRate>.
  • mpt4 support via ffmpeg – you need to download ffmpeg by yourself and set the path in the Settings dialog. Eventually.
  • Ramplayer, ChaosPlayer, Custom player support.
    To use a custom player, you need to make csPlayPreview global function with 4 arguments [output path], [fps],  [start], [end].
  • Set default button –  you can save default settings per user.
  • Play Preview button
  • Open the preview folder button
  • Presets – you can save/load as many as presets you want.

3dsMax Rocks

This is a full procedural setup with some of the new additions of #3dsMax in recent releases such as Array modifier, Boolean modifier and Subdivide modifier. Especially, the new OpenVDB based boolean opens up so many new possibilities.

I originally planned to release a sample pack for Boolean modifier. But, somehow this video has gotten so much response. I decide to release this scene file first.

Download here(3dsMax 2024 file)

 

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

SmartExtrude Toggle

Smart Extrude is awesome. But, I know sometimes you want to be not so smart.
Good news. There is a maxscript property which you can turn on/off “Smart”.

Editable_Poly and Edit_Poly has #enableEnhancedHotkeyExtrude property, and as you expect, it turns Smart Extrude on/off.

For your convenience, I made a simple macroscript. Unzip and drag and drop to a viewport. Since it is a macroscript, you can make button or assign to a hotkey or add to the quad menu and etc.
Download

Because this is a property of Editable Poly and Edit Poly modifier, each Editable Poly/Edit Poly will remember the on.off status.

If you want to turn off all the time, you can use DefaultParamInterface or CustomDefaultParamManager or just run the following code to set off by default.

DefaultParamInterface.SetDefaultParamValue Editable_Poly "enableEnhancedHotkeyExtrude" false persistent:true
DefaultParamInterface.SetDefaultParamValue Edit_Poly "enableEnhancedHotkeyExtrude" false persistent:true

 

 

DCM mini tutorial #2 – Transform Element

Nowadays “proceduralism” is a very hot trend. Yet many 3dsMax users don’t realize that 3dsMax has had a wide range of procedural features for decades. One of the not-so-well-known procedural features is Data Channel modifier which was introduced in 2017!.

A few days ago. I saw a question about how to make this animation on the tyFlow Facebook group. It was a perfect example of what DCM can easily do with a simple setup. Now with Array modifier, it took 5 min for me to put it together.

1. Let’s start with a box. I guess I don’t need to explain more. 🙂

2. Then, 15×15 Grid Array.

3. Then, Wave modifier. I rotated the gizmo 45 drgree.

4. Then, I applied Vol.Select. Rotate the Gizmo 45 degree again and moved out of mesh.

5. Then, animate the gizmo to select all vertex on the verts. This is frame 36.

Frame 72.

As you can expect, Ill drive the scale animation of each element with animated soft selection using Data Channel modifier. Apply Data Channel modifier.

6. Apply Data Channel modifier.

7. Click “Add Operator” button.

8. Add “Transform Elements” and “Vertex Output”

9. Transform Element modifer allow you to transform(move, rotate, scale) each element using a selected channel. For this setup, we will use soft selection channel as a driver. Set “Input Channel” as Soft Selection.

10. Set Transfrom as “Scale %(Uniform)”. Leave everything as is. It should look like the following image.

This setup means, DCM will scale each element from 0 to 100% using soft selection value 0-1. So, if the average of soft selection value of an element is 0. The element will be scale to 0. If the average is 0.5, it will be half size(50&), of the average is 1.0, it will be full size(100&).

11. Select “Vertex Output” and set Position/Replace. The Transform Element generates transformed vertex position data for each vertex and store in a vertex channel and pass down. We need to replace vertex position channel with the new vector channel to see the animation. “Vertex Output” operator is doing that,

12. If you want to make it more interesting, you can add one more Transform Elements for rotation. Make sure to right click the second Transform Element and change to “Replace” since you are adding a new separate channel. If you choose “Add”, the value will be added to the vector channel coming from the above “Transform Element”.

13. Set “Transform” to “Rotation” and set all “Max” value to 360. So, you can do a complete turn.

That’s it! So easy right?

There are a lot more you can do DCM. If you want to learn more about DCM. I collected some tutorials here.
https://3dsmaxtutorial.com/category/modeling/datachannelmodifier

And.. here is the scene file.

Download

 

 

 

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 🙂