Cinema 4D / BodyPaint 3D Program Documentation Tutorials Mechanical Modeling Tutorial Modeling with Polygon Tools
Function available in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

Modeling the Lampshade

Click on the following link to open the lamp model at this stage of construction:

The Lamp Brace

We will attach a cylindrical shape to the end of the Cone object, which will have a brace for the light socket. First, create a Cylinder primitive and make it a Child object of the Cone object. Using the same method as for the on/off switch, set the Cylinder object’s Position and Rotation values to 0 in the Coordinates Manager (make sure you are in Model mode). Don’t forget to click on the Coordinate Manager’s Apply button to confirm your entries. Modify the Object and Cap tabs’ settings as shown in the image below. Finally, move the Cylinder object to a position of 36.5 in the Coord. tab.

Manually Creating Polygons

In order to be able to model the brace at the end of the cylinder we must first modify the structure. Select the Cylinder object and make it editable (c key or select Make Editable in the Mesh | Conversion menu).

The Make Editable function can be applied to all primitives and to many other objects used to generate geometry but are not editable at the point or polygon level. With this function Generators, Boole objects, Instances and primitives can be converted to polygonal object.

After an element has been converted, all attribute parameters will be lost. Operations such as the rounding of edges will then no longer be possible. Converting our Cylinder object will, however, allow us to select its top-most cap surfaces using the Live Selection tool (in Polygons mode) and delete them (del key). Make sure you only select the inner polygons before pressing the delete key.

We will close this hole again. We will demonstrate how to do this using three different tools.

Create Polygon Tool

Switch to Points mode and select the Polygon Pen function from the Mesh | Create Tools menu. Once the function has been activated you will be able to select points along the edge of the hole we just created to create a new N-gon surface. Refer to the image below to see the desired result. Select the top-left point first and select the subsequent points in a clockwise direction. Double-click on the sixth and last point to complete your selection.

If you made a mistake or want to restart the selection process simply press the Esc key on your keyboard to release the current selection and start over.

Bridge Tool

The Bridge tool is also used to create new surface but does so in a different way. This tool can also be found in the Mesh menu. The Bridge tool lets you connect points, polygons or edges simply by clicking and dragging with the mouse. For example, when in Polygons mode, click on a point and drag the cursor to an opposing point. Click on a third point to complete your selection - a triangle will be created. This tool can also be used to easily create a tunnel between two surfaces, as illustrated in the image below.

When in Edges mode only one surface can be created at a time. How this mode functions is illustrated in the image below. The edge at the top was selected first and the cursor was dragged in the direction of the arrow - a quad (four-sided surface) will be created. Repeat this with the edges to the left to create a surface as we did on the right. The result should look like the image below (at right).

Melting Polygons

The Melt function (Mesh | Commands menu) can be used to create a single N-gon surface from multiple three-sided or four-sided polygons. In our example we will dissolve the polygons we just created using the Bridge tool into a single surface. Select both surfaces and execute the Melt command - that’s it. The result can be seen at the left of the image below. This gives us a symmetrical distribution of surfaces across our hole. All we have to do now is fill the three remaining gaps.

Closing a Hole

A hole can be easily closed using the Close Polygon Hole function (Mesh | Create Tools menu). This avoids having to click on multiple points or edges to create a surface. Simply activate the function and subsequently place the cursor over an edge of the hole you want to close. A preview surface will automatically be displayed (as shown at right of image above). Click once on the edge to confirm your selection and a new N-gon will be created. Use this method to close the three remaining gaps in our surface.

Reorientation of Normals

The purpose of Normals was already mentioned earlier in this tutorial. As a rule, Cinema 4D makes sure that Generators objects’ and primitives’ Normals are automatically given the correct orientation. If a surface is created manually it can occur that its Normals point in the wrong direction. This can be quickly recognized by the (blue) color of the polygon when selected. In the image below (at left) it is obvious which surface has its Normals pointed in the wrong direction. We want all surface Normals to point towards the outside of our object, i.e., to be colored orange when selected.

