Before making a material, I like to look for similar pictures as a reference. This gives me some ideas about which parts of the material are not clear enough, or missing visual information. This step helps me analyze the overall composition of the material. For this particular fabric, I split it into three parts: the main knitting thread, the fluff and the fur balls. Of these three, the knitting thread is the main component.
Base Shape
As the knitting thread is the principal part, I’ll start with that. A knitting texture is an obvious tiling texture, so our first task is to determine the shape of a single pattern and recreate it. For the base shape, I use the Shape, Skew, and Mirror nodes. After changing the shape of a circle, I get a basic pattern texture.
Adding Details
For the next step, I use the same method to create the details, then mix those details with the original base pattern. In this way, the basic shape and details are separated. That way, it’s easy to change the style of the details later, so we can produce different knitted materials. For example, if we use looser wool details, that makes the texture feel more like what you might find with a sweater.
Tiling Texture
Next, I use two Tile Sampler nodes to tile the textures. One is for the base shape, the other is for the details. The first of these is prepared for color fill, the second for height and details.
Adding Waves
After finishing the surface details, there are some obvious wave structures from the reference. Since our rendering model is just a plane, I would like to add this undulation structure to the material. I use the Curve node to make two different wave styles. One is smoother, another is sharper. Then I combine the two, and they’re ready for later use.
After finishing both waves and surface details, I realize I have a problem. If I have active displacement in the viewport, my texture will seem stretched out. It’s a tricky situation to resolve; after some consideration, I decide to scale the texture locally to offset the stretch.
Here, I use a function to achieve this, which is an acceptable solution.
In the end, I use the Flood Fill node and the Flood Fill Random Grayscale to add the random wave to each element. After finishing the height of the knitted texture, I can start working with the fluff and the fur balls.
Fluff and Fur Ball
For the fluff part, It's very easy to create a fluffy feeling with the Scratches Generator node.
For the fur ball part, I use the Shape node and the Warp node together with the Noise node.
Finally, I use the Blend node to combine these three parts together. Then I use the Clouds2 node to add a slightly irregular wave to the texture. The height part is now finished.
Roughness Map
For the roughness, I don’t do a lot of adjustment. I split it into three parts, too, so that I can adjust the roughness details of each part to increase the level of the texture.
Base Color Map
The final step is the base color, which is also the least complex part. I want to adjust the color of each element after I finish, so I divide the color into three parts: black, white and green.
For the process, I put white as a background color. Next, I use a Tile Sampler node to combine with a blocky texture in order to make the mask for the green color. The Tile Sampler node allows us to adjust the green area offset easily once the map is finished.
Using it as a mask blend with white background.
I ultimately use the Cells2 node to mix the black and white areas, combine them with the blocky texture, then mix this with the green area. Finally, I get an ideal color distribution.
The next step is to make the entire texture into a knitted style. With the help of the Flood Fill node, I can achieve this with just a simple function.
After stretching the base shape, working with the Flood Fill node and the Flood Fill To Position node, I can get the coordinates of each element. Then I can convert any texture to a knitted style, as long as the element coordinates correspond to the texture.
The function is quite simple.
I use the Distance node to extend the color a bit, then I combine the Flood Fill To Random Color and the Flood Fill To Random Grayscale node to the color texture, so I can get some random color variations. Then I use the Blend node to add the fluff and the fur ball to finish the final color texture.
Expose Parameters
Expose some necessary parameters for easy adjustment later.
Rendering
I’m also using Substance Designer to finish my texture. The render is Iray, the scene uses Plane (Hi-Res), and the scene setting is in Mesh Display Component. I also change the Subdivision mode to Parametric, but the Subdivision quantity can be set according to my needs.
I can also adjust some post effects in the camera setting, such as exposure, saturation, gamma, and depth effects. The rendering resolution setting is also the same here. Of course, don’t forget to change the Use Window Resolution to false.
You can control how Adobe websites use cookies and similar technologies by making choices below. But note that if you disable cookies and similar technologies entirely, Adobe websites may not function properly.
Cookies are small text files stored by your web browser when you use websites. There are also other technologies that can be used for similar purposes like HTML5 Local Storage and local shared objects, web beacons, and embedded scripts. These technologies help us do things like remembering you and your preferences when you return to our sites, measure how you use the website, conduct market research, and gather information about the ads you see and interact with.
You can make choices in the menu below about what cookies and other technologies you want us to use on Adobe sites when you visit them from this browser. You can always change those choices later by clicking on the Cookie Preferences link at the bottom of the page.
If enabled:
We can improve your experience by tailoring the site and the content to things we think might be of interest
We can better keep track of your preferences — like what language you prefer to use
We will better understand your likely interests so we can provide you more relevant Adobe ads and content on non-Adobe websites and in non-Adobe apps
It will help us improve the performance of our website and those of our partners who use the Adobe Experience Cloud
If disabled:
We won’t be able to remember you from session to session so the experience may not be tailored to your interests
You’ll still have access to the content of the site but certain features that depend on cookies may not function
You’ll still see ads, they just may not be as relevant to you
General information
You can control how Adobe websites use cookies and similar technologies by making choices below. But note that if you disable cookies and similar technologies entirely, Adobe websites may not function properly.
Cookies are small text files stored by your web browser when you use websites. There are also other technologies that can be used for similar purposes like HTML5 Local Storage, web beacons, and embedded scripts. These technologies help us do things like remembering you and your preferences when you return to our sites, measure how you use the website, conduct market research, and gather information about the ads you see and interact with.
You can make choices in the menu below about what cookies and other technologies you want us to use on Adobe sites when you visit them from this browser. You can always change those choices later by clicking on the Cookie Preferences link at the bottom of the page.
If enabled:
We can improve your experience by tailoring the site and the content to things we think might be of interest
We can better keep track of your preferences — like what language you prefer to use
We will better understand your likely interests so we can provide you more relevant Adobe ads and content on non-Adobe websites and in non-Adobe apps
It will help us improve the performance of our website and those of our partners who use the Adobe Experience Cloud
If disabled:
We won’t be able to remember you from session to session so the experience may not be tailored to your interests
We’ll still count your use of our site and services
You’ll still have access to the content of the site but certain features that depend on cookies may not function
You’ll still see ads, they just may not be as relevant to you
Operate the site and core servicesOperate site and measure engagement
Always active
These cookies are required, and they are used to enable the site and related services core functionality. Without them the site could not operate, so they cannot be disabled.
These cookies enable the site and related services’ core functionality and collect statistics about user engagement, such as counting active use to help us understand trends. These cookies cannot be disabled.
Measure performance
These cookies are used to analyze site usage to measure and improve performance. Without them Adobe cannot know what content is most valued and how often unique visitors return to the site, making it hard to improve information we offer to you.
These cookies are used to analyze site usage to measure and improve performance. Without them Adobe cannot know what content is most valued, making it hard to improve information we offer to you.
Extend functionality
These cookies are used to enhance the functionality of Adobe sites such as remembering your settings and preferences to deliver a personalized experience; for example, your username, your repeated visits, preferred language, your country, or any other saved preference.
Personalize advertising
These cookies are used to enable Adobe and our partners to serve ads more relevant to your interests. Without them you will still see ads, but they might not be as relevant to you.
Personalize advertising
These cookies are used to enable Adobe and our partners to serve ads more relevant to your interests. Without them you will still see ads, but they might not be as relevant to you.