 Howdy guys, IndiePixel here, and I wanted to actually roll through another VEX or intro to VEX video as we've been doing so far. So what I want to cover in this particular lecture or video is how to start to use the noises, all right? So VEX actually comes with a bunch of noises, just like in VOPs, okay? So what I want to do is I want to cover how to use this because we can actually mimic the same functionality like in VOPs or like with the mountain noise or anything like that. We can actually mimic the same sort of functionality to get like a purlin noise, and there's actually quite a few of these individual noises available. If we were to just put the cursor right there and then hit F1 on the keyboard, it'll bring up the noise and there'll be a bunch of other associated noises with this particular noise. So if we come all the way down to the bottom here, you can see we actually have just about all the noises that are in VOPs, all right? So this means we can actually start to utilize these in VEX. So it kind of builds upon, you know, the video where we were talking about basic randomization with p-scale and like rotation and stuff like that. Let's start to, you know, utilize some noises, all right? So let's go walk through how to do this. So I'm going to jump back up and out and create a new geometry node, and I'm just going to call this noise video like so. And what I want to do, I'm going to hide all the other objects, turn on my grid, just so I know where I'm at in 3D space. And what I want to do is drop down a grid and on this grid, I want to increase the resolution a little bit. So what I'm going to do is just paste relative reference. Just add a few more points, nothing crazy or anything like that, okay? And I'm going to drop down a wrangle node. All right, and you'll start to see why this is super useful really quick. So what I'm going to do is call this basic noise right here and let's actually kind of walk through this step-by-step, okay? So the first step in learning this is just to utilize the function in and of itself, all right? So if we go to go to the help here for the noise function, this is probably the most basic way to do it. We can feed it a position. All right, we can give it a pause. And so basically what I want to do is just feed in the point position. So let's say we type out something like float and we'll call this our y noise like so, is equal to noise. That's the function that we're going to use. And I just feed in at P right off the bat. All right, so nothing's going to happen because you know, we're generating the noise, but what we can do is we can say that the current position, it's y position, so dot y plus equals our y noise like so. And you'll notice right off the bat, we start to get a noise and this is cool. But currently it's based in world space, right? So the size of the grid really determines let's actually do this right here. So let's copy this parameter and paste that there and let's just start to move this. So you can see that the noise is really based off of the world space size of the grid. So what I want to do is I want to actually have control over that just like I do with any of the other noises that are in Vops, or if I were to drop down something like the mountain node, right? Let's do this really quick. So if I were to drop this down, you can see that, you know, we're getting noise, but we have these other controls to allow us to modify how the noise looks for our current size of the object. So it's not really dependent on the size of the object anymore. We're able to change it and that's really kind of the fundamental concept that I want to get through in this video is how do we do that with Vex and how do we do that with this basic noise function? Alright, so this is a great practice for the fundamentals of Vex. So let's go and actually create a couple of parameters here. So I'm going to just start off with one here. So I'm going to do actually make some more space. So I'm going to do a float scale is equal to a CHF scale like so. All right, and then I'm going to make sure I create that parameter there, and I'm going to set it to something like two. Okay, so what we can do is we can come down now and use a scale parameter or scale local variable, all right, and multiply our at P by that. All right, and you can see that what's happening is we're getting a more dense noise. Just with that, we're just multiplying it. All right, let's space it out to make it a little more readable for everybody here. So let's say I actually pull this all the way down. You can see that now. I'm changing that scale just like I was doing with that mountain note with the element size. All right. We're doing the same exact thing. Let's turn off the grid. We don't really need that anymore. We're doing the same exact thing. All right, but this is faster because these wrangle nodes are multi-threaded. So especially if you start using the Houdini engine. Or even if you're doing large sims, this is very, very important, trying to keep your graphs really efficient and optimized. So, you know, these wrangle nodes are going to be a lot faster than this mountain node right here. All right, so what I want to do is now I want to create an offset. All right, so you'll notice here in this mountain node here, we actually have this offset so I can actually move the noise in X and Z and in Y. Okay, so it's how do we do that inside of X now? So I'm going to create another actually vector in this case because I want to mimic that same action that we got inside of that mountain node. So I'm going to call this offset and we're going to create a CHV. So a vector channel. Okay, we're going to call that offset semicolon. And what we want to do is we want to add it on because think about this. If we have a position and we add a vector on, we're just moving that position in space. All right, we're not moving the actual point, but we're moving the noise left and right, up and down, forward and back. All right, so left and right is X, up and down is Y, and forward and back is Z inside of Houdini. Okay, so what we want to do is we want to take this scale value here and then just add on our new vector, this offset vector that we created. All right, so let's go and actually produce the parameter for that. And now if I move the X, you can see, let me actually move it over to the proper node there. And you can see now I'm actually moving the noise in the X direction and moving the noise in the Z direction and then moving the noise in the Y direction. So just like that, just with four lines of code, we're basically mimicking so far the functionality of this mountain node right here. All right, obviously, you know, I currently have it set to Perlin, so it's going to react the very same way, but remember, and I do want to make more videos about this, we actually have access to all the noise functions inside of Vex. And there's a ton of these different types of noise and they all take, you know, different parameters. But what I wanted to show is just the basics, right? We just need to get through the basics first before we, you know, get into the more complex stuff. So there we go. We now have offset. So the last thing that I really want to do is mimic the height. All right, so if we look at the mountain node and we change this height value here, you can see that we're intensifying the noise. And so all we really need to do in here is create another float. I'm going to call this amp. And we're going to say we're going to create a new channel float or float channel. Okay, and I'm going to call this the amplitude. And all we need to do is just multiply the final result of this noise, right? By the amplitudes or that amp local variable. So I'm going to multiply it by that. And that makes a lot of sense because if I just increase the value, right? Because this noise value, this noise function is going to return a number between zero and one for us. If I just increase it, it's just going to increase that Y value, just intensifying it really. All right, so let's go and create that parameter here. All right, and then let's just set it to something like two. And you can see now that we're actually intensifying the overall results. All right, so that is exactly what we're trying to do here. And the cool thing about this is what we can do now that we have that amplitude value in place. All right, so let's actually put in some comments here. We're going to say create parameters like so. And then we are going to say process noise. All right, and then finally down here, what we're going to do is we're going to say colorize. So let's just initialize CD to zero. All right, so we're black. Basically every point has a value of 0, 0, 0 for RGB. Okay, and then I want to say at CD.R is equal to our Y noise. All right, and that's great. You know, that looks pretty good, but you can tell the reds are getting really red. This isn't actually normalized between zero and one. I think we're getting values up to 1.9, actually, because we're just intensifying the zero to one value. Remember, this function just returns zero to one. And then we're multiplying it by 1.94. So if we have a value of one in our color in our noise function right here, we're actually going to get a value of 1.9, which means that we can then go and fit this now. All right, so we're going to fit Y noise between zero and amp. That's our max value currently. And we're going to fit that between zero and one. And you can see that that actually normalizes our color values. All right, so what we've just done is we've recreated basically the mountain node here with Perlin just turned on. Obviously, there's a ton of other parameters for this, but if all you need are some basic noises, just like in Vox, right? And in this case, it's a basic Perlin, okay? So that's all you need then really just, you know, let's put it into a Vex wrangle node. And these are all that this is all that you have to do to basically recreate that functionality. All right, so we have our offset, we have our scale. We have, you know, all the parameters that we could ever want. All right, pretty cool stuff. So that's what I wanted to show. Thanks so much for all you guys' support. I appreciate it. And I will talk to you guys here shortly. Thanks so much.