Penitent Knight

Character Breakdown

Anton Komarov


Anton Komarov

Character Artist


Hi everyone! My name is Anton, and I am a 3D character artist who has been working in the industry since 2019.
I have worked on various projects, from mobile games to AAA game development.


My current focus is improving my skills in character creation’s technical and artistic aspects. I’m a big fan of medieval fantasy settings and wanted to represent that in my portfolio.

Also, I would like to express my gratitude to my friend and mentor, Ivan Podzorov, who has always been there to support and give feedback on my journey.


  • PureRef for references
  • ZBrush for the creation of high-poly models
  • Blender for the block out and modeling
  • Maya for retopology and UVs
  • Marmoset Toolbag for baking and final renders
  • Substance Painter for texturing


My primary source of inspiration was an incredible concept called “Penitent Knight” by Russell Dongjun Lu.

Additionally, I drew inspiration from dark fantasy-themed games that I enjoy playing, such as Path of Exile, Diablo 4, Mortal Shell, and Elden Ring. For the fabric, I like how Emre Ekmekci did torn clothes for outstanding Ghost of Tsushima characters.



I’m trying not to over-gather references (it’s hard to manage a messy ref board) but still covering every aspect of armor design, materials, clothing, and anatomy.

I use real-life references and other artists’ work for a reason: Gathering real-life references is essential to achieving a believable look. In contrast, other artists’ work can inspire and offer techniques and stylistic solutions.

It is helpful to categorize reference images into groups based on the different outfit parts, ensuring your reference board is organized.

Structuring becomes especially important when working in a team at a studio, for example. Regarding reference image sources, I use Pinterest, Google, and Artstation. It’s also beneficial to use image search to find more images of the same or similar part of armor, for instance.



The blockout stage is one of the most crucial stages in creating a 3D model. It forms the foundation of your future model, and it’s essential to find suitable shapes, the right balance in values, the perfect silhouette, and proportions.

This stage also helps you identify areas that may not be well-defined or even don’t exist in the concept and try to establish those in 3D.

At this stage, you are attempting to convert the beauty of 2D art into 3D. Sometimes, the shapes do not work well from different angles if you copy them from 2D.

Therefore, you must check everything from different angles and find the perfect balance between matching the concept and creating cool-looking, easily readable forms in three dimensions.

I used Blender and Marvelous Designer to block out most of the shapes. Marvelous helps you get the fabric mesh quickly, but you have to use it wisely, paying attention to the flow and composition of the folds and the material feel.

I think it’s beneficial to create cloth as a proxy mesh in the beginning and when you establish main volumes. You will create a simulated version quickly since you already know what you want on a basic shape level.


Blender is an excellent “Swiss army knife” for every part of the character creation pipeline. I used different tools, mainly simple poly modeling and curve deformation for parts like belts, paper straps, etc.

I used all of these techniques for the cover: curves for laces and modeling for metal parts. Later, we will come back to Blender for rigging and posing.


It is critical to use color/tone separation while modeling the block-out; it helps you see the composition of the whole character and how balanced he is regarding material breakups and color/tone changes.


High poly

When all the parts are there, and I’m satisfied with the proportions, it’s a good time to move on to Zbrush. Since metal parts are practically modeled, I was working on the surface definition, adding damage and imperfections to create some storytelling and make the armor more believable.

I focused on adding damage to areas where it makes sense, not overdoing it, and finding the balance between attracting details and rest zones. Also, in some cases, it’s cool to break the silhouette a bit and add attractive negative space.


In terms of detailing leather parts and wrappings, I prefer to create them in Zbrush since leather folds are not that hard to sculpt, and it’s just faster.

Again, I added making folds, paying attention to gravitation and compression. That way, you can achieve expressive results using a couple of brushes.

I mainly used a standard brush for primary folds, a dam standard for creases, and a standard with alpha (with radial fade and blur). Combine it with a morph brush (store your clean version, and then add details). It’ll help you to balance out the details.


For the cloth, since I got a pretty decent base from Marvelous Designer, I’ve started by editing the silhouette, then refining the edges using a “Slash2” brush, creating a layering effect.

That way, I got a nice edge with some height to put the threads in.


The tricky part about the threads was the thickness. So, I decided to make a test bake for those, using a Zremeshed scarf with quick UV.

That way, I could check the bake quality of the fibers, and when I was satisfied, I finished the placement.


Check your surface details using a normal map material inside Zbrush. That way, you can check the readability and predict the further baking result. If something is wrong, it’s much easier to spot it using that technique.



For the head, I decided to focus on primary and secondary shapes and then add pores in Substance Painter later. It was vital to get the portrait expressive and eye-catching, at least the visible part.

Raising the nostrils and lowering the eyebrows gave the exact expression I aimed for. Scars were done using the dam standard brush, slash 2, and morph brush. It is easier to control how pronounced your features, like scars, are using the morph target feature and layers.


