TOP 10 TIPS FOR NODEVEMBER - Blender Procedural Shaders

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Hi Erin! Thanks again 4 everything you are doin for us! Many of us are still having a 2D brain texture projected inside the skull but you are helping us day by day re-displacing it correctly to work with nodes, little patience so many right behind ya~~

👍︎︎ 2 👤︎︎ u/sazaamus 📅︎︎ Oct 25 2020 🗫︎ replies
Captions
november starts in a week today another year another month of procedural prompts so last year was the first time a lot of us really got to see the power of procedural shaders in blender with people like gabe and simon thomas and luca rude putting on these amazing shaders and this year hopefully more people are going to get involved so here are my top 10 tips for november if you've watched any other videos you'll know what's coming first go edit references we're just going to search the node wrangler make sure that this is enabled it's going to add a whole load of hotkeys to your shader graph as well as your compositing graph i'm just going to show you a few of them here if i had an rgb node and i want to connect it to the principal node rather than clicking and dragging that across i can just press and hold alt and right click drag gonna give me that quick connection i can press and hold ctrl and right click over the noodle to remove it if i connect it twice then i can shift right click over here to consolidate those with a reroute now if you want to move a reboot press g to grab it if you just try and click on it you'll get more connections we also have ctrl shift left click to view a node directly and the last useful one if you were to have two nodes and you can connect them with control shift right click and that's gonna give you a mix node the next add-on that i recommend is the node presets add-on what this does is it allows you to set a directory that you store node groups in so i have a directory called node presets that i keep all of my different groups in this is just a file which contains a material with the group in it now when i press shift a it's going to give me this templates option at the bottom of my add menu this allows me to set any of these groups that i've already made for example hex tiles this is now a group that has been appended to my file the third add-on i recommend is called node tabber and the no tab add-on has a whole load of really interesting functionality what this essentially does is when you press the hotkey you get a search bar much the same as just clicking search here but in this case we can search things like linear light and it'll add a mix node with linear light set or if you wanted you could just search by ll and get linear light equally map range could be mr or cosine all sorts of things makes it a lot quicker image textures i t super useful pretty quick kind of like houdini if you've never used that the fourth and final add-on that i recommend here is going to be the effects nodes add-on this is by iad from cg on fire what this add-on does is it adds a whole load of additional nodes if you've come from unreal engine or substance you'll be expecting many many more nodes and what we have now is we have shapes with a lot of additional shape we have patterns we have utilities we have mappings and we even have fractals on here amazing collection of stuff even just things like this linear gradient we have a visualized version here where we can say where we want each of these points to be and you'll see that this becomes the zero to one range of this gradient amazing stuff very useful definitely recommend this one the link down in the description to this is an affiliate links just so that you're aware but i do really recommend it just for the amount of utility that you can get out of these additional nodes and fractals man that's not something i thought we'd get a node for tiling is kind of the cornerstone of a lot of materials and there's two very simple ways for us to do this if i go ahead and i add an input texture coordinate node here and i'm just going to have a look at the uv coordinates now the easiest way for us to get tiling if you want square tiles if we add a converter vector map drop that on there and change this over to scale this is going to define the number of tiles that we have set up to five and then going to duplicate this and i'm going to change this to fraction and now what you've got is each section is going from zero to one in the x and the y direction so also going in the z direction if we were using object or some other three-dimensional coordinate space but for uvs just x and y so this is great because if i was to put something like a musgrave texture on here you can see that this has been tiled properly but what if you don't want squares well if you want rectangles instead of fraction we can change this to modulo now with this set to one and one we're going to get the same as if we were using fraction but if i was to change this to one and two now you can see that our height has a controller and also our width has a controller we now go back to our muscle it's not distorting it's just increasing the size of the tiles there so this is another really useful one and you get a sort of seamless look but it's kind of book matched or quarter matched actually rather than using modulo here i'm just going to take the output from our scale node i'm going to put it through a converter separate xyz now i have all three of these axes as scalar outputs as opposed to vector output scalar just meaning it's a single number first i take my x here and i add a converter math node and i set this to ping pong it's going to go up from 0 to what my scale is here 0.5 and back to 0 up and back down and so on it's just going to ping pong between 0 and our scale value we're going to do the same for the y component and the z component i'm then going to add a converter combine xyz and i'm just going to plug these three back in here now if i look at this on the musgrave texture you can see that we have a sort of book matched look and if we change the scale you can see that that is working correctly everything in real life has randomness on it it's random the way that people walk on a surface it's random the way that stuff gets broken on a surface all sorts of things are dependent on random values so it's important that we can get a random value per tile it's actually really easy to do if you have a procedural setup and you have either fraction or modulo we can go in parallel to the coordinate so if i select a node and i control shift d then i bring the input with it so i've just duplicated that fraction node i'm going to change it to snap and i'm going to change the values here to 1. now this is snapping at the same point as our fraction which again changes at once the output of this at the moment is very regular but if i take a texture white noise texture and i'll drop this on here and you can see that i have a random color and also value per cell now the same thing applies to modulo but you're going to need to make sure that you have the second value coming with it if i take my modulo and i ctrl shift d and then i change this one to snap as well you can see this already has the same values because we just duplicated so the tiles start to stop in the same place same thing applies take a white noise texture here and there you go random per tile this actually applies to the voronoi do the magic to the noise and to the white noise nodes now we can actually extract three patterns from each one of these nodes as r g and b because they have a color output so if i add a converter separate rgb to one of these noodles then you can see that my value from the original one and my red socket these correspond exactly however we also have the green and the blue values here so now instead of adding three white noise textures one for your location rotation and scale and any other things that you wish to be controlling randomly we can now just use the r the g and the b out of the color now if you're coming from photoshop or substance or some other editing package then the way that we do things in blender might feel a little bit on its head the main distortion is just a scary way to say that in order for us to move a drawing rather than moving the drawing we move the page let me just demonstrate this i've got a voronoi being driven by object coordinates and i want to twist it so rather than adding some kind of twist node after the voronoi say make the voronoi twisted we're going to twist the page that is to say the actual coordinate in order for us to do this i'm going to add a converter vector map plugged into my object coordinates and i'm going to set this to length this gives me a gradient out from the center starting at zero i'm then going to add a vector vector rotate now and i'm just going to drop it onto this noodle here so now if i was to look at my voronoi if i rotate this the whole thing rotates if i was to set this to the length node now you can see that i am rotating the outer side of the voronoi more extremely than the inner if i wanted some additional control here i could add a converter math node and set this to multiply now as i increase this you can see that the twisting action happens more this is the basis of domain distortion positioning with an empty is a really useful technique for us to be able to position by hand in an otherwise procedural system and this allows us to move elements of our shader around in 3d viewport which is really a very useful technique i'm going to go ahead and i'm going to add an empty if i move these up a little bit so we can see them now my texture coordinate node here has an object input field at the bottom here now we can either click on this and we can select our empty but you might have a much more complex scene in which case you can click the eyedropper or you can just press e while hovering over it to enable the eyedropper and click on your empty now when i go to object coordinates you can see that this will move around with my empty we scale this up or down coordinate space scales with it and if we rotate then you can see that we're able to rotate the coordinate space as well so this gives you really fine control over things like masking where you might want to put a specific thing at a specific point and you don't want to go through the rigmarole of working all out with math you can just add an empty drop it on the correct position and set your shader to reference those coordinates instead drivers are an extremely powerful way for us to get information from elsewhere in blender into our shaders there are a lot of options for you here but i'm just going to show you the most common one so if i go ahead and add an input value node here at the moment this value is just going to read out whatever number i put in here however on this value field if i type in hash and hit enter you can see the value field goes purple this means that blender is ready to accept a driver if i right click then it's going to allow me to delete a driver this means we are just going to go back to having a regular number in the field now if i put in hash frame then what this is going to do is it's going to tell blender that we want a driver and that driver is the frame the current frame if i hit enter now you can see that when we are at frame one we have a value of one here if i press play you can see this changes automatically let's have a little bit of fun with this i'm going to make a dot i'm going to make it move around in the circle i'm going to add in texture coordinate input node go to object and i'm going to add a converter vector math node set this to length this gives us the gradient out from the center the center being 0. if i now add converter math node set this to less than then you can see that we get the area which is less than this value in this case i'm going to set this to 0.1 i need to move my domain in order to move the dot i add another vector math here and i'm going to change this to add now you can see if i move these and we're going to move our dot i want to be able to drive individually the x and the y components so i'm going to add a converter combine xyz so now i have access to each one of these as single scalar input take a converter math node and we're going to set the first one to cosine and we're going to go from the value to the cosine and then the cosine to the x and then going to control shift d to duplicate with the input and i'm going to change this one to sine this one goes into the y now if i press play this goes around really really fast a little bit too fast now i could just join those together with a reroute add another math node and set this to divide or go back to your driver and click on it so it reveals what the driver was and type in forward slash for divide and then 30. so this illustrates that you can do math inside the driver i could make this even simpler if i was to get rid of all of these nodes i could go directly in the combine xyz and i could type in hash cos open bracket frame divided by 30 divided by two i'm going to copy this and i'm going to paste it into the second socket with sine instead and now you can see that we have the same thing going on but we've done all of that maths inside the driver in blender almost everything is animatable and we can use this to our advantage in shaders as well if we were to right click on a field you could see that our first option here is insert keyframe it's also got the shortcut i so if we press i on anything you can see it goes yellow that means that the current value has been set and it is also currently on a keyframe i'm going to use another function of keyframing that it's maybe something that you're more likely to use with shaders what i want to do is i want to add an input value node this is going to contain a piece of music let's set up our workspace to do this i'm going to set my window here to be the graph editor and i'm going to add another window here which i'm going to set to be the video sequencer this is something that many of you will not have used don't worry this is just going to let us listen to the music at the same time that it plays if i just go and drag a piece of music in i'm using a piece by harris heller so there will be no copyright strike fingers crossed now this has been brought in at frame two i want this to come in at the beginning which i do for this effect i want to move to the first frame with shift left arrow and then shift s to move the selected strip to the playhead now i can see that this piece of music is 3305 frames long gonna adjust my frame settings here so i've added this to the timeline and now if i press play [Music] you can hear the music if i right click on my value and i insert keyframe if i go key bake sounds to f curve and i just navigate to that folder i can add charis hello consciousness and you can see what it's done is it has given us an f curve that matches the amplitude of the song not doing anything with frequency it's just doing amplitude but if i go back into here you can see my value moves so let's do a very very simple equalizer let's add another ball going to use object coordinates we're going to add a converter vector math and we're going to set this to length i'm also going to add a converter math node and i'm going to set this to less than 0.1 before here i'm going to add another vector math node this time i'm going to set it to subtract and i'm going to subtract something from the y-axis and just to do this on the y-axis i need to add a combine xyz connect that in there and then the value goes into the y see it moves straight up so when we play this it's going off the top so i'm just going to add a converter math node set this to multiply and i'm just going to set to something a little bit smaller so you can see that every time the ball bounces there's an amplitude shift going on in the music [Music] so that's just one demonstration of how you can use animated values you can do this obviously with keyframes instead of music but i feel like this is a fun one the vector displacement seems to be the kind of holy grail of procedural shaders i'm not going to give you a full tutorial over in this video but let's have a look at the main concept which kind of opened the door for me on being able to understand how to do it when thinking about vector displacement the key thing to think about is that you're trying to make the surface of the object the same color as the vector that you wish to displace that piece of the surface by so this is slightly more than just using color because it also can go in the negative right so we can use negative vectors just to set up the scene here i've added a sphere which is mostly what we're going to be working with when we do displacement i would actually recommend using the extra objects mesh round cube but now i'm just using the sphere making sure that we are using cycles and we are using the experimental feature set we can go into our modifiers and add a subdivision set to adaptive after this i'm going to add a material press n and go to the options settings and change from bump only to displacement number this means that we're going to start looking at this socket on the material output ctrl h and hide this just to go out of the way just for this example i'm going to show you how to elongate a sphere pull the sides in both directions and it's also going to illustrate a couple of things about the importance of the way that we mask when doing displacement first of all i'm going to add an input texture coordinate node and i'm going to look at the object coordinates i'm just going to go ahead and convert separate xyz i just want to look at the x here i'm also going to grab a converter a math node and i'm going to set this to be greater than 0. well this gives me a hard fall off with zero and one i want to be able to pull the left hand of the sphere to the left and the right hand to the right in which case i am going to need to map range this to a range of minus one to one rather than zero to one if i just put this on here my output is going to be minus one to one what i can then do is i can add a converter combine xyz and i'm just gonna plug this directly into the displacement here and i'm gonna plug this into the x there is also a displacement node as well as a vector displacement node you don't actually really need these if you can just go directly into here at the moment we have a pill shape and if i go back to my principled shader and you can see we've got a couple of these weird lines running across here if i also add this onto the y then you can see that we've actually broken the mesh this happens with hard falloffs because if i add an input wireframe we're actually doing the adaptive subdivision and then we're doing the displacement this means that we can very easily run out of geometry while using hard fall off how do we get around this issue how do we stop this from breaking we can use the map range node on its own if i go into top view we can see what's going on so with this set to zero you can see that this is not being displaced anywhere and as i move that beyond it does so our original threshold position was at zero and i'm going to change this on the map range to be from minus point one to positive point one just give it a little bit of breathing room on each side now right away if i look at the wireframe node you can see that we've restart got a lot more geometry but it is still kind of breaking over these corners the map range node however has two extra functions that can help us smooth step which is going to round it out a little bit more and it's also got smoother step this is the one i'm going to use so you can see with smoother step we're getting some actual roundness onto this corner whereas linear was much sharper much more likely to shear the mesh now i could go even further with this and i could increase the length of that falloff and if we have a look at our wireframe node you can see we've got a lot more respectable geometry here and it's got a lot of an easier fall off as it comes around this corner bonus round material presentation spheres this is something that i see quite a lot and i also see quite a lot done incorrectly it's also important to note this will not work with all materials this is designed for things which sort of fit on a flat surface and you vote to displacement you do over the next month is probably not going to work on here any ray marching again not going to work here this here is the brick shader from a few weeks ago if i wanted to present this on a sphere the thing that i would expect to do would be to add a sphere and drop the material on so let's just do that let's delete this add a sphere it comes with uvs already so i'm just going to add a subdivision adaptive because this was a material which has surface displacement and i'm just going to add the material to it i may also wish to increase the scale it's looking okay but if we look at the top and the bottom we're getting a lot of stretching here and this is because the way that spheres get unwrapped is more or less square when it goes from a square sheet into the sphere it sort of pinches at the top and the bottom so what do we need to do in order to fix this well just go into edit mode and i'm just going to select the back half and i'm going to delete these this is because i'm working with displacement and i do not want the back of the sphere to be calculated in that adaptive subdivision go back out of edit mode go into front view now and i'm going to add a camera which i'm just going to bring back a little bit my camera settings here i'm going to change this down to 30 something a little bit wider angle now if we go into the camera view you can see that it's all on view and we're not seeing any of the edge now what i need to do is i need to go into my uv settings here so you can see that by default this sphere has a fairly uniform unwrap which for some things is really good if i go into orthographic front view by pressing one on the number pad then i can press u and we're just going to go down to project from view now i have a circle in my uv editor so if i go to uv and i click constrain to image bounds and i drag this down you can see we're stuck in the image keep it in the bottom left if i press full stop or period and we want the one which is below the l key on the alphanumeric section of the keyboard not the number pad this is going to bring up our pivot point pi menu i'm going to set this to 2d cursor when i scale this i'm going to scale away from that bottom left-hand corner and now it fills the space this is just a useful way to get everything to fit in together now if i tab back out of edit mode and we go into cycles view i can remove this multiply control x to dissolve it looks a bit strange because in orthographic view obviously we are looking at this without any distortion because we can't see that it's spherical when we go into our camera view you can see that it has been properly mapped onto the sphere you get the proper distortion at the edges that you want you don't get any pinching above or below you just get nicely wrapped onto a severe look that you want from a material preview sphere thanks for watching i hope this has been useful and i hope you get involved with november there's a lot of stuff going on it's all happening on twitter and on discord so if you are only through those two platforms there's links down below to everybody i've mentioned as well as the november io guys there's links to all the add-ons that i mentioned before um there's links to social media and also links to the discord we've got a lot of people big community now is like 800 plus people all focused around proceduralism so if you need help come and ask us we've got people all the time who can help so that's it from me thanks for tuning in and i will catch you next time
Info
Channel: Erindale
Views: 15,253
Rating: 4.9852262 out of 5
Keywords: blender, shader nodes, shading, beginner, procedural, material, nodes, shader editor, introduction, tutorial, eevee displacement map, eevee displacement node, blender pbr tutorial, blender pbr textures, blender pbr textures free, pbr textures in blender 2.9, Blender 2.8, vfx school online, blender tutorial, blender eevee, blender enviornment, blender easy, blender easy tutorial, blender cycles, intro to blender, blender 3d, b3d, learn, free, parametric, computational, design, nodevember
Id: 2C5j47qa8pA
Channel Id: undefined
Length: 21min 54sec (1314 seconds)
Published: Sun Oct 25 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.