The Secrets of Realistic Texturing

Discover the secrets to creating realistic textures in blender.

Length:
34 minutes
Software:
Blender 2.65a and CrazyBump
Difficulty:
Intermediate
Rate:
VN:F [1.9.17_1161]
Rating: 4.8/5 (152 votes cast)

In this tutorial you will discover:

  • The fundamentals of texturing
  • How to use CrazyBump to generate texture maps
  • How to make a realistic cobblestone material

I realized that there aren’t too many tutorials out there that explain the different texture types. Diffuse, normal, specularity, displacement, occlusion. WHAT DO THEY MEAN!?  Well in this tutorial I cover exactly that.

We’ll be creating our own versions of those texture types using a base image, then using those textures in Cycles to create a realistic cobblestone material.

Finished Result

This tutorial covers how to create the cobblestone street material.

This tutorial covers how to create the cobblestone street material.

 

Download the Finished .blend

Download the texture used in this tutorial

Text Version

Not a fan of videos? No worries! Here’s the text summary:

Most people are taught that in order to texture something all you need is an image. However this gives boring, flat and very unrealistic results. It’s essentially the same as printing off the texture onto a piece of paper and sticking it onto a wall:

 

The light doesn’t interact with the bumps in the texture, nor the gloss. It’s completely flat and unrealistic:

 

A better method is to generate a normal map, specular map, occlusion map and displacement map.

This allows the light to interact with the bumps, gloss and displacement, resulting in a much more realistic material:

Very few artists can be bothered creating all of these, but it’s the biggest thing that separates realistic materials to average materials.

Adding a basic texture in Blender

We’ll start by adding a base color texture to a plane and setting up the lighting.

1. Load the default scene in Blender and replace the cube with a plane.

 

2. Change the default lamp into a Sun lamp, set the Energy to 10 and Size to 0.010. Rotate the sun so its shining along the surface of the plane:

 

3. Go into Top View (Numpad 7), then edit mode and unwrap (U) the plane via Project from View (bounds).

 

4. Add a new material to the plane, and split the window to show the node editor:

 

5. Add an Image Texture node (Add>Texture>Image Texture) and load in the FloorsRegular0105 image (tiled), then connect it to the Diffuse Color input.

If you render it now you should see this:

Just getting started...

How FLATtering

Using CrazyBump

For the next part of this tutorial we will be using a program called CrazyBump. It’s not free but it does offer a full 30 day trial.

CrazyBump is used for taking an image texture and easily generating a normal, displacement, specularity and occlusion maps from it. You don’t “need” it, but it will save you hours of work from trying generate those maps yourself using Gimp or Photoshop.

 

1. Once you’ve downloaded and installed CrazyBump, click the Open button in the bottom right hand corner of the main screen.

 

2. Locate and select the FloorsRegular0105 texture on your harddrive. After it loads it should ask you to select a shape. Click the one on the left:

 

3. Once it loads you should be taken to a screen where you can adjust the Normal map. A Normal map is a special texture type that will create realistic bump maps.

Intensity: Adjusts the height of the bump

Sharpen: Artifically sharpens the texture

Noise Removal: Useful for removing excessive noise in the bump mapping.

Shape recognition: Changes how accurate it finds the shape. High values will give crisper edges.

The parts highlighted Red are what I changed, but are optional. The settings will be entirely different depending on what image texture you’re working with.

 

4. Next click the Displacement tab. This type of texture will be used to physically change the geometry of the plane.

Depth: Changes the height of the displacement.

Enhance Detail: Changes how much of texture will influence the map.

Soften: Blurs the texture slightly (use if displacement appears too jagged).

 

5. Next click the Occlusion tab. This type of texture will be used to fake dark crevices.

Power: Changes the power of the Occlusion effect (lower is more).

Enhance Detail: Changes how much of the texture shows through the map.

Lighten: Artificially lightens the map.

 

6. Next is Specularity. This type of texture will change where the shader will be shiny (black=no shininess, white=full shininess)

Slope Influence: Smooths the specularity shape to make the object appear round. Texture Influence: Changes how much texture shows through the specularity.

Enhance Detail: Sharpens the detail.

Noise: Generates noise over the map.

 

7. Once you’re satisfied with everything, click the Save icon then in the popup, Save All Textures.

 

8. Choose a location on your hard drive to save the files and voila! The textures are generated and ready to use:

 

Adding a Specularity Map

1. Add a glossy shader and set the roughness to 0.1.

 

2. Add a mix node and connect it to the diffuse and glossy shader.

 

3. Add an Image node and load in the Specularity map we created earlier.

 

4. Add a mix node, connect it to the Image node and the Fac input of the Mix Shader. Set the bottom input to black and the Fac amount to 0.985.

 

