Poly modeling a coke bottle


This document is not for a specific 3ds Max version. Tools and buttons rarely change in 3ds Max. If you can't seen to find a button, just look around a bit, it shouldn't be to hard to find. Since I'm from europe I prefer working in cm. Feel free to work in inches if you prefer. In this document I will extensively cover the basics of poly modeling. You should have no experience with 3ds Max at all, but should know your way around the interface, viewport navigation, and simple object manipulation. I will show the power of combining poly modeling with NURMS smoothing. If you know how to work with the graphite modeling tools, please feel free to do so, to keep this document compatible with older 3ds Max versions I'll be using the command panel.


Before you start with a 3ds Max project, it's important to collect as much information as possible about the scene you want to create. If you want your end product to be high quality, it's important to put effort in the smallest details. In this case we are going to examen the coke bottle quite extensively. For this example I actually bought a real life coke bottle to examen it carefully (Image 1.0). I recommend to often take a look at this image during modeling.

Image 1.0: Good reference image of the coke bottle.

Setting up 3ds Max

Setting up 3ds Max the right way for each project is important. Since we'll be modeling a relatively small object, I prefer working on a cm unit scale. Also, I like to set my grid spacing on a distance of 1cm.

Let's start by changing our units to cm by clicking "Units Setup" in the customize menu. Now the units setup window will appear (Image 2.0). Set your units to metric and centimeters.

Image 2.0: Units setup window.

You could consider correcting the system units for this relatively small object, but since this is rather complicated and not necessary, we won't be doing that. If you know what your doing feel free to do so.

Next we want to change the grid spacing to 1cm. However we won't work with grid snapping all the time, it's still recommended that you setup your grid the right way. So let's activate snapping by clicking the "Snaps Toggle" flyout , right click to open the grid and snap settings window (Image 3.0). Switch to the home grid tab, and set grid spacing to 1cm and close the window. Now we're all setup to start poly modeling.

Image 3.0: Grid and snap settings window.

Poly modeling the bottle

There are many ways to model a coke bottle like this. None if them is right, none of them is wrong, it's just what you personally prefer. I have chosen to start with a cylinder and start shaping our bottle from here using the poly model technique.

Start by creating a cylinder in the top viewport at the x0,y0 position. Switch to your modify tab on the command panel and set the following parameters (Image 4.0). Radius 2,75cm, height 1cm, and sides 20.

Image 4.0: Parameters for the cylinder.

If you did everything correctly you should now have a flat cylinder with 20 sides (Image 5.0). This cylinder represents the basis for our coke bottle, from this basis we'll be shaping the rest of our bottle using the edit poly modifier.

Image 5.0: The start of our coke bottle, press F4 to activate the wireframe.

Let's apply the edit poly modifier to the cylinder by selecting it in the modifier list on the command panel (Image 6.0).

Image 6.0: The edit poly modifier aplied to the cylinder.

Now the settings and tools for the edit poly modifier should appear in the lower part of the command panel. First it's important to understand that there are 5 sub-object levels to work in, these are vertex , edge , border , polygon , and element . We'll start of in polygon mode, so click the "Polygon" button in the selection rollout (Image 7.0). Now let's select the top polygon of our cylinder. You can do this in every viewport, but the easiest way to do this is in the perspective viewport. It will highlight red when selected (Image 8.0).

Image 7.0: The selection rollout of the edit poly modifier.

Image 8.0: The top polygon selected.

Now we're going to use a bevel operation to extrude and scale the top polygon. Click the small icon next to the bevel tool in the edit polygons rollout (Image 9.0) to open the bevel parameters dialog (Image 10.0).

Image 9.0: The edit polygons rollout.

Image 10.0: The bevel parameters dialog is shown in the viewport.

Set height to 1cm and outline to -0,2cm and press "Ok" to close the dialog. If everything went well you should now see something like (Image 11.0). As you can see the top polygon has bin extruded and scaled down.

Image 11.0: The bevel operation aplied to the top polygon.

Repeat this step with the following values

height 1,5cmoutline -0,65cm
height 4,5cmoutline 0,65cm
height 1,7cmoutline 0,2cm
height 2,2cmoutline -0,2cm
height 2cmoutline -0,5cm
height 2cmoutline -0,7cm
height 2cmoutline -0,3cm
height 0,2cmoutline 0,2cm
height 0,5cmoutline -0,05cm
height 0,5cmoutline -0,15cm
height 0,15cmoutline 0,15cm
height 0,15cmoutline 0cm
height 0,15cmoutline -0,05cm
height 0,15cmoutline -0,2cm
height 0cmoutline -0,2cm

