Modeling a Coca-Cola Bottle

Introduction

This tutorial is intended to show you how to make a Coca-Cola bottle using Maya. Although, you may think making a bottle is trivial, it is easy to overlook some of the tiny details that make your final image more desirable to look at. I will also try to give you some tips, which can help with your workflow when you are modeling in Maya.Alright, we start off by trying to find as many references as we can to make our life easier during the modeling process. Here are some of the images I found on the Internet - simply search for "Coca-Cola Bottle" in Google and you should find tons of good references (Fig.01).

Fig. 01 d_Fig.

Fig. 01 d_Fig.

In this tutorial we are going to make the "Coca-Cola Classic" since it has some complex details. We divide the model into three major parts (Top - Middle - Bottom). This way it is easier for us to deal with each part and also decide what technique to use next (Fig.02).

Fig. 02 d_Fig.

Fig. 02 d_Fig.

Step 1

First we need to set up our "Image Plane" for the side view in Maya (Fig.03).

Fig. 03 d_Fig.

Fig. 03 d_Fig.

Make sure that the image plane's Center X is a negative value so it won't block your model (Fig.04).

Fig. 04 d_Fig.

Fig. 04 d_Fig.

Step 2: Modelling the middle part

To model the middle part we simply start with an "EP curve tool" to create half silhouette of the bottle. While EP Curve is selected, hit insert and make sure the pivot is somewhere in center of the bottle (Fig.05).

Fig. 05 d_Fig.

Fig. 05 d_Fig.

Next select Surfaces > Revolve and leave it set to the default options. Now, we have a base shape to work with (Fig.06).

Fig. 06 d_Fig.

Fig. 06 d_Fig.

Since this shape is a NURBS surface, we need to convert it to a Polygon mesh. So go to Modify > Convert > "NURBS to Polygons Options". Set the options to the following and then hit Apply:

  • Type: Quad
  • Tessellation method: General
  • U type: Per span # iso params
  • Number U: 1
  • V Type: Per span # of iso params
  • Number V: 3

The reason we want the U, V to be set (1, 3) is because we don't want our poly shape to lose much of its detail while still as a Low Poly. If you compare the poly version to the original NURBS surface, you can clearly see that we have lost some of the curvature, but don't worry as we can apply a mesh smooth on it later (Fig.07).
Also, we no longer need the NURBS surface, so simply just delete it.

Fig. 07 d_Fig.

Fig. 07 d_Fig.

Now under Edit Mesh select "Insert Edge Loop Tool" and add some new edges around areas as you see in the following image. Then, use Select >Select Edge Loop Tool to select the new edges we just made and simply hit "R" and scale them towards the inside a bit. The reason we added these edges is to give more depth to those areas, as you can see from the reference image (Fig.08).

Fig. 08 d_Fig.

Fig. 08 d_Fig.

Here is what you should have by now.

Tip: While the middle object is selected, press "3" on your keyboard to see the poly in smooth preview. Press "1" to go back to normal mode. Please note that this feature is only available for Maya 2008 and higher (Fig.09).

Fig. 09 _Fig.

Fig. 09 _Fig.

Select half of the object and delete it, then "Duplicate" the other half as an instance (Fig.10).

Fig. 10 _Fig.

Fig. 10 _Fig.

 

Next, move the vertices according to following image. Try your best to match the vertices as close as possible to the reference image (Fig.11).

Fig. 11 _Fig.

Fig. 11 _Fig.

Step 3: Modeling the top part

Select the edges of bottle and extrude them, similar to the following images (Fig.12 - Fig.14)

Fig. 12 _Fig.

Fig. 12 _Fig.

Fig. 13 _Fig.

Fig. 13 _Fig.

Fig. 14 _Fig.

Fig. 14 _Fig.

Modeling the Cap and Treads

We start off by making a poly cylinder with the following parameters:

  • Radius: 2.72
  • Height: 2.484
  • Subdivision Axis: 20
  • Subdivision Height: 1
  • Subdivision Caps: 1

Select the lower vertices and scale them towards the outside a bit, then delete the lower cap. Select the lower border and extrude it towards the inside. Use the following image as a guide (Fig.15).

Fig. 15 _Fig.

Fig. 15 _Fig.

