Create a Procedural Snow Shader in Arnold for Maya | Lucas Ridley | Skillshare

Playback Speed

  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Create a Procedural Snow Shader in Arnold for Maya

teacher avatar Lucas Ridley, Professional Animator

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Snow Shader Intro


    • 2.

      Let's Snow It Up!


  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.





About This Class

In this short course we will quickly create a shader that can be applied to any geometry and make it look like snow!

You will want to have some experience in Maya as this is an intermediate class. I recommend checking out any of my other Maya beginners courses to get up to speed.

Please share your creations in the class project! Thanks for watching!

Meet Your Teacher

Teacher Profile Image

Lucas Ridley

Professional Animator

Level: Intermediate

Class Ratings

Expectations Met?
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.


1. Snow Shader Intro: Hi, my name is Lucas Ridely. I'm with Digital Creators School. In this little mini-course, we're going to make a procedurally built snow shader like you see here. By the end of it, you'll be able to make this by yourself. When I say procedural, it means we're not going to paint any textures. This is all happening with nodes built into Maya, no plug-ins or anything. We're going to use the Arnold Renderer. You can see just by the geometry here, we're going to use these basic shapes and we're going to turn them into these snow shapes. This is a more intermediate kind of a class, so you'll want to have some experience in Maya, which I teach other classes for beginners on Maya on Skillshare, that you can find on my profile or just by searching Maya for beginners on Skillshare, and my series of courses should pop up. I have about four other courses right now and I keep adding to them about every month. There will just be more and more content. It is the industry leading software for our 3D animation modeling, and movie making, and video game making, so it's definitely the program you want to learn if you want to get into that industry. But if you're watching this, you're probably a more intermediate user. Maybe you've already taken my classes and just want to kind of know how to make something unique like this. Let's jump right in. I look forward to seeing you in class and thanks for watching. 2. Let's Snow It Up!: Let's jump right in and start a new scene, and go to file new scene. I'm not going to save this and I'm going set my project really quick just as a good habit and you can set it to whatever folder you want and say create default workspace. Now what I'm going do is create a sphere and this is going to be our little model we're going to work with, pretty simple and everything we're going to be doing is going to be in the hyper shade, which is this little button up here on the top right, and we get this new window called the hyper shade and so what we're going to do is build our shaders in this hyper shade but first let's assign it here by right-clicking going down to assign new material. We have the Arnold options here, if you don't see this, you can go to windows settings and preferences plug in manager and down here it should say mtoa bundle and even load that there. Let's go down to the Arnold Shader and choose the aiStandardSurface. This is what you're going to use 95 percent of the time, maybe 99 percent of the time and so we have a pretty basic setup. For us to preview this in a render, we need some lights in the scene first, so I'm just going to make two directional lights and go over to the rendering tab here and make one here and I'm just going to move it to the side so we can see it. Moving it doesn't actually affect its direction because a direction all that matters is the rotation. I'm just hitting E on the keyboard to get pull up rotation and I'm going to duplicate this and go in the opposite direction a little bit so you can see the direction they're facing and I'm probably going to move these around later, but just to get them in the ballpark of where I want them to be. Now if we go to Arnold Open, Arnold RenderView and to play over here, we can see we do indeed have this, so it's set set up properly, we can see our lights, it's well lit for us right now that's all that matters. We'll deal with more lighting later. Now that we have our shader assigned, let's select the sphere in the hyper shade. The quickest way to map the shader is to click this little button right here. That clears everything out and it maps our shader. I'm going try to zoom in here a little bit so it's easier to see on your screen, and I am going to just close this down. You can leave this up and you can search for nodes that will be searching for in here but just to have more room, I'm going to close that down, so we have a bigger space to work and you can see what I'm doing. This is all material attributes you can find over here as well and see they have all these little radio buttons here that you can plug in and out and you can see there's only one happening here to the group of the shader. This is the actual shader itself and what we need to do is we need to add some displacement, and displacement is a little more of an advanced subject. It's basically just saying, let's apply some textures to this thing that will only see a render time that will affect how it gets rendered out. Basically, black and white values are going to mean should the geometry be pushed out or in and that'll happen at render time. Let's do one and you can see what that means. When I hit type tab here it'll put little search window, and will just say displace and we'll get displacement shader. Then we get, it has its own group here, but we're going to want to use the shader group we already have, so we can just delete this, and now we can map the displacement into the displacement shader of the shader group that we have over here. The next thing we want to do is give it a texture. Let's hit tab again, and we'll just choose a fractal texture and that's going to be the texture we're going to pipe in to the displacement shader. We have the color here and we want to choose the color and go into the vector displacement. Again, just toggle that tangent line down and we have UV place texture node here, we have our texture and so that's going into the displacement shader which is going into the group. All that gets piped into what's displayed here. You can see nothing has changed in the view port before we go to the Open Arnold RenderView and we hit play, we get this crazy blob here. The problem is, there's not enough geometry to describe this texture properly. So if we look at a preview of this texture, we can actually solo it here in the Arnold RenderView by clicking this little button and see there's all this little detail everywhere but if you look at the wire frame of our model here, there's not as many edges as there are texture here in the texture that we've put in. That means we need to increase the geometry, so there's more edges here that can help describe this texture. What we want to do is with the objects selected, go down into the sub-division of the object here in the shape tab. So let's scroll to the bottom under Arnold. If this isn't already opening, you can open Arnold, scroll down to get the sub-division here and then you want to turn the type bonded cat-crank and let's crank this up to something like four. Now, with that being the only change that we've made, let's go from this crazy weird object and hit play again. Now you can see how much more detail we actually have in our model. It's incredibly much more detailed. It's crazy, spastic, it does not look like a little snowball right now, so we need to change that. I'm just going hit stop on this because I will warn you, depending on the version of Maya you're in, I mean 2018.5 and they might have fixed this in 2019. I'm not sure yet but updating displacementShader info while having the Arnold RenderView played button turned on can crash Maya, so I try to stop that whenever I'm making adjustments. The main thing that we can do though, is to turn down the amplitude. Let's just crank down the amplitude and that just means, I'm going to break my rule not to turn this on and we have solo turned on. So you can see the texture that we have selected and I'm just going to dial down the amplitude and you can see, I'm getting lucky here. It's not crashing or anything, but the amplitude, meaning how much is it expanding L, which is not much. What I want is a lower ratio. Ratio basically means how much detail is in this thing and I don't really want that much. I want bigger displacement on this first fractal. We're going to add another one later that's going to deal with the more detailed stuff, so that we can have finer control over the two levels of detail where you have this bigger detail and then we have the smaller detail. With that, Let's unsolo this and see where it's at. Let's look in a lot closer to our snowball than what we had before. In this render preview, you can see there's all these little speckled highlights, and that's the reflection or what is known as the specular. Let's just increase the roughness quite a bit so that it smooths out those reflections because if you think about how snow actually works, it's not highly reflective. It's not like ice or something, so it's actually a really soft, diffuse highlight there and then we'll add the glistening effects later on. We have a pretty good start here. I think there's maybe a little too much details. Let's just go back into the fractal and crank down the ratio. We'll just bring the frequency ratio down to 1.4, as well, you can see that it makes a big difference, that's smooths everything out. The next thing we're going to deal with is adding another texture. Let's hit Tab and we're going to use the mix shader, to add another texture. Again, this comes in with its own group, we don't need that because we already have a group. We're going to pipe this into the vector displacement now and we're going to pipe the color into the first shader here, even though it's a texture, and this has shader it'll still work just fine. Right now it's set to blend, I like to do an add, I don't think there's that big a difference between the two. Now what we should have is something pretty close, I'm just going to close this and open a backup. What I'm going to do is tear this menu off because we might have to end up opening and closing the refresh or rendering, you see how I refresh there. If you notice down here it says a mixed weight of 0.5, so it's taking are fractal, and it's diluting it by a half. If we turn this up to one, it's going to be all the way into shader 2 which is nothing. That's why it's turning back into a perfect sphere. But if we turn this to zero, it will be back to what we had it. But we want to mix two textures together, so let's keep this at 0.5, and then let's bring in another fractal. I'll hit Tab to bring up the quick search here, and I will add another fractal texture, and then let's pipe this into the shader 2, and you can see it's freaking out because we haven't affected any of the attributes yet. Let's just pull this over here, we want to make sure we can see both of them at the same time. I'm kind of run on, it's a risky move right now and I'm letting this actively update while I'm messing with displacement values, so just be wary that. I'm going to bring that amplitude way down, and maybe something like 0.1. Because what I want to do now is much finer detail. For the ratio, let's maybe crank this up just a touch, just to add a little more detail. Now you can see there's a lot finer detail happening, in the clump. If we go to the mix shader and let's say, let's just do all the first one, and then all the second one, you can see they're very different textures. But when we combine them together, we get that big shape change and the smaller texture as well, combined. You can see the silhouette of this changes once we start to introduce that first fractal a little bit. That's a little outside of the scope of this lesson but basically, the top looks all crazy because of the UVs. You can get around that displacement UVs, it's a tricky thing. How I like to get around that is just to play everything towards camera, and wrap UVs in a way that just based on the camera view, everything will look good, and just cheat it basically because UVs can be quite a headache, and at least for this lesson it's not really worth it to go into that hour long lesson. Now that we have the shader looking pretty good, let's start to update the displacement. Let's give it a displacement, and I've turned it to 0.2, and you can just keep increasing that if you want. Scale is pretty similar value to this. These are yellow because that's where our texture is getting piped into, and we have a vector space of tangent. If you change this vector space, it'll change how it's interpreting how to portray those textures on this object. Just like tangent space, the other thing that we'll deal with here in a little bit is probably the bounds. Basically it might artificially limit how much displacement can happen and we might need to increase this from zero. Now that we have the textures in a pretty good spot, let's take a look at the shader itself. I'll click on the shader, and let's go through all of these attributes. White is okay for the color because it is snow. We've turned the roughness way up. But we left incidence of reflection on default. If we click here, we can actually get presets. I'm clicking on this equal sign, the triple equal sign there, and we can go to ice, but snows it would be closer to water than ice, so let's go to water. Basically this is just index of refraction is like a scientific number, that they figured out what my different materials, how they were refract light and you can look up more scientific stuff about that. The big thing we want to deal with now is subsurface scattering. That means as light enters, it will enter the snow or any object whatever object we put it on, it'll enter that object, and the light will bounce around on the inside. That's like if you shine a flashlight up your nose, your nose would turn red, kind of a thing. We want to have light to be able to pass through this object which will soften it up and make it have that transparent quality of snow. Let's just crank down the subsurface color a little bit because we want this to look natural, so we don't want it to be a pure white. Then for radius, scale and radius are similar. It's basically like how far into the object does the lights get to scatter. I'm going to bring this down a little bit, and I'm also going to give this a little bit of color. You can see I've chosen a blue-gray here earlier and you can see these values here. You can also change if you want to use different color methods here you can toggle this little menu down. Now that we have that, the last thing we want to going to do is change the type to random walk. It'll increase our render time little bit, but you can already tell just in that one option, we brightened up from diffusion, which look like clay or something much darker, random walk will brighten this up. It's a lot more accurate of calculation, which means it might take a little bit longer, but that is going to be super helpful. The next thing we're going to do, I'm going to close the hyper shade super quick, and I'm going to close that, and I'm going to pause this. I'm also going to save this super quick because Maya is known to crash, snow shader, so I recommend you save frequently. You can also turn on incremental save, and the preferences of Maya. The next thing I'm going to do is add a light to make this believable because we're trying to go for a realistic quality, so we need realistic environment lights to help us sell this effect. Because right now it's still looking blurry, we need a little better lighting situation. Let's go to Arnold and we'll go to lights and go to sky dome light. Now we can pipe in a texture. At HGRI Haven, there are plenty of free HGRIs. What we're going to do is click this little checkbox, and open this little window. We're going to choose File, and now we have the option to map in a file. I already have one and my project folder. They just recently put up a couple snow HDRIs which is perfect for this because we want to a cool, meaning temperature, color temperature. We want a cool image. So that now we pipe this in, watch this change, I'll save this with this little, let me delete that one. I'm going to save this with this little camera button here. We have before and after of the magical because it's a little bright. But I click the sky dome light back here just by, you can see where I map the image in. I'm going to click that to pull up the attributes and just half this intensity to 0.5. Just in that one, you can see how important lighting is when you're trying to figure out shading and sell a realistic shader. I'm going to let this finish so we can have a better comparison between the before and after. But already you can see we're starting to be able to see a lot more that internal texture of the snow than we were before. Let me just get some I want to see a little more of the silhouette and cool. I'm going to hit stop and then I'm going to hit the camera again. Then you can just toggle between these two. You can tell a huge difference between these two. This one looks like snow and this one doesn't basically. It's a lot of the lighting. That's super helpful for us. The last thing that we want to look at is to go into the, select the object, so we get the shader. Lets go over to the coat. The coat is going to be that just melted snow, it's actually water, this kind of coating the snowball or the snow cube or cylinder wherever we want to put the shader on. Let's crank up the weight of that and then let's leave the roughness here. But we want to have a similar incidence of refraction like we did with water. We'll just choose water and we're going to type in 1.33, and we can hit Play on this and you can see we don't have a Play button because we're still looking at the old capture that we did. Let's hit the little Eyeball button down here. Now we can click the Play button and we should have little sparkly highlights on the snow because what the coat is doing is basically wrapping this whole thing in another layer of specularity for lack of a better word. Now you can already see these little pings of light catching on the texture. The back and forth you might need to do now is to jump back into the hyper shade. This isn't as much as you would like to see. You can increase the amount of the texture of the finer texture. Let's just take a freeze shot there and we can just toggle back and forth. You can see these tiny little highlights here. Really sell that this is snow and that it's maybe starting to melt or something but that it's wet. Just real quick, I'm going to show you, like I mentioned, if you wanted to start tweaking this stuff, I'm not going to spend a ton of time tweaking this because, it can get really time consuming if you really want to art direct this stuff very specifically. But if you remember, fractal 2 was the more detailed one. I can just increase the amplitude and just see where that gets us. I will hit Play and see if that adds a lot more texture, which maybe gives the light more services to ping off of. The other thing you have to think about when you think about reflections is the direction of the light. Because basically a lot of the reflections happen at an angle opposite of where the light is coming in. It's really dependent on the light as well. We can also take these directional lights and start to move them around and see if that gives us the highlights we already want, they're there, we just don't have the light pointed in the right direction. We'll see. The other thing we could do is just point this light from behind and let's crank up. The one that's pointing from behind is hard to see now, let me separate these. The one that's coming from behind, let's crank up the intensity so we can maybe see a little more subsurface scattering happening. We'll just crank that up and then maybe look from the side just a touch. What we should see is a little bit more softness of the light coming in from that angle. Once again, you can see where lighting has a really big effect on selling these realistic shaders. Having HDRI, that's really good and lighting directionally done right. But I mean, really quickly just in 15 minutes or so. Procedurally, we didn't have to paint any of this. This is what's super cool is on the fly we can go back into these fractal textures and adjust their attributes as we need them to be adjusted. Pretty happy with this look. I'm going to let this finish out. I'm pretty happy with this look even if we have this wonky UV thing happening up here that I'm not going to spend too much time resolving. It actually looks like shards of ice or something. Once we have the subsurface scattering and stuff going in through here. Unless I hadn't called this out earlier, I don't know if anyone would really mention that because it does look just like part of the snowball. But, so just to demonstrate how powerful this is, I' m going to pause this, I'm going to save that render and I'm going to make a couple more objects real quick just to show you this can be added to anything and also to demonstrate, we may need to update the bounds of this thing. Let's scale this down so that these objects aren't running into each other. Because if you notice, the displacement map is actually making these objects bigger than they appear. Don't forget, we got to go down here to subdivision on the shape node and turn on Catclark, crank this thing up. It's basically subdividing the existing geometry by five times. If we look at the cube, there's not a ton of geometry currently to divide by five times. What you might wanna do is just go over here to the channel box and increase the subdivisions a couple of times. It actually has a little more room to subdivide. Now with those two objects selected, I'm just going to right click, go down to, let me get this so you can see it on the screen, right click go down to existing material and choose the Standard Surface. Now, when we look at this, we should very quickly see we have all cubes. I did this because I also wanted to show the bounds padding here, which we can adjust on the shader to make sure it happens across all of them. You can see that we have bounds padding here, but keep in mind that we had just the torus selected, so we'd have to go through each one of these objects and every new object we apply the shader to. Let's go over to the displacement shader and drop down the Auto tab and increase the bounds padding to maybe five or something like that. Now you can see these are no longer all cubes, they actually have room to displace. They're not holding their shapes super well so what we could do is actually just decrease the amount that this is getting displaced. We could drop the scale down. We could drop the displacement value down. Other thing we could do is add a scalar value of 0.5 and see if that helps contain this. But I basically have a doughnut snowball now which is pretty cool. I just wanted to demonstrate really quickly, how you could just apply this shader to any object and it will assume that snow like quality. I will see you in the next course. Keep recreating. Thanks for watching.