Switch to Polygons mode, select the surface whose Normals need to be reoriented and select the Reverse Normals function from the Mesh | Normals menu. Alternatively you can select the Align Normals function, which will automatically analyze a group of selected polygons and automatically reverse the Normals of those facing in the wrong direction. If no polygons are selected, the entire object will be analyzed and Normals reversed accordingly. The result is shown in the image below.

Creating the Supports

Now that we have restructured the Cone object’s caps surface we are able to extrude two identical elongated polygon shapes for our brace. Again, we will turn to the Bevel tool (Mesh | Create Tools menu) and simultaneously elongate the two narrow N-gons, as illustrated in the image below. Use the Attribute Manager settings displayed.

Switch to the Extrude tool and extend the surfaces, as illustrated in the image below. An Offset value of 15 would be good. Apply the Bevel tool again to slightly round the edges. Adjust the Extrusion and Offset values to achieve a result similar to the one pictured below. As you’ve already done several times, you can use the Depth setting to control the direction and degree of the curvature.

Sliding Points

If the above-mentioned error occurs, the Slide tool (Mesh | Transform Tools menu) can be used to rectify it. The Slide tool lets you drag points or edges along neighboring edges to correct such instances of overlapping, as is shown at the center of the image above. The final, corrected result is shown at the right of the image above.

Modeling a Bolt and Nut

Creating a function bolt/nut combination, complete with threading would require a great deal of work - and memory. Such accurately modeled CAD models in particular take up large amounts of memory when imported into Cinema 4D. Since our level of detail, especially for such hidden elements such as our bolt and nut, is much less than a CAD model would require, we will concentrate on accurately creating the outer surfaces only.

Create an n-Side spline and a Circle spline primitive. For now, make the n-Side spline object a Child object of the Cylinder object at the top end of the gooseneck. Apply the settings shown in the image below to your n-Side spline object. Doing this will let us "zero out” the n-Side spline to the desired position and rotation via the Coordinate Manager. After you have done so, position the n-Side spline as shown in the image below. As you can see, the n-Side spline is six-sided with a slight rounding at the corners - just like a normal bolt. Had we used a Cylinder primitive to create this shape we would not have been able to achieve this type of accuracy.

After the n-Side spline has been positioned, make the Circle spline a Child object of the n-Side spline and zero it to the n-Side spline’s position (Position and Rotation values set to 0 in the Coordinate Manager - in Model mode). Set the Circle spline’s Radius value to 1.5 and its Plane option to ZY.

Creating Holed Splines

