Making a Photorealistic Leopard Gecko in ZBrush, Substance & Marmoset

Leif Stalinsky talks about recreating an adorable leopard gecko in 3D, shares some secrets behind the process of sculpting and texturing incredibly realistic creatures, and explains how the lighting was set up to make the gecko look like it was photographed in the wild.


My name is Leif Stalinsky and I’m a 3D Creature & Character Artist with a strong focus on organic sculpting, texturing, and lookdev. I studied Communication Design for 3 years in Cologne, Germany. For the past 4.5 years, I've been working as a 3D Artist for ANIMA RES, a 3D medical animation company based in Bonn, Germany. During this time I have worked on more than 100 projects including the in-house Insight series (e.g. Insight Heart and Insight Lung). My goal was to create super-high detailed realistic 3D models of organic structures. Currently, I am building my career as a freelance 3D Creature & Character Artist.

Getting Started as a Creature and Character Artist

Creature and character art have always been a huge interest of mine. For me, it’s one of the most interesting areas you can work in when you are part of this industry. Since I was a kid, I wanted to know how everything works, so one step leads to another and now I’m here.

I chose to create a Leopard gecko because when you look at them you will see all these interesting (fascinating?) details on their skin, motion, look, and overall anatomy. Before I start a project I tend to spend much time doing research, looking at videos, images, and anatomy references. I like to know as much as I can about the project and all the models I’m working on beforehand. PureRef is very useful for that, you can easily set up references and adjust them very fast. It becomes more and more important to me with every project.

Creating the Leopard Gecko in ZBrush

My ZBrush workflow is pretty much straightforward. At the beginning of each project I start with a simple sphere and block out the base mesh using the DynaMesh function in ZBrush, it gives me a lot of freedom. For this, I like to use standard brushes like Move, DamStandard, Clay Buildup, and painted masks for extruding parts out fast. In this phase, I do a lot of changes and adjustments to the mesh, always go back and forth to get the right feeling for the creature. After that, I open up the mouth with a simply painted mask and refine this part. I decided to have the tongue as a separate subtool for more control over the area underneath the tongue.

Once I'm happy with the overall shape I start applying some alphas. Important note, when I use alphas for example for the leopard skin, I set the intensity of the alpha at a very low value and turn X symmetry off. Just to get the right impression of how the skin could be. I use this first layer of alphas as a base for my detail sculpting part so that I have something on my model to start sculpting the details and refining some areas more easily.

It’s a little bit different when I’m using scanned textures (, etc.) but for this model, I decided to go this way and sculpted almost all the details by hand. When it comes to a new project, I always force myself to think in steps/layers to keep it simple.

1 of 5

Working on the Rock

The base rock was created in ZBrush. At first, I blocked out the two parts of the rock using the same workflow as the one I used for the Leopard gecko. For the base details, I used the Trim Dynamic brush with a square alpha to create this stone/rock look. Before I exported the model, I took it to the Plugin UV Master inside ZBrush to create fast UVs.

The main details and colors were created later with tileable textures in Marmoset Toolbag. I divided the model a couple of times to get enough polygons for the displacement map, after that I played a lot with displacement functions (rotation, scaling, etc.) in Marmoset Toolbag until I was happy with the outcome. The main reason behind this method was that I wanted to make the stone details very flexible. I can just jump into the software and change the complete details and look of the rock in one second.

1 of 4


When it comes to texturing for organic models, I usually start with a polypaint directly in ZBrush, because I get a better understanding of what the final look should be like and I have the opportunity to fix the parts I don’t like fast. For example, when the sculpt is almost at 80% done, I start to polypaint the texture and see how it looks, after that I’m going to do the rest of the detail sculpting and texturing until I’m content with the result. In case I want to change something big I use the layer system in ZBrush, the system has flaws but at this stage, it’s working well for me. If I like what I did, I bake the layers down to prevent the file from getting too big.

Substance Painter is a big part of my texturing workflow, I use the software a lot to finish the diffuse pass and I have especially good control over the gloss/specular pass. I always invest a lot of time into getting these two passes to work. In this particular project, the gloss part for the leopard skin was quite challenging because it has a lot of different values.

Texturing Gecko's Skin, Mouth, and Tongue

