2.5 – Modeling – Modifiers

Modifiers are tools for non-destructive, reversible modification of objects in the scene. Those that are currently of interest to us are designed for quick alteration of the structure of any mesh, in order to make it possible in a few steps to perform otherwise very complex operations. Clicking the icon of the properties will bring up the modifier panel on the screen with the entire list of those already applied to the object, if any. To add a modifier, simply click

The modifiers that we will see in this section belong to the Generate and Deform categories, which are very useful for starting to move on to more advanced modeling; others will be called upon in the context of various topics because modifiers as a whole cover a wide range of roles, not only related to modeling. With the Bevel modifier, we can easily round off the edges of a model.

Any object, even those with relatively simple geometries, does not have perfectly defined edges in reality. When rendering, the software will notice the difference between sharp and slightly rounded edges, resulting in a more realistic result in some cases, as depending on the material and lighting, rounded or beveled edges tend to concentrate more reflected light in areas called specular (chapter 3). The main parameters of Bevel are the width of the bevel offset (Width, Depth), its definition Segments and its profile (0.5 for a circular profile). Below is a cube with the simplest application of Bevel, five segments for the beveled area, and the final application of the smooth shader.

The checkbox for Clamp Overlap prevents the surfaces from intersecting due to high values of Offset. By activating the Vertices mode, it is possible to apply the bevel only to the vertices. With Angle (Limit Method), we will decide the minimum value of the angle between the surfaces necessary to obtain an intermediate area of bevel. In edit mode, we can decide which edges of the mesh will be subject to the Bevel by assigning a weight (a numerical value between 0 and 1) through the Edge Bevel Weight option located in the Edge menu, which can be called up on the screen from the Edge Context Menu. In edit mode, select the four edges of the top face of the cube and launch the edge bevel weight command; the pointer will change to the double arrow and you can change the weight by choosing a value between 0 and +1, then move the mouse to the right to increase the weight to 1 and confirm the operation with the left mouse button. The edges will now be marked with the color Cyan and the Factor bar, useful for further weight variations, will appear at the bottom of the 3D View (negative values will have no effect).

Finally, in the Bevel modifier, select Weight in the Limit Method, so that you only see the top part of the cube smoothed.

The Bevel operations can be carried out directly in edit mode where we find the dedicated tool, which acts on the selected edges by clicking on the icon:

in the toolbar, in this case the changes will be immediately definitive and not reversible.

Modifiers have up to four visibility options with the camera icon you decide whether the change will be rendered; using the screen icon we can make the change visible or invisible in the preview in object mode; the same thing for edit mode with the second icon, where we will see both the modified mesh and the original in wire frame (we ignore the remaining one for now). Next to these icons you will find an arrow down from which you can access some options:

  1. Apply (Ctrl-A) will make the change to the mesh definitive and the modifier will disappear from the list.
  2. When multiple modifiers are applied to an object, it is important to consider the order of application of these, which will go from top to bottom in the list. Reversing or changing the order of one or more modifiers may radically change the result.

With and you can move a modifier to the top or bottom of the list. To move them freely, just click on and drag them up or down.

Starting from two intersecting meshes, we can use the Boolean modifier to transform one of them into the geometry resulting from logical operations such as intersection and difference. Think of the simple case of having to create a circular hole in a wall or an arched entrance for any structure that will inevitably have flat surfaces. The advantage of the Boolean modifier is the speed with which it is often possible to achieve the desired result, the disadvantage would be represented by the fact that generally the modified polygonal structure is rich in vertices and irregular. We will see later how to possibly remedy this, using other modifiers designed to restructure any mesh (Remesh and Decimate). Let’s start with a practical example: suppose we want to make an opening in the simple parallelepiped mesh visible at the top, using a previously modified cylinder in edit mode (you can also try with the base cylinder to create a hole).

We apply the Boolean modifier to the mesh with the Difference operation, indicating the cylinder as the object to be subtracted

Using the outliner, we make the cylinder invisible in the 3D View by turning off the eye icon by clicking on it:

we will see the hole that has been made in our mesh.

Difference therefore subtracts from the volume of a model, the portion in common between it and a second mesh. This operation will be made definitive with Apply (Ctrl-A, if the cylinder is no longer needed at that point, it can also be deleted). The application of the modifier determines the creation of a certain number of vertices and faces to allow the desired operation. Initially, these elements will not be visible due to the use of ngons, but simply triangulating all the faces of the model in edit mode (Ctrl-T) will allow us to observe the actual situation.

This will not be a problem unless Boolean is applied to very detailed models, in which case the modifier, in addition to creating an even more complex final mesh, will take a significant amount of time to process.
With Intersect, on the other hand, we obtain the exact intersection between the two figures, which in the example just treated is the part of the cylinder inside the rectangular solid.

Let’s move on to the Decimate modifier, which is useful for transforming meshes by drastically reducing the number of vertices, to obtain low poly models that may be useful in the production of video games.

As an example, we will use the humanoid model of the open source software MakeHuman v1.2, suitable for creating human figures of any type in any pose you desire (makehumancommunity.org).

