modelling icon3How to Create Realistic Bread

andrewprice 1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...
Tags - Photorealistic
Software:
  • Blender 2.67b
Discover How To:
  • How to use the new subsurface scattering feature
  • How to model and texture realistic food
  • Why Displacement and Normal maps are awesome

Chapter Marks (Full Length )

modelling icon38.28icon-texturing14.58modelling icon322.47icon-lighting28.08modelling icon341.07icon-texturing47.19modelling icon360.40
Software:
  • Blender 2.67b
Discover How To:
  • How to use the new subsurface scattering feature
  • How to model and texture realistic food
  • Why Displacement and Normal maps are awesome

Chapter Marks (Full Length )

modelling icon38.28icon-texturing14.58modelling icon322.47icon-lighting28.08modelling icon341.07icon-texturing47.19modelling icon360.40

Food is one of those difficult topics that a lot of 3d artists avoid due to it’s difficulty. Pixar even said that one of the hardest parts of Ratatouille was to make the food actually look appetizing.

So in this tutorial we’re gonna dive straight into the topic of food, and create a rather complex looking loaf of bread.

Finished Result

Download the finished .blend

Tutorial Files

I hope you enjoyed the tutorial. I’m looking forward to seeing some cool bread scenes soon!

PS. In the next coming weeks you’ll be seeing a few teasers from upcoming course The Architecture Academy. Stay tuned ;)

Summary

Modelling the loaf

Delete the default cube and lamp, go into Top View and add the loaf texture to the background.

 

Add a plane and move the vertices around to fit the white patch of bread in the center.

 

Extrude one edge out towards the end of the white area.

 

Do the same with the other 3 edges, so you’ve covered the white part of the bread:

 

Add 4 loop cuts (ctrl+R), along each wing to more accurately fit the shape:

 

Go into edge select mode, and select the outer edges of the shape:

 

Extrude the edges (E) outwards, then move the vertices around to fit the outer crust area.

 

Create a face between two wings, by extruding one vertex, then selecting the vertices and pressing F.

 

Continue this process, until you’ve covered the entire crust area:

 

Extrude the outer edge twice:

 

Select all the vertices then press U > Project from View.

 

Jump to the UV Image Editor, and load in the same loaf texture. Select all the vertices, then scale and move them around till it fits the image as we just modelled it.

 

Go back to the 3d view, and in face select mode, select the cross shape and move it downwards to create an indent.

 

Select the bottom edge loop, turn on proportion editing (sharp falloff) and move the row down to shape the loaf as shown:

 

Turn off proportional editing, then tuck the bottom row underneath the loaf by scaling, as shown:

 

Enter Object Mode and push Ctrl+2 to turn on the subsurf modifier:

 

Go back into edit mode and select the edges of the cross as shown:

 

Push Shift+E then drag outwards to create a crease along those edges. A value of 0.5 works nicely:

 

Go to the material node editor, add a new material, then connect an image node with the loaf texture, to the diffuse shader:

 

In the viewport, switch to texture view and you should see the loaf nicely textured:

Woo! Basic modelling and texturing is complete.

 

Adding detail with displacements

Go to the modifier stacker and add a Displacement modifier. Click New to create a new texture.

 

Go to the Texture Panel and select the Displacement Texture from the dropdown. Then set the type to Image or Movie.

 

Click Open and load in this displacement texture generated using CrazyBump.

 

Go back to the modifier stacker and increase the subsurf level to 6. For the Displacement, change the texture coordinates to UV and strength to 0.150.

 

Add a sun lamp with a slightly warm color, strength 5 and shadow size 0.50.

 

Render it now and you should have this:

Not bad, but it needs more finer detail on the surface.

 

Adding fine detail with a Normal Map

Go to the material node editor and add a new Image Texture node, and load in this Normal Map texture. Set it to Non-Color Data.

 

Add in a Normal Map node (Add>Vector>Normal Map) and connect it as shown:

 

Render it now and you should have this:

