Virtual Creation: Serious Shading

Over the last two posts I put all the foreground elements into place. Now that the objects in the scene have basically been set up, I think I’m ready to work on fixing colors and textures — the shading. This is the beginning of the end; we’re now ready to start tackling the fine details of the objects in the scene.

The first thing I do is look at the final rendered image from the previous post, to see what catches my eye. As always, the water doesn’t look right at the beach. I find the single palm leaf in the background distracting, and I think the sand goes too far up the beach — perhaps I can make that transition slightly more stark, as well. I also notice that the sunbather’s left foot is floating above the blanket. Perhaps I’ll start there. Before I begin moving the sunbather, however, I go ahead and delete that palm leaf.

Image 1. A spot render to check on the placement of the legs and feet.

I zoom in on the sunbather to adjust the position of her leg and foot. Here I have two concerns. The first is to make sure it looks like she’s in firm contact with the ground and not floating over it; the second is to make it look like she’s comfortable and relaxed. These two issues are tougher to achieve together than it might seem at first blush. Each adjustment has to be tweaked repeatedly, and I often find myself going back and forth over a set of tweaks (using the built-in Undo/Redo functions) to see how much I like the changes. After a while, however, I settle on what I have in Image 1, and call that good enough. Based upon the spot render, I don’t really feel like I have to adjust the sunbather’s skin. I like the detail that’s showing up in it, and I’m ok with her being Caucasian. (Surprisingly, creating skin shaders of different ethnicities requires a lot more than simply changing a few colors; in my experience it’s really important to build each color from the ground up. I’m not going to drag you through that process right now.) The towel and the cooler need work, however — they’re too perfect! Let’s start with those.

Image 2. What were they thinking?!

Opening the towel’s shader provides me with a surprise! It’s much more complex than I had expected. You can see in Image 2 how much is going on! Some investigation reveals that part of it is due to some serious errors in the way the stock shader is built! For example, if you look in that list, you’ll notice that the second square down is labeled “Color”. That means that anything in that node or lower should only be built on color entries. Looking down through the list, you can see a lot of “color” entries, as well as some “mixer” entries. That’s fine; mixers and multipliers are operations that are used and applied to colors. Almost anything left over (usually “formula” or “noise”) is telling the mixer how to do its job, so that’s fine. The trouble is about halfway down, where there’s an entry labeled “Multi-Channel”. I’ve mentioned multichannel shaders before; as I said, they’re meant to affect ALL of the object’s appearance (color, reflectivity, translucency, refractivity, bumpiness, etc). It’s not a hard fix, but it causes me to carefully look at the rest of the shader to make sure there aren’t any other errors. After a second or two I find the same problem in another place and fix it as well. Once that’s done I find I need to play around with the shader’s settings to figure out what’s going on. A few adjustments give the towel a bit more character.

Image 3. How do you give a towel more character? Print a novel on it!

Time to move on to the cooler. That plastic looks beautiful… too beautiful. I don’t know about you, but every cooler I’ve ever seen has gotten stained and warped from years of use. Let’s mess it up! I have a stock shader for rusted iron; I drop that on to the bolt that holds the wheels in place. Then, I get to work on the cooler’s body and lid. As it turns out, the cooler’s shaders are as simple as the blanket’s shader was complicated — just a single color for most of the major pieces. I add some general color texture, then add some discoloration using Anything Goos, an awesome plugin by Digital Carvers Guild. Basically Anything Goos finds the edges and ends of a virtual object and shades them for you. In and of itself that’s not so useful, but when combined with other shader functions it becomes impressively powerful. I adjust the bump on the sides using the same tools, then repeat the process on the lid and handle.

Image 4. How do you give a cooler more character? Print… wait, I already told that one.

