Creating textures for sci-fi spacecraft - Part 2 of 3
Victoria Passariello shares a range of techniques for creating textures with Photoshop and Substance Designer...
In this second part of my tutorial series, I will show you the texturing process I usually use in my projects. I will show step by step how I cover the different stages in creating the textures of a model, starting by establishing the colors, followed by adding damage and weathering, and finally adding some dirtiness.
I will also share the hand-painting techniques I use in Photoshop, as well as how to obtain certain effects using texture maps. I will also cover a very basic explanation of how to use the Metal Weathering filter in Substance Designer to make dust.
I approach this process using the PBR system's Metalness/Roughness workflow. I am going to explain the very basic principles of PBR, but if you want to read the full theory, you can download the free Comprehensive PBR Guide from Allegorithmic.
I hope you find my techniques and methods useful to use in your own projects.
Step 01: Making UVs
To make the UVs I use UVLayout. I've been using it for about six years now, as it gives me the necessary tools to makes UVs easy and quick. Feel free to use the software of your choice to make the UVs - the important thing to take into account in this process is to hide the seams as much as possible. Try to make cuts between panels and inside grooves. Try not to make them in the middle of a visible area unless you don't have any other choice; in that case, you will need to work that area in detail in the texture to cover up the seam as much as possible.
Step 02: Using checker maps
Another important thing to take into account when packing the UVs is to keep all the islands totally vertical or horizontal, because it will make the texturing process easier when painting or using tile maps of panels and straight lines. Always avoid any oblique islands. You can check by using a checkered map on the object.
Step 03: Texture sheets
Feel free to make two or three texture sheets for the ship. You can divide it as you want, for example, one texture sheet for the front section and one for the rear section. For the purposes of this tutorial and to keep things easy, I keep the whole ship in a single 4096 x 4096 texture sheet and the cables in one 1024 x 1024 texture sheet.
Step 04: Rendering out the maps
Before starting to paint the textures, I render out all the maps I'm going to need. The first one is a template for the UVs, which I'll use in Screen blending mode in Photoshop as a reference for the different objects' placement.
Inside 3ds Max, apply an 'Unwrap UVW' modifier to the object and open the UV editor, then under Tools > Render UV Template, a new window will appear with the options for your render. Just put the correct size of the map and click Render.
The second one I always make is a mask map, which I use in Photoshop's alpha channel to make quick and easy selections of the areas I need. I've got this map in the same window as the UV template, but this time I change some parameters to get the black-and-white image and save it as a TGA file.
Finally for the ambient occlusion (AO) map I use Faogen, a software that make AO maps very quickly and accurately. Feel free to use the software of your choice to make AO maps - the important thing is to have the occlusions very visible in the map.
Step 05: BPR Metalness/Roughness workflow
For this project I'm using PBR rendering with a Metalness/Roughness Workflow. I need three maps for this:
- Albedo map, where the colors represent the albedo for non-metallic materials and reflectance values for metals.
- Metallic map, where white represents metal and the black represents non-metal.
- Roughness map, where white represents rough surfaces and black represents smooth surfaces.
To learn more about the characteristics of each of the maps and take a deeper look at the PBR workflow, you can look at the Comprehensive PBR Guide by Allegorithmic.
Keeping that knowledge in mind, I start to build all the maps simultaneously in Photoshop, adding details, damage, dirt, and so on, step by step in different layers while constantly checking the process in Marmoset Toolbag 2.
Step 06: Establish the different colors
To start the texturing process, I first establish all the colors of the ship. I create a base layer of solid color that is the base color of the ship (in this case, blue). On top of this one, I start to create more solid color layers with all the different colors, and mask the desired pieces of the ship (I use the mask map I previously made in 3ds Max to help me select the areas and mask them). I basically make variations of blue, some black pieces and some different tones of gray.
The colors in this case represent the paint on the metal, so the roughness map should be the same in all the colors, even though I prefer to add some variation to break the homogeneity.
The metal map is all black for now since I haven't established any raw metal yet.
Step 07: Add metal textures
Once I set up all the colors, I move on to add the metal textures. I choose one metal map from www.textures.com as my base metal and duplicate it to fill the whole canvas. I use it in Overlay blending mode to get a very subtle effect.
On top of this, I add a scratch map (also found in www.textures.com, and modified by me) at 60% opacity so the scratches are not very strong and evident in the render.
In the roughness map, I desaturate the metal texture and use it in Multiply mode. I also move the arrows inside the Blending Mode option window so only the darker tones remain visible. I want the metal texture to be dark here, so these areas look shinier. For the scratch map, I invert the colors so they become black and use it in Multiply mode.
I use a similar process for the metalness map to make it white (suggesting the metal underneath is the paint colors) and I duplicate the scratch map several times in Screen mode to get them very white.
Step 08: Adding the panels map
To add even more variation to the different colors, I add a panel texture from Total Textures v7: Sci-fi. I use it in Overlay with a very low opacity and modify the Levels to add more contrast. I only use this map in some blue areas, so I make a mask to specify it.
For the roughness map, I desaturate the map and use it at very low opacity, tweaking Levels for more contrast. The metalness map remains unaffected by the panels. I also convert the desaturated map into a normal map to create more distinctions in the render.
At this point you should feel that the ship is made of metal and has been painted, and the damage should look natural. If it doesn't, go back and play a bit with the albedo, roughness and metalness maps, changing the values and balance of colors, and so on. In this tutorial I'm showing you the final result, my final colors and roughness values, but they took me a lot of time and testing until they looked good and natural. Feel free to change them as much as necessary until they give you a great result.
Step 09: Making the emissive map
Once I've got all the colors, panels, metal and scratches, the ship's starting to take shape in terms of shaders/materials. It looks metallic and a bit damaged.
Before I continue adding the peeling, dust and rust, I'll first create the emissive map. The emissive map always adds that extra layer of detail and visual interest to the model, creating areas that emit light. I always like to add some lines and dots here and there, and it also looks good to paint the windows and engines and make them glow.
To make the emissive map, I create a black solid color as the base layer, and on top of this one I add the emissive color layer (in this case, blue). This blue layer has a mask where I start to paint all the areas I wanted to glow. (I use the UV template in Screen mode as a guide to paint.)
Step 10: Adding peeling to the borders
Finally, the peeling, my favorite part. I need to be extra careful when making the peeling because I always add too much and then the model starts to look super destroyed; I end up deleting a lot of what I had already painted. (In any case, my models always look destroyed!) So whatever the goal you want for your model, whether you want it to look old and damaged or only have a bit of peeling damage, this is a very fun step.
Nowadays there are some techniques to obtain this effect quickly: for example, using curvature maps or Substance Designer. However, I'm still a big fan of painting by hand because I like to have full control of what I want to do and where exactly I want to do it. Using one technique or another will alway depends on your time constraints. In this tutorial I will share how I do this completely by hand.
For the albedo map, I create a dark-gray solid color layer and use a dry brush to start masking the borders of the panels. Remember that the value of gray determines the reflectance of the metal in the metalness map. I want the peeling to look bright, but not much, so I test some different gray values until I get the result I want.
In the roughness map, I use a very dark-gray because I want the surface to look smooth, since it's the raw metal that's been revealed underneath the paint. Finally, for the metalness map, I use a very light-gray, almost white.
Even if I use PBR and start using real material values, I change them a bit to fit my own tastes.
Step 11: Decals
After the hard work of painting all the peeling, let's take a rest to add some decals, like the yellow bands on the sides and some logos. As usual, I create a solid color layer (yellow this time) and mask in the areas where I want the bands and logos to be. To give the worn feeling of the yellow paint, I modify some blending options in the Layer Style window.
In the roughness map, I use a light-gray to get a rough result. As I said before, it needs to be tested several times to get the desired result. The metalness map remains unaffected.
Step 12: Adding rust
For the rust effect, I want to add some orange/reddish patches around the model, but I don't want to paint them by hand, so for this one I use a burnt texture from Total Textures v19: Destroyed & Damaged. At first glance, the chosen map doesn't have the characteristics I want, but with a bit of manipulation in Photoshop I obtained exactly what I'm looking for.
I first copy the map around all the canvas, then put it in Color blending mode and play with the blending options inside the Layer Style window. At this point I've got the reddish patches I want, but they're missing contrast, so I make some Levels adjustments and it's done. I copy the same layer with all its blending adjustments (without the Levels adjustment) to the roughness map, but I need it to be white so I desaturate the map and set it to Color Dodge mode.
For the metalness map, I again copy the layer with its blending adjustments, but this time I use it in Subtract mode to have it in black. It is almost invisible to the eyes if you look at the metalness map, but the rust texture is there doing its job.
Step 13: Dirt pass
I don't paint the dirt by hand, and I don't use any texture for it either. On this occasion, I use Substance Designer to generate the dirt. In Substance Designer, I first create a Metalness/Roughness Graph. I add a Metal Weathering filter and only choose the Base Color input. I link a white color to the Base Color input and link the ship's ambient occlusion map in the Ambient Occlusion input. That's all I need here to generate the dirt, so, in the Effect rollout of the Weathering filter, I play with the Dirtiness parameter until I've achieved a nice result. I export the Base Color output here and am ready to start working in Photoshop once again. (See image 13a.)
Now I'm back in Photoshop with the new dirt map. It looks nice in Multiply mode, but the dirt wouldn't be black, so to add some color to the new map I apply an orange/brownish solid color to it. I also add it in Multiply mode to the metalness map.
For the roughness map, I need to invert the colors of the map, so the black dirt becomes white and I use it in Screen blending mode. (See image 13b.)