We will now connect both splines in order to create an object with a hole in the center. First, make both splines editable (c key or the Make Editable command in the Mesh | Conversion menu). Select both splines in the Object Manager and call up the Connect Objects + Delete command from the Mesh | Conversion menu. A new spline object will be created that contains both spline curves (these are called "segments”). The original splines are no longer needed and can be deleted.

Since the axis of the newly created spline was reset we will have to center it again. This can be done by either switching to Use Object Axis Tool mode and repositioning the axis manually, or you can use the Center Axis To command (Mesh | Axis Center).

Automatically Centering Axes

The set of commands in the Mesh | Axis Center menu offer several possibilities for repositioning an element’s axis. For example, the Center Axis To command will center the axis to the selected object. The Axis Center... option opens a dialog window (see image below) that offers numerous options. For example, an axis can be centered to the common center point of all objects in the scene or be adapted to the orientation of Normals.

In our example, simply centering the element is enough. Therefore, enable the Center and Points Center options only and click on the Execute button. Close the dialog window when finished.

Extruding the Nut

Create a new Extrude object and make the spline (connected) object a Child object of this new Extrude object. The hex nut’s thickness is regulated using the Extrude object’s Z value. Refer to the image below for the settings required to create a proper-looking hex nut, including the slight curvature at the edges. The back part of the hex nut should rest against the front extruded surface of the lamp’s brace. To adjust the hex nut’s position, select the spline (connected) object and move it into position.

The Screw Element

When the lamp is finished, most of the bold will be covered by other elements. This is why we will use a simple cylinder to model our bolt. This cylinder will be placed through the center of the hex nut, as illustrated in the image below. Create a Cylinder primitive and make it a Child object of the spline (connected) object. Since the spline (connected) object is already centered to the Extrude object used to create the hex nut, all we have to do is zero the new cylinder via the Coordinate Manager. Align the cylinder to the Z axis and assume all settings shown in the image below. Adjust the cylinder’s orientation using the settings in its Attribute Manager settings and set its Height so it spans the distance between the plates but not beyond the nut itself. Finally, round the caps slightly.

The Bolt’s Head

On the end of the bolt opposite the hex nut we will create the head of the bolt. Begin by creating an Oil Tank primitive object. Apply the settings shown in the image below. Zero the Oil Tank object to the Position and Rotation values of the shaft we just created and move it along the Z axis until the convex surface and a small side section covers the end of the shaft (see image below). Reduce the number of Height Segments to 1 and the Radius to about the size of the nut. Make the Oil Tank object editable by pressing the c key on your keyboard and switch to Polygons mode.

Increasing Subdivision Using the Loop/Path Cut Tool

In this step we will use the Knife tool to remove the part of the Oil Tank object that we do not need for our bolt head. The Loop/Path Cut tool offers several different modes with which an object can be cut, depending on the type of cut you want to make.

We will use the Loop cutting Mode, which selects its cut line like the Loop Selection tool does. When in Loop mode, a cut line around a body will be calculated automatically. Other Knife tool options allow you to, for example, restrict your cut to a selection or restrict the loop area.

Making a selection in Loop mode is similar to making a selection using the Loop or Ring Selection tool - the cursor is placed over an object edge you want to cut and a preview of a possible cut line will be highlighted. This is illustrated in the image below.

If you want more control over the placement of your cut line you can press the Shift key on your keyboard when selecting a cut line. The selected edge will be temporarily subdivided into equal segments and will allow the loop cut to snap to one of the marked sections. A higher subdivision can be defined using the Quantize Step value.

A click of the mouse will then execute the cut. Set the cut line on our Oil Tank object slightly within the extruded surface.

Finishing the Bolt

Switch to Points mode and select all points, e.g., using the Rectangle Selection tool, on the part of the Oil Tank object we want to delete and delete them. As you can see in the image below only that part of the Oil Tank object we want to use as the head of our bolt remains.

We can now use the Close Polygon Hole function to close the now open end of our bolt head. Switch to Edges mode and use the Loop Selection tool to select the bolt head’s bottom edge and add a slight bevel using the Bevel tool. Both of these steps are illustrated in the image below.

Now the nut & bolt combination is finished.

Modeling the Lampshade

Our lampshade will be modeled axially symmetrical. To do this we will use a Lathe object. First, we will create a spline as a profile of one half of the desired shape. These types of shapes are best created in the front (XY plane) viewport using the Y axis as the axial line. We will use a Bezier spline since this type of spline can be brought into shape very accurately. Using the image below as a reference, create a Bézier spline for the lampshade by clicking and dragging slightly to create each point. Use the Move tool to move tangents or points into position as needed. If you need additional points on your spline you can add these by Ctrl + clicking on the spline.

If the end point is selected the new point will be created as a continuation of the spline shape. The direction of a spline can be reversed using the Reverse Sequence command (Mesh Spline).

This is demonstrated at the center of the image below. Here we needed to add definition to the spline and therefore added a point. In order to create a narrow ring that runs around the lampshade once the Lathe object is applied, add another point, as shown at the right of the image below.

Modifying Tangents

As is shown at the top of the image below, a broken tangent was added by click + Shift + dragging on the tangents, which creates a somewhat sharper curvature. The curvature we created is a little too sharp and needs to be corrected. This can be somewhat problematic due to the fact that the neighboring curve segments were modified too strongly after the tangents were shortened and moved. These neighboring segments should however remain in tact.

This is why we will take advantage of out ability to add new points, without affecting the shape of the curve. Ctrl + click to add a point on the left and on the right of the point we need to correct (as shown at the top right of the image below).

Select the point at the center and call up the Chamfer function (Mesh | Spline). This function lets you split spline points and smooth curves. You can now smooth the curve at this point either via the Attribute Manager settings or by clicking and dragging with the mouse. The chamfer process is illustrated at the bottom half of the image below.

Creating the Lampshade Body

Now we can create the actual geometry for the lampshade body. Create a Lathe object and make the spline object a Child object of the Lathe object. The image below illustrates what the lampshade should approximately look like.

The spline point at the base of the body must lie exactly on the Y axis so no gap is created. Set this point’s X and Z coordinates to 0 in the Coordinates Manager and rotate the Lathe object so the body is positioned correctly in the bracket at the end of the gooseneck.

Since we will be shaping a slight protrusion to on the side of the body with which it will be attached to the gooseneck we will have to convert the Lathe object to a Polygon object. As usual, use the Function menu’s Make Editable command or press the c key on your keyboard.

Switch to Polygons mode, select two neighboring surfaces and apply the Extrude Inner command (Mesh menu) to scale the surfaces down slightly. Scaling these surfaces down along the global Z axis will narrow them so they can be made to fit within the bracket (see image below).

Using the Modeling Axis

Whenever multiple polygons, edges or points are selected the object axis will always be placed at the common center of these elements. However, the position of the axis is not always optimal for all modifications.

This problem can be avoided using the settings in the Attribute Manager’s Modeling Axis tab (when the Move, Scale or Rotate tool is active). For example, the Axis option menu’s Selected option will center the axis to the common center of the selected elements. The X, Y and Z sliders can be used to manually modify the position of the axis.

The Orientation options are used to define the axis’ orientation, e.g., parallel to the world, object or camera coordinate system. The Normal setting even lets you orient the axis according to the median direction of the surface Normals. In our example, this setting will be helpful in scaling many points added via the Extrude Inner function.

In the image below, these points have been selected and scaled along their Y axis. This maintains the shape of the original surface, allows the extruded surfaces to be rounded slightly at the narrow edge.

Finishing the Base

Switch to Polygons mode and select both new surfaces. Activate the Bevel function and set its Extrude and Inner Offset values to 1. Don’t forget to press the Apply button to confirm your entries. Your resulting bevel should look like the one in the image below. To allow for an easier extrusion, these surfaces should be scaled along their Normals on a single plane. To do so, activate the Scale tool. The modeling axis should still be oriented in the direction of the Normals.

The surfaces can now be scaled along the Z axis until they are form an even surface. Subsequently extrude the surfaces (Extrude tool) far enough so that they fit between the brace plates on the gooseneck, as shown in the image below.


An object’s look is not only influenced by its shape, but also by how its surface is illuminated. As a rule, a Phong tag is used to smooth the transition between neighboring polygons on an object’s surface. If the angle between bordering polygons is less than the defined Phong Angle value, a continuous, smooth shading will be calculated across the object’s edges.

If imported objects to not have a Phong tag assigned to them, one can be added via the Object Manager’s tag’s menu (Cinema 4D Tags). All primitives and Generators objects created in Cinema 4D will automatically be assigned a Phong tag.

The Phong tag is of great help in the depiction of objects. After all, we want to keep the number of polygons an object has to a minimum while still maintaining a smooth surface. The Phong tag is however not always able to smooth regions where relatively large polygons border on relatively small polygons. In such instances, it often helps to modify the structure of the polygons or add polygons to those regions.

Let’s have a look at the area on our lampshade that we just modified (see image below). When you view the scene in Quick Shading or Gouraud Shading mode you will notice how some surfaces just don’t look right. This is due in part to the irregular dispersion of polygons in this region. First, the structure of the surfaces should be checked. You should be aware of the fact that quads, i.e., four-sided polygons, will be broken down into two triangles for rendering, since triangles are mathematically easier to calculate.

Triangulating Surfaces

To see how triangles that make up a quad are positioned, a quad can be manually split into two triangles. To do so, select the quads that connect the lampshade to the brace we just modeled and select the Triangulate function (Mesh | Commands menu). The results can be seen at the right of the image above. Obviously the triangles in this region were created asymmetrically.

You can also create a quad from two triangles. This is what the Untriangulate... function does. This is also a good method of cleaning up imported geometry, which usually consists only of triangles.

Spin Edges

In order to correct the orientation of edges, switch to the Edges mode and select the two edges selected at the bottom of the image above. Select the Spin Edge command (Mesh menu) and note how the length of the selected edges changes. This command can be executed several times in succession until the selected edges lie in the desired location. What we want is a symmetrical alignment of edges, as shown at the bottom right of the image above.

Completing the Brace

We want our brace to be slightly rounded at its end. Switch to Edges mode and select the short edges of the end surfaces. Modify them using the Bevel function, as shown in the image below. Use the settings shown. It may occur that irregular surfaces result, as pictured at the bottom right of the image below. To prevent this from happening we will first add lateral subdivisions.

Switch to Polygons mode and select the two lateral polygons and scale them down using the Mesh menu’s Extrude Inner function. This step is illustrated in the image below. Next, switch to Edges mode, select the lateral edges and round them using the Bevel tool, as illustrated in the image below.

Finally, select and bevel the brace’s edges as shown.

Adding a Glass Plate to the Lampshade

We will use a Cylinder primitive to close the opening in the lampshade. Create a Cylinder primitive and select the Transfer function from the Mesh menu. In the Attribute Manager, drag the "Lathe (editable)" object into the Transfer to field and click on the Apply button to confirm your selection. If the Cylinder object’s Orientation is set to plus or minus Y the Cylinder should automatically be angled correctly and should only have to be positioned correctly along the Y axis. Also, adjust the radius to the opening of the lamb shade body. The image below shows the correct positioning of the glass plate.

Adding Detail

In this step we will add a decorative element to the top of our lampshade that will also serve as a handle for adjusting the lampshade. To do so, select the Pen command from the Create | Spline menu and draw a spline in the front view using a Bezier, as illustrated in the image below. Don’t forget to make use of the Shift + click + drag function for creating sharp corners. Finally, enable the Close Spline option to close the spline.

Create an Extrude object and make the new Bézier spline a Child object of this Extrude object. After extruding the spline, reposition it in the center of the lampshade.

Modeling the Back Brace

The brace that runs from the back of the lampshade to the end of the gooseneck can be easily created using a Sweep object. First, create a Linear spline with three points, as shown in the image below. Select the center point and chamfer it (Mesh menu: Edit spline / Chamfer) in order to round it. Next, create a Circle spline object and make it and the previous spline a Child object of a new Sweep object. Make sure the Circle spline lies above the chamfered spline in the hierarchy. Set the Circle spline’s Radius to 2 and your result should look like the one pictured below.

Creating a Groove Around the Lampshade

In order to make the lampshade a little less boring we will add a groove that runs around the entire shape. Switch to Polygons mode, select the Ring Selection tool and select a ring around the lampshade object. Use the Extrude tool to create a groove in the surface. What the result can look like is pictured in the image below. As you can see, the Extrude function can also be used to extrude in a negative direction.

Again use the Ring Selection tool - this time to select the polygons of the outer edges of the surface you just extruded. Use the Bevel tool to round these edges a little (see image below).

Completing the Model

The model is now finished and you have had an opportunity to make use of many of the available modeling tools. Click on the following link to open the completed tutorial file.

You can now make all objects belonging to the lampshade, from the cylinder above the Cone object at the tip of the gooseneck on, Child objects of that Cone object. To do so, select all objects and drag them into the Cone object in the Object Manager (arrow must be pointed down). As you can see in the image below, we also added a power cable to our model. This can be easily done via a Sweep object. After adding some simple materials, the result can resemble the image below. The ridges in the gooseneck were added using Sub Polygon Displacement via a Gradient Shader.

Back to overview