Applied Houdini - Particles I - Particle Fundamentals

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
plaid Houdini's back with a whole new series on particles starting with this one particles one fundamentals we're gonna talk about what makes a particle a particle how does it move what affects how it looks and what are our production ways of setting up a simulation of how to bring particles into simulation and even how to make huge changes that affect the look after the simulation we're gonna talk about key attributes key workflows for getting what we want quickly and you'll see in no time at all we're gonna be able to build up this really cool magic effect that you can see here in the video so without wasting too much more time let's get started all right well before we actually get started with our magical effect let's just spend a little time in this quick demo scene I setup to show you the basics of what particles are and how they work before we recombine lots of millions of particles into one a fact let's start with one particle so what is a particle a particle is a point essentially that moves through space it remembers its position and it has a velocity which is pointing it in some direction so that is at its core really all particle simulation yes you could write a perfectly decent particle simulation with just those two pieces of data so in our case here's our particle represented by this big old sphere although the size of it really doesn't matter it starts here at 0 0 0 0 in the X dimension 0 in the Y dimension and then 0 in the Z dimension now we're only looking at the X Y here for simplicity but you know there is a Z dimension too because of course this is 3d so it has a position and that position will be modified every frame by our pop solver here particle operator solver and it's going to update the position based on the velocity now in this demo I've decided to start this off with a fixed velocity of 3 1 0 again don't worry about the nodes themselves yet we're going to get very much into each of these nodes and what they do but just be satisfied for now that this particle as you can see here has a velocity of 3 1 and 0 so what that means is it's a direction that the point is moving in over time it's not a position which is just where it is the velocity is essentially the difference between positions like so the only reason why it's able to get like if we have a position of their point here and we have a position of our point over here if we were to subtract those two positions we would have an arrow that pointed from 0 to here and you can kind of see that our represented as this green line also here in Houdini that shows us the velocity and the velocity is not changing over time in fact the velocity is staying the same as the point changes the velocity is saying go this far every second now second in Houdini is 24 frames so in theory if it starts at 0 0 0 and there are 24 frames in a second by going here it should have reached this distance and sure enough it does 3 1 0 3 1 0 so see the numbers here on the x axis 0 1 2 3 you can see a moving for every 3 across it's going it's going up 1 and that is of course because 3 1 0 so I hope I'm not beating that to death but that is essentially all a particle system is is the point in a velocity and we're going to modify the velocity in a variety of ways so what's one way we can modify that velocity well really the main way is never really to modify the velocity directly itself but we apply forces much like we've applied forces and our volumes lessens and in our ridges lessons we can apply forces here as well so this is going to apply a force in the negative y-direction so if this is the y-axis the negative Y points down and you can see that exemplified here with these red lines that's because this is red as you can see so we have this force attribute here and these attributes are pieces of data that are stored on every single point now we only have one point right now so we just have this zero here point zero which of course is the first point once we have four million points later being added into the sim every single frame or every second actually will have a huge spreadsheet of all this data but again let's just stick to one for now so we've got this force here and if I press play now now the point is curving like so so what's happening frame by frame we're still starting with the velocity of three one zero starting at frame 0 zero 0 but as we move forward this force which is being applied at every frame is pulling the tol the overall velocity down see how it started the Y started at one so this negative force is pulling it down so every frame the velocity the actual direction and speed that it's going in is being pulled down further and further like so because that force is being applied at every frame if I were to turn the that force off let's say here I'm going to say after this no more force and you can see the force now turned off here it's gonna occur for the first and then just keep going straight after that because notice how the velocity was being modified by the force for all the frames that it was allowed to then after that the velocity stays the same because the force is no longer being applied now it still has this new velocity based on where it started with and now it's just going to keep drifting off in that direction so this force I'm gonna go back to making it always apply this force is a force that you might be familiar with what is a downward force olds gravity in fact if you do nine point negative 9.8 that essentially is our gravity force you can see it starts by going up and then it just kind of plops down so that's one kind of force another force would be let's say if it blew back this direction so you can see it's the same idea this force is being acted on the x axis so it's modifying the X we could have two forces on at the same time now we're not going to get two different force vectors what we're gonna have is these two forces added together so here it is zero negative 1 zero and this was negative two zero zero so the total force is negative two negative one zero again it's just this one added to this one you can see them both being displayed in the viewport here so now if I play it I get this kind of it's going this way because the initial velocity but it's being pulled down by one force and it's being pulled back by another force both of these forces together are giving rise to more complicated behavior so those are pretty boring forces but if we turned on this for us look at that wild this force is using a noise and noise comes up a lot in dealing with particle behavior this is going to apply different forces in different directions and over over time even so watch what happens when we play this one the behavior of the sphere is going up it's curling around is coming back down and that's because all these force vectors here are changing over time look at it here and spreadsheet you're still starting with the same values here we're getting this crazy force vector here and it's changing over time kind of smoothly and in a kind of windy manner it's not totally random but different enough that we didn't specifically set out to say oh I know exactly the way I want this particle to move we are simply saying well I have a force here and I want the size of the let's say the wind gusts to be approximately 30 units I could make it smaller and you can see how it changes in here and who knows what we'll get from that so I'll change it up so we're basically giving it rules and that's what a lot of particle simulation is is coming up with rules to apply to millions of things and then we'll that'll give rise to interesting behaviors could turn these guys back on to if we wanted who knows so these two are constant still but this one is moving around a lot and so on and so forth so those are that's I think a good quick primer and how particles are working to recap real quick we've got a point has a position then it knows about every frame it has a whole bunch of forces that are being applied to it that are modifying the velocity and ultimately it's the velocity which is used to update the point and as a quick little technical note if you recall the the velocity is how far it moves per second that's how far moves every 24 seconds or rather 24 frames of course we're seeing an updated position every frame we don't wait for 24 frames before we move it from here all of a sudden to here ultimately what we're seeing is one 24th of this movement every frame which of course is why we get a little piecemeal movement and while that velocity vector is being changed we are getting a whole new velocity every time but ultimately we're only actually applying one twenty-fourth of that value every full frame later on we can ask for it to actually calculate more sub steps per frame or less or whatever it can we can go crazy with that stuff later on but it should be enough to realize that the velocity is saying the direction it's moving in and really how far it's moving by how large these numbers are if I were to change this velocity from being three one zero to double that six to zero it's still going to go the same direction it's just gonna go twice as fast now note that even though twenty four frames is still one second it actually took a half second to reach this area now whereas when it was like this it takes the full 24 frames to reach that area so a velocity in essence is a direction and also how long this vector is is the speed of our particle so before we finish up some other interesting little attributes that will go into more in a moment you might have seen this age-1 hanging out here that's simply storing well when the particle how long it's been since the particle was born so up by 24 it's been alive for one second half second 12 and so on and we have a whole bunch of leather little ones in here we have ID which is a unique number that identifies this particle even if it dies nobody will ever a new particle will never get that number zero and some other attributes that we will get into very soon but these are the main ones great we've made it through the absolute basics of particles all right with the particle basics out of the way let's get started so let's make a new project call it something like particles maybe a particles one yeah that's good so that's nice by having that now all of our stuff will be saved in one area so I could say go to job which has been set to that thing that we just made and I like to just put them right here in the job area and I'll just say particles dot zero that hip and you'll see if we check it up here in the Edit aliases in variables area that you'll see under variables the job is set to that thing we just set up so we won't well have it's already all nice and organized and set up and we won't be butting up against any other project files you may have great so that's that let's also set up our viewports in a cool way I like to take the scene view here go up to this upper right hand corner here and say split top and bottom like so and we'll go to the plus sign here and say new pad type pane type rather geometry spreadsheet and close that old sea view this will store this will show us all of our attributes and simulation data and we're definitely going to need that so I can you can click this down arrow here for now to minimize it and whenever we need it back we'll just click the up arrow again what else we want to do I want to make this a little bit wider and instead of splitting it up and top and bottom let's split this left and right like so and I'm gonna say this will be associated with this one they're both one here this will be associated with this one so I'll be able to look at my nodes in here and look at their parameters up here and we'll have this b1 here so we can maybe change simulation settings over here have the actual simulation running here and just see the results of that without having to keep navigating around you'll see what I mean the meantime go up here and let's just save it save current desktop as particles like that so now we can get back to it whenever we want by coming up here great save it again all right so let's with our actual simulation so first things first over in the object area here we'll press tab start typing out geometry to drop down on geometry node this is actually going to contain our emitter and also our simulation for that matter and I'm just gonna type particles like that and I'm going to dive in by double clicking select this file sup delete it because we're not going to be loading any geometry from the disk instead we're gonna press tab and type out pig and let's just use this test geometry pig head thing that I like to use no my other lessons and if you haven't seen my other lessons check them out otherwise welcome welcome back I should say so just move our camera so that we have we're kind of looking at the pig kind of like this kind of in the center and then once you find something nice control click on the camera and this is going to be the actual rendered area this light stuff not this dark stuff out here if you missed it click the lock while we're in the camera and we can move the camera around you can see it's changing the values up there but just something like this should be fine eventually we're gonna have particles kind of whipping out of here going every which way and that's we just want to make sure that we have some extra space to capture that so turn that lock off when you're done that way we can move the camera around and pop out without moving it obviously just go ahead and save it why not and we are on our way there all right so with that all done let's jump back into our particles area here I'm just going to turn off this grid thing you can see that there in the viewport we don't really need that so this is a stop all these things that modify geometry these are all stops so we have a pig head here well we could put a transform down here you know might rotate the thing or maybe we'll select some points and press T to like move them around either way this is all nodes that our surface operator is because they're working on the geometry we're really the surface of the pig now what we actually are going to end up doing is go into the DAPs area the dynamics operator area so let's drop down a null here so we'll say something like this is the emitter there's no this null itself doesn't do anything it just sits here and says I I am something that can be pointed to by something else you'll see what I mean later but for now just put that there it mostly just makes that our setup cleaner and more easily labeled and easy to follow along so we have that so like I said we have these other apps where we want to type here now is actually pop network you can see it there chop it down if SAP meant service operator pop means particle operator of course that's what we're doing this lesson is particle operations truth be told though real pop nodes aren't really used anymore they've been rolled into this top thing don't worry about this terminology kind of stuff right now but just so you know when we are in our networks and whatnot and we're seeing like Oh pops why are they called pops and nothing else that's why because there used to be particle operators but now they're all just in this third standard dynamics operator area so you're probably noticed that we got these squares these are already particles that or just got spawn but that's their start showing up black because this pig head has a material on it the skin color it's not playing nice with the particles we'll make our own colors later so for now let's just delete the material off of it you can see if I middle click and hold its called shop meaning shader operator material path let's just get rid of that so choose it from here it's gone now it has no material and now you'll see in the particles those squares go away great so now let's finally take a look at what's going on this is the simulation area itself in fact I'm gonna make this a little bit bigger like that we're not even using this side too much yet so what do we see here well we have the output that's self-explanatory this is the end of our simulation so everything that feeds into it is the sim so working our way up this node is the solver the solver itself solving in dynamics means evolving the state of the simulation forward by let's say one frame or one time step so when we had our particles moving across the screen before the solver is the thing that's moving everything to the new location so this is kind of the brain as you can see there's a brain and it's thinking about particles flying around it it's the thing that's actually doing the calculations of moving the particles forward we won't need to change too much if anything on this at all this entire lesson so let's just keep it as it is the pop object is the particle bucket so to speak it is the container that's going to store all the points that we're putting into it again that's something that we can really go into more depth in later lessons we probably won't need to change anything on here either which makes our job nice and simple this time but stuff like how much it bounces how much friction it has if it's colliding against the surface temperature that becomes relevant for whatever reason for you all that stuff will be set on here what we're mostly going to focus on this lesson is this branch which feeds into the pop solver here you can see it says on the bottom sources post solve we've got pre solve these are basically just things that you want the solver to do so the main one that we have here right now is a source a pop source meaning simply a particle source without it we have nothing we press play the sim is running we can see the cash represented by this blue down here it's filling up but there's nothing to do there's no particles in here in the bucket it's empty the solver is evolving and nothing and then outputting nothing the the source is really where we're going to start to bring thing particles in so the blue represents the pig head which is because we have the guide here turn the guide on and off to make this source that visual go away it'll do the same thing either way and what is it doing right now well it's just bringing it's randomly spawning particles all over the pig head and if I move my mouse around you can say sure enough we can basically see the pig head all the particles are do not spawning inside of it just along the surface and every frame more are being added so that's our simulation they just they don't have any velocity they don't have any where to move another thing is telling it to move anywhere so they're just called hanging around where they first showed up now how does it even know to bring in particles on the pig that's simply because the geometry source says use first context geometry what does that mean first context first context simply means this input input one if I put let's say I got rid of these and I said put it into here well now nothing happens because there's nothing here there's no nothing in the first context I could it changed the third context though and there it is so that's what's happening we could also manually point to it in the SAAP which is often what you'll end up doing actually where we say point directly to the emitter which is that so-called signpost which is again this note here so now that's connection early doesn't mean anything it's just pointing directly to that so that's what's so wonderful about Houdini is there's so many ways we can do things so we'll just leave it like that that's fine that's probably the most robust way so there they are so the emission type is scatter them onto the surface now we literally have a node called scatter and if you poke it up to geometry you can see it does that it will make it'll scatter as many points onto the surface as you like or at least as much as your computer can handle and that is what the pop source is going to do within the simulation every frame so we can also refine it to maybe an area that is in a collection of polygons maybe only source them on his ears we have the emission attribute where if maybe we will set an attribute and in spoiler we're going to we're gonna say only spawn particles in certain areas that are defined by some value that's all well and good probably one of the ones we're more interested right now is how many should even come in impulse activation which is on cuz it's set to 1 means spawn this many particles every frame so once again zero but if I were to say spawn 10 particles every frame you can see by middle clicking and holding on the any of these nodes you can see how many particles there are pop object to remember that's the bucket that's this thing here so the pop object contains 400 points and these are some of the attributes that we looked at in the first chapter things like velocity and the position and the age and all that stuff that's all being stored in here so anyway 400 points on frame 1 there's 10 points because that's what this is on frame 2 20 points and so on so this is literally saying do this many every time this note is evaluated and right now it's being evaluated one time per frame fans of this lesson series will also hear a siren outside my window right now that seems to happen a lot in this neighborhood broadcasting live from downtown San Francisco anyway so we're not going to use the impulse one instead we're going to use the constant activation which means basically spawn this many particles per second there we go so it's not spawning 4,000 particles on the first frame but these will add up within 24 frames to be about 4,000 you can see it kind of missed it by a little bit but essentially is that we can say how long we want the particles to live and we can say maybe start start them in different locations by changing the seed you can see the random distribution will be different we don't have any particular preference for this we'll keep that zero and I'm gonna say the life expectancy is how many again seconds not frames that want these particles to live so I'm gonna say I want this to live for one second or even let's say a half second that probably easy to see these will only live twelve frames so you see it's not it's never really getting out of hand it says it's spawning new particles and all particles are being killed spawning new particles all particles being killed when this was originally this much the hundred seconds it just keeps going and in fact I don't even want to have our simulation be 240 frames let's click this guy here change it to 120 so apply it so now we have 120 frames which will be about 5 seconds in fact it'll be exactly 5 seconds great so we got that we can come back and change a lot of stuff later but I'm gonna say the life expectancy again I want them to because this is an energy effect I want these points to fly out like flare up and then disappear pretty quickly if you imagine the way like sparks would so I'm gonna say life expectancy is 1 and the life variance is also 1 meaning the baseline life for each particle be 1 second but it can be plus or minus one second also so the end each particle will have different amounts of time that can stay alive for it can basically be 1 plus or minus 1 which means 0 to 2 because 1 minus 1 is 0 and 1 plus 1 is 2 so some of these particles will stay alive for 2 seconds so these particles stay alive for one second and everywhere in between if you want to see what those values are actually are being initialized to it's time to bring up our geometry spreadsheet from down here number we set that up before and if you didn't add a geometry spreadsheet down here now or I guess just use the one that's up here but I prefer to be able to see it so when we bring that up this is our simulation so there's the pop net meaning that's the node that we're in here's the pop objects remember that's the bucket that we're storing the particles in expand that out one time and choose geometry again if we middle click you can see geometry is the sub data that stores everything in it and here it is look at all those cool attributes there's only one attribute I'm interested in right now and that's called life life is how many seconds the particles are allowed to live for now remember we predicted that it would go from 0 to 2 because this is 1 plus or minus 1 and that's what we have it's not going to be exactly 2 but it's pretty close and it's not going to be exactly 0 but it's pretty close obviously if we had no variance it would all be 1 and as we increase the variance they can diverge more and more obviously completely an artistic choice but I think this will be nice from 0 to 2 we have another attribute called age age is how long it has been alive it's not a percentage of the of how long it's allowed to live it is only a recording of how long it has been alive once it gets to this value so like particle 33 here's about to die because it's about to exceed its life and it will go away so something like that cool when it reaches the end of its lifespan there's actually another particle called dead well they're not being set right now there probably is being cold immediately you can set the dead a do it yourself if you want these particles to die prematurely for example we can just put in a Pop Wrangler one of the many nodes that is just under this pop menu as you can see it's pop Wrangler here this allows you to type just a little bit of script yourself if you want I'm going to use the @ sign which is how you read and set attributes I'm going to say dead equals 1 with the semicolon at the end that's gonna kill everything the particle the solver knows to kill everything that has dead equals 1 in fact that's under update here Reap particles and you can see all particles the dead attribute set to 1 will be deleted I don't take my word for it just listen to the pop solver that's one of many particle attributes that we can modify and have a good time with I'm gonna turn that off for now though I don't need that yet and we may never need it again for this lesson but that's one of that's a particularly important attribute to modify later so what else we got going on here let's come back in here we have attributes we can inherit all the attributes from the surface that we are spawning from so this surface back here so anything that we sit on here can be inherited and we're definitely gonna wanna do that by our particles that could be things like velocity or color or any kind of other arbitrary data that might be important to us for now there aren't any things specifically we want to do but we could do this we can say set initial velocity so much like our life variance being plus or minus one on this the variance on our velocity will be plus or minus one on these velocity vectors so to zero it'll still be getting no velocity but finally what happens if I say one one one the particles move this velocity is being set only on the frame that the particle comes into being meaning the frame that it was birthed you'll see a reference to that under the birth tab we can make a group of them and we can set these attributes like the life much like the life being set on their first frame this is the velocity being set on their first frame we can put these little streamers on and you can see them fly we like so like little tadpoles in a pond or something pretty cool that doesn't affect when they die you can see them winking out of existence as they get too far it's not the distance that they've gone it's too far it's simply that their age has reached their life attribute and they've been reaped cool so we can do that but this is just a noise you know this is a purely random velocity that's being applied it doesn't look very interesting so let's come up with a more interesting way to apply a velocity to this all right so let's turn off this let's go back to use inherited velocity so it's back to inheriting well nothing so I want to show you how it can inherit things for example I can say let's say if I drop down a color stop I'm gonna make the color of this B well I could make it just red let's make it more interesting I'm gonna say just be Randa a ramp from attribute an attribute can be P cool so now it just has some colors that's really the whole point of this so it's got some cool colors and now if we come back in here note that the particles themselves have cool colors they have an attribute called the C D which means color diffuse back in here middle click and hold this thing here made a CD attribute didn't exist here just had position before now it has a position and colored a few stored on every point we can see that attribute like we can see any attribute just by looking in here red green blue all kinds of crazy colors the colors actually as a point of fact are based off of the positions they are in world space it just happens that that looks like a rainbow but it's perfect for this demo so coming back to here if I were to say set initial velocity they flying away and they retain their color the color is not being updated or anything every frame it was stored on that first frame when it was inherited and now it just is that color awesome so we don't need to inherit the color in this case but what we really need to inherit finally is the velocity that's how we're going to sculpt our simulation is by pre determining what the velocities should be so as an example of setting velocity I'm going to use a transform here again it's before this emitter stop so it'll still be reading this is still going to be the source for the particle so we can do anything we want before that and it's automatically gonna feed in so I'm gonna say on this transform alt and left click on the attributes we want I'm sure that's okay weird so all left click on that and that and then I'm gonna go to some other frame like 8 I'm gonna rotate it and I'm gonna move it I'm gonna alt left click on both these again so now we have a keyed animation from here to here and I'm just gonna move it a little bit more all the files click there and I think you can use as much as you want but the point is is that we're moving it around so it inherently has a velocity now each point has a velocity that gets itself to its new position that's what well and good if you remember though those velocities are stored as V so when particles come out of here its we have a V attribute but if we want to inherit the velocity that means we have to have a V attribute here which we don't even though it's moving it's not actually being stored as a velocity attribute so one of the weirder places that you can do this easily is is the trail stop the trail stop is usually used for making copies of you drama tree as it moves to the space but you can actually just have a computer also where it's just going to do the difference of the current frame to the previous frame and it's going to store it and we can see that with their velocity trails thing so you can see here that streaking is the velocity like that it's now we have a V vector and that means we come into our sim you can already see it it's inheriting well actually let me go back to using heritable ASSA T it's going to inherit those velocities see that in fact for this I'm gonna turn the guide back on you can see they are moving well the first ones don't move because on the first frame there is no velocity but you get the idea they're getting they're inheriting essentially the inertia of the pig moving if you really want to see it go wild we can just up the amount of particles up so now we don't have like a random spray now we have like a spray with some form to it it has it's based on the movement of the underlying object they all have their own velocity vectors and you can really see how that is working now we can add on random movement on top of that which is why we have add to inherent velocity where now we can add this one one one jittering on top so it's still largely going the same way but it's also getting some randomness on top of it obviously you can adjust this you can just give it a little bit of random on top of it and so on although once again let's just go back to using the inherited velocity great so we've inherited color we've inherited velocity we know how to change the life how many are being made we are well on our way all right so we learned how to make velocity by actually moving this thing around and then calculating a velocity from that we also set our color manually over here and also inherited those colors as well but delete all that let's actually make let's calculate some interesting velocities and colors and emission attributes and all kinds of stuff procedurally using the handy dandy point fob the point Vaught meaning vector expression language operator will allow us to write a little bit little tiny program to do exactly what we want to do rather than rely on nodes as they already exist so I'm just gonna say emission velocity and color so there's nothing really on the node itself of particular interest to us we're gonna want to dive into this and build a little program in here from little building blocks so for example I want the velocity to not be just randomly thrown out of here and I don't want to be based off of how it's moving I want to be Stockstill but I want the particles to fly out using the normals I want them to fly out in the direction that the surface is facing so to see that I'm going to drop down a normal stop here and it's gonna make let's say let's say add normals to the points themselves and this little visualizer here display normals click that and then we can see these let these vectors these lines are pointing away from the surface I want my particles to move in that direction so for example if I fly into here I can say well we just made an N attribute for normal and there it is this is one of the commonly used attributes that they just have on this we can bring in any attribute we want but these are commonly used ones so I'm going to say take my N and you are now being copied into the V V as we now know is for velocity if we visualize that the N vector is literally pointing this way and it has the line point that way for a velocity vectors they actually point the opposite direction because they're meant to be a tail that is following behind so even though they're the exact same vector they actually point in opposite directions so sometimes I like to use the normal one because it's actually pointing out where I can see it rather than inside where I can't anyway we've set the V now we have it V has been copied from N and if we look at this sure enough they will be moving away from the surface of the pig so that's cool so how about we limit where the particles show up right now they're showing up everywhere all over the surface so we can do that too I'm gonna say let's make a color on the surface that will signify where the particles should be so I'm gonna make white patches where we want lots of points black patches where we don't want any points there's lots of different patterns to choose from all here under the patterns menu the one that we want is actually under the noise patterns over here which is called anti aliased flow noise we could use periodic noise turbulent noise a lot of these noises are cool in fact many times I do use turbulent noise this time I'm going to use anti aliased flow noise so the anti aliased flow noise is a time and position dependent noise if we limit it to just position for now as an example we're every single one of these points on this mesh is going to run through this program and have some value come out the other side so for example every point has a position as we well know now is attribute P that is the input to this little machine here that makes a noise pattern meaning a white to black a grayscale pattern of noise if I offset the noise you can see it move around inside of the thing here I'm gonna put go back to zero though so that input position output this color here it's not dependent on time right now I just only dependent on the position but nonetheless we created a CD attribute we can now use that CD attribute back here on the emitter and you remember I kind of skated over this before but on the source tab we have a mission attribute set it to the color like so and now we can see they're only being emitted in certain areas kind of hard to say so I'm gonna say there we go with this being displayed and this just selected the selecting it is enough to have the point show up so we can see the points are coming from these lit white areas what are the actual values for this we'll select this guy open the geometry spreadsheet and take a look here's the color attributes the colors are going from approximately point 25 2.25 you'll notice that it's the same value for red green and blue now that is why it's black to white because they all have the same value that is because on the noise itself it is a 1d output meaning it is only returning one number this dotted line here means I'm a 1d output being fed into a 3d because color has three values it allows you to do that it's just kind of warning you that well technically I'm not taking a vector output and putting it to a vector input but I know what you mean you want whatever this value is this one-dimensional single number to be copied into all three values here I can actually do a 3d output like this now we have that it's now a solid bar and now we have three different numbers for red green and blue and you can certainly see that on here some of those values are still less than zero though and they just look black in our case the emission attribute on our source thing here a 3d vector doesn't mean anything here it just simply wants a number more or less between 0 and 1 to say how many particles should be here so I'm just gonna say you just just generate a one dimensional noise for this it's just more intuitive so there you go values that it's negative it just simply won't get anything and as we were already seeing with the emission over here except great so that's fine let's have it actually make this white area move around over time though like I said if we delete this we can go back to here and get a 4d input note that as long as this is connected this 3d output to the input ear we will no longer get the option for a 4d input so watch out for that delete this first then go to 40 input 1d noise and now we can do that but first you'll notice the colors change to bright green because that's the connector for a 4d input what do we mean by 4d what's the classical fourth dimension which is time so we take position X Y Z and the fourth dimension time all four of those values together can be input to there and they were to do that start typing vector and choose vector to vector for this one here put down it wants a regular 3d vector here and then the fourth value will be time here now we have that bright green tennis ball looking thing to pump into this and sure enough now it changes over time in fact we can even control time right we're just a relief we're just reading in whatever the time is in seconds but we have even more control than that I can say for example before the time actually reaches this noise let's change it let's multiply it by something so we can actually make it go faster or slower so like I could put this here and K we'll call it something like time scale and then this will be like the nice pretty thing that we see up top Tame scale that's not right there we go so putting it to 1 it will be essentially what it already was because any number times 1 is itself but I could change it to 0.5 to make it go twice or half as fast even less as you can see super slow or I could go 3 times as fast I'm gonna want to go fast like this because this is like a quicker energetic look I think cool so let's see what that gets us I'm go back and a little camera here so now you can see it's being emitted from different places all over so as things light up with the with that white area particles will come out of those areas this is a very common technique in production for getting a random looking source if something's on fire we want like fire to be shooting out from all over the place if we want magical effect like this one's gonna be we want it to just be you know traveling all over the surface to make a much more interesting look than it's just all flowing out for the same place at the same time similarly we kind of have this big wave effect where everything is kind of going the same speed because everything is going the same speed it's literally all going the speed that the normal is which is a unit vector meaning that it is one unit long everything is going to go the same speed there so why don't we just take this noise that we just made and multiply that by the normal so now if we look at this again we went from having essentially if I take the normal we'll put it in two we'll put it back into here so we went from having this these were the unit normals that we were using for the velocity but now if I say the normal is going to be multiplied by this white to black field here which is going to be the velocity in a moment you can see they're much smaller but they're also different sizes now now they are the highest when they're in the midst of the white areas as we would expect and they're the smallest or just pointing inwards in the darker areas so I'm gonna delete this thing here the important thing is that it's it's feeding into the velocity that's actually what's going to be used so let's see what that looks like now like I said it's much slower but now we can see the speeds vary as that energy field travels across the surface it's varying everywhere so now we're not creating quite as predictable waves as we're before especially some cool little pops and fizzes around here so that's looking pretty cool OOP there we go all right so that's looking pretty cool there's still a lot we can do though so let's dive back into the point fob and for example right now we still have the velocity is kind of just going in the one direction it's going out away from the surface so what if we take this paradigm here where we're using the anti aliased flow noise and used it for the 3d noise that we talked about earlier so looking at this here now remember that the 3d output means that we're getting and I'm just piping into the color for now it means that we're getting three different values for that for the RG and B and that's what we're going to want to use because of course our vectors that are defining the direction pointing out pointing the direction we want the particles ago we're gonna they're going to use an XY and Z so let's put this color back to where it was then that's gonna say instead point out use the normal let's take a look at the surface here so that looks pretty cool as it is and as I move this around we kind of have that wind blowing around along the surface here it's pretty nice what if we normalize it to ensure that we have it be a unit vector like so we that looks cool so let's take that value and add it to the normal vector we were already using bearing in mind again that currently our the one that we are we're already using is everything pointing the same direction straight out and now by adding to that original normal vector this guy now we'll have a mix so let's see now we've kind of got this this look hard to see maybe it would be better if we had the actual particles tell the tale so I'm going to come back out here and say pop net do your thing and there we go so they're no longer just pointing straight out they are being affected by all kinds of directional changes from that pretty cool so what else then it's always what's always what else what other patterns and noises can we keep layering on to this well I would say right now it's going kind of slow so let's kick it up a few notches now I'm going to start to work over here too or I'm going to say I'm going to do a lot of my level my emitter level changes in this window and our solver level things over here or our simulation I should say so for example we lost a lot of the speed when we first started multiplying in this guy so I'm gonna say to make up for it let's make him just have a higher amplitude so now it's pushing out that much farther not ready I'll give those those are those are the little trails so it looks cool maybe it's going too fast or put another way maybe they're just kind of uniformly just going they're just kind of getting emitted and you just kind of keep going the same speed which of course is exactly what's happening so I'm gonna say let's introduce a new thing we talked about forces already but we haven't talked about the opposite of that which is called drag pop drag particle drag drag will basically reduce the energy on the particle every frame it's essentially kind of a force pushing back the other direction it's also could be considered air resistance as this is putting it here so what could be a nice effect a lot of times is having things erupt quickly and then slow down I'm also gonna take this opportunity to just have more particles come out of here so let's just make the speed that so now now we can kind of see a little easier so that's cool so they're slowing down we can see them kind of slowing down as they get out farther but it's not enough I want them to start quickly and slow down quickly you kind of get a much better feel of explosiveness from that so now you can kind of see they're they're erupting onto the scene quickly and then coming to a stop of course now they're just not going as far as I would like that's okay because I want to add a much more explosive force into this thing now anyway looking at our emission source here again we can see that we have these general gray areas and we know that we're multiplying our velocities by these kind of general gray areas what if we added some spikes into it so it's not just this kind of blah pattern that is a pretty key concept in effects which is layering again patterns and noises on top of each other to break up to break up and to keep breaking things up more and more and more so I'm going to take our 1d fluid noise here copy and paste it and just so we can get a look at it I'm gonna say pump that into the CD for a minute obviously it's the same right now but what if we up the frequency quite a bit see how the features are getting smaller and smaller and smaller and smaller I want these to be really tiny Peaks of course now at 10 it's just kind of chunky because we don't have enough resolution on the model itself so to that end come out here and say hey how about we add a subdivide like that now we have all this resolution and looking at it now you can see we're able to capture more of that small detail in fact if I go to 2 you can see it getting captured even better because this little program here is being run on each point so if there's not enough points to capture those small details you're just not going to see them all right now I still actually want it to emit I want the color really to still just be that one big blah one but I want this one to influence the velocity so let's pump that let's rather not add it here let's multiply it by the vectors that are reaching into our our thing here so let's take a look at that see these little spikes that we have now that's again because without this it's just this big kind of blah shape which was interesting but now it's even more interesting how about that and I could already see that the velocities have gotten even smaller so why don't we take the amplitude and multiply times 10 so we get to that so let's see what that looks like and actually I just promised us that I would be doing that change over here and then I meant right back to over here again my mistake I'll try to be better about that so coming back into the solver again turn that off let's see we get now so we have those big spikes but they're still being toned down quite a bit by the drag that's okay what if we turned it up even more this could be like 30 or something so that's looking pretty cool let's say what else always what else I would say one thing naturally now that we have this subdivide going on here it could be nice to perturb the surface here with a mountain drop a mountain down and say like I don't know if you like 8.1 so it will animate the time with a dollar T the idea being to get this kind of like undulating again energy looking things again this is and this is still gonna be the source but now we'll be sourcing it from this slightly moving around area and I might even go higher than that something like that that's cool so that's nice that's a quick and easy way to to get something like that going I'm gonna come back in here let's get rid of this normal thing just so we can see again so this is our or what our emission area looks like we could come into the this thing we could rough it up a little bit to the higher we make this rough as the crazier it gets it's obviously too much but maybe we might move it up a little bit just to crunch it up just a little it could be nice and I'm not even I like look at this one but I'm just gonna crunch it and maybe even crunch this one a little bit so it just aches again it just breaks it up a little bit it doesn't add like the extreme peaks that this breakup did but just not lots of little things that add up to be a nice big thing so there we go so pretty satisfied with their that is for now we're gonna want to actually start looking at what this appears in a render before we make too many more modifications to this so we've toyed extensively with the emission properties of our sim but what happens when the actual particles are in the simulation what happens then well we added the drag we also don't need this merge by the way she got rid of it a while ago and let's just get rid of this now - we're never gonna use that so the pop drag is again slowing them down but what if we sped them up again let's not as much as we're Altima League owing to lose a lot more energies from this drag but let's make a pop force and add some arbitrary force so they're shot out into the world and then we want some force in the world to do something so for example as I showed earlier we could just give it gravity and do that and now they're just falling which is weird because there's a lot of drag preventing it from falling as fast as it should be but nonetheless you could do that kind of force but I don't want to do that kind of force I want to give it a kind of swirling in the Air Force you know the Air Force so that's what this noise is for now the amplitude is set to zero right now so we're not seeing anything happen turn the guy on if we wanted and that will be over at the origin there in the middle but I don't even care about that let's just turn the amplitude up and let's turn up the roughness a little bit and the turbulence itself the turbulence is kind of getting more little little details in it in the and the way it moves around so check this out we can already start to see it where before it just came out straight and slowed down now put this on they swirl around a little bit cool so kind of like with our mission before I like to layer these so this is good let's make another one though two forces and I'm gonna say the difference here is that this is going to be a much smaller one so the swirl size again is going to be the area in space that it kind of tiles the pattern the noise on so if this is one it's going to be an area this big and this one's going to be a smaller one this is a much like in the volumetrics lessons when we would layer the disturbance Microsoft's on top of each other so that we can control the force at different different levels so I'm gonna say let's double it you're off the bat alrighty good that's good for now in fact that might be too much already so let's go back to one great so that's a lot of particles and as I started to say before it's getting kind of hard to see in the viewport what's going on because there's so many particles ultimately we're gonna actually want to render many more particles than this but a lot of the look of the sim is going to be dependent on how large they are in the render what color they are things of that nature so that further ado let's move on to some preliminary rendering things okay so I got some points and we'll just we'll just try rendering some of this and see what it looks like so come over here let's make a man trap because that's what we're gonna actually use for our rendering we'll just leave like that for now well do four under frame range we can come back and change some of these settings later but this is fine for now let's also go to the material panel here if you don't have one just make it you know through here material palette I want to grab a constant material it's in here somewhere I think than our utilities there it is drag it in and we can it's kind of weird like we're not seeing it when you click on it it's not showing up up here so just just come back out here go to shop that's actually where it lives or actually lives in Matt now I should say there it is material area so constant so I'll call it constant particles good enough and with that named let's apply it here we can just drag it in on to it or you can just find it in here either way it's fine and that should be enough to go to our render view and there's the the rhop that we made the actual match for renderer and say render it there we go that's it so I hope you enjoyed this lesson and I'll see you next time for particles too and jokes jokes jokes anyway so yeah obviously this doesn't look very good we can see it I mean it renders quickly certainly it's got that going for it but you know this isn't really telling us much of anything the first of all they're too big so let's let's make them smaller all right so let's actually start to render this thing now and adjust the size and color and stuff like that so let's go over to the out area here dropped in a mattre node and we'll we'll deal with some of the settings later but for now just leave that there it's good enough and that's honestly all we need we can just go to render view right now and say click render and that's what we have and looking good pretty much perfect and that's it that's that I guess what good effects looks like and that's what you came here for let's maybe we can make a little better though so let's go into here that's the waypoint Bob one of the main things we're gonna want to tackle is the size the size is handled through an attribute called P scale now unlike before when we were saying the color and the velocity on this thing P scale doesn't exist here that's okay we just need to make a bind export type P scale here and now we can set this by inputting something into it just like as if we were inputting into this so for example we could drop a parameter down and say something like we'll call o overall skull or maybe even overall scale and like that and now I can say a whole lot nothing because we didn't actually look it up look at that so there you go so now we can change it obviously it renders pretty fast because there's not that many of them so we'll just we just tweak that to the cows come home but I'm going to start at point zero two there's a lot wrong with this there's a lot that doesn't look particularly good the first thing I would say is let's leverage the fact that we know the age and we know the life of each of these things meaning we know how long again it's been alive and how long it's allowed to live and we can from that well we can divide the age by the life to get a value from zero to one come on breakout age by the life that's now we more or less have a value from 0 to 1 it can actually go over 1 here because of the inaccuracy like it might actually have a light an age that's a little bit over its life so just to be safe let's clamp it from 0 to 1 and with that number I'm gonna say multiply that number by our overall scale here and that could be our output so what is that doing well it looks at different at least what's happening here so these particles are getting bigger as they live as longer they're alive the bigger they get now that's not what we want we want the opposite of that we want them to get smaller essentially we want them to fade out as they get bigger all right well we could reverse it they could literally take the compliment which is an operator that all it does is a 1 minus the number and you'll see now do they start big and as we move out it gets smaller and smaller so that's good we want that now what else though what else is going to be the mantra for this entire lesson what else would be how about the particles themselves have a more interesting distribution of maybe they shouldn't all like they should all fade out but they shouldn't all start they shouldn't always all be the same size or they should all start the same size as about to say so to do that let's just get let's just start them at a random baseline size then this random number will return a float a scalar value between 0 & 1 that sounds nice and you have to base it off of something we could base it off of their point number except that their point numbers were always changing as more points are being added and deleted the ID however does not change the IDs are never reused even after a particle with an ID dies when new products were spawned later the ID is retired so here we go so I'm gonna say instead of doing this thing about based on life let's just hook this in here for a minute and we can see we're sure enough we have a distribution now of different sizes another problem though is that this is a uniform distribution we have just as many small ones as we have large ones we never want that or we pretty much usually never want that I would say typically we want to have a few large ones and many small ones the way we can achieve that is by using this power we want to raise this to a power of two or three so if I go to two here you can see we still have the ones that we're big are still pretty much the same size but the ones that are smaller or mid-range got smaller so if I do three it kind of suppresses it even more so now we have some big ones and many small ones in fact we had probably a lot now that are just so small we can't even see so let's bring some of them back I'm just going to add 0.5 to everybody that way nobody ever actually gets to zero great so now we have a distribution of some big ones and many small ones instead of making that the only thing let's combine that with the overall scale and with the fact that it gets smaller as it moves away cool that's something something I want to get rid of though is this these colors we don't actually want this to be white and gray I have a much more energy looking cool thing in mind so I'm going to say save it in fact I'm gonna pause this for a moment let's come back out here so let's choose a frame where we've got more particles like this let us say that we want this to have a color based on how long it's been alive like it should fade out in color or maybe even across colors over time we can do that in fact we just established that we have here a number essentially between 0 and 1 of how long it's been alive so I'm going to feed that number into a ramp ramps are pretty cool so this ramp parameter will take a 0 to 1 0 meaning use the color on the left side of the ramp and the one being use the color on the right side of the ramp and we can put as many colors in between as we like so I'm just gonna say that oopsies there we go that will be that so you can see they get whiter over time now see that how they all start pretty much all start dark and they get brighter over time that parameter actually lives up on top with the rest of the parameters so let's name it something like color ramp and we can have it even say that in case we forget what that is and I'm gonna say let's have it mostly be this kind of teal turquoise a stylish look like that and let's have it let's have actually start bright white so it starts with like a piercing magnesium white and then when it's finally about to die it can be this kind of dim blue so this is going to be our range until we change it and you can see it looks like that you can see it becomes blue as it goes on these ones towards the edges oops that and again it's hard to see in the viewport so this is especially important now to look at it in here so we can see that it certainly all starts white becomes like that okay so these particles are obviously still too huge so I'm gonna say reduce this by a tenth so now the particles are pretty small but now we can realize that we probably don't have enough particles so let's go to our simulation and let's make sure that we're working with like this is a hundred thousand let's let's up that by a factor of ten so now we're gonna be putting a million particles in here every second but that's okay we can still handle that this something like that so that's not bad we got lots of little particles if you still see it it renders pretty fast hopefully on your computer as well good we could sign as see the shape it's definitely fading out getting smaller as it goes I want to actually make another ramp let's have it for example I don't think that the particle should start full size necessarily not that these are that big but I think it's it's a good idea to use the other kind of ramp here we'll call this size ramp where we can actually say instead of using doing color do a spline and this spline here we can draw it like this so once again we're gonna say I guess I should hook it up if you're going to do that we can say how about ramp and then maybe quickly ramp out again too so I'm gonna add this into our multiply also how it's smaller than ever but the point is the particles will start small or basically non-existent quickly become large and maybe they should still be white when they're that large and then fade out like that something like that cool so I'm gonna not don't need this simmer right now okay so that's cool what else all righty so let's say let's move this further along into the simulation I'm gonna say by frame 48 we know that even the oldest particles will have to be dying now because we said that they would start with a life of one and we varied it from one to zero so once this comes back to us all right so there we go so this is a pretty full array of everything so now we can get a better idea for example I'm not seeing any of my dying particles that should be blue in here that's probably because they're so small that there might as well be dead that point so I'm going to say let's let's move this up a list anymore that also the particles might be actually too small let's give this 50% more on that if they start to see them coming back somewhat I'm gonna say also probably this should go out fully up to one so that this is never reducing the size of anything now it'll go from one to two remember that this is returning something from 0 to 1 this is remapping it 4 to a different 0 to 1 and now if by adding 1 it's going from 1 to 2 so that's not bad so I want to like kind of sanity check this to make sure that we ever see blue in here so now I can start to see some blue in there I could probably move this up where's that get here all right now we can definitely see some blue then I'm gonna say so that's looking pretty cool that's I'm starting finally starting to be a little happy with this something I would say is in order to make this look like a bright popping energy look I'm gonna say going into the color here let's just multiply it by like two or something we could make a parameter for this but this is fine too so now it's got this like brighter look these numbers are literally like over let's say one one one for white these might be like two to two now but you can feel it you can feel how it has a brighter like a pop to it great all right so we're really getting there now what else we want to do mm okay so before we kick off a test render maybe this could be a little bit nicer of a color or maybe it could be like this cool purple here yeah that's cool now we can kind of see it I like that alright so something like that and you know obviously entirely up to you I would also say though overall one of the most important things that we might want to do now is we've got a million particles coming in I mean we can go way higher I mean you saw how fast it was to to simulate this even as we were playing around with this stuff I would say let's do one of my favourite old things here and that is let's make a take where we make an HQ mode so I'm gonna say normally or on this mode here we can change everything HQ whenever once we make it take we can't change anything X unless we specifically ask for permission to do it and then it just allows us to make overrides and store them in these takes that we can change around in this case I'm gonna say it's nice just bringing in a million particles a second to work around interactively like this but I think when I actually render we could probably get away with a lot more so I'm gonna say in HQ mode let's bring this in and do 4 million instead that's 4 million so as you can see in main mode back to 1 million in HQ mode 4 million awesome so that's cool and if we're gonna have four times as many particles then we're probably gonna want to bring the size down if you figure as the radius is halved you can fit four times as many things in there so I'm gonna say right here size and color when we're in HQ mode I'm gonna because we just added four times as many particles the remaining the existing particle should be half the size so one two five would be half the size here and there we go I don't have this thing on right good let's just stop it there awesome very good so this is enough I'd say at this point to say let's get a let's get a test going just to see where we are so let's go back over to the Metra note make sure that it is doing the frame range I think it would be useful to turn on motion blur motion blur will get because we have the velocity on here so it'll streak them a little bit and if we're doing motion blur I like to do shutter offset negative one for this kind of stuff there we go PETA froze negative one just simply means as you can see here that it's going to blur going backwards rather than looking forward I find that the initial spawning frames can look weird otherwise anyway so once we are ready just switch over into HQ mode save it for good luck and just go into mansion ones sequence here you can render it straight to disk if you want I'm just gonna have it do it here in my window and then I'll come back and look at it later cool all right so I cancelled the render a few minutes in just to see where we are so it's nothing we can see lots of cool stuff and some things that could be improved probably so for example cool stuff is that the particle sizes I think are pretty much perfect week definitely can kind of get a sense of the pig head although I think we can accentuate that with another effect that we'll talk about in a minute but anyway one thing that I would like to see more is we've got these the jackets are great but I'd like to see them get moved by the the simulation force it takes over I'd like to see that happen sooner so we'll probably just increase the force on those pop forces in fact let's just do that now and then we can continue talking about that so in the pop Nets here go back into their main mode let's just quadruple it I'll run a quick sim here to make sure it's doesn't nothing crazy here that's good I mean we see a lot of these particles out here but remember that allow these particles will actually be very small or almost non existant to see in the in the render itself so they don't they're like they're still here fully represented here but you don't actually end up really seeing them so that's cool another thing is that three is no motion blur on here even though it turned it on and that must be because it's not on on here geometry velocity blur has to be turned on in order for it to read that the attribute so that's good what else do we need I think it's nice like we we just barely start to see the purplish blue at the end I don't really think I have any issue there one thing that I would like to do actually is have the camera spin around this so I'm gonna say let's make a null and the null is right at the origin already where this effect is already centered so I'm going to connect our camera to it because the camera already has its own transform here but the null doesn't realize because this is now parented to that I can spin the null and if we're in the camera when I spent it weird we are spinning around this now which I think will be a cool way to get a full sense of the the pig head so I'm just gonna say whatever the time is times three that way by the time we get to frame 120 we'll have done a full 360 degrees so as you can see where we're spinning around it and I think honestly that is enough so let's close this guy and let's run it again already so I stopped it again before it finished the brain the primary reason being that uh oops I put on the null here time times three this should have been frame fractional frame really times three to actually be what I intended which was that on frame 120 it would be times three which is 360 as opposed to T which is time in seconds which then is only like four seconds by the time it gets here so you get the idea so now we're actually rotating it around it whoops so I'm not gonna render the frame for that yet but we do could see other stuff we can see for example how much more curly noisy stuff we're getting now which I really which I like to see and that's because we turn the amplitude up on those things and we can also see our motion blur now see these little streaks all the little streak things there go away and yeah so that looks pretty cool even though it's not rotating around it oops that's fine so let's make another secondary effect that's not exactly particles related but we'll blow through it pretty fast we're just going to we're gonna take the wireframe of the pig head and and turn it into like a secondary thing cool so I thought we'd do one more little thing here to add a bit of pizzazz to it's not strictly speaking particles but I think it'll look cool anyway and that is on lions lines that's gonna be kind of like a little wireframe effect that comes in and out of the of the pig head here so I'm gonna say let's merge in the let's go out here actually let's turn the particles off cuz we're gonna render stuff in a minute let's grab the emitter and emerge that into over here so I'll say get Mitter I figure we can do here is we'll say convert line like so and it basically it turns into a wireframe it turns it into a bunch of primitives so it's not that we're in wireframe mode like you press W here it's turning it into wires like so something like that so we've got that and if I were to just say render that right now we could start from there and just see what we get the mantra' renderer will automatically when it sees polylines like this it'll automatically try to render them as strips so one thing I'm immediately reminded of is we're gonna need a material for this so let's copy this we'll call it lines and let us apply that to here like so and we can make it come into here so let's so much like the P scale determine the particle size from before we can determine the width to tell mantra' how wide to make these strips so I'm gonna say exports by an export with like so and also like so we're gonna say something like overall and that will allow us to do that so overall with and we'll hook it in its gonna disappear again because it's gonna be getting a value of zero now but we'll bring it back so something like that so now we have thin thin little strips maybe that's too thin something like that so now we're kind of getting the wireframe element of it but right now it's rendering everything is rendering the black as black also so one thing I would like to do is say let's let's effect the Alpha of this to actually make it disappear in certain area now we already have this white to black color in here so we kind of we want to extract that from from where it's white and where it's black from there so we'll say vector to float so that we can take the color and really just take any one of these values and we'll say well where it's black that's where it's going to be zero the Alpha is going to be zero so we're going to need another one of these bind exports and say this is going to write to capital alpha and we'll say this let's clamp it or rather let's fit it let's do a fit to range so we're probably have to modify this a little bit so we know that some of these values are less than zero and we don't want to set the alpha to that we want to clamp it from zero to one and that's what this is gonna do and it'll also allow us to to fudge with it a little bit more so there we go so now it is translucent or it's transparent I should say in the areas where it was originally black so that right there were pretty good it would also be nice to say maybe the areas where it's more gray we could make the the lines thinner so all we need to do is multiply the width times that value like so so now if they get thinner as they approach being you know black nothingness these lines as it stands I'm gonna pause this out here even looking at it here you know there's nothing in between them it would be nice to maybe even wave the lines up a little bit I mean I might be going overboard now but we can do it so why not so I'm gonna take a resample and say let's let's give it more segments in between so I'm gonna give it four segments like so I'm going to make a point jitter I'm just gonna explode it bring it back to zero let's just slowly bring this up actually looks like it's maybe breaking apart we'll need to use a fuse first here there we go so just to give it a little bit of staticky look to it because again this is an energy thing so I figure it's nice it's cool to like have it be like you know we'll give it a seed like we use FF again so this way it looks different every frame like so let's see what that looks like in the renderer here and I should actually go to here hard to see but we can still say that it's a little more jagged now we can bring in more of this by going in here because remember this area these black areas are negative so by coming in here we can actually say like remap some of that negative stuff to be more positive so now this is being remapped to zero so 1 is remap to one negative point 25 is mapped to zero so the more we go down here the more we're actually like resurrecting some of that that old stuff whoopsies there we go oh my is that expression ok so alternatively you can go up until a 0.5 or something like the higher we go the less and less they obey so this will this can be you know whatever you want I'm just gonna say that let's see what that looks like and I'm gonna say that the this can probably stand to be twice as bright so it's gonna multiply that by two like that this may end up being too much I don't know but as it spins you know it'll it'll just kind of add some form into it I think and again this will only be lit up wherever the particles are being emitted from anyway so it'll just kind of I'm hoping it'll just kind of taper off from where the particles are so we'll see about that and I should also double check that this is even going to do the right thing so we're trying to remap negative color values back up into positive color values so let's see or are we rid of that CD and we've got you do have making a cup of ice okay good wonderful so that's should be it for the line thing not much to do there just kind of a cool little extra thing maybe you like it maybe you won't line the sizes actually we need to do the line color also much like how we did before with our particle colors so let's just just grab we'll just look at it anyway and I'm gonna say let's make another one of these things where we know we can just copy and paste it from here or we grab this and actually don't even need to do that we can just use this let's just make a ramp and say we already have our zero to one from this thing plug it in we'll call it color ramp and let's just try to emulate the colors that we're already doing for the particles so I'm gonna say C D for this so right now it's still black to white so it looks largely the same but once I say this should be Y and this should be this turquoise thing and then this should be that purple thing let's just see what that looks like so now it has more of that effect to it let's say I kind of want to bring up the white more something like that yeah I don't even know if we really want to see too much of this purple of any because we're only gonna see this when the particles are first being emitted anyway they don't turn purple until much later but oh I'm gonna keep it on anyway so there we go so something like that great so let us render this let's do one more test render on this before we call it until we do our final final render and see what we get and now we're actually going to rotate around it Oh make sure we turn our particle back on in fact to make sure this is always working correctly go over to our out go to the mantra' node we usually do this first really put these in the force objects and turn off candidate objects Canada objects means render anything that happens to be on now this is saying don't render anything but do force these on so it ends up meaning just render these two so we won't matter if I have this on or off by accident all right and make sure that we go to HQ first and then render way so that renter is all done and this is what we got cool cool cool so it's definitely plays nicely having that underlying structure there too so we can really kind of get that sense of the pig head thing and more importantly the particles look right I really like all those little spurts here and there it's you know there's no like even surface here like you know of the that's solid way from before cars look good the distribution of the particles is nice it's not looking pretty good one thing I would say that if we do it always intend on doing a full hundred twenty frames see how we have this in the beginning here it's pretty rare that an effect that we would probably just start emitting particles from nothing like this typically you have a an area of pre-roll where we basically say if the actual sim in the shot let's say it's from frame 1 to 120 we would actually want it to probably start some amount of frames earlier so for example maybe it's by here frame 24 you know it looks like all of our particles are out and about so I'm gonna say given that they'll let's start our scene 24 frames earlier in fact you can go into negative numbers here no problem at all so you can see look at that negative number is crazy and so basically we just need to say we'll update our solver here to say start on frame negative 24 instead and everything else would just click into place we've made sure that all of our parameters and things that reference time like this are automatically gonna be correct as you can see here yeah so by the time we get to frame 24 or rather rotated frame 1 it'll be fully you know in throes of the simulation as you can see now so now we are were all over there and was make sure they were only rendering from that frame also as you can see here it's it's saying negative 24 so let's make sure that we still start at frame 1 that's a tilde there we go frame 1 so we're still going to render the same frame range and that's cool great so what else do we want to do not much more just some finishing touches I would say let's throw in a ground plane let's have this shed some light on the ground like this already looks cool but if we have like a ground to be illuminated by that it'll make it feel even cooler so I'm gonna say Brown well rotate it like that it's got to be below it obviously so I'll just put it something like here oopsies literally matter how big it is I'd say this is fine you know we're only going to see the illumination right around here towards the bottom by the time it gets out there it'll be too dark to see anyway and speaking of light we're gonna actually want this to cast light so I'm gonna say take the particles and click geometry light like so so the geometry light now is knowing - it looks at that thing there we should make sure that it's looking at the output of that I mean it already is it's just looking at by just saying particles by pointing at this it's just going to point out wherever this is but just in case we move it this thing to here or whatever now we can make sure that a geometry light is looking at the absolute end result cool nothing really else to do there I'm gonna say let's take a look now let's go back to that frame where we had everything let's see what that looks like in terms of the ground plane we can see a little bit of light down there I believe or no actually don't see anything at all and that would be because this actually let's make sure that this is not rendering good this is only pointing to particles and lines so let's make sure that it also is looking at ground so and I'm gonna say let's just let's do a regular render you know I've been doing a lot of quick render stuff and that render view there but let's do a regular render this because they will get a higher resolution image here so now we can see we've got this kind of glowing on the ground and you can already feel how much nicer this is sitting in our scene which is pretty cool now you can really feel like it's present there so that's nice it's still grainy down here I'm not going to get too much into render settings this lesson but I'll just say in general that I'm going to turn it off well I'll go back to the first frame in general let's say under the HQ mode let's we've been talking a lot about simulation high quality stuff but we can also do here under rendering and where are you sampling let's increase this to at least 6 by 6 and you'll find that increasing these pixel samples will will increase the sampling of everything really all of the like all this little these little dots here from the motion blur will clear up the ground graininess will clear up here all those little grainy things everything was just going to look better but of course it's going to go significantly slower in fact when it was 3x3 we were doing 3x3 samples per pixel which is 9 now I go to 6 by 6 now it's 36 samples per pixel so by increasing it by a factor of 2 we actually end up with a factor of 4 because it's squared more work so don't go crazy on this but that should be still pretty doable and a couple of things before we render one is that as opposed to a lot of previous apply to Eugenie lessons and whatnot I am NOT cashing these particles meaning about saving them to disk you certainly can if you want right after our solvers output is dumped here and maybe even after the size and color has changed we can put this in here set a filename for it and then save at the desk and then load those resulting files from disk once they actually exist and you'll basically just have on disk representations of every single frame now for us I would say this seems pretty fast already and we may we've made so many changes to the simulation that I didn't want have to worry about caching Andry caching and REE caching now that we're pretty happy with the sim it might be a pretty good idea to cache this but I'm not going to I don't have a render farm to send these caches to in parallel anyway so I'm not gonna worry about that the other thing we want to do is over here on our master node let's save the images somewhere and give them a better name than this so just go over to here you can click that guy I like to put them in my project folder which is job flash render and then just call it something cool like particles thought the coop version zero thought I'm f dolphin F rather is the current frame that we're rendering and EXR is the cool file format that we all love you can see if I middle click on this it resolves it to where it's going on my computer complete with the frame number and that's about it just make sure that your remember if you're doing an HQ render just set the HQ here on the node you can keep it a current and switch to HQ and then do it but that's more of a pain so just set this to main here HQ here and make sure that we have cool sampling on here if you're feeling really lucky maybe put it up to nine and nine but I think six and six will be fine for our purposes for this lesson and that further adue that basically it so I'm just gonna say render and we'll look at this in a couple of hours and hopefully it is worth seeing I think it will be you can see the the pre-roll count down here and once it actually gets to frame one it'll actually start to render but you know until then it has to run the 24 frames anyway let's do and check back on it later and there it is all done so that took as you can see it took a couple of minutes per frame not even fully a couple minutes and the extra sample certainly helped we've got the nice smooth lighting on the ground really makes it feel like this thing is glowing and it's in space the samples helped with the motion blur lines with the lines inside of the ears and anyway I think the particles look cool where do you think no no I hope you liked it and check out the other apply to do any lessons the rigids that are all done the volumes are all done now check out the new PARCC lessons coming soon as well and don't forget to send me your stuff I always love to see it alright thanks for watching no bye
Info
Channel: Steven Knipping
Views: 120,448
Rating: undefined out of 5
Keywords: houdini, sidefx, lesson, tutorial, particles, fx, vfx, effects, simulation, magic, energy
Id: Q7fYhGl-GOM
Channel Id: undefined
Length: 111min 4sec (6664 seconds)
Published: Wed Nov 22 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.