Blender Tutorial : Chair Materials
Posted by Aidy Burrows on May 28th, 2015 | Comments (12)
Hey there digital upholsterers! It took some time, but part 2 of the Chair series is finally here!
As my desktop was possessed by a demon, I’m having troubles to record a video without strange stuff suddenly appearing, so this second part will be a text one! yeea 😀
(What?!, you didn’t see the first part? :O Check it out here!)
Without further ado, let’s take a look at what we’ll be doing today:
● Sculpting Details
● Creating a Procedural Leather Shader
● Build a Metal Shader using photographic elements
● Setting up a lighting scheme
-> Ingest some caffeine, and here we go!
Step 1: Sculpting Details
The model we have so far is already quite good for a render, but what if I told you that we can improve it even further? Even getting a pleasing result with subdivision modeling, we are somewhat limited in terms of what can be achieved in a reasonable amount of time without getting crazy, wrinkles and that kind of stuff would be very hard to model in a convincing way by just pushing some polygons by hand. With a powerful enough computer we can push our models further by using some sculpting tools and techniques, so you can put the technical stuff aside for a bit and focus entirely on art.
In order to work in Blender efficiently with a high amount of polygons (needed for sculpting), we need to tweak it a bit, so lets set it for optimal performance:
1. Go to File > User Preferences (Ctrl+Alt+U)
2. In the System tab, enable VBO’s
What this does is Enable Vertex Buffer Objects, changing the way OpenGL deals with geometry to a newer approach, so instead of the GPU making a call for every face you want to draw, with this you’ll upload all the geometry at once as a buffer, and draw everything in a single call. Very neat, if possible, save it on as default, worth it.
Ok so we’re done, let’s sculpt!
1. Take off the Subsurf, instead we’ll use Multires Modifier!
(The Multiresolution modifier gives the ability to subdivide a mesh to different levels depending on whether you are viewing it from the 3D Viewport, Sculpt Mode or at render time.)
2. Enter in Sculpt Mode and subdivide the mesh four times in the Multiresolution modifier tab, now we have enough polygon density to add finer details!
3. It’s always good to have some reference when doing art, so lets gather some pics of leather folds, etc:
4. Open the Tool Shelf (T), we have here the brush settings. Now we have two main options:
● Sculpt every detail as an unique feature
● Mirror the details done in one side to another, speeding up the process
5. In this case, I’ll be mirroring both X and Y axes in the sculpting process, this way I’ll only need to sculpt ¼ of the model, you can sculpt everything unmirrored as well too for an object with more personality and less repeated features, but you’ll spend a good extra amount of time at the expense of uniqueness.
To mirror brushwork in a certain axis, go to the Symmetry tab (In the Tool Shelf “T” inside Sculpt Mode):
6. Now comes the fun part: Setting the brush and sculpting!
Some guidelines on this subject:
● Under the curve tab, you can set the falloff of your brush to any curve you desire:
If you have no idea what this is about and need some examples?
● Control the Brush Size using (F) and the Strength using (Shift + F), these controls are also available in the Tool Shelf (T)
* More Sculpting Hotkeys here: http://wiki.blender.org/index.php/Doc:KO/2.6/Manual/Modeling/Meshes/Editing/Sculpt_Mode
7. Now just start sculpting, trying to replicate some leather foldings. Start near the buttons if you are new to sculpting overall:
(Its highly recommended to do it using a tablet, but you can do it with a mouse too, just don’t expect it to be just as fun)
8. If you are experiencing any slowdowns, you can toggle on Optimal Display, under Multires modifier tab to skip some edge drawings, or buy a couple of GTX Titans and Teslas 😀
9. If you hold shift while in Sculpt Mode, you can smooth the mesh with your current brush, use this to smooth a little the ends of foldings in order to have a nice fade. – But don’t smooth everything that much, stuff still need to be sharp for the awesome factor!
10. Try to experiment with new brushes and curves, find what fits best for what you’re doing
Sculpting takes time, it’s a kind of trial and error approach. Don’t be afraid to stop, delete everything and start from scratch, what you need is persistence, be it doing a cube or a dragon, skill takes time to be built (like muscles!), don’t worry about that 😉
(Hey! remember that we have the cushions instantiated? If you add a Multires modifier to the other instance and set the subdivision level, all your sculpting done in one mesh will be transferred to the other!)
Step 2: Setting up the mesh for shading
Ok, so now we have a pretty neat mesh, but we still need some colors and shading to make it really pop up. We have a bunch of ways to do it, we could bake our sculpted details to a low poly mesh, and use it in real time applications (like games) for example (“bake, what?” You’re unsure about what this is? Lucky you, we have a very comprehensive article about game assets & pipeline, right here!), or you can project some textures on the high poly, be it with UV or generated coordinates. As our focus here is on a final Product Viz render, we’ll be doing a quick UV Unwrap and using the high res model for our final render, so lets do it!
1. Start by entering in Edit Mode and selecting these edge loops/edges:
2. Mark these edges as seams by pressing Ctrl + E > Mark Seam
Before we proceed, let’s quickly understand the logic behind this:
● When you mark a group of edges with a seam, this means that the marked area will be cut in that location, so in this case we’ll be separating the top > middle part > bottom, this way we’ll have three separated parts (in the UV Editor)
● The whole point in this is to transform our 3D mesh into something that we can put some 2D textures into it, so we need to have all the geometry open in a plane (2D space)
● This is why we’ve added another cut in one of the middle-part edges! so it ceases to be a cubic/cylindrical form to be a plane! 😀
3. Unwrap it by pressing U > Unwrap:
Note that the buttons on top had their UV coordinates totally squeezed, this happened because we haven’t cut enough our geometry to get the algorithm to unfold well all the geometry into a planar space.
*you can create a checker grid texture to check stretch issues
Now that you know what a seam is, how about to cut our buttons from the cushion, so they’ll have their own UV islands?
4. So lets select the same edge loops in all buttons! (remember how? Shift+G to open Select Similar, then choose similar normals!)
Apply a seam to them and unwrap everything again, now you should have a way better unstretched UV!
(take note that our UV layout here is far from perfect, we just need something good and fast enough to allow us to achieve our goal -a render- )
You can spend a good amount of time tweaking your UVs to perfection (read more about it in the UV section of this post), but in some cases you may just want something that will hold your textures in place and look good enough on camera, each case needs a different approach, but lets stay in the basics with these 😉
Step 3: Creating the leather shader
Ok, so we have our UV’s and everything is looking fine, we just need to craft some nice looking shaders for our furniture right now!
I could simply put a leather texture to use as a base, but we’ll go a bit farther and create our very own leather pattern, and then mix it with a tiled leather texture to add a bit more detail, and some shading goodness to take it to another level.
First we’ll be making a bump map for the leather pattern using procedural textures, the bump map in this kind of material is the texture that contributes the most to the final result, so instead of using a photo as a base, we can do better by creating it procedurally, this way we’ll get a crisper and cleaner bump map to work on, resulting in a pleasing render 😉
The procedural leather pattern was heavily based on the work of Eduardo Maldonado, this guy creates very nice procedural shaders, totally worth a check: http://elbrujodelatribu.blogspot.com/
*Note that the Scale values will vary according to the overall scale of your model, so don’t be afraid to change it in case it gets too big or small*
● Leather Pattern:
1. The first thing we’ll be doing here is to add a wave texture, this will be the base for our pattern:
2. Then we’ll add a Math node (Power) to raise the contrast between black and white areas, creating a nice mask for us:
3. Let’s use a Color ramp to control the range of blacks and whites, for our pattern we need a thin black line for the bump map:
4. The leather pattern consists of small squared shapes, like a checkerboard, and this is what we´re trying to achieve, for this, lets duplicate all that we´ve done until now, but with a 90 degree rotation using the Mapping node and setting the texture coordinates to UV (procedural textures can be used without UV coordinates, but this time we’ll be using them, in case you don’t want to use UV’s, you can set the coordinates to object instead):
5. Now, we’ve to merge the two groups together to have our base texture. I’ll be using MixRGB node, blending in Darken mode and using the first group as the mask to preserve a bit more color information:
6. Lets soften a bit these values using the Invert node:
7. Our main pattern is done! Now we just need to create a bunch of variations to blend in this main pattern in order to have a better organic feel, for this lets duplicate the whole node tree we have so far, but this time using different rotation and scale values:
8. And one more time:
9. Now it’s just a matter of merging everything together using the MixRGB nodes in Darken mode, as we did before:
10. And one more time to blend the bottom one as well:
11. And last, lets use a Gamma node to tweak a bit the color intensity, and low down these highs:
And this is how everything’s looking so far:
● Base Shader:
1. And the magic starts to happen, from here It’s easier to just look at the images and understand the changes, the leather pattern we just did goes into the height input of the bump node:
2. For a sexy shiny leather we need to add some glossy reflections to it:
3. To control the roughness we can do some tricks:
4. Surfaces like leather tend to be glossier at grazing angles, to simulate that, we’ll be using a fresnel node to control the mix between the two nodes plugged into mix shader:
● Secondary Leather Layer:
1. I’ll be using a tiled leather texture from CGTextures here to add a bit more depth and detail to the whole material, and also tint it a bit with a brownish color:
2. And then also use it as a bump map, the idea here is to use this texture as a detail map for the leather, as it will be merged with our main texture later, adding a bit more detail and texture:
3. Before merging everything together, let’s use the new pointiness output from geometry node to add a bit of variation to the leather around the edges:
4. And lets increase a bit the contrast to highlight more the edges:
5. Now we’ll use it as a mask to highlight the edges of our leather texture:
6. Before we proceed, we can tweak these values a bit and add a little more variation by using the procedural pattern we did before and overlaying it with our edge mask, this relies a bit in being quite an experimentalist:
7. Ok, so let’s put everything together:
● Final Shader:
1. We can start by merging everything together using a mix node, I’m using basically the procedural shader as our main shader, and just a bit of the photo-sourced one to add some subtle details:
2. We’re almost done! lets just tweak a bit more by adding a second “coat of varnish”, this is totally up to you, the look I’m pursuing for my chair is a hard polished leather:
*I’m using the bump map from the procedural leather in the glossy node here too
3. This time we’re gonna use a Layer Weight instead of the fresnel node to do a blend based on angle, fresnel and facing work a bit different each other, test both!
*This time I’m using the bump from the photosourced image as the normal of the layer weight node, this will add a bit more texture and detail to the overall shader:
4. And we’re done! lets take a look in the whole node tree:
The goal here was to show how we can combine several elements together to create something unique, dont be afraid to test new things, connect some unknown sockets to see what happens, remember: just by doing that we can really learn it!
Tip: You can get some different results by adding a noise texture straight into the Displacement socket of the Material output to simulate some leather foldings, and use a ColorMix node to control the amount of strength of the displacement:
Step 4: Texturing the other parts
We have our main piece ready, but we still have some chair parts left, so lets do it!
For the metal parts, we’ll be using a photosourced texture as a base, this way we can have some interesting bumps, glossiness and shapes, contributing to the believability of the piece, for the straps, I’ll be using the same leather shader we did before.
● Leather Straps
1.For the straps we’ll do a quick unwrap and reuse the leather shader as it’s a piece that will be barely seen in the final render, so let’s start by doing a Smart UV Projection by pressing U in the Edit Mode while selecting all the geometry (press A for that)
Be sure to have all transformations applied to your mesh before performing the unwrap, you can do this by pressing CTRL + A > Rotation & Scale. This will reset all the transformations you did before and unwrap your mesh correctly.
2. Now apply the leather shader to it, if the leather pattern gets too small or large, you can adjust it by scaling your UV map accordingly.
● Metal Base
1. Lets start the same way we did before with the straps, doing a Smart UV Projection, this way we can add our photosourced details.
2. I’ve searched for a metal texture, CGTextures is a great place for this, the purpose of it is to add a bit of variation by adding scratches and so on.
3. Dont worry that much about it, this will mainly be for the glossy shader, so you’ll be fine with a not so awesome metal texture, just make sure it has some cool color information that can be translated to a bump map/roughness 😉
This is my shader setup for it:
The concept behind it is similar to the leather shader, a base texture being used as a source for our bump and roughness. I just used the image as it is for the bump node, while for Roughness I decided to invert it to catch some cool nuances, and then used a Gamma node to tweak a bit of the roughness intensity. You’ll always need to play a bit with your values until you find something that fits your ideas, so don’t worry to test crazy stuff!
We also have two glossy shaders into play here, the top one is the main, responsible for the most part of detailing, due to the roughness map, the bottom one is intended to add increased reflectiveness, and also a bluer tint (from the texture) to the edges, as we’re blending it using the Layer Weight node 😉
Here’s the metal shader:
A bit dull because it has nothing to reflect 😉
Step 5: Setup Studio Lighting
Ok, so the hard work is done, now comes the fun part: Lighting!
First we’ll see how to create the infinite backdrop, used vastly by photographers to shoot products, and people. (not literally, generally)
Then we’ll setup a bunch of light planes to light our scene, you can go crazy on this step and research lighting schemes used by studios and try recreating them inside blender, we’ll go for a functional/artistic approach here:
● Creating an infinite backdrop:
1. The first step here is to add a cube that will serve as a base for our backdrop:
2. Delete the sides that you won’t need, here I’m deleting everything but the floor plane and two sides of the cube, that will be our “walls”:
3. Apply a subsurf modifier to it and flip the normals by entering in the Specials Menu (W), in Edit Mode:
4. Now, set it smooth and add an edge loop (CTRL+R) into each each axis to support the floor plane, and start to shape the backdrop by scaling the edges to make it softer:
There are several ways to do it, so dont hesitate to try out different approaches.
● Setup of the Lighting Scheme:
Nothing super fancy here, what I did was just to add some light planes in strategic positions that give me certain highlights and shadows, there are some guidelines and strategies about lighting that you can research about, start by searching about the traditional “three point light” setup, should be a good start 😉
This lighting setup is not meant to be copied indeed, experiment your own lights and see how every change affects the object silhouette and form, understanding the concepts is better than just knowing how to apply them;
The Main Light was my starting point, I wanted to simulate something close to a studio setup with some strong cold light like a led one, for this I used the Blackbody node plugged into the color socket of the Emission Shader, there you can set specific color temperatures for your light sources
This is the actual simple node setup for the majority of light planes:
With the Fill Light, I wanted to create contrast by using complementary colors:
Color wheel by http://designwashere.com/
I think you got it, they are the primary or secondary colors that appears opposed to each other in this chart, and can be a great element to improve your compositions! Another way of finding a complementary color, that is less intuitive but more mathematic, is by increasing or decreasing its Hue by 180°.
Then with the Rim light I wanted to highlight a bit the silhouette by positioning the light source opposed to the camera in a way that picks up some borders of the object on focus.
The background light was to light our infinite backdrop, softening a bit the shadows and creating a nice gradient from left to right.
With the Sun Lamp, I wanted to add some highlights from the top to pop a bit of the shapes of the chair, and also soften a bit the shadows by using a high value for the size of the lamp. This comes by experimentation, some things like this come by testing and testing stuff to see what works better for you.
● Color Management
A good practice to do even before the lighting setup is to add some film emulation to your render, if you want to obtain a specific look to your renders, I highly recommend this because it can totally change a mediocre render to somewhat almost awesome! But in some cases you may want the render to be raw, like if you’ll want to make some fancy post-processing outside blender and need all the color information, otherwise, it’s awesome!
The color management tab is under the Scene panel, there you can apply some film emulations and perform Exposure and Gamma corrections, very important if you’re using film emulations, in order to compensate the limited color gamut:
There’s also a look category with various film emulation profiles, it would be very cool to test them out and start the grading of your render there!
Step 6: Rendering/Post-Processing
Down the street, we just have some buttons left needing to be pressed before we’re done!
We just need to tweak some stuff before to get optimal results:
● Adjusting a Camera
We’re not going into greater detail about this, just some guidelines:
Less than 21mm: Architecture
35-70mm: Street & Documentary
135-300+mm: Sports, Wildlife, Product shot.
Just don’t limit yourself to use just what is provided to you. (the defaults)
● Render specs:
The right sample amount will depend on the resolution you’re aiming for, the type and amount of lights, scene occlusions and the list goes on, so the best way to find out is by TESTING.
Generally you can get a fairly decent result with low samples, something around 200 (but in a FullHD render at least), unless you decide to use Full Global Illumination, then you’ll need a good amount of samples for a good “noise free” render.
In general for glossy materials you’ll need a higher amount of samples, due to the way unbiased rendering works, so here’s the optimal render specs I generally use:
(Although some times my nerd side speaks louder and I just want to use everything maxed out with a very high sample count. This is especially true when I have sufficient free rendering time for these perks.)
● Post Processing:
We can always improve our renders even more by adding some real world glitches to it, an easy thing to do inside Blender is to add some camera artifacts to our render:
Note that these settings are VERY dependant on the type of image you’re manipulating, the Threshold value especially, so try it for your own and see what works for you 😉
Here, the Glare nodes, the first is to add some glow to the brighter areas, as its name suggests: “Fog Glow”. The second one is to simulate the light streaks, artifacts from camera lens, as well as the Lens Distortion node, with the well-known chromatic aberration effect (use it wisely!).
● Further Post-Processing:
You can yet go beyond that, in a specific image treatment software like Photoshop or Gimp, where you can do some heavy color correction work, paintover and all kinds of grading and editing, I won’t be entering into the matter, that’s a subject for a whole new article or maybe even a book!
And this is the final image processed as it would be for an advertising medium:
A quick layer overview:
Just some adjustment Layers with masks, I use these masks to apply the effect just to some parts of the image, like: in the second adjustment layer, I had used the Exposure to highlight some parts of the image in a similar way to the “Fog Glow” node in blender, but in a artistic way, so I used the gradient tool set to radial to add little spots of “glow”, highlighting those parts.
(and yes, I inverted it, its not a crazy filter)
Well, I hope you all enjoyed this quite long tutorial (sorry for that!) and learned a thing or two meanwhile.
Just some notes that need to be taken:
Hey, this whole tutorial series is not intended to be a “How-To” guide to build a specific object, that’s why we are doing it based on the barcelona chair instead of just copying it, if you want to really learn something, you need to work yourself on the informations you got and figure out how to apply them to your personal goals, THIS is learning! And you’ll only start to learn properly when you get to stop just following a tutorial and start applying its concepts to what you want to do. That’s why I’ll never do something very specific that would be just a matter of copy and paste, I don’t want that you to copy what was given to you, I want you to take that knowledge and make something even better, that’s the goal!
Did you get it? SO YEAH, WE’RE DONE! see you next time! 😉
Suggested videos/Related content>
Written by Guilherme Henrique