Essential Nodes in Redshift for Cinema4D

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Created this fairly comprehensive tutorial explaining the functionality of a lot of commonly used nodes in Redshift for Cinema4D. This is mostly meant for novice users fyi. Figured this would be a useful resource before releasing a tutorial on my frost shader process. If you find any inaccurate info in this please let me know so I can correct it, cheers!

👍︎︎ 1 👤︎︎ u/GOSU_INF3RN0 📅︎︎ Feb 05 2019 🗫︎ replies
Captions
hey everybody this is my first tutorial on redshift renderer for cinema 4d so if at the end you have any sorts of comments suggestions or questions I will go ahead and do my best to address those I'll specifically be talking about a few of the nodes within the shader graph which I consider essential to creating any sort of complex shader networks and even though I'll be using cinema 4d during this demonstration you can find these same nodes across all your 3d rendering packages using redshift with the same workflow and functionality so before I jump into the nodes I want to give you a quick tip which is considerably useful when working in the shader graph let's say I just want to view this specific texture here by itself without the material parameters so what I can do is I can connect that to the surface on the output node and now I'm just viewing this flat shaded color texture projected onto the UVs now another way that you can connect this to the output is by selecting your desired texture or node going to the tools and hitting connect node to output and will automatically take that selection and connect it to your output so you're viewing it here in your render view now going to every single node and go into tools and clicking connect note to output is going to become a hassle very quickly so the cool thing you can do is actually set up a hotkey to trigger that command automatically so I'm gonna go and pause my render view I'm going to go to the tool bar at the top of cinema 4d here I'm gonna go to windows customization customized commands and here if we look back at what this tool is called it's connected node to output I can type in the name filter connect node to output and you see that it's showing it right here so I can select that you want to make sure that you're selecting the shortcut here so click that then hit my case control shift C I hit a sign close this go back to my shader graph now if I disconnect this if I hit ctrl shift C you can see it's connecting my output to whatever node I have selected if i turn on my IPR put this in progressive mode for now so it's just faster to see you can see that i can very quickly switch between all these nodes so in complex shader networks if you want to know exactly what's happening in a specific part of your node tree you're gonna be doing this all the time switching to your output so you can see exactly what's happening and it is incredibly useful so the first note I want to talk about is the Tri planar node and we can find that by going to the find node search bar here in the shader graph and typing in a try planar see it pops up here underneath utilities and I drag that in a shader graph now whenever you apply a texture to a 3d model that texture is gonna be mapped onto the objects you v's each UV cell is essentially referencing a polygon on your 3d model so whenever you apply an image over one of these UV cells it will be reflected on the correlating polygon on your model now the best part about the Tri planar node is that it does not care about UVs and instead uses spatial projections to map your textures onto your model now we can quickly visualize how this is working by connecting our tri planar node to our output starting the IPR and the first thing you'll see is that your entire model will become red and that's because by default you have this option ticked on in the Tri planar node same image on each axis so if we uncheck that now you'll see these three different colors red green and blue and what's happening here is that all three of these colors are being projected on their respective positive and negative axes onto your model well many projection mapping techniques result in issues such as hard seams or texture stretching the tri planar node has two options which help alleviate that issue if we take a look at this blend amount parameter as we begin to increase this value you'll notice that these axial projections begin to blend and overlap together effectively hiding any seems and secondarily if we come down to this blend curve parameter and begin to increase this value you can see that it begins to tighten up that overlap so before we jump into the rest of these parameters here let's go ahead and replace all of our solid colors with some actual image textures by piping these three image textures into the respective axes and immediately you can see all of these image textures mapped onto the object here and we can go ahead and dial in whatever kind of blending we see fit effectively eliminating any visual seams in most practical applications you're going to be mapping the same texture on all axes so we can reactivate that by going back to the same image on each axis parameter and checking that and now we're using whatever image was piped into the image X of the triplane or node so I can go ahead and delete these other two texture nodes now that we're just using this singular image at the moment the scale of my texture is much too large for my model so I could go into my texture node itself and begin to increase the scale to shrink that down or I can go into the try planar node and begin to adjust these scale values and I can increase the scale values per axis to get the same result I could also set individual values here to create non-uniform scaling but as you'll see we get this stretching as a result of that I'm going to go and reset these back to point 1 next we have the offset parameter which will allow us to shift our texture along the respective axes followed by rotation so we can rotate our texture per axis and finally we have the most important parameter especially when it comes to animation and deformation which is the projection space type now by default this is set the object mode but to better visually understand what happening here let's go and switch it over to world mode and I'm gonna go ahead and go over to my viewport here now pay attention to what happens in the render viewport as I manipulate the sphere so as I move this you can see that our texture is not actually being influenced by the transformation of our sphere and we're getting this swimming effect the same thing goes for any sort of scaling or rotation especially a parent when I'm rotating it because you don't see the texture moving whatsoever so if I go ahead and go back here and switch this back to the default of object mode and once again begin to apply these transformations to the sphere now you're seeing that whenever I scale rotate or move the sphere our texture is sticking to the object this leaves our final projection space type reference mode now reference mode deals directly with any sort of deformation or displacement so if I go to this displace the former here and activate it you can see that I'm deforming my model and my texture is stretching along with the deformation now if I were to go back and switch this to object mode now our try planar node is projecting the texture as if this deformation was the default state of our model and because of this any sort of animation within our deformation will cause the same texture swimming as we observe previously in world mode so if we switch this back to reference mode our texture will now stretch along with the deformation this brings me to another useful tip as we saw previously a try planar node has this coordinate drop-down which contains vector data which allows us to influence things like the scale offset rotation along each axis now let's say that you had a completed material with multiple try planar nodes and you wanted to uniformly adjust the scale of all of those notes at the same time or you wanted to create a uniform scale for an individual node so that you didn't have to go so here and type each one out manually for example in this case you can see that it would take me a long time I've had a very complex network to go through and dial in exact values of each individual node so what we can do that's really useful is go to the math drop down here so in the example that we want uniform scale so we don't have to type each individual access to the same number we can use this constant node and we can connect that here to the Tri planar coordinates scale you can see this has been overridden and it's now being controlled by the constant if I set this to a value of point O one and click back on the node you can see well it doesn't actually show that but you can see in the viewport that if I increase this I'm controlling this shader scale uniformly on each axis furthermore if I want to control both of these triplane nodes at the same time I just connect this same node to the coordinate scale here as well and now I'm influencing both of these try planar projections at the same time so I can adjust the scale uniformly you can do that for every single one of these parameters so if I wanted a separate one for rotation I could the rotation here on each of these and type in my value that I want to use let's say 45 degrees and you can see that I am uniformly adjusting both of these try planar projections now in the case that I wanted to set values for each individual axis I would use the same constant node except I would go to the constant node and change it from a real data type to a vector data type and now you can see that we have three values for each axis and I can type in a value here so if I set them up to be uniform we're back where we started but now I can set individual values and you can see since I have this plugged into the scale of the Tri planar nodes it is affecting the scale non-uniformly based on these values along each axis next I'd like to cover some color correction and remapping nodes so we'll go and start with the most basic one which is the you guessed it colour correct node go and search that here and drop it in my shader graph connect up my texture to the input and the output to my shader diffuse color start up the IPR now if you take a look inside of the color correct parameters it's gonna be very similar to parameters that you might find in After Effects or Photoshop for example got the gamma so I increase that it's going to brighten my texture here if I lower it it's you have the opposite effect of darkening it contrasts here the higher it goes the more contrast would be adding the lower it goes I'll be reducing that contrast hue shift it's basically going to be pushing the colors along that spectrum similar to any hue shift that you would find in other programs so as you see as I push it along I'm shifting that hue along the spectrum saturation scale again you guessed it if I raise this number it's going to increase saturation if I decrease this number it is going to reduce it a value of zero makes it completely grayscale and once again levels if I increase this I'm going to be brightening and if I decrease this I'm going to be darkening the value of zero makes it completely black and the use HSV conversion tick box means that we'll be using hue saturation value calculations to deal with our parameters here whereas if we uncheck it it will be using RGB and you can demonstrate the different results here by upping the saturation scale to something like three for example you can see we have a very saturated color now in our texture and if I switch it to HSV it's going to yield something a little bit different so well the colour correct node has its obvious uses I rarely find myself using it for anything other than color correcting the diffuse input which brings me to my next set of nodes which we'll start with the ramp node so I'll go ahead and search up the ramp node here and see it here under textures drag that guy in I'm gonna go and wipe out my color correct node so bringing back my simple sphere here I'm gonna go ahead and take my ramp node and plug it directly into my output so we can observe how it works and what we got going on inside here is a very simple gradient ramp and we can kind of see how that's being mapped onto our sphere as I adjust this ramp here and you can see that I'm shifting that gradient along the UVs of my sphere and we've got a few options here we've got some different mapping types so currently we're using vertical mapping switches to horizontal you'll see it flips the horizontal got diagonal radial circular see that point there and all of these function is you would presume they would and if you've ever had any experience using any sort of gradient ramp and we can move these points along as we please we can add color to them if we'd like and add multiple points multiple colors and so now you can quickly understand here this visual just exactly how this is working right so I got a lot of options here and if we like we could add noise to break up the gradient a little bit so if I add a small number here to say like 0.01 you can see it start to get a little bit Wiggly maybe like point one will be more visible see breaking up that gradient here with a little bit of noise we've got different frequencies if you want adjust the scale of the noise so the lower you go the bigger it gets and the bigger it gets or the bigger the number is the more fine the noise becomes so now that we've established the basic parameters of the ramp node I'd like to jump up here to the source parameter which is going to open up a new door for us when it comes to using this node so by default it's set to auto mode which means it's going to automatically determine whether it uses UV map mode or alt mode so you really only have two modes here Auto is just going to determine it for you so if I switch this to UV map you're not gonna see any visual difference going on here on our model and that's because the UV map mode is as to be expected we're mapping the gradient ramp onto the UVs of our model however when I switch this to alt mode you're gonna see that our mesh becomes entirely black and the reason for that is that alt mode is meant to be used with a file texture so if I take my texture here and I pipe that into the input of the ramp well it is set to alt mode you're gonna see that it has been converted to a grayscale image now if I switch this back to UV map mode you know it's gonna override it with the gradient ramp but now we're just laying the gradient ramp onto the UVs but once again if I set it to auto mode it's gonna automatically know that there's a file texture being piped in and use alt mode so first off if I once again switch to these different mapping types which we saw generated different kinds of gradients earlier you're not actually gonna see any difference and that's because the actual mapping type is using this try planner to project the texture on and the gradient itself is ignoring this mapping parameter because instead it is now acting more like a colorizer than an actual physical gradient and we can observe that if I take this slider here on the black and I push it closer to the mid-tone you're gonna see that I'm actually darkening all the darkest values on my texture and likewise if I slide my white slider here over to the left closer to the mid-tones you can see I'm now brightening up all my brightest values on the texture till I get it to pure white so it's colorizing it and if you're not entirely sure what I mean by colorizing if I actually just change this white value to an actual color red and I change this dark value here to a blue and I once again slide this you see that I am actually replacing the darkest values on this texture with the color blue and the lightest values with the color red and everything in between those mid-tones is using this gradient interpolation additionally I can add as many of these little color droppers as I like so if I put a green in here and I adjust things here to line up with my values see I'm getting three colors acting on my original texture and from here I can save a preset I can load presets drop this rainbow in here for example but what's most important to understand and I can demonstrate that here if I go and reset my ramp but this colorizing effect is working off of a correlating value on the original texture itself so you see even though in my ramp here we have a completely 100% black and a completely 100% white if we look at the output of our remap to texture here we don't actually see anything on this texture that is a hundred percent black or 100 percent white so in order to have these values actually translate as maybe we'd like something to be it definitely 100 cent white we have to slide it along those values of the original texture until we're actually replacing one of those values and you see I really got to push the white pretty far and now I'm starting to get things that are 100 percent white and for the black do the same thing and if you actually want to see what the pixel values are themselves then you can just open up your options here and just cursor over and you're gonna see the values popping up here to the right underneath the pixel display and RGB here so now you see we're getting closer to a value of zero within the blacks and closer to a value of 1 in the whites as far as practical uses of this ramp node we probably would not be using it in the diffuse channel because that's the color channel so I'm gonna go ahead and pipe in my colored texture here before the remap into the diffuse color of my shader I've bet into my output what we can use this ramp node for is to help us create variation and something like the Roughness channel so if I go in and take my ramp node drop that guy into the reflection roughness and give this some reflection here go and max that out now we're not creating a realistic material so by default I'm actually going to disconnect this so we can demonstrate so at a value of 0 and roughness we have a 100% reflection and at a value of 1 or as we push it up to 1 you can see that we're creating 100% roughness whereas the reflections are getting extremely blurry to the point where it's almost diffuse so to create a connection between this numerical value which we can easily understand and compare it to the ramp let's go ahead and connect the ramp directly back into the reflection roughness once again and instead of having this gradation let's go and start with a solid color so I'm going to set its complete black and if we compare our result here you can see that we actually are getting a roughness something similar to a roughness value of zero because we're getting a hundred percent reflection so likewise if I begin to bump this up let go and start with 50% you can see that our reflections are starting to become rougher and as I set this to 100% white now we are getting something that is a hundred percent rough so you can essentially think of any sort of black value as giving that a value of a numerical value of zero and a white value a numerical value of one and everything in between is going to be interpolated between those two numbers so this brings us to a quick gotcha moment which I'd like to clear up without going into too much detail because this stuff can get a little confusing so the way I'm going to demonstrate this is I'm gonna go and disconnect everything from my material I'm gonna clear out the reflections and just leave it at a default diffuse 50% gray I'm gonna go ahead and put in a value of 0.5 for my weight so since we can understand that a value of black here translates to a value of zero numerically and a value of white trans translates to a value of one surely we could assume that we could replace this weight value of 0.5 by setting this to something like 50 percent right and plugging that guy into our material diffuse weight but suddenly we're getting something that yields a much darker result so I'm gonna go ahead and set this the bucket and say about a few snapshots so I can make some comparisons here so this is our ramp at 50 percent gray which we would assume would translate to a value of 0.5 right if we have a good understanding of how numbers work right so I'm gonna disconnect that and let's get a render here of our default weight at a value of 0.5 okay I'm gonna save that snapshot okay so clearly there's something going on here that doesn't make sense to us and I'm going to take a constant and I'm gonna set it to a value of 0.5 and I'm okay since that's a actual numerical value I'm gonna plug that into the fuse weight see what we get here okay I'm gonna get save a snapshot of this guy here I'm gonna look compare these two and these two are working as I would presume right so why are we getting a darker value here from the ramp color at 50% then we are with numerical values and the reason for this difference here has to do with srgb and linear curves so these numerical values are using linear math and this ramp node is using an sRGB gradient so in order to convert our srgb gradient to a linear gradient I'm going to go ahead and bring in a color correct node I'm going to pipe in our ramp node to the input then I'm going to connect that now to the diffuse weight and we're not going to see anything happening here because we haven't made any complete changes here but what I'm gonna do is I'm gonna go to the gamma in this color correct and I'm gonna set it to a value of 2.2 and now we've converted that srgb curve to a linear curve so that we can get a predictable value so now our value of 50% is going to align with our numerical linear value of 50% and if I take a snapshot here and compare it now you see that we're getting the same predictable result so if you were ultimately trying to translate your ramp gradient value here into an actual numerical value then this is the step that you would need to take so let's go ahead and jump back into understanding how we can use this ramp node to manipulate our texture and I'm gonna go ahead and connect my colour correct node back to the output which once again is not entirely necessary unless you're trying to get predictable numerical results and I'm gonna go ahead and look at my ramp here once more I'm gonna go ahead and add in a black value and a white value and I'm gonna go ahead and start sliding this around so we get some nice contrast going on here and our texture it's too much black I can also adjust this interpolation point here can also type in actual numbers here if I'd like as well as changing the overall interpolation from smooth to cubic linear step if you want a solid transition here reset that to smooth here now once I've gotten to this particular stage let's go ahead and plug this guy back into our materials roughness reflection roughness output here I'm gonna go and once again plugging this guy directly back into the color without any sort of remapping on it expand this a bit you know wipe out the weight port now that we've finished with that guy I'm gonna reconnect our shader back to our output so we can see what's happening here all right so putting my reflection back up to 100% weight now that I've added contrast to my remap here we can presume that the lighter values are gonna result in blurrier reflections and the darker values are gonna result in more one more completely reflective areas so just to make that extreme really quick let's go ahead and bump this black value up here so we've got a nice balance between rough and reflective areas and once again viewing that now we can clearly see these patches here we've got a very patchy reflection where we've got these areas of 100% reflection we've got areas of 100% roughness so you can easily see how we can use this remap node to take a texture and put it into our reflection roughness to create a varied reflection now let's say that we don't actually want any areas to be a hundred percent reflective well with our understanding that these values here are on the darkest and or the black values are zero and the white values are one we can go ahead and bump this black value here to convert all our darkest values to something that's a little bit closer to white so let's start with 35% here and it's always easier to see exactly what you're doing to the texture itself by directly viewing it so let's say I actually want something a little bit closer to 25% which once again with this conversion is going to translate to a value of 0.25 mathematically right and our roughness and let's go ahead and take this white and say we don't want to be a hundred cent rough but maybe something like sixty and now we've got a very very slight kind of difference here but it's enough to create that subtle detail and if I'm not liking the contrast here I can adjust these points kind of spread that out a little bit there we go I'm liking that and now if I plug that right back in take a look at our overall result you can see that we're getting something that at first glance looks fairly uniform but if you get up close and you like render this out at 1080p you're gonna see some very very very subtle breakup which is exactly what we're trying to achieve and of course I can also invert this gradient here if I want to reverse the effect so I can change my darker values to remap them to a lighter value and remap my letter values for darker value and once again see what's actually being produced by this take a look here so I'm gonna have to adjust the contrast here between those dark and light remapped values bring this guy back down and now I've effectively inverted that effect on the texture so the final to remap nodes I want to talk about can be found by searching range in the search bar here and specifically you're going to be going over the change range and color change range but let's start with a color change range because it's more similar to the ramp node so I'm also gonna bring in the ramp node so we can make a direct comparison between the two to help us better understand how the color change range is working because if we take a look at the UI here it's drastically different and a little bit intimidating well the ramp node is by far the most visually intuitive remap node that you'll end up working with here so if we take a look here in the color change range node you can see we start with the input parameter which is going to be where you pipe in your actual texture and then we have the old range men and old range max now you can think of the old range men and old range max similarly to moving the sliders along the gradient so if I were to move my black slider closer to the midpoint and the white closer to the midpoint it would be similar to increasing this value here this black value and decreasing this white value right so it's essentially like I'm using these values to move the points on that gradient right one important thing to note however is if we actually take a look here at our node and pipe in our texture first of all to both of these nodes is that first off we're retaining color with the color change range we're not actually affecting the color we're not colorizing our texture we're only shifting the values so if I go ahead and reset this to default we're not going to see a difference here if we switch between the color change range and directly pipe it into our texture and as I increase this value here in the old arrangement and Max you're gonna see that we're getting contrasts but we're not actually affecting the color values themselves likewise in the ramp node resetting this back to its defaults I can move these along to create contrast as well but one thing you'll notice is that there isn't a direct correlation between the not percent not position percentage and the actual value that you set here so you're gonna have to kind of work those independently now I'm switching back to the color change range let's take a look at the new range min and Max now you can think of the new range min and Max here being similar to actually setting an exact value or color in your little knots right so if I set this darker not in the ramp to red and the light or not to blue then that would let me take a look at that obviously they're not going to be directly lining up in terms of positions as I talked about but you can see we're getting that effect that we talked about earlier where we're actually colorizing the brightest and darkest values and if we switch back over to our color change range and do the same thing I'm gonna connect this to my output so we can see what's going on if I set my range min to a red color and my range max to blue you can see we're effectively getting the same colorizing once again an important note here is that the same srgb to linear conversion will be required if you're trying to get an exact numerical value for something like the weight or roughness and we can demonstrate that by remapping our range min and Max to a 50% gray value so I'm going to set both of these to 50% gray and if we take a look at saturation here if we take a look here you can see that we're getting that 50% gray and if we plug that in to our diffuse wait for as we did previously turn this guy on here plug that to the output you can see that once again we're getting that darken value so in order to fix that we're going to type in a our color range into a color correct set a gamma of two point two to convert that srgb curve to a linear curve and give us the predictable numerical value based on the actual percentage value values here so if I set that to 50% it would translate to a value of 0.5 right once I converted it and now if we switch between these you can see that we're getting the result that we want so for a final comparison between these two nodes you can see that we can use the color change range similarly to that of the contrast parameter in the colour correct node as moving these sliders will result in contrast on the texture without actually converting it to a grayscale image but as far as colorizing go you can see that compared to the ramp node we are only limited to two colors so the ramp node would be more effective at creating a complex gradation of your texture and so for our final remap node we have the change range and if we pull that guy in here you can see that now we're looking at something that uses complete numerical values rather than a color or gradient so here we have the same exact parameters we have an input which is where we pipe in our actual texture and we have an old range min an old range max an arrangement in your range Max and these old range and new range functionalities are identical in terms of how they influence the texture to that of the color change range so we can think of our old range min and Max as shifting those knots to create contrast and if I go to take a direct look here as I increase my min value you'll see that we're shifting the darkest values up towards the midpoint and as I lower my range max you can see that we're shifting the brightest points down towards the midpoint now immediately you can notice that because of the difference in calculations between the linear numerical values and the srgb color swatches ingredients we're getting something that's a lot different in terms of predictability when it comes to adjusting these values so I'm gonna go ahead and take this down to something like a value of point zero six and I'm gonna set the max to something like 0.25 and now we're getting something a little bit more along the lines of what we were doing before in terms of getting a nice balance between the darkest and brightest values so moving down to the new range min and Max you can think of these two parameters as being exactly the same as when we were changing the values on those knots on the ramp node right so we're actually remapping the values from their original values of pier 100% black and pure 100% white if we were got that contrast of course to something of our own choosing this case because we're dealing with strictly numerical values we don't have the ability to add color but we are able to enter more precise numerical values which we could of course use in any sort of parameter which deals strictly with those numerical inputs so if I go to the new range max here and I lower this value to say 0.7 I'm taking my original value Max value of one or a hundred percent white and I'm lowering that to 0.7 so the highest value that I'm going to get depending of course on the contrast is 0.7 and for the lowest value I could do the same thing so anything that is 100 percent black or has a value of zero if I raise that to say 0.3 now the darkest points on my particular texture are going to have a value of 0.3 so this way if I want to create some sort of variation for example say in my roughness channel so I can go ahead and plug this guy back into my reflection roughness and pipe this guy back into the diffuse color once again bring the reflection white back up so we can see what's happening here okay now if I set both of these to the same exact value to start say set them both to zero and of course we're gonna see 100 percent reflection if I set them both to one we're going to see 100% roughness and if I directly view my change range you can see that the value of 1 is white and a value of zero is black so reconnecting here to my actual shader output we can clamp our roughness values to a numerical value and get that same sort of variation but with very precise numbers so let's say for example that I was doing some testing and I liked a roughness of 0.3 but I wanted to get some nice variation here so going back here as we can visually see the variation let's say I wanted my max value to be somewhere around 0.6 so now I'm getting some very very subtle differences here to break up that overall reflection roughness intensity and now we're getting that very very subtle breakup in the reflective roughness here that we were trying to accomplish before so next up we have the color layer and then go ahead and grab that and drag it into my shader graph take a quick peek at the parameters here so we've got a base layer and we've got multiple layers actually seven additional layers which we can blend it together and overlay on top so I'm gonna go ahead and pipe in my first image here into the base color and I'm going to view that in my output and you can see we're getting something completely black and the reason for that is because by default we have our layer 1 checked on which is being essentially overlaid on top of our base layer so you can see that it has a solid color of black so if I were to change this to red you would see that black become solid red and if I turn it off we're going to see our base layer so you can think of this very similarly to a Photoshop layout right so if I enable my layer 1 and let's say I want to blend together these two images so I have this kind of white cracked rock and I have this very brown stone if I take my white crack rock white crack rock ok I should have thought about that a little bit and if I connect that to my layer 1 and color input here we're going to be seeing this white rock override the base layer and the same way that the solid color was because we have this set to a normal mode so if we look down here in the options we do have a mask and a blend mode so first of all the mask essentially acts as the opacity channel of our image so as I lower this to say 0.5 now we're giving this white rock a 50% opacity so that the base layer Brown rock is beginning to bleed through and as I lower that even further I'm gonna see more and more of the base rock coming through and a value of zero is going to hide this layer one completely now additionally I can use an actual black and white image or any image which I can convert to a grayscale image as a mask so anything that is black 100 percent black will be completely opaque or transparent and anything that is 100 percent white will be completely opaque so let's go ahead and take this image here and add a little bit of contrast to it with a ramp node so I'm going to pipe this image guy here into the ramp I'm just going to switch it to alt mode I'm going to go ahead and view the result of this ramp node I'm going to bump up the contrast here by pushing the darker values up and bringing down the light values so we're getting points of 100% black and 100% white so we can really demonstrate this okay and then I'm going to take this output and pipe it into my layer 1 mask and if we now take a look here you're gonna see that the areas on this mask which once again are white so here we can see these white areas that's where our white rock is now going to be showing through right so we've effectively blended these two images using this black and white mask now additionally we can adjust the way that these two images blend together so if I remove this mask first of all and I kind of begin to scroll through these blend modes once again completely the same as you would find in Photoshop in terms of functionality can add it on top can subtract multiply difference you have all of your basic modes here overlay and once again you can either use the mask slider to adjust the overall kind of effect of that or if you only want this particular image showing through particular areas you can actually combine the masked texture here with the blending mode so now once again if I said this to normal see that we only have it showing up in these particular areas but we can still apply an additive effect or a multiplicative effect it's only going to affect the base layer however in the masked areas so we can really start to get some very interesting results by utilizing all of these layers and even though we're limited to seven we can always copy our color layer pipe the output here into the base of a new one and add additional layers on top of that so you can essentially have an infinite number of layers if you so choose all right so next let's take a look at the curvature node I'm gonna go and search that up and drop them in I'm gonna connect that directly to my output so we can see what's going on here and immediately we see this very very cool procedurally generated effect here and we have two main modes we have convex and concave the out curvature versions of these I believe are just older legacy versions so we'll be using convex and concave primarily so for convex essentially any outward curvature on the mesh will receive a white value and the opposite will receive a dark value or a value of black so let's go ahead and reduce the radius on this so we can see a little bit more of a precise result so I'll set something like point zero two and now you see we've kind of clamped that to only the most qualifying convex parts of the mesh and while we're still getting these areas of gray that maybe we want to eliminate we'll get into that in a moment so let's go and switch this over to concave and quite the opposite any areas or any parts of the mesh which have these inward protrusions or grooves are receiving the same treatment of getting a white mapped on to those areas and all other areas which we would consider convex are getting a black value map to them so then for the sample value this I believe influences the accuracy of this procedural calculation so in most cases the default value is probably going to be good enough to serve all your purposes but if you're experiencing any sort of strange artifacts or it's not working on certain parts of the mesh then you could probably try to increase this value and then we have the consider same object only so when I have this checked off it's going to treat this entire model as if it's one complete singular piece but if I check this on if I have any sub pieces to this model as you can see it's actually separated into multiple parts it's going to treat each individual part independently so if you had two chunks of the model that were very close together creating some sort of conv cave or convex surface or even intersecting each other for example then leaving this unchecked would take those parts of the model into account so in most cases you want to keep this unchecked if you're applying your material to a model that's made up of multiple components switching this guy back to convex let's see how we can deal with these clamping these somewhat gray values if maybe we want to get rid of them or just add an overall contrast to this effect so if I switch to the remap tab here I've got a lot of options here and there's a lot of different ways that you can go about doing this but usually I like to go ahead and start with the bias and gain so as I lower the bias value you can see that we're actually pushing those gray values closer to a value of black similar to like the remap nodes which we'd gone over previously so now that I've lowered my bias here you can see that I've completely clamped all those gray values to a value of black and likewise if I push this up in the opposite direction I'm now pushing those gray values closer to white and our gain value here is going to give us similar control as I move it upwards we're darkening values and as I move it down we're brightening the so if I wanted to get something more contrasted I would start here but if I wanted to actually break up these edges so that they're not so uniformly and in width or shape I could actually use a texture image like this to actually break up that curvature map so once again there's different techniques that I've seen for achieving this result I'm gonna go ahead and take a look back here at my curvature node I'm gonna take this texture image black-and-white texture image which I've piped through a remap node to add contrast and I'm gonna go ahead and input it into my remap contrast value now immediately you can see that we're breaking up those edges but we also have a lot of spillage and maybe this is something that we want but we can actually hop right back into our bias and gain and begin to adjust that so I can start bringing the bias down to push those gray values closer to black and now we're eliminating a large majority of those gray values where otherwise you know the there would be spillage and maybe I can adjust might gain a little bit to get the contrast out and even more and now I've effectively taken that texture and use it to break up my curvature into something a little bit more organic and non-uniform so this leaves us with a completely procedurally generated mask that we could use anywhere that we saw fit within our network one important note is that the curvature node can't actually be used when it comes to building a custom displacement map or used in a network that influences the displacement map as it is calculated after the displacement another really useful procedurally generated effect is the ambient occlusion node so if I type in a o and drag this guy in here and connect him to my output can take a look at exactly what this does now you'll see right away that we're getting almost this sort of shadowing effect but essentially which amp Oshin does is it darkens up all the areas where two surfaces meet so you can see these grooves are darkened and really all areas where you have two objects within a specific distance of each other now we got a few options here samples is going to adjust the quality so the higher I take this the less noisy the ambient occlusion will become as you can see there is a gradation from white to black and then we have these two values for the bright and dark so the occluded areas will be using black and the none occluded areas will be using white so I could actually even hop in here and throw in a color so I put in a red for the bright areas and a blue for the dark areas you can see exactly how that's working so you get a nice kind of interesting more artistic output if you put some colors in there and then we have spread and if I go ahead and start adjusting this value if I bring this to zero and then I bring it to one it's almost like a feathering effect so at zero we're getting a harsher transition where there's no sort of interpolation between the dark and bright values and a value of one is going to be a much more gradual interpolation and we see them blending very nicely here okay so then if we set this back to zero so we can move on to the fall-off and see this little bit more clearly as we bring the fall-off of value up we're essentially affecting the transition of intensity of the darker value so you see it a certain point we're kind of maxing that out right so if we set the spread up to one brought this back to zero right so a value of zero on the fall-off means we're completely removing the dark component and as I begin to increase this we're increasing that overall intensity of the dark value and if I go ahead and drop my spread back down to zero reset my fall-off to say 1 the max distance is going to allow us to clamp this occlusion effect below this kind of maximum intensity point so if I put in a value of 0.1 now you're gonna see the occlusion only occurring in the areas with the smallest distance right so these very very tight grooves and if I begin to increase that you start to see the effect expand to other parts of slightly higher distance right 5 15 25 until we get to a certain point where we've hit the maximum distance for occlusion all right and then furthermore we can have reflectivity occlude so any place that there's these kind of hot reflections we're going to get occlusion in those reflections we can invert our normal which is essentially going to flip the effect here so if I bring the mac systems down a little bit you can see when i turn it off it's got your normal occlusion when i flip it it's inverting that occlusion similar to the concave convex functionality on the curvature node I've got different output modes you can have occlusion in your alpha consider same object only works once again it's very very similarly to that of the curvature node if you check this on if you have multiple components of your model it is going to ignore all those areas where the two separate components meet or is if I uncheck it it's gonna treat it as a uniform singular piece of geometry so I'm gonna go ahead and reset all of my parameters here I'm gonna bring up spread so that we get some nice gradation here some nice fall off on the edges so it's not so harsh gonna adjust my max distance a little bit so I'm only getting the occluding effect where I'd like thanked maybe even go smaller 0.5 for example and now I essentially have generated another procedural map where I can use this as a mask to have certain effects or textures show through just these white occluded areas I can also pipe that into a ramp in Alta mode so you can see I can really clamp down those white values if I want them to be a little bit more intense and once again I can use an actual texture image to break up this hard uniform line in a more organic way so I can take my ramp output here which is adding contrast to my actual texture image and pipe that into the fall off of the occlusion and now you'll see that I'm actually organically breaking up that edge based on this texture and then from here I can begin to increase the spread if I want to have a little bit more of a soft fall-off here it's gonna bring in some some of these areas and then I can also adjust the kind of width or size of this effect by bringing up my max distance to effect a larger area so this is a really great way to have a somewhat worn look or if you have certain if you have dirt collecting in these grooves etc and if I want to inverse that to get some sort of edge damage I can always go back and invert the normal here and make any sort of adjust adjustments that I see fit I maybe bring down the max distance and I see that I've reversed that from the grooved areas to sort of the edge areas and I've got some nice edge wear which once again you can also achieve these same effects with a curvature node again one important thing to note is that this shader will take into account all geometry within the scene if you do not have this consider same object only checked and we can see how this could be problematic if you have a piece of intersecting geometry and as you see if I have this cube intersecting my mesh you're getting that occlusion effect around the cube so if this was an animated piece and I had set up my shader if any geometry got close or actually intersected then you would get this almost flickering effect of the ambient occlusion going in and out around that object or in areas where the object is very very close to your particular mesh your options when it comes to correcting this issue is again turning on to consider same object only so that you're only affecting singular objects in which case you would need to combine any sort of multifaceted model into a singular into a singular mesh or if you had only a single object which you didn't want to affect you could actually go to your object in this case the cube right-click it and add a redshift object tag then within the attributes of the object tag you could actually override the visibility go down to the cast AO and uncheck mark that and now this object will not be generating any sort of ambient occlusion rays and therefore will be ignored by the procedural shader now this next node and its workflow is exclusive to cinema 4d however there's most likely something equivalent to this within other 3d software and that is the vertex attribute node now the vertex attribute node has multiple functionalities but one of the most useful ways to use it is being able to take your weight maps and integrate them as dynamic masks within your shader Network so I'm going to go ahead and jump over to my viewport here I'm going to go to the character menu and select the paint tool and once I start painting on my sphere I'm going to generate a weight map which will be added as a tag to my sphere object so let's go ahead and make a quick paint on this guy here so I'm gonna make sure I have my spirit selected first and then I'm going to go ahead and just paint a nice little happy happy face here and we'll see that map added here as a protects map tag on our sphere object so if I go ahead and select that and go to my attributes I can give it a unique name so I'll go ahead and say this is my happy face again this can be named whatever you like and then if I double click on this tag I'll be able to re-access my paint tool options and I'm not gonna go into a lot of detail on here I do recommend that you check out a video on more detail information about this tool but you can see that I can go back to my object and if I set my mode to add I can add additional detail here I could set it to subtract and effectively erase that detail if I so choose scaling this up a bit I'm gonna go to wipe that out and if I set this to smooth I could smooth out the edges of anything that I've painted by saying to smooth and hitting apply it all can increase the effect of this smooth etc so now if we go ahead and take a look at our shader graph I'll go and show you how we can use this weight map within our shader Network so if I select my vertex attribute node and then I go over to my vertex map tag and I hold down my left mouse button and drag that into the attribute name and connect this to the output so we can see what we're getting you'll see that our weight map has been translated into a black and white map which we can use as a mask or even just a texture within a color layer if we so choose within our network so for a quick demonstration I'm gonna go ahead and pull in a color layer I'm gonna drop that guy into my network I'm gonna connect it to the diffuse color of my shader ball or of my material and then I'm gonna go ahead and set a base color of red and I'm going to set a secondary layer color of blue so now if I view my material we'll see that the layer one is overriding the red so the entire ball is blue but if I want to mask this blue out just within the vertex weight map which I painted you'll notice that you need to refresh your IPR quite a lot with this node but if I go ahead and pipe this into the layer one mask of my material we should just now be seeing the blue come up in these white areas of our mask so let's go ahead and take a look at that and right away we can see that blue color and the diffuse coming through where we painted that smiley face on our wait map and furthermore I can add a ramp in between my vertex attribute and my mask input and taking a quick look at that directly I can actually adjust the contrast of that as well as remap it with colors if I so choose and then if I take a look at my final output you'll see a much harsher transition here within that map so there's a couple of great things about being able to integrate these vertex weight maps within your shader Network one being that they do not rely on UVs so you can paint anything that you'd like on to your models and they do not need to be UV unwrapped in order to work and the second great thing if I go ahead and reconnect my output to the attribute node if I select my tag here and go to its attributes and enable fields and go to the fields tab you'll see that these weight maps now work with the are twenty fields so you can do all sorts of really interesting things like creating or adding noise or creating animated maps which you can use to very procedurally transition between two different textures or two different materials the possibilities are endless when it comes to this new addition of fields in our twenty so you can definitely utilize this to get some really really cool results and just as an extra tip you can actually convert poly selections very easily and quickly into these vertex maps if you so choose so I can go ahead and do that by selecting my sphere and going to the viewport here making sure I'm set in faces mode and then I can make a selection on the faces we'll go and just do another face type smiley face selection and then I can do a few things I can go to select and set vertex weight or save that as a selection for further selection so let's go and say I just set a selection at first and that'll create a selection tag here so in the case that you know I have my sphere selected and I lost that selection I could just double click on this to reselect it and with that selected you can go to select and set vertex weight I'm gonna go ahead and set that to 100 so that it sets a value of white in these selected areas I'm gonna hit OK and you see we've created something very similar obviously there's a little bit less of a fall-off as when we hand painted it as that was more dependent on our brush settings and this will instead fill in the entire selection itself but you can see and I now have this new tag here which I can go ahead and just rename that Holi select so I remember what's going on here and it still has that same fields functionality and once again I can go into my redshift vertex attribute node and take this new map and replace it with the poly select and you see that I've now successfully converted my poly selection into a usable vertex map which I can plug into my protex attribute and use it as a mask with in my shader Network so next let's take a look at the bump blender so I have here this material and I'm gonna go ahead and just pipe in a bump map okay I'm gonna connect that here overall bump input take a quick look here at the result so I'm getting some nice bump coming through here it's pretty intense I'm gonna go ahead and drop this down to say point one and maybe exactly Oh point zero five and that's probably looking pretty good I'm gonna go and set this to bucket mode so I can kind of see the final effect here okay now let's say that I want to combine multiple bump Maps or blend to multiple bump Maps together now I could take a series of black-and-white images pipe them to a color layer and get my overall bump map that way through a singular node or I could take multiple bump maps or multiple images that it can be used as a bump map and use a bump blender to combine them you can actually combine up to four different Maps but you can also once again take your final output of one bump blender bump it place it into another bump blender and therefore daisy-chain them to have an infinite amount if you so wished so how this is gonna work is I'm going to go ahead and take my first bump map I'm gonna pop it into the base input you can think of this again as something very similar to the color layer except now we're using bump maps and now I can take the output of this and plug it into my bump input and by default since we only have one bump map here and it's the same a second as we used before we're gonna get the same exact effect so I can go and take a snapshot of this for comparison purposes and now I've got another I've got a noise that I'd like to use as my secondary bump so I'm gonna go ahead and take a quick look at this and the output so I can kind of dial it in let's go and go to the coordinates and we're gonna go ahead and up this value bring that scale down and I'm gonna go for like a pretty big noise start you know maybe I'll increase the complexity a little bit and I go to the color and I'm gonna remap this got a little bit of contrast bring the lights down and the blacks up okay so now I've got some nice contrast going on here I can use the bias to kind of shift it towards the darker values or the wider values if I so choose and I'm gonna go ahead and pipe this into another bump map node and I'm going to connect this bump map to my layer 0 bump input now right away and I view my shader again right away you're not gonna see any sort of difference and that's because our new bump input or a second bump input has a blend weight of 0 so if I bring this up to 1 we're going to we should be seeing it now so now I have a very intense bump map right here so I can go and dial that back a little bit let's say point 0.08 see how that looks ok very subtle here for intensive purposes of testing here let's just have it somewhat more visible value say 0.15 now we can kind of see how it's sort of breaking it up very kind of bumpy complements this nice rock texture but the one thing that's missing now is our original bump so we could say okay maybe I want the blend wait to fight lower that it's like an opacity slider now I'm starting to bring back my original bump but let's say that I actually want to composite them together so that I start with my original bump and I'm adding my noise on top of that so I can set this blend weight back to 1 and if I activate additive mode it's essentially going to first calculate the base bump and then it's going to add the secondary bump on top of that okay so now I can have multiple bumps and add them all on top of each other so let's say I wanted a finer noise movies out of the way if i duplicate this down and i go and once again directly connect my output to my noise say i go and bring the scale up to say 50 okay so now I got this very very fine grain and now I connected this bump output to my layer one bump input and I go ahead and view my shader again I'm gonna bring the weight up temporarily I'm gonna turn off additive mode so I can just see what's going on with this fine grain bump and you can see that's creating this very very rough surface so if I go ahead and recheck additive mode you're now going to see all three of those bump Maps added together so they're all having an effect and if I think that one is a little bit too intense and it's kind of overpowering the others I can bring down this blend weight and it's going to reduce the overall effect of that similarly similarly I could also just decrease the bump height scale if I so chose but in this case just for working purposes bring the blend weight down it's gonna have the same effect again if I just want this particular bump map to show up in specific areas I can also just put a black and white map into the blend weight as a mask so for example let me go ahead and grab a black and white map here that we can use for this example okay so I'm gonna drag this guy in here take a look at this okay and I'm gonna go ahead and just copy one of these to try planers so I'm projecting it going to replace the texture here I've got this global scale controller constant expand this a bit so it's easier to grab onto I'm going to connect that to my scale of this guy here now we're gonna go and view that so we're going to use this as my mask once again I can use a ramp to add some contrast to this so that I can have exact control over where this mask is going to reveal my bump and hide it so I'll bring up the dark values so I get some really really strong contrast here okay and then I can go ahead and take this ramp out put pipe it into my lair one bump wait and now anywhere that this white 100% white is on my mask the bump is going to show through at a hundred percent and anywhere it's black it's going to be completely hidden right so I'm actually gonna go ahead and make it a little bit more intense so we can really see how this is working okay so now if I switch back over to my shader check that to the output you can see that just in those areas the white areas of my mask is where we see this really fine grainy bumps so this offers you the ability to have complete control over where your bumps are happening and to combine multiple bumps to create some great variation within your shader you can also combine normal Maps using the bump blender so if I take this normal map here which take a quick look at so I've got this normal map here you can pipe it into a bump map node and I'm going to just want to make sure that I change it from height field to tangent space normal so that it works with normals and I'm gonna go ahead and connect it to my bump input too and I can turn off additive mode once I've set the blend weight to one to make sure that it's functioning correctly and then if I set it to you additive mode now I have the ability to blend in any sort of normal map along with my other bump Maps now when it comes to displacement it gets a little bit more complicated so I'm gonna go ahead and start by getting myself a displacement node and I'm gonna go ahead and take this displacement map and I'm gonna pipe that into the displacement node texture and now I'm gonna connect it this displacement node output into the actual shader output not to my material but to the shader output and I'm gonna set it as displacement and now I've got that can but I am still not seeing any sort of displacement whatsoever so I can check this here and make sure that I actually texture is working okay so that's there so if I reconnect to my material the next thing I need to do is actually go to my model in the objects menu here I'm gonna want to add a redshift tag and I go to redshift object I'm gonna select the tag I'm gonna go to the attributes and then go to geometry I don't have to check some stuff on here so you see that we've got some options for tessellation and displacement tessellation is gonna allow the geometry to be subdivided to the point where we're able to see that detail from the displacement actually comes through and the displacement parameter is going to control the intensity and scale of that displacement so I'm gonna go ahead and turn this on I'm gonna start by turning on tessellation next I'm gonna go ahead and enable displacement and now we should start saying displacement occurring here in our render view there it is and I'm gonna go ahead and save as save a snapshot of that for comparison here the first thing I'm gonna do is I'm going to disable auto bump mapping now what auto bump mapping does is anywhere that the displacement is not viewed as necessary or it's unable to displace it it's going to convert that into a bump map and then apply that over the top of the displacement so if we pay attention here as I disable it go and take another comparative snapshot and can kind of see where that's occurring so I'm gonna go and let this process here and I'm gonna save a snapshot and switching between these two you can kind of see these finer details coming through so we've got these two options here we've got displacement scale and maximum displacement so displacement scale is going to act as a multiplier for our actual displacement node scale so you see in my displacement now it's scale here if I enter a value of two it's going to actually increase the effect of this displacement and as you see here I can go and save a snapshot of that okay I'm going to reset this back to one and now we're going to go back to our tag and change our scale to two and we should observe a very similar outcome so these two are somewhat interchangeable okay so if I compare these two you see that they're basically giving me the identical amount of displacement all right I'm gonna go and reset this back to one we're gonna jump over to the maximum displacement now the maximum displacement you can think of that is a maximum clamping limit for how much we can actually displace this so since we're currently at one imight lower this down to 0.5 to make this a little bit more visible okay so if I begin to raise my displacement scale we know it's going to create a more intense effect right so let's go ahead and hike it up to two and again we're getting a more intense displacement so now let's go ahead and crank it up even further so we technically should be able to enter any sort of number to this and it will keep scaling this up up to infinity right so I'll put in 100 and we'll give this a second here and now what you're seeing is that all of a sudden it looks like nothing's happened except for the entire mesh has almost uniformly displaced outwards and then it's stopped at a certain limit and the reason for this is that the maximum displacement is cutting off that displacement it's clamping it at a certain value so in order to get some of that detail back let's give this some more realistic number here let's say five see what that looks like in the scale before we start tweaking our maximum displacement here okay so you see that currently at a displacement scale of five we're still getting all of that displacement deal clamped and cut off so it looks like it's almost a uniform displacement so I'm gonna start increasing the maximum displacement here going to bring it back to one and you're slowly gonna see this detail come back as well as having the actual displacement itself be allowed to expand further beyond this clamping point so in here we're starting at this teeth detail back I'm gonna go to bring this all the way up to five and this will probably be enough here okay so now we're getting our full detail and none of it is being clamped off so essentially both of these work in unison in order to have a specific amount of displacement you need to make sure that your maximum displacement will allow that without clamping it alright somebody go and reset both of these to a value of one their defaults and let's dial in some displacement to a nice scale value that makes it really kind of apparent here so let's bring this up to two and just to make sure that we're not clamping anything let's bring this maximum displacement to say a value of five which again this parameter is essentially just putting in place a maximum limitation that the displacement scale can actually reach and now let's hop back up here to the tessellation and go through some of these settings so we've got subdivision rules got a few options here or to Catmull Clark with a loop or katma Clark only and in order to kind of observe this more thoroughly let's go ahead and hop back over to our shader graph and I'm going to connect a wire frame so that we can actually see the tessellation which is occurring here and so we've got a few options here we've got the subdivision rule we have Catmull Clark loop or Catmull Clark only and the main difference here is that you want to use Catmull Clark loop for any mesh that it's triangulated well Catmull Clark only is going to be more prone towards quads in this case we're not going to see a huge difference between she's choosing either option although we are using quads next we have screen space adaptive and what essentially what screen space adaptive does is it will subdivide the mesh based on its distance from the camera so anything that's close to the camera will receive more subdivisions than anything that's further away from the camera because obviously if you have objects that are far off in the distance you're not going to be able to even see the level of tessellation detail on it anyway so it's more of an optimization setting so typically you want to keep this checked on and then we've got the smooth subdivision and to demonstrate exactly what's going on here I'm going to go ahead and hide my shader ball temporarily and activate this low poly sphere I'm also going to go into my wireframe here and show hidden edges so that we can see exactly what's going on it's going to drop the tries here now I'm gonna hop back here I'm gonna grab this red shift tag that we set up originally and I'm going to copy it over to my sphere and I'm going to go ahead and turn off the displacement for now so we just have the tessellation and immediately you can see that as soon as I uncheck smooth subdivision rather than acting like a subdivision service wood or any sort of smoother subdivision smoother and any sort of 3d program would instead you're just tessellating the existing geometry you're not smoothing out the actual shape of the sphere so reactivating that you can see that we're getting that nice rounded smoothing effect here well also simultaneously adding the tessellation that we need so this goes by a case-to-case basis if you have a mesh that is not prepared to be smooth then you'd want to make sure that you uncheck that smooth subdivision next we have at UV smoothing and you have a few options here where if you're noticing any sort of strange artifacting or stretching on the you've ease of your mesh as viewed through the textures on your model you may want to try switching to a few of these to see if that corrects your issues next we have the minimum edge length and so in order to demonstrate exactly how these are going to work I'm going to go ahead and rename displacement on this sphere okay so now we're getting that nice rocky displacement here and you can see it's pretty highly tessellated so essentially what the minimum edge length is going to do is control the amount of accuracy when it comes to the detail within your displacement map so if I set this to a higher number let's go for eight for example you see that it's taking in less of that detail and only really paying attention to those large portions of the of the detail and because of that large detail it doesn't require nearly as much tessellation since it's ignoring the more fine details now to get quite the opposite effect if you want to really bring in that fine detail can set this to an even lower value let's go for a value of point five for example and you're gonna see that the mesh becomes much more tessellated but we're really starting to get that fine detail coming through now in most cases you don't want to set this too low because it's gonna result in much much longer render times and re-enabling the auto bump mapping will help bring the some of that detail back in without actually requiring you to tessellate the mesh to an extreme amount so I'm going to go ahead and reset the spec the default of 4 and then our next option here is maximum subdivisions so as you saw when we bring this down to a low number we're getting a lot of tessellation here but if we want to limit the amount of tessellation we can either increase this number to have a higher maximum amount of tessellation before it stops itself so if I set this to 8 you can see that now although we have the same exact minimum edge length we're allowing the mesh to be tessellated even further to bring out even finer detail so if you're getting really really up-close on something you probably will want to increase your maximum subdivisions if you're not getting the level of detail that you want and likewise if we lower this number say to a value of 1 we're now limiting the amount of tessellation that it is allowed to make to try and get that level of detail dictated by the minimum edge length so in this case might go for something around the default of 6 which would likely bring me enough detail for this particular distance from the camera and then reenable my auto bump mapping to get that fine detail that I might be missing next we have the outer frustum tessellation factor and essentially what this does is it controls the amount of tessellation on objects outside of the camera's view so if we raise this number any objects that have displacement and tessellation on them outside of the camera's view will be greatly reduced in terms of how many times they're subdivided and bringing this value closer to zero we'll keep that tessellation much more similar to if it was in within the camera's view now your initial reaction might be to crank this number up to a really high value considering the benefits however you also need to keep in mind that any reflective objects that the cameras looking at will also reflect that low poly tessellation as well and if there's any sort of camera movement as that tessellation value increases as these objects come into frame you get some strange artifacting looking results within your reflections as well as changing the way that lights and shadows are cast within your scene so normally you want to keep this at either default or just slightly inch it up to the point that you're not heavily impacting those variables within your scene and if we drop down to the next option here we'll limit out of frustum tessellation and enable that it's going to give us this new option here to limit the maximum subdivisions for any objects affected by the frustum tessellation factor so any of these objects outside of the camera's view that you are tessellating less than those within the view if you want to set a maximum amount of times that they can be subdivided then you would go ahead and enter that here the same as if you were limiting the overall maximum subdivisions in the maximum subdivisions parameter and so if we go ahead and turn off our sphere bring back our shader ball and reconnect it to our main shader here I'm gonna go ahead and refresh the IPR just to make sure that we get everything back properly I'm gonna go ahead and jump back into the tag here and I'm gonna go ahead and it dropped my minimum edge links to one and save a screen cap here and then I'm gonna go ahead and drop my maximum subdivisions to zero and our ultimate goal here is to get the least amount of tessellation with the most amount of detail so we obviously don't want to crank this too high and overly subdivide the current shader ball that I'm using is already fairly subdivided within the model itself so if you're working with a lower poly model then you're obviously going to need to subdivide it more using the maximum subdivisions here as well as having a fairly low edge length so let's go ahead and start bringing this up I'm going to jump it up by two to start and then I'm going to compare so I'm gonna go to let this process here and I'm gonna save another screen snapshot I'm gonna look between these two and I'm saying very minimal difference here for the most part you can see in these specific areas here you're starting to see some of that higher detail come through which was at the default of six okay so I'm gonna go ahead and bring this up another two so now we're to value of four max subdivisions and we're gonna look at these areas once more and now we're seeing some of that detail and compared to the original at six not seeing very much difference whatsoever so I'm going to go ahead and say that four is plenty of subdivisions for this particular model of course if we're zooming up really close then we would definitely need to bring this max subdivision value higher to compensate for that but if this is about as close as we're gonna get then this is working just fine and then I can go ahead and turn my auto bump mapping back on to get any of that really fine detail back into my render by converting it to a bump map so I'm gonna go ahead and let that go and then I'm going to take a snapshot here just so we can toggle through these guys and if we look back at our original tessellation here obviously we're seeing a lot more of that detail by enabling auto bump mapping but we were able to dial in the req amount of displacement in the first place without getting ourselves confused as to what was actually being displaced and what was an additive bump map we can also combine multiple displacement Maps in the same manner as bump maps by using the displacement blender so I'm gonna go and drop a displacement blender in here and you'll see that it has very similar parameters to the bump map displacer or a blender and I'm gonna go ahead and pipe in my first displacement map here into the base input and connect my output to the displacement in the shader output and we're not gonna see any differences here because we are still using our original displacement but if I copy this displacement node here and I connect it to my layer 0 as the input and this time I use a noise and I pipe that into my texture we can take a look at our noise really quickly here and we'll give it a second to process that in the IPR I'm actually gonna go and switch off bucket for the minute for the moment and of course anything that is black is going to be pushed into the mesh and anything that is white is going to be expanded outwards so I'm gonna go ahead and take a look reconnect here to my material and I'm gonna go to my displacement blender and I'm gonna crank up my blend weight to 1 and we'll give it a minute to process here ok so now I'm seeing some extreme displacement here so I can bring down the scale of my noise and bring it down to say 0.2 and we'll see what's going on here ok but one issue that we're seeing now is it looks like we're overriding our original displacement and we've completely replaced it with this noise and once again in order to layer these on top of each other we can so that they're both influencing the displacement we can check on additive mode and we will see that the original displacement is showing up and then our noise displacement is being added on top of it and once again you can daisy chain these displacement blenders to have an infinite number of mixed displacements and in the case that we only want certain displacements to show up on specific parts of them of mesh we can go ahead and use any sort of masks that we've generated so in this case if I replace my second displacement layer here with a finer noise go and give that a minute to load up let me go ahead and dial this back a little bit so it's not so crazy Oh point O five I can use this other noise which is essentially a black and white image to influence where this very fine at noise displacement will actually show up so if I really quickly take a look at this noise that I'm gonna use for the mask you can see that I've got these dark areas and I've got these light areas so I'm gonna go ahead and actually scale this down slightly so that it's larger and we've got more distinguishable areas I'm gonna go ahead and hop and really quick to the remap here and I'm gonna bring up the dark values so that we get a little bit more empty pockets here so we can clearly see where our fine displacement is coming through and I'm gonna go ahead and pipe that into the displacement weight of our very fine displacement and now I'm gonna switch back to our material give it a second to process and now if we zoom in here on our mesh you can see that that fine displacement is only coming in where we've dictated it using our black and white boys mask now in order to create more complex shaders made up of multiple materials and layers I'm gonna want to use the material blender so I'm gonna go ahead and grab that and drag it into the shader graph and expand this guy so you can see what's going on here and right away taking a look at the UI you're gonna see that it looks very familiar to the color layer except rather than using images we're going to be using actual materials so I've got two materials present my scene I've got this rocky material as well as a shiny red plastic material I'm gonna go and start by connecting my red plastic to the base material of my blender and I'm gonna go and click my blender to the out port so we can go and take a look at what's happening here and right away we see that nothing's changed we're still looking at our red based plastic so in order to blend our materials we're gonna need to add our secondary material I'm gonna go ahead and connect that to my layer one color and we're still not seeing anything happening here and that's because our blend color is acting in the same way as an opacity so since our blend color is black that means that our blend amount is zero so as I increase this towards white go and set it to 50% first you're gonna see this secondary material blending with our plastic the rocky material blending with the plastic material at 50% and you're starting to see that come through and as I bring it up to full white you're going to see that rocky material completely override that plastic material so similarly to how we were using the masks in other facets of our network I've got this mask here which is combining a curvature map with some noise breaking up the curve curvature effect there as well as a base black and white kind of grungy texture and I'm combining those adding my curvature map over the top meaning that anything that is white will be added and anything that is black will not so as you see I'm bringing in these white areas from my curvature on top and combining them into a more interesting mask and from here I can go back to my material blender take a look here and I can go ahead and replace my blend color from white using this mask that I've generated and plugging that into the layer 1 blend color so now anywhere that it's 100% white on my mask you're going to see that layer 1 show through which is the rocky material and we can see that here if I go ahead and Mabel my bucket mode you can see that we're now starting to get a nice blend between both the rocky texture and the red plastic and I can control my mask of course using my color remap nodes or my remap nodes in this case I'm using a ramp so I can go ahead and maybe bring in the rocky text a little bit more by expanding the white areas of my map and now you see we're getting almost a very dirty plastic going on here I can increase the radius on my curvature to maybe thicken up that effect in the grooves so perhaps I'll set it to value of 0.4 and see what that gives us and once again if I'm not entirely sure what's happening in my mask I can always reconnect that to my output so I can directly see what's going on okay and maybe I want to clamp these blacks values a little bit harder and instead bring the white values in now when it comes to displacement we're gonna go ahead and call back the displacement blender and drop that guy in and just as before we're going to use it to combine it the different displacements that we've created per materials so I've got my plastic displacement here and I'm gonna go ahead and drag it in and pipe that into my base displace and I'm gonna take my rocky displacement and I'm going to put that into layer zero and rather than use additive mode in this case because I want each of these displacements to only occur for the correct material I'm gonna go ahead and leave additive checked off and I'm gonna take our mask which we're using to blend our materials and use that same mask to control the blending of our displacements I go ahead and connect my mask here to the displacement weight and once again wherever the mask is white is where our displacement will occur and because we're influencing using that same mask to influence where the material shows up we're going to create a relationship between where the material shows up and where the displacement occurs I'm gonna go ahead and drag this guy into the displacement of my shader output and I'm gonna go ahead and activate my displacement in the red shift object tag by turning it on and making sure my tessellation is enabled as well as my displacement and all my settings are dialed in and now we can see that we're getting displacement here on our mesh except there's one big problem and that's that our secondary rock displacement appears to be completely overriding our plastic displacement we can see exactly what our the displacement on our plastic looks like by connecting that to our displacement input here and viewing that individually give it a second here to update and as you can see our plastics displacement is this very very low intensity noise well our rocky displacement if I connect that directly it's going to give us the same result as we were seeing previously even though we had this mask piped into the weight which should only be creating this more intense displacement on the rocky areas that we've masked out because the curvature is calculated after displacement it's interpreting this layer ad here in our mask as being a solid white and therefore it's overriding our base material because of the fact that the rocky displacement is coming through at 100% so in order to work around this I'm going to go ahead and take my original texture here without the curvature being blended over the top of it and I'm going to directly pipe that into the displacement weight and make sure that's all connected and now we should be seeing the displacement occurring in a more predictable fashion here and as we can see it's pretty intense so I'm going to go ahead and lower the scale of the rocky displacement now to something like 0.25 so that it feels a little bit more natural and less insane and as this process is here you can see now we're getting that nice kind of rocky displacement on top of our plastic additionally there's this option here on each layer called additive and what that's going to allow us to do is if I go ahead and create a new material to blend in here I can take this material and plug it in to the layer to color and I can just give it let's say a bright blue jump back into my material blender and let's go and set the blend color to white so that we're completely overriding the other two materials with just this solid blue a little bit of reflectivity it's gonna be somewhat plasticy highly reflective and now if I turn on additive mode you're gonna see a few strange things occur so first of all the blue diffuse color is being added over the diffuse color of the other two materials similarly to the effect you would get if you used a blend mode and something like the color layer the other thing that's happening is our reflection is also being added to the reflections of the other two materials as well in most cases you'll end up using this additive blend mode to stack additional layers of reflectivity onto certain materials such as a metal or a hardwood floor that has some sort of finished coat on the top so in this case I have a dull copper material and I can go ahead and set my blend color for my secondary material to white and I've got this kind of gray plastic material I'll set that to additive mode jump into the material and get rid of the diffuse component so now I'm just working with this reflective layer and right away you can see it looks like it has some sort of Sheen to it as if there's some additional coating on top of the metal itself and from here you can add textures into things like the roughness or bump as well as mask the overall effect of this reflective additive topcoat so once again I'd like to say thanks for watching and go ahead and stay tuned for the next tutorial where I'll be showing you how I utilized all of these nodes to create this procedural texture based frost shader which you can find a free download link to in the comment section below
Info
Channel: AKFX
Views: 8,440
Rating: 4.9432626 out of 5
Keywords: Redshift, Render, Cinema 4D, C4D, tutorial, free, material, shader, displacement, reflection, ice, plastic, vertex attribute, ramp, color change range, node, octane, arnold, 3ds max, maya, modo, after effects, 3d, lighting, bump, blender, mask, color layer, triplanar, curvature, ambient occlusion, constant, hotkey, download, material blender, displacement blender, akfx, maxon
Id: heXJJSCigoQ
Channel Id: undefined
Length: 104min 49sec (6289 seconds)
Published: Mon Feb 04 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.