Your coke bottle should now look somewhat like this (Image 12.0). You have now bin given the values of the bevels you allied, of course normally you'd have to figure them out yourself. It can't hurt to start a new scene and try to create the same shape by just looking at the reference image. It's also important to create just enough segments (bevels) to get the basic shape of the coke bottle, why this is will be cleared up later.

Image 12.0: The cylinder is starting to look like a bottle.

Although it might already look like a coke bottle, there is still much to do. The bottle needs to be hollow, the bottle needs those famous ridges, and it needs more smoothness.

Next step is to make the bottle hollow. This is a bit more complicated than just removing the top polygon. Since I want the bottle to have real thickness, we're going to use the shell modifier. We start by deleting the top polygon (that you should still have selected), press delete to remove it. Now leave polygon sub-object level by clicking the "Polygon" button in the selection rollout.

Select the shell modifier in the modifier list. It should show up at the top of your modifier stack, and the parameters in the lower part of your command panel. Set inner amount to 0,35cm and outer amount to 0cm (Image 13.0). This means a shell has bin created with a thickness of 35mm on the inside of our model. Feel free to play around a bit with the shell parameters to see how it works.

Image 13.0: Parameters for the shell modifier.

Next, navigate your perspective viewport to see the neck of the bottle, see how the bottle has real thickness. At the bottom of the parameters rollout of the shell modifier, select "Select Inner Faces" and "Straighten Corners" (Image 14.0).

Image 14.0: Parameters for the shell modifier.

Your bottle should now look somewhat like this (Image 15.0). As you can see the geometry of the outside of the neck is also projected on the inside, this is a logical consequence of the shell modifier, but it's not what we want. The real coke bottle has a straight neck on the inside. This is something we're going to fix by manually removing some polygons.

Image 15.0: Shell modifier aplied on the model.

To manually remove the polygons on the inside of the neck, we first need to add another edit poly modifier on top of the shell modifier. So again select the edit poly modifier from the modifier list, and enter polygon sub-object level . If everything went right you should have all the polygons that represent the inside of the bottle selected (Image 16.0), this is because of the "Select Inner Faces" setting of the shell modifier.

Image 16.0: Polygons representing the inside of the bottle are selected.

Click the "Select and Move" button . Next is to de-select some polygons we want to keep. The easiest way to do this is by holding Ctrl+Alt+LeftClick and drag a selection box as shown (Image 17.0), release the left mouse button to de-select the polygons inside the selection.

Image 17.0: By holding Ctrl+Alt you can de-select.

If everything went well you should now have this pocket of polygons selected (Image 18), delete the selected polygons. Next thing to fix is the hole we created by deleting the polygons. It might be hard to see, but there is a gap around the inside of the neck that needs to be closed.

Image 18.0: The pocket of polygons to be deleted.

The easiest way to close this gap is by switching to border sub-object selection mode . Borders are all connected edges that represent the border of your model. Since we have a gap in our model we have 2 border, should your model be closed (like it was before we deleted the polygons), than there would be no borders in your model. Select the two (all) borders in model by dragging a selection box around them. Another way to do this, is to press Ctrl+A, this selects all borders.

Image 19.0: The gap in our bottle.

With the two borders selected (Image 19.0) we can close the gap using the bridge tool. Press the "Bridge" button in the edit borders rollout. As you can see, the bridge tool creates a bridge of polygons between the selected borders (Image 20.0).

Image 20.0: The gap in our bottle is closed using the bridge tool.

Another issue created by the shell modifier is the thickness of our bottom, the shell modifier made it 0,35cm thick, this is far too thin for a real coke bottle. This is easily fixed by simply moving the polygon that represents the inside of our bottom up wards. First switch to polygon sub-object level and select the polygon that represents the inside of the bottom (Image 21.0).

Image 21.0: The bottom of our bottle is too thin.

Before you move the polygon, turn off snapping . Move the polygon up like this (Image 22.0).This is probably best done in the front or left viewport.

Image 22.0: Move the selected polygon.

Next is to create the ridges on the outside of the bottle. You should still be in polygon sub-object level . Select the polygons as shown in this image (Image 23.0). It's probably a bad idea to go and select them with "Select and Move" . When continuously fast clicking like with this selection, you might accidentally move polygons without you noticing. To prevent this, use "Select Object" instead of "Select and Move". The "Select Object" button is located in the main toolbar. When creating a selection like this, it's important to click slowly. Even in "Select Object" mode, you might accidentally drag a selection box instead of just clicking, thereby selecting multiple polygons. So never rush complicated selections, if you accidentally select polygons on the inside of the bottle and you fail to notice it, it might really mess up your model. Hold the Ctrl key to select multiple polygons.

