talked about creating realistic tooth models
and subdermal shaders in ZBrush
and Substance Painter
I started my project by collecting references on Google, Pinterest and Youtube.
Today, you can find a huge abundance of resources and the problem is to filter this amount of information. To streamline my resources, I use PureRef. On such boards you can store technical details, for example, anatomical dimensions, or reflectivity and image values of the teeth. At first there was no CGI on my board, because I wanted to draw inspiration from real examples.
: Save some cross-polarized photos. You can learn a lot by observing pure color.
I used ZBrush
to sculpt the main volumes. I did not strictly adhere to the form, because I wanted the image to be well read from a distance. Very often, I strongly alienated the model to check it. To obtain a satisfactory result, the mesh had to undergo many iterations. By the way, you can use the ZBrush “see-through” mode and compare your sculpting with 3D scans on Sketchfab
Ensure the correct size of the teeth and roots, because the observer will immediately notice that the proportions are not met. For a long time I have been working with a low level of subdivision. The longer I work on personal projects, the more I understand how important this habit has become.
Tip : Use a contour shader or black material to constantly check the silhouettes of the model.
I used the transpose line ZBrush to measure each tooth and bring them all to the right size. Many people have difficulty with units of ZBrush, so I will give advice:
- Add a single-sized auxiliary object to the scene, transfer it with GoZ to the 3D package, scale to 10mm and return it to ZBrush via GoZ.
- Now drag the Transpose Line from one side of the cube to the other and set the scale to 1 Unit. So you can use Transpose Line, which reads the exact values.
I sculpted each tooth individually and this gives me full control over baking in Toolbag
or in Substance Painter
. If each instrument (subtool) is stored separately, this provides flexibility when a tooth needs to be modified.When I realized how complex human teeth really are, this method allowed me to listen to the opinions of other artists and to eliminate the shortcomings of forms without any problems. In the first pass, some details are exaggerated, while others are missing:
Tip : due to the implementation features of the units (subdivisions, SD), when returning to level 1, the SD mesh may shrink. This led to an undesirable effect, because my teeth, gums and blend mesh should be perfectly combined. I wrote a macro that saved the morphtarget mesh before each subdivide command and restored its original volume.
I used this macro as my main subdivide command, tied to CTRL + D. The script can be downloaded from here
Having finished with the sculpting of the basics, you need to think about the topology. Good topology can support sculpting, brilliance and animation.
The smoothness of the location of the polygons of the teeth and gums helps the blendmesh to keep all complex shapes.
You should always maintain a balance between low polygonality and the number of supporting edges. From the very first level of SD, I have strived to create a clear silhouette of teeth:
Here are a couple of good resources on topology:
Finished with topology and sculpturing, I import the decimated meshes into the Marmoset Toolbag. This helps to get a general idea of the appearance of the model with different lighting models.
Start using Toolbag or Keyshot as early as possible to find areas skipped during the drill. In addition, observing the results helps in moving in the right direction.
I wanted to present the model in real-time environment, so I created a transition mesh
for the implementation of the blending of teeth with gums. Otherwise, sub-subsurface scattering in screen space leads to abrupt transitions. I will talk about how I increased the level of detail in this blendmesh.
In ZBrush you can draw thin tubes in the cavities, which will mark the accumulation of saliva. We use them only for baking. In this way, we get a close-fitting concave blendmesh plus a normal map that resembles a convex shape. This is useful in the real-time renderer, because in the cavities we get beautiful reflections, as shown in this image:
You can import meshes into 3ds Max
or another similar package to create a sweep and texture layout. I wanted to save the UDIM development in order to have a production-ready model on different platforms. I transferred my 3ds Max tools through GoZ to specify the incision stitches, and then performed the quick-peel and the packing operation. Then I returned everything via GoZ back to ZBrush to use its powerful tool for creating scans (“use existing seems”). This is very important if you want to export displacement maps from ZBrush.
Tip : You can learn a lot about sweeps from Tim Bergholtz .
Texture Coloring and Offset
After creating a deconvolution, you can download the model in Substance Painter
to color it.
I like to use procedural and hand-drawn masks to create albedo maps. The idea of projecting cross-polarized photos seems attractive, but they limit you if you want to change veins or blood vessels for another project. You can learn a lot about color values and layers of fabric, creating everything manually. This may not be the ideal albedo, but in the long run this work will be rewarded.
Early on, I constantly had Toolbag running with all my shaders. Since the gums reflect a lot of light, thus hiding the albedo information, I exaggerated the colors:
To get the Toolbag feeling of a wet surface, I created a roughness map. It includes very small changes on different layers. To achieve the desired result, I reworked everything many times. The appearance of the gums varies greatly, so it is important to refer to the reference.
For most cavities, I used a slightly stronger roughness value, but excluded the cavities of the teeth, in which the roughness values are lower. I continued to customize this map even while writing the article, so I received new reviews. I like to complete projects, but to increase my skills I need to be critical of myself and be open to new ideas.
Advice : create a dark gray color in all texture sets and switch the blending mode to “replace” to immediately check the roughness behavior of the map under different lighting conditions.
First select a separate shader for this texture set. Ideal results are obtained with a metal/rough-with-alpha-test shader. For other texture sets, apply a skin-shader.
Add an opacity channel to “Texture Set Settings” and create a fill layer at the bottom of the layer stack with neutral normals and zero opacity information.
Now you can start painting over the mask of opacity (for clarity, I used the red color).
I had to work hard to get the perfect result, but the rush at this stage will greatly reduce the overall rendering quality.
Tip : You can export your mask through the texture set menu or simply by right-clicking on the mask stack and selecting “Export mask to file”.
Offset maps I exported from ZBrush.
It has a handy feature that analyzes the tools and aligns the displacement map to cover all high and low values. I used Multi Map Exporter
to combine individual tools related UV tiles using the following parameters:
For each texture set, I created my own shader in Marmoset Toolbag. This allowed me to use different shader parameters for tongue, teeth and gums.
Before configuring SSS shaders and offsets, it is important to set the scale of the scene correctly. In Toolbag, there are sliders "Scale" and "Scale-Center", and I used them to emphasize the effect of bias:
In Toolbag there is a good subsurface shader, which, if you have high-quality maps, can create excellent results. To add variability to the baked normal map, I used the details normal map. By its nature, the teeth appear translucent, and a good translucency map helps a lot to achieve this effect. I used a thickness map in Substance Painter and modified it according to my needs.
Here are the parameters of my shader for teeth:
I believe that the most important thing in the teeth shader is the reflection model for which I chose the “Refractive” parameter. The refractive index determines how far the beam path is distorted or refracted when it enters the material. It is very important to give the materials the right look. After studying the question, I learned that the IOR dentin is 1.540.
To emphasize the lower reflectivity values in the valleys, I added a cavity map to the shader and moved the “specular cavity” slider by 0.4. I left the Diffuse Cavity slider at zero, because my Albedo map already contained a fill of cavities in red.
Here is a comparison between refracted and specular models:
Advice : See the explanations of the specular reflection model in the video by Joe Wilson and Lee Denovald:
Physically the correct value of the mirror reflection for the skin is approximately 0.028. It was a good reference point for me.
For gums, I increased this figure to 0.07. Here you need to adhere to low values, otherwise the shader can create a metal effect. Make the result convincing can a small fresnel.
Do not get carried away with too large Fresnel values on wet materials, because this can lead to problems with surfaces turned to the other side of the camera.
Tip : here you can learn about the techniques realistic skin rendering in real time.
You can use different transparency modes to create convincing saliva in Toolbag.
For a perfect blend between teeth and gums, I used the Refraction with Dithering method. Here are the shader options:
The result obtained after using the described techniques:
- It is very important to use resources that at first appear to be unobvious. Scanning data is useful for studying anatomy.
- Spend enough time on the modeling phase and make sure the mesh is well read and has a solid structure at its core.
- Subscribe to blogs about your area of expertise. Find like-minded people and communicate with them!
It was a very exciting project. He still has “roughness,” but he became an excellent learning process on anatomy and materials.
A simplified model for your projects can be downloaded here
Thank you for reading! Hope this article was helpful.
About the Author
My name is Daniel Bauer
, I’m a 3D artist and specialize in organic modeling. I started my career in a small 2D-animation studio, where I met the magic of 3D modeling. Career path led me to solving problems such as shading and modeling for CGI in the automotive industry. In my free time I loved to do organic modeling and I continue to do it to this day.
While studying anatomy, I discovered that our teeth influence how other people perceive us. What began as a study gradually led me to the project presented in the article.
I wrote this article to show how I solved the tasks of the project, as well as to share useful tips.