Creating an Antique Bookshelf in Maya & Substance Painter

Creating an Antique Bookshelf in Maya & Substance Painter

Luan Oliveira shared a step-by-step workflow for his antique bookshelf and 3D props modeled in Maya, textured in Substance Painter, and presented in Marmoset Toolbag.


Hello everyone, my name is Luan Oliveira, I am 20 and I live in São Paulo, Brazil. I am a prop artist and junior environment artist. I am currently working as a freelance 3D artist.

As a child, I liked to watch my sister drawing and thought it was fantastic even though I was not able to do the same (she inspires me to this day). When I got acquainted with video games for the first time during my adolescence, I fell in love with them and will take that love through the rest of my life. As for 3D art, I got to know it when I started my studies at the Faculty of Digital Games at FIAP in São Paulo and during classes, I saw how it all worked. I was impressed with how 3D art was made and all its stages of production. Since my graduation (2018), I have continued studying 3D on my own and I still have a lot to learn.

I started working in the game industry as a freelance and had a chance to work for Night Lynx Studio. A few other projects I worked on haven't been announced yet, so I can only tell you that I really enjoyed participating in their production.

1 of 2
1 of 2

The Bookshelf: Idea

One day I was looking for a piece to improve my texturing skills and started looking for various objects that caught my attention. When I saw an image of a bookcase with some books on it on Pinterest I thought of adding an old feeling and more objects to it. And that's how my project started... in a simple way.

The first thing I did was to look for a lot of references both for shelves and different objects and set up my reference board. I always look for references for shapes, textures, dirt, and lighting.

Many references can be added during the production process, so don't worry if you have a board with few images at the beginning. Remember to take everything that looks interesting to you and might help when working with color, shape, size. etc. Just save them and deleted the unnecessary ones during the production.

General Workflow

In total, I modeled 24 objects for the scene. Here is an example to demonstrate how I separated them: 

Each color represents a different material with a unique UV for the asset, for example, the Chalice and the hourglass share the same UV.

For modeling, I used Maya and followed a simple modeling pipeline that consists of Blockout, Low-Poly/Pre-High, High-Poly, Bake, Texturing, and Retopology (when necessary). I will use the bookcase as the main example to demonstrate the process but what the same workflow is applied to all other pieces.


The first thing during the blockout is to bring in a size reference and for this, I use the UE4 character that has a standard size and is widely used in games. After that, I start blocking the piece and looking for the right silhouette of my object. A very important tip is to always check how your object's silhouette looks like and for that, you can press 7 (lighting) on the alpha-numeric keypad.


After my blockout is done I duplicate my entire mesh and start making containment lines to get my pre-high. 

The pre-high is a mesh I can get a low-poly and a high-poly from simultaneously because if I remove the containment lines I will easily get my low-poly mesh. For this, I activate the smooth mesh preview in Maya by pressing 3 on the alpha-numeric keypad and using the page up and page down keys to control the smooth level of the current piece.

Remembering that it is just a preview. To turn it into a polygonal mesh, it is necessary to convert that pre-visualization. I showed how to do it in the gif below:


After exporting my Maya mesh to ZBrush, I begin detailing the shelf. During the sculpting process, I start with bigger details and move onto more refined and smaller details. When finished, I use Decimation Master on the mesh to be able to use it in Maya, then unwrap UVs and prepare for Bake.

See the gif below to better understand the steps:

UV and Bake Setup

A few notes on UVing and texel density:

  • In productions there will be a defined texel density, so the art team will follow the specifications.
  • It's necessary to make cuts where there are 90° angles.
  • Use the overlap on parts that will be duplicated to maintain UV resolution.
  • Make UVs as straight as possible for better use of pixels.

I use planar mapping a lot to unwrap my UVs. According to the example, I use an angle selection that makes it easier to select faces from the angle you set:

I use Substance Painter for texturing and one of my favorite baking features is the 'Bake by Mesh Name' option, which allows users to bake assets with several individual parts separately, removing the need to "explode" the mesh.

For that, I organize the file names in Maya according to the standard structure of Substance Painter. Everything low-poly has _low suffix and everything high-poly a _high suffix. Remembering that the names of the meshes must be the same except for the suffixes, for example, 'bookshelfDrawer01_low' and 'bookshelfDrawer01_high.

In Substance Painter, the configuration for bake is quite simple:

