 Let's finish this up by getting a quick and basic scattering tool that allows us to scatter our grass clump around our little terrain here. This will show you the basic or the fundamental way of getting these particular assets built with Houdini in the Houdini engine. It really completes like a nice little pipeline, something that you can build entirely on your own without the need for programmer help. You're building your own geometry tools. Let's create, for this particular HDA, we need to create a subnetwork. The reason for that is because we're going to be instancing objects. I want to be able to take advantage of instancing these guys and retaining their LODs and stuff like that. I actually need to instance them instead of just merging them into one piece of geometry. In this subnet, or at least what I'm going to call this subnet, is IP clump scatter. I'm going to jump inside, and we don't need our inputs for this particular one, so I'm going to jump inside. I'm going to create a geometry node here, and I'm going to create an instance node. This instance node is going to be the node that's responsible for instancing our little grass clumps around. This first geo node, I need to handle the terrain, so we're going to handle terrain like so. I'm going to jump in there, I'm going to do an object merge, and this is going to allow us to get the terrain from our terrain HDA, so I want to get it and move it into this object. For testing purposes, I'm just going to get the result from this terrain generator node here in Houdini. We'll replace it with the terrain that we created inside of Unity there. Now we have our terrain, and what I want to do is I want to scatter some points, so you just want to go and drop down a scatter node, so now we have points that are relatively evenly scattered along this entire grid here, but I want a little bit more control, so let's just do something really quick here for fun, so I'm going to drop down a wrangle node, and what I'm going to do is just pull out the green value, so I'm just going to get the green channel and pump that into our density, so if you remember, the density allows us to control where the points get scattered, so I'm going to get that from our atcd.g channel, so it creates that density value for us, pretty cool, and what I want to do is go to my scatter node and turn on the density attribute, and we're going to turn off our relax iterations down here, and that will make them basically pool around those green areas, so you can see they're kind of missing the brown areas in most spots there. Alright, so that sets up the scatter, and let's go and basically just output this then, so I'm just going to drop down a null node, we're going to say out points, like so, so we want to get all these points now and send them over to the instance node, so we're basically taking all the output from this guy, we're going to send them over here using an object merge again, so this is how you start to shuttle data around your networks. Alright, so we're going to import our points into this object, so I'm going to go and get the points from our handle terrain node, alright, and what I want to do is drop down a wrangle node, and now this is something that is very Houdini engine specific, so I'm going to call this node our instance adders. Now the specific part about Houdini engine is that it's looking for very specific attributes, so if you go to the Houdini engine for unity documentation and click on the attributes and groups, you'll see that what we're looking for is this unity instance attribute, so this is one of those built in attributes that the Houdini engine is looking for, alright, so if we provided a path that's relative to the assets folder like this, this is a great example, so if we provided that path then we'll be able to instance those objects onto our points, alright, so that's what we're going to do, we're going to say s at unity underscore instance, so that attribute value that the Houdini engine is looking for is a string, that's why I put the s in front of it, okay, so it's going to take in a path and our path is a path to our grass clump, and this path has to be relative to the assets folder, and so we can get that from our copy path option here, so I'm going to click that, go back to Houdini over here and just paste that in between the quotes and there we go, and that, my friends, is how we do that, alright, so let's go and turn this into an HDA really quick, so I'm going to say create digital asset, and we are going to remove all this stuff, there we go, clean up the name, hit accept, and it'll warn us about the object reference that we have inside of there, and that's fine, I'll show you guys how to fix that just really quickly here, alright, so whenever you get these object reference errors, it's because you have a path to the OBJ, so currently we're looking for OBJ, clump scatter, handle terrain, and then get terrain, and what we don't want to do is we don't want to have those hard-coded paths, so what I'm going to do is select this particular option here and hold down alt and middle mouse click, and that will put this up at the type properties level, so at our HDA level, and I'm just going to call this the terrain, alright, and we're going to remove that built-in path there, that hard-coded path, alright, so you can see it didn't complain anymore, cool, alright, so one other thing we want to do to clean up is we want to be able to make sure that we don't have any other hard-coded path, so this is a relative path right here, it's relative because we have dot dot dot dot, right, and that's basically saying I'm going to get out of this node, I'm going to jump up again, and then jump into this node basically, and get the data from there, so we're all good there, alright, so the next thing I want to be able to control is the amount, so I'm going to promote that using the alt middle mouse click, and we'll call this a clump count, and I'm going to limit that to something like 5,000, alright, and a thousand is great for the default, we'll hit apply, and accept, and we'll jump back up, I'm just going to right-click on it now, and say save node type, and then let's go back in Unity, and we will transfer that new clump scatter HDA into our Unity project, alright, and then let's go and drag and drop that into the scene, and there we go, so now we have our clump scatter, alright, so what we need to do is we need to provide it our HDA, alright, so I'm going to switch this input type over to HDA because we're going to provide it the terrain generator, and that is an HDA, and there you go, we now have a bunch of clumps, alright, and you can see that we have a bunch of instances down here that we could change out to if we really wanted to, alright, and we also have all the instances right here, alright, so I could pump this up to something like 2,000, alright, and it goes pretty fast, so now you got a bunch more, alright, pretty cool stuff, and all this stuff is taking advantage of all the geometry instancing techniques, or the GPU instancing, so it's really light on draw calls, and stuff like that, it's nothing crazy, alright, so let's do one more thing here, let's actually just randomize all the rotations because if you take a look they're all basically rotated exactly the same, so just add a little bit more realistic touch to it, so we can come in here, and what we can do, so let's randomize the rotation, so I'm going to go attribute wrangle, alright, and so we could also do scale too, so we'll do transform adders, alright, so in here what we want to do is we want to create a random rotation, so I'm going to say float angle, and this is going to be equal to a CHF, so it's going to be a user defined angle, alright, so something like, you know, 45 degrees, we want to basically create a random rotation between negative 45 and 45, alright, so now we have that angle slider there, okay, and let's just set it to 45, that would be good, and what I want to do is I want to create a random angle now, so I'm going to say float rand angle, and this is going to be equal to fit 01 random, we're going to take the current PT number as our seed value, and we're going to say we want to go between the negative angle and the max angle, which would be something like 45, or in this case it is 45, and basically we want to do the same thing for the min-max scale, but this time we need two floats, so I'm going to say float min scale, it's equal to CHF min scale, like so, and then we're going to do float max scale, it's equal to CHF max scale, like so, and then we're going to say that our at p scale, alright, is equal to fit 01, and we're going to do the rand PT again, so rand at PT num, okay, and we are going to give it the min scale and the max scale, that'll give us control over the scale, alright, one thing we need to do up here is make sure that we provide the rotation, so I need to say at rot is equal to quaternion, alright, we're going to give it that rand angle, okay, and we want to give it a rotation axis, so in this case the y direction, so 01, 0, alright, so now we have all of our rotation properties on there, which is great, and we have our instance path, so everything's good to go, one thing we will want to do is give the user the ability to change those min and max values, alright, so I need to jump back in here, and we also need to create them, so there we go, so I'm going to promote the angle, min and max scale, alright, so angle is going to be a value between 0 and 180, alright, with the default of 45, our min scale is going to be, let's say, 0.5, or anywhere from 0.1 to 10, and our default is going to be 0.5, alright, these are just kind of values that I know work roughly, and our max is going to be 0 to 10, and our max default scale will be like 1.2 or something like that, hit apply, so you can see now they're all hooked up, alright, so that's pretty good, so I think I'm going to put all those properties into a scatter folder, so just drag and drop a scatter folder, or a folder out and call it scatter, and I do like to set these two collapsible for unity, alright, so with that I'm going to hit apply, and accept, and we're going to save our HDA, and we're going to jump back in unity here, make sure we copy over our new HDA, and then what we can do is come into the clump scatter node here, and just hit rebuild asset, and what'll happen is it'll rebuild all the properties, and you can see now I have my clump count all ready to go here, alright, now we're scattering a bunch of objects now, I can change the min and max angle, you can see they're spinning, different angles, now we can change the scale, let's do something crazy, there we go, pretty cool, there we go, so there, that is what I'm talking about, that is how we go about creating grass clumps, and then scattering it onto a terrain, alright, and that's basically the full pipeline there, there's so much more we can do with this, and like I said before I want to make a more of a mech course around just all the things that you can do with the Houdini engine, it's really powerful, it's just you got to get used to you know how to develop for it basically, but it's an artist driven development process, not so much of a programmer one, okay, so I'm gonna leave you guys there, let me know if you have any questions, thanks so much