Image 23.0: Select these polygons.

We are ready to create the first half of the ridges. With the polygons selected, apply a bevel with height 0,1cm and outline -0,15cm. Your model should now look somewhat like this (Image 24.0).

Image 24.0: Bevel operation aplied.

Repeat this last bevel with the other half of the polygons (Image 25.0). As you can see this operation had to be done in two steps, since the bevel is set to perform the operation as a group.

Image 25.0: The second bevel operation aplied.

If you examen the reference image closely, you'll see that the ridges gently flow out of the curvature of the bottle's neck and bottom. We're going to fix this by welding some vertices. First, switch to vertex sub-object level . Next, click target weld in the edit vertices rollout. Now to weld one vertex with the other, you first click the vertex you want to weld, followed by clicking the vertex you want to weld it with (Image 26).

Image 26.0: Target welding.

Weld all vertices around the bottle's neck as shown in this image (Image 27.0). When done, weld the vertices a the bottom of the bottles like shown in this image (Image 28.0).

Image 27.0: Weld the vertices like this.

Image 28.0: Weld the vertices like this.

I think now is the right time to introduce you to the power of NURMS subdivision. In essence NURMS subdivisions multiplies the number of polygons in your mesh and creates a smooth transition between them. Let's see how this works, select the meshsmooth modifier from the modifier list. Again, it should show up at the top of your modifier stack. Set iterations to 2 in the subdivision amount rollout. Your model should now look somewhat like this (Image 29.0).

Image 29.0: High poly model of our bottle.

The bottle is really starting to look like a coke bottle, but as you can see there are missing some sharp edges. We are going to fix this by performing a chamfer operation on some edges in our model. The chamfer operation splits the edge by a given distance, this will be translated in a sharper edge in the smoothed model.

Let's switch off the meshsmooth modifier so we can work on our low poly model again. You can switch a modifier on and off by clicking the little light bolt next to the modifier's name in the modifier stack (Image 30.0).

Image 30.0: Switch a modifier off by clicking the light bolt.

Select the top edit poly modifier in the modifier stack, and enter edge sub-object level . Select the edges shown in this image (Image 31.0). Now click loop in the selection rollout, this expands an edge selection as far as possible, in alignment with selected edges.

Image 31.0: Select these edges.

You should now now have these edges selected (Image 32.0).

Image 32.0: You should have this selection.

Now perform a chamfer operation by clicking the small icon next to the chamfer button in the edit edges rollout. The chamfer parameter dialog should show up in the active viewport (Image 33.0), set amount to 0,02cm.

Image 33.0: The chamfer parameter dialog, as you can see the edges are split.

Let's switch the meshsmooth modifier back on by clicking the light bolt again. As you can see, the chamfered edges result in a much sharper edge in the high poly smoothed model (Image 34.0).

Image 34.0: The neck of the bottle is finished.

If you look at the bottle where the ridges meet the label, the transition is too smooth. If you compare the reference image with our bottle you can see it misses some sharp edges near the label. What we need to do, is add some more detail to our low poly model. We will use the slice plane operation to cut some existing polygons to add more detail.

Again switch off the meshsmooth modifier, and select the top edit poly modifier from the modifier stack. Switch to polygon sub-object level , and select these polygons (Image 35.0). Make sure you don't select any polygons on the inside of the bottle! An easy way to select a ring of polygons is to first select one polygon in the ring you want to select, than hold the Shift key and select another polygon in the same ring.

Image 35.0: Select these polygons.

Click the slice plane button in the edit geometry rollout. A yellow colored plane will show up in the viewports, this represents the cutting plane. Position the plane like shown in this image (Image 36.0) at spot 1, than press the slice button . Reposition the plane to position 2, and press the slice button again. Exit the slice plane mode by pressing the slice plane button in the edit geometry rollout again.

Image 36.0: Position the cutting plane like this.

Switch on the meshsmooth modifier to see the result of our new created polygons. As you can see the new polygons result in a nice sharp transition between the label and the ridges (Image 37.0). When done, switch the meshsmooth modifier back off, and select the top edit poly modifier again.

Image 37.0: Our coke bottle is allmost finished.

There is one thing left to do before the bottle is finished, and we can start working on the cap. This last thing is creating a dent in the bottom of the bottle. So let's enter polygon sub-object level , and select the polygon that represents the bottom on the inside of the bottle (Image 38.0).

