 Okay, so let's walk through how we go through and create a landscape and all its layers that way we can use them inside of our game engines like Unreal or Unity. All right, and so I'm going to walk through the process of how I went and created this train. Okay, and so here we go. I'm going to go and drop down a geo node or geometry node, and I'm just going to call this landscape video for now. All right, and inside of here what I want to do is I want to drop down a map box node, but I'm actually going to go and just copy the one that I already have because it already has my API key installed in it. So I'm just going to copy that and paste it. I highly recommend that you watch the intro to map box video just so you can see how to get everything all set up so you can import actual train data from, you know, satellite data and the USGS and NASA and all those guys. All right, so what I'm going to do is just stick with the same terrain just so you can see, you know, exactly how I set it all up. If you want to pick a different terrain just hit the little look up button and go and find another spot on the planet. Okay, cool. So how do we start this whole process off here? Basically what I want to do is I want to recolor this. So let me actually hit refresh here for a second. And what it's going to do is it's going to go and recapture it and replace the textures on it and everything. Okay, there we go. So I'm going to turn off the lighting. I went and created a skylight in this particular scene. And what I want to do is I want to get rid of, you know, the satellite image that the map box node puts on top of this. I mean, we'll use it for a little bit of reference, but we want to go and color this and create all the layers for this ourselves because we want to bring all that stuff into unreal or unity. All right, so to get started, what I want to do is drop down an attribute delete node here. All right, and the reason why is because if you actually click on the map box node that has all the landscape data in it, you can see that if you go to the primitive type here, you can see that it's got a material hooked up. And we just want to get rid of it because we don't want to, we want to put our own texture on to this. So I'm going to click on the attribute delete node and go to the primitive attributes and just get rid of the shop. And there we go. So now we have our terrain all set up. Now, one thing that I don't necessarily like about the map box stuff. It's great for your initial past, but because it's taking, you know, all this height and elevation information from top down, it's hitting a lot of the trees. And so, you know, you kind of get this, you get a nice rough shape, but you get this kind of bumpy look to it. It's all soft and a little doughy. So to get rid of that, I just dropped down a distort point noise. So height field distort find noise node. And I just distorted a little bit. And what it does is it just kind of gives it a little bit of extra detail on top of the realistic data. And then you just play around with these values here. So you get something that you like, maybe making a little more intense. Nothing too crazy. I do want to make sure I don't just completely destroy the satellite data. There, that's pretty good. So I'm going to leave it at that. All right. So the first things first, let's start with our first layer here. And that's going to be basically our where where hills are, I want to be able to determine between where really flat areas are, you know, most most likely in this case, especially those areas are created by rivers and sediment. So I really want to get just a really broad stroke. So I'm going to drop down a height field mask by feature node. All right. And this is going to be called our hills. So I'm going to call this hills. And what I want to do is just turn it on so we can see what the default is set to. And I want to adjust this slope so that basically we're getting pretty much all of the mountains in here. Currently, you know, we have a very generalized slope. So to do that, I'm going to remove this little guy right here on the curve. All right. And I'm going to put the max slipping all the way up to 90. And then just pull this down to something like, I don't know, maybe like four or five. Yeah, that's pretty good. So you can see how it masks out, you know, where pretty much all slopes are. And the reason why I'm doing this is because I want to be able to determine where, you know, rivers are going to go and where like hills are going to go. All right. So that's pretty cool. So I'm going to leave that at that. All right. Now what I want to do is I want to subtract out all the stream areas. So all these areas where, you know, there's a natural stream running down the mountains here, all the snow runoff. I want to subtract that out. So I'm going to drop down another mask by feature like so. Okay. And I'm going to turn off mask by slope here. And what I want to do is mask by curvature. Okay. And currently, you don't see anything. So a trick to this, at least that I found is just set this to .5 right off the bat. And then I get rid of one of these little knots there. And then I start playing around with this curve. So you can start to see a little hint of the curvature information coming through in this. All right. So it's doing pretty good there. I really want to just isolate out those little stream areas. So I get this little position here on the curve to a point where I can see that I'm masking out the streams. And then what I do is I start to clamp it. So I just pull these guys really close to each other. And this one we don't actually really even need. All right. And so now we can play around with these values a little bit more until we get something that we like. And I'm just getting a full color. I think I need to invert it. Nope. So put this back to .5 there. Pull this back a little bit more. There we go. That's what I'm looking for. So I really want to just capture these streams here. So just need to pull it back a little bit more. There we go. So it takes a little bit. If you want to speed this up at all, you can come up to the map box node up here. And you can play around with the resolution scale. I have it at .5, which is moving pretty good. You can also drop down a height field resample. Let me type that again. So we can do height field resample. I actually wanted to resample. There it is. Okay. So we can pass it through this resample node. And we can play around with the resolution basically. So I would set it to something a little bit bigger. Or smaller actually. So let's do like .2. So you can see how it gets rid of detail. But you'll be able to mask a lot faster. All right. So anyways, let's get back to our mask by feature here. Where we're masking out all the streams. And let's go and just raise this up a little bit more. So we start to get more of those streams in there. All right. So you've got to find a good spot there. Some of those little guys are okay. And then we can clean it up by using the smooth radius. So if you put up to like .4 or something like that. What it does is it kind of cleans up the lines and gets rid of all the other nonsense. All the really tiny data. It's kind of like pruning it a little bit. There we go. That's pretty good. All right. So what I can do is I can subtract all that masked out area from our hills. All right. So to do that, what I'm going to do is come up to the top of this mask by feature node. And just do a subtract. And there we go. So now we have, you know, the general area of where all the mountains are. All the hills and stuff. Even the small hills. And where all the sediment is going to go. Okay. So to create our first layer, currently we only have our, if we were to hover over this node and hit this little info button, you can see we only have two volumes, our mask and our height. And we definitely need all of those. But what I want to do is create a new layer on this particular height field. And to do that, we use the height field copy layer. So I'm going to drop that down like so. And I'm going to take the mask data. So everything is red. And I'm going to pass it into a new volume. And I want to give it a specific name. So I'm going to call this hills. All right. And once we do that, when we go back to that info tab, you can see we have a third volume here. Cool. All right. So that's how we create our individual layers that we then bring over into unreal and unity. So what I'm going to do is I'm going to collapse these together here. So I hit shift C on the keyboard. And I'm just going to call this hills or hills layer, something like that. And what I want to do now is I want to be able to visualize this even before I go into unity or unreal. All right. And to do that, we need to take advantage of using cops. OK. And cops, if you are familiar with, are the compositing operators inside of Houdini. And to do that, and to utilize those, we need to use a cop to network. All right. So just hit tab and start typing in cop to network. All right. And I also want to go over here and just drop down a little null right here. And I'm going to call this out landscape layers. All right. And that just helps me find it really fast when I'm searching for networks that are outside of a particular network. So to prove this, the reason why I created this node, I'm going to double click the cop network and drop down a SOP import node. OK. And in the SOP import node, what I can do is go and actually fetch all the data. All right. And get all the data that's coming into this null node, which is all of our landscape and all of its layers. So if I were to, again, show you the info here, we have our three volumes, our three layers. All right. We can actually fetch all that in here. And to do that, I'll just do dot dot forward slash. That gets us into this particular context. And then another dot dot forward slash, which gets us completely outside of the cop network node. And then we can select that null node. And when I do that, you could see that we actually have some information here. We can actually start to see our mass that we created. So a couple of things I want to do. I want to set the resolution that's coming in from this particular landscape. OK. And I want to set the planes from the SOP. And the planes are those individual layers that we see here in this info box. OK. So let's go back to our image over here. And you can see that it's gone and automatically gotten the hills layer for us. OK. And we can actually view all this information inside of the composite view. So if you don't see this, just hit this little button right here. And then go find the composite view right here. So inside of this composite view now, what I can do is I can view all my layers in a 2D format. All right. We can actually look at the texture. You can think of this as like the texture, that layer information. All right. So there you can see all of our little streams. And the white is where all the hills are. And the black is where this major river is. Cool. So what I want to do is I want to utilize this information. So let's do a really quick test here. Let me show you guys how to work with cops in the landscapes. So I'm going to go and create a color node. All right. And I'm going to call this the hills color. Like so. And I want to make this, or I need to make this color node have the same image size. So what I'm going to do is hit the image tab here. Turn on the override size. And I'm going to go to the SOP import node and get that size. I'm going to right click on the override size parameter there and say copy parameter. And then I'm going to come over here and say paste relative reference. That way I know that all my color nodes are the same size as my SOP import or my terrain. All right. And this is necessary for cops in this case to make sure that we cover the entire landscape. All right. So this helps color. I want to make more of like a kind of a dirt. So let's just make this kind of like a dirt color here. Yeah, that's pretty good. All right. I'm just using the defaults will change it all later. All right. And what I'm going to do is make a copy of this. So I'm going to hold down the alt key left click and drag the hills color node. And this is going to just be called our base color. All right. And it's nice to utilize that alt click and drag to copy because now we don't have to set up our size again. All right, which can be kind of a pain in the butt. So let me go and create a color for this. So I'm going to just make a really bright color. This is going to be more like a sediment color type thing. There we go. Okay. So how do we get these two colors onto our mask here? So what we need to do is we need to create a composite node and I'm going to drop down that composite node like that. And you can see that it requires two inputs and takes in a mask. So let's set the base color to our background and our hills color to our foreground. And then let's wire in the output from the stop import into our mask. And you can see now if we turn on the blue display flag here for the composite node, we have our start of our textures for our landscape. And this will help us visualize all this stuff inside of Houdini. All right. Cool. All right. This works very similar to things like Photoshop and Substance Designer. It really just comes down to understanding how the nodes work. So that's why I really wanted to make this set of videos to show you guys how to work with this in more of a production setting, how this can be helpful for your landscape workflows. So I'm just going to collapse all these guys by hitting this little arrow here. And we should probably name this. So let's call this the base layer right here. Cool. What I want to do now is I want to drop down a null node in here. Even the cop network context has a null node. Just about all the context has null nodes. And I want to give it a name. This way I can access it because I want to put this texture onto the landscape. So I'm going to call this out landscape texture like that and just turn on the blue display flag for that. OK. So with that done, I'm going to go back to the scene view where we can see our landscape or our height field. I'm going to go back up one level. So I'm outside of the cop network now. And I want to utilize the information from this cop network. OK. And I want to put it onto landscape. But I want to just see my mask that I have here. OK. I want to see how everything is coming together. So to do that, I'm going to get a height field, a quickshade node. OK. And I want to take the result from this attribute delete. So let's actually name this. We're going to call this remove texture or default texture. How about that? Cool. And I want to take the result from this attribute delete and I want to put it into that quickshade like so. And actually I want to get the result from that height field distort. Cool. All right. So now I want to go and I want to get the texture that's coming out of this cop network, the one that we're building inside of here. And I want to use it as the texture right here. So inside of the quickshade node, we have this big base texture and it's expecting a map name. So in a standard scenario, you would go and find some sort of texture that exists on disk. In this case, I want to use the results that's coming out of this cop network. And to do that, we need to use the op colon method and then two backticks. And it needs to have the full path to the null node inside of this particular cop network right here. All right. So to do that, it's really easy. We can just inside of those two backticks, we can say op full path to parentheses, to quotation marks. And then we need to point to the cop network node first. And then we need to get that null node. And when we do that, we have our cop network, our texture that we're building inside of our cop network on top of our landscape. Pretty cool. So this basically allows us to visualize how all the layers are coming together. So when we start building more and more layers, I don't want to constantly have to export, import into my game engine, and then check it out inside of my game engine only to find out that I need to adjust it. I want to be able to adjust it in here. So that when I do export, I'm pretty confident that everything's going to be OK inside of my game engine. Cool. So what we're going to do, I'm going to close out the lecture here. And in the next video, what we're going to do is we're going to go through and we're going to detail this out a little bit more. I want to put grass on it and rock and snow and just show you guys a little bit more about some more advanced masking techniques. And then from there, we'll move on to another video and walk through the whole export process and stuff like that. OK. So I'm going to leave you guys there. Thanks so much.