Much better! But let's push the realism even further with some subtle gloss.

Much better! But it looks like it’s made of concrete. Time for some subsurface scattering!

 

Adding Subsurface Scattering

NOTE: As at the time of making this (Blender 2.67) you need to set your rendering device to CPU and feature set to Experimental to use this feature.

Add a Subsurface Scattering node (Add>Shader>Subsurface Scattering) and connect it to the Color image texture.

 

Set the Radius values as shown, which will change the SSS light to slightly yellow:

 

Add a Mix Shader node and connect it to the Diffuse and Subsurface scattering node as shown. Set it to 0.8 to give the subsurf scattering 80% priority over the diffuse.

The complete node setup looks like this:

 

Render it now and you should have this:

Yay! The bread loaf is now finished. Notice how the SSS suddenly makes it look like real bread?

 

 Cutting the loaf

In top view, add a loop cut (Ctrl+R) in the place you want to cut the loaf.

 

Select the part of the loaf that you want to cut off, then press P, then Selection. This will separate it into two objects.

 

Select the piece that you don’t want and delete it, or move it to another layer, leaving you with a cut loaf:

 

Go into edit mode, and select the edge loop along the cut, then press S, Y then 0. This will scale it flat along the Y-axis, making the cut perfectly clean.

 

Next, you need to fill in the gaping hole with faces. So using the geometry available, fill the space as best you can.

 

It’s important that you try to keep the faces as square as possible as, we’ll need it for the displacement modifier. So add two extra loop cuts as shown:

 

Duplicate the Loaf material, make it a single copy, then rename the new material Slice.

 

Select the faces on the front, and assign them to the new Slice material.

 

Because we need to combine two different Image textures to the same object, we need two different UV Maps. Go to the object settings and add a new UV Map. Rename them as shown:

 

With the Slice UV Map selected, go to the UV image editor and load in this bread slice image texture.

 

Because, we don’t want the rest of the loaf confusing us, select all the vertices except the front faces and press H to hide them.

 

With the front faces selected, go into front view, then press U > Project from View.

 

In the UV image editor, position the mesh over the image of sliced bread as best you can:

 

Next, go to the node editor, and with the Slice material selected, swap out the color image texture with the slice image texture:

 

Then swap out the Normal Map image texture with this one.

 

In the Normal Map node, set the UV Map to Slice.

 

If you rendered it now you’d see this problem:

The reason for this is that the Slice material is still using the default UV image coordinates, which are for the loaf.

 

To fix this, go back to the node editor, add an Attribute node and type Slice in the Name box. Then connect the Vector output to the Image Texture Vector inputs.

 

Now the slice material should render correctly:

 

The Slice Displacement

Currently the displacement that we added for the loaf is incorrectly applying itself to the sliced off face as well:

What we need to do is set two separate displacements, and have them only apply to the correct parts of the mesh. To do this we’ll use Vertex Groups.

 

Go into edit mode and select all the vertices except the front slice vertices. Go to the Object Panel, and add a new Vertex Group with the Name loaf, then press Assign.

 

If you enter Weight Paint mode now (Ctrl+Tab) you should see the loaf as red, and the slice as blue. This means the Vertex Group is working!

 

Go to modifier stacker, and in the displacement modifier, set the Vertex Group to Loaf.

As you can now see, the displacement is only being applied to the loaf. Great success! Now let’s create a separate vertex group for the slice.

 

Go back to the Vertex Settings and add another Vertex Group, and assign it to the front faces only. Name the new group Slice.

 

Go back to the modifier stacker, and add a new displacement modifier, and a new texture:

 

Go to the texture panel and select Displace.001 from the dropdown list, then set the type to Image or Movie.

 

Load in this slice displacement texture, go back to the modifier stacker and set the Vertex Group to Slice, the Texture Coordinates to UV, the UV Map to Slice and the Strength to 0.050.

 

Render now and you should have the final product!

 

Now make a story out of it!

 

Close Summary

Join The Discussion