Tree Bark - Procedural Material with Substance Designer

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Applause] hello again and welcome to the part 7 of this three bark tutorial this one is going to be a little bit different first of all we're going to make the texture completely from scratch procedurally using substance designer and second it will have a bit of a different format instead of going through each and every step together we'll go through the graph i already made doing a breakdown and talking about decisions and processes along the way for this part i wanted to do a bark which is a little bit different than the ones we already did i was aiming for a texture which is close to something like redwood or maybe cyprus tree bark the idea was to make something with very strong directionality like thin elongated bark strips with some occasional vertical breakup inside i wanted to have this kind of veins and gnarly knots like you can see in these samples over here with a grayish texture and moss on top this was my inspiration but actually we'll end up making this actual tree bark texture over here so now let's switch to the substance designer and go through the graph in substance designer if you load the graph which will be supplied to you as a file with this tutorial you can see that the graph is probably not the simplest but not even the most complex graph you have encountered in substance designer nevertheless it has a quite substantial number of steps that we're going to talk about when you open the graph feel free to play around with different values because that is a great way to learn first of all let's just set up some things that will make our life easier come here to the scene setup and set the mesh to be rounded cylinder since it's a tree bark and we want it to look a little better then set the material default to the tessellation version click that and when you get the options for the material increase the height scale to some value around 8 as that should be enough for us to preview also you can crank up the tessellation vector the graph is set to be relative to parent and my parent size right now is set to 2k as you can see which is again resolution generally like to work with as a good trade-off between speed and quality as you will see the graph will work rather fast even though it's in 2k talking about the overview of the graph before we dive into details i try to add frames and nodes to specific parts of the graph so it's easier for somebody to open this file and get around a little bit quicker from left to right this is where we make our main shapes overlaps then medium and small shapes as well adding secondary and tertiary details here doing some edge damage and finally adding knots to the wood this entire part here is just creating the height channel then there is the part where we create specific masks that we use for making base color and on topic of base color this part over here is just for the base color we set up the basic gradient maps then do color variation and add some specific details like lichen and mass roughness on the other hand is very simple only a couple of nodes to create this is adding most to the height and over here are all our output nodes now before we get actually started let's go through one more thing called the test bench what this basically does is a set of nodes which allow you to quickly view the height map that you're working on let me unlock some things so you can see what i'm talking about basically it's just a levels node that then pipes to base material node with custom channels like base color normal map height and ao it's just a very quick setup that allows you to go from a single input to previewing the material by drag and dropping it in the 3d view currently the cylinder is empty because there is nothing connected usually every time i start creating a material this is how i build and preview the height channel then if you want to use the finished outputs which are all here just right click anywhere on the graph and click view outputs in 3d view that will get you back to your full material now let's start going through the graph itself like we discussed at the beginning of the video the idea is to create a bark with these kind of vertical lines and that is where we are going to start we need to build our main shapes first and then we can tile them to build our main shape begin with the gradient linear tree let's connect to the test bench and preview it nice start but it has this very hard edge so use blu-ray hq to soften it up a little bit since you want the edges to fade as well we blend it with a rotated gradient linear to get this shape over here then plug that shape into a simple tile generator which is enough for this situation and set it up to get these strong vertical elements tile generator is set up to have a large amount on the x-axis 21 and the low amount on y only one element size is way bigger on the x as well so we get nice vertical elongation low random values are set for scale and offset and big random values are for y position so we get this nice organic feeling vertical distribution randomness is also set for the color luminosity so we get some high details as well to show you what happens if we don't blend the edges see how transitions are way sharper now and then mix it together like solid stripes with blended edges on we get something which is way more organic use the same tile sampler but with different seed here offset it a little bit with the transform node and then blend those two together using a gradient mask this is adding more variation to our main shapes and a touch of waviness to the general bark additionally we get some nice details like this wine splitting in places where the misaligned elements try to blend between each other the histogram range node is just here to protect the values before blending so we don't go overboard next element are these unique overlaps that go over the main shapes they are made by using the same tile sampler settings as before but using a different input shape start from the gradient linear 2 and scale it down a little bit with the transform node disable the tiling on that node as well blend over a simple linear gradient to get this fading towards the end and touch a directional blur to soften the leading hard edge that is our new shape for the tile sampler as the edges are fading off towards the top you get an impression they are overlapping each other another blur node to soften the edges and after that it's time to break up these straight ends use a big gauge noise plugged into the directional warp set to a vertical direction for warping to follow our main shapes this gives us the edge break up that you can see right now this was just the first passive edge breakup continue distorting using this gaussian noise scale it three times to get more details then use a very strong directional blur to get this vertical pattern as you can see that combination gives us cool vertical lines but also nice and subtle local variations plug that into the slow blur grayscale node using the same map in both input slots that will inflate and sharpen up the volumes let's now see how it looks and we get organic looking vertical veins use them in one more directional warp for another layer of edge breakup blend in those same veins in archer mode to get even more surface variation checking before and after we see that we got these strong vertical patterns alongside the individual elements histogram range again to protect the values before blending and then mix that back to the original height this is how the original height looks and this is the version with overlaps and this is the mixed version next step is to build subtle large scale variation on top of this height map we can use the same gradient linear plug it into a new tile generation node set the mount text to around 5 and y again to 1. use large element scale with randomness on x position and color with blend mode set to max you should get these large vertical shapes mixing and blending together water the stripes to get the organic feel and to break up the straight lines use the auto levels to get all the values and then blend it with the height map subtly in overlay mode around 0.3 opacity the difference may be subtle but a lot of subtle variations really add up to a nice looking material in the end and like i said feel free to play around with any of the settings when you open the file you don't have to use the exact same values maybe your result would even be nicer right in the next step we are going to introduce even more surface variation let's add some wood looking patterns on the individual elements and some more breakup as well start with the original height use auto levels to get the values back and then use the gradient dynamic for achieving the wood look plug in a gradient linear 1 with a high tiling rate 32 in this case then run it through a curved node to get more of a rounded profile use that and the height information in the gradient dynamic node also use the height map and the levels node to isolate just the topmost overlapping elements of the height map and then use that as the mask to blend between the original height map in these wood details the blend might feel strong right about now but don't worry too much as the details will be destroyed and flattened out along the way and this kind of feels like growth marks for the wood next thing to fix are these very straight lines that we have we're going to do that by warping the shapes around as with everything the best way is to combine multiple variations in different scales and directions to get the nicest looking results in our case we use two multi-directional grayscale warps one with small scale but strong intensity and second one with larger scale but lower intensity we combine those warps with a purling noise in different scales for both cases burning noise is good for this because it doesn't have any sharp transitions so you don't get any breakups when warping first warp blends the entire material and the second smaller one disturbs the edges same warps were used on these smaller shapes and then they were blended in these small shapes are basically vertical lines made by using off-the-shelf directional noise 4. the noise was blurred to remove sharp local contrast and then blurred again directionally this time to control the amount of vertical variation in the values after that same trick as before that we used on the main overlaps slow blur with the same inputs to inflate and sharpen up the volumes you get these small shapes over here that look like this next we need to run them through the same warp setup as we did for the base height map to get the matching variation before we blend them together we're also going to use the height to create this ambient occlusion based mask because we want to blend these elements in the non-occluded areas only by blending them we get even more vertical variation and breakup alongside these individual bark segments we proceed by doing the same trick on the entire height map this time as we did before for the specific ones the height was getting too skinny and cracked and we can fix that by re-inflating it to get more of a tree bark feel to it as usual we use the slow blue for achieving this but this time around it's a good idea to do a regular blur on the height map before plugging it in into the slope just to minimize the artifacts we might get from the slow blur the slow blur node itself is set to blur mode with very low intensity the result should be this nice inflated shape it just makes everything feel like it's expanding and growing together checking before and after going from something skinny and eroded to something more organic that feels like it was growing in its life in the next step we're going to enhance some of the cavities for more height difference we can use a very simple trick start from an ammunite occlusion node with a very low high depth so we get this subtle gradient then use the threshold node to isolate darkest part and finish it off with a distance node to add some beveling to the edges the result is multiplied with the height map at 0.5 opacity this effect should create an overhang feel to the overlapping parts remember a lot of subtle changes will give you nice results in the end continuing to add details let's add some breakup on the surface is our next task grunge maps are usually a good start point for adding details as they have very nice value variations out of the box in this case we can start with the black and white spots number one blur it to remove sharp local variation and run it through a slow blur set to blur mode and a higher value than usual plug the result which would look like inflated cell shapes into a directional warp node and use the height map is the input for the direction set the direction to be completely vertical to match the shapes that you already have and move the intensity to a very high value something like 300. this warps those inflated cells like they're following the shape of the bark giving us nice local variation on each element again this feels like different segments of the wood growing together blend it back into the height map using soft light mode and a value of 0.6 we should now have something that looks like growth patterns alongside the tree bark there is also one line going here up and to the right from that same directional warp since i like the result so much i even use it for creating the base color we have our surface variation but the edges are still very much intact and looking kind of generated so it's time to introduce some edge break up and damage whenever you're doing any kind of edge damage it's always a good idea to add the most variation that you can so do it iteratively in different scales and then mix it up together in this case we're going to do it in three phases these two slow blurs and one with a multi-directional warp first pass has black and white spots one non-uniformly blurred because that gives us nice variation between sharp and soft edges and then plugged into a slow blur to get this chipping effect for damaging the edges slow blur is best set to minimum mode as that mode will chip them if you need to move the edges or inflate them then use blur or max modes second pass also uses black and white spots 1 but with increased roughness this time around we use regular blur before the slow blur and set the soap blur to blur mode this setup will not eat or chip the edges but instead it will move and wobble them around these two slow blur variations are mixed using this unique looking mask which is made by non-uniformly blurring the height map the mask will give a swabbling in the crevices and on the older exposed parts of the bark we get more chipping third step is adding a level of surface variation over the entire map by using fractal sum 4 plugged into a multi-directional warp set warp to min mode and use 4 directions to get the nicest results these three passes give us the following result as you can see next step was proceeding to add the final level of the highest frequency surface details which i wanted to isolate to the topmost parts of the bark so let's make the mask for that first by generating a normal map converting it to a curvature smooth which was then slightly blurred in histogram scanned to isolate the desired segments this mask was used to mix between the height map with destroyed edges and these high frequency details that you can see over here creation of these details is very simple yet effective starting point is the clouds 2 node which is processed to a non-uniform blur but most of the heavy lifting here is done by the tile generator plugged into the bluer map input the generator itself is actually scattering a large number of very small pyramid shapes 60 of them on each axis with randomness on scale offset and rotation make sure you set the non-uniform blur node as well crank the anisotropy and the symmetry all the way up and use the medium intensity with the vertical angle for direction increase the number of samples and you should get this chipped layered effect you can even clearly see how those sharp edges from the pyramids give us these sharp pieces i think they have a certain resemblance to a dry bark surface which is just the effect that we need perhaps a bit too sharp for my test so a little bit more inflated look would suit this bark better so same trick as before pre-blur it and run it through a slow blur to get something like this it just feels more organic do a quick transform scale on the x-axis to increase the verticality and then blend it with the height map using overlay mode set to 0.3 this is how the height looks before and after blending in the high frequency date nice surface variation again a bit subtle but bunch of subtle elements will add up in the end i promise you final thing for the high channel is to add the knots but before that i realized that the higher buttock density would actually be better that's why i decided to double the tile using safe transform to do that and blending the tiled version with an offsetted version of itself gives us the density and the variation that we need i left the switch node just so you can play with it back to adding the knots and let's create the individual knot first start with the tile sampler but use the gradient linear plugged into the mask input of that sampler this gives us more shapes on one side use the threshold and the distance node to generate the cell patterns and you will see that the cells are smaller on one side we need degradation so that the knot rings have layers in different thicknesses it doesn't have to be perfect this will work for us just fine use the azure tech node next to get the individual cells and transform and bevel them to get more interesting volumes from those individual pieces blend them together with this random grayscale version of the cells to get even more height variation then plug them into a cartesian to polar node which will take these three triangular element and transform it to be a circular one now we can see that the bigger pieces are on the outside and the smaller ones are on the inside just like we wanted since we get these extra elements in the corners that we actually don't need and just multiply it with a small circle shape to get rid of them this gets us the outer part of the knot which looks like this but we need the middle part as well start with a simple gaussian shape run it through a hand wrong curve to get some variation and then blend some cells one on top of that to break it up add this to the knot and do the slow blur trick yet again final touch for the individual knot is using the multi-directional warps to add some organic distortion next step is to distribute the knots on the bark for that just use the tile generator with the custom input and small amount make sure to increase the mask random option to control the number of nuts you can even blur the the result a little bit to remove any edge artifacts that might appear and then distort them one more time all together using a vector morph grayscale the reason why i use vector mod here instead of a warp node is because this setup gave me less artifacts with higher warping valves this transforms the knots from regular circles to these more organic looking shapes multiply the ambient occlusion node on top to emphasize the local high differences and following the approach we used for the buttock generally it's a time to add surface break up and details but this time we'll use only two passes first pass uses black and white spots 3 and slow blur to break up the edges and second one is a subtle layer of dirt one on top before blending the knots with the bark we need to create some room for them actually to do that use a tile generator first with the same settings as the knots one but just change the input to a gaussian shape work the result with the same purlin noise as before to match the distortions inverted version of that result is driving the second vector morph node which is pushing away the bark around the places where the knots should be thus faking the impression that the bark is growing around we also have to prepare the area for blending in the nuts first we add those gaussian shapes to simulate the bulging around the knots and then we level out the centers of those areas that is done by mixing the original and blurred versions of the height map with a mask coming from the tile generator we do this to iron out small details so they don't interfere with the knots you can see the steps and the results just now the nodes themselves are just added on top with a small opacity value this gives us the final state of our height map since we are finished with our height we don't need our test bench anymore so let's right click and choose view outputs in 3d view so we can talk about the other channels as well as you can see it looks much nicer with the tektron before moving on to the base color let's just quickly talk about the masks which are used for generating that color usually when i work on the material i create a bunch of these masks during the process and just keep the best ones in the end try to utilize the substance designer built-in nodes as much as you can for this for these specific masks we use the dirt note with multiple levels of dirt for example a subtle one a very strong one and a sharp one to utilize the dirt nodes you just need ambient occlusion and curvature inputs which are usually generated you can also have multiple variations of the curvature node for example strong and not so strong one this will help us extract some additional masks down the road in order to build the base color sometimes it's good to start by sampling colors from some of the reference photos in the first pass we use the high channel mix with the grunge map for additional variation and then that is plugged into a gradient map node and used as a base for remapping the colors from the sampled photo the result can be very noisy but it's good enough for the groundwork second pass is a similar thing but using the grungemap02 and the worked elements we have from one of the height map passes this is usually a different gradient map a lighter one as you can see over here one gradient map is warm and greenish and the other one is more bluish and gray they are mixed together using the same input from the second gradient map as the mask third and final gradient map is using the directional noise too this one samples dominantly green and gray colors and is blended with the first two gradients using the same directional noise as the mask this gave us the foundation for the base color so the next step is to blend in some specific colors on top this is where we will utilize the mask we talked about a bit earlier first mask comes from a curvature note we run it through a high pass to level out the values and then use the threshold node to isolate the exposed parts this mask is used to soft light blend a warm color to get the red tints in those areas after that we use the same color but in additive blending mode with the inverted version of the same mask to get the lighter tones next it was time for some darker tones as you can see here dark brown color is multiplied with a low opacity and must by using the inverted ambient occlusion mask same color is again copied but with higher opacity and a sharp curvature based mask to get the layering of the color values in different weights and to give some depth to the crevices we can now slowly see the shape appearing in the color map as well then we overlay some neutral and brighter colors using the dirt masks that we already made or their inverted versions again layering dark and bright colors to be honest sometimes i don't have an actual plan for how much color variation i need so it's okay to just play around until you get something which feels nice after we had some base color noises and individual colors patches on top of that now it's time to add specific features to the base color first thing is to use the curvature smooth node run it through a high pass filter and then suddenly overlay it over the base color this will give us a bit more definition for both crevices and the edges in the base color from that we create a darker version which is actually closer to the base color that we need and we mix it with the original lighter version using the mask from the knot tile generator this way we get the lighter colors where the knots are exposed then we blend it with a warmer variant of the same texture but we use one of the dirt based masks to contain the warmer tones in the included areas leaving the colder tones on top we generate a toxic green version of the texture as well and use that one to add lichen details to the bark mask for blending the liking comes from the shadow node and the threshold node which separates the topmost values that output is multiplied with the grunge map 4 to only have occasional patches of the lichen on top progressing from this to this adding lighting in specific areas and also protecting the edges and crevices from receiving any of it i was missing one more layer of brighter colors so we create one more color shifted version and blend it using the topmost range of the height map values that node then blends with a subtle overlay mode giving us per-piece local variation after that we can abuse the built-in mos weathering node actually we're only going to use the color channel input and crack the amount of mass all the way up it's okay for us that the entire material is covered in moss as we will control that by mixing it with the mossless version before adding moss we had a final color adjustment for the mark darkening it some more and then all that is left is the mask this one was generated from a new dirt node so we can easily control the amount of moss in the final output on the topic of that moss use the same dirt mask to add moss like height variation specifically in the normal height and the ao channels but we should blur the mask before adding that just to avoid any hard transitions non-uniform blur works really well for this type of masks the additional high data is relying on the built-in moisture noise node which works great for us now this is our final version of the high channel that we are using for generating normal ambient occlusion and heightmap channels themselves the roughness as a final channel that we are going to discuss was actually rather simple utilizing the final versions of the base color and curvature we could generate the roughness that we need first we convert the color map to grayscale and invert it afterwards so the bark is more rough in the crevices that was blended with an inverted and level adjusted curvature last thing for the roughness map was to blend it with a slightly darker or less rough version using the same dirt mask we used from us here are all of our material outputs base color roughness metallic which is just set to black and this is our normal map ao map and our height map all of these outputs give us the material that we see here in the 3d viewport and we can even switch to ira for a bit nicer preview so to recap we started by creating main shapes from gradients and blending them together added overlaps on top of that followed by large and mid-shape variation next we added surface wood grain and vertical veins warping the shapes to break up the straight lines trusty old slow blur was used to inflate the volume and get that organic look that we were looking for then we proceeded to add more details with grunges and edge damages with slow blurs and warps last level of tertiary details was mixed in and the bark was styled before adding the knots we generated one knot first and then distributed it over the bark moving on to base color we made bunch of useful masks first and then sampled colors from the reference photos to get the base over that we mixed in some specific colors in certain areas adjusted our hue saturation and lightness and then added lychen and moss to finish stuff simple roughness map was the final touch and that brings us to the end of this part of the tutorial as well join me in the next one where we will set up some showcase rendering scenes bye
Info
Channel: Adobe Substance 3D
Views: 19,311
Rating: undefined out of 5
Keywords: materials, procedural, PBR, Physically based rendering, Scans, Photogrammetry, scanning, environment art, 3D texturing, realistic, texturing, 3D material, tutorial, tree bark, tree bark substance designer, substance Alchemist, substance, texture, material, substance designer, substance alchemist tutorial, game dev, how to, tree, easy, game, substance designer tutorial
Id: G4Hy7Ijzz4Y
Channel Id: undefined
Length: 30min 0sec (1800 seconds)
Published: Fri Jan 22 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.