It feels so good that we’ve gone past the modeling phase already. Now we tell our tin can how it is made and what it is made of.
In this stage, we’ll just quickly add some basic materials and shading to our current object and distinguish some of its parts for later texturing.
Let’s go ahead and select our main tin can mesh in Object Mode and press F5 on your keyboard or click the Shading (F5) button then go to Materials sub button to activate the materials menu. Go to the Links and Pipeline tab and click Add New to create a new material block.
Creating a New Material
Rename the currently added material into “metal” and adjust the material settings accordingly (as seen in the screenshot below). The only settings I adjusted are the color, specularity, and reflectivity.
Metal Material Settings
Copy the same material settings to the opener and the circle object (I don’t know what it’s called). But instead of manually selecting each and every object and then adding or browsing through the materials menu, what we’ll do is just link whatever settings the main metal material has such that when we change the material, it will readily reflect those changes to the other objects as well. We do that by first selecting the objects that will inherit the material, then select last the object that has the reference material, in this case, the main soda can. Then press CTRL+L on your keyboard and choose Materials.
If we do a render right now, here’s how it will look like:
Not that convincing yet. But we’ll deal with that shortly.
Two down. Next thing on the list: textures.
During my career in 3D, texturing has been one of the things I’ve been very scared of, probably because I was just too reluctant to learn or even know it and another is the concept of another dimension called UVW, which seems pretty daunting at first. But somehow, I got over it and am very happy that however scary it seemed to me before, it’s how lovely it is to have now. Hopefully though, even with just letting you see a tid bit of info about basic texturing, you get the idea.
Right now, we’ll just deal with some basic procedural textures and image textures with decent UV mapping techniques. Let’s get it on!
With our main tin can body selected, switch to Edit Mode if you haven’t yet by pressing TAB on your keyboard or accessing it through the Mode dropdown on the bottom part of your 3D viewport screen. Rotate your view and select the back-most part of the vertical edge loop that we’ll use. Then press CTRL+E and choose Mark Seam. What this will do is tell Blender that this part of the mesh is where the unwrapping and unfolding will take place and tear from. After applying the Mark Seam, you’ll see a thick line drawn across the edges you’ve selected. Confused? See the screenshot below.
Creating the Edge Seam
After we’ve marked the necessary edges and seams, we can now proceed and select parts of the mesh that we want to be unwrapped. But before that, let’s just go ahead for awhile and add some procedural textures to the metal material to simulate the brushed metal texture.
Let’s go back and head over to our Shading (F5) > Materials menu and browse over to the Textures panel and click Add New to create a new texture slot.
After this, head over to the Texture Buttons (F6), rename the texture to brushed, choose a Cloud texture, and change the Noise Size to .005 and the Noise Depth to 4. Leave the other default values as it is, we might not need them.
Adding a New Texture and Some Texture Settings
Let’s get back to our Material Settings and scroll over to the Texture panel and head over to the Map Input tab and the Map To tab. Under Map Input, change the mapping as seen in the screenshot below. Under Map To, make it affect the Col and Nor options which stands for Color and Normal (or bump mapping) respectively. Change the Nor value to something low like 0.20 and also change the color to something a tad darker than the original color of the material.
Texture Mapping Settings
Doing a render now, this is what we see:
Basic Render with Procedural Texture
Now we can go ahead and proceed on UV mapping an image texture to the tin can body itself. Since the last time we went into Edit Mode, we’ve created an Edge Seam to derive our UV mapping from, so we’ll take it from there.
Select all of the vertices that we want our label/sticker to be wrapped on, as exemplified here, the four middle rows of vertices are selected.
Middle Four Rows of Vertices Selected
Split your screen so that the left most side would have our model and the right of it would be the UV/Image Editor Window. While at the UV/Image Editor Window, open and browse the image that you want to be wrapped on the body of your can by going to Image > Open on the header menu of the window.
Screen Split and Image Opened
Hover your mouse cursor over to the 3D viewport and press U then choose Unwrap. What this will do is intelligently unwrap your selected edges according to how you marked your seams and will preview the selection on your UV/Image editor window.
Unwrapping Selection into UV
Right now, the way Blender unwrapped our selection is already good enough, but looking closely at it, we see non-straight lines which we do not want since we wished for our texture to be mapped correctly according to the lines that our object represent.
We fix this by selecting the necessary vertices in the UV/Image editor, just like how we normally select vertices in the 3D Viewport, then press S for Scale, and if you want it to be straight horizontally, follow it up with a Y then press 0 to straighten it, and if you want it vertically, do an X then press 0. After everything has been straightened up, select the whole set of edges and scale them a bit such that they’re not touching the border because this might cause problems later if we disregarded doing that.
But still, something just doesn’t look right now. Even though we’ve actually corrected the edges the way they are now, their size is inappropriate for our label. If we are going to see the mapping right now, we’d see only half of the word “Pepsi” since that’s only where our selection is at. To address this, simply select all of the edges and scale them along the y-axis (while at the UV/Image Editor Window). That should fix it.
Now, if we’re going to render our can, we won’t see anything but the same thing that we saw on our last render. Why? Because we haven’t told Blender yet to use the image we uwrapped our mesh on; how is it going to be mapped and where. Go to Edit Mode and select the vertices that encompass the parts we used for the unwrapping awhile back and go to Editing (F9) then go to Links and Materials tab and click New on the right hand side to create a new material index. This is a very important part here. If we didn’t do it, our mapping for the image would go haywire, so I highly suggest you follow me on this. You’ll notice that after pressing the New button, a new name appears above with the current name of our material appended with a .001, what that means is that a new material datablock has already been added. However, nothing is assigned to it yet, so while at the same place in the Links and Materials tab and the vertices still selected in our 3D Viewport, click the Assign button to make this group of vertices be a user of the newly created material. This technique is called material indexing, where a single object could have multiple materials assigned to it depending on the way its mesh is constructed.
Creating a New Material Index for the Label
Let’s head over to the Material options once again and rename our newly created material into something more appropriate. Let’s name it “label”. And create a new texture, name it “pepsi” and make it an Image Texture. On the image options of the texture, click on the drop-down menu and browse for the image we just opened before.
Image Texture Options
Then finally, choose the mapping options. Map it to UV and just enable the Col option.
Image Texture Mapping Options
Before we do a render, it’s a good idea to pack our images into our blend file so whenever we open our files elsewhere, the images that come along with it stays intact.
Do this by going to File > External Data > Pack into .blend file (you’ll notice a gift box icon appear on your header after doing this) and in the UV/Image Editor press the Gift box icon.
Packing the Images with the .blend File
So now, if we do a test render, here’s how it will look like:
Render with Textures
Almost there. Next, we light up the scene better. Let’s go!
As with any other 3D and CG projects we see out there, lighting plays an important role in convincing your viewers and showing them more of what your image is constructed of. You could even tell a story from the lighting alone. Here though, we’ll use lighting to properly illuminate our subject and to give it more appealing vibrance rather than the dull appearance it has now (looking from the previous renders we’ve had).
Let’s first select our main can model and snap our cursor to it with the SHIFT+S hotkey and choosing Cursor -> Selection. Then let’s add in an Empty by pressing Spacebar > Add > Empty. Scale up the empty such that we see it more and not occluded by the can’s geometry. We will be using this as our track object for our lighting scheme.
Let’s delete whatever lamps we have now and let’s go to Top View (Numpad 7) and add in a Spot lamp by pressing Spacebar > Add > Lamp > Spot. Then with the Spot Lamp currently selected, shift select the Empty we added and press CTRL+T then choose TrackTo Constraint. This tells the lamp to always track the empty wherever it is so we wouldn’t need to worry about rotations. Then let’s move our spot lamp around at a good position, somewhere diagonally infront of the can and the camera.
Adding a TrackTo Constraint to the Spot Lamp
Next, we adjust the settings of our spot lamp such that the distance only covers shortly past the subject and not way beyond it, so that we don’t lose extra memory with the computation. Even the distance of the buffered shadow we’ll use should only be at a minimal and efficient level. You can play around the other settings however you want though.
Then let’s duplicate the current spot lamp that we have now to create additional lighting. To accentuate our lighting even more and to help out with our illumination without having to add more lights, let’s go ahead and turn on Ambient Occlusion under the World Menu. And even better, we switch our viewport shading to Textured and turn on GLSL to clearly see what’s going on in our scene as we move our lights without having to rerender everytime we make changes. This is a good way to see what’s happening around in our scene in realtime.
Ambient Occlusion Settings and Realtime Textured View
If we render our scene right now, here’s how it will look like:
Render with Lighting
At long last, we’re one step away into finishing this article. Excited already? Let’s get it going then.
COMPOSITING AND ENHANCEMENT PHASE
This part of the article is just a little extra I decided to add in which is always a part of my workflow, whatever I do with Blender. But if you’re already happy with the results that we have so far in the previous part, you can stop here.
Before I even appreciated Blender’s compositing tools, I often brought my rendered pieces to GIMP for enhancement and some color correction, but I thought that’s too much work to do and such a tedious task indeed especially with tight deadlines lined over you. So I decided to finally make Blender an all around app and even handle this kind of task.
Let’s begin this part by getting rid of any extra windows that you have on your Blender screen and seeing only the 3D Viewport and the Buttons Window as much as possible. After you’re done with this, go ahead and change the 3D Viewport with the Node Editor Window.
When you’re at it already, you see nothing but a blank window. What we need to do first is to click the button on the bottom part of the screen which says Composite Nodes and which has a face icon on it. Then click Use Nodes and click Backdrop (very handy). Now we see some primary nodes come to life.
The Node Compositor
To really make use of the Backdrop feature of the Node Compositor, we need to add in a Viewer Node which basically lets us view whatever changes that happened on a node connected to it. Let’s add it by first selecting the Render Layer node then press Spacebar and choose Output > Viewer.
Adding a Viewer Node
Now we see the image on our backdrop. To make things a little more organized here, let’s move the Composite Node and the Viewer Node over to the far right and we’ll deal with them later. You can navigate in the node compositor this way: Middle Mouse Button pans the view, Right Click selects nodes, Shift Right Click selects multiple nodes, Click Dragging on node lines will remove the relationship, SHIFT Middle Mouse Button moves the Backdrop Image.
First thing we’ll do here is add an RGB Curves node, similar to the RGB curves that we see in GIMP, Photoshop, or any other capable paint applications. What this does is averages the colors based on the curves you specify. We’ll add this node by first selecting the Render Layer Node, then Spacebar > Add > Color > RGB Curves.
I’ll use here the rather common S Curve or Contrast Curve as some might call it. With the C button enabled in the RGB Curves node, we’ll add a point by left clicking on the graph and dragging the points accordingly. You’ll notice that I added three points here, the upper right point covers the highlights, the lower left point the shadows, and the middle one the midpoints or some use it for gamma ranging. After I’m done with this node I added a new Viewer Node just so I could see the difference that was made from the original one. Or you can just link the previous Viewer Node to the RGB Node by click dragging their respective inputs and outputs.
Then finally, connect the Image Output Node of the RGB Curves Node to the Image Input Node of the Composite Node. Rendering the scene now will not respect whatever changes we’ve done with the Node Compositor. For it to take effect, we must tell Blender to use our nodes in outputting our renders. Do this by toggling the Do Composite button on under the Scene (F10) > Render Buttons then under Anim panel.
That’s it! Render your scene and something like this will show up:
All done! Finally! Thanks so much for being here still. So far we’ve covered up the topics from modeling to shading to texturing and finally to compositing and color correcting a tin can in Blender. I learned a lot myself from creating this article.
And just a little teaser, here’s something I recreated from our scene:
We have seen everything from modeling a tin can from scratch, giving it some basic shading, adding appropriate textures, finalizing the lighting schemes for the scene to lastly compositing it for a better feel.
If you have read this article you may be interested to view :
- Modeling, Shading, Texturing, Lighting, and Compositing a Soda Can in Blender 2.49: Part 1
- Creating an Underwater Scene in Blender- Part 1
- Creating an Underwater Scene in Blender- Part 2
- Creating an Underwater Scene in Blender- Part 3
- Creating Convincing Images with Blender Internal Renderer-part1
- Creating Convincing Images with Blender Internal Renderer-part2
- Textures in Blender