A Thorough Introduction to ZBrush's FiberMesh
One of the most powerful additions to ZBrush in recent memory, FiberMesh builds on a growing list of amazing features, and adds the ability to create realistic hair, fur, and other fiber based meshes directly within ZBrush with an unprecedented amount of control. That level of control comes at a price though, and you'll be faced with numerous settings, sliders and curves when you fire it up for the first time. So where do you start, and how do you know which settings to manipulate to achieve the results you're after?
In this tutorial, Nacho Riesco will introduce you FiberMesh and give you a detailed explanation of every single setting. You'll learn where everything is, what it does, and how best to utilize it to fit your needs.
You'll then put your knowledge to use with a particle example, as you create a coat of fur for an awesome, funny furry character and render him in Keyshot. By the end of this lesson, you will have gained a good fundamental understanding of FiberMesh's capabilities and be able to start working with it on your own.
The following assets were used during the production of this tutorial.
1. Creating the Base Mesh
To block out the overall shape, ZSpheres are very useful to generate full body meshes, so here you can see how they are distributed to create our character's base mesh.
Once you're happy with it, go to Tool > Adaptive Skin, and click on the Make Adaptive Skin button to generate the Polymesh 3D.
Now the new mesh appears on the Tool shelf as Skin_ZSphere, at this point we can rename the tool by going to Tool > Subtool > Rename.
Using the Move Brush, we will make some adjustments to the anatomy, increasing the proportions of the neck and belly.
Now, we will change the topology using the ZRemesher function, so go to Tools > Geometry > ZRemesher, and with the default settings as they are, hit the ZRemesher button.
And this is what we will get. The right side of the image shows how the polygons have been reorganized.
To polish the mesh, go to Tool > Deformation > Polish, and apply a bit of polishing. But take care to not do it too sharply.
2. Sculpting the Face
To begin sculpting the character's face. First, paint a mask on the facial area, and then invert it, by Control-Left Clicking on the Canvas. Next using the Short Cut Control-W, we will create a new Polygroup based on the masked area.
To isolate the Polygroup for the face, use the short cut Control-Shift and Left Click on that polygon area.
Now go to Tool > Geometry > Divide (or use the short cut Control-D), to subdivide the Polygroup and create a smoother surface to sculpt the face on. Doing this we keep the rest of the body mesh at a lower resolution, which is easier to handle and play with, and will help reduce the total polygons when adding FiberMesh.
Next, to sculpt the eye cavities, we will paint a mask using the Mask Circle option. To make the circle proportional, check that the Square button is active, and to draw the circle from the center to the outside, activate the Center button.
Also check that the Symmetry on the X axis is active (Transform > Activate Symmetry > X), to draw both sides of the mask at the same time.
Once the circle masks are painted, invert them by Control-Left Clicking on the canvas. Now go to Tool > Deformation > Size, unmark the X and Y axes and active Z, Then apply a negative deformation to create the cavities.
Now using the Smooth Brush by holding down the Shift key on the model, smooth the area a bit.
To start sculpting the eyeball, select the Sphere 3D mesh. After converting it to a PolyMesh 3D, turn on Move mode (W), and while holding down the Control key, extend a topological mask around one of the poles, to isolate the iris.
Next, invert the mask by Control-Left Clicking on the canvas, and go to Tool > Deformation > Size, and apply a deformation on all the axes, as shown.
Once done, go to Tool > Geometry > Divide, and add more subdivision levels to the geometry to make the surface smoother.
Duplicate the tool by pressing the Duplicate button on the SubTool Menu. Then go to the Deformation Menu and mirror the tool on the X axis, by clicking on the Mirror button with the X axis active.
To add the cornea, which we will render transparent on the final render to achieve the eye reflection. Append another Sphere 3D, Scale it, and place it covering the previous sphere (the eye) as shown.
For the mouth, start drawing a mask over the upper lip, by holding Control and painting on the surface. Next, pick the Move Brush and pull up the lower lip as shown. Now using the Clay Buildup Brush , sculpt the lips and chin.
With the Move Brush again, shape the eyebrows and cheeks around the eyes. Also push the frown forward.
Next, by picking the Pinch Brush, sharpen the eyebrow lines. With the Dam Standard Brush and Zadd active, sculpt the forms of the chin. And with Zsub active, remark the lip depression.
To make the facial expression, we can use layers to better adjust it to what we like. So go to Tool > Layers, and create a new layer by clicking on the + (Plus) button. And then using the Move Brush, with symmetry disabled, sculpt the desired grimace.
Once we have given him some personality, the next step will be to relax the pose, to give him life.
Using masks (I prefer to use the MaskLasso option). Mask over the area to pose, and then invert the mask so you can move or rotate it, using the Move or Rotate tools. First we will start by posing only the arms. Rotate mode works better for posing than Move mode, so use it last to make final adjustments only. One important thing to remember about posing, is how you place the Action Line, so try to adjust the pivot point well, to get good polygon stretching.
To pose the head, it will be necessary to use the Transpose Master Plugin to pose the body mesh, the eyes, and the corneas at the same time. So, got to Zplugin > Transpose Master, and hit the TPoseMesh button. This will generate a unique mesh composed of all visible subtools, at their lowest geometry subdivision level. Once this is done, pose the head and when ready, hit the TPose > SubT button to get back to the original subtool's organization.
Now he's ready to move onto the FiberMesh part.
4. FiberMesh Settings
FiberMesh is applied over masked areas. So, as we made in Step 1 of the Sculpting the Face section, select the face using the short cut Control-Shift on that area. Then Control-Left Click on the Canvas to mask all. Next, Invert the mask as was shown in the previous steps. Now we have the whole body masked.
Then, go to Tool > Fibermesh > Preview to help visualize the fibers. Now... let's get started and play with them!
To visualize the Fibers with complete shading, press the BPR button. This will render your FiberMesh with real geometry and shading information. But before accepting them, we will work in a visualization mode. In it, we can set all the parameters to give the fibers their shape, length, etc... before proceeding to convert them into sculpt-able geometry.
With the Preview button active, all the settings are displayed under the Modifiers menu.
Before continuing, let's change the default colors to improve the visualization. Later we will learn how to set up colors and textures, but for now, just go to the color pickers and click on them to change the color of tip and base, to a lighter grey.
So, let's start viewing all the settings we can find. The first, is the Max Fibers slider. With it we can control the number of fibers spread on the surface (it is measured in units of a thousand.) You can see the effect with three different settings, 5 (5 thousand), 50 and 300.
Beside most of the sliders we can see smaller ones. These mini sliders are used to add variation to the main effect. It works as a factor to achieve more randomized results.
Next, there are two sliders: By Mask and By Area. We can distribute fibers based on the mask intensity by adjusting the By Mask slider. This works when we have blurred mask edges, and we want the fibers to have more density on the darker mask areas, than on the lighter ones. With the By Area slider, we can apply fibers based on the polygon's shape, bigger polygons will produce larger and longer fibers, than the smaller ones.
The Imbed slider controls how deep, regarding surface, the fibers will be placed. By default, the surface value will be 0, negative values will keep the fibers away from surface, and positive values will imbed the fibers into the surface.
The Length slider controls the fibers length.
For additional control, some of the parameters have a curve option, which gives us more freedom to achieve additional results. These are mentioned as "Profile" or "Radius". To add extra points to a curve, just click on the curve. To remove points, grab the point and drag and drop it outside of the Curve window. To control the effect of a point, increase or decrease the orange circle that surrounds it.
The Length Profile Curve, controls how the segments are located throughout the fiber's length. Later we will see how to add more segments to our fibers, but by default, ZBrush creates three fiber segments. In the picture below you can see that by adjusting the curve's shape, segments are placed at end or at the beginning of the fiber.
The Coverage slider, controls the width of the fibers. You'll notice that, at this point, the fibers are like ribbons, they haven't got any volume. Later, we will learn how we can add polygons to create three-dimensional fibers.
The Width Profile Curve controls the shape of the fiber, based on its width. We can adjust the curve to get many different results. In the picture below we can see how by adjusting the curve points, the fibers become wider or narrower at the end or at the beginning.
The Scale Root slider controls the size of the fiber's base. Changes here affect the first fiber segment.
The Scale Tip slider controls the size of the fiber's tip. Changes here affect the last fiber segment.
Slim defines the ratio between the width and height of the fiber section. Negative values flatten the fiber’s width, while positive values flatten its depth. Before moving onto the next slider, it will be necessary to go down to the Segments slider. Segments are the number of divisions a fiber has, by default it has three. If we increase that number, we will create more subdivisions within the fiber, which will allow us to get more natural falloffs, shapes, etc.
The next slider we find is Revolve Rate. This adjustment changes the behavior of the fibers along their length, giving them a zigzag look as shown.
The Revolve Radius Curve controls where we want to apply the revolve, at the beginning or at the end of fiber.
The Twist slider controls the fibers twisting as shown. To get more randomized effects, it's good to combine Revolve, Twist, and adjust the Revolve Radius Curve.
The Gravity slider controls how gravity is applied to the fibers. Positive values will cause them to fall/droop down, and negative ones will make them grow upwards.
The direction of the gravity is controlled by the position of the model itself, relative to the canvas working plane. In the picture below, you can see how it changes based on the position of the model. It’s important to first set your model’s orientation before setting up, or updating the Gravity value.
With the Gravity Profile Curve we can control at which point along the fiber we want to apply gravity.
The Horizontal and Vertical Tangent (HTangent and VTangent) sliders alter the direction of the fiber, by changing the Normal value of the support mesh in a vertical or horizontal direction. These settings are primarily used for generating fibers on top of a FiberMesh SubTool. Both settings can be helpful to create feather-like fibers, by combining a fiber on top of an existing FiberMesh. As this setting uses the polygon and the vertex order of the support mesh, it works better with FiberMesh objects, than on normal meshes.
The Clumps slider attracts the tips of the fibers together when grown from the same support polygon. Moving this slider to a negative value, will separate the tips.
The Base and Tip Colors, modify the color of the fibers using the color selected in the corresponding color patch. Also there is a Color Profile Curve, which can be used to achieve more effects.
We can add textures to fiber's geometry with the Texture selector. Turning on the Transparent button, means the black areas will be considered transparent.
The Ht and Vt sliders will give us the possibility to repeat the texture on a vertical or horizontal plane.
As mentioned in the previous steps, with the Segments slider we can control the number of segments each fiber has. The more segments we add, the more polygons the resulting fiber tool will have. So try to control this number and keep it as low as possible to avoid heavy meshes.
Profile defines the number of sides for each fiber. The default value is 1, which will create a strip of one sided flat polygons. Increasing the value to 3 or 4 will create a triangle shaped fiber that is capped off at the end. Increasing this value to higher numbers will create rounded fiber sections, but it will also drastically increase the FiberMesh polygon count.
It is better to keep this value at 1 and use the BPR Render options when creating fibers that are intended for hair, fur, fabrics for clothing, etc. Only use Profile when you are going to be exporting your FiberMesh.
When the value is adjusted higher than 1. ZBrush will warn us that we can alternately use the BPR. With this option, we will be handling fake geometry during the sculpting process instead of real geometry, and by using BPR, we can check what its final aspect will be. To control this, we can adjust the Sides setting, located in the BPR Settings sub-palette to increase the number of sides.
Subdivision defines the number of times each fiber should be subdivided at render time.
The Radius slider increases the radius of the fibers when they are rendered, giving them volume without needing to increase the amount of actual geometry.
5. Character Settings
Now, let's adjust the fiber settings for our character. In the following steps you'll find all the settings and see how they look. And in the assets folder (which can be downloaded at the top of this page), you will find all the ZFP files for each group of fibers. So let's go to the styling salon!
First, let's create the base hair. Once your are happy with your fiber settings, click on the Accept button, and you'll have those fibers appended as a new Subtool in the SubTool Menu. So, the workflow on all steps, will be to adjust all the sliders and curves, and then accept them.
In this picture you can see a zoom of the fibers without the BPR render, and the main image is rendered with BPR.
We will add an extra fibers group over the whole body. But this time, we'll use a lower quantity and make them a bit longer, to achieve a loose and disheveled look.
On the ears, antennas or whatever... We will add a crazy, long haired layer. Increasing the Length and playing with the Revolve slider to achieve it.
Now it's time for the eyebrows and a goat beard...
Uhhmm, I think he would look better with a denser beard...
Well, he is ready, handsome... isn't it? Ready for the rendering part.
6. Keyshot Rendering
Before going into Keyshot it will be necessary to export the model from ZBrush as an .OBJ file. To do that, I use the Subtool Master Plugin to merge all the subtools, once they're merged it's ready to be exported.
Open Keyshot and go to File > Open to load the model. The following window will appear, in the Advanced section, check on the Keep Individual Parts box, then click OK.
The character will appear in the Keyshot 3D space. To place it properly, use the Right mouse button and select the Move Object option (a small menu will show up with the necessary options.)
As an example, I exported the body hair fibers with a Profile of 4 faces. In the picture below, you can see how the geometry changes from a setting of 1 to 4. I left the Profile at 1, to have a lower polycount.
In the Project menu, you'll find the Scene tab, there you can make quick selections of each part of the model. To add different materials and colors to each part, first it is necessary to unlink one from another. Selecting a part from the list, a orange/red profile line will show us which part we are working on. To unlink it, Right Click and select the Unlink Material option.
Now we start assigning materials from the Material Tab. As there are many parts with the same material, we can copy and paste it form one to another, using the Right Click menu. On the Material Tab we can change its color, here I applied different colors onto each part of the hair to enhance the finishing.
Notice that the cornea part of the eye is not shown. To hide one part of the model, Right Click while over the desired part, and select the Hide Part option. To show it again, use the Show option.
Next, we'll add the iris texture to the eyes. Double Right Clicking on the eye will guide us directly to the Material Tab. Once there, go to the Labels Tab and add the iris texture by clicking on the + (Plus) sign. In the Mapping, Type section, choose the Planar Z option from the list and scale it down with the Scale slider. To put it in place, click on the Position button and use the mouse cursor. Once placed, deactivate the Position button again.
To apply the iris texture onto the other eye, first Unlink the material following the steps shown below. Once the material is unlinked, repeat the previous step.
Now show the cornea part (as we learned how to do in Step 3), and apply the Glass Basic White material to it. To apply a material to a part, just drag and drop the material from the list onto the object.
Another way to show and hide parts is in the Scene list, by checking or unchecking the box. Now, as it's necessary to change the position of the eyes, we need to Hide the corneas first.
Then go the Move Part option and select Rotate mode, a gyro tool will allow us to rotate the necessary part. As the character is slightly turned to the right, we have to re-adjust his look.
Once all the materials are assigned and the character is in the right position, we will adjust the HDRI environment light. In the Library Menu, go to the Environment Tab. I chose the Forestroad image, since it has nice and natural outdoor lighting.
Finally, hide the HDRI image as the background and replace it with a light grey color, by selecting the Color option in the Background section. You can also change the light direction using the Rotation wheel. The rest of the settings are shown in the following picture.
To render the scene, go to the Render menu (or use Control-P), and adjust the output image size and the quality settings. Mainly the Antialiasing slider.
And we are done! In this tutorial we have learned how FiberMesh can be controlled and applied in multiple ways. And how it's powerful features can be utilized to add fur to a character.