Create a rich and detailed still life in 3D

Harness the power of XGen and Arnold to create a 3D South American market scene.

Create a rich and detailed still life in Maya

To get this scene right you need to get down to the smallest detail; in this case, the beads

The inspiration for this 3D art sprouted from the incredible amount of wanderlust I've been having lately. This world has so much beauty to offer and I want to see it all!

Knowing my scene will be scattered with pots which have many beads scattered on them, it's really important to try to nail the appearance of a single bead to the smallest possible level. I start by using some curve-based modelling techniques to make the pots, then shade them using the alShader library and instance thousands of beads on the pots using XGen. After that I will explain how I approach lighting a scene and describe some noteworthy techniques to consider when compositing.

Once I am at the point where I know exactly what I want to create, it is time to do some research. I really feel like this might be the single most important part of the whole process and therefore I always try to push myself that extra bit. I'm itching to get started, but I've found that the longer I research my subject, the more believable the image I make will be. For example, while researching what beads actually look like I discovered that the metallic appearance of them comes from the thin metal inner structure inside the hole. Details like these make a big impact on the final look of the image.

  • Download the files you'll need for this tutorial – and an accompanying video – here.

01. Plan the modelling

Create a rich and detailed still life in Maya - Plan the modelling

The shape of the pots needs to reflect the shape of the beads

Whenever I begin a project I try to keep the end in mind. So when thinking how to approach the modelling of the pots, I also think about how XGen will eventually scatter the instances across a surface. The best way to scatter them will be in a uniform manner, which means that the quads of our pot should represent the shape of the beads as much as possible – ensuring a tight fit for all beads. This geometry will be used both for my XGen base and the creation of the wooden elements.

02. Modelling the wood

Create a rich and detailed still life in Maya - Modelling the wood

Janos Hunyadi's primGen plug-in makes this all a lot easier

I select all the horizontal edge loops and convert them to curves. Go to Modify>Convert>Polygon Edges to Curves. I do the same for a single vertical one. Using Janos Hunyadi's primGen plug-in for Maya, I use the curves to easily create cylinders. I can do the same by creating an extrusion along the curve, but using Janos's plug-in is much faster. It also lays out the UVs properly – always a winner!

03. Modelling woven wood

Create a rich and detailed still life in Maya - Modelling woven wood

Take time to add variations; it'll result in more believable objects

For the straps of wood holding the horizontal ones together I use the vertical extracted curve, apply primGen and adjust the curve to weave the cylinder in between the horizontal pieces. Four variations should be enough. I lay out the UVs, change the pivot of the objects to the scene origin and duplicate as many times as needed. A crucial last step is to add small, individual variations. This is needed to create a believable handmade object.

04. Modelling the beads

Create a rich and detailed still life in Maya - Modelling the beads

Similarly, subtle imperfections will improve the look of your beads

The beads themselves are super simple; a thin metal cylinder inside of a bigger plastic cylinder. The key here is to not have intersections between the two parts, as that would affect how the refraction looks. The beads I am interested in for this image aren't perfect, and this is something we need to take care of; with the Sculpt tool in Maya 2016 I pull, pinch and inflate parts. Subtle imperfections are very important! I also keep the polycount as low as possible.

05. Shading the beads

Create a rich and detailed still life in Maya - Shading the beads

Before you start shading, find some visual references

I've been using Anders Langlands' shader library for Arnold; alShaders. It's a great collection of shaders and utility nodes. Shading should start with research to find references for a visual library.

Create a rich and detailed still life in Maya - Shading the beads

Here's a shader that we made earlier

The bead shader isn't complex: a tileable scratch texture plugged into the bump slot, a fingerprints texture controlling the specular roughness, another breakup map to control specularity levels and a node controlling transmission attenuation colour, which will get past Ptex colour data from XGen.

06. Shading the wood

Create a rich and detailed still life in Maya - Shading the wood

This shader gives a simple wood texture plenty of believable depth

At the base of the wood shader is a single wood texture which is being used as the Diffuse, Specular and Bump. For the Diffuse component more variation is needed, so I mix a Fractal texture on top. For the Specular and Bump map I only increase the contrast and desaturate the image. One of the reasons I love using the alShader library is being able to do all of this in Maya with a couple of straightforward utility nodes.

07. Instancing with XGen

Create a rich and detailed still life in Maya - Instancing with XGen

Add a little random element to your instancing to break things up

Time to instance some geometry! I export the beads as an XGen archive and load them in. It makes most sense to instance them in a uniform manner. To break up the perfect CG appearance of uniformly scattered beads I use a couple of Rand() expressions on parameters like width, length, depth and twist.

08. Custom shader parameter

Create a rich and detailed still life in Maya - Custom shader parameter

Here's the easy way to colour all those beads

To colour the individual beads with a Texture map I need to pass this shading data through a custom shader parameter to XGen with the help of an aiUserDataColor node and convert it to a Ptex file. XGen only reads Ptex data, but makes it as easy as the click of a button to convert it.

09. Lighting considerations

Create a rich and detailed still life in Maya - Lighting considerations

Lighting can affect the feel of a scene, so approach it thoughtfully

Lighting is one of my favourite parts of the pipeline. With only a few adjustments I can change the whole feeling of the scene. This is why this step needs a lot of thought. The main questions I ask myself beforehand are ‘How can the lighting help tell my story?' and ‘What do I want the viewer to feel?' The lighting needs to support the emotional moment of a scene; it needs to be believable and needs to guide the viewer's eye to the story I am telling.

10. Light setup

Create a rich and detailed still life in Maya - Light setup

This three-point light setup should do the trick for this scene

For this scene I want to create the look and feel of a South American marketplace. It has to feel inviting and easy to look at. For this scene I use a three-point light setup. One spotlight with a gobo as my keylight (the sun), a big soft rim light and a big soft fill light. Because it is hard to art direct the gobo, I use a couple of Spotlights to help light certain parts of the pots.

11. Camera imperfections

Create a rich and detailed still life in Maya - Camera imperfections

Use photo editing tricks to give your scene more of a photorealistic finish

Avoid pure blacks while lighting a scene. These almost never appear in photography and can therefore make the scene look CG. I try to avoid this by adding a small amount of volume scattering in my scene. Since I'm aiming for photorealism, it's important to take lens and camera imperfections into account. Film grain, custom bokeh kernels, lens vignetting and chromatic aberration help to trick the viewer into thinking your image is a photograph.

12. Custom gamma curve

Create a rich and detailed still life in Maya - Custom gamma curve

Whack on a custom colour curve and you're done

Instead of applying the default 1/2.2 gamma curve to my scene linear image, I use a custom one. In Nuke one way to do this is by switching your OCIO Config to ACES, and pick a curve with the OCIOColorSpace node. Here I will use Sony's SLog35. To view and export the image properly I need to switch my colour space in my viewer from SRGB to None, and tick the Raw Data tickbox in the Write node. For more information on this topic, check out Cinematic Color!

This tutorial originally appeared in issue 207 of 3D World. Buy it here!


Zeno is a CG student with a passion for animation and VFX. When he's not waiting for render buckets, he can be found staring at the great intricacies of the world.