Image 38.0: The polygon that represents the bottom on the inside (This is shown from inside the bottle).

Now apply a bevel operation with height 0,3cm and outline -0,5cm. De-select the polygon and select the polygon that represents the bottom on the outside (Image 39.0). First, apply a bevel operation with height 0cm and outline -1cm, followed by a bevel operation with height -0,6cm and outline -1cm. When done, de-select the polygon and exit polygon sub-object level . Switch off the meshsmooth modifier and take a look at your coke bottle.

Image 39.0: The polygon that represents the bottom on the outside.

Congratulations, the bottle is finished Image 40.0:. As you by now understand, it's really important to examen the object you want to model carefully before you start modeling. For instance, before I started, I knew the coke bottle had 10 ridges, this is why I made my cylinder with 20 sides.

Image 40.0: The bottle is finished.

Poly modeling the cap

Of course a coke bottle ain't a coke bottle without its cap. So thats the next object we'll be modeling. I'll cover this part a bit quicker, since we'll be using the same tools as with the bottle, and you should be more familiar with them now.

The cap is an object of its own, therefore we'll start with a new cylinder. To focus completely on the cap, it's a good idea to hide the bottle for the time being. So select your bottle and press hide selected on the display tab of the command panel (Image 41.0).

Image 41.0: Hide rollout on the display tab of the command panel.

Now let's start of with creating a new cylinder in the top viewport at the x0,y0 position, set radius to 1,2cm, height to 0,3cm and sides to 21 (I counted 21 dents in the side of the cap). Height segments and cap segments should be set at 1. Apply an edit poly modifier, and enter polygon sub-object level . Select the top polygon as shown in this image (Image 42.0).

Image 42.0: Select the top polygon of our new cylinder.

Apply these bevel operations on the top polygon.

height 0,2cmoutline -0,05cm
height 0,1cmoutline -0,1cm
height 0,1cmoutline -0,3cm
height 0cmoutline -0,5cm

Of course you should learn to figure these values out yourself. If everything went right your cylinder should look somewhat like this (Image 43.0).

Image 43.0: Multiple bevel operations aplied.

Now select the polygons as shown in this image (Image 44.0). We'll be applying another bevel operation on these polygons, but we're going to change the way the bevel operation is performed. Until now, the bevel operation is performed as a group when having multiple polygons selected. Now, we want the operation to be performed by each individual polygon. So open the bevel parameter dialog and change the bevel mode to "By Polygon", set height -0,1cm and outline -0,05cm.

Image 44.0: Select these polygons.

Your cap should now look somewhat like this (Image 45.0).

Image 45.0: The bevel operation is applied by polygon.

Select the polygons as shown in this image (Image 46.0), the bottom polygon should also be selected. It should not be necessary to select the polygons one-by-one. Be creative, first select all bottom polygons by drawing a selection box around them, than hold Ctrl+Alt to draw a selection box around the top polygons you want to drop from your selection, you should end up with the selection as shown. When done, delete the polygons.

Image 46.0: Select these polygons (don't forget to select the bottom polygon as well).

Switch to vertex sub-object level , and select these vertices (Image 47.0).

Image 47.0: Select these vertices.

Now move these vertices down to z0, as shown in this image (Image 48.0). You might want to activate snapping if you want to be precise. Exit vertex sub-object level when done.

Image 48.0: Move the selected vertices down to this position (z0).

The low poly model of the cap is finished. Now let's apply the meshsmooth modifier and set iterations to 2. To give the cap some real thickness, apply a shell modifier and set inner amount to 0cm and outer amount to 0,05cm. Unhide your bottle by pressing unhide all on the display tab of your command panel. Move your cap to the top of the bottle (Image 49.0).

Image 49.0: Coke bottle with cap.


Congratulations with your first poly modeling experience! I hope you can see the potential of poly modeling combined with NURMS subdivision. Don't forget this is just one of many ways to create this model. For instance, instead of starting with a cylinder, we could have started by drawing a 2D spline of the contoure of the bottle, and rotate it 360 using the lathe modifier.

You might want to play around a bit by repositioning the cap next to the bottle on the floor. Apply a bend modifier and play with the "Limit" parameters to bend the cap like it's opened using a bottle opener (Image 50.0).

We now got a finished model of a coke bottle and its cap. Before we start rendering, we should setup and apply materials and setup lighting in the scene.

Image 50.0: Play with the bend modifier on the cap.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.