One of the longest outstanding wishes from end users has been a node based Material Editor inside 3ds Max. With the latest release for 3ds Max the people from Autodesk fulfilled this request! You now have basically two versions of the Material Editor on board, the Compact Material Editor, which is the old version and the new Node based Material Editor which is called Slate. If you look at it from a broader perspective Slate introduces the real first integrated node based way of working inside 3ds Max.
The basis of Slate is a plug-in which has been around for a while called Node Joe. Autodesk made a smart move by integrating this one in full, plus signing the people who developed Node Joe it to a multi-year development agreement. Autodesk has not just integrated this plug-in but has spent an additional year developing new features and enhancing the existing integration before releasing it with 3ds Max. One funny thing is that some of the old Node Joe short cuts are still working, but are not documented in the Help manual. For instance renaming your nodes is officially done by using your RMB menu on the node itself and selecting the Rename option, but try pressing F2 (function key) on the keyboard, which gives you the ability to immediately alter the name of your node.
The basis of Slate is a plug-in which has been around for a while called Node Joe. Autodesk made a smart move by integrating this one in full, plus signing the people who developed Node Joe it to a multi-year development agreement. Autodesk has not just integrated this plug-in but has spent an additional year developing new features and enhancing the existing integration before The addition of Slate is not the only thing that happened with materials inside this new release of 3ds Max. Not only were over 1,200 new preset materials added as part of the new Autodesk Material Library, but also a number of new MetaSL shaders have been added like color balance, compositing, conversion, transform, math color, texture shaders and more, plus a more logic shader/map/materials categorization, also 3D maps, like noise and cellular can now finally be previewed in a correct manor inside the viewports as well.
The addition of Slate is not the only thing that happened with materials inside this new release of 3ds Max. Not only were over 1,200 new preset materials added as part of the new Autodesk Material Library, but also a number of new MetaSL shaders have been added like color balance, compositing, conversion, transform, math color, texture shaders and more, plus a more logic shader/map/materials categorization, also 3D maps, like noise and cellular can now finally be previewed in a correct manor inside the viewports as well.
A lot of work went into the MetaSL front, which means that there is already a lot of interaction possible with the other main Autodesk applications like Maya and Softimage. The new Quicksilver GPU hardware renderer is totally based on this MetaSL stuff, but I will explain more this at he end of this article.
I will not jump into how you should use Slate as I assume you are already somewhat familiar with this new Material Editor, I will simply point out some useful features and give a few tips and tricks (like the F2 key mentioned above), some of which you might know already and some which I hope are new to you.
A new tool also brings a new User Interface, which is something which most users hate. Even if you keep on using the old Compact Material Editor you will get the new UI for the Material/Map Browser. Although you might have your own thoughts about this new one at first, please consider that there where some major limitations limitations with the previous version, like having multiple materials libraries open at the same time, which simply couldn’t be done due to technical limitations, so show some mercy to the Autodesk Developers on this one as it had to be done to be better prepared for the future.
One of the biggest complaints I have heard from end users is that they have trouble getting adjusted to this new Material/Map Browser. True, the new Material/Map Browser is different and in some cases needs more clicks to achieve the same result as in the old days. Good news however is that there is a simple trick to make the old one active again.
To make this happen, just edit the following file in notepad: SME. ini, which you will find in your user directory (on my machine using Max Design): C:UsersUserNameAppDataLocal Autodesk3dsMaxDesign2011 – 64bitenuplugcfg and look for this line of text: UseOldMtlBrowser=0. Change the 0 into 1 and now launch 3ds Max again. Next time you open the material/map Browser you get the old one back again. You can even open it next to the Slate UI!
Fig. 1: Old and new material/map browser side by side opened.
Just open the Rendering Menu and use the Material/Map Browser option. Now the Old Material/Map Browser will open. When you now launch Slate the Old Material/Map Browser will stay open and you can use it without any problems. (See Fig. 1) Of course doing this is not officially supported, so make sure you make a backup of the old SME.ini file and modify this at your own risk! I actually advise you not to use the old material/map browser anymore, but try to get used to this new UI, but if you refuse to do so you still can.
The new Material/Map browser has a number of very positive things about it, which simply are not possible if you keep on using the old version. I personally like a number of things about it. One of this being the context sensitive search option. (See Fig. 2) For instance by typing just a few letters you are looking for a complete list of the available maps and materials corresponding to these letters in an instant.
Fig. 2: Context sensitive search option in action
The great thing about this option is that it gives you both, so materials and maps, which has not been possible before.
Another thing which I find very useful is to have the ability to have multiple material libraries open in the same session. (See Fig. 3)
Fig. 3: Multiple material libraries open at the same time
The RMB menu allows you to open the material libraries, which is only available when you click on the down arrow from the context sensitive menu.
With the new Material/Map Browser thumbnails are actually rendered. Turning off the global rendering option in the lower left corner of the Slate UI, can save you a lot of time. (See Fig. 4)
Fig. 4: Turning off global rendering can save a lot of time
That will stop the rendering of thumbnails inside the Material/ Map Browser as well as in Slate Views and Preview windows. Please note that this option is only available when you use Slate, not inside the compact Material Editor.
Alternatively you could also set all the “Display Material Library as” options to Text only.
If you want these settings to be saved make sure you use the RMB menu (same menu as used for adding material libraries) Material Browser Options > Additional Options > Save Layout As … and replace the existing MtlBrowser.mpl in your Defaults folder in your user settings folder. Please note that whenever 3ds Max is closed it saves the current settings, so you may want to set that file to read-only to prevent it from changing on closing 3ds Max.
So now moving on to the actual node based material creation. The real power of Slate becomes very evident when you start building your own complex shaders/materials.
Fig. 5: Comparing Compact and Slate way of displaying shader trees
As you can see in Fig. 5 a more complex material is still very clear, especially if you compare it with the old way of displaying shader trees.
The new Slate way gives you a much better organized overview and understanding of how the shader tree is made up and how all components are connected to each other.
Something totally new with the introduction of Slate are the Controllers, which come in loads of flavours. In the sample material I used a Bezier Float Controller to control, or even animate, the value of the noise size in four different noise maps. (See Fig. 6).
Fig. 6: Bezier float controller controlling Noise size inside 4 different Noise maps.
The fact that controllers are now available to be used inside materials is very nice and gives you a lot of additional functionality; you could even animate your color based on an audio clip if you really wanted to! I also used a bitmap which controls the color 1 slot of three of the Noise maps. Wiring the same shader to different shaders (like in this sample) is for sure a big time saver plus Slate gives you a much better overview of what you are connecting to what than the old way of working.
I simply love the fact that you have multiple ways to put your building blocks together inside the views of Slate. You can either drag and drop the individual shaders you need from the Material/ Map browser and start connecting them by wiring the in- and out sockets. (See Fig. 7)
Fig. 7: Drag and drop shaders into the Slate view
But to gain some speed you can also just drop a shader directly from the Material/map browser on the in- or out socket and it is connected immediately, saving you the wiring step. Also the fact that you can pull from an in- or out socket and get the shaders in a popup menu is pretty useful from my point of view. (See Fig. 8 )
Fig. 8: Sample of pulling from the in socket and directly selecting shaders
And please don’t forget you can also just right click inside an empty area of the view you are working in and again you get the full list of shaders plus the option to drag and drop materials from the loaded material libraries. (See Fig. 9)
Fig. 9: Pop up menu after using RMB in empty view area
Another simple but very nice option I like a lot is hidden inside the Option menu of the main menu bar under Preferences. Down there you have another possibility which is completely new to 3ds Max, setting the number of materials used inside a mulit/sub material. (See Fig. 10)
Fig. 10: Setting the number of Sub Material Slots.
Finally you can now tell your Material Editor that you don’t need to 10 default ones, you can just type in your preferred number or even make a multi/sub material appear completely empty. Another nice thing inside this menu is that you can launch Photoshop when you want to make changes to a bitmap you are using, directly from the RMB menu inside the bitmap node of your material. This will launch Photoshop and replace the altered bitmap without ever leaving 3ds Max.
To finalize some of the things I like best, let me spend some words on MetaSL as promised. MetaSL is a renderer independent shader language, which means you can build your shader, export it to MetaSL directly or indirectly (through a conversion to another language) and render it with potentially every render engine out there. The new Quicksilver renderer is totally based on this MetaSL language. Of course Maya and Softimage can take these MetaSL materials you created inside 3ds Max and render them out directly as they all use mental ray, which is totally MetaSL compatible.
So how does this basically work inside 3ds Max? (See Fig. 11)
Fig. 11: The whole MetaSL workflow inside 3ds Max.
Fig. 12: Sample of a XMSL file
Inside Slate you put together your shader tree but at the end you put in the MetaSL material called “Map to Material Conversion” I used a very basic thing which is just a Dent map as my shader tree, which I connected to the input of the MetaSL material. If I now assign this material to my object inside the scene and would render this out with Quicksilver, this would give nearly the same result as what we are seeing in the viewport, as they both are using the GPU to display the same MetaSL code. What I could also do is export my MetaSL material into a XMSL file, through the Material menu in Slate using the “Export as MetaSL file..” option. This would generate a file for me which basically looks like this if you open it with Notepad (see Fig. 12)
Another option to do much more complex shader trees is by using the latest Mental Mill Standard Edition 1.1. public beta 2 or later, which can be downloaded from www.mentalimages.com. Mental Mill is not only an application to build and debug complex shaders, but also the technology behind the MetaSL language, so the compiler which changes it into other languages than MetaSL for use with other render engines or game engines, which uses languages like HLSL or CgFx. Inside Mental Mill you can create and debug any complex shader tree and export it directly to 3ds Max and reuse it by plugging the exported shader tree, which pops up inside Slate in the MetaSL maps, directly into the MetaSL material I used in my example. Again the result of the MetaSL material will be pretty much the same inside the viewport as well as in the Quicksilver render engine. Of course if you would render with mental ray you get a 100% accurate rendering, but viewport and Quicksilver give you already a very good impression of the final rendered result. Just imagine what this technology can do for you in the near future.
So to conclude, Slate might be a bit different and for sure it takes some time to get used to this new workflow, but I urge you to start using it, as it opens up a whole new set of options and capabilities you never had before. Please don’t worry about some workflow issues which you might experience now, I’m pretty confident Autodesk will tackle these within a short period of time. Take note of all the other stuff that has been going on inside the material field, apart from Slate, like the controllers and the whole MetaSL workflow, as they all together will lead us into an interesting future to say the least.
Joep van der Steen, a formally trained civil engineer. He has worked in computer animation and visualization for the past 17 years, devoting recent years to slaes and training for 3ds Max within the Benelux countries. Joep hosts a Dutch internet support portal at www.3dstudio. nl, writes books on, like rendering with mental ray & 3 ds Max, and is the driving force behind the EUE (www.enduserevent.com .