Image courtesy of Aaron Covrett

Attention to Detail: A Texturing Story with Aaron Covrett

Meet 3D artist Aaron Covrett as he discusses his texturing and creative process for creating highly detailed scenes using Substance.

Introductions

Thanks for having me! My name is Aaron Covrett, and I’m a freelance 3D artist currently located in Los Angeles, California. While I largely consider myself a generalist, I’ve always had a soft-spot for texturing and look-development. I take pride in pushing that last 10 percent.

I actually pursued Graphic Design but fell in love with 3D after a motion design internship during my third year of study. The ever-growing junction of visual and technical challenges keeps me on my feet and coming back for more.

After a few years in New York, I went freelance at the start of 2019. So far, I’ve been fortunate enough to work directly with some wonderful clients such as Intel, Digital Kitchen, and ManvsMachine.

Harvest Project

View the full 8K version here.

Inspiration

When possible, far away from the computer! Getting out to observe how surfaces wear and react to daily life. Studying points of contact to understand why (and where) decay forms. These cues help inform the subtle yet crucial narrative elements that can ground a piece.

On the days between, I browse sites like Artstation, Behance, and Instagram accounts such as @mattershots for constant inspiration.

I actually picked Substance up a few years ago. Growing up, I was always passionate about the fine arts, but as an adult, I traded in pen and paper for a stylus. Learning Substance helped bridge that gap between technology and art and allowed for a more intimate space where craftsmanship could thrive.

Visual storytelling

Everything should feel intentional and grounded. I’m a strong advocate for environmental storytelling. Consider how props live and breathe in the space, and tell that story. I’m a harsh critic of using generic, uniformed curvature masks for dirt. Too often it looks fake and wrong. Proceduralism will often carry me 60 percent through development, but I always reserve a bit of space for hand-crafted artistry.


Harvest project

Harvest was an exciting personal project I completed at the end of last year. Born from equal parts: Curiosity to try new tools (such as photogrammetry) and refining the skills I had confidence in. Substance played a critical role, as it allowed me the flexibility to really push fidelity. Painting intricate surface details and manually placing dust particles. Like much of my work, just about everything in this scene ran through a Substance pipeline.

Substance Painter breakdown

With this piece being a Still Life, there were a ton of hero assets that needed love and care. Books, baskets, and fruit (oh my!). All requiring significant detail, time and attention.

It’s important to stay nimble and work non-destructively. Whenever possible, avoid painting directly on layers. Instead, work with materials nested beneath folders and alpha masks. This way, it’s easy to iterate and experiment while having a safety net. Try to keep things properly named and organized, especially if you’re using Anchor Points. With all this in mind, it really boils down to layering.

I tend to start loose, focusing primarily on capturing the height information. Let’s take this book for example:

The final book asset, in situ.
On the left: Imported book geometry with a base paper material. On the right: Book with additional height information.

I’ve gone ahead and added a base material for the paper, but these pages need a bit of help. There’s some general indentation built into the geometry, but nowhere near enough. Let’s introduce some secondary details through our height channel.

First, I’m creating a generic Fill layer and decreasing the isolated height channel to a negative value. Placing this inside a folder with a black alpha mask, we’re ready to get started.

By adding a fill layer to our mask and selecting the generator “Anisotropic Noise,” we can reintroduce some of the filtered negative height information. Let’s layer in a few additional noise variants (while setting the blending mode to Linear Dodge) for better dispersion. Lastly, adding some blur will soften and help unify our layers beneath. Re-sharpen for that final touch.

By experimenting with different blending modes, we can create a more intentional mask.

With that in place, we can venture on with look development. Additional materials, details, and voila!

By using my phone’s camera and a process called photogrammetry, I was also able to create 3D scans of pumpkins and seasonal gourds. These meshes needed extra attention, and Substance Painter was up for the task.

While I could’ve extracted an albedo map from my scan, I opted instead to create the materials inside of Substance Painter for more versatility. Again, it’s all about layering — first height information, then moving onto base color, and finishing with weathering and age effects.

Timelapse showing the layering process using Smart Materials.

Kingston scene

Kingston was another exciting personal project, as it introduced some interesting challenges. While reconstructing a still life allowed me the time and space to intimately push details, the direction of a dense, urban environment meant needing to work better, faster, and across a larger quantity of assets.

Fortunately (or perhaps naively), I was eager to get started. As stated earlier, it’s important to get away from the computer and observe surfaces in a more authentic context. Living in New York meant having constant access to inspiration and reference. With my morning commute as a starting point, I took a series of photographs that would ultimately help drive the direction of the piece.

Here you can see the Kingston-Throop subway entrance, circa summer of 2018, in all its glory:
Matching reference imagery inside of Substance Painter.

