All content is protected. Unauthorized reprinting or redistribution is prohibited.
 For permissions, please contact the author via email or use the 'Contact' section on the 'Home' page.
    Winter is quickly approaching in Canada, and with it comes the need for warm sweaters.  This time, I want to create a wool material.  First, I'd like to mention that I really love the elements from the anime 'Shugo Chara', so that’s my inspiration this time. Getting back to the topic, I think there are two essential components to creating materials: 2D information and 3D information. For this wool material, the 2D elements will include: 1.The shape of the pattern, 2.The shape of the wool part, 3.The tiling of both the pattern and wool part. Starting with the pattern design, I’ve used five symbols: a heart, a spade, a club, a diamond, and a cross.  These patterns are pretty easy to create;  you could even just convert a Bitmap to Grayscale and work from there.  However, to challenge myself, I designed each one manually. 
    Let’s go over the process for creating the heart pattern. The other four patterns are basically achieved through Transforms. First, looking at the reference image on the bottom left (found online), the heart has: 1.Symmetry, 2.A rounded outline on the upper half, 3.A pointed lower half along the center axis, 4.A smooth curve transition in the middle. With these four points in mind, I started with the Disc Shape node, as it provides both rounded curvly edges and symmetry — missing only the third feature: the pointed lower part.  To achieve this shape distortion, I used the Directional Warp node, which requires an intensity input (a grayscale image).  For this, I used the Gradient Linear 3, a grayscale that transitions from value'0' on the left to value'1' in the center and back to value'0' on the right.  In order to perfectly suits the shape distortion needed along the central axis, so I refine it. I adjusted it with a Levels node to clamp the center distortion range. Next, using the Transform node, I rotated it back to the correct position.  However, I noticed that the heart’s upper part didn’t look full enough, so I used a Bell Shape to warp the top half, achieving the effect I wanted on the right side.  To regain symmetry, I then applied a Mirror node.    
    That completes the heart parttern, and the process for the other patterns follows similar principles, so I’ll skip those details here.
    To create a wool knit material, we can observe from images of wool products that these woven fabrics are made up of segments of wool, which are, in turn, made up of even finer strands. So, we can start by creat the smallest unit segment and then use Substance Designer's features to generate a larger structure. For one wool segment, the 2D information consists of: 1.A strip shape, 2.It’s composed of even finer strands.
