Bryan Ray, Visual Effects Artist

July 13, 2010

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 CGTextures.com. 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

June 18, 2010

March 9, 2010

VFX Student Reel

I am available for an internship in Denver, CO or telecommuting beginning March 25.

November 23, 2009

Lighthouse

This lighthouse was modeled by Juan Carlos Silva. Our assignment was to light and texture it. Although this project did not turn out as well as I had hoped it would, I learned a lot.

Lighthouse model by Juan Carlos Silva. Light and texture by Bryan Ray

approachView

oceanView

lampCloseup

September 13, 2009

Texturing a spaceship

This ship model was built by Alan Province in mimicry of the ship from The Mutant Chronicles. He was having trouble getting it to look good textured, so I decided to take a stab at it. I’ve never done any UV texturing before, so I had a lot to learn. I was in something of a rush, so the UV maps aren’t as good as I could wish, and I haven’t yet done anything with bump maps or the like. Still, I am fairly proud of it. It’s not ready for the big screen, but it would make a passable video game model.

ship

September 10, 2009

Adventures in Maya

So I’m almost through with my first Maya class, and I’m starting to be able to produce things that are actually at least interesting to look at. To me. And only because I made them. But here they are for everyone else’s enjoyment, too.

A Japanese teahouse, modeled, textured, lit, and rendered by me, with much assistance from numerous tutorials, and textures from cgtextures.com:

render1

render2

render3

June 24, 2009

Jungle Ape

I had something of a hard time with my Advanced Image Manipulation class. I just didn’t “get” many of the assignments. This one was fun, though I could have done better if I’d given it the time it deserved. I really wish I’d had a pic of a gorilla actually in the jungle.

The Jungle Ape

The Jungle Ape

The ape and textures courtesy of CG Textures.

(303) 547-5744
xa_bryan@sbcglobal.net

330 E 10th Ave, Apt 602
Denver, CO 80203