Make a "poly Pipe" and position it under the cap. At this point, you're almost done with the cap (Fig.16).

Fig. 16 _Fig.

Fig. 16 _Fig.

Now, make a triangular tread and align it with a cap door. You can use Vertex snap tools by holding "V" to make sure the tread is aligned properly. Make sure the pivot is exactly in the center of cap. Press "E" to switch to rotate mode then "Duplicate" it to make 20 treads (Fig.17).

Fig. 17 _Fig.

Fig. 17 _Fig.

Step 4: Modeling the bottom part

There are many different techniques that can be used to tackle the bottom part. Here is one of them I came up with. First, make a simple "poly Sphere" and set its parameters to the following:

  • Radius: 7.5321
  • Subdivisions Axis:   20
  • Subdivision Height: 8

Make sure the sphere radius is close to the radius of middle part; don't worry if they don't match exactly inch by inch together because we will merge them together later. Also, you notice that the number of subdivisions differs for each part. Again, don't worry about that as later we will add and delete some edges to the middle part to match it with the bottom part (Fig.18).

Fig. 18 _Fig.

Fig. 18 _Fig.

Use Select >Select Edge Loop Tool to add a new edge to the sphere where the middle part ends, so we can delete the upper half of the sphere (Fig.19).

Fig. 19 _Fig.

Fig. 19 _Fig.

Select all vertices at the bottom of sphere and scale them on the "Y" axis until they are lined up.
While they are still selected move them up on the "Y" axis to line up with its upper edge. See the following image and use it as your guide (Fig.20).

Fig. 20 _Fig.

Fig. 20 _Fig.

Here is what you should have so far. Press "3" to see the object in smooth preview (Fig.21).

Fig. 21 _Fig.

Fig. 21 _Fig.

Next, add new edge loops at the end of the bottom part. Assign a red color material to those polys that we don't need to work with. This way, you can focus on other parts and won't get confused later when we extrude the polys between them (Fig.22).

Fig. 22 _Fig.

Fig. 22 _Fig.

Now, try to extrude the polygons at the center to something similar to following image (Fig.23).

Fig. 23 _Fig.

Fig. 23 _Fig.

Next, we select the polys between those polys we already colored and extrude them two times towards the inside. I have selected the edges where the second extrude should occur for your guide (Fig.24).

Fig. 24 _Fig.

Fig. 24 _Fig.

Here is what we have so far. I also assigned a nice default Blinn shader to it so we no longer see the red areas (Fig.25).

Fig. 25 _Fig.

Fig. 25 _Fig.

Step 5: Connecting parts together

First we merge the two halves of the middle part together. Simply combine and merge them.

Now it is time to connect the middle part to the bottom and merge them together. As we saw earlier in this tutorial, the number of subdivisions differed for both the middle and bottom parts. To fix this problem, we add some new edge loops to the middle part to match the edges of bottom and then we simply delete all the old edges that don't match (Fig.26 & Fig.27).

Fig. 26 _Fig.

Fig. 26 _Fig.

Fig. 27 _Fig.

Fig. 27 _Fig.

Once you are done, merge all the vertices together and extrude the middle towards the inside where the middle and bottom part are connected. Call the new object "Bottle" (Fig.28).

Fig. 28 _Fig.

Fig. 28 _Fig.

Step 6: Adding extra details to middle part

In this step, we are going to add more definition to the middle part. Simply, move the vertices and extrude their faces to make a basic slot. In this model we need to have four slots (Fig.29).

Fig. 29 _Fig.

Fig. 29 _Fig.

Step 7: Combining parts

This is a simple step. Combine all the objects except the cap's treads and call it "Coca_Bottle" or whatever you like. The reason we don't combine the treads with the rest of objects is that once we apply mesh smooth to them they get rounded and that is not something we want. Also, make sure you delete the history of all of the objects before combining them.

Tip: if you feel the bottle needs to be a bit fatter, make sure you hold "Ctrl" while scaling the object on the "Y" axis. This way you are scaling the object on both the "X" and "Z" axis simultaneously.

Here is the final model after applying mesh smooth. At this stage we are done with the modeling part (Fig.30).

Fig. 30 _Fig.

Fig. 30 _Fig.

 

Step 8: UV Mapping

