Making a Beautiful Crystal in ZBrush, Substance 3D Painter & Marmoset Toolbag

Kieran Riley talked about the workflow behind the Crystal project, shared how the transmissive effect was created, and explained the texturing process.

Introduction

Hello! I’m Kieran Riley, a 3D Artist focusing on Props and Materials. When I was first thinking about University, I was initially going to study Game Art but changed my mind last minute and ended up studying Fine Art at Northumbria University, Newcastle upon Tyne, specialising in Photography. I guess I’ve come full circle now, but the knowledge of lighting, colour, and composition I gained from studying Fine Art has been invaluable.

I learned to be a 3D Artist independently, starting about 4 years ago. I gained most of my knowledge from online courses and tutorials. I had moved to Australia with some friends for a couple of years, and picked this up as a hobby in my spare time; I lived in a hostel for a while before we found an apartment, so this definitely kept me occupied and distracted from the other 11 people I shared a room with!

I started up as a freelancer at the beginning of this year and have worked on some previs environment art for an unannounced project for a small indie studio in California. It’s still in its early days, so there’s not much I can say, sorry! In May, I started my first studio position at Free Radical Design working on the newest installment of TimeSplitters. I’m having a lot of fun on the project and have learned a great deal already. There's a wildly talented bunch of people working there, and it’s great to be amongst such accomplished devs, I feel very lucky to have such a well-known IP to work on as my first full-time gig! 

The Crystal Project

Honestly, there wasn’t any planning behind this piece, I got home from work one evening, just sat at my computer, and decided on a short little exercise I could complete in an evening! I wanted to work on my sculpting, lighting, and presentation skills, so a crystal seemed like a good choice – something that shines and catches the light. 

Modeling

The crystal was sculpted from a Sphere in ZBrush. I used the Snake Hook brush to stretch it out to the proportions I wanted and then ZRemeshed it to get back an even distribution of polys. I sculpted the base shape of the Crystal using the TrimSmoothBorder brush. It’s absolutely fantastic for carving out planes – very good for defining the shapes of rocks and other things! I used the Orb Extreme Polish brush by Michael Vicente to smooth out some of the edges so that the whole thing wasn’t sharp, giving more form variation.  

For the detail, I started off by using the stock ZBrush Noise brushes set to a low intensity to cover the whole model with noise detail. I then switched to using some rock brushes by Dannie Carlone. Again, I set them to quite a low intensity and dragged out some cliff-like detail in certain spots of the crystal. At this point, the crystal looked too noisy, so I stripped back the surface detail with the TrimSmoothBorder brush. I’ve found that lightly tapping on sections of your model will only erase a portion of the detail, giving the surface a good coverage of detail without being too overwhelming. I then used some of my own custom crack and speck brushes set to low-mid intensity to give some imperfections to the crystal. 

At this point, the sculpt was finished, so it was time to grab the final models. The sculpt was at over 1.2 Million tris, so I decimated it down to a less dense mesh at around 100k tris so that Marmoset wouldn’t have to work so hard with it. I then used ZRemesher to grab my low poly at about 1.7k tris. 

I then took my low poly into Blender, where I did a quick tidy-up of the retopology, then essentially just created a UV seam straight down the middle so I would have two pretty much even UV islands. I then took the high and low poly models into Marmoset Toolbag 4 for baking. 

Texturing

The roughness was done quite haphazardly, to be honest, I started with total black, maximum shine. I then just layered some grunge brushes for the greyer patches and then used a Splattered Spot brush for the white values. I then did the same in reverse: black spots and some darker grunge patches. My strokes were very broad, with no real pattern to them, I just wanted good coverage and variation of roughness. 

Colour was the fun part! I started with a base blue, then added a gradient layer set to Overlay to get a nice fade on it. I then added a custom painter-like tileable I made in Substance 3D Designer, which is essentially various brush alphas splattered, with a slope blur to help blend them. I set this to Overlay and another seed of this to Divide to introduce patches of dark and light to break up the monotone colour.

After this, I brought curvature generators into play to create the edge highlights, set to Screen being driven by a bright aqua-blue colour. There were two curvature layers, one slightly blurred and the next much sharper to give more range and depth to the highlights. Finally, I added a paint layer of some dark patches, using a Spot brush combined with a Blur Slope filter. 

I also added in a quick pass on a Metallic layer, using a Spot splatter brush/Slope Blur combo again just to add in another variation of light and texture. Obviously, crystals in real life do not usually contain metal, but in this case, I felt it just added a bit more artistic flair.

The Transmissive Effect

The transmissive is controlled via an Opacity mask created in Substance 3D Painter. This feature isn’t enabled by default, you must go to the Shader Settings and change your shader from ‘pbr-metal-rough’ to ‘pbr-metal-rough-with-alpha-blending’. 

This process was a lot of trial and error. I used a soft grunge brush to manually paint the mask and essentially went back and forth between Substance 3D Painter and Marmoset slightly adjusting the mask until I was happy with the result. The key was to keep it nice and contrasted to ensure that there were sections of the crystal that would not allow any light at all, with some sections that really let it shine through. You can’t have too much of a good thing though, so I left in some grey values to add a middle ground where the light was dulled. I found it important to apply white areas to the main edges of the shape, in particular, to help them accentuate the forms. 

In Marmoset Toolbag, I loaded all the maps as usual and loaded my Opacity Map into the ‘Mask Map’ section of the Transmission/Refraction texture tab. I then played around with the Density, Scatter, and Anisotropy settings until I was happy with the effect. It was important to find the right level to set my mask to. Setting it at 0 allowed way too much light to pass through the model, overwhelmingly so, whereas setting it to 100 blocked out too much light, I settled at 0.644 to get a good balance. 

Rendering

The first thing I did when loading into Marmoset Toolbag was to enable Ray Tracing for the rendering, it allows for superior refraction and transmissive results.

The lighting process started off with an HDRI map with a cool temperature set to the brightness turned up to 3.5 to get a good start filling the scene. I mostly used rectangular spot lights to light the scene making sure to have light catching on the main planes of the crystal, with a key light in front of the crystal to the right and two fill lights to the left and behind slightly. I also had two omni lights in the scene, one slightly above the crystal to catch the upward-facing planes and one placed directly behind the crystal to shine some extra light through it. I then finally added a bloom post-processing effect to finish up.

Conclusion

So that’s that, thank you so much for taking the interest in this piece, I’ve been blown away with the reception it’s gotten! I hope this information helps other artists in some way! 

Kieran Riley, 3D Artist

Interview conducted by Arti Burton

Join discussion

Comments 0

    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