Creating a 3D Vintage Bottle from a 2D Concept

Vamsi Kalangi shared an extensive breakdown of the Vintage Bottle project, thoroughly explained the modeling process, and explained how to set up Depth Pass in MT4.


Hi guys, I’m Vamsi Kalangi. I am from Eluru, a small town in India. I am a Junior Environment and Prop artist at Sumo Video Games Pune, currently working on an unannounced project. It’s been 3 years since I began my professional career in this field.

I have been passionate about arts like sketching and painting, and love to play video games since my childhood. Fortunately, my parents supported me a lot in this artistic field which is unusual for Indian parents. I decided to pursue my career in arts and joined Jawaharlal Nehru Architecture and Fine Arts University, Hyderabad to pursue a Bachelor’s degree in Animation. After its completion, I started my professional career as a game artist.

With this article, I’ll be sharing a detailed breakdown of the prop and hopefully provide some insights into my process. 

Vintage Bottle

I browse ArtStation every day for around 30 minutes. Discovering new artists and their works inspires me greatly. I came across this wonderful concept by Elen Clarke and wanted to try and replicate it faithfully in 3D.

I decided to aim for a middle-ground in terms of style and realism. This was also a good opportunity for me to go beyond my comfort zone and push my sculpting and texturing abilities as far as I can. 

Gathering References

As I was working with stylized concept art, I needed to understand and visualize how these materials would look in the real world. I started by collecting individual references for each material. I then created sub-categories to help me break down the references further. For wood, I collected different images for color, surface detail, wear, and damage. Looking to incorporate aspects from each. 

I use the industry-standard Pureref to create and organize my references. Gathering references is key before starting any work. This is something I struggled to understand and take seriously when I was a beginner. Without relevant references, our works will never look convincing if we simply go by our imagination or perceptions. I use real-life images to understand and observe how the asset can be created. In-game screenshots or renders are used as presentation benchmarks.



For the blockout, I modeled the bottle first to understand the scale and proportions. Based on this, the rest of the parts were blocked out one by one. After getting the proportions correct, I decided to set the overall scale. I used a 6ft human model from Autodesk Maya’s Content Browser to visualize how large the bottle would be in a human hand. 

Now that the base meshes are blocked out, I can continue adding more geometry – focusing on shapes and volume this time. I imported the image plane into Maya and compared it to the model, adjusting the geometry wherever necessary. I view the model from different angles and distances to check how the silhouettes and shapes look. This was the result: 

The mesh is then ready to be taken into ZBrush for sculpting. Before export, I added supporting loops to ensure the topology is uniform and dense. This aids the subdivision process in ZBrush and makes sculpting a lot easier. 


Sculpting is my favorite part of the pipeline. Of all the things I learned at the beginning, ZBrush is what I took to the most. It’s also why you’ll find artworks of creatures and busts in my portfolio.

I decided to tackle the wood pieces first. 

I similarly sculpted the other parts (Primary forms > Secondary forms > Tertiary forms). I used Clay Build Up, Dam Standard, and Trim brushes for the bottle and leather straps. For the metal parts, I used the same brushes, but with some alphas applied. 

Let’s discuss rope creation. I went back and forth between Maya and ZBrush quite a few times. I created a spline using the EP Curve tool in Maya. I rebuilt it with ‘type’ set to ‘uniform’ to ensure that the control vertices were equidistant. To create the rope mesh, I extruded a circular face along the spline with the number of divisions required to retain the shape properly. With this, we’re almost ready to move to ZBrush. The final step in Maya is to unwrap the tube into two separate UV islands. This splits the tube into two halves which will help create UV-based polygroups in ZBrush. 

1 of 5

Once in Zbrush, press the ‘Auto Group with UV’ button from Polygroups drop down to assign two different polygroups to the mesh.

I downloaded the ‘Rope Brush’ from BadKing and modified the brush template to suit my use case. Using this brush is fairly straightforward – click on the mesh, hold Shift, and drag the brush along the polygroup differentiation line. The stroke snaps automatically. I changed a few settings to get the rope to look the way I wanted. 

I took the rope back into Maya and made adjustments to the flow using soft selection to fit it into the rings on the bottle. After this, I manually modeled the split ends. Now that the rope was modeled, I unwrapped it and took it into ZBrush to add displacement details. I used a mask with diagonal stripes to do so. 

A more common way to add details to ropes is via texturing as it saves a lot of time and effort. I decided to try detailing the rope during the sculpting phase instead as I wanted to try something different. Personal projects are always flexible learning experiences and offer good opportunities to explore and learn different ways of approaching problems.

Low Poly

I decimated the high poly mesh in ZBrush. In the ‘Decimation Master’ tab, click on ‘Pre-process all’ followed by ‘Decimate All’ to decimate the mesh. This mesh was then taken into Maya. I made adjustments to the low poly mesh to fit the high poly. For this particular project, the outcome and presentation were my main focus here, so I didn’t think about the optimization of the low poly mesh too much.

UV and Baking

