Below are the two textures covered in this tutorial. They each use different methods to achieve the tiling in a high poly mesh which can be reused to create lowpoly models, seamless bakes using xNormal, and even rearranged to create new companion textures.
Lets Get Started!!!
ROCK:
Blockout:
We're going to start out in Max, where we will be establishing our scale. Here, I've created a box that is 512 x 512 x 64 (x,y,z) units. The important thing to remember here is that the x and y values are the same. From the top orthographic viewport, the box should be perfectly square. Once this is done, lets export the mesh as an .obj, with the standard settings. Once exported, create a second plane that is half the x and y values of the box; this will be our guide. In the example below, the box is 512 x 512 so our guide should be 256 x 256. Both the box and the guide should share the same x and y position.
We're going to start out in Max, where we will be establishing our scale. Here, I've created a box that is 512 x 512 x 64 (x,y,z) units. The important thing to remember here is that the x and y values are the same. From the top orthographic viewport, the box should be perfectly square. Once this is done, lets export the mesh as an .obj, with the standard settings. Once exported, create a second plane that is half the x and y values of the box; this will be our guide. In the example below, the box is 512 x 512 so our guide should be 256 x 256. Both the box and the guide should share the same x and y position.
A Quick (and I mean quick) ZBrush GUI Overview
Getting Ready to Sculpt
Once in Zbrush, import our box and our guide into the scene. Go ahead and subdivide the box without smoothing to preserve the crisp edges of our mesh. Lets subdivide until we've reached approximately 250k polys. We're going to leave the guide untouched (feel free to hide it if it's in the way).
Once in Zbrush, import our box and our guide into the scene. Go ahead and subdivide the box without smoothing to preserve the crisp edges of our mesh. Lets subdivide until we've reached approximately 250k polys. We're going to leave the guide untouched (feel free to hide it if it's in the way).
Next, lets set up our brush so it will tile for us. Select the brush you'd like to tile and open the brushes drop-down menu located at the top of the ZBrush GUI.
As you can see here, the brush will now tile as you sculpt on the mesh.
NOTE: The wrapMode modifier that we changed to '2' is unique to the brush selected. If you'd like to switch to a new brush to sculpt with, simply repeat the steps to adjust the wrapMode modifier to '2.' (Unfortunately the pinch brush will not work with this method)
This wrapMode modifier is what makes this method work. Using our guide to frame to, and switching the matCap to the normal map matCap, we can export a test normal map whenever we'd like.
Some useful brushes tools/tricks for making rocks: Brushes:
ClayTubes/ClayBuildUp - for volume/basic shape
TrimDynamic/Flatten - for roughing up edges and knocking back detail.
MalletFast - for getting a layered effect and gouges
TrimSmoothBorder - getting sharp edges and flat areas.
InsertMultiMesh - adding pebbles and other debris.
Tools:
Dynamesh - with polish turned on.
Trick: Try using an alpha when using TrimDynamic, Flatten, or TrimSmoothBorder.
Trick - standard Brush with drag select on and an alpha.
Bricks:
Blockout:
Iets start this second texture in Max also. This one is going to need a bit of extra set up in Max before we make it over to ZBrush. To begin, lets make a guide plane. This will represent our tiling region in ZBrush in the same way as the rock tutorial. For this texture, I decided to start with a plane that is 100 x 100 centimeters. Again, the important thing to remember is once you determine the scale, it is crucial to stick to it.
Iets start this second texture in Max also. This one is going to need a bit of extra set up in Max before we make it over to ZBrush. To begin, lets make a guide plane. This will represent our tiling region in ZBrush in the same way as the rock tutorial. For this texture, I decided to start with a plane that is 100 x 100 centimeters. Again, the important thing to remember is once you determine the scale, it is crucial to stick to it.
Once the scale has been established, I applied a standard material to the plane with a pattern derived from a quick concept by Chris Anderson.
Once the bricks were all blocked in with the boxes, I created a second plane (this one should be at least the size of the guide or larger) which will become the grout of the brick texture. Export everything at once as an .obj; all of the standard export settings will be fine.
Getting ready to Sculpt
Now lets open ZBrush and import our bricks. To make things a bit easier to work with, let separate each brick into it own subtool. To do this, open up the subtool menu located in the tools panel (docked on the right-hand-side the ZBrush GUI by default).
Now lets open ZBrush and import our bricks. To make things a bit easier to work with, let separate each brick into it own subtool. To do this, open up the subtool menu located in the tools panel (docked on the right-hand-side the ZBrush GUI by default).
Now each brick should be able to be divided sufficiently without breaking ZBrush (1-2 million polys should be good depending on the object's size in relation the texture size). Lets isolate one brick and begin sculpting. To quickly isolate a subtool, select it in the subtool menu then click the eye icon just to the right of that subtool.
Now that we have a brick isolated, lets turn on dynamesh. For this first brick, we'll have to do a bit of experimenting to find the right resolution value to set so we get enough polys to work with. Start low so Zbrush dont choke and die when it tries to dynamesh something to 10+ million polys. I've figured out that for my scale, 2048 is a good resolution to go with: it will subdivide this brick only to around 190k polys (more than enough for getting the basic shapes in).
Sculpt Away
Now that our brick has enough resolution, its time to start sculpting. I used the flatten brush with the intensity turned all the way up to beat up the edges quickly. TrimDynamic is also a good brush for this job. It has a little bit of a different feel when sculpting and is not as strong as the flatten brush can get. If you get into a situation where you think you've gone too far flattening the edge of the brick, you can always recover the edge using the TrimSmoothBorder brush (or using the morph target tool if you've set that up). I did this phase to all of the bricks before moving on to the phase 2 sculpting. Here is the brick at the end of this phase 1 sculpting:
Now that our brick has enough resolution, its time to start sculpting. I used the flatten brush with the intensity turned all the way up to beat up the edges quickly. TrimDynamic is also a good brush for this job. It has a little bit of a different feel when sculpting and is not as strong as the flatten brush can get. If you get into a situation where you think you've gone too far flattening the edge of the brick, you can always recover the edge using the TrimSmoothBorder brush (or using the morph target tool if you've set that up). I did this phase to all of the bricks before moving on to the phase 2 sculpting. Here is the brick at the end of this phase 1 sculpting:
Phase 2 sculpting for this brick texture included adding noise (in two different steps), knocking it back a bit with the TrimDynamic brush, then adding some cracks and small details by hand. After this step, the sculpt was ready to begin the process for export and baking.
Before applying the noise to the bricks, I turned off dynamesh and subdivided the bricks the old way (cntrl+d). I did this twice to each brick to ensure I had enough resolution to add the noise (between 300k and 1 milllion polys seemed like a good number depending on the size of the brick relative to the size of the guide which for me represents a 1024 texture map).
The first noise i applied to the mesh was a subtle high frequency noise to the entire brick.
The second noise i use was larger in scale and a bit more random.
Now, using the TrimDynamic brush, knock back some of the noise and get some really cool shapes on the surface of the bricks.
The second noise i use was larger in scale and a bit more random.
Now, using the TrimDynamic brush, knock back some of the noise and get some really cool shapes on the surface of the bricks.
The next and final step in the sculpting of these bricks is to add some cracks. Some people like the brush Dam_Standard to make cracks with. I prefer to use a brush I found online called orb_crack. I think you can get much faster, better looking cracks than using the Dam_Standard brush. Either one you choose, using the pinch brush in combination with the crack brush should get you some good results. Here is what my bricked looked like after adding cracks with the orb_crack brush and the pinch brush.
Now repeat this process to all of the bricks and you'll end up with something close to this:
Lastly, sculpt in some grout on a subdivided plane.
How to get the baked maps out of ZBrush.
Setting Up the Document
First, lets resize the ZBrush canvas (document) to be a square. I like to work at double resolution when baking so I keep my document size at 2048x2048. To change the document size, locate the "document" tab at the top of the ZBrush GUI. Click on it and you'll get this popup. Make sure the button labeled "Pro" is not highlighted and change the width and height to 2048. To commit these changes, click resize just below the dimensions. Doing this drops the selected Tool to the canvas making it un-editable in they ways we want. To get back to an editable state, press "crtl+n" to clear the canvas and drag out in the viewport a new copy of the tool. Pressing "T" will enter you back into edit mode.
First, lets resize the ZBrush canvas (document) to be a square. I like to work at double resolution when baking so I keep my document size at 2048x2048. To change the document size, locate the "document" tab at the top of the ZBrush GUI. Click on it and you'll get this popup. Make sure the button labeled "Pro" is not highlighted and change the width and height to 2048. To commit these changes, click resize just below the dimensions. Doing this drops the selected Tool to the canvas making it un-editable in they ways we want. To get back to an editable state, press "crtl+n" to clear the canvas and drag out in the viewport a new copy of the tool. Pressing "T" will enter you back into edit mode.
Selecting the Normal Map Material
Lets start with the normal map. ZBrush comes with a default normal map material located in materials tool. This version is a bit strong for my taste and prefer the MatCap called "al_normal_map" available in the material downloads section on the ZBrush website here but you can always turn it down in Photoshop later. To select the normal map material ( or MatCap), click on the material orb on the left side of the viewport and select the normal map material from the list of materials in the popup.
Lets start with the normal map. ZBrush comes with a default normal map material located in materials tool. This version is a bit strong for my taste and prefer the MatCap called "al_normal_map" available in the material downloads section on the ZBrush website here but you can always turn it down in Photoshop later. To select the normal map material ( or MatCap), click on the material orb on the left side of the viewport and select the normal map material from the list of materials in the popup.
Setting up the Camera
To properly align the camera and get things set up for export, if you haven't done so already, import the guide that was created during the blockout phase in Max. While rotating the Tool in the viewport in ZBrush, hold down shift to snap the camera to a top-down style shot of the sculpt. Turn off perspective located on the right side of the viewport in the default GUI layout of ZBrush. With the guide SubTool selected in the subTool pallet, press "F" to frame the project to the document size. You may have to zoom out the camera using the "zoom" tool located on the right side of the viewport. Also, pressing "F" is a toggle between focusing between all the SubTools and the SubTool selected in the highlighted in the subtool pallet, so you may have to click it twice to frame correctly. Before you export, you need to turn off shadows and turn on best render (see below).
To properly align the camera and get things set up for export, if you haven't done so already, import the guide that was created during the blockout phase in Max. While rotating the Tool in the viewport in ZBrush, hold down shift to snap the camera to a top-down style shot of the sculpt. Turn off perspective located on the right side of the viewport in the default GUI layout of ZBrush. With the guide SubTool selected in the subTool pallet, press "F" to frame the project to the document size. You may have to zoom out the camera using the "zoom" tool located on the right side of the viewport. Also, pressing "F" is a toggle between focusing between all the SubTools and the SubTool selected in the highlighted in the subtool pallet, so you may have to click it twice to frame correctly. Before you export, you need to turn off shadows and turn on best render (see below).
Turning Shadows Off and Best Renderer On
Now that the camera is set up, lets switch the renderer to "Best." To do this, locate and click on the Render tab at the top of the ZBrush GUI. Make sure the "Shadows" button in the Render Properties pallet is not highlighted and then click "Best" located at the top of the Render tab. ZBrush will lock up for a few moments while it calculates the "best render." Switching to "best render" should avoid a nasty one pixel black line that will appear at the top of the normal map.
Now that the camera is set up, lets switch the renderer to "Best." To do this, locate and click on the Render tab at the top of the ZBrush GUI. Make sure the "Shadows" button in the Render Properties pallet is not highlighted and then click "Best" located at the top of the Render tab. ZBrush will lock up for a few moments while it calculates the "best render." Switching to "best render" should avoid a nasty one pixel black line that will appear at the top of the normal map.
Creating a Displacement Map
Without moving the camera, locate and click on the "Alpha" tool on the left-hand side of the viewport. At the lower right side of the popup, click the button labeled "GrabDoc." This creates the displacement map. To export, click again on the "Alpha" tool and at the lower left side of the popup, click the button labeled "Export."
Without moving the camera, locate and click on the "Alpha" tool on the left-hand side of the viewport. At the lower right side of the popup, click the button labeled "GrabDoc." This creates the displacement map. To export, click again on the "Alpha" tool and at the lower left side of the popup, click the button labeled "Export."
Setting Up to Calculate an AO Map
Within the subtool pallet, there is an option to merge all the subtools into one mesh. This usually work with a maximum of 10-15 million polys. Trying this with more will increase the risk of crashing ZBrush. I typaclly decimate all the subtool to make a combined total of 5-10 million. Anything higher is unnecessary (and will greatly increase the duration of AO calculating) and anything lower runs the risk of having subtle triangles appear in the normal map.
Once you're ready to merge, click the "merge visible" button located in the subtool pallet in the Merge sub-pallet.
Within the subtool pallet, there is an option to merge all the subtools into one mesh. This usually work with a maximum of 10-15 million polys. Trying this with more will increase the risk of crashing ZBrush. I typaclly decimate all the subtool to make a combined total of 5-10 million. Anything higher is unnecessary (and will greatly increase the duration of AO calculating) and anything lower runs the risk of having subtle triangles appear in the normal map.
Once you're ready to merge, click the "merge visible" button located in the subtool pallet in the Merge sub-pallet.
Calculate an AO
Note: Creating an AO in ZBrush in my experience is a bit buggy and take a long time. At this stage, I prefer to export the merged tool and the guide as OBJ files and bake an AO map with xNormal. Its much faster and get you a much better AO map than out of ZBrush.
Using this button will create a new tool at the top of the Tools pallet. Select the newly merged tool. Switch the material to "Flat Color" and now we're ready to calculate to AO. To do this, locate the "Masking" pallet in the Tools tab on the right-hand side. Click on the "Mask By AO" sub-pallet and click the button labeled "Mask Ambient Occlusion." Zbrush will take a little while to calculate the AO map so Its best to get up and go for a short walk at this point (sometimes a long walk is needed). Once the mask is done calculating, export using the same method as the normal map (through the Documents tab).
Note: Creating an AO in ZBrush in my experience is a bit buggy and take a long time. At this stage, I prefer to export the merged tool and the guide as OBJ files and bake an AO map with xNormal. Its much faster and get you a much better AO map than out of ZBrush.
Using this button will create a new tool at the top of the Tools pallet. Select the newly merged tool. Switch the material to "Flat Color" and now we're ready to calculate to AO. To do this, locate the "Masking" pallet in the Tools tab on the right-hand side. Click on the "Mask By AO" sub-pallet and click the button labeled "Mask Ambient Occlusion." Zbrush will take a little while to calculate the AO map so Its best to get up and go for a short walk at this point (sometimes a long walk is needed). Once the mask is done calculating, export using the same method as the normal map (through the Documents tab).
In Conclusion
If you have any questions on this process or this is in anyway unclear, feel free to let me know. :)
williamhewitt3d@gmail.com
If you have any questions on this process or this is in anyway unclear, feel free to let me know. :)
williamhewitt3d@gmail.com