top of page

SUBDIVISION

Remaking the torus.

The blender torus has good topology but terrible control. There is no way to change the weight of the geometry or control the minor radius after it's creation. We can fix those things to give you a much better torus.

Blender’s torus primitive has excellent topology, but limited control over the geometry.

​

​

It's made from all quads and reacts well to any common modelling task in blender.

​

It works well with the subdivision surface modifier.

​

So what is wrong with the torus?

​

The problem is that as soon as you try to do anything with the torus, even switching to edit mode, the ability to change these things is gone forever.

​

​

The Blender default torus

The Blender Torus​

Torus creation properties in blender

Torus Creation Options

When adding the blender primitive torus, you have the opportunity to specify a few important things in the dialogue box in the bottom right corner of the view-port window.

​

Most importantly you can describe how many segments each major and minor radii are made from (how many vertices are used), and the real world dimensions of both or these Radii.

​

If you have used the torus before you will, at some point, have wished that the profile or the weight of geometry could be changed.  It is very easy to lose that ability with the blender default torus; even changing to edit mode will destroy it's creation history.

​

There is a way to cheat to an extent with the blender torus by using 'shrink and fatten'.  Hitting “Alt-s” on the keyboard with all of the vertices selected in edit mode allows you to alter the fatness of an object, but once you confirm that operation, there is no way to know by how much you have changed this profile.  There is no good way to increase the resolution of the torus at a later time.

If you shrink or fatten too far, the object breaks completely and will not look like a torus at all.
 
We want a torus we can control properly; we need to be able change the radii and decide the actual vertex counts while it is in place.  The later in the modelling process we can make these decisions, the happier we are going to be.

​

​

A single vetex

01   |   Create a single vertex.

 

This is the lightest model we can make. It has only one vertex, no edges and no faces!

​

There are lots of ways to create this single vertex and even an add-on which will put one into the “add” menu but it’s really simple to make one from the default cube so lets do that.

​

As with anything you create in blender, it should first be given a sensible name.

​

Rename the cube by selecting it, hitting “F2” then typing “Torus” and hit enter to confirm the new name.

​
 

The Blender default cube

Now hit “Tab” to change to edit mode.  All of the vertices should already be selected for you (If not just hit ”Ctrl-a”).

​

If you now hit “m” on the keyboard to merge some vertices, and select 'at center' from the pop up menu which appears, we will successfully create our single vertex at the origin of our scene.
 
You should already be in point select mode but just in case, hit “1” on the numberline of the keyboard to make sure point select mode is active.

The Default Cube

Move the vertex

02   |   Move the vertex into position.

We need to move this vertex 0.25 units along the x axis using the following steps:

​

Hit “g” to change to translate (or grab) mode.
Hit “x” to constrain the movement along just the x-axis.
Type “0.25” to move our selected point this distance.
Hit “Enter” to confirm this operation.
 

Single vertex positioned

A single vertex in blender
Create a circle

04   |   Create the torus geometry.

 

 

We now need to move our circle to the correct position. This positioning matches the blender default torus.

​

Hit “Tab” to switch back to object mode.
Hit “g” to change to “translate” (or grab) mode.
Hit “x” to constrain the movement along just the x-axis.
Type “-1” to move our selected point this distance back along the x-axis by one blender unit.
Hit “Enter” to confirm this operation.
 

Adding an arrows empty in blender

Add an Empty

With the circle in position we can now add an empty to the scene.

​

Hit “Shift-a” while the mouse pointer is in the view-port window to bring up the add menu.

​

Select 'empty' and 'arrows' from the pop up menu.

​

All of the empties are the same, the list of options just changes the way they are shown in the view-port.

 

Using arrows will help us to orient ourselves when adjusting the torus later. The arrows empty is often useful in circumstances where there is no clear visual distinction between the top and bottom or the sides an object.
 

Rename this empty by hitting “f2” while it is selected, then type “Torus Transform”.

The circle and the empty

The Circle and Empty

Select the 'torus' object again and as before add another 'screw' modifier.


Our original point now has two screw modifiers applied to it; one to make it a circle, the other to make a full torus.

​

As we did before, click on the name of the modifier (most likely 'Screw.001') and type “Major” to rename it, as this modifier will control the major radius.

​

In the axis object field of this new modifier, select our new empty - the 'Torus Transform', either from the drop down list or by selecting it with the eyedropper.

​

The normal method of choosing between smooth and flat shading for a model does not work with the screw modifier so open up the 'normals' section of the modifier and deselect 'Smooth Shading' to switch to flat shading.


You will see that our circle has now become a full torus.
 

Two Screw Modifiers applied in blender

Second Screw Modifier

The initial torus made with the screw modifiers

Initial Torus

Create the geo
Parent to the empty

03   |   Create a circle for the minor radius.

 

We now need to create a circle using our single vertex which will describe the minor radius of our torus.

​

​

Display the modifier properties window, which you can access by clicking on the small blue wrench along the side of the panel on the right hand side of the screen.

​

In this window, find Add modifier and click it. This brings up a list of modifiers which blender can add to an object. Find and click the one that reads 'Screw'.

