Substance Designer: tips and tricks session

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] [Applause] [Music] okay hey everyone glad to see everyone here for our next session so my name is Wes McDermott and the integrations product manager here at algorithmic also do substance training and so today in this session we're gonna take a look at substance designer we're gonna you know just kind of have some fun with it we're gonna look at just some various tips and tricks and so when I was kind of coming up with some ideas to discuss with this I also talked to several members on our team to get some you know feedback from them and get some idea from from those guys as well so I definitely going to give them a mention as we go through for the different tips and stuff that they were able to share with me okay so let's just jump in and get started and the first thing I'm gonna do I tried to break this down into sections that that kind of you know make sense so we'll see if I can really stick to my list here we'll start with workflow so let's look at some workflow things so here obviously I have substance I know running and so one of the first thing I'm gonna do is just come up here to my preferences and let's come over to my projects and so here you'll notice that on my library tab I have just a library setup so kind of the way that I work is that you know I have like my own library of substances that I that I work with so you know as you're building up your substances you have your library you're creating utility nodes and so on so here I have my substance library and it's loaded here with this path now there's a setting here for aliases which is super powerful to use and once I started using these you know make sure that I have it for every system so what you can do with an alias and you'll see here that I just made one up you just click this plus button and I'm just I call my mats and then what you can do is since you have your library set up any nodes and things that you're dragging in and creating your content if you have some nodes that are being referenced by others so for example I have like my desktop computer and they have like a travel computer and when you know I carry you know I brought all my files over to my travel computer first time you open up your substance it starts you know you know telling you hey I can't find this guy I can't find that node and what are we gonna do you know and all this kind of stuff so but if you use aliases what you can do is you can just say once you set your library like my default library path which I've set here what you can do is you can set up the name you know whatever you call it up mines mats and then all you have to do is just come over in browse for where the new library is gonna be so in my case it was documents I have a little tool box substance and I choose SBS materials which is here and then every time you open up no matter where you've moved these files to all of the nodes and are gonna find each other so no references are gonna be broken and it makes it really easy to you know share substances across different machines so aliases are super powerful tool to use so that's just one tip here with just kind of workflow setup another thing here that's that's interesting and I actually just learned about this one friendly recently was you know you have your library but we also have this exclude pattern input here so let's say that you're searching through this library of materials and and maybe in this case within this materials folder I may have another folder full of just like textures that I'm using for like grunge maps or something that you know the real high you know you know I don't want to search them that maybe they have hundreds and hundreds of these images and things so maybe I could go through and do an exclude pattern of say you know I want you to search through my materials folder but exclude everything that has extension of BMP TIFF EXR I think it's just one F X R and so on and so you can exclude certain patterns from the library that's being when you create your own custom library so again that's another pretty powerful thing that you can use these exclude patterns for this so we'll cancel that out alright so kind of the next thing I want to jump in here to with workflow is just the idea of kind of a best practice for creating materials so one of the things I have here is you have a lot of these frame setup and this just kind of helps me like detail or outline kind of what I want to explain here so when you start a new material one of the things that that's that's a pretty good way to work is to think about working greyscale as much as you can and then kind of progressed towards creating color and albedo and doing material blending and so on and so what you end up doing is I always start with creating the height map first for every material I work on so for example if we look at this we come over to this little section called basic shapes so if you look at creating like a material like something very complex you can always break it down into its most basic shape and form so one of the things is like you look at something really complex and if you try to tackle it at that high complex level it's gonna be you know you know very difficult but if you break it down into its simplest forms and shapes you know it makes it much more manageable so I'll start with like basic shapes then I'll kind of move this into large medium shapes move that into small details and you know I like to do a lot of modeling and I tend to kind of take that same modeling approach with materials that create and designer for example if you think of it like say ZBrush you may start with something like a sphere low-res use like a move brush or trim dynamic or something to kind of go through and just block out like basic forms and that's kind of what we're doing here with this basic shapes then you like in ZBrush you might subdivide you know another level so you can get a little detail so that's what we're doing here in designer kind of you know the the idea of subdividing to get a little bit more large medium shapes then we kind of again that idea of subdividing down again to create more details and then here you have your height map from your height you can extrapolate maps like your normal AO and roughness then from there you can extrapolate excuse me extrapolate your albedo and then you go into this material blending now to give you an idea of what that actually looks like here's a practical example for this wood material so here you can see where I've started with just like basic shapes for example you see like just basic patterns here I'm moving into more large medium shapes keep subdividing down like I said we start to look at adding more kind of detail here as we as we kind of build this guy out as we move through this we end up with a height map that we then extrapolate things like our normal and our ambient occlusion and roughness while my grayscale data then I start moving into color so we start to get some color and then all of this pipes down here through this base material node and once I have this base material mode I can then go through the process of material blending using like material color blends to add like say dirt and things like on top of it so like I said one of the ideas that I like to always work with is if I'm using something like say this base material so we'll come in here and we'll create base material let me switch this here to OpenGL for now and another tip is that whenever you have something here in your graph you can just simply right click and drag and drop this right into the 3d view to apply the channels that you're working with so if I hit one on the keyboard I'm going to come up here to my material or single channel node and I can see all the channels 3 on the keyboard takes me back to material mode and I can see that since this all these channels are all represent a full material when I right click and drag and drop this into my 3d view it gives me the ability to kind of visualize this so when I create a substance I don't create a substance with given outputs I always do the outputs at the very end alright so for example let's say that we had this guy and we would come into here let's say we'll switch this to like a dielectric then we can kind of increase our roughness value and then let's say that I had something like let's just grab something like this black and white spots noise and let's just say this is starting to be the height map that I'm working with so here I might then generate a normal from this and just increase this value a little bit so now I want to start to kind of visualize this as I work so again I use the base material it's kind of like this again going back to that modeling idea this kind of modeling material so now what I do is I come over and I input my normal and my height so we'll put these guys into here and now here in my 3d view you can see that I'm starting to visualize you know what this material is well as I'm starting to block out these large shape forms I use my base material I can go back and just have a nice uniform slider for you know changing like my roughness on the fly so I can get an idea you know what the roughness is doing how these details are going to be interacting with the light if I need to turn it quickly do a little color change just to get an idea you know before I actually get to color I can do that pretty quickly and so on so that's kind of how I'm using that material mode so again the whole idea is that you're you know working basic shape you know working small large form shapes getting more detail as you get down and then here at the end you're gonna basically pull everything down to the single material as you can see here where will then start to do things like adding more details on top of it like dirt and things like that so one of the other things here I kind of want to show with this let's see you just kind of look at my notes here right so here if we take a look let's go back here to this wood material that we have here and let me jump here to this pin a plank setting okay so you'll notice the here that I'm in this substance and have a bunch of sub-graphs here so right now I'm working on this planks graph which is just creating for me the plank pattern that I'm using within you know my substance so this next tip this one's coming from Nicholas Fierman so what I'm gonna show you let me just close out these tabs here alright so for example if I want to look here I have like a custom function that's that's on one of these graphs and just kind of a quick tip if you don't know where so you don't know where a function is you can come over to this little eyeglass button and you'll see these use custom parameters and I can say well oh here's my parameter plank X so if I select this you can see it highlights just those nodes that are using that so that's kind of a handy way to find a parameter if you have like a lot of parameters in your graph so let's select this tile sampler node and let's come over here to this X amount so if I click this function button it's gonna open that up here in a new tab and I can you know do some tweaks to this and then I can go back so what happens though if you have a tab open so here we have two tabs and then let's say that okay now I want to check the Y amount function graph so I click this button look it overwrites it so if you want to have a tab pinned we had this little pin button here and you can actually pin a tab so now if I go back to planck's and let's say I want to open up a new some kind of new tab or something in my case here I'm just gonna come over here to this X amount so I click this you can see that it opens up the X amount but I always have this Y amount pin tab so if it's something that I'm going to be working in kind of in relation to something else within my graph I can always just pin this here to the side so again this pin button here's a pretty handy to use so let's see here another tip let's come back here to our wood planks for now let this guy out put here so yeah just a couple of shortcuts for working with some of these nodes in here and this tip is going to come from Vincente go and so I think Vincent is working our chat in the live stream so hey Vincent so yeah I'm gonna show you a couple of ideas here about how to work with the nodes so we can use a couple keyboard shortcuts to that so for example let's say here that I have something like I want to do some type of connection to something so let's go over to where let's say that I have let me just find something here I can use all right this guy here so this this here is using my normal map here and let's say that here I have well let's do yeah this one's using this normal so bail so let's say I'm using a different version of a normal map and if I look I have a lot of connections coming through here so what you can do is if you hold down the shift key I can pull off our shift key and left-click I can pull off this connection and then reconnect it here like this so you can just hold shift and do a reconnect ah it's not working there for me sorry about that let's see it's not a good example of where that would work see maybe this guy here sampler output yeah oh I'm bear with me for just a second they never a great example of that so here let me show you this other one here first and then we'll come back to that one so for example let's say that like I said we can hold shift to move multiple outputs at the same time but you can also hold ctrl to move some so like for example let's say that I want to borrow out this background here so I can hold ctrl and pull this guy out and maybe I want to use the background here but I also want to use it in the opacity of this blend here so I can go and click this opacity within here so you can see that that connection is still available to need to connect it somewhere else so I can hold hold down the left click to kind of get rid of that so like for the other option let's say like I have this dirt option here and I want to connect it somewhere else like I was saying like if I want to you know continue to borrow all these outputs you can simply just shift hold down shift and left click and it will take all these outputs with it at the same time so if I want to end up just you know reconnecting these or placing these somewhere else you know I can do that without having to go through and do an individual connection for that so the next thing that I'm going to talk about here for this is the kind of output computations so here like I said I had this would graph and if I look at this guy let's look at this is the main graph here that we're already in so this is this wood planks aged and typically one of the things that that I like to do is sub graph out parts of a graph so that you basically have like you little utility graphs so for example if you look right here at the very beginning from a basic shape I had this planks graph and this guy is outputting for me like these planks just the nails here holes illuminance variation and so on so a lot of work was done here in this planks graph like this so if you come into here you can see that instead of having all these nodes placed within this one huge graph which could be you know could get really complex you know quickly depending on how many nodes are gonna have you can kind of sub graph these out and so one way you could do that is just you know create a new graph copy and paste it but there's also kind of a handy option where you can come in and say like say I want to use these nodes so I could just come in here and select these guys and then you can right-click and choose to create a graph from selection so to create a new graph with those nodes so sometimes I'll be working and I'll say okay yeah these nodes it's giving me this type of effect I'm gonna sub graph this so that I can kind of you know it's almost like kind of merging down in effect so once you kind of have something like that on every single graph you create here in the attribute section let's see we have here with our attributes right here if there are attributes at the top we have this output computation and so when you have a graph and the output computation is set to by default it's gonna be set here to yes and so what that means is the graph will be computed so when I have a graph like this and I have a bunch of sub graphs usually what I'll do with these sub graphs or these utilities because like for example this planks I don't want it to creates not creating a material for me it's just creating some mass that I'm gonna use in my main material so I'll set this output computation to no so it means that when I actually go to publish this substance and let's say I want to use this and say Unreal Engine if I had output computation for every graph when this comes in through the unreal engine integration each one of these graphs would become a separate material and so it's definitely not what I want in this case I really have just one main graph that's my material and these other graphs are just being used as utilities like you know creating a wood pattern creating planks and stuff like that so you can go in and set these output computations to no so when it's published the graph is still used in the main graph but it won't create a separate material for it all right so while we're here looking at looking at our wood another thing I kind of want to show you as a tip just in terms of our workflow here is being able to use a vector warp to offset some patterns so for example if we come over here and I look at this pattern that's coming in this vector warp if we take a look at this guy you can see that this is giving me kind of like the crack lines for the wood here and so if we look at this just real quick let's create a blend yeah here's a scenario where I can borrow out the connection so ctrl key left click and just place that in there to the foreground and then let's grab this levels here into the background and let me just do a multiply on this guy here okay so now you can see that you know well I have the wood pattern and I have these planks and it looks exactly like what I've just done I've taken a pattern that you see here in this foreground and I've just you know placed it right over top so it's we wouldn't offset this wood pattern so one kind of interesting way to do that you can use a directional warp to do that which you know we've covered in various forms and in tutorials and you see that technique used a lot just to give you a kind of variation on that technique is being able to use a vector warp to do that so here you can see that I have this plank this is the pattern that I have so now I'm using the flood-fill here to get some information out of this and then using the flood filter random color which can then be used as the vector map input for a vector warp greyscale so if I just do a search here you can see that we have a vector morph and a I'm sorry vector warp and a vector warp greyscale so now if we take a look at the result of this we come in and have this intensity value we're now warping these crack lines so what I'm gonna do here is let's take the output of this guy and just plug that into the foreground and now when we take a look you can see that whoops space bar you can see now we are just offsetting those wood patterns so they don't line up perfectly it looks like each panel has its own kind of wood like maybe they're rotated and things like that and so you can come in and increase your intensity value here on this vector warp to further drive that effect but a quick way to do that is if you have your pattern flood fill flood fill to random color that you can use as the vector map to the vector warp here okay so that's a that's one way to work with that the next thing I'd like to do is let's take a look at the flood fill now and we're gonna show you a couple techniques here so the first thing I want to do this here is a technique that comes from Nicholas Vermin so if you need to make like some variations here's out of a trick to do that so let's say that I have a pattern like this here and I'm gonna run it through the flood fill to get my flood filled data then I'm gonna run it through flood fill to random color now what I'm gonna do well one of the things you could do is you could say flood fill - you know random greyscale like this and you're gonna get you know whoops you could come in and say that you're gonna do flood fill - let me do it like this flood fill - gradients you know or some of these different tools to get like a variation of this but you would have to like keep duplicating those nodes so a trick to be able to do this all within one node is to simply use the RGB a split from this color random so for example like I was saying here if I did flood fill - let's see random greyscale plug this guy into here so we can get this data but I'd have to like duplicate this several times and then change random seed values and all that kind of stuff but here if I just run it through the random color and then split it now you can see that each RGB a channel is going to give me a variation to this here so I could use this to quickly create a variation mask so just kind of an interesting idea all right so this next thing I want to talk about here let me just drag this node into here again so I have a material I just want to view what I have in the 3d view I can just right click drag and drop this material into here you can also do this drag and drop when you have just some type of just one channel image so for example let's say that I had let's do this let's quickly create a normal map here and we'll plug this guy in and set it just a lower value so say I just want it quickly okay I've made a normal what do I want I want to see what the effect is of this so right click drag and drop it in since it's a single channel I could choose normal map and then I can update you know get a quick view of what that's going to be and that could say okay well I really don't like that change or I could use this as like a potential idea now I can drag and drop back in to get where I was so you can constantly just do this drag and drop like this - you know quickly go across you know different variations as you work so what I want to kind of show here is the idea of being able to use the flow Phil to make some rocks so the way I have this started is I'm just using this cells pattern here then I'm gonna run this through an edge detect and then run it through a flood fill to get this so the next thing you can do is start to use the flood fill to gradient and so flood filter gradient has this angle variation control and this x bounding box so you can see what I'm doing here is I'm just duplicating this a few times so flood filter gradient and now we have another flood filter gradient here and you can see what I'm doing if I look at my base parameters for this guy I'm just gonna change the random seed on these so the random seed of this guy 0 random seed to this guy is 1 and so now I'm getting a variation here do the same thing to this flood fill this time the random seed is 2 I get a variation here I took a purlin noise and I'm adding it into the new angle and slope inputs these inputs are new to the this was the Summer 2018 release and so I can get some some more attitude of variation here with this so now that I have these what you can do is we can take these two guys here and blend them together so now we're gonna have a blend node and we're gonna set it here to a min darken so what you start to get here is we start to be able to you'll break this up into some planes so now for before what we had just a gradient here and then another gradient now we're blending these two guys together now we get like a plane here and a plane here so then we blend those together with a third flood-fill and now we're starting to get this effect now what's really cool about this though is if I go back to this flood fill here and I start messing around with this x bounding box size so you can see here if I move this guy come in just a second like this update here for a moment what its gonna do it's gonna allow me to to move these these planes around and so that I can get the full effect that I want so hopefully it's not gonna do a crash here but this typically happens there might demo so I'm used to it but we'll let it catch up for a second I think it's fine cuz I've had this thing on and I have all these graphs open we'll see there we go just let it catch up here for a second but yeah like I'm saying here when you use this multi x bounding box it's gonna let me adjust what these planes are gonna be so what I might do is might just kill this and then open designer backup just so we can be quick you just do that real quick it's always awesome to do live demos like that okay I'm used to it though I mean I'm not even gonna panic on this okay so let me just go back out open to what that was and so we'll just come in here and do flood fill and I had this guy on my severe all right here we are flood fill and we are back in business put this guy over here all right so like I was saying here we're gonna look at this and then we'll come back over to what this gradient is and then you know like I was going to show it a second ago we have this x bounding box so if I start to just drag and move this slider here what you can see is that it's gonna let me adjust these planes like this and so we can get you know all kinds of just different effects from just from working this way so we'll come in to let's say maybe this guy here and we'll just move his bounding box this way and so you can see that I'm just getting different effects just by pushing these around and then here in the end you can see that I'm starting to kind of sculpt this to get a little bit more kind of a 3d effect so now what I have here is just the standard process just running it through levels warping it doing a little slope blur grayscale just to get a little bit more data on this here and let's see the next thing I want to show here is just an idea of let's see slope ler yeah here's something that I thought was kind of interesting so I had the slope ler like I said this is kind of giving me some medium level shapes and then I want to get a little bit more detail on this so one of the things I'll do here is I'll take something like the clouds one and two and then I'll start to kind of blend these guys together so here you see I'm using just a multiply and then we have this clouds three so what this does let me just demonstrate it here with a slope layer first so we're gonna make a connection here let's set our samples up except this here two men and I'll take my intensity down a little bit so if we take this with clouds one first you can see that again we'll take our intensity down this is kind of the level of detail that we're getting here here's the same effect same blitz low player just using clouds - and so now it gives me you know kind of a different level of you know a different level here of detail and then finally with clouds three we put this in then it gives you this more finer version so we have all three of these kind of depths of detail that we're getting here and what I like to do is I like to then go in and try to combine these guys together so here you can see I'm using a multiply and then here again a multiply and then decreasing the the opacity so then what I end up getting is this this result which is kind of a mix of these three levels of detail really detail kind of medium level and a little bit more larger detail and so on and again if I just drop this back you can see the differences I'm getting so it could have just been this this technique you know versus using say this one here whoops grab the wrong guy needs to go up here from the bottom oh here's another technique that could be interesting so let's say that I want to you know zoom around in my graph a lot so let's say I'm doing I need to make this connection here but I'll wait I need to scroll up and you scroll out and all this stuff so what you can do is if you hold down the Alt key let's see I'm gonna pull off this connection here and hold down the Alt key now I can actually use my middle mouse and drag here to kind of put this guy back in place so we'll put him back up where he goes here's another instance where I'm kind of using the flood-fill this is the random grayscale value and then multiplying that back over my rocks to just vary the the overall kind of depth through there so now I'm just going to compute these thumbnails here so compute node thumbnails and see the next thing that I want to kind of show with this let me set this material up here so we're gonna come over to you can see here I'm gonna use the tessellation shader and we'll set this height and just so we can I guess more clearly see this let's set this here to the plain high-res something like this here alright this will be a little better okay so the next thing I want to talk about is then you know so we we have we end up getting our value here of of our rock so let me just come back here to this base color node you can see again I'm just following that same principle I talked about earlier where all my maps are just plugging into this base material mode so let's come back and I'm gonna turn off just my color so we can get this into more kind of a grayscale value like this so the next thing you know we're gonna do is we're going to kind of go through the process of colorizing this rock so one of the things that I do here with this is before I do this colorize so this is gonna be kind of my height map at the end you can see I'm extrapolating my other maps from it like the AO and normal and so on I'll take something like say a grunge map like this this one's just grunge zero thirteen and then here I'm just gonna multiply it over top of which my background hiked and I'm doing that just to get a lot of kind of intricate detail in here like this so now what we'll do let me just go back here to my base color just enable that and I'm gonna create a new gradient map here and we'll plug this in and so then I'll just go through the process of using the gradient map to kind of colorize this guy so let's let's plug this into our base color and so we're getting this so far now what I have here is just an image of a rock now I've imported here into substance designer just because I don't have two monitors and you know but really what you can do is you can have this image anywhere like it could be in just like something you search in a web browser really quick and you can use this really cool feature of the gradient editor called the the pick gradient so what I'll do here is I'll come in and I'll grab the pick gradient tool and then I'm just going to do a little sample of some ranges of some keys here like this and when you do that you can see that it automatically samples the color keys from this range and then you can see it you're pretty much done texturing your color I mean it's awesome I mean I can't get enough of this this feature it's really cool so another tip here and this was coming in from Gate onlus song so you have your gradient editor and so let's say I have these keys you know I might use this or sample these keys so that I could get kind of like a base value so then what I can do is I can just left-click and drag to select all these keys and I can edit them all together at once now so all these keys can be edited but a powerful way to do this is now that I have all these keys selected maybe I could come down here and you have your RGB hue saturation and value so now I might just maybe lower the saturation for just that range of keys all at the same time and you can see that now it's producing just a different effect if we do something kind of let's just go a little bit extreme with it I guess we'll take this up here we'll just lower it down and let's maybe grab like this range of keys desaturate it just my values and so on so you can just go through and you can tweak and change like all of these key values just by selecting them multiple keys like that so let me just don't do that so another tip then this one's coming from gate onlus on as well now gate allen works on the source team so a lot of the source materials that you see gate on has a hand in creating those so what i want to show you is a technique which is you can use your curvature in your base color and it's it's useful to kind of you know add a little bit of extra detail to that so one of the ways you can do that you have like your normal map that you have and then you can run a curvature just using our curvature node and so this one here you know i'll decrease my intensity a little bit and then so then this is great scale information but we want to mix this in with the base color so what I'm gonna do here is just create you know a gradient map and here you can see have three keys you have like a mid-range key here and then these three keys and this is then use an ABS excuse me the add sub blending mode here to bring this data back down now you might want to check and make sure that you know it's not affecting the albedo ranges that makes them fall out of PBR safe values and if that is the case you can then go back and then just tweak this grayscale range here on the keys to bring those values back into place but what you end up doing is injecting some just nice little warned edge detail and things like that in this rock section if I really just increase this a lot we end up kind of injecting that here into just some nice little small subtle detail into my color map where I didn't have that detail before so here's what it was before here's what it is after all right so kind of moving on a bit that was some of our workflow stuff some other things I want to talk about is optimization and so while we're here talking about optimization let's see let me open here my you have this guy setup let me just open a graph here that I can work with use this guy all right and so one of the things you can work with is thinking about how your graph is going to compute nodes you know so the way I like to think about it is when I'm creating content like you know I'll work this way and it's it's it's fun because you just kind of free-forming these nodes together you know just experimenting being creative once you've got it gone through that process and your materials done I think it's then good to do an optimization pass because you know don't you know what to worry so much about optimization as you're working unless it's really affecting your performance but it's kind of nice like after that's done now let's go back and do an optimization pass because it's it's one thing to have a graph that looks that that creates a very complex nice material but if that material is very slow to work with in the in the you and the editor its bogs down every time you want change a parameter it just you know it eats into your productivity so some of the things you you need to think about while you're doing this and and again these tips are gonna come from gate on so one is you know work in greyscale as much as possible and then you switch to color when necessary so that kind of goes back to that rule I was talking about or not a rule but the idea of keeping things grayscale early on as you work and then do the color at the end and also you want to think about 8-bit versus 16-bit so if you look a lot of these textures that I'm using here and these nodes are all 16-bit here and so because I'm generating my height map I'm keeping these at at a higher fidelity bit rate as I work through but then sometimes you can look at things like color and you can see with my color here I'm working at 8-bit or this is 16 here but maybe for my color I could maybe get away with doing 8-bit or maybe in some areas I could get away with doing 8-bit or something like that but you just need to think about the the the computational hit you might take for using higher bit depths another thing to also think about and I see this happen a lot on our forums is that well we have two engines within substance so you have a CPU if I come to tools here and switch engine you'll notice that we have this DirectX 3d this is the GPU engine and the CPU engine so to variants and they will you know the algorithms that's going behind the computations can be differently you'll have different mathematical precision levels from the cpu versus the GPU and because of that your textures can come up looking different depending on if it's computed through the GPU or the CPU so that's something that comes more into play like you really won't see much of a difference here in designer you can sometimes like if you're working on a material but if you're working on a material that's then going to go into something like say unity or something like unreal where you're gonna maybe not use the GPU engineer to use the CPU engine you want to be careful and think that okay let me switch over to CPU and make sure it's not going to do any strange computations or anything like that so just be aware that there could be compute differences in your materials based on the engine that you're using another thing is to reuse noises as much as possible so for example if I look up let me come into here and I have a material where I started to do this here so I have a bricks in here open this guy up so here you can see that again following that exact same process where I'm working grayscale as I work through this work through this material here this guy to the rounded Cube but notice that I have these noises so sometimes what I'll do in my optimization pass is I'll start to look at maybe at first I'm just just using the same noise as time and these making new ones making new ones just so I can work quickly but then afterwards I'll say okay where can I reuse a noise and so like here you'll notice I just put a section here for noises and some of these noises you can see like this black and white spots is being reused several times being read this one here's being riu this one's being used this one's being reused twice and so on so the more you can reuse the noises the more optimization you're gonna have or it's gonna be a bit better and then also you know any dynamic parameters that you're gonna have you're gonna want to try to place those near the end and that has to do with the overall kind of cache because you'll get better performances the more of these nodes that you can keep in cache as you're working so if you have a dynamic parameter that's gonna say change like way down here it's gonna change like maybe this this tile random think about you know one that gets changed all of these nodes you know going downstream here are gonna have to be updated now so maybe if I try to keep my dynamic parameter changes more towards the end you can see that you know the less nodes are going to have to be affected by this cache okay so just kind of moving on let's see if we can get some more stuff going here this time we're gonna open up want to give you an idea about let's see here so this is a mandala problem and excuse me Amanda pattern it's not a problem it was a problem but Vincente solved it so this one's coming from vincent go again a Vincent he's working the chat in our stream so if you take a look at this you can you can make some of these mandala patterns using splatter circular and chaining circular splatter nodes that can give some very interesting results especially you know when it's composed of a lot of these patterns that are excuse me especially if the first is composed of a lot of these flat parabola Lloyd's and you just adjust the radius and things so you'll notice that if we look at this this one here we start with this splatter circular and we have a radius setting here and then Vincent here just piped it here through the shape mapper to get like this effect and then he used the shape I've started the splatter circular node to then go in and get this this parameter or excuse me this pattern then again stacking again with another splatter circular to get this pattern and then if we just kind of go through some more of these shapes here here's where he's actually using this he's actually taking it and using flood fill here to get this data and then flood filter random color and then here in the end this is kind of the output that he gets so it's super interesting but you can see that he's coming up with a very complex pattern like this you know coming way back here and just starting from something like this here so again a lot of cool kind of different patterns you can do here with with the splatter circular in combination with shape mapper and so on so let's see here another one of these guys I want to show you let's come into here and look at this one here crease my resolution alright so this one here is like a crack pattern maker this is part of what I call the environment toolkit I actually shared this this is actually on substance share so here is so to create this this crack pattern what you could do is sometimes you could see like you might use cells and then if I come in and invert this so if I do let's see invert let's see don't do that one let's do just use this one here so you could do something like maybe cells 3 and you can see you could start to get some cracks but it's pretty uniform and everything so here kind of an idea of that was again going back to being able to use edge detect to produce something but to get all of the different kind of you know they get the variation in the crack lines what I'm doing here is just creating like just a blend just something like this and then running it through the tile sampler to get like a shape like this so now I'm starting to get like these lines you can see they intersecting here in different ways and so on and then to get more detail in this using slope blur so if we look now we're starting to get more of these kind of lines like this and this line and you know some of these different lines here and then running that through edge detects and warping it again warping it again and then slope luring it to get some more detail and so on and then within this you start to get you know some more just some more kind of intricate detail here in these cracks so you can see here where I came in to the using that just based on you know something just making shapes here with this tile sampler now here you'll also notice kind of jumping a little bit back towards optimization is this time using this shape node but you can see that you know I was going back and trying to think about the size of nodes so here I was able to use this gradient and then once the the pass is done I want like I said I wanted this to try to compute quicker so instead of computing this as a full like you know 2048 by 2048 gradient I was able to come in and set the size here to this node to absolute and then drop the width amount so now it's 256 by 2048 in this case and I used that because that's still giving me the result that I wanted but I'm still saving on kind of some of that horizontal resolution and so with that you can start to think more about the sizes of the nodes like you'll see here I use this gradient and I locked it to be 64 by 64 and where I come up with these numbers it's real easy you just like start down sampling the the resolution until your your pattern breaks because you'll see like the lower resolution like okay well I'm losing some detail and losing some detail oh it's gone it looks terrible I need to up it so I'll just lower it until I get to the level that it'll work the best so one way to kind of look at that is if you're using something like just like a uniform color so here you can see that this guy set to to set it it's resolution to the parent so and then here let's say that we had like a gradient map and we were just doing like this and then we're gonna do like a blend in here and we'll just multiply this alright so in this case you can see I'm just using this uniform color as just like a you know well I've just a uniform color value but it's an awful lot of a waste to make this just single uniform color you know compute at 2k so what you can do here is just come in and set this to absolute and you want to set it all the way down to 16 by 16 now I say this because this is the lowest resolution you can use in the GPU engine anything lower than that and it's no longer optimized so now if we take a look you can see that this guy 16 by 16 and then it's coming in this nodes computing really fast for this single uniform color but now we're still getting the color value that we want here and let's see going over just a little bit of time here I think I still have it just a little bit more Nessa we okay okay yeah I'll just keep going because still have some more stuff on the list here but but one thing to think about though is maybe you know I for sometimes it can be on a blend note it can be switched like maybe you're doing something like this and you can see that whoa what happened this is 16 and now the blend note is 16 so when you look at the blend node its background comes from I'm sorry it's resolution comes from whatever's in the background so in this case the 16 by 16 is affecting my blend so what you would do in this case is you can see that this node is set to its resolution to be relative to input I want it to be relative to parent so when I do that I now get the same result it's 2048 even though this 16 by 16 is in the background so again another way of just looking at the resolution sizes of your notes they can compute faster okay so that's kind of how we can do like a crack pattern here let's look at doing this is one let's see I think I have this flood fill up open already yeah here is one coming from casimir Perez I don't know if he's in here caz he's a substance designer master as well and so here's a kind of a tip where he used the pixel processor you know in a way that I like which means no math involved Harling so here's the pixel processor and if we look at it if we come in here and edit this so we have this guy and I'm just gonna edit the function so here you need to get the position value so it's real simple just get float to get to position this is the XY of the pixel count coming in or from the pixel processor and then he's creating or a vector float 4 which is just standing for RGB and a so those four channels so position this is going to become our the x and y's become orangey red and green and then you have blue for 0 and then here you have 1 for alpha and we just put those together as the vector float for RGB a and what you get is this UV map basically just giving you kind of this UV data now we have these 3d noises like the 3d whirling noise so if we look you know we can use these 3d noises but with the 3d whirling noise it also has the ability to go in and change these modes to like these different modes like Manhattan and so on and so using this technique the pixel processor to input in because these 3d noises will take a position as input so you can take this UV position it here as an input to the 3d noise to make a 2d version of the 3d noise and that gives you the benefit of being able to choose these different modes here for this worldly noise okay so another one I want to show you guys that I thought was kind of interesting let's come over here Vanessa we still okay let's do my materials so we also have a node called the FX map it's a separate type of graph here inside of substance designer a lot of the grunge noises a lot of the some of the procedural noises you see probably a good deal of them are made with this FX map and so here's here's a way to use the FX map kind of in a well in a kind of a different way so let's say that I want to create like a pattern like this if I'm gonna try it just let's come over here to the Edit and just drop the scale on this guy so this is kind of the start of this like metal grate here flooring and so I have this little pattern that was just created just by using a few of these shapes to get something like this so one of the things you could do here is you could say okay well I want to make this pattern ideally I want to make this so when I hit the space bar at tiles here so if I have just this shape if I do something like say well you know I'll grab the transform node and I'll plug this in and the transform nodal tile for me so I could do something like say this but if I try to get this up here in the corner and then like say rotate it you can see okay already I'm not getting what I want and if I hit the spacebar you can see that it breaks so here I have this shape and I'm inputting this here into the FX map so if we look at the FX map here you can see that it's using this this FX map chain this quadrant and when we look at it we can use that too because it's what it's doing is it's splitting this out into these different quadrants and then I can go in and I can split these guys to put this shape right in the areas that I needed to be in and I instead of writing a function for this I'm just coming in and just adjusting just some of like the rotation and the branch offset so for example you see if I can move the branch offset here for this guide should update its recomputing a bunch of stuff but there you go you can see I can start to move it and so on so I'm just here using the FX map not with functions or anything like that but just to line up a pattern so that I can create the exact kind of tiling that I wanted to get from that alright and while we're here just kind of talking about this one more thing I just want to show you guys let's see open this up so still okay yeah I'll stop it right after this one okay so this is the FX map again and I'm creating this bark material and so what I what I did is I have like just a regular kind of bark shape and I wanted to be able to basically like kind of replicate this shape you know back and forth like this to almost make it like the pieces of you know the bark are kind of building up on top of each other like that and so what I'm doing with this is I couldn't really do that with like a tile generator or splatter node because I couldn't just move it horizontally back and forth so here I use the FX math to do that so now you can see that what I'm getting here with this bill that for this bark shape is that you know I've get this kind of nice kind of stack effect here of these layers of this wood so if we look at the FX map and I come in here into the Edit you can see it's quite simple it's just an iterate node and the quadrant shape with my input image so in order to for the FX map to work you have to create some functions and so you can create a function for like the color that you offset the pattern offset the rotation and so on but a nice tip for working with your FX maps is that the is the order in which these parameters will process so for example if we look here at the top you know they'll process downwards like this so what you could do is in this color and luminosity if we look at this I can place all of the functions that I'm creating I can do all of that here within one function graph so what I'm doing is these nodes here are going to handle for me this random value here for moving this pattern on the across the X like this going from one basically from 0.5 to 1 it's it's you know seeing randomly if it's between a certain value based on where it's going to move like this and so I set that to be my rope I'm sorry I was wrong about that that one is my it's rotating slightly a small amount here based on these values I have and then you can use this variable set so if you come in here and you create like a set here you can create a node that lets you set a variable so you could call it you know whatever you want and so now I have this computation here saved in this variable and designers act enough on me here again it looks like so it's saving it in that variable and then what I can do is I can go back to say the parameter that's down below that which is the rotation field and then I can get that variable so now it gives me a centralized location to have all of these all of my function nodes within this top level of the graph so that means you know if I want to make a change to something I can do it all here within this color luminosity section and I can see everything all together instead of having to go into each individual parameter to change my function graph and so on and so I'm doing that here again with you can see it right here on the far the sequence node so we set the variable and then we can run a sequence which means the first thing it's going to run is this guy here which is going to output just a one for my luminosity then it will output all of this data save it here into this rotation and then so on so you can sequence kind of like a branch of nodes and then save that data into these variables that can then be used in other functions so unfortunately it looks like something's going on here with my system so that's a good stopping point then we'll say so thanks a lot everybody for you know joining in on just some of these kind of overall kind of tips and tricks we are going to have more presentations coming throughout today as well as we're going to be in our booth the next three days so if you guys have any questions about anything I'm showing here or any other kind of questions you want to ask about designer we have a lot of designer experts with us here so yeah just come up just tap us on the shoulder and we'd be happy to talk to you about it thanks a lot everybody enjoy the rest of your day [Applause] [Music]
Info
Channel: Adobe Substance 3D
Views: 14,773
Rating: 4.9411764 out of 5
Keywords: Substance, Substance Painter, Substance Live, Substance Designer, Sustance Source, texturing, texture, textures, ndo, ddo, quixel suite, megascans, painting, unreal engine, unity, pbr, physically based rendering, mapping, 3d art, materials, procedural, blender, generation, mari, the foundry, autodesk, maya, Allegorithmic, Substance Day, SubstanceDay, #vfx
Id: ld5UkmBfQHE
Channel Id: undefined
Length: 55min 27sec (3327 seconds)
Published: Mon Aug 13 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.