Making Of 'Taho'
Taho has already been introduced on my web site in the Archives section which can be seen here. I was only a beginner in organic modelling at that time, using Surface and MeshSmooth modifiers with Max. :)
Always seeking new modelling techniques with Maya or Max using Surface, PatchSmooth, MeshSmooth, box modeling, edge modeling and so on, I must admit I was feeling frustrated with these techniques which I found long and tedious. It takes a long white to create something out of a cubeÂ ! :)
Then I watched a Gnomon DVD where Zack Petroc was introducing digital sculpting of a character using ZBrush 2.0 and I just loved it (click to see the introduction page of the DVD).
The idea is simple: we start with a very low poly mesh created in your favourite 3D package which we import in Zbrush. There, we sculpt the model and when we're pleased with the volumes we export the high poly model which we will use as a reference when modelling with the 3D package of your choice.
It's pretty much like having a 3D scan of a figurine.
The advantage is that it's quick to create (with time and practice of course), easily modified and it gives us a fully detailed volume as a reference to work on the mesh.
It's a more artistic approach, the technical side of the modelling being only the rework of the mesh.
I used this method with Taho and I am going to detail it here.
For this test, I started off with a very simple model created in a couple of minutes with Maya,
The model is exported as an OBJ file and imported into ZBrush. I work on the mesh with the Move tool to move vertices.
By activating the Mirror mode on the X axis we can work in a symmetrical manner on the model.
The model is subdivided once and we work on the shapes either with the Move tool or the sculpting tools such as Zadd (emboss), Zsub (engrave) etc.
Use the Smooth mode of the Draw tool to soften detailed areas.
When happy with the results, the model is exported to Maya to define selection sets.
With ZBrush it is of course possible to save user interface settings (Save UI) in the Preferences rollout but we can also set the 3D axis when importing/exporting to make sure the model is correctly oriented both in Maya and Zbrush.
Hit Store Config to save the settings.
Back in Maya we define areas on the model. This will allow us to hide these areas in Zbrush ; it can be really useful when sculpting a dense mesh which has been subdivided several times as it.
To highlight the areas I assign a material to them then in HyperShade I select each face group using "Select object in xxxx", "xxxx" being the name of the material.
I create a set for each selection. These sets can be exported in an OBJ file and are recognised by Zbrush.
Back in ZBrush, I import the model and ZBrush automatically recognises the sets and assigns a colour to each one (switch to Frame view to see them).
Ctrl+Shift+click isolates a set of faces and Ctrl+Shift+click outside the model unhides the whole mesh (for more information, check the ZScript on selection modes in the ZBrush documentation).
These areas can also be exported individually in an OBJ file. Here is part of the sculpted model imported in Maya,
To handle complicated models, you can add each part of the model into a layer.
How can we achieve the same results if our 3D package has no sets, like 3dsmax for instance? It is more tedious since you need to edit UVs of the object.
In the following example we will use a simple plane, UVs are separated into 3 groups and moved to three different UV spaces. A UV space is a zone which UV coordinates are contained in a 1 unit square. Here our 3 spaces are located at (u: 0,1 ; v: 0,1), (u: -1,0 ; v: 0,1) and (u: 0,1 ; v: -1,0).
Once the object is exported in an OBJ file and imported into Zbrush, go to Polygroups and enable UV Groups. Zbrush will assign a colour to each UV space it finds.
Selection modes work as described previously. This method works with Maya or any other 3D package as long as we edit UVs of the object but we might as well do it the easy way and use sets and avoid editing UVs. :)
The model has been subdivided 5 times; move to the next subdivision level only if you are happy with the volumes at the current level. Level 5 of subdivisions is a bit too detailed to rework the mesh and only level 4 is exported to Maya. It is too easy with Zbrush to get going with details.
It is possible to modify the model at a lower level as ZBrush will update the modifications at the higher subdivision levels.
One of the most interesting features of ZBrush is that we can re-import an object even though we have already started to add details, no matter at which level of subdivisions we're working. The advantage is that you can modify a mesh with your 3D package and update it with ZBrush even though you have already added details to it.
Zbrush has a variety of modifiers but it is sometimes easier to make these modifications in another package.
Example: I like the shape of the skull but I want to increase its volume. I can do that very quickly in Maya by applying a lattice modifier (FFD) and reimport the mesh in Zbrush. To achieve that you only need to export the model at subdivision level 1.
To make sure OBJ files are imported in Maya without altering the vertex table of the object you need to set Create Multiple Objects to false (default value is true).
If you don't do that, the model will be totally exploded at higher subdivision levels.
Level 1 is exported to Maya, the lattice modifier (FFD) is applied to deform the model where I want to and it's imported back into Zbrush at level 1. Subdivisions are increased to level 5 and we can see that the modifications are updated.
We can only modify the mesh, change selection sets or UVs etc but we cannot add polygons or vertices to the mesh otherwise the morphing won't work.
The details of Taho are now finished in Zbrush are we are ready to export to Maya to rework the mesh.
Why reworking the base mesh?
Details added in ZBrush, although interesting, are not adapted for animations or advanced rendering and so on. The low poly mesh was not detailed enough around the eyes and it is not looking very good now. To go any further with this model, we need to rework the mesh based on the one created with Zbrush.
Face groups imported in Maya. With this model is not really necessary but it is just to show you how it works for a full body for instance if it had more than 500Â 000 polygons. To rebuild the mesh, I use the Make Live function of Maya which makes vertices snap to a surface (vertices are literally glued to the surface and can only move on it). The problem is that Make Live makes the object transparent. It's not easy to see the volume we are recreating so after enabling this function I make a copy of the object which I use as a reference.
Another trick is to hide the layer containing the Make Live object as the function is still active even though the model is hidden and I can work with only one visible instance of Taho. The last trick is to scale down a little bit the reference object using the Move Component which moves the vertices along the normal vector. The new mesh is therefore always on top of the reference.
To rebuild the mesh, I start by creating new polygons based on the edge flow of the model. This can be compared to edge loops, the most important edges in a mesh for animation or textures for instance. Too bad Maya doesn't allow us to add colour to these particular edges.
Once the base mesh is created, we just need to add details to it. You can check the accuracy with the reference model by smoothing the model from times to times as you go along.
This method is interesting in that we see where we're heading and what results we want. We just have to worry about the mesh itself. It is not the case with other methods such as box or edge modelling, as we build the mesh by successive approximations (box modelling) or blindly (edge modelling) and we need to worry about the polygons AND the volume at the same time.
When the mesh is finished we get a first version of the model.
Although close enough to the reference, we can enhance it by moving vertices to have a more subtle geometry.
In order to do that, since the Smooth modifier of Maya is not particularly fast even with iteration set to 1, I convert the model to Subdivision Surface.And as if by magic, we can move vertices with the equivalent of a Smooth with iterations set to 2, even with a 1GHz CPU!
Displaying subdivisions not being as efficient as polygons, I use an instanced copy of the object which I move to another OpenGL window (Panel/Tear Off) with the ZBrush model as a reference too. I can then move vertices and see in realtime the result on a clean view. Of course it's much better with two screens as all recent 3D graphic cards have dual screen functionalities and with an LCD as second screen, no more excuses! :)
Once we have finished, we can convert the Subdivision Surface back to polygons (Tessellation Method/Vertex).
VoilÃ ! Reworking of the base mesh is over. We can now edit UVs and export the model to ZBrush again to add details for displace or bump maps. This test was a bit extreme if we consider the very basic low poly mesh or the final reworking of the base mesh which was very dense. But the aim of the test was to really try and reach the limits of this technique to see if we could go from one extreme to the other.
As a final word I would like to say this method allows to work on very complex models in a limited time, which could be disheartening with a more standard technique. The Zbrush phase is really a pleasure and reworking the base mesh is simple and quick.