​

Once it has been added, click on the field containing the name 'Screw' and type “Minor” as this modifier will control the minor radius.

​

In the list of properties which appear for this newly added screw modifier, click the 'Y' button to rotate our single point around the y-axis. This will create a circle with the correct orientation to make our torus.
 

The Screw Modifier

The Blender screw modifier
Creating a circle from 1 vertex using the screw modifier

A Circle from 1 vertex

05   |   Parenting to the empty.

Still in object mode, make sure the 'torus' object is selected..

The Parenting menu in blender

Parent the torus to the empty

Hold "Shift" and left click the 'Torus Transform' empty, Hit “Ctrl-p” and select 'Object' from the pop up menu.

With just the 'torus' object selected, make sure the n-panel is displayed in the view-port by hitting “n” until it appears on the right hand side of the 3d view-port.


In the item tab of the n-panel, click each of the padlocks next to all of the Location and Rotation property fields so that they are all locked. You can just click the first one and drag the mouse down to quickly lock them all.

 

These properties could be left unlocked for more control over the torus but I feel that this is unnecessary for good general control so it is best if they are locked.

​
 

Locking the location and rotation transforms in blender

Locking Transforms

Controlling the torus

06   |   Controlling the new torus.

The torus now has a lot of control which was missing in blenders primitive torus.

​

Now you will find that you can move (“g”), rotate (“r”) or scale (“s”) the 'Torus Transform' empty in exactly the same way you could change blenders primitive torus.

​

The Steps Viewport field in the 'Minor' screw modifier we applied can be changed to specify the amount of minor segments used to create the torus. 

​

The Steps Viewport field in the 'Major' screw modifier can be changed to specify the amount of major segments.

 

If we want to exactly duplicate the geometry of the blender torus we can choose “12” as the view-port steps in the 'Minor' screw modifier and “48” in the 'Major' screw modifier. These can be changed at anytime when the torus is in position.

​

In subdivision surface modelling, 8 vertices is the most efficient vertex count to make a perfect circle so setting both the 'minor' and the 'major' viewport-steps to "8" is optimal.

​

Selecting the 'Torus' object and pressing “s” to scale it, now changes the minor radius at anytime.

​

A subdivision surface modifier can be added to the object while you are working (by pressing “Ctrl“ and hitting “1”, “2”, ”3”, “4” or “5” depending on the level of subdivision you want.)

A Fully controllable torus in blender

The finished, fully controllable torus

Covert to a mesh

07   |   Converting to a regular mesh.

When you are happy with the position, size and geometry weight of your torus, it can be converted to a regular mesh object.

​

With the 'Torus' object selected, hit “Ctrl-0” on the numberline of the keyboard to make sure that any subdivision surface modifiers are effectively deactivated.

Right click in the viewport window and select 'convert to' - 'mesh' from the pop up menu.

Converting an object to a mesh in blender

Convert the torus to a mesh

Setting the origin of a mesh in blender to the origin of the geometry

Right click again and select 'Set Origin' then 'Origin to Geometry' from the pop up menu.

Set the origin

Hit “Alt-p” and select 'Clear and Keep Transformation' in the pop up menu. This clears the parent relationship with the empty. (The empty can simply be deleted now.)

Clearing the parent of an object but keep its position

Clear the parent

Don’t forget to unlock all of the 'padlocks' in the 'n-panel' by dragging the mouse down them and your torus is now just like any other regular mesh in blender.

​

It can be changed in edit mode, textured and have any other modifiers applied to it as normal.

Quick Recap

08   |   Quick recap of the steps.

The controllable torus can be made in under a minute using these steps.

​

1. Press “Shift-a” and add a mesh cube.
2. Press “F2” and rename the cube to “Torus”
3. Press “Tab” to go to edit mode.
4. Hit “m” and select 'at center'
5. Hit “g”, “x” and type “0.25”. Hit “Enter”.
6. Add a 'screw' modifier and change the axis to “Y”.
7. Rename the 'Screw' modifier to “Minor”
7. Press “Tab” to go to object mode.
8. Hit “g”, “x” and type “-1”. Hit “Enter”.
9. Hit “Shift-a” and select 'empty' and 'arrows'.
10. Press “F2” and rename the empty to “Torus Transform”
11. Select the 'Torus' object.
12. Add a 'Screw' modifier and select 'Torus Transform' as the axis object.
13. Rename the 'Screw' modifier to “Major”.
14. Hold "Shift" and left click the 'Torus Transform' empty.
15. Hit “ctrl-p” and select “Object” from the pop up menu.
16. Select the “Torus” object.
17. Padlock all of the “Location” and “Rotation” fields in the N-panel.

​

​

The torus can now be transformed as normal by selecting the “Torus Transform” empty.
The minor radius can be changed by scaling the “Torus” object.
The “Steps Viewport” in the “Minor” modifier changes the minor resolution.
The “Steps Viewport” in the “Major” modifier changes the major resolution.
Use the checkbox in the “normals” section of the “Major” modifier to change the shading.

​

©2023 by Ian McGlasham

bottom of page