Your material should now render like this:

 Adding the Normal Map

Updated: 11th January 2013 to correct a previous error regarding inputs.

1. With the plane selected, go to the node editor and add a new image texture node. Click the Open button and load in the Normal map texture we just created. Since it’s a normal map, set the type to Non-Color Data.

 

2. Add a Normal Map node (Add>Vector>Normal Map) and connect it to the image texture node. Connect the output to both the Diffuse and Glossy shader Normal inputs.

You should now have this:

Looking better already!

 

Adding a Displacement Map

1. Before we add the displacement map, we need to add more geometry to our plane. Go into edit mode, press W then in the toolbar (T) set the Number of cuts to 30 (you’ll need to type it in manually).

 

2. Next go to the modifier panel and add a subsurf modifier level 2, for even more vertices.

 

3. Add a Displacement Modifier directly beneath it and click New texture.

 

4. Go to the texture panel and change the type to Displace. Select Image from the dropdown, then select the generated displacement map we created earlier.

 

5. Return to the modifier stacker and set the strength to 0.012 and the direction to Z.

Render now and you should have this:

 

Adding the Occlusion map

Depending on the material, this is probably the least important of all the texture maps as it’s very subtle. Still, it can help push your material closer to “photorealism” territory.

1. Add an Image node and load in the Occlusion map we created earlier.

2. Add a mix node and drop it between the diffuse shader and the image texture. Connect the occlusion texture into the bottom input and the diffuse texture into the top input. Set the blend type to Multiply.

 

Your final render should now look like this:

 

Final material node setup:

 

Hope you enjoyed this tutorial!

Create something cool? Post in the comments below :)

The Secrets of Realistic Texturing, 4.8 out of 5 based on 152 ratings

About Andrew Price

