Procedural grass tutorial part 01 (Substance Designer 4)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey guys and welcome to this substance designer tutorial today I want to share with you how to make progress in substance designer this is a dress I made last week and I had it done different forum like the Google+ community or poly count or the official algorithmic forum and I received a lot of good feedback from it and some people were interested to get some more information so I decided to make this tutorial I hope it will be useful it's the first time I do that so I hope I won't be too fast or too slow and that I won't miss relevant information for you in any case if you want to give me some feedback after and wise in the comments or somewhere else and don't hesitate so basically this is the reason that we should have the end of this tutorial by the way we'll try to make it step by step to reproduce everything I did so it's clear for everyone so as you see there is little green grass there is some parameters you can pick up like the density of the grass the the length of its fibers the sickness as well so it's heavy-duty okay but I didn't expose a hundred of them but I expose what I thought was really good after it's up to you to choose what you want to expose this tutorial is also for intermediate user by intermediate I mean that you know how to use substance designer it's not pure big you know tutorial so as you see it's not super advanced the the graph is quite simple so if you know how to use substances I know you should handle it maybe the tricky part will be about the ethics map and some functions which are bit more advanced but it's not crazy so what I recommend is underneath is to look at the algorithmic beginners tutorials on YouTube which are really well made and that I that's how I started to substance so let's start so first of all I started like everyone I think by gathering reference what I wanted to do is just to play a bit and to find something cool to making substance designer and say okay instead of brass because it's always tricky to to get good grass I see how you manage to get something believable in substance the designer will be happy so as you see when you take grass texture on unclear google map you google image story you have a lot and they focus on this one that I found pretty interesting for different reason first because you have nice green grass really random so it's really real realistic photo of course and you also have some dry grass here which is really thinner and yellowish and I was interesting that because I it gives a lot of depth to the to the final results so I say okay let's try to get close to that so once I got that oh yeah so I obtained that so I'm not that far from what I expected I could have given I could get closer but it's not it's not something I didn't want to be hundred percent accurate I just wanted to get something that that I liked so basically how it look so to make it clear I create some frame in case you don't know it's that it's really helpful to organize your job and there is full form in different parts which have the grass shade the dry grass a deer v maps and the Quran here then you have different outputs I would say that you put whatever you want but focus on giving the diffused hate math normalmap roughness and metallic if in case you want to go in physically-based the most important here in that case will be the diffuse in the normal map so instead of showing you how I did here I think I would try to do step by step so redoing all this for you maybe I will skip some some part by force of they fix mapped hair which are really similar to that but basically it will be that so let's start so here is an empty one like just with the diffusion normal so first we have to create the basic shapes so there is two two green grass and the dry grass so to do that I start by creating choosing the shape here which is a really useful loan because you actually contains some basic cells over here nothing interesting because it's just a square but as I won the grass trimmer is just rittenberg rectangle with the tip if we say it simply so first I would just take a disk and then I will transform a bit like that they will shrink as much whether you can like that we reduce in size as well like that of course I'm not happy with that because as you see times and substance isn't super cool because it ties but sometimes you don't want it too tight so what you know what to do that you can go to tiny one yeah but as you see it's locked so you have to pass it to absolute and then you can say no tiling and here I have something which is closer to two other one what I may want to do as you see here there is still these tips which is a bit annoying I don't want that so what I can do is create a second shape so what I do to keep the to be faster I just do ctrl D to duplicate this parameter and here instead of having a circle I will choose the square again so it would give something like that which I'm not happy with but what I will do is just move that here so here as you can see you have two shapes you have like the double tick one here and here is just a square so we are going to blend that together with blend blend and you just put so you have still a that we still not happy because redheads in cookies who we just see the top one we're going to put it to I think a de here we go we have a nice the best grass tip in the world but we are not till satisfied with that because it's a bit too straight for grass so in order to break that down what we are going to do and we want to give you a small curve so to do that you can put it this way then maybe some other but this one works well you use a gradient first a gradient here this one the gradient in a two and you use a directional one so the directional valve as you may know is it just move in a direction the the the pattern according to kuroh information to light information more directly so here you get the result so for example if I put a bit more you have something like that so you see it push more in the middle because the version Linea 2 is more is later in the middle sorry so yeah I'm quite happy with the shape here nothing crazy but it's enough what we have to do is to use another great engineer but this one number one which is from bottom black to top white and what we'll do is that we will use a blender to multiply those together so multiplies here and that way what you have is a nice gradient here which will basically be the eighth map of the the grass and this is really really important it's real easy to do between important because that's what really gives here the the depths of of this texture easier to create a normal map at the at the end all too true to spread the color and many people ask me how how did I do to make it that tools so we feel the depth I think it just it's just these three knots or this to not even so yeah we're stupid but you see the fact to do just one rested alone you get some control you know what you will have so once we have that what we'll do we'll do the the dry one and as you have seen the reference that hey if you if you look at the the text you if and find it again I don't know where it is here you see that the they are wet inner and way less organized it's really like it's not a really good locker it's something a bit more random so that's what we're going to replicate but first what we can do is to start from that actually know what I will do I will just take I will just recreate the shape shape okay so use it again once again a transform just to be clear first I will add a frame hand so we know what we do so here green grass yes it's here so here we have a shape and once again we don't watch it two times so absolute no tiling here and we make it really small very small we rotate it and I'm concerned that we can filter it a bit maybe like that and it maybe not small enough oops should be enough so it's not really important as you see you don't have to be extremely precise but at least you you have something that you can use here so from that right now we want to make some disorder so once again the one node is your friend with this one whoops I don't why I put it here but the ones not does it's like the durational wattages changes yet but not according to direction it's more random so I want to use it with the pending nodes so something like that and you will see so when you plug it you see you start to see a kind of wave which is what we want we are just going to purge the intensity if you want to go over you see stick at once but you can go where that if I put 10 for example yeah that's something that I like you see it's like a fiber stupid fiber so format and that's what we want so once again we'll create a frame here call it try dry grass so here we have our two main shape and that's where it's going to be bit more complex but nothing crazy we are going to create a fix map so if you snap it's like a map where you define procedurally how the shape will be created so you can choose change the rotation the iteration the way things are organized inside that and but you can define some rules like ready mathematical rules to set up your stuff but once again it's substance designer so it will be done in a another way you will understand so first we photon to inside that you have to be sure that in our case they fix map is in grayscale when you put the roughness to zero it shouldn't be important but in some case it makes them bad blending so grayscale roughly to zero and what you do here you plug the the grass here into the input image one by the way you can put more than one input but in our case that should be enough so once you have done that you want to go inside the epic man so either you do right click Edit Fe connect or ctrl T and you have some stuff that you may not know yet so I won't go too much into details you can look once again at the YouTube videos of algorithmic that explain how it works but basically in any fix Maps you have nodes you have three tabs on the quadrille the switch reiterate in our case we're going to resilient is to one basically to make it simple now the iterate allows to take an input and to iterate on it so for example if you have one step generated by that and you put that 10 you you will know how 10 shape they relate it from that and the switch it just allow you to switch between this input and this input one we won't use it here the quadrant it's really where the the shape will be generated so it can be either a pattern that you define here like a square for example all discs or an input in our case it will be an input but before to do that what I will do it here you see it's yellow it means that it is the root let's say the output but it's not exactly the same this is the root so first what we will do is we define the iterate not as root so this is basically this is the the root but it's also the final basically when you set up as the world what they will do is will look below and climb the chain to see to see how what it has to generate and how to handle it it's a bit weird because it seems upside down but that's the way it works so you have to plug on the right one I can once again I can't remember one but I know it's the right one and so the crowd want right now what were to say is first if I want to sit here I have to come back here I would directly again so right now I see my FX map so as I say right now when I choose the crowd one I can define the shape I won't like can be let's say square so nothing fancy that you can define the pattern you can define many stuff here for example there is nine iterations so in the iterator I say you can say there is one iteration you can put more or less I can change the color luminosity the offset etcetera so I can by default do only some pretty good stuff but first here what I want to do is to choose the pattern of the grass which is here we put that to zero again a nice thing okay everything is by default here so the thing is as I say you can move it but not pretty interesting because you still have one you can change the shape which is interesting but what we really want to do is to have way more grants first and second to place it randomly to rotate it firmly and to change a bit the shape for nobody so in order to do that you have to use what we call functions which means that you define some rules in functions and this will be used to place each piece of resin apparently before to do that you need to get more than one piece of grass so for example in our case they say they start with 100 the same so you see you have right now 100 piece of grass but they are all on top of each other so it doesn't fit our program because once again when you change the parameter everything moves together so how to create this function so let's take an example for example the offset let's say we want to change the offset independently so what you have to do is to click on this symbol here is you know do it and see ok let's create a function and you click on the symbol 2 and turn inside that so here you see you on a new graph so but when you do space back you see that all the nodes are different actually the mathematical node so in order to define the the offset the position what you have to do you need at the end the victor to because you need a mix on the Y position so you have it here and we say we want it run down so you have a random here we need to okay we don't want them connected so you see I do it a bit upside down but I think it's more logical to explain so here what I say say hey I plug in the X random number and in a wire random number but there is choosing which is missing first how the random number walks is it takes a number a random number between 0 and the input here so we so we have to have an input in our case it's between 0 and 1 so you set the float a constant float here which is just basic number and you just plug it here so right now you just tell him here generating number between 0 and 1 same thing here and as you say it does nothing is because you have to set the output you have to define which is the result that you want to output so it's this one of course and so you just do set as output nod and then you get what you want you see that the all the the grass is randomly spread inside of them which is cool it gives like a tiger Tiger stuff I don't know why but that's not exactly what we want but you get the idea so basically we are quite happy with that but that's not exactly how we want to do so what I will do and we I have different parameters to set up you know I want to play with the the rotation the size the pattern that we did even the member here that's some stuff that I want to to control so I can I could go into the quadrant and create an empty function here and Tipper function here but it's not very easy to use and what's a thing that you can do is go to the top parameter and create an empty function from this one and put all your the parameter you want to set up here I will show you how so first what I will do is I will clear this one so basically what I will do before to do it I will create an empty function here create all the logic inside of it and create variables inside as well with a name so for example if I want to set up the position I will create a variable position and then I will go here and create just a gate variable that will catch the number and apply it here I see it right now but you know it will be mucking around two seconds so first I want to go here so once again I want to create an empty function that will be here so I enter inside so there is nothing here we are in the luminosity so first do I want to play with the luminosity I think yes so that's what I do I create a float that I will put to one because I would set the luminosity at the end because it's not I saw this I will create a frame which should be called luminosity actually them in the city and what I will do is I will create what we call the sequence sequence the luminosity will put it to one right now so right now is just a number so it means that it will do nothing more than what's already there but you wouldn't understand if you seconds and this is the output map so far it will change so what is the sequence actually and I want to expose different to generate different parameters inside of this dysfunction the sequence is saying okay take this and whatever you plug here and this will be the output and I can if I have a third function I want to put a would create another sequence like a chain you will understand two seconds first what I want to do is to set the rotation of everything because as you see it's a it's a bit too too straight so no well you know what let's start by the the position it will be easier so for the position we we say it what we have to create this first the fraud here with two random number forks and why and what you want to do after from that is to create a victor float to here okay so if we were in the offside that how it would look I would say okay this is the output nod and to walk but the thing is right now we're on the luminosity so how can I send this information to the offset parameter question quite easy first here I have to put that to one what you have to do is to go to variable and set a new variable so I will call it offset so here is so I just rated a variable which is called offset so right now what I have to do is to copy that go where I want to use this parameter here I want to use it in a timer set so I create an empty function I go inside and I just create a viable get float to here and suddenly it doesn't put by default the name of the variable that I can pass here and say Allah raised it set out output Merlo and it should work but for some reason it doesn't so I think I may have done something wrong let me check right I think I know what I did so I have to go yeah yeah here you see the thing is here I set it ok fine but I didn't plug it to the sequence so basically as this is what is outputting the sequence I have to filter here no it works so you see thanks to this set behavior here and to the fact that I create a hook here get float that refer to this variable I can go inside just the luminosity and get less response create a frame here that I call offset now let's say you know the grain there should be for sure and that's a value that I wanted to change as well so let's call something we are doing right now to do the the size so once we get create a float and I would just look at something see okay if I look here I so get the pattern size it's two parameter so it would be the float - okay so let's go I go back to the luminosity so I know I need to run them constant once again it's more like that it's very important to put two different notes on some wicked CoA maybe I can output this one two times but the thing is you will have exactly the same and generally that's not not what you want so at least this way I'm sure that I have different numbers in x and y so once again I have to do if we could have got to to catch the value once again I have to set a higher bar so we see it for the size so I will call it fat and size nice name once again if I want I have to sequence in so here we have a sequence but as I say I have to create another one to be sure that we like this information as well so control sequence so here the previous results and here this one here just make sure the pattern size so right now let's go let's go here pattern size I will create an empty function I will go inside and I create the vibro get flow to that I said as output now and they say the value is pattern sighs mmm for some reason it doesn't do a lot so once again we are going to look here let's expose and so I may have for that for that themselves haha see once again that the output is here and it has to be here so it's better when you say huh it's all black instance you did something stupid well yes and no it's because here as I say in the rundown right now it when demise between 0 and December and zero and zero so if I start to grow this verb sorry so if right now it's way better you see that it gives some more result the thing is there is something that I don't like here is right now the size is moving between 0 and let's say this is 0 and this is wrong one but I don't fun don't worry 1 0 so what I can do is to use what we call a linear in the operation I will use it yeah so it's really functional and basically what he does it's it's a bit more control random I say I want I have to value to put here and this one here so yeah it's just to say ok I want you to run the mouse between for example 0.3 and 1 so what I do is to float and another one this one I will put the value of one of no this one the second one I would put the maximum which is one did here and this one every same 0.6 so which means that more or less the random would be between zero point six on one and I will copy past that control D oh I forgot this one control D so if I remove and the same thing here I would say okay the random goes to the last one minimum maximum hopefully here so we are going to organize a bit more that it's just able to get more control sometimes you don't want the value to be zero so here you see it's the starting value so maybe you want something smaller so it starts to get interesting because you have something called some more grain so okay so here the thing is I put that to the side what you can directly do is I say maybe I don't want it to be that big so let me check that okay so let's say I want something you see this is perimeter that I would expose I play and just playing a bit to be sure that I get something that I want small this one I think yeah this one you see this one would control the width which is interesting this one different the maximum actually the maximum is more one it's more this one which is interesting so this one pretty interesting this is good to locate that because then here it will define d8 so here we start to get something really interesting so right now this is how we define the size of all the grass so frame I call it style so we have the DTD offset on the sides right now something is missing it's the rotation which is the laziest one I think because just how to create a float rundown you just need one member of random like that you need to catch this value it will this one I always mixed just to make sure I will check how I did in this one random directly you know I didn't even catch it you know nothing I just put a set to put the value so let's do that control you to go inside yeah so random on set so variable set and with the pattern rotation I could be that the text copy here I go to rotation empty function I go inside the empty function I won't get float here neither so I passed it set as output nothing happen just go here to put it back okay okay so we're in rotation we go here we go back to luminosity and here first we have to create another sequence once again together all the result for sequence okay this yeah yeah and we say said as output nada and here we start to get nothing because once again we have to move that and how okay this isn't this is way better so something that you may have noticed is that the blending is not the way we want because here you can imagine that blends as if they were like mixing into one grass grass tips that is not the case in real life who want them we want to be the lighter at the top so what we do and once again that's also why it was important to put a gradient in it so what'd you go do you go to the a fix map you go here you have some options here so where it is maybe here yeah okay yeah blending one put it to max and that's exactly what we want you see we we see the the lighter grass which goes on top of each other so we're ready first to what we want right now I go here for example one second in April this here here we we get really close to what we want of course we have to add some more details so I can go back here and so either what I can do here for example if I'm lazy sometimes ever is to write a quadrant as well when you see already it starts repeating the grass four times so let's run down but it can walk but I won't do this way so what I will do here we say hey add a bit more grass then either one 1000 and here we go I think we have something quite interesting here I would compare with the the other one but you see if I go here yeah that's you see that the other one so it's this is the one I created and this is the one we got so quite convincing I will just go here and put a bit bigger let's be shy so yeah that's basically what I want here so right now I have that and what I will do I want I would just copy past the some of the color information because it's not the most important so I will copy past that control C control V if we make some space here okay so right now with that what I can do is to say hey you know what do you want to be my color here and here what I will do I will do it a bit right now so here we have something quite interesting the thing is what we want to add here is a bit more contrast so we'll do a little eager to get it a bit more interesting and have something else I thing to do which is here Yeah right now what I will do is to so basically that's a good beginning of what we want to do I just put I will just put a uniform color right now just to make the dark part because okay so it's to lock of course but it's just to show you we put a brownish one through this one's in better okay so I will stop this video here it's a good first part I will make a second car way where I explain how to to to plug the car or how to do the dry grass I won't go into the detail because it's exactly the same system and how to expose all the parameters I hope to you right this first part and that it has been useful
Info
Channel: Vincent GAULT
Views: 31,186
Rating: undefined out of 5
Keywords: Allegorithmic, Substance Designer, Tutorial, Texturing, Procedural Generation, Grass
Id: kvQ55WvDKsE
Channel Id: undefined
Length: 40min 14sec (2414 seconds)
Published: Fri Jan 23 2015
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.