Create slime with Vellum - Houdini Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
in this tutorial we're going to be creating this valence setup that we can use for any kind of saliva or drool effects or any type of slime and gooey liquidy type of stuff I'm also going to show you how I set up the render passes and all of the aovs and lights and materials and then we are also going to head over to Nuke to show you how I combed everything together so let's get started with Houdini and let's step inside the project and if you want you can download the project files just check the link in the description and we're going to be recreating the saliva effect from scratch but I just want to show you a quick overview over how this effect is laid out so this is achieved basically in two steps first we need a way to generate this mesh that's connecting the both sides of the jaw essentially and if I look at the result of this geometry it looks something like this so this is the first thing that we need to create this geometry that acts as a base and then from this geometry we can create grain so over here we have the balance setup we created the grains and then we assign the constraints and then we just plug everything into a Vellum solver and after we cache this out we end up with something like this so let's play this real quick just so we can see this so from the Vellum solver I'm just exporting the constraint so we can see over here that I'm actually exporting the second node which is the constraint geometry not necessarily the grain which would be the first output and after we have our constraint geometry we will do a few operations to increase the quality and then we turn this into a VDB and then from here we do a few operations and convert it back to geometry and then a couple of more operations to get our final result which looks something like this so I'll go ahead and go up and I'll just create a new geometry container and we can go ahead and recreate this entire setup from scratch first let's import our alembic animation and I've also included this in the downloads file if you want to try this yourself so here we have our skull animation and whenever we are working with Olympics we have to set a few options here so for this loaders option we have to choose unpack Olympic delayed load primitive so we are not working with pack geometry because we will have to have access to all of The Primitives and points and we can also drop a convert and we can see essentially with this convert that we go from one primitive to 75k and now we have access to everything we need so we can append a null here and we will name this Geo so this is just the standard stuff that we do when we are working with Olympic load is unpacked Olympic delayed low Primitives and then just append a convert node with all of the default settings so let's go ahead and I want to freeze this geometry at the first frame because this is where we have to generate our initial mesh I will do a Time shift here Ctrl shift click this one over here so we can remove the expression and now this is Frozen at the first frame and from here we need a way to somehow connect the opposite sides of our jawline sort of where the gums would be so not exactly the teeth themselves but rather the areas around the teeth and there might be a few procedural ways in which we can do this we could use a measure stop to measure the concavity of our mesh and maybe we could we would be able to select some of these parts but really the easiest and the fastest way would be to just select the areas that we need ourselves so if I press spacebar and 4 we can go into a side view I will hit s on my keyboard and I have the lasso tool selected and also we have to make sure that the select visible geometry only option is turned off so we can select what's behind the geometry as well and now I will simply draw the area which I want to select so we will do something like this and I will zoom in here a little bit and now let's also press shift W to view the wireframe and now I can hold down control to deselect polygons on this mesh so we can keep only the regions that we are interested and again this will be the areas right around the base of our teeth so we also want to deselect all of our teeth go ahead and deselect this and I will pause the video while I uh fine-tune this selection so after we have our selection I can go ahead and just press delete so this will drop a blast node and we can select delete unselected and we are only left with the geometry that we selected and what I want to do from here is get their points all over the surface and then we can use these points to draw lines between them so let's drop a scatter here and I will use the density attribute option because we will create this density attribute in a second let's disable Force total count and let's also disable relax iteration and we can see that this gives us an error because we don't have this density attribute so we can create this attribute with an attribute adjust float and the reason that I'm using this attribute adjust flow node is because there is this very handy option as a preset here so if I go to pattern type we can choose line and I will press enter in my my viewport and let's also turn on the visualizer for our attribute and let's also rename to density so let's turn on the visualizer and now we can see it here and again I will hold Base Bar and press 4 to go in the side view and with this line option I can simply hold down click and drag this over to the other side and this will give me an attribute that goes from 1 to 0 and we want the opposite thing to happen here so let's adjust this ramp so it's one over here and then zero towards uh towards the front and we don't really need this to be completely a value of zero so we can just lower this value and we can adjust this ramp however we want and now since we have this density attribute we can go to our scatter let's disable the visualizer and let's increase the density scale so now all we did over here with this attribute adjust float we want to scatter more points in the back of the jaw rather than in front because essentially I want more saliva to be right at the very end and not so much in front and this is more of an artistic choice I found that having too many strings on the front teeth created a kind of an unnatural look so I decided to just have more saliva or strings in the back and now that we also have our scatter we can go back to our attributor just float and we can further control this and refine our points so maybe we want even less points in the front but it would be better to create the rest of our setup and then we can come back later and adjust all of these settings and now we need a way to draw a line between these two sets of points and first we need to split these points into separate geometry so we want a different geometry stream for the upper jaw and a different one for the lower jaw and we could go ahead and simply grab our selection tool and just grab the points by selection but since we might modify this scatter later it would mess up the selection so we need a procedural way this time to split these points up and what we can do is we can create a class attribute for our geometry so over here where we have our initial geometry if I press s and double click this mesh we can see that this is a separate object from our geometry which essentially means that if I drop down a connectivity stop after our Geo over here so this will create a class attribute that will have a different value based on connectivity so essentially our upper jaw or whether our head will have a certain class value and our lower jaw will have a different value and this attribute needs to be assigned for The Primitives and now if I go back to the scatter since the class is a primitive attribute we have to go in the output attributes Tab and we have to specify that we want to transfer over this class attribute from the Primitive level so we have to select this over here and now if we check our points should have this class attribute and now we can use this class attribute to split the geometries up so let's drop down a split let's hook this here and for the expression let's set the group type to points and we will say that if your class is equal to 1 so equals equals 1 we are going to split this off so over here on the left we will have our head and over to the right we will have our lower jaw so we have successfully split our geometry up and to draw a line between these two sets of geometry please let's place the first one inside an attribute fob and I will place the second one as the second input in this attribute vob and I will rename this to create lines and let's step inside now the setup might be a little weird but the way a line geometry is created or Primitives in general is if I drop down and add primitive and we can leave these settings as they are so the geometry handle will be zero since we are operating on our own geometry and for the type we can leave this as open polygon now this Prim num here is looking for vertices to connect and over here we will drop an add vertex and for the first vertex this will be pretty simple we are essentially going to connect this vertex to our own points so from the PT num here we will just point this to our own Point number but now it gets a little bit tricky because we have to create a Vertex that's on our second geometry and any given vertex needs to be attached to a point so first we will need to create a point so we'll do an add point and then this point that we create here will be used to attach our second vertex so over here I will do another add vertex and we actually want the point number to be inside the point number and we're going to point the premium to our Prem num and the handle will be zero so again ourselves and here as well we actually have to set up the premium inside the Prem num as well now we can see that this kind of does something and essentially this add Point by default is going to create a point that's right at the origin of our scene so if I turn on the grid we can see that they're all connecting to the zero zero zero coordinate and it's creating a point for each point that we already have on our geometry so if we are operating on a thousand points when we do this add Point operation it's going to create another set of a thousand points so we can see that if I were to disable this we go back to 1.5 K points and when I enable this we have double the amounts so roughly 3000 points and now instead of using this world origin position so this default of zero zero zero we can use the position of the points from our second geometry so if I go up it's going to be these points over here and what we will do is we are going to open a point Cloud on this geometry and look from our own position for the points that are nearest in this second geometry so let's go back inside here let's do a PC open from our second input so let's drop this PC open again we will look from our own position and we will increase the search radius just so we know that it's big enough for any given point to find the point from the second geometry and now to retrieve the position data we will drop the handle in inside a PC filter and by default we are going to look for the position Channel and now we are going to plug this position inside our PT value for our add point and here we have the result just to reiterate one more time we are finding the closest position from each point to the points of our second geometry we are using that position to create a point at that given position then we are attaching a Vertex on that point we are attaching another vertex on our current position and then we are connecting these vertices with this add print function and just to give you another example we can also use a near Point function to find the nearest point from the second Stream So from the second input and use that point number to grab the position and it would be kind of the same result so instead of using the PC open and PC filter if we do a near point and let's grab this from our own position this returns a point number which we can use inside an import Point attribute let's point the file to our second input and we want to retrieve the position so if I were to plug this in the PT value over here we kind of get the same result but this is the problem with using the near point it's going to grab the first and nearest point from our own position and a lot of the points from our first input will have the same nearest point so this is why they are all converging into what looks like a individual or a rather very specific point whereas the specific filter gives us an average of all of the nearest points so when I plug this here it's more spread out and if I were to go to the PC open and increase the number of points we would get an even more spread out effect and I can do the reverse of this so if I were to decrease this we have the same result as our nearest point so it's only averaging one point and this means essentially that it's retrieving that points exactly position but when I start to increase the number of points here we get a more spread out effect so this is what we want I'll get rid of this and we can go up and let's continue with our operations we can also maybe go back to our attribute adjust float here and now that we also see our lines we can further tweak this ramp maybe and we can also maybe introduce some Randomness to this so if I make some room over here we can do another attribute adjust float let's set this also to density and we'll set the pattern type here to noise and let's preview our scatter instead let's go over here and we can decrease this minimum value we can push this in the negative Direction so if I drop this to maybe negative 0.4 or something like this we can go to the noise pattern here and let's also decrease the element size slightly so if I turn this on enough we have this noise and if I go back to my lines let's see what this effect will have so we actually want to combine this with our previous values so let's set the operation to multiply instead and now we also have some noise in our scatter if we need this but I'll just keep this with our just our first attribute adjust float and from here I want to turn these into geometry and if I display the points here we can see that we don't really have a lot of resolution on our lines we just have the our initial points and we have to drop this into a resample and if I check this let's decrease the length here to increase our subdivision so let's set this to 0.01 maybe and now we can drop this inside a sweep so we can create some actual geometry from this let's set the surface shape to round tube and let's reduce the radius quite a bit let's keep this something like this we also want to apply scale along curve and we can drop this size that's right in the middle so let's adjust this ramp just so it's thinner towards the middle and it has sort of a bigger base it's maybe just increase the radius slightly so 0.008 okay this should be fine and we also have to give these caps and I will set this option to single polygon so now these are all filled meshes which means that we can turn them into a VDB so let's drop this into a VDB from polygons let's reduce the voxel size quite a bit here let's try point zero one point zero zero one and I think something like this is fine maybe this is too much let's try point zero zero four okay this is looking fine maybe 0.003 should be good and now we have access to all of our SDF operations so we can use a so VDB smooth SDF rather let's reduce the iterations here maybe only use one iteration I think this will be fine and and I can also do a VDB convert and see how this will look as polygon so if I set this to polygons this is the mesh that we end up with so I think this is looking pretty decent and maybe I would want to reduce the scatter amount so let's use less points let's decrease this and go back to our sweep and I will just increase this radius to 0.15 just so they're a little bit thicker it might be also useful to preview this with our mesh so I will select the mesh and press W let's go back to our convert here and something like this will be fine maybe I can add another iteration for our VDB maybe let's do a couple so we can really mush these uh strings up together nicely now all of these values that I used here took a little bit of time to set up and I even changed a lot of these settings after I simulated so that's just the nature of this workflow and Houdini in general you don't really know exactly the values that you need until you have all of the elements in place with that being said I think this is good enough for our base so let's drop a null from here and this will be our slime Geo Let's uh copy this so we can create another chain for our simulation over here so we will do an object merge and just bring this over here so our slime so let's turn this geometry into grains let's do a configure grains Vellum configure grains and we will use create points from volume and we need to lower the particle size here quite a bit so let's maybe use .005 okay so this is looking pretty good we are working with 160 000 points which should be fairly decent obviously the lower you go with this particle size and the more points you have the more detail you will get in your simulation so this will depend on the type of shot that you're working on if it's a close-up if it's a medium shot so is going to be up to you to decide the resolution that you need over here maybe I will just increase this slightly more so let's use .004 and this should be good so for our first type of constraints we will need a glue constraint so let's drop down a Vellum constraints and here's a cool little trick if you hold down J and you click and drag from one note to the other it's going to automatically connect all of the inputs in their respective order so that's a really cool trick that I didn't know of until recently let's go to our Vellum constraints and let's choose for constraint type like we said let's use glue and I want to preview these constraints so from our second input I will drop down a null so we can only preview the constraints and currently we are not seeing any constraints let's change the group type to points and also the target group type will be points as well and now we have some lines that are being connected by points we will increase let's first increase the constraints per point so we want each point to attach to multiple points surrounding it so let's increase the constraints here maybe let's try I usually like to increase this value until there's no longer a noticeable difference if I add more points to this mix so if I increase this to 6 we can see that it starts to reach a point where there's minimal difference so if I increase this to seven there's very little difference so let's maybe just keep the constraints for point at 6 and the minimum value the minimum search value of 0.1 seems to be working fine I might want to increase this and we can see that this uh makes a little difference so let's just keep this at 0.1 and this is pretty much it for our glue we will need to turn on the braking but we will worry about this in a second first we need to attach all of this to our geometry as well so let's get rid of this null and from our Vellum constraints let's go ahead and turn our show guy geometry and here we will append a volume attached to Geometry so let's drop this here and also use the J shortcut to connect these nodes up and the width is volume attached to Geometry we will need our third input to be our head geometry so our G over here let's grab this Geo let's use an object merge just to bring this over here so again this is our original animation let's plug this in our Vellum attach and let's check our settings here we want the group type to be points so now essentially all of our points are attached to the nearest positions that they find on our head geometry and we want to turn on the max distance here because we only want to connect the points which are really close to the mesh so this will be a pretty sensitive value so let's start with a value of 0.005 and we can see already that this found some points for us and I can look at some of these and check if this is accurate enough I might want to increase the max distance let's maybe try 0.01 just to make sure that all of these points that are really close are connected to the geometry and I think this should be fine so let's uh go ahead and plug this inside a Vellum solver so let's go ahead and add a Vellum solver and attach it to our chain and from here I am actually interested only in our constraints so we'll drop a null from the second output of our valve solver so we can preview our constraints and we only want our glue constraint so we can also drop down a blessed node let's choose the type here we will say let's get rid of our attach constraints so we are only left with our glue constraints let's just play the simulation as it is and and see if stuff seems to work so let's press play okay and it seems to be working now there's a few points that that get disconnected here and this is probably from the attached to Geometry constraints we don't have to worry about them we can see that most of the Slime constraints of our glue constraints they stay together obviously they're way too stretchy so we can fix this in a second but we can already tell that the stuff the setup is working so now it's really only a matter of adjusting the values until we get the correct feel and look so right away in our Vellum solver we will need to increase our sub steps and because we are working with an animation that's pretty fast it would be more beneficial to us to turn on the global sub steps so this will mean that it's going to take into account the steps in our Collision geometry as well and from previous experiments I know that a value of 5 Global substance here seem to be okay also in our fourth step since we are in the Vellum solver usually I like to add a little bit of velocity damping as well but we don't really need a super high value here so let's just use a value of 0.003 and also I want to reduce this Wing drag let's also use .003 so let's reset our simulation and see how things look now and we can see that we get a more accurate Behavior but since this is a little slow what I'm actually going to do is let's see if there's a way to reduce this constraint so maybe 700 000 constraints is a little bit too much especially since we are trying to do some tests here we'll go back to our grains let's increase this to 0.005 and for our glue constraints let's reduce the constraints per point to a value of five and now we are dealing with 300 000 constraints so this should be a little bit more manageable now for our our glue constraints we actually don't want to have such a very high stiffness let's use a lower value here let's try 1000 and I also want to increase the damping ratio quite a bit so this will conserve energy in the simulation way better and it will give us more consistent result and we shouldn't have as many errors and also weird the jittery movements so let's increase the damping ratio we will set this to 0.001 or rather 0.01 and again the stiffness for our glue let's set this to 1000 and let's check our simulation so I can already tell that this is stretching way too much let's go ahead and increase this to 10 000. all right so I think still a little bit too much we also need to add a wind Force that's essentially going to be in the direction of where the skull is supposedly screaming so it's going to be a Vector that's pointing in the positive Z Direction and in the negative Y and also I'm kind of annoyed a little bit by all of these stray points we can simply append a clean sub and this will get rid of all of the points that are not basically connected with any Primitives so let's go back in our Vellum solver and let's go ahead and add this wind we will use a pop wind and I know these settings from the previous example I want a wind that has a velocity of negative four on the y direction and a value of 8 on the Z and also I will increase the amplitude and decrease the swirl size so let's go up and I might want to also increase the wind drag let's leave this back to 0.1 and velocity damping 0.05 and let's simulate this now so I think this is looking pretty decent now when I created the original render I did spend a lot of time adjusting settings and tweaking values and that's just nature of working in Houdini so you really need to spend a lot of time to finish everything to get it to work exactly like you want but this is pretty much the setup and the only thing left to do here is introduce braking as well and for the braking we can go to the Vellum glue constraints and over here we can simply enable braking we can leave the type as a stretch stress and the threshold we will leave this at the default because what we want to do and what I did in the original example is I animated this threshold value for the Breaking Inside the Vellum solver meaning that the animation started with a pretty high threshold so the saliva basically doesn't break over here in the beginning and then over from frame 20 maybe I started to decrease this threshold and as a result as the animation progresses the constraints start to break gradually so in Houdini we can go inside the bone solver let's use a Vellum constraint properties and we want to activate the break threshold here and this is how you basically have to animate any type of Vellum settings you can't really animate it over here inside the Vellum constraints at the sub level you have to animate it inside the Vellum solver otherwise this doesn't work so let's start with a value of 100 let's go up and let's simulate and see if this instantly breaks essentially and yeah I can see that everything breaks instantly so we have to let's set this to 1000 and we'll go back and simulate a few frames so we can see that with 1000 they mostly stay together but some do break so probably we need a value higher than one one thousand let's go back inside and let's try to animate this let's set this to manual and we will set the brake Threshold at 1500 we'll go forward to maybe frame 20 and from here we will add a keyframe with alt and left click and we will slowly decrease this threshold over iteration let's try maybe at 72 we can use a brake threshold of 500 and let's go back and update turn on auto update let's go up and now we can actually start to Cache the files as well so we will do a file cache here and let's save to this and see what we get and we can check the result all right and as I progress through the animation we can see that the constraints start to break off so probably this is looking all right now again just like the other settings I went back and forth inside the Vellum solver with the brake threshold I used a lot of combinations between the brake threshold the pop win settings development glue constraints so the stiffness here and even the damping ratio so these are all parameters that you have to play with until you get something that looks right so let's go ahead and focus on our constraints and see how we can turn this into a geometry if I turn on the point display we see that we do have a lot of points so plenty of points to work with but what we can do is throw a resample on this to further introduce even more points and make sure that we have enough so let's set the length here to 0.05 maybe and now we can see that this essentially fills in our curves and maybe we don't actually need such a low value here let's try point zero one all right and we can see that this still adds quite a bit of detail to our lines and now that we have this extra set of points we can use a VDB from particles I'll go ahead and place this over here and not automatically connect it to our resemble because I want to set the values first just so it doesn't freak out because the default values for the point radius scale since we don't have a p scale this is going to be a really large result so I will just decrease this and let's set the voxel size to 0.001 and also the radius to the same value and the minimum radius as well and see what we get if I connect this here all right and I think we can safely reduce this further let's try point zero zero three and again we will have to modify the radius scale as well but I think something like this is starting to look all right and from here we can also do a VDB smooth SDF so all of our common SDF operations we can even do an erode and stuff like that let's decrease the iterations here maybe just keep this as one we might one the reason that this is eroding even though we are smoothing is because we don't really have enough resolution on this pdb so let's go ahead and uh let's try point zero zero two and uh maybe even less I don't wanna go too high but I think this should be fine let's maybe try zero zero two and let's decrease the length in our resample instead so we can add more points let's try 0.006 okay so we can see that this fills up some of these gaps a lot better let's also turn this into a geometry so let's do convert VDB and let's convert to polygons all right and we can see that when I do this this automatically thins everything out and I think this is looking pretty good we are having a lot of detail here and what I did in the original example as well is I also used a smooth after we turn this into geometry so we use this move on the geometry itself and we can see that this also Blends everything together a little bit better so if I turn this on and off probably we are using a minimal difference here let's set the filter quality to one all right so this is weightless mode and also in the original file I used a peak node to thin this out even further so if I drop down 18 or rather a peak we can set the distance to a really really low value and we can push this in the negative Direction so let's try negative point zero let's try 0.002 or something like this uh again these values are going to be very sensitive and with this peak node we are thinning everything out even more but I think in this case for this result specifically we don't really need this peak node but this is definitely something that you can do so I'll just get rid of this in our case and with this we now have our saliva so this is the entire setup from here I can drop down a null and this will be our out saliva and this is basically it so again I will have to Let's also preview our mesh as well and I think this is looking pretty good it's really nice and detailed so it's going to depend on you how thin or take you want the saliva to be or how many strings you want but hopefully with the setup that I showed you you will be able to tweak these parameters to get the exact look that you are going for as far as rendering is concerned this is a very simple setup I only have a few lights over here and we're gonna go over each light in a second as far as materials are concerned the materials are very basic as well so if I go in the material tab for the saliva this is the material so it's just a standard material and this is using redshift for the properties here I set this base color to be almost completely black so I dropped the weight here to around 0.1 and I'm using quite a high value for the reflection and low roughness I'm increasing the ior as well and I'm using a high value for the transmission as well so we get the refractive look and this is pretty much all of the settings that I used for the saliva and if I go to the skull material this is basically just a bunch of noises combined so we can see that uh in the diffuse color or rather the base color reflection roughness and in the bump we just have a bunch of Maxwell noises combined with uh or actually I can see that I'm only using Max and noises here so it's a very simple material and I created this essentially just so there's not really a flat color as the material but if you are working in a production you will definitely be working with higher quality assets which will come with their own textures so we don't really have to worry about this and if you would like to check out exactly how I built this material you can go ahead and download the project files and inspect all of these nodes yourself so let's go up and I will go to the object level and I will grab all of these lights and I'll go ahead and turn them off and then we can go one by one and enable them and talk a little bit about the process here so if I start with this dome light I will turn this on and I can preview this in the viewport here as well I'll turn on enable the in viewport so we can see this this is just a simple Sky texture so this is used mainly as our main film light I usually like to start with something like this and you can either use an indoor hdri or an outdoor hdri in this case I like using this Sky texture because it creates a very diffused look and it does a good job just filling up the geometry so if I go in the redshift render view let's hit play and let's see what this light will provides alright so this is our dome light and let's go ahead and grab this fill light and let's turn this on so this is a simple aerial light that's coming somewhere from below and if I go back to the scene view we can see that this is this failed light that I'm talking about so the light that we are currently on and as the title suggests this is used as a fill so let's go back to the render View and hit play and let's enable our next slide which is going to be our ring light so if I turn this on this is again another area light that's coming from above and it's used to create this nice silhouette over the top of our skull geometry and this is more or less the main light that I'm interested in here which again creates this silhouette over our skull so we can separate the mesh from the background and on top of all of this there's another aerial light so this sharp light over here if I turn this on this is sort of the same as our Rim light but we can see that it's a lot more intense and it also has a sharper contrast on our silhouette so if I go in the scene View this long stretch plane here is our sharp light and this more uh regular looking plane over here is going to be our Rim light so basically the larger the area this plane is so the size of our light this will determine how sharp the light and shadows will be so I'm using rather large planes for the rim light and the fill light and I'm using this very thin layer for our sharp contrast on the top of the head over here and then finally let's go back we can enable our volumetric light and let's actually go in the scene View and the volumetric light is this plane over here it's rather thin as well so let's turn this on and I experimented a lot with the size of this so it started out as more of a rectangle shape but this was giving me way too much volumetric effect so I decided that I should just sharpen this instead so as a result if I go to the redshift render view this is with the volumetric so we can see that if I were to make this even thinner so the plane so for example if I were to drop this to 0.6 we would have less volumetrics in our shot and you can also play around with the spread as well if you want this to be sharper or softer so let's go ahead and undo the settings and it's important to note that in this volumetric tab if I go to the contribution tab over here all of the diffuse reflection all of these settings are set to zero and I only have the volume contribution set to a value of one and in all of the other lights if I go to the contribution I have the diffuse reflection transmission all of these settings set to 1 and the volume set to zero so I only want this volumetric light to be used to emit volumes and in the out tab in our redshift render up if you go to redshift and you go to the advanced tab in the volumetrics tab this has to be set to enabled and this will use your lights as the volumetric source so when you are using the setting it's important to set the contributions for each individual light carefully while we are in this render up let's go to the output Tab and in the aov manager we are using quite a bit of aovs over here so we have the standard let's maybe make some room here we have the standard the fuel specular light Reflections and Reflections and this will give us our Beauty pass so if I scroll through these aovs over here we can see them and I'm also using the Light Group tab so I'm enabling this all the Light Group option for all of these layers and essentially if I go to my lights we can see that for all of these lights over here so aside from our volume light we have the Light Group option turned on and it's using this dollar sign OS expression which just grabs the name of our node so this way in our aovs over here with this light group option enabled we can split the contribution from each light individually so if I go one by one we can see exactly this is the specular from the dome light and then the specular from only the rim light and from the fill and we I actually have the volumetric as well but this doesn't do anything but here we can see the specular hits only from the sharp light so this is very useful to have and essentially when we add all of these layers up together we recreate the beauty pass and then we can go individually and grade everything separately so we have full control over each light contribution in this shot so again there's the fuse specular Reflections and Reflections then there's this volume lighting aov so if I go to this let's see this real quick let's select this over here so this is the volume one which is just the volumetric effects from our volumetric light then we have the cryptomat but I didn't end up using this this is uh basically to separate the objects by materials so we would have an ID for the saliva and an ID for the skull but like I said I didn't end up using this then I also created a couple of costume shaders over here so there's the ambient inclusion Shader and the fresnel Shader and to create these custom shaders you have to go in the shop context and in this context we have the AO and the fresnel and all you have to do basically is just create a redshift Network and if you step inside for example to create the aopas let's drop an rsao node and we just connect this to the surface so this is how you can create the Shader and if I go up we can check that inside the AO there's only the ambient occlusion and inside this fres we have the fresnel Shader so with these shaders let's go to the out tab in the default Shader path this is pointing to the Shader that we created in the shop context so if I check to see how this aovs look we have the AO so our ambient occlusion and then we also have the fresnel as well and then finally we also have the world position and we need to do a bucket rendering to see this but these are basically all of the passes that we need so let's go ahead and we can jump over a nuke and go over the comp so here is the entire comp and we can see that this is a very simple and quick comp there's really not a lot going over here we basically start by separating all of the all of the aovs as I mentioned earlier so there's the diffuse there's the reflection specular specular feel we can see that I actually separated the specular aovs per light so there's specular Dome fill rim and sharp so we have individual control over this and for the refraction this is mainly only affecting our saliva because the skull doesn't have any transmission so all of these operations here are plus I'm just merging them over on top of each other so we can go one by one and in between this last one I also added a sharpen and then I'm passing over the refraction from the saliva so this is essentially recreating the beauty pass without taking into account the volumetric effects and now for each of these layers I can go one by one and I can adjust any of these channels so I can grab the specular and I can increase this specular sharp or if I wanted more fill I can increase this or maybe the main let's see the diffuse I can also increase this and we can see that this really offers ultimate control now on top of all of our layers that comprise the beauty pass I also separated the fresnel from this I graded this down a little bit so it's sharper and I grabbed the position pass which gives me the world position of our object meaning that if I were to connect all of these over the red channel would be the position on the X Direction the green channel is the position on the y direction and the blue channel is the position in the Z Direction so I wanted to create a gradient that's along the Z direction of this mesh that starts from somewhere around the nose and travels across the face so I can grab the Z component which is the blue channel of this p position and if I plug this inside the alpha and I press a to only visualize the alpha we can see we kind of get this gradient that's on the Z Direction and I can use a grade node to further adjust the in and out value so the Black Point and the white point and we can see that as I move this around I'm controlling this gradient so I can also maybe make this sharper just to give you an example we can see that I'm squeezing this gradient together and I can also use the offset to create some really cool effects sort of like a wave traveling over the geometry so we can do something like this so I'll go ahead and undo all of this so we are back with our initial gradient and I'm using this gradient now to darken my fresnel pass so over here where I have the original fresnel I'm grading this down and using the position pass as a mask so we can see the result now is that I'm filtering a region that's only in front of our skull and I can always go back to this grade node for our position and I can play around with the settings and I can control this fading further and essentially with this now I'm just adding this over my beauty Recreation so after all of our layers so let's go ahead and see the result and maybe this isn't too noticeable but if I turn this on and off we can see that I'm adding this highlight over here which is basically just enforcing the shape of our skull and I thought this added a nice little detail that's worth having and also we can see if I preview the result over here if I were to disable this masking with our position so if I were to disable this we get too much light here too much information in the back of hours call whereas I needed it only in the front of our skull so this is why I use this gradient from the world position so moving forward we are copying back the Alpha from our original render doing a pre-molded here to get back our original edges and on top of this we are adding back our volumetric light and in order to create this gradient I created a radial which looks something like this and I blurred it a little bit just so I can spread it I graded this up and then to map different colors along this gradient we can use an st map so this radial is used as an SD map in this node and for our source I'm using the gradient editor so this is a costume node that's available for free on your computer so you can go ahead and grab this as well and this is the gradient that I'm creating here so in the St map for the UV channels we are going to set this to RGB and this is the result that we get so now I'm multiplying this with our original pass so from our original render we are shuffling out the volume pass I'm also using a noise reduction plugin over here to get rid of some of this noise but this is not a 100 percent necessary step I'm also grading this up a little bit so I'm increasing the gain and decreasing the gamma so I can increase the contrast and when we multiply it with the costume gradient that we created here with the SD map we get this result and after this I'm desaturating the colors a little bit and I'm also grading this up and I'm doing a crop and this is essentially now our volumetric pad so when we add this on top we get this result and the cool thing with the setup is I can always go back to this gradient editor so for example let's actually create a new gradient editor and let's point it to the second gradient editor that we created here and I will just create a new gradient here so we can see that we really have a lot of options over here let's maybe get rid of this as well and we can do something like this let's try a red color instead so let's make this first point uh brighter and maybe more saturated and this point in the middle let's go let's try maybe something like like an orange and saturate this up a little bit do something like this and let's use a dark red as our final color here so we'll do something like this so probably not the best palette but this is just to illustrate how flexible this setup is so let's point this back to our original gradient colors so moving forward I'm dropping all of this inside the emotion blur just so we can add a little bit of smearing here when the saliva starts to detach and it's moving a little bit faster and then I'm using my favorite exponential glow node which is AP glow so if I look at this result this is a very subtle effect and we can see that it has quite a high spread and this layer I'm just passing over what we had already so it's giving us this uh very nice and soft glow and this is also helping our layers blend a little bit better together and I think overall it's giving the shot more of an artistic and stylistic look after this we are doing a final grade node and I don't think actually this doesn't do anything so I can get rid of this and I also have an Ocio file transform over here which I'm using to apply a costume lot to the entire render and this slot that I'm using here is one of the default ones that comes with a redshift so if I go back in the redshift render View and I hit play over here let's go to the settings and if I turn on a lot I'm basically using one of these Lut files over here that's available to us so I think I'm using one of the let's let me check so I think I'm using one of these Canon Luts and again this is just to make it a little bit more artistic overall and this will be the end of our comp and also the end of this tutorial so the project files are available to download with the skull animation included so go ahead and download that by checking the link in the description I hope you enjoyed it and that you'll learn some new things and hopefully we will see each other again in a new tutorial
Info
Channel: Voxyde VFX
Views: 17,146
Rating: undefined out of 5
Keywords:
Id: 4tJLQuvQS8E
Channel Id: undefined
Length: 50min 37sec (3037 seconds)
Published: Tue Sep 05 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.