User of Blender for 9+ years. I've written tutorials for 3d World Magazine and spoken at three Blender conferences. My goal is to help artists get employed in the industry by making training accessible and easy to understand. I'm an Aussie and I live in South Korea ;)
  • Tonio

    Here is a useful and free alternative to CrazyBump: xNormal (http://xnormal.net).

  • Summ1t

    Many thanks. As always, an excellent, concise, and informative tutorial, Andrew. Since I can’t afford premium licenses, I had to tile a free texture on my own (that was another tutorial). Very happy with the results!

  • Danny

    Hey andrew, grat work with every single video man. Very impressive, I just have a question I have been researching for few days now and can’t seem to find a solution to. My blender rendering devices display no gpu rendering. I used blender 2.66 now 2.67 and no change. Also updated to the latest drivers. I have AMD Radeon HD 6900 Series. Any help with this topic would be greatly appreciated. Thanks man. You inspire me and my journey as a blender noob. Here’s my contact info: danielnicolaus7@gmail.com.

    • http://www.facebook.com/profile.php?id=100002179645869 Stian Scrabb Folvik

      Hey Danny!

      sorry to tell you, but GPU rendering is only supported on Nvidia graphics cards, or CUDA drivers. AMD uses openCL. I am in the same boat as you are, we should run and buy ourselves some nvidia soon!

      More info at the bottom of this page; http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/ToDo#On_Hold

  • TheAnonymousMonk

    Wonderful Tutorial.. Thank you for the hard work. I also live is S. Korea (American)…

    And thank you even more for the non-video portion. That is a real plus.

    THANK YOU

  • Realist

    Nice tutorial :) my scene looks life like now!

  • Jacco van Leeuwen

    Awesome tutorial. Learned a lot from it.

  • Pravin Sashidharan

    Excellent tutorial.
    As others have pointed out in the comments , Please mention to change to Cycles Render , at the beginning of the tutorial. Otherwise it is impossible to follow, for someone relatively new to Blender.

  • http://www.facebook.com/nickymelwani Nicky Melwani

    hey jonathan. im trying to create a wall using a brick wall texture. and i notice that during the first step, when andrew attaches the NRM to the Normal Map. his floor gets all rugged. ive noticed this only works when the plain is rotated on the x axis, however when i rotate the plain 90 degrees so its a wall and not a floor, it no longer works. how to i fix this?

    • Rick

      Start on a plane and the first thing to do before you add anything is to rotate it to the “X” direction… Then on the displacement modifier… You’d need to change the “Direction:” to the “X” instead of the “Z”

  • http://www.facebook.com/nickymelwani Nicky Melwani

    Hey Andrew.. Just have a question. Basically you r desigining a floor. Im trying to design a wall (vertical plain). and ive noticed the first step with the normal map only works when i arrange the plaine horizontaly. however when i rotate it 90 degrees so its vertical it no longer shoes any bump. How to I fix this? Great tut btw. Big Fan. Hope you had a great Honey Moon!

  • Sefa Öztürk

    i don’t do this my blender version is 2.66 please help me
    Add>Texture>Image Texture

  • kikooky

    Andrew, when I went to the CarzyBumpü website to install it (or rather my Dad, cos he controls everything) a warning came up about it being riddled with bugs. Why would that be, and what can i do so I can actually get a similar program or the same program without putting my computer at risk?

  • http://www.facebook.com/jacob.twitchell.5 Jacob Twitchell

    Just in case anybody was looking for another free alternative to crazybump…

    https://www.knaldtech.com/

  • Leigh

    FYI: I tried to buy CrazyBump, but my antivirus program said it was bad and deleted the download. Their tech support never answered my email – meanwhile, I bought ShaderMap 2 which works great and costs $60 less than CrazyBump.

  • ecarran

    I followed strictly the Tutorial, but my final result is very poor, with some weird artifacts here and there…

    Could it be caused by a poor resolution source texture? (I don’t own a Premium account on cgtextures, so I downloaded the small tiled version of the texture (700×700))

    Or should I increase the number of samples for rendering (currently using 100)?

    One last question: shouldn’t you select “UV Map” in the Normal Map node?

    Nevertheless, thanks again, Andrew!

  • http://www.facebook.com/gavin.laughland Gavin Laughland

    I must be missing something. I went to add the normal mapping node under the Vector category, only to find that I have two options, Normal and Mapping. Also, I downloaded your .blend file, to see this. Ignore the render quality. :)

  • http://www.facebook.com/HunGunar Gábor Dudás

    I just made this tutorial (only the text version) and when I look at the rendered texture, it’s completely black. What did I wrong?

  • onjoFilms

    Nice. Only difference i would do is on the ‘Displace’ modifier, is not use ‘Z’ but use ‘Normal’. This will use the Normals as the direction for bump. Makes sense if you had this as a wall instead of a floor.

    • http://www.facebook.com/nickymelwani Nicky Melwani

      THANK YOU !!!!!!!!!

  • onjoFilms

    Finally got time to watch this. Great job, thanks.

  • sushichris

    This tut is amazing :D tho… I am having an extremly hard time baking from this exact setup to blender game engine… if you could follow up with a baking tutorial of this exact set up it would compliment the tut and help me out tons :P
    I love your tutorials :D
    thanks!

  • Simon

    Is there any website or article which would explain how all those maps reflects to each other and etc.

  • http://www.facebook.com/michel.cavro.1 Michel Cavro
  • Jakub
  • gavk

    a free alternative (at the cost of a nvidia g-card, i know) to the crazy bump program (also only available to photoshop, damn them), but heres the link….

    https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop

  • Dani

    hi. newB here. I am having problems with adding a material. I cannot find the “COLOR” and that “DIFFUSE BSDF”

    thanks.

    • Dani

      help me please

  • Terzilio Lilli

    how to proceed instead to the curved surfaces?

  • Arno, from Bordeaux

    Hello Andrew !

    Thanks one more time for your great tutorials.
    Starting from your project, I tried to populate it with houses.
    I added some post-pro (blur+glare+rgb).
    Can you advise some things to add ?

  • aldrian

    hi.. i realy new in blender,,
    why my node different than andrew node ?

  • Andrew

    I didn’t get results looking anywhere near what this tutorial looked like, even double checking all of my inputs, but I think my problem stems from the program used to generate the maps. When comparing pictures on this tutorial to the ones my computer generated, they looked terrible. Any suggestions as to why?

  • Francois Snyman

    I’m not sure if anyone’s asked this, but how do you get that lens flare thing that you added in the two .gif images? I’m currently working on a school project and i think it’ll add a nice touch.

  • Dat Guy

    Help! I cannot find the option to make the material a image texture. This is a really nice tutorial I would like to do!

  • http://www.facebook.com/michel.cavro.1 Michel Cavro

    Free Normalmap generator for Photoshop:
    http://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop

    Free Normalmap generator for Gimp:
    http://code.google.com/p/gimp-normalmap/

  • Bradley

    Hmmm I wonder if I can lay one of these down on my nature academy grass field I just did, by the way the nature academy is awesome just started my first week!!!

  • Thordur

    Thank you for this tutorial, it was very helpful. I was thinking lets say I add in the images i get from crazybump. Then in the node editor i use the mapping node to adjust the size of the texture, to make this work for every other texture the normal map etc i connect the mapping node to all the textures but what should I do with the displacement, since I don’t have any nodes with this technique?

  • http://www.facebook.com/austin.brennan.90 Austin Brennan

    I thew this together while watching the tutorial. Thought it might make things a little more interesting

    http://imgur.com/gallery/MOMD8bG