This model (the first in the three previous images) does not have a high number of vertices, nor a particularly low number, and is well suited to illustrate the next two modifiers. After applying decimate, we will lower the Ratio, which is the percentage of detail of the geometry to be preserved, starting from the value 1 = 100%, no change, until the model is unrecognizable by approaching 0. It will not be difficult to find the best compromise between performance and face count.

Suppose instead that we want to do the opposite and make the structure of a mesh more complex (and computationally heavy) by increasing its resolution, thus eliminating the jagged edges on curved surfaces that would be unrealistic in the final render. Although smooth shading can soften the jagged sides of any approximately curved surface, the corners will remain perfectly visible in the model’s silhouette-outline, for the simple reason that its geometry remains unchanged. For perfect rendering of curved surfaces, it is possible to use two specific modifiers: Subdivision Surface and Multiresolution. In Subdivision Surface (Subsurf) we find the Catmull-Clark algorithm to divide the mesh at will, distinguishing between the resolution of the Viewport in real time and that of the rendering (in Quality, just the default value of 3 is sufficient).

When and if the modifier is applied, the actual subdivision will be that set in the Viewport.

The Catmull-Clark algorithm is also present in the Multi-resolution modifier, to activate it just click Subdivide the necessary number of times.

In the case of two or more subdivisions, it is possible to keep the Viewport value low to avoid excessively weighing down the scene in the 3D View. Applying Subdivision Surface to a mesh that has both curved and flat parts, delimited by a curvilinear edge, such as the Cylinder primitive, will result in a result that is not at all a curved cylindrical surface.

It is therefore necessary to assign the Edge Split modifier to the mesh, in this case the cylinder, before SubSurface, and finally use smooth shading for a nearly perfect result.

Edge Split divides the edges of the mesh marked in Edit Mode with Sharp (Context menu> Mark Sharp) edges, which in this case will be highlighted in cyan, or if the width of the angle they form between them is less than that indicated in Split Angle. You can also choose only one of these methods through the two boxes Edge Angle and Sharp Edges, both active by default.

Edge Split is also useful in cases like the one seen in paragraph 2.3, that is, when you want to avoid smooth shading involving corners that must remain sharp.

The use of the subsurf modifier can be paired with the Edge Crease option (Shift-E) located in the usual Edge Context Menu (edit mode) or in the Edge menu that appears on the screen with the Ctrl-E combination . We start from the simple cube and apply the subdivision surface modifier to it with a value of 3 in Level Viewport.

In edit mode, select any edge and run the edge crease command; the pointer will change to the double arrow to confirm that you can change a numerical value from -1 to +1, then move the mouse to the right to increase this value and you will see part of the mesh tending to the starting edge; then make the operation definitive by clicking the left mouse button. Subsequently, the Edge Crease value bar will appear in the lower left of the 3D View for any modifications.

The edge will now be magenta in color. Repeat the operation for all 4 edges belonging to one of the six faces of the cube, to achieve this result.

You are already able to guess the potential of the Subsurf and Edge Crease combination for modeling. All of this will be extremely helpful when you come across a model that has both flat surfaces and curved surfaces; in this case you can influence the behavior of the subsurf modifier in order to increase the detail and resolution of the curved surfaces, without altering or destroying the shape of the model. Likewise, you can obtain very detailed models starting from a simple base consisting of a few polygons, appropriately marking its edges with edge crease, then applying the subsurf modifier.

The Solidify modifier adds thickness to any surface, simply by modifying the Thickness parameter, which can also take negative values depending on the direction, along the normal direction, in which you prefer to create the solid.

A powerful technique for deforming any mesh is to use an unrenderable object called Lattice plus the relative modifier. The Lattice appears as a simple three-dimensional matrix of vertices that we can insert into the scene from the Add menu of the 3D View; subsequently, in edit mode, it will be possible to manipulate its eight default vertices. By clicking the icon of the properties, we will access the Lattice panel where we can increase the number of its vertices in three dimensions (with UVW coordinates) as desired. By default we will find 2x2x2 and therefore, as mentioned, eight vertices.

Being a discrete matrix whose resolution is generally much lower than the detail of the models, you can choose the type of interpolation of the deformation which by default is set to BSpline. Then we insert a UV sphere into the scene and place it inside the Lattice.

The next step will be to apply the Lattice modifier to the sphere (i.e., the object we want to deform).

Here, you simply need to set the already present lattice object in the scene in the Object field. Then, all that’s left is to work on the vertices of the lattice in edit mode, so as to see how these changes will cause consistent transformations on our object.

Increasing the detail of both the object to be deformed and the Lattice will result in more precise deformations. By performing transformations on the lattice in Object Mode, such as translations, rotations or scale changes, we will see in real time the effect of such deformations on the sphere, until the latter remains entirely or partially inside the lattice. In this way we can create animated deformations of any mesh. If we want uniform deformations for the height of the model (that is, independent of the W coordinate), we can set W=0 and work with a lattice in the form of a 2D grid.