I’m happy with that. I’ll work on the umbrella, and then beach next. Now, you might be wondering, “Why is he continuing to work on these small things when the water doesn’t look right?” I’ve kept my eye on the water, but I have a feeling that it’s going to be a big job to get the surf right. So for now I’m tackling the small stuff that I know I can get done. I make a few tweaks to the umbrella, but for the most part leave it as it was. Time to work on the sand again. Because of the way a lot of the shader functions I’m using work, I have to make my changes in the shader room, then do a spot render in the assembly room to see if the result looks ok. As you might guess, this process is slow and tedious, so I’m not going to drag you through a bunch of screenshots of it. However, the following image shows the result. I changed the transition between the dirt and the sand, darkened the color of the soil, edited the color of the sand a little, and added some wet sand to the edge of the water, to suggest that the waves actually do roll up on to the beach occasionally. I’ve also tweaked the leaves on the plants in the background; they looked entirely too shiny before.

Image 5. Here’s a spot render of the changes to the beach. I don’t think I’m done with it yet, but it’s time to move on.

At this point I think I’m ready to tackle the water, but I’ll leave that for my next post. To finish up for today, however, I want to change the camera position and perhaps the final image size and orientation. Right now the picture just isn’t very interesting. The sunbather is present, but she really isn’t the focus. So let’s move the camera for a better view, and enlarge the production frame some. I’ll also change the appearance of the Moon so that it matches the position of the Sun in the scene, at least to the level of detail Carrara allows. Finally, to get an idea of how the final image will actually look, I’m going to turn on all the niceties — soft shadows, indirect lighting, etc. These are going to destroy the rendering time, but the image we get will truly show what our final image will look like. I’ll save the file before I turn all of that on, though, so that when I start up next time I don’t have to remember to turn it all off again.

Image 6, Render so far, with all the bells and whistles

The render above took a whopping 7 hours and 20 minutes. When I said that those niceties would increase the render time, I wasn’t kidding! Next time I’ll tackle the water, and I think I might even revisit the sand and beach — I’m still not quite happy with it. But the end is in sight; I’ve probably got one more post (two at the most) before I’ll be ready to call this image “done”. Have a great week!

2 Comments

  1. Thanks for continuing the conversation! A few questions — what was the problem with having “multi-channel” in the list, and how did you “fix” it? Thanks for going into so much detail … I had questions about some of the details in the scene, and you are slowly addressing them, and the scene is getting more and more realistic. I still think I’d find one of those “shaders” overwhelming to manipulate!

    • what was the problem with having “multi-channel” in the list, and how did you “fix” it?

      Let me first clarify — as far as Carrara is concerned, there’s no problem with having a multichannel shader in the color list. It simply ignores everything but the color channel and goes on with life. I, however, don’t like it for two reasons. One, it’s a waste of space and memory. Even though Carrara ignores all of the other channels, they’re still loaded into memory and saved in the file. If the ignored entries are complicated (or worse yet, include other multichannel shaders), the effect on both RAM and the hard drive can become significant. Two, it makes the shader harder to read. As you can see from the image above, complex shaders (those that use multiple mixing effects) are already difficult to follow. Add in lots of extra useless nodes and it becomes near impossible. It becomes especially problematic if the shader produces an unexpected result, and you’re trying to figure out why…

      So when I see this, I tend to fix it ASAP. First I make sure that all of the channels in the base shader are correct. Sometimes an option that was meant for the base multichannel shader ends up in one of those extra ones, where Carrara then promptly ignores it. (See my comment above about the shader not producing what you expected.) If there is, I drag that specific subshader to the appropriate place in the base shader. Once I’ve verified that I don’t need anything else from the extra multichannel, I drag and drop the color channel from it (which was what Carrara was looking at anyway) on to the node containing the extra multichannel. Effectively, I replace the extra multichannel with everything useful from within it (which are usually normal color entries). It’s actually easier to do than it is to describe.

      I still think I’d find one of those “shaders” overwhelming to manipulate!

      Like with anything else, it gets easier with practice. When I started I rarely edited or manipulated shaders; even now I can see how much more I have to learn to really master their use.