To setup the UVs I used "UV Layout 2". Select "Coca_Bottle" in the scene and export it as an obj. Load the obj file in "UV Layout 2" and layout the UVs as follows (Fig.31). I am not going to cover how to use UV layout in this tutorial, but if you are not familiar with it you can easily learn it by following the tutorials that's on their website. Here is the link: http://www.uvlayout.com/index.php?option=com_wrapper&Itemid;=97

Fig. 31 _Fig.

Fig. 31 _Fig.

Once you are done with the UVs, export the model back into Maya. UV mapping the cap's treads can be easily done in Maya using simple planar maps. We apply a planar map to one tread and then we transfer its UV information to the rest of the 19 treads. This way all the UVs pile up exactly on top of each other (Fig.32).

Fig. 32 _Fig.

Fig. 32 _Fig.

Transfer UV maps

To transfer one object's UV map to another object, select the object that has the proper UV layout and then the second object with no proper UV layout and go to Mesh > Transfer Attribute Options. In this case, set the options as following (Fig.33).

Do this step for the rest of the 19 treads. Once you are done, all the UVs should pile perfectly up on top of each other. Merge all the treads to one object. Call the new object "Cap's Tread"

Fig. 33 _Fig.

Fig. 33 _Fig.

Step 9: Exporting "Coca_Bottle" UV to Photoshop for bump mapping

Select "Coca_Bottle", and then go to the UV Texture Editor. Once UTE pops up, go to Polygons > UV Snapshot. Set its options to those shown in Fig.34.

Fig. 34 _Fig.

Fig. 34 _Fig.

Step 10: Setting up a UV as a guide in Photoshop

Once the UV image is loaded in Photoshop, press "Ctrl+I" to invert the colors. Double click on the lock icon to pop up the new layer window. Call the new layer "UV_reference" and hit ok (Fig.35).

Fig. 35 _Fig.

Fig. 35 _Fig.

While the "UV Reference" layer is selected, change its style from "Normal" to "Multiply" so that you can see the layers underneath. Make a new layer under the "UV Reference" and call it "Bump" (Fig.36).

Fig. 36 _Fig.

Fig. 36 _Fig.

Now, we need to gather some images together to draw the Coca-Cola logo, and small dots on our bottle. To make the small dots under the logo, I used the following texture (Fig.37).

Fig. 37 _Fig.

Fig. 37 _Fig.

The rest of the small dots can be simply made by using the "Ellipse Tool" in Photoshop and duplicating them using "Alt+Drag" (Fig.38).

Fig. 38 _Fig.

Fig. 38 _Fig.

Here is a Coca-Cola logo that I found on Google, which is a nice high resolution image with transparency. Simply, convert the color to white with a black background (Fig.39 & Fig.40).

Fig. 39 _Fig.

Fig. 39 _Fig.

Fig. 40 _Fig.

Fig. 40 _Fig.

Now that we have all the images we need, you can start aligning them on the UV we exported from Maya. Here is what I came up with (Fig.41).

Fig. 41 _Fig.

Fig. 41 _Fig.

Save the final image in tga format and name it "CocaCola_Bump.tga".

Step 11: Setup bump map in Maya

Simply make a blinn shader and apply our texture ("CocaCola_Bump.tga") to its Bump mapping section. Try to reduce the "Bump depth" to something around 0.040. Also, make sure reflection is set to zero (Fig.42 - Fig.44).

Fig. 42 _Fig.

Fig. 42 _Fig.

Fig. 43 _Fig.

Fig. 43 _Fig.

Fig. 44 _Fig.

Fig. 44 _Fig.

Apply the Blinn shader to our Coca-Cola bottle. Make sure "Smooth shade all", "Textured", "High quality" are all checked, so we can see what our bump map looks like in the viewport. You should get something similar to this (Fig.45).

Fig. 45 _Fig.

Fig. 45 _Fig.

And here is the final Coca-Cola bottle (Fig.46 - Fig.47).

Fig. 46 _Fig.

Fig. 46 _Fig.

Fig. 47

Conclusion

I hope you have enjoyed this tutorial and the information in it was useful for you. Also keep in mind that the technique that I describe here can be applied in a similar way to any 3D packages out there. Please feel free to email me at in case you have any questions or problems regarding this tutorial.