Now let’s treat the Remesh modifier, which as the name suggests is used to regenerate a mesh (retopology) with different algorithms: Sharp, Smooth, Blocks and Voxel. We insert a Text primitive (menu Add>Text) into the scene, which has many similarities with the curves/surfaces treated previously, which among other things allows us to use any font installed on our system. Text is based on the same functioning as TrueType, OpenType etc. characters, that is, vector objects. In the object text properties panel, icon

We find a series of very intuitive options: we can give a thickness with Extrude, round the edges with Bevel (Depth + Resolution), load a Font of our choice and establish formatting in case you want to create an entire text. The same considerations made for curves also apply to the text object, with the Shape panel options for both Preview and Rendering resolution.
In this example, let’s just work on the default object with the extruded Text written on it. To modify it, simply go to edit mode where the cursor for inserting the desired text will appear. We transform the text object into a mesh from the Object Context Menù>Convert to>Mesh and observe the result in Edit Mode.

As you can see, the conversion was successful, but it shows a complex and confused concentration of triangular faces in the curved parts. To get a Mesh with a more orderly structure, simply apply the Remesh modifier with the Sharp algorithm.

In this example, it is important to focus on the two letters T and E (lowercase), as the default character for uppercase T is entirely squared (you can always separate them in edit mode and then apply Remesh). The resolution and detail of the final mesh will depend on the Octree Depth (higher values, greater precision) and Scale (higher values, lower precision). If, as in this case, the starting mesh consists of separate parts, you must uncheck Remove Disconnected Pieces. Remesh could be useful, for example, in recreating a mesh obtained from difference and intersect boolean operations. The Smooth algorithm is more suitable for meshes without edges and more “rounded”. While Blocks can be used if you need to create “blocky” models starting from an object characterized by curved shapes.

The Cast modifier tends to transform a mesh (discreetly detailed) into one of the predefined shapes such as Sphere, Cuboid, Cylinder (Cast Type), according to the main parameter Factor which can take values between 0 and 1.

You can limit the action of the modifier to the x, y, and z axes (only x and y for Cylinder). More than anything, intermediate values may be interesting in order to round out a model that is too angular, or vice versa. For factor values >1, or negative values, the shape of the mesh will be completely distorted.

The Curve modifier deforms the mesh following the shape of a curve present in the scene.

The deformation will also depend on the chosen axis (x, y, z, -x, -y, -z) and the relative position of the Mesh and the Curve. It will not be easy to predict the effect of the deformation based on these parameters. In the image you can see a simple case well highlighted by the quad view (Ctrl-Alt-Q).

The Wireframe modifier transforms the set of edges of the mesh into a solid cage whose frame thickness is adjusted by the Thickness value (be careful of the scale of the model, or activate the Relative Thickness).

Next, let’s discuss the Array modifier, which is used in situations that require the presence of many objects of the same type arranged in a specific order. The simplest case is that of many identical objects in a row.

This occurs with the choice of Fixed Count in Fit Type, which allows us to decide the number N of duplicates in Count (including the source object). We have two types of distance for the translation of duplicates: with Relative Offset (default setting), the value 1 is the bounding box size of the object in the relative x, y, or z coordinate

alternatively, with Constant Offset, the value 1 is the Blender unit of measurement. By applying the Array modifier three times, for the three dimensions x, y, and z, we can create three-dimensional matrices made up of the same object.

With the Fit Length mode, we cannot decide the number of duplicates, but rather a distance or length to be covered.

Finally, with Fit Curve we can leave it to a curve to define the overall length, in which case it may be interesting to apply a second Curve type modifier which will also model the result of the array. The curve must have appropriate dimensions which you can increase in edit mode (where you can model the curve itself) or in object mode.

Depending on the starting mesh and the various offsets, it may be useful to delete excess and/or unwanted vertices and edges with the merge option, by indicating only the distance within which the vertices will be merged together.

Furthermore, the offset can be controlled by the position and rotation of another object, such as the Empty primitive (an non-renderable object treated in the next paragraph), which has the sole purpose of defining a position and/or orientation in space. In the Array modifier, the rotations and translations of an empty object are used to arrange the copies in circular or spiral systems. This modifier can be useful in the organic modeling of fairly complex meshes; but it goes without saying that all this requires some experimentation time because the result is not always immediately understandable, with the additional drawback of handling very heavy final models if the starting mesh is rich in vertices.

The Mirror modifier reflects the mesh across the axes (intended in the Local system) that pass through its origin. For example, if you mirror across the X axis, the plane of symmetry will be defined by the remaining Y and Z axes.

In the previous image, we see that the object has an origin placed at an arbitrarily chosen point in space, not coinciding with the geometric center of the mesh. The origin is usually placed on an edge or face of the model. In Mirror Object, we are free to indicate another object, such as an empty, in place of the origin.

Next paragraph
Previous paragraph
Back to Index

Wishing you an enjoyable and productive study with Blender, I would like to remind you that you can support this project in two ways: by making a small donation through PayPal or by purchasing the professionally formatted and optimized for tablet viewing PDF version on Lulu.com  

>Purchase the ebook (PDF) on Lulu.com securely using PayPal and prepaid cards<