I started the texturing process with a polypaint in ZBrush. In order to do this, I used the standard Brush with a modified concrete alpha plus the DragRect function. You can use whatever alpha you want but I think a concrete alpha is very good for organic polypainting because it has a lot of good information in it. I tend to switch the alphas a lot. After everything is set up I start applying some of the different mid-tones to the skin, analyzing the key references of your project is super important at this stage. As a rule, I start with the mid-tones of the base colors because it's easier for me to break up the color with a darker and lighter tone. When it comes to polypainting and breaking up the color, cavity masking is a very useful feature, you have so much control over what you affect with your brush. In this phase, I try to play around with different colors to get a very natural feeling of the texture but as always use colors with low intensity and think in stages/layers.

Texturing the Black Skin Spots

When I was happy with the overall result of the polypaint, I used the noisemaker function with the Noise Plug option to create the black spots on the skin. After that, I applied everything as a mask and did a mask clean-up, added and deleted some spots by hand. I used the Mask Pen brush with a stone alpha and with the DragRect stroke function as before to break up every border of every spot. The next part was to fill the mask with a mid grey and break up the grey with black, white, yellow, red, green, blue in order to create a realistic feel of the spots. From there on, I used normal masking and my common polypaint workflow to refine some areas and rework the parts I didn’t like.

Retopology, UVing, and Baking

Before I send my models over to Substance Painter I do a retopology in Topogun and complete the baking in Marmoset Toolbag. For baking displacement maps, I use ZBrush and when it comes to creating UVs I always use Blender. I like to have good topology for my models with clean loops and such because it makes everything else so much easier, like creating UVs and baking all the different textures. For the Leopard gecko, I used a UDIM set up to have high-resolution maps. I created two setups, one with the normal UV – UDIM space for the ZBrush displacement bakes and the final texturing part in Substance Painter. The second one contains all UDIM islands in one place with different materials for Marmoset Toolbag. As Marmoset doesn’t like the normal UDIM space, the software recognizes the UDIM texture within one mesh with different materials for each UDIM texture part.


For the Leopard gecko rendering, I wanted to try out the new ray-tracing feature in Marmoset Toolbag 4. I spent a lot of time tweaking all the different materials for each body UDIM part. Setting up the right amount of displacement combined with the normal map details and SSS options was quite fun. Personally, I love tweaking options, I think it’s quite satisfying to push each material every time you work on it a little bit more.

The lightning in the scene was created with a 360-degree panoramic HDR image from Marmoset without any child lights. Then I added 3 rectangle directional lights step by step to have a simple 3-point lighting setup (key light, fill light, backlight). All these lights have different intensities where the key light is the brightest. When it comes to setting up my light in Marmoset, I usually start with the HDR options just to have something I can work with, but I normally don’t go too crazy with the brightness. From there on I start adding the other light sources one by one starting with the key light. After that, it’s a lot of tweaking, looking at reference videos and images until I’m happy with the result.

For images, I like to do my post-production in Photoshop. At first, I open everything I need (the final render, ID pass, depth pass, mask pass, etc.) in one file. Second, I tend to look at the level adjustments and tweak them a little bit. After that, I start tweaking the image with the Camera Raw filter section. Next, I focus on lights and shadows and adjust them via the Dodge and Burn tool in Photoshop. Once this is done, I add a small amount of blur with the depth pass from Marmoset. You can easily use any depth passes from other software in Photoshop for blurring your image, you just have to add them to the alpha channel. One of my last steps in Photoshop is to add a little bit of noise to the image, I think it’s a good way to add a little bit more realism. After that, I go over every single step I did in Photoshop and tweak the layers until I am happy with the final result. This can take a lot of time but to me, it's worth it.

1 of 6


Painting the Leopard gecko skin was quite challenging for me because Leopard geckos have so much color variety on their skin. Some have a lot of cavities and others have super soft-looking skin.

In general, it’s important to do a lot of research and analyze good references before starting. The right understanding of anatomy will help you the most with your project (bone shapes, muscle structures, biomechanics, surface reflections, etc.). When you start a new project, think about all the different workflows before you start, this will save you a huge amount of time and keep the frustration low. Looking at others' work is fine when you want to get inspired and maybe learn from them but don’t compare yourself too much to other artists, this will only slow down your own creative mindset. Keep in mind everyone is learning and improving differently.

1 of 4

Leif Stalinsky, 3D Creature & Character Artist

Interview conducted by Theodore Nikitin

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