More progress on the texturing process

As I mentioned in the process demo, turning on the physical sun & sky does wonders for the look of the texturing. I've also subdivided the geometry to get better results from the displacement maps. There's still some work to be done on the reflections and specular highlights, but I'm feeling confident that I'll be able to get the level of detail and realism that I desire for this project.

MUDR robot texturing sample

I intend to make another entry to the process demo on Monday evening.

Texturing the MUDR, a process demo, part 1

I thought it might be of interest to describe the process I am following as I texture the Modular Urban Defense Robot. Bear in mind that I am in no way a skilled texture painter. I'm sort of learning the process as I go along, and there are still dozens of things I still haven't figured out. I won't cover the modeling or UV processes here—those are each quite deep topics on their own, but they're already finished for this robot. On to the work!

I'm going to talk through the process of texturing the robot's head. Here's my starting point, the untextured head with a lambert material:

render with default lambert material

I am using Mental Ray's physical sun and sky at default settings for light. Having a somewhat realistic lighting setup makes a huge difference. Here, you can see that the lambert material has picked up the blue color of the sky, and the shadows are quite convincing; it's a huge improvement over Maya's default lighting, but it does come with a hefty price. This frame took 1:35 to render, where a render with the default lights takes mere seconds. Most of the time I do work with the default lights and only turn on the physical sun system occasionally. One thing to take note of is that the physical sun will put you into a linear workflow. Others have written on that topic more cogently than I can, so I will simply refer you to Floze's excellent tutorials.

So then, the first step is to determine how exactly I want this thing to look. The director asked for it to look like old industry—heavy machinery—so I chose a sort of rust-colored paint, poorly primed. The paint will flake off in many places and be cracked and dusty where it's exposed to the sun. It will also be very dirty and be covered in old grease in places. Some parts will have exposed welds to cover seams that cause me difficulty.

The robot is made out of metal, and although it won't be terribly shiny due to its age, there may be surfaces that will still have some degree of gloss. I change the material to a blinn, name it headM, and reduce the reflectivity to around .2. I've spent a lot of time laying out UVs already, so I'll go ahead an export a UV map:

UV map

The head is pretty complex, and I wasn't able to sew seams in as many places as I'd like. It also has an issue of having way too many surfaces, and I expect to need a close-up, so I made the map 4096 x 4096—the image above is greatly reduced in size. The UV layout shows me where my surfaces are, but there's a little bit more information I'd like to have: an ambient occlusion map. A 4k AO texture with decent quality takes quite a while to bake;  I unwisely decided to do it while I was awake and watched two episodes of Lost while I was waiting. Future AO maps will be baked while I sleep. The AO map looks like this:

Ambient Occlusion map

Both of these maps go into Photoshop as layers in the texture building file. The UV map goes on top, I change its blend mode to screen, and the AO map's mode to multiply. Every other layer will go beneath these. Game artists will use the AO map in the final texture to save rendering time, but for film and video it's merely a guide, making it easy to see where the grooves and sheltered parts of the model are and therefore where there should be more grime or less weathering.

Next: a base texture. I grabbed several pieces of bare metal a while back from Their license prohibits me from simply posting that texture here, but they're all free with registration. I put the base texture at the bottom of the layer stack. It will likely contribute only a few pixels to the finished texture, but it's a place to start. Above that, I fill a layer with my chosen paint color, a dull red, and set its blend mode so that some of the base texture shows through—darken in this case. Then I go in and start painting details. The grills on the panels, a few lights, change the paint color of the two domes and the end of the nose-cone. I don't think I'm anywhere near done with details like these, but I've run short of inspiration, so I moved on to scraping the paint off of corners and exposed areas.

I added a layer mask to the paint color layer and found a texture of flaking paint from which I made my brush:

grunge brush settings

This image shows the source image at the top, which I defined as a custom brush, and the brush settings that produced the stroke at the bottom. Start with any image that has a sort of grungy pattern, crop out a piece of it, desaturate and play with curves or levels to get some nice contrast, and edit > define brush preset… The new brush will appear in your brushes palette.

I use this brush on the paint layer's mask, hitting the corners of the geometry and a few random other places. Hit anywhere that the paint might have gotten enough wear to start flaking off, but don't  make it too uniform. Some spots might be completely scoured while others will be completely intact. Most places will have a little wear. Once you've got plenty of nice scrapes, ctrl-click the layer mask to make it a selection and choose the secondary paint color layer (in my case, the yellow for the nose cone and domes).  Make a layer mask; since you have a selection made from your previous mask, the new mask will be identical to it.

I've linked my photoshop file to the color input of the blinn shader. Here's the current color texture with the UV and AO maps turned off, and a render of the robot to this point:

Initial color map

MUDR head render with color map

The reflectivity is clearly too high, and I don't care much for how my panel details appear here. The one is easy to fix, but the other might take a bit more thought. We'll see how it looks later in the process. Incidentally, my intent was for those yellow bits to be self-illuminated, but they're on the same layer as the other panel details, so I'll have to jump them to their own layer prior to making the incandescence map. Since I'm not very far along in the process, this is a good time to do that. Simply select by color range (select > color range) and click on the yellow. Once you have a selection, choose the layer the lights are on and ctrl-j to make a new layer with a copy of only those pixels.