For maximizing texture detail, I used two 4k texture sheets. The geometry wasn’t too complex so the UV process was fairly straightforward.

After unwrapping, I laid out the UV shells on two separate sets. The smaller UV shells were upscaled for better texture resolution. With the scaling parameters off, I laid out the UVs once again for the last time.

For baking, I decided to go with Toolbag over Painter because of additional features such as cage adjustment, skew- and offset-painting.

When it comes to matching by mesh name, naming each mesh is a good way to avoid projection issues, but is a long and cumbersome process. To help ease the burden, I combined into groups certain meshes that were at a distance from each other. This way, I could avoid projection issues while drastically reducing the number of meshes that needed a renaming. I have attached an image that will hopefully provide a clearer picture.

With all the maps baked, it’s now time to dive into texturing. 


Substance 3D Painter is my go-to for texturing. I dropped the mesh and mesh maps into the import dialogue with the template set to PBR Metallic Roughness and started the texturing process.

I create the materials from scratch, but it’s nice to have the freedom of using in-built materials to set up base layers quickly. Just as with modeling and sculpting, It’s always good to start with large primary details and follow them up with secondary and tertiary details. The following GIFs will get you up to speed with my texturing and material creation process.



It’s incredibly important to get critiques now and then during the entire process. You can hop on to forums or servers online where you’ll find large communities with experts to guide you. It’s a good idea to showcase your WIPs with explanations for feedback. Communities such as DiNusty Empire, Experience Points, Polycount, and FlippedNormals are a few great places to get feedback on your works.

At the initial stages of wood creation, my focus was on staying faithful to the concept art. After some great feedback, it was clear that the material wasn’t defined properly and that it looked less like wood and something more appetizing, like chocolate. 

It was clear the material I made wasn’t working, so I started over again. This time, I went for more realistic textures but without losing the feel of the concept art. 

It always helps to keep your mind open for feedback and changes. That way you’ll maintain momentum and there’s going to be tremendous scope for improvement. 




I have completed the texturing process by adding a few extra details like stains, AO base dirt, and dust. 

Fibers Creation

To add realism, I decided to add micro-fibers on the rope’s surface. To quickly test and iterate on the results, I used fiber mesh in ZBrush.

For the final output and performance reasons, I created and placed alpha cards along the rope using the nanomesh in ZBrush. For the cards, I used a simple plane mesh. I created the nanomesh based on polygroups so that I could work on the rope split ends separately.

For the split ends, I increased the number of cards placed to indicate higher fiber density.

Once I was satisfied with the nanomesh network, I converted them into geometry and imported them into Maya. To help in texturing, I stacked the shells in the same orientation to ensure they all aligned to a single direction. The fibers were then textured manually in Substance Painter, along with their alpha masks. 

Rendering and Lighting

Marmoset Toolbag is my go-to for rendering assets in high quality. After importing the model files, I created a setup consisting of 3 materials in total – 2 materials for both the texture sets and a separate material for the main body for translucency effects. This material also consists of two extra Maps – a mask for marking translucent areas and a Fuzz Map (saturated Albedo Map), as seen in the image below. 

For the lighting setup, I used the standard 3-point lighting with some adjustments where required. 

The main difference in my approach is that I used an extra rim and played around with the position of my fill light.

I prefer the feel and contrast that comes with a combination of warm and cool colors. Warm colors were used for the key and fill lights whereas I used cool colors for rim-lighting. 

These are the post-processing settings I used:

Depth Pass

I rendered out the depth pass in a separate Toolbag file. I followed the process outlined in this handy 80 Level article by Alexandre Proulx Audy who makes use of Marmoset Toolbag 3.

For Toolbag 4 users, the process is far simpler. In the render tab, under the ‘Render Passes’ section, there are options to render various passes such as depth, alpha, normal, and more.

Here is how the depth pass setup looks like. 


It’s essential to spend a good amount of time in this phase of the project. This being the last part, many artists tend to rush to publish the final output. Indeed, this is the step that affects others’ perception of your work. Include different camera shots and close-ups to demonstrate the level of quality. Post-processing helps bring out a lot of the quality of the presentation. I used Photoshop and After Effects to combine the depth pass and add extra elements like smoke. 


Working on this piece gave me tremendous amounts of experience. I picked up many new things. The main challenge here was reimagining a stylized 2D concept as a 3D asset. When it comes to real-life sources and references, the visual outcome is straightforward to understand. At the end of it all, I’m satisfied and happy with how the artwork turned out.

Thanks to 80 Level for featuring my work and allowing me to share my workflow with everyone. This artwork is available as an ArtStation Print. Do take a look if you’re interested.

Vamsi Kalangi, Junior Environment and Prop Artist

Interview conducted by Theodore Nikitin

Join discussion

Comments 2





    ·2 years ago·
  • Anonymous user

    there are a lot of useful and important tips and information in this article. I really appreciate your work and efforts. Great Job! Hope to see more of your works!


    Anonymous user

    ·16 days ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more