It goes without saying, but part of what makes Substance so effective is the material versatility and parametric control. So don’t be afraid to source your materials! There’s an impressive offering available on Substance Source, which helps save time when it matters most. For example, take a look at this sidewalk asset. While still largely receiving a custom paint job, I was able to save on time by sourcing a few materials to get started with.

I’m using ‘Paris Paved Sidewalk” for the base material, and layering in bits of ‘Grass Countryside’ and ‘Mud Brown’ for my weathering accents. From there, I’m introducing custom decals such as graffiti, stickers, and various debris.

In fact, quite often I’m only sourcing materials for a specific channel: height. With the right foundation and a little help from using Anchor Points, it’s actually quite easy to rebuild missing channels and wrangle your art direction in the process.

Take this brownstone asset, for example. You’ll notice I’m stacking a large number of materials — many of which ultimately won’t be visible in the final Base Color channel. Again, it’s all about adding as much variation as possible, whether on the surface or the buried layers beneath.

Demonstrating the layering of subtle materials.

Tips and Tricks

You’re constantly generating alpha maps, using different tricks and rules to blend between different materials. It’s fundamental, but it allows for some interesting results.

For example, take this technique for a car wash.

Using the Particle Brush for simulating real-time fluid dynamics.

First, I’m building a base “Clean” car material, nested within its own folder. Next, I’m layering in various amounts of dirt, dust, and height damage. We’ll group this into a separate folder named “Dirty.” Let’s then apply a white mask to this folder. You won’t notice any changes, because we haven’t yet secluded any of the “dirt” material. To do that, let’s grab a particle brush!

For this effect, I prefer to use the “Splat” particle brush preset. With a bit of tweaking, we can finesse our dynamics properties and achieve realistic behavior. It’s largely subjective, but in this example, I’ll decrease the GlobalWind Z parameter to a negative value and extend the particle life.

Finally, with our modified “Splat” tool enabled, and a black color value selected, we can “wash” away our dirt layer, in turn exposing the clean material beneath.

On the left: Painting black values to exclude our “Dirt” material. On the right: The final look via “Material” mode in the viewport.

Even better, this technique has legs! In this “Venetian Docks” example, I’m using the exact same process. Two materials; the one on top secluded by a white mask. Only rather than exposing a dirt layer, I’ve created a “wet wood” material by decreasing the wood’s roughness value.

Using the same technique to expose a “wet material” for the wood.

OK, let’s take things one step further. Using a more advanced approach, we can actually build a tool for painting detailed cloth tearing and damage. This effect can be handy for characters with worn clothing, torn denim, or in this case, an old tarp.

Building a tool for realistic cloth-tearing inside Substance Painter.

As this effect relies on having an exposed Opacity channel, there’s a bit of additional setup required. First and foremost, we need to change our shader model to “pbr-metal-rough-with-alpha-blending.” Then, in our “Texture Set Settings” tab, we need to add our Opacity channel. Finally, for this effect to work, let’s create a solid fill layer, and isolate only the OP (opacity) channel. We’ll rename this layer “Opacity.” By scrubbing the slider, you should see transparency effects on your imported model.

Enabling the Opacity Channel in Substance Painter.

Next, let’s create another fill layer and isolate the Base Color channel. We’ll leave the default gray value, and rename this “White_Fray.” Finally, let’s nest both the “Opacity” and “White_Fray” layers into a folder named “Tear.” Apply a black mask, and with the “Artistic Heavy Sponge” brush enabled, and a white color value selected, start painting!

*A crucial aspect of this technique is using a brush with interpolated values. Purely white values will expose transparency while black values remain opaque. The gray values between will result in a mix — partially opaque — which in turn actually reveals a bit our “White-Fray” material.

We’ve established that painting with white values will reveal transparency. Conversely, black values bring back our opaque properties. Use a combination of the two for better control over your tearing shape, as well as adding subtle details like strands of connected string.

The Final Result.

Future projects

Lately, I’ve been focused on adopting a Substance pipeline that more comfortably accommodates artists with less experience around the Substance suite. Where before I might have been contempt in simply exporting channel bitmaps from Substance Painter, I’m now considering how materials function in third-party packages such as Cinema 4D with Redshift or Octane Render. For example, when working with Substance Painter, exporting individual masks allows me to instead natively rebuild an albedo channel, allowing other artists to have more flexibility in an environment they already understand. It’s about knowing your team and/or deliverables.


Final words

More than anything, enjoy the process and take pride in sweating the details. I’d also like to call out some inspiring 3D artists! Raphael Rau, Cornelius Dämmrich, Josef Bsharah, and Chad Ashley are all impressive talents who have helped bring the Substance spotlight to more design-centric communities, such as Cinema 4D.

Lastly, thanks for the interview! Substance (and the team behind it) continues to push boundaries, create opportunities, and at its core, remind us how fun it is to be artists.

Cheers!

All images courtesy of Aaron Covrett.

On Facebook