How to Create Textures in ZBrush
The Purpose of this is to take a photo texture and create a 3D high-poly object from it. This is so you can accurately gauge just how you want all your details to look on your normal map and height map as well as add any further details that you want. You may also choose to maintain some geometry instead of baking it onto a flat plane so you can get some more definition from your texture. This works well with things like brick walls and other flat surfaces. In a later tutorial I’ll talk about how to apply these definitions to actual assets that aren't limited to just flat surfaces. To see a range of some of the textures you can make with this method go to my texture page Here.
This is my first ever tutorial so please send me feedback and let me know how I’m doing. I'd also like to point out that there is still a lot about ZBrush that I don't know about yet, so if there is a way to improve on this or an easier way to do it, please let me know. Thanks.
Though this is written as a step by step guide, it does assume you have a basic knowledge of ZBrush.
Start with a texture. You can use a tilable texture, but in this case I'll just use this cool rock texture I found at http://www.cgtextures.com/.
Next open up ZBrush. The First thing that I like to do is set my canvas to the size of the texture that I want. In this demonstration I will set it to 2048 x 2048, but you may choose something else if you want. To do this, go to the Document menu on top. You'll see something similar to what I have in the picture below. Click off of where it says “Pro” and set your document width and height next to it. Then hit “Resize”.
Since your canvas just changed sizes you'll want to adjust it so you can see the entire thing. You can use the Zoom function on the right side of the canvas as shown in the image below. Just click and hold while moving the mouse upward until you have it at a comfortable size for you to work with.
Next you'll want to select a Plane3D from the tool menu and load it into the canvas. Hit Ctrl-T to go into edit mode. Straighten out the plane by holding shift and using the mouse, left click and move the cursor slightly in any direction. Then use the “Frame” button to have it fill the entire canvas. Now you have a plane that's 2048 x 2048.
Make the plane a 3D object by selecting “Make Polymesh3D”.
Before you subdivide it, go ahead and export this plane as it is. You can label it whatever you want, but this is going to be the low-poly plane that you are going to bake your texture onto.
Once you're done with that go ahead and subdivide it until you have a comfortable amount of poly's to use. The more poly's the better it'll look. I like to divide it until I get to about 1 million poly's. You can take this farther if you're machine can handle it, but this is really all you need for now.
The first thing that I like to do after subdividing is storing my “Morph Target”. Morph Target basically stores the current subtool in memory as it is. So any changes done at this point can be reduced, removed, or even exaggerated from this point on. This will be useful later when you're adjusting the details of your object to you're needs.
Now it's time to import your texture. Click on the texture box on the left hand side of your canvas right above your Matcap and select import.
Once you've chosen your texture you'll need to create your displacement map. You can use programs such as Ndo2 Or Knald to turn you're texture into a height map, this is preferable to get the best results, but in this instance we will just use ZBrush to create it for us. To do this return to your texture menu and select “MakeAlpha”.
This Turns your texture into a gray scale and loads it into your alpha box.
You can preview the texture to see what it will look like on your plane by loading in the "Texture Map" box on the right side.
You can do this at any point during this process to preview what it looks like.
Next, you can load your alpha as a displacement map in the “Displacement Map” menu. Not to be confused with the "Vector Displacement Map" menu.
Using the Intensity slider you can preview the bump being added to your object. It won't actually apply it until you hit “Apply DispMap”. Use the slider to predict just how far things will pop out when you apply. Try not to go too big but not too small either. For this demonstration I put the slider at around .2 then hit “Apply DispMap”. Remember that this works like normal height maps. The lighter parts will be higher and the darker parts will be lower.
For now, though, the texture is getting in the way of the detail. We will clear it out so we can see the details that we will be adding. And since you need to have a texture there in order to use a displacement map, we will simply click the “New From Polypaint” button in the "Texture Map" menu. Then you can see what has been done to the geometry of our plane more clearly.
At this point you're wondering why you've just created a mess of your plane.
This obviously isn't going to work for baking. At this point you'll want to use a smooth brush. I used “Smooth Stronger”, but you can use “Smooth Peaks” too. The point of this is to just define the large details of the texture. You can use your brushes to further enhance certain areas that need to be raised or sunk in more at this point. Or you can use the “Morph” slider in your “Morph Target” menu (or the morph brush) to get desired results. If working with a tilable texture remember to keep the edges uniform. You can always fix it later in Photoshop too. Remember this is for larger shapes at this point. And keep in mind that the more you stretch the mesh the more stretched your texture will get. So don't go overboard with it.
Once you're done you may consider this a good time to export this as a highpoly. You can bake this as a displacement map for use in any programs that uses them. I use Marmoset quite a bit when I render, and having a displacement map that isn't very noisy is a nice thing to have.
If you're satisfied with the way it looks right now, go ahead and delete your stored morph target and store it again. Now the smoothed out version of your object will be what's stored.
Next, we will reapply another round of displacement map. This time we will reduce the slider to a very low number. We just want to apply a lot of those smaller details that we lost. Keep in mind that since the mesh has already been displaced once, doing it a second time might make a mess of things. This is why it's a good idea to just apply a small amount and let your Morph slider push them out where you need them. This may take a few tries to get right. I ended up with a .02 on my intensity then applied it to my object.
You may get something similar to this.
You can then put your texture back on there and see what it looks like.
Changing to a different MatCap might help see it a little better.
And there's how to make a quick highpoly object based on a photo texture in ZBrush.
At this point you now done creating your texture in ZBrush. Congratulations!
At this point you'll want to export this and bake it down onto the low-poly we exported before. I like to use xNormal for this.
When you're done baking you may take this time to use photoshop to add other details like dirt and other grunge. Having the maps that I generated in xNormal I’m free to use programs like DDO to get the feel I’m going for.
Here is the high-poly we created.
When you're done baking you may take this time to use photoshop to add other details like dirt and other grunge. Having the maps that I generated in xNormal I’m free to use programs like DDO to get the feel I’m going for.
Here is the high-poly we created.
And after playing around in NDO2 and DDO I have the final product.
For tutorials and information on how to use other programs that turn the base texture that you created in ZBrush into a more appropriate game texture, I'll refer you to their home pages.
For Knald - https://www.knaldtech.com/
For NDO2 and DDO - http://quixel.se/
For xNormal - http://www.xnormal.net/1.aspx
For Marmoset - http://www.marmoset.co/
Thanks again for reading my tutorial. If at least one person finds it useful then I've done my job. In the next few days you'll be seeing other tutorials including “Using Photoshop to create your own simple height maps for use in ZBrush” and “Applying displacement maps to other 3D models, not just planes”. Both are working titles.
For Knald - https://www.knaldtech.com/
For NDO2 and DDO - http://quixel.se/
For xNormal - http://www.xnormal.net/1.aspx
For Marmoset - http://www.marmoset.co/
Thanks again for reading my tutorial. If at least one person finds it useful then I've done my job. In the next few days you'll be seeing other tutorials including “Using Photoshop to create your own simple height maps for use in ZBrush” and “Applying displacement maps to other 3D models, not just planes”. Both are working titles.