The 3D information includes: 1.Irregular edges that gradually blend outward, 2.A richly layered height that remains within a controlled range. Managing both 2D and 3D information, we begin with two basic shapes blended and adjusted them (bottom left image). This step gives the base shape an edge gradient that tapers from the center to the sides, aligning with the gradient quality of the Bell Shape I chose. Once we have this base shape, we can fill in the wool sagment details (bottom right image). Here, I blend the base form with Fur Noise to complete the wool sagment's look.
    The Height information obtained in the previous step was too uniform, so as shown in the image below, I transformed Noise to achieve the desired height (black and white/'0' - '1') information, and then blended it with the base shape.
    I mentioned that the edges of the wool segments are irregular. As shown below, I used the Directional Warp node to create distortion in the desired direction. With this, the basic unit segment is complete. Next, I handled the tiling of patterns and wool segments to achieve the desired style and the overall Height blending. Oh, and I also used Levels at this stage to adjust the overall Height because the previous result was a bit too dark (equate to lower Height) for the final effect.
    For tiling the wool segments, I used the Tile Sampler node. This node is extremely powerful, so I won’t go into every detail here — if you're interested, check the official documents. Here’s a summary of my approach: for the 2D information, I wanted the pattern style includes both horizontal and vertical, but a single Pattern Input image couldn’t achieve the effect I wanted. So, I created a Rotation Map Input, which you can see in the lower left image. This is a black and white striped image, which allows specific regions within the tiling pattern to rotate in designated directions. Adjusting the parameters produced a suitable tiling style. However, at this stage, the image's 3D information — overall Height was too uniform, which also made the light and dark areas overly consistent from an artist perspective. This doesn’t reflect reality because, in handmade products, not every wool segment has the same height, and the overall surface is not perfectly even. So I use the Color Random parameter, or optionally a Color Map Input, to create local and overall Height (light and dark) variations. Then, I adjusted it in the 3D viewer to achieve the desired 3D effect.
    As mentioned above, handmade products are never perfectly flat, so I used the Warp node to add distortion for the whole pattern. I didn’t use the Directional Warp node here because it restricts the warping direction, while Warp allows for grayscale-based distortion (Personal interpretation, so has more inaccurate understanding. I recommand to read the official documents). I used Perlin Noise as the Warp node’s Gradient Input, which has a smooth grayscale range and spots distribution (I considered these spots as creating wave-like variations, though this is my interpretation and may not be accurate). And then I adjusting the parameters to produced the effect seen in the bottom right image(I called this pattern - the base texture). The tiling of the pattern(the heart, the spade...) followed a similar logic, so let’s move on to how I blended the pattern with the base texture.
    As shown below, this was my initial blend. Clearly, this basic Blend is unsuitable. If you look closely at the border between the pattern and the lower base texture (bottom right image), there’s no smooth transition between the black and white areas. In Height information, this results in the top pattern merged rude with the lower  base texture, which is unrealistic.
    This issue stems from insufficient edge transition or value information in the pattern, so I used the Non-Uniform Blur node, adjusting the parameters to blur the pattern in a specified direction, achieving the desired effect where the center of the pattern is high ('1') and gradually fades down ('1' - '0'). A quick note about Blur: traditionally, it makes an object more abstract, but in 3D information, it also creates a smooth height transition, moving from values like 0, 0.1, 0.2…up to 1. (Understanding its algorithm can provide deeper insight.)
    Finally, using the Blend node, I adjusted parameters to merge the pattern with the base texture, achieving a hand-knit effect (bottom right image).​​​​​​​
    For there, I complete the crucial part in PBR workflow - 'Height' maps. Then, I used the HBAO node to convert it into Ambient Occlusion. Since wool products are non-metallic, the metallic value is set to '0'. This completes three of the PBR maps (bottom left image), leaving Albedo, Roughness, and Normal maps.
    For Normal, could convert it directly from Height maps, but the result was unsatisfactory, so I applied specific Normal adjustments. As shown in the bottom right image, this mainly enhances the Normal Intensity of fine fibers in map. One note: after tiling the wool pattern to create the base texture, I used the Tile Sampler node to add irregularly distributed fine straight lines with height gradients by using Bell Shape. Then warped these lines with Perlin Noise for slight curvature. Finally, I blended them with the base texture to achieve the final base. This was because in real life, wool products like sweaters, have a layer of fine fibers that covering the surface; I call this 'fluffy fuzz' (Well, in mandarin, I called this 'cī lā máo刺啦毛').
    The Roughness and Albedo maps were easy to create. For Roughness, I ensured the value remained close to '1', cause the wool products are generally rough. The Albedo process is shown below; I mainly used the Histogram Scan node to extract masks for specific regions, then used Uniform Color, Gradient Map, and HSL nodes to assign colors to specific area, and blended them finally. For the patterns(the heart, the spade...), the color is not completely applied; the underlying red shows through slightly, cause in the realistic world, the handmade items always imperfectly. So I retained this trait in the color creation.
    This concludes the wool knit material process (bottom left image). For the final demonstration, I added a belt (bottom right image). If I have time later and finish a new leather project, I might write a leather tutorial too :)  
    Thanks for your reading! The methods described here are based stand on my personal perspective, so it's highly subjective. Each artist’s material creation process are different. I encourage you to explore official documents and observe anything you like in the real world. 
    Bye, see you in my next Blog!
All content is protected. Unauthorized reprinting or redistribution is prohibited.
 For permissions, please contact the author via email or use the 'Contact' section on the 'Home' page.


Back to Top