Matching the facial features with the concept and checking the face with the whole outfit was also essential.

The jaw had to be pointy and with exaggerated depressor labii inferioris.


This is the final look of the Penitent Knight high-poly.

As a last touch, I’ve added some surface details only for presentation purposes, not baking.


Retopology, UVs & Baking

I was using Maya for the retopology and UVs. Hard surface parts and belts were almost done on the low poly side since I modeled them on the block-out stage. It serves as a solid base for the future low poly.

Nevertheless, I did some clean-up and optimization. It is also important to use hard edges where the angle between the faces is less than 90 degrees and add a UV seam.


As a general rule, try to optimize the covered parts more.

For instance, the left shoulder pad is way more optimized than the right one because it is covered with a scarf.


Low poly

For the necklace, I’ve decided to use geometry for the frontal rings and a plane for the rear ones. Since that necklace is a part of the portrait zone, I didn’t want to make it too low and angular. Rings have three edges in their profile, so they are not that heavy in polycount.


The fabric was retopologized in Maya, using the quad draw function. I focused on maintaining equal-sized polygons with a good flow and adding more loops to the bending areas.

Loops should go in the right direction and be straight most of the time. Also, try to align the loops of the different parts of the outfit that are layered on each other. It helps to avoid clipping in those areas while playing an animation.


Making UVs is mostly about efficient use of the space. Straightening shells, optimizing barely visible parts, and keeping consistent texel density.

That’s my UVs for the cover model.


Before baking, I like to prepare the model properly. It means naming the meshes correctly (each low poly piece has to have a “_low” postfix, and each high poly piece has to have a “_high” postfix) and splitting them into different materials.

Here, you can see my final mesh separated into different materials and namings.

If preparation is done that way, baking will be as easy as clicking the “quick load” button in Marmoset and pressing the “bake” button.



Usually, I start with blank colors and primary color separation, adding roughness and metallic separation as the next step. If you are satisfied with the results, don’t hurry to move on to the next steps; it is worth exporting textures and checking them in the engine or Marmoset.

If the initial iteration of the textures passes your validation, you can add gradients and more color variation. You can use a 3d gradient mask, paint mask, or even photo textures in different blending modes to add color variation.

Don’t rely too much on smart materials or procedural masks; they seem too fake and generated.

They are still saving us a lot of time so that we could use them as a base. Adding a couple of noises on top of a procedural mask and a bit of manual strokes could make it shine. Always check the character from a distance while working on the secondary color chunks.

Zooming out helps us check the overall color balance, roughness, etc. It depends on the project’s art direction, but I like implementing a top-down gradient to my characters, so the bottom is darker than the top. But it doesn’t necessarily mean that you can’t break this rule.



For metals, I create interesting color variations and find the right roughness balance. We don’t want to be shiny everywhere, so achieving contrast in roughness is essential.

You can use dirt and rough areas to make the roughness map look more attractive. Adding minor dents and imperfections in the height map is the key to achieving a dark fantasy ancient armor look.


Good color variation and contrasting roughness maps are crucial to achieving believable leather. Don’t be scared of implementing rough areas where leather is supposed to rub against other parts of the outfit.

For color variation, it’s cool to implement different photo textures and experiment with blending modes and color correction to achieve good results.

Sometimes, even concrete wall textures from Google could add expressive colors to your textures; don’t focus only on the leather textures.


When I textured the hood, I wanted to get the result of a very crumpled and worn fabric with a lot of color variation because the fabric could fade under the sun, become dirty, have dried salt, and other kinds of damage.


I used the texture trim approach to save texel density and add more details to the paper. With the necessary UVs, your textures will repeat each other.


Rigging & Posing

To pose this character, I used Blender’s addon Rigify.

It generates the basic humanoid rig, and then I just added additional bones for pouches and hard surface elements because those shouldn’t be bent with organic parts of the character.


Posing itself is finding good angles and attractive silhouettes to bring your stiff a-pose model to life, making it more dynamic and asymmetrical.


For rendering, I used the Marmoset Toolbag. Their ray tracing helps achieve good results quickly. I started by choosing an HDRI map as a fill light. Then, I added the primary light source.

I wanted to make the portrait zone brighter to enhance the main accent. For the next step, I tried to separate the character from the background. For that reason, I chose to use rim lights.

As a final touch, I’ve added a couple of lighting sources that reflect in a leather pouch and shoulder pad and show the details of those elements.



As a result of this project, I gained a lot of experience in clothes, anatomy, and armor creation, as well as posing and presentation.
Thank everyone for the support, and Alfred for allowing me to write this article.

I’ll be glad if you find this helpful. You can consider following me on my Instagram and Artstation.

May the force be with every one of you!