Making cloth in Blender using the cloth simulator is easy when working with flat objects. Making flags wave in the air and thin blankets fall on to couches is quick. But once you need thickness, everything suddenly becomes much harder.
In this article, I want to go over a way to simulate the wavy feel of a thicker blanket while preserving the shape. Using multiple tools in Blender to make cloth is the way we will go. Below, I summarize the process.
Let’s dive in!
We will start by going into edit mode with the default cube selected, add a loop cut (ctrl+r) in the middle and scale (s) it out. Use the bevel tool (ctrl+b) to expand (scroll wheel) the loop cut into 3 cuts.
Add four more cuts along the X and Y axis. Making even geometry. If you intend to create a shape other than a simple square, just keep in mind to have some density to the geometry and even quads for blenders cloth simulator to work with.
Add two array modifiers to the cube. Increase the count to 5 on each of them, followed by changing the relative direction for X to 0 and Y to 1 for one array. The two arrays should now form a grid of our object when combined.
On each of the array, modifiers turn on the “merge” checkbox and increase the distance value until the beveled vertices merge for each of the squares in both X and Y direction.
Apply the modifiers.
Our geometry has internal faces we need to remove. To do this, go into edit mode (tab) and deselect everything (alt+a). Use Blenders search function (F3 or space bar). Search for “select non manifold”. As you type, the list will filter.
While in edge select use the “select non manifold” function. Then, increase the selection (ctrl+numpad plus). Then decrease the selection (ctrl+numpad minus). Now remove(x) the selected faces. The mesh is now manifold and ready for simulation.
If you want, UV unwrap the mesh at this point. Personally, I didn’t for most of my tests and instead used box projection. Tab out to object mode. The mesh is now ready for simulation.
Blender has a collection of forces that can manipulate a cloth simulation. We will use these to create our wavy look while still maintaining a flat blanket. We will adjust the overall shape with a soft body simulation later.
Let’s continue by adding forces and setting up Blenders cloth simulation.
In object mode, add (shift+a) a turbulence force. Increase its strength to about 500. Duplicate (shift+d) the force and place them at opposite corners of the cloth we will simulate.
Change the strength of one force to about 300. The strength may need some adjustment to get the desired result.
Select the cloth mesh and add a cloth simulation to it. Set the cloth simulation to the cotton preset in the cloth header. Then go to the collision section and enable self-collision. Also, go to the field weights section and change gravity to 0 so that our cloth does not fall to the ground when we start the simulation.
Play the animation (shift+space) and you will see the cloth deform quite quickly.
The way it deforms, however, is on a scale that is too large. This is because the turbulence forces help change the mesh according to an invisible texture that has a certain size to it. The easiest way to control this is to scale up the whole scene significantly.
Select everything (a) in your scene and scale it up somewhere between 5 and 10 times. You may have to scale the scene multiple times and test the simulation in between before you get the scale of the cloth deformation you want. The simulation should only need to run for a second or two before you have a desirable cloth structure.
If it runs for too long, we lose the thickness, and the mesh will have moved too much in the Z direction.
Add a subdivision surface modifier below the cloth simulator to get a more accurate representation of the finished cloth.
In the timeline editor, select the play-head and drag it back and forth after a simulation has been playing to pick a specific frame you are happy with. The mesh should still be relatively flat.
Save your work, then apply the cloth simulator in the modifier stack. Keep the subdivision surface modifier and delete the force fields before continuing to the soft body simulation.
At this stage, we have a good-looking cloth piece. Now we only need to deform it so it fits in the desired environment.
First, we will add a lattice object to the scene. Scale it to so that our cloth fits nicely within. Make sure that the floor of the lattice is at the floor of the cloth object. It is fine if some part of the cloth object is not inside, but below the lattice.
Increase the resolution of the lattice to about 8 for the U and V coordinated and 3 for W. Then add a soft body simulation to the lattice.
For the settings of the soft body simulation, start by deselecting the “goal” section. We use it with animation and in this case, we don’t need it. It will make the simulation stay in place in this case.
Check the checkbox for the “self-collision” section and expand the “edge” section. At the bottom also check the sub-section “stiffness” This will ensure that quad faces don’t collapse and since our mesh is only quads, this is essential to keep the volume intact.
Now start from the top in the edge section, the push and pull values determine how stiff an edge should be when it becomes longer or shorter during the simulation. A higher pull value will try to maintain the original length when an edge is stretching.
The push will do the same when an edge is shrinking. A higher value will give more weight to maintaining the original shape.
In my settings, I kept the Pull to 0.9 and the push to 0.95.
The damp setting will determine how much each edge acts as a spring. The higher the value, the more it will resist acting as a spring. I ended up putting this to the maximum value of 50. This will help the lattice maintain its thickness.
The plastic will determine how likely the object is to take on a new default shape while the simulation is running. I put this on a low value like 1 or 2 and it works fine. We don’t want the object to maintain its original shape while sliding over our collision object.
The bending is an important setting. Without bending, the shape will collapse. It needs to bend back towards its original shape while slowly adapting to the environment. I set this to a small value at 0.05.
Last, enable the collision edge setting. The lattice seems to behave differently than regular mesh objects in soft body simulation. This fixes some issues with collisions.
If you have not done so already, add a lattice modifier to the cloth object and set the lattice with the soft body simulation as the lattice object in the modifier.
Now we will continue by building a low poly collision object that will represent the environment we will later put the object into. Here, we add a plane, subdivide it once and extrude one face upwards. This extrusion will represent the side of a bed or similar.
Position the lattice and the cloth object above the middle of the collision object. Keep in mind that the lattice will slide off the elevated part of the surface thanks to friction and the weight of the lattice so keep more of the lattice above the elevated part than you want to stay on it in the finished scene.
Set the object we created to a collision in the physics tab. The setting we will need to keep an eye on is friction in the “soft body and cloth” section. We will most likely want to increase this to decrease the sliding effect common in these kinds of simulations. My final friction value was 25.
Now it is time to test our simulation in Blender. In the timeline hit play(shift+space). This will take longer than our cloth simulation but within 100 frames we should have a handful of frames to choose from.
Continue tweaking the soft body simulator settings. Blender can sometimes just bug with the collisions, and you may have to recreate the collision object if you can’t get the lattice to collide properly.
There might seem like a lot can go wrong here and sure it can, but after some testing, I rarely have problems that was not solved by recreating the collision object. That seems to be a bug I could not work around, or there might be some setting I accidentally change sometimes that I overlooked.
When the soft body sim has run, we cannot apply this modifier to the lattice. The modifier must stay in the stack. We can bake the simulation to prevent loss of data after the simulation has run once but what this means is that we can’t directly manipulate the lattice manually after a run to make small adjustments.
What we can do instead is to add another lattice and deform our soft body lattice with a second one using a lattice modifier. Kind of latticeception if you will. We can also use a vertex group for more granular control.
If you want to close the gap between the floor and the cloth object, you will most likely need to do this lattice on a lattice combo. The good news is that it is not as cumbersome as it first sounds.
Once you are happy with the shape of the cloth object, apply the lattice modifier on the cloth object to make it a standalone mesh not depending on other objects anymore.
To create the material, we will use cycles and rendered preview mode. Use ctrl+b to box select an area in the 3D viewport for rendering. Clear the border with cltr+alt+b.
Setup some light in the scene either by using an hdri or add in any other light source of your choice. An hdri has the added advantage of an environment to reflect.
Set one up by going to the shader editor, go to the world submode and add an environment texture. Browser for your hdri and connect the node to the background node colour input.
For free hdri images you can visit hdrihaven.com
With the node wrangler add-on enabled, hit ctrl+t after we select the environment node to add texture coordinates and mapping node for basic controls.
Select your cloth object and add new material in the shader editor or the material tab in the properties panel.
Related content: The complete beginners guide to Blender nodes, Eevee, Cycles and PBR
Using node wrangler in the shader editor select the principled shader and hit ctrl+shift+t to add a texture set. Browse for a fabric material. If you have none, you can get free fabric materials one of the sites listed in this article:
Related content: Top 10 material libraries for Blender artists
If you did not create a UV-map for your object, change the texture coordinate output to the object and set all the image textures from flat to box project.
Related content: Blender box mapping workflow, a quick look
Set the blend value to 0.2 or similar. Just make sure that all maps have the same value.
Bring up the sheen value on your principled shader. This will bring in a more realistic cloth feel for the material.
Adjust it to your liking. You can also play with the tint. The tint will tint the sheens reflection towards the colour input of the shader.
We used a lot of the tools in Blender to recreate an object to represent some thick cloth in Blender while maintaining detail. We went from modelling and using the array modifier to simulate cloth using forces and the cloth simulation. After that, we bent the shape to fit an environment using a lattice with the soft body simulation we then used to deform the cloth object.
As the last step, we created a basic fabric shader.
Things we didn’t look at is a way to create seams or the high details that are sometimes needed to make the cloth look exceptionally realistic. For these things, sculpting is most likely needed. But for a background prop or an object is slightly out of focus, this process can be just what you need. From here you can also add sculpting to increase the detail and realism even more.
If you like this kind of content please consider joining the newsletter so we can give you a head-up when something new arrives.
I hope you enjoyed the Blender cloth simulator.