Baking inside Marmoset is very easy too, and even more so because the cage tool with Paint Skew makes it very easy to correct possible problems quickly. If there is an error in the bake inside Substance Painter due to the high-poly exceeding the low-poly mesh you can change the values in Max Frontal Distance or Max Rear Distance.


When it comes to texturing, you will notice that I am not very technical. I like to spend time during this stage exploring new possibilities and test various results.

Initially, I always make groups according to the materials that the asset will have, for example, everything wooden is separated into one folder and painted with some solid color to identify it. If you have an ID map you can guide yourself within Substance to do this in a few minutes.

For the base color, I start with a fill layer and, following the color references, I pick what works best for it. With that done, I add some basic color variations with map masks 'clouds' and 'grunges' and then test Substance blending modes. The ones I use the most are Darken, Saturation, Overlay, Multiply, and Value (of course, this is individual for each texture, after all, there are many blending modes in Substance).

After that, I start working on the details using grunge maps and images and playing with the sliders to get some interesting shapes that work for me.

Using the occlusion and curvature maps can give very good results for color variation. I like to mix lighter and darker tones that already give a really cool look to the wood. For good measure, I always check my base color and roughness in Substance to see if it is getting interesting.

In order to make the surface look natural, it is crucial to have well-defined layers of roughness. For that, I use some maps of grunge, dirt, and rust. Some effects painted manually.

When the color base is well-structured, I start to add variation to the roughness:

At this stage, I begin to invest in details to give the idea of ​​an old abandoned object.

For this, I select some colors to use as wear and start to work with the curvature map, making variations of shapes and subtracting masks using blending modes.

Here are two ways of picking up a color palette that I know:

The bottles were partly made with hand-painting, for example, I painted a fake liquid effect inside the bottles with soft brushes and position maps, and applying filters with Blur:


I worked on the presentation in Marmoset Toolbag.

My primary goal was to establish cool lighting that worked well with my assets and the idea I wanted to convey and for that, I started looking for a suitable HDRI.

For lighting, I try to use a system similar to the 3-point lighting:

After configuring the main lights, I add more lights to break the shadows and highlight the silhouette as well as always test new possibilities. Using warm-colored and cold-colored lights worked well for this asset. 

Some personal notes on rendering:

For render:

  • 2:1 resolution (viewport).
  • Anti-Aliasing 4x Temporal (viewport).
  • Make sure that Global Illumination is enabled.
  • Make sure ambient occlusion is enabled.

For camera:

I always try not to make too many changes in post-effects and like to keep the colors very similar to Substance Painter.

  • Make sure I'm using ACES tone mapping.
  • Apply a sharpen and change the value to enhance small details.
  • Add a little vignette effect.

Here're my settings:

For the spider webs, I basically searched for some images on Google and put them together to create a unique texture. In the image editor, I still made some modifications to fill them with more details:

With that done, I applied this texture to a plane inside Maya and started to divide it into smaller planes.

And then I just distributed them over the scene (yes, it took me a few times).

Returning to Marmoset, the material for the webs looked like this:

In this scene, I also added two more things to make it more interesting. The first is a background image to complement the composition, - for that, I used a backdrop. This tool is very simple, just insert an image and configure the filling of it as you wish, check out the example:

The second thing was small planes that I made in Maya using the ‘MASH’ tool to create very subtle dust in the air.

Check out the video below to understand my process of randomly distributing this dust particle effect:

After creating the planes, I just applied it inside Marmoset as a texture:

I also like to present my assets together with some mannequins to illustrate how the asset and the character interact with each other and also have a reference for the proportions.

1 of 6

The process is very simple. I used Mixamo to find some animations that I liked, then just uploaded the model in FBX, configured the rig and that's it. Just look for some animations that will suit your own project.


Thank y'all for reading this interview! I hope that what I showed in this article today, even if it is not very technical, has helped some artists and maybe inspired someone to continue making art because all the incredible artists I see on the internet are exactly what makes me want to improve my craft.

if you are interested in my other works or want to send me a message, feel free to visit my ArtStation portfolio.

Special Thanks

I would like to thank for recognizing my work and giving me the chance to share this with you.

I would also like to thank the InsightZ community for their feedback during the production of this project.

Luan Oliveira, Prop/Junior Environment Artist

Interview conducted by Arti Sergeev

Keep reading

You may find this article interesting

Join discussion

Comments 1

  • momairmasab

    Great interview, thanks for sharing.



    ·a year 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