Crafting A Detailed 'Next-Gen Boiler' - Part 5 Baking Maps
In part five, you'll learn how to up-res the low poly model in preparation for map baking and how Zbrush can be used in conjunction with Maya to add addition detail and damage to the high-res model, an important step in creating detailed normal maps. Shray will also show you how to setup, bake and combine Normal and Ambient Occlusion maps using xNormal and how to construct the model's shader back in Maya.
In this tutorial I'll show you how to create a next-gen, game model of an old weathered Boiler, with the help of only one black & white reference image. The tutorial will cover the entire process from Low poly Modeling to High poly Modeling, UV mapping, Textures baking (i.e Normal and Occlusion maps) and Diffuse Texturing. Finally we'll be applying Xoliul's shader in Maya for realtime rendering of the model.
Additional Files/ Plugins:
Now we have to make the entire model High-res to generate our normal map with all the smoothing. So before starting, make a duplicate copy of all the meshes and keep them in a group named "High Poly" so that you'll have your Low poly model intact.
We'll start with the small nut and bolts first by adding supporting edges around the sharp edges using the "Insert Edge Loop Tool" (1.) The we'll add some extra details that are not in our Low poly model to get very good normal map details (2-3.) Now just adding details to the bolt by using "Bevel Edge" on the corner edge loop (4.)
Now as we have the supporting edges there now, just combine the two separate meshes together and change it's "Pivot" to the center of main cylinder shape (1-3.) Then select the rest of the low poly bolts and delete them, so that we now have only our high poly bolt. We can then replace the low poly bolts by duplicating and rotating the high-poly bolt at a discrete angle of 10 degrees (4.)
Now copy the same bolt shape and place it over the second set of bolts (1) and set it's "Pivot" to the center again (2.) Then replace the low poly bolts by duplicating and rotating it at a discrete angle of 10 degrees.
Now we'll add supporting edges to the main boiler shape. Select these 2 edge loops (1) and then "Bevel Edge" (2.) And then clean up the edges (3-4.)
Now using the same procedure, we'll add supporting edges to all the sharp edges on all the elements (1-2.) And then select all these elements and "Combine" them (3-4.)
Now select just the Boiler portion of the model and "Export" it as an OBJ, and name it "Boiler". This way we're splitting the whole thing into three parts (1-2.) That way it will be easier for us to add details and then extract the normal and occlusion maps.
So now we'll have three OBJs (the Boiler, Boiler_Base and Boiler_Motors.) Then go to ZBrush and click "Import" and select the "Boiler.obj" we just exported. This will bring up another dialogue box. Select "Quads and Triangles" and it will convert the polygons into quads and triangles only (3-4.) Using the same method, Import all three of the OBJs as Subtools.
Now in Zbrush select the "Boiler" subtool and under the "Geometry" tab, press "Divide" around 4 times to get it to 4 "Subdivision Levels".
Now select the "Clay" brush and start sculpting over the edges by pressing "Alt+Click" to create dent type shapes.
Now using the same brush and the "Alt" key, add these denting details to the corner edges to give the mesh a little worn out feel.
Some more detailing over the edges using the same brush to give them the same treatment, to make it look aged.
Now select the base under the Subtools menu, and press"Alt" on it so that only the base will be visible in the viewport (1-3.) And then we can start focusing on the areas where detailing is required for a good normal map (3.)
Again using the same "Clay" brush while pressing and holding "Alt", create dents at the corners. Also add them on the walls too, like some bigger dents.
Now we'll use the "Pinch" brush to sharpen the edges of our dents, and to refine the details.
Now use the "Nudge" brush and try to create the look of damaged cement for it.
We can always follow the reference, and using the same brushes and techniques give them this worn out feel.
Now back in Maya we'll make the High-res model of the motor. First we'll create a simple Cube, to create a grill for the motor (1.) Then using "Bevel Edges" add all the necessary supporting edges, and finally place the cube so it's facing at a certain angle (2-3.)
Now select this cube and set it's pivot to the center of the motor, and then by duplicating it multiple times and using proper placement, make a surrounding grill.
Now as we've completed the placement properly, we can check the result by just pressing "3" for a high subdiv level (1-2.) For the front extrusion and again using the "Insert Edge Loop Tool" add supporting edges (3-4), and we're done with the main motor.
Now for the rest of the small pipes the same technique was used to add supporting edges, and finally the smooth preview of all the meshes.
Now we'll move towards the maps generation process (Normal map and Ambient occlusion Map) using Maya and xNormal So for that we first have to remove any kind of overlapping from our UVs to avoid the artifacts that overlapping causes. So for that just go in the UV shaded mode to identify the overlapping and then just place the overlapped ones outside of the "0 to 1" space. Now go on and start importing the High Poly meshes that we have exported from Z-brush".
Now with the import window opened, select "Boiler_Base_High" (this is the naming conventions that I have used, it is always advisory to use proper naming conventions), and it will import the high res mesh. Repeat the same process for the main boiler.
Now first go to Polygons>Rendering that will change the options tabs from polygon modeling to rendering (1.) And then for Normal map generation go to Lighting/Shading>Transfer maps... (2.)
Now under the new opened window, first select "Normal map" (1) and it will add all the options related to a normal map. Then change the File format to "TGA" and Map space to "Tangent Space". Then under "Maya Common Output" change the "Map Width/Height to 1024. Set Transfer in to "World Space" and the Sampling quality to "High" keep all the rest at the defaults (2.)
Under the final tab "Advanced Options", change the Search method to "Closest to Envelop", and the Max search Depth to 30% and Match Using to "Geometry Normals" (3.) And then finally browse to the path where you want to save the Normal map (4.)
After the normal mao generation maya will automatically connect the Normal Map to a shader and applies it to the mesh, so here is our result which is actually having some artifacts but it is due to non overlapped UVs that are lying outside "0 to 1" space, so for that either we can match the UVs again or we could go back to a previous version of mesh from incremental saves where UVs are intact.And following the same procedure of steps from 20-23 we can generate the normal map for Main Boiler.
Now start xNormal and Select the "High definition meshes" tab from the side panel, and then in the main window Right-click > Add meshes (1) and add our three high res meshes. Out of the three select the one for which we want the occlusion map (Boiler_High.obj in this case)(2.) Then select the next tab "Low definition meshes" from the side panel, and add our Low-res meshes to the main window (3.)
Now under the main window select only the "Boiler.obj" (1), and then go to the "Baking options" tab from the side panel. Change the Size to 1024x1024, Edge Padding to 4, Bucket Size to 16 and Antialiasing to 4x (2.)
Under "Maps to render" select "Ambient Occlusion" and then select the options box of "Ambient Occlusion". In the opened Options window, change the Rays to 128 (3.) And after finishing all the settings hit the "Generate Maps" button.
And by using the same procedure, generate all three Ambient occlusion maps.
Now before creating the basic shaders in Maya just combine all three different textures into one map. Then in Maya go to Windows>Hypershade to open the new window, and then click on "Blinn" material (1) and it will create a new material Select the blinn material and click on the "Color" attribute's options box (2), and then in the new opened window, select "File" (3.)
Now Select the newly created "File" node and browse to the occlusion texture under "Image Name" (1.) Then select the Blinn material again and this time click on the "Bump Mapping" options box (2) to apply our normal map, in the newly opened window go to Utilities>Bump 2d (3.)
Now select the new node "Bump 2d" and change it's "Use as" to Tangent Space normals (1), so that it can generate the results based on our normal map output. Then click on the "Bump Value" options box to call the image texture (2), and in the new window select "File" and browse for the Normal map image (3), same as occlusion.
You'll now have this node network for the blinn material (1), so select our low poly mesh and then Press and Hold the Right Mouse Button. Under the pop up options menu, select "Assign Material to Selection" (2) and it will assign the material to the low poly mesh. And this will be the result (3.)
Just go into "High quality" viewport mode to view your final result with both maps applied.
And here is our Low poly model, with the Normal and Occlusion Maps baked and applied.
This concludes part 5!
- Creating a Next-Gen Video Game Hot Rod: the Complete Workflow
- Next-Gen Weapon Creation – Day 1: The High-Poly Model
- How to Create a Video Game Dumpster: The Complete Current-Gen Workflow
- Project Workflow: Creating a Next-Gen Sci-Fi Prop
- Next-Gen Armored Car – Tuts+ Premium Tutorial