The Secrets of Realistic Texturing

Discover the secrets to creating realistic textures in blender.

34 minutes
Blender 2.65a and CrazyBump
VN:F [1.9.22_1171]
Rating: 4.8/5 (207 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 207 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 ;)
  • Constantine Leon

    It would be helpful if you could show us this using GIMP a free source program.

  • Pingback: The Secrets of Realistic Texturing « Pimentel 3D

  • CradleofFilth#1

    My result….I can’t get shining :(

  • TimeMow

    Here’s my result

    • CradleofFilth#1

      How to create this wonderful shining?
      Help me please..

  • Zorobay

    Easy to get great results!

  • Pingback: 真实贴图秘密 – The Secrets of Realistic Texturing | Blender Totem

  • Shane

    Every time I apply the displacement map all it does is move the plane up and down no matter if Subdivided, apply sub surf modifier. I tried this manytimes times, made sure my blender is up to date. please help! I hate the ideal of making brick stones manually.

    • maije

      Make you sure your subdivision modifier es up in the list (upper than displacement modifier :-D ). The modifiers order of appliance it’s important. If it only rises the whole plane, the most probably cause it’s subdivision level.

  • Jennifer Thompson

    Hi everyone!

    Pretty brand new to Blender here, and I used most of this tutorial on an ongoing project (meaning: It’s not done. One of the huge ones that will probably go on forever with tweaking.)
    My change? I did not use the displacement modifier. It made my walls wonky, and being a sizable piece already, chopping it up even more did not make my computer happy.
    So with some fiddling, I figured out how to use the displacement map without using the modifier.It’s not perfect because of angles and light since were just modeling test renders, but I was pretty happy it worked out. The best part for me was that I didn’t have to modify every face with the brick texture on it.
    Thanks for the tutorial; it was extremely helpful!

  • Devila Alice

    Does someone know how to use bump map and mask map in blender?

  • Frankie Fung

    Actually when you compare the results before and after applying the occlusion maps you don’t really see a difference…

  • Emeraldo

    Hi there! First of all, this is a great tutorial, thanks!
    I am new in Blender and I am trying out a little bit the whole software. Here is my version of the technique that is shown here. Somehow i used bricks to test the effect.

  • aneroph

    I was interested in making this a rather large scene, but I seem to have run into a problem. The array modifiers are destroying my computer. I can get away with one, even two, but the 3rd one kills it. Is it possible to just duplicate the road (or whatever I’m Texturing) then join them together? Is there an easier way? It’s taking like 10 minutes just to figure out the math before I render.

  • Raveled

    The attached image is the actual node tree in the file I downloaded of the final scene. It differs from the Final material node setup pictured above. Excluding the puddles, there is an extra glossy shader and some different connections. Please explain the differences so I can understand how to use these two node trees.

    Thanks Very Much

  • Joesac

    This tutorial is really, really amazing. It has helped me a lot. Thumbs up.

  • Jbhmedia

    Does anyone know if textures have to be a certain exposure to work in a scene? I’ve been trying to combine blender 3d with live action for a while now and texturing is my biggest challenge by far.

  • Asilo_Driver
  • Kickinspace

    When I press render at ‘Adding a basic texture..’ step 5 the image shows a low res of pixels. I’m using 3000px size. Help please. I’m pretty much stuck…

    • Kickinspace

      Nevermind, a good response would have been start again. I did and it looks great, now to continuing the tutorial.

  • lolikins

    I don’t know if the creator still answers these blogs, but if someone else comes across this question maybe you can help me. I follow this tutorial step for step, but when i go to uv unwrap the plane by hitting u+ project from view(bounds) my uv editor unwraps a sort of skewed diamond shape. I have tried with multiple textures from jpg to png all different sizes and nothing has come put properly. Not only us the uv in the weird shape but the texture also doesn’t display. I have taken the time to go back and forth and match each of my settings to what is displayed on the screen, but sadly this video doesn’t take into account blender isn’t set up the same way on everyone’s machine. Please someone help me past this point.

    • Stephen Ritter

      It is because you are using project from view. Projecting from view will unwrap the object based upon where you are looking at the object from withing the 3d view port. You probably will just want to just hit “U” then hit “unwrap” before you go and subdivide the plane to death (lol). Unwrapping is useful for organic shapes. It smooths the mesh into a flat surface by cutting along seams (in this case you don’t need seams). The problem with your textures not displaying correctly is probably because your UVs are not unwrapped correctly. I hoped this helped here is the official website for the blender manual for UV unwrapping. Oh and by the way make sure you are using Cycles Render Engine.

  • Kaitlin

    I really hate to be a bother because this tutorial is really well done, but I can’t seem to figure out how to do it. It seems that the latest update of Blender (the one I have is 2.66) is set up differently than the one you’re using and i can’t really figure out how to use the same principles in the new version. I’ve just started using Blender and I really need to learn how to do realistic textures, but I can’t seem to figure it out. Any help would be greatly appreciated!
    Thanks in advance

    • Stephen Ritter

      Make sure you are using Cycles Render Engine.

      • Kaitlin

        Thanks! I just realized today that’s what was going wrong.

  • wreckedlemon

    Hi Great Tutorials,

    However a little problem here.

    I’m having a problem with my displacement textures. Instead of Bricks I get a weird wave. Here’s a screen shot.

    Any ideas?

    Great tutorials BTW. They’ve really helped.


    • wreckedlemon

      Hi there,

      Crisis averted. Started from the beginning and this time used the text walkthrough. Worked.

      thanks Andrew for the tutorials.

      • Endrasonhaji

        Iike that

        • wreckedlemon

          Have to say Blender is a bugger to learn, but when you get over the hump it is quite an amazing product.

  • GC

    THX Buddy,you’re awesome.

  • blender dz

    What Rikm in this design

    • Aftaab Taimur

      Hey there…. Amazing design. If a texture of grass is added, the result would be realistic. keep it up

  • Stavson

    I have only been using blender for about three weeks now. Your tutorials are amazing. Here is my result after your textures tutorial. I am looking forward to the next one you come out with.

    • Chacha

      Looks like Mario Kart! :-)

  • Christoph M.

    Hey, I’ve been following several tutorials of yours (this here the most) and ended up with the image below. Being yet a beginner, there is surely still much to do, but in the end, it is a good start, i think. How about you?

    • Ralph Gauer

      Very nice work…

      • jbhmedia

        So amazing! Do you know if textures have to be a certain exposure to work in a scene?

    • Newart2000

      Great work period I like it . excellent for a beginner.

  • josephfarrar

    thanks but if we wanted to use photo shop how would we

    • Stephen Ritter

      …So I use photoshop elements to make some of my textures. To make normal maps in photoshop you need to get this plugin:

      You can also manually create other textures in photoshop, such as a specular and displacement maps are basically a gray scale of the texture, but you probably need to make the blacks and whites more defined.

      I also use another program called MaPZone2. It requires more know how than someother programs, but it can make a nice texture. Oh and did I mention it is free :D

  • MaCNick

    I’m using MindTex to generate textures. I have got the same result. Remember: MindTex is free. Awesome tutorial.


    • Kjell Inge Sandvik

      No it’s not free. It’s 30 days trialware.

  • Richard Buchanan

    Don’t forget to change into CYCLES! It took me 20 minutes to realize that I was in the wrong render mode.

  • Human

    Awesome tutorial but its sad that CrazyBump is so expensive ._. Is there any other program which can do this but is free or at least cheaper?

  • LightingMan43

    never mind i did it thanks for the awesome tutorial :) ^_^