Alright, I've reduced the reflectivity of my shader to .05 (this, by the way, is merely a preview issue—later on, reflectivity will be controlled by yet another map, and I'll dial it in more precisely at that time),  and now I'm going to start adding some grunge. I'll start with a soft scattering brush made by Dave Nagel for painting skin. That brush pack is fairly useful and can be found here: Nagel Series 20. New layer, and I spray a dark brown dirt color willy-nilly across the entire color map. Since this is merely the first layer of dirt, I paint the surface fairly uniformly. There may be a few holes and a few places of greater density, but the objective is to not leave any indication that this dirt was painted on—zig-zagging lines and the like. Once that's done, I find a brush that makes denser, textured blobs, and I start working some dirt into the crevices and corners. This is where that AO map really helps. The darker areas are where the surfaces are close to other surfaces and are therefore more sheltered from wind and rain. Thus, those are the spots that will accumulate more dirt. I occasionally go back to Maya to see where particular surfaces actually are in order to give myself a better idea of where the dirt is going.

Once that's done, I add a layer mask to the dirt layer and load my custom grunge brush again. I then paint out a few spots of the dirt, indicating places where maybe it built up and flaked off or got partially washed away by rainwater or contact with other objects or people. Another test render shows me that I do indeed have a problem that I was anticipating: textures that break along seams that I couldn't sew. Notice where the large sphere meets the nose cone, in the brightly lit area on top. And, indeed, the seam along the center of the head, which was certainly a large mistake on my part. That seam should have been made on the side, where it would be hidden by the rocket pod. It's too late to fix that now, though, so I will have to simply disguise it. I will hide both of those discontinuities with an ugly weld. A similar one at the end of the nose cone, where the yellow begins, will be hidden with an apparent bevel created in the bump map later on.

For now, I scoured the Internet for images of welds and learned that the only ones with reasonable licensing are far too small in resolution for my needs, so I pulled a weld from an auto repair website, cut it out from its environment, and straightened it out:

Weld texture

Now I put several copies of it along that border and use the liquify filter to push it to where I want it to be:

Weld applied to color map

I've left the UV and AO maps on here so you can see how I used them to guide me on where to put the weld. While I was at it, I put down some dirty grease in a few places. My layer stack is now thus, from bottom to top:

base texture, base paint (darken), paint details, weld, panel details, panel details2, lights, dirt (72% opacity), grease, ambient occlusion (hidden), UVTemplate (hidden).

I'm going to wrap it up for now. Keep an eye out for part 2, where I'll start on the bump and displacement maps. For now, here's my color map to this point and a render:

Color map with dirt, grease and weld

Rendered head with weld and grease

Robot texturing progress

I spent most of the interterm break laying out UVs on my robot. That's finally done, so now I can start laying down the textures. The head will get a few more painted-on details, and then I'll grunge it up more with dirt and grease in the crevices. There's also more bump and shader work to be done, but here's where it stands right now.

Tutorials at The Cartographers' Guild

I am a frequent contributor to the forums at The Cartographers' Guild. In the course of my time there, I have written several tutorials and guides. Here is a complete list:

Creating a local-scale tree texture in Photoshop
This tutorial was adapted from a technique at the Cartotalk forums, but the original was very difficult to understand. I clarified it and provided illustrations.

An Introduction to Image Export Formats
Many beginning artists have never learned the differences between the various image formats available to them and sometimes pick a final filetype that is suboptimal in terms of compression ratio or visual quality. Here, I have attempted to provide information about all of the common formats and when to use each one.

Using Channels to Separate an Object from its Background in Photoshop
I see a lot of inexperienced artists try to cut an object off of its background by painting a mask, using the pen tool, or even the eraser! This is a much easier method that aims to preserve the detail of the subject's edges. Also, since it does not rely on hand-painting, it can be used on video footage. It is, in fact, the basis behind the process of chroma keying.

Using Photoshop's Clone Stamp tool for better brush work
Many cartographers use brushes to put down mountains and trees, but anywhere the brush strokes overlap, the "white" parts are revealed to be transparent. The Clone Stamp tool, while not as elegant as the Brush tool, can be used to counteract this behavior.

Essential River Guidelines for Mapping
The Cartographers' Guild has a small cadre of self-styled "River Police" who examine maps for unrealistic water behavior. This guide collects their wisdom into a single place and cross-indexes other river-related discussions.

Create an isometric medieval tower icon in Illustrator
A simple Illustrator exercise that demonstrates how to make small icons for fantasy maps.

Miscellaneous robot design

I took a mechanicals design class this evening, and during the exercises I came up with this robot design, which I quite like:

Nazca-inspired robot
Nazca-inspired robot

The head shape is inspired by the skull manipulations practiced by certain Mesoamerican tribes, specifically the Nazca, whom I have been researching for my portfolio project. I'm looking forward to finding out what the rest of this robot looks like. It may feature into the port project eventually, although I'll have to really change up my concept in order to make it fit.

In other news, the Ai Colorado student SIGGRAPH chapter (of which I am the founding president) is looking into recording and publishing some of the workshops and tutorials taught by Art Institute students. Proceeds will go to fund AiCO SIGGRAPH activities and projects.

Modular Urban Defense Robot

This is the base model for the Modular Urban Defense Robot I am developing for Breach. A variety of different arm and weapon configurations will be available, enabling the 'bot to be outfitted for many roles. This robot will also be turned in for my Visual Effects Field Production class, so it may appear in several other students' reels and projects.


Robot leg model

I've finished the base model for the robots' legs. Much of the detail will come from texture maps, so if I'm lucky I won't have to do any more sculpting on this part of the 'bot. Colin said he wants a heavy industry look to the overall piece, so I chose a segmented plating look, reminiscent of medieval plate armor, and made sure some big pistons were exposed.




Flying sentry drone

flying sentry drone
flying sentry drone

This is a robotic sentry drone that will be inserted into the shot I am working on for Advanced Compositing. I am going to try to texture it entirely with procedural textures within Maya, at least at first. I'm eventually going to have to apply some stenciled-on logos and such, but I'm going to hold off on that as long as I can.