Modelling the Klingon Warrior by Luiz (aka Legacy)A guide to the process of modelling an organic character model and some of the problems you can encounter, written by our modeller Luiz.
IntroductionFirst of all, modeling a low-poly character these days requires knowledge of certain techniques that make the result better looking and easier to animate. This reference will not teach the techniques themselves, but only show the main workflow through those. It will cover polygon modeling, digital sculpting, optimization, unwrapping and texturing. I'll try to make it as easy to follow as possible and include as many images as I can to help you understand what is been explained. Hope it makes for an enjoyable read.
Getting StartedWhen you intend to create a canon model, before you do anything you need to collect as many references as you can in order to understand all the details you'll have to cover. With Star Trek, that can prove as challenging as the modeling itself. Trek is filled with inconsistencies of all kinds. The appearance of the same object can totally change from one series to the next and in some cases from one episode to another, so you may need to either choose a specific reference to follow or compromise between two conflicting references. In the case of the Klingon uniform, it has changed a lot during the late movie period and the TNG period series and it's portrayed as two major versions.
Klingon references from The Next Generation.Whilst the difference between the two versions is only the chest area, it's something big enough to justify choosing between them. I decided to follow the Gowron style as it is more used during DS9 and gets more common in late TNG, although I still plan on making a port and doing the open collar that has been in use since TMP. With the style chosen I collected as much info as I could on the details of the uniform.
Klingon uniform references from The Next Generation and Deep Space Nine.Google makes that pretty easy when you know where to look.
Now to get our hands dirty.
Base MeshAs we are going to shape and detail the model through digital sculpting, the base mesh is more of a reference for proportions and polygon and loop placement rather than a real final mesh. There are several ways to create that model. As I'm a 3DS Max modeler, I did it through the basic modeling method on Max: polygon modeling. Also I like to make my models using the poly-by-poly method, which means I start with a small plane and then using poly editing and successive edge extruding I create the whole base mesh.
Here is a good tutorial on making a car using the poly-by-poly technique:
http://tutorial-z.com/EN/?p=89
Base mesh still lacking the headMy base mesh (on this render missing the head I've modeled it separately) reflects very closely the final shape I intend to give the model, having all the main proportions well-established.
I did this because I'm not 100% comfortable with shaping big massive chunks with the sculpting program I use, ZBrush. It's not a necessary step and it depends more on how you feel with the sculpting package than anything.
Also you may have noticed that this lacks any surface details. That is because I wanted all the superficial details to be done through normal maps and not be modeled in 3D. The balance between what can be done with the maps and what needs to be modeled is an argument that has been covered by modelers for many years. It's another choice that goes to the modeler first and the technique later.
Some tips are welcome during this process:
- Keep away the triangles. As we are going to sculpt the model and that implies we’ll be subdividing the model several times, triangles create artifacts.
- Star shaped 4 sided polygons also create artifacts in the same way.
- Complete loops are your friend. Although this mesh will not be used on the final model, if you have well placed edge loops those can be helpful for sculpting program masking, and if this mesh is close enough it can be optimized and become the final mesh itself after the detailing.
- Well placed loops on the face are even more important.
- It's also handy to separate the main areas of the body into different objects, so you can detail those separately and that way have more control of the sculpting.
- The smaller an individual object is, the more you can subdivide it in order to add more detail. Also, some areas require fewer subdivisions. Remember that even the most powerful computers have limitations on handling with huge amounts of faces, e.g. the Klingon final sculpt had more than 30 million ZBrush facets (as a ZBrush facet is a square, this may mean around 60 million triangles). No 3D program that deals with triangles would be able to manage that.
- Try to find the best balance between superficial details that can be covered with normal maps and details that need to be modeled. Keep in mind that the more complex a model is, the harder it is to handle with the sculpting package.
- You don’t really need to worry about polygon counts at this time, but if you want to you can try to keep this at a reasonable count, which can give you a good preview on how it'll look like when the optimization stage gets done.
Digital SculptingIn the past few years a new approach to 3d modeling has become more and more used. It’s called digital sculpting and seeks to bring the 3d modeling process closer to the real modeling with clay. There are a couple of packages that can deal with sculpting and they follow a similar workflow. The idea is to paint the deformation over ultra-subdivided meshes as you would mold a piece of clay with your hands. I work with ZBrush because I'm much more used to it, and because it does not approach the model in a real 3D mode, but in what is called 2.5D. I will not expand on the technical details of it, but it means that ZBrush can deal with much higher face counts than any other software I have dealt with.
After loading the base mesh we produced (which was exported through .obj) you start changing the mesh not using the faces, as you would do originally, but instead you work in areas of it, moving entire regions to fix proportions, changing the pose and detail. When you are satisfied with the level of detail you have achieved on a specific sub-object, you subdivide it again and continue adding finer details until you have the mesh subdivided enough to add micro-details such as surface textures and small bumps.
Sculpting the arm fur and boots.
Sculpting with the chest still left to do.
Sculpting the chest.There are several brushes you can use to achieve different results in the same way as a sculptor would use different kind of tools to create marks, lines and textures over the surfaces. I find myself using standard, smooth, flatten and clay a lot. Also, you can use alpha textures to “decal” the surface creating a specific pattern over the model. I also use the move tool along with transpose to move parts of the model if I want to get it posed.
Final sculpted model, hair plane off.During this detailing process I always bear in mind that the model will be detailed later on in Photoshop, so with some areas I keep a draft look that I can later upgrade. However, when talking about the surface of the model I try to make the “bumps” of the model as final as possible, leaving the photoshop detailing more to the colors and painting.
Sculpting hair is both hard with real clay and in a digital environment, especially when the final result must be low-poly, so I only made a placeholder with some sculpting to reflect the mass of the hair and the overall shape it should have later.
Painting on digital sculpting programs relies on coloring the faces, so to achieve a good result with the painting the model must be highly subdivided or you’ll end up seeing the pixels of the painting on both the model and in the exported textures. ZBrush is not a very powerful tool for painting so I try to cover the basic colors with it, making clear the seams of the final textures as well as the basic color that each texture should have.
Final sculpted model, painted.When the sculpting gets done and the model is all subdivided and painted, we need to be able to export the maps and the low poly mesh that will be our final product, but we have not included mapping coordinates in the base mesh, and in the same way the lowest subdivision model may not perfect fit into the subdivided mesh as the basic proportions of it may have changed during the sculpting and detailing of the model.
OptimizationIn order to have a base mesh that is suitable for the final result and that can use the maps generated, we need to import it back into our modeling package and optimize it until the model itself is final, and then unwrap it to generate the proper mapping coordinates. The newest version of ZBrush has a very good tool for unwrapping, called UVMaster, but I admit I don’t feel too comfortable with it because it does not offer the freedom to organize the unwrapped areas at the texture.Also, the base mesh for the Klingon that I imported into ZBrush had some inaccuracies that I fixed when sculpting, which were needed in my new base mesh. So, I picked the first subdivision of my base mesh and exported it back to .obj and imported the model into Max.
When I imported back the first subdivision, the model had a fairly high polygon count, which had to be optimized in order to achieve the final count I wanted. A good thing about using a model with a high count is that I could decide which areas I wanted to keep more detail on and which areas I thought should be less detailed.
As my base mesh had carefully placed edge loops, the optimization process consisted mostly of selecting and removing edge loops and collapsing some edge rings, reducing the amount of polygons used to define each area. As this model will not be subdivided anymore, there’s no big deal with using triangles, but still they make it harder to pick weights at the skinning process, so I tried to keep the quad faces as much as possible and used triangles only when they would not cause any major troubles with the modeling.
The optimal count for a final mesh varies depending on several factors, but something between 8,000 triangles to 15,000 triangles is fine and will run smoothly in most modern game engines without showing any faceted curves and weird shapes.The final count for the Klingon Warrior was just a bit over 8,000 polygons.
Base mesh, showing the wireframeAnother important note when optimizing is to keep the low-poly mesh encapsulated INSIDE the higher-poly mesh. That is because normal and displace maps work better if they measure the distance between the low-poly and the higher-poly model in a single direction.Also, face overlapping must be avoided at all costs as it will most surely create issues with the mapping.
UnwrappingAs most modelers can testify, unwrapping can very easily become the most frustrating part of modeling. However, a well done unwrapping and an organized final map can improve the final result of the model a lot and make any necessary adjustments needed in Photoshop change from a total nightmare to a walk in the park.
Organic shapes differ from ships as they need to take continuity of surfaces more into consideration than the original face proportions. This happens because the possible distortions caused by the change in the surface of the faces are much less visible than the texture map seam. If you need to do an adjustment in Photoshop (or any other image editing software) with the texture it’s very hard to avoid visible seams where the unwrapping of the model breaks up continuity. There are several packages that help with the unwrapping process and all of them give similar results, so it’s a matter of taste and which package you are more used to.
There are a couple of things you must pay attention to:
- Hide the unavoidable map seams where they are less visible.
- Where it’s possible to make areas symmetrical, map only half (arms, legs, hands, feet).
- Chest, pelvis, back and especially character faces usually do not look good when made symmetrical.Avoid it so you can create asymmetrical micro-details on those areas.
- Try to keep pixel consistency along all the model areas, which actually means to keep all the areas of the model with the same scale at the map. Exceptions can be created with important areas like faces and sometimes hands.
- Fill the texture space as much as you can. With a good placement of the model areas you can make each area use a bigger area of the texture in pixels and consequently give you more room to add details.
- Overlapping must be avoided at the unwrapping if you plan to use things like ambient occlusion, light baking and normal maps.
- Those maps are created by tools and are face dependant, which means that overlapping will create artifacts.
To do the Klingon I used a software called UV Layout 2, which has probably the least intuitive interface ever, but results in very clean unwraps that can be easily painted in Photoshop. Also, I've done the arms, boots and hands symmetrical, while keeping the chest, belt, collar and face complete to avoid any visible symmetry.
Klingon final unwrappings.Generating the Basic TexturesTexturing is probably the trickiest part of everything because the final look of the model depends entirely on how well the textures will be done, either by software or hand, and in both situations lots of tweaking will be required to get the final result to look good.The first step was to import the unwrapped model back into ZBrush to work as a base mesh for the textures that will be generated using the high-res mesh. It requires a new .obj file to be exported from Max after mapping and matching position, rotation and scale with the original base mesh that was created at the first modeling pass. The pieces of this model are then loaded as sub-tools in ZBrush, and using the "project" tool of the program all the deformation from the higher subdivisions were transferred to the new mesh, which contains the unwrapping and was optimized to be used directly in game.
Note: All those steps could be done straight away, if a more final already unwrapped model was imported to ZBrush before the detailing. However that would make it much more complex to do any structural change on the model proportions and/or volumes.
Diffuse colors exported from ZBrush.At this point we have the final model, unwrapped and with all the subdivision details applied to it, so we can start exporting the textures. From ZBrush I exported two textures: diffuse color and displacement.To export the diffuse color map, I converted the poly paint from the highest subdivision into a texture and then saved it as a tiff (a note must be made as ZBrush always saves the textures mirrored vertically). The displacement is generated from the lowest subdivision model and counts the height difference between this mesh and the highest subdivision and plots it into a grayscale which is handy to add volume to the objects. One thing to be considered is that when the lowest model is very low-poly you may end up seeing the edges protruding through the surface as happened with both the arms and boots of the Klingon model. A bump or normal map can be generated the same way, but the normal map generated by a program called xNormal is cleaner and deals better with the depth.
Displacement map exported from ZBrush.With those maps done, the highest subdivision objects were exported into .obj for xNormal, along with the original lowest subdivision .obj files. The highest subdivision models resulted in a huge object file due to the immense amount of faces in each object, but that's normal. For each object, the lowest subdivision model was loaded into xNormal and then the same done for the highest subdivision. The program then calculated the difference between the surfaces and generates a series of maps. For the Klingon I generated the normal map set and an occlusion map. Occlusion maps compute the regions where a part of the mesh comes close to another and darkens it, much like objects do in real life. This pass will help to add depth to the base color map.
Occlusion map generated from xNormal.Detailing the TexturesUnlike high-res images that benefit from lighting artifacts like GI (global illumination, shadows, and render occlusion), games need to have a lot of artifacts baked directly to the model to help it look better.
Taking a look at the diffuse map generated by ZBrush, it contains only the basic color information that was painted over the high-res model during the sculpting pass. It may look good on the ultra-detailed model, but it will look lacking if placed over a low-res model. It will also reflect any bad painting you may have done when poly painting the model, like areas of the objects that were occluded and may have slipped. As this is a simple image, it was imported to a painting program like Photoshop and several layers of corrections were applied to it, from color corrections to details added from photos.
The most visible changes done at the Klingon were:
- Applied the occlusion map as an overlay to the diffuse texturing adding depth and defining the shapes and volume. Also baking the basic shadows of the model.
- Same was done with the displacement map to add some highlights to it.
- Color correction was done to make the material colors closer to what was seen onscreen.
- Fabric texture was added to pants, hair and fur textures were added to the hair and arms and leather detailing was applied to the boots. Brushed metal was simulated by adding some patterns.
- Some facial details were detailed by painting, including skin.
- Added photorealistic eyes.
Final diffuse texture with ambient occlusion and textures applied.A transparency map was also created to add some transparency to the hair mass and help add depth to it. It consists of a simple grayscale, where white are the opaque areas and black are the transparent areas.Some games reflected the Klingon hairs as only a volume mass, but that felt wrong based on the references I had, so I decided to use the transparencies. If needed, opacity could be also added to other areas, but with the Klingon the model only required that with the hair, as all the other main details were modeled and bumped only.
Piece of the opacity map, showing the hair area.Whilst the diffuse coloring already gives a lot of details to the models (old games like Bridge Commander only used them for character models), when reacting to real-time lighting, models using only diffuse coloring look like the entire surface was made out of the same material. That makes it feel fake like a statue.To improve that, modern models use specular maps that make each area react to the light in a different way, creating the illusion that the 3D object is made from various materials, even when the areas are part of the same object.
They differ from engine to engine and between 3D render programs, but usually they work in a similar manner: lighter areas will have higher specular highlights and darker areas will have fewer highlights. Some engines deal with colors to make the highlighted areas colored, some don't. The definition of how polished a surface is called glossiness in 3D, and some engines deal with it along with speculars, some only make all objects act the same way.There are even some that read the glossiness from the exporting 3d program.
There's no "rule of thumb" for making speculars but some guidelines are useful:
- Metals should be lighter and present higher specular effects, while fur should be darker.
- Glossy fabrics like leather or vinyl should have high speculars.
- Volumes can improve their effects by making the speculars reflect the occlusion in them.
- It's a common technique to make skin reflect dark blue instead of the base color. That's because dark blue is the complementary color to the usual skin tone, and that creates an interesting effect between the highlighted areas and the shaded ones.
- Baked visible shadows should be avoided when possible.
Final specular map.Normal MapsThe normal maps are the most complex part of the tweaking because they cannot be painted directly. Usually the result you get from the generating programs is very close to what needs to be shown in the final product but that depends a bit on the sculpting skills, and if you are planning to add details later to the model. As I've added a lot during the post process, I had to add it to the normal maps aswell.
First thing was to pick up the various parts generated by xNormal and put all of them in a single map. Then I transferred some of the details created in the diffuse to this map, and created a depth map (bump) from it. Finally, using xNormal tools, I transformed the details into a normal map. The rest was just to overlay the new details on the base map, either using overlay or opacity to blend the two things.
Another important thing to keep in mind when doing normal map is that there's not a standard yet on how they are setup. Some programs will generate the normals with the green channel inverted, some with the red one inverted. Also, some renderers will read those as inverted and some won’t. It's a matter of getting a normal map loaded in the engine renderer that is planned to be used and test it in both situations. Normals with inverted axis will look odd when the lighting moves over the surface.
Chest object normal map, as exported from xNormal.
Final normal map with all photoshop adjustments.Final LookThe steps described above, especially the ones referring to the textures were repeated several times when making this model. The facial model was scrapped and restarted at least two times, so keep in mind that to achieve a good result may take time and a lot of practice. It’s different from Ship modeling where you can rely on primitives. Organic modeling is very complex and requires much more attention.
My first attemptfor the "final look" of the Klingon character ended up with a very athletic and inaccurate character. Fact is that I started my model based on medium human proportions, whilst Klingons since The Next Generation have been seen as slightly fat and big warriors, so a final revision of the proportions had to be done. It was not easy to tweak that without breaking the unwrapping of the basic model, but in the end it could be done as the model had correct edge loops on most of the surface.
Before taking the beauty renders, one thing I like to do is use the Max viewport features to showcase the normal maps of the model at real-time and check if anything needs a final retouch.
Max viewport capture, showing the normal and specular maps only.After the model is complete, a good rigging is required to pose the character and to export it to any working engine (this is yet to be done, as the model so far has only a temporary rig).
Final model, max render.
Final model, beauty render.
Final model, beauty render.