I was looking for a step-by-step tutorial on how to export materials from Substance Painter to V-Ray Next. I couldn’t find one so I did some digging on the topic and decided to make one. This works for standard V-Ray Next and V-Ray GPU Next.
Although the concept of dealing with PBR maps is generally easy to understand, different implementations of physically based shaders makes this difficult. VRayMtl node in slate editor in 3ds Max for example, has several inputs, and it is less than obvious how to plugin exported maps to it. So, let get our hands dirty!
Please note that I am using the latest Substance Painter as of writing which is 2020.1.0 (6.1.0). This version of Substance Painter has several key improvements in the export window.
Here is a lovely Cessna which I textured in Substance Painter. Notice I have several UDIM tiles in the Texture Set List, that are named 1001, 1002 and so on. The UDIM tiles allow several texture tiles to be allocated to a single material, making managing larger materials easy.
In the export window I can see the texture sets, in this case our UDIMs. In the Settings tab we have several output templates. Substance Painter has Vray Next (Metallic Roughness) template which we are going to use.
I really recommend familiarize yourself with the Output Templates tab. To modify existing presets, I recommend to duplicate them by right clicking, thus creating a custom ones and leaving the originals intact. I often use additional BlendingMask channels that I added to my own template. You can create gray or color slots from the buttons on upper right corner, and then drag and drop input maps to them.
Notice also the syntax, $mesh and $textureSet. Mesh means the mesh name that the original imported 3D data had, and $textureSet is, well a texture set which in our case is the UDIM number.
After you are done making your tweaks here, click Export in the Settings tab and open 3ds Max and Slate Editor. It can be found under Rendering menu and under Material Editor section.
Here I have the model and VRayMTL open with the lovely V-Ray IPR render. It looks very much the same as what I saw in Substance Painter.
In order to make our material from scratch, lets find VRayMtl node from the 3ds Max Material/Map Browser. It can be found in under V-Ray section. Simply drag and drop it to the Slate Editor.
Here is the settings that we need to make in order to make V-Ray understand the metal-roughness workflow we have used.
First let’s set the Reflect color white, and make sure Fresnel reflections is turned on. Then, under BRDF section switch the radio button to Use roughness instead of glossiness. What this does is it simply inverts the glossiness map, as roughness is inverted glossiness. Hold on, I will explain how to plugin the map shortly.
Let’s add a VRayHDRI loader from the Maps section under V-Ray.
Find the folder where you exported the maps and choose a Basecolor map. If you only use one textureset, you can skip the next sentence. If you use UDIMs, then simply use <UDIM> tag where the number 1001. This will automatically load all the maps.
It is important to se the Color space of the Basecolor map to sRGB as this typically has gamma in it. Now, please plug this map to the Diffuse in VrayMTL.
For normal map, it is same task, but with normal map and for all maps from hereon, instead of sRGB, please use “None” as a Color space instead of the inverse gamma which is default.
Now, for the real meat of this tutorial; the trick.
You can see there is “Roughness” in the VRayMtl but we are not plugging our Roughness to it. Instead we are plugging it to the Refl. gloss. Roughness appears to be V-Ray’s diffuse roughness which isn’t same as PBR Roughness.
Because we earlier swapped the radio button to use Roughness workflow instead of Glossiness, V-Ray will treat this Refl.gloss input as a proper roughness input.
Oddly enough, now the Roughness map does appear to be plugged in “Roughness” slot in the Maps section of the VrayMtl node. Confusing don’t you say? However this is the correct way.
Then, go ahead and plugin the Metalness map, again not forgetting to switch it’s Color space to “none”.
For the last step, do make sure Enable Gamma/LUT Correction is switched in the Preference Settings of 3ds Max. PBR workflow requires this to to work properly.
Here is a final render of the Cessna with some lovely HDRI in the background which I created.
I hope you found this tutorial useful. Please feel free to share this tutorial in social media. Please also check out my other tutorials.
- You might wonder why I have used VRayHDRI loader instead of the ordinary Bitmap. When dealing with UDIMs the Multi Tile Map doesn’t work well with more than 10 UDIMs, and also I find dialing in the correct Color space settings easier with VRayHDRI. With simple models Bitmap should work fine as well, just make sure to use Linear gamma for all maps except the Basecolor map.
- Comparing to the old Spec gloss workflow with V-Ray including the usage of IOR maps to make metal reflect correctly, the metal-roughness is in my opinion superior way. It also has less maps, which might amount to less texture overhead.
Recently I created this lake ice substance in Substance Designer. I have been doing a lot of these kinds of icy/snow surfaces recently. I miss Finland..
Material Blend node and especially Material Height Blend are very powerful tools for blending several materials.
For example in the lake ice material I was able to re-use my existing snow material. I didn’t have to go through the trouble of creating new snow from scratch, I just blend this with the lake surface material using a mask.
By hitting 3 in the keyboard we can enter the “green noodle mode” which allows us to connect material nodes with one line, no need to plug each channel individually. These can be masked, blended, manipulated transformed tiled and so forth. We can even use a great atlasmaker.sbs to create material atlases.
If you are Substance Designer artist and have not yet tried blending whole materials, I really recommend to give it a try. It is very powerful way to create new materials using existing graphs.
Check out my Youtube video about using Material Blend node.
I have created collection of seven different wood substances that I use on regular basis in my projects, both in Substance Painter and Unreal Engine. These are versatile materials that you can use in your projects or build upon. All of the substances come in .sbs and .sbsar formats and are all completely procedural.
The collection includes following:
- Medieval Wood
- Aged Wood Planks
- Dark Fine Wood
- Worn Wood Floor
- White Painted Wood
- Wood Floor Substance
- Rough Cheap Wood
I have carefully crafted these and updated the materials over the years to take advantage of new nodes in Substance Designer.
I have looked over several real wood samples and felt and touched them to try to analyze their properties.
To create material from from scratch in Substance Designer can offer more accurate and clean result than a photo scan or even worse a bitmap image conversion.
Substance Designer offers so flexible workflow with materials that can be adjusted easily after the creation, and parts of the graph can also be used in other projects. Having a solid substance source library is very handy indeed.
All of the substances are also tested in Substance Painter to work accurately and flawlessly.
The popular wood floor substance is also part of the collection.
Substances are also being used in VFX and CG film industry, not only in games. Blade Runner 2049 featured Oscar winning texture pipeline that is based on Substance is something to look at.
I have used some of the flood materials in commercial architecture renders as well.
Substance offers great flexibility over traditional texture workflow.
I created this fully procedural Seaside Rocks Substance. (The source file (.sbs) is now available in Gumroad)
It was quite fun to explore different techniques to create the basic rock shapes and then use tile generator and various techniques to tile them and blend them together.
I was then able to use the same rock I created to cut interesting shapes on top of the rocks to look like they are weathered.
I am quite happy how this turned out except the cracks which need some more work. I am still trying to figure out the most efficient workflow on making those things.
Adding water was really fun and I really like how it added sparkle and additional detail to the material.
In Substance Designer it’s easy to implement more detail to this such as leaves, small debris from sea and really go to town with micro detail. I also think about improving the graph by creating more rock variation, it’s possible to derive them from same base and just change them in graph. Being able to reuse nodes is so nice.
By the way, does anyone know how to split link? I know how to add those split points to make lines flow cleaner but it would be so nice if we could just draw a new line from those split points, so there would be one main line. Making y-like split into a link would be so good for organization sake.
Substance Designer iRay makes substances like these look really, really good. It’s quite easy to forget that actually what we are looking is actually a height map. Even when viewing from perspective, rocks and things like that look almost like they are real rocks with undercuts and bottom, especially when rendered with shadows. Then in game it looks just quite perfect and if real 3D objects are placed on it, the illusion is perfect.
I will make Substance with fully tweakable parameters soon. Also Youtube breakdown of the material is coming soon.
If you want to take a look at the substance I created, grab it from Gumroad now.
Also I recommend these Youtube series by Allegorithmic.