How do you add an imprint to an object in blender cycles? Such as a footprint on a piece of wood like on this image:


  • 1
    $\begingroup$ do a search for dynamic painting :) $\endgroup$ – cegaton Oct 11 '15 at 20:20
  • 1
    $\begingroup$ @cegaton Probably not quite what he's looking for. I don't animation of it being imprinted is expected. $\endgroup$ – TARDIS Maker Oct 11 '15 at 20:50
  • $\begingroup$ You might want to take a look at masks' using, connected with the Factor input as is done in this BlenderGuru tutorial (to be more precise, wooden floor material, but the lesson overall also is great) $\endgroup$ – Mr Zak Oct 11 '15 at 20:58
  • 2
    $\begingroup$ @TARDISMaker my guessing powers are not so keen on weekends... $\endgroup$ – cegaton Oct 11 '15 at 23:33
  • $\begingroup$ Couldn't you just unwrap to footprint using uv and add it to the object as bump map. This is for Blender Internal. $\endgroup$ – S. Orl Oct 13 '15 at 3:29

One way you can do that is adding another texture over the wooden one... You can add several textures, and mix them with several algorithms (see the color > mixrgb node) to achieve different effects...

this is a simple setup but there could be many others, more sophisticated:

enter image description here

basically, you add two textures to your material, and setup the "footprint" so that it doesn't repeat, and place it how you wish. In the picture the "mix" node is just mixing the two textures, but other modes are available in the node list

this method is took from here http://www.andreucabre.com/2014/11/controlling-texture-tiling-in-cycles.html


There are various ways to accomplish this. I will share two methods that I've found work well.

1. The Transmission Mask Method (for stills)

This method involves modeling a simple foot object that will pass in front of surfaces that are to appear wet or imprinted upon. The wood material in this case uses the Light Paths node to mask between wet and dry shader mixes. The "Is Transmission Ray" output from the Light Paths node factors the mix in a way that any light hitting the wood material that also passed through either a Glass or Refraction shader will be shaded with the wet mix - else it will be shaded with the dry mix.

This is quick and easy to set up, however if you think you may have any objects made of Glass (for example) passing in front of your wood they too will trigger the wet material. As long as you plan your scene in advance, and know what else will be between the camera and your wood material, you can probably get by with this quick trick.

Use a Refraction shader on the footprint object with the IOR set to 1 so that no refraction actually occurs, but the rays passing through will now be considered "transmission" rays.

Here is a demonstration of the principle in its most basic form.

Basic transmission mask setup:

Transmission mask - the basic setup

As you can see, while this has the advantage of being quick to set up, it has disadvantages as well. It doesn't render as transparent where the background is transparent. Also, when viewed from the side the sphere occludes more of the plane than you'd want. Instead of a circular area being yellow, you get a whole silhouette of a dome that is yellow. You might think that if you flatten the sphere enough you will get a circle, and this is true - however if you want to animate something like a footprint you will want the intersection to happen over the course of several frames, meaning the footprint-shaped object must have some depth to it. Adding depth means the silhouette will become at least somewhat visible when viewed from the side and look strange. This is why I present this solution as being alright for stills but not so good for animated scenes.

Example result:

Footprint masked in from the "Is Transmission Ray" output of the Light Paths node

(Thanks for the wood texture, Pixabay!)

Example node setup:

The node setup for the transmission mask using a footprint

In the above example I subtracted the wood cracks from the mask because they don't need to appear wet, they just need to appear dark - and the glossiness of the wet mix was actually lightening them which didn't look natural, so I did a low-cut to exclude the really dark areas from the mask. This probably isn't necessary to do with most textures.

Note that passing through transparency is not "transmission", so you can even take it further and map fades between Transparent Shader areas and Refraction Shader areas if you a want a smooth falloff. Here is an example of a setup that creates a soft-edged footprint using the Z-height of the mesh:

Gradual falloff achieved by mixing a Refraction Shader and a Transparency Shader

2. The Wet Map Method (for stills and animation)

This method takes a bit longer to set up, but it's the right way to do it. And it works really well for animation.

Part I. Modeling and animating the brush and canvas objects

As with the transmission mask method, a footprint-shaped mesh object is required. I modeled mine starting with a trace of your reference image. Since the shape will move through the plane over the course of several frames, it needs to have some thickness for the imprint to be animated. I used the same mesh object for both. Here is what it looks like. Notice how it is intersecting with a plane.

The footprint-shaped mesh is your "brush object". The wooden surface is your "canvas object".

The foot and toes are rigged to a very simple armature so that they curve with the step. The water droplets are not rigged to the armature - instead they are animated with a Shape Key because I thought it would be simpler not to have a bone for each, but I wanted them to hit on separate frames.

The footprint mesh, and how it animates

I animated the step to come up through the plane instead of down into it, but it doesn't matter which direction you come from as long as the "brush" object intersects with the "canvas" object. The brush object must be a closed volume.

In most cases the brush object should move away from the canvas object after stamping into it. If it remains intersecting with the canvas object, it will continue to soak and spread out the wetness. Such soaking counteracts Dry and Shrink effects, if you use them (more on these later).

Unlike in the transmission mask example, we don't want the footprint objects to be visible to the camera. So uncheck these boxes in the Object Context under Ray Visibility:

No Ray Visibility - uncheck these

Part II. Using Dynamic Paint to Create Wet Maps

Go to the Physics Context. Select your canvas object and click “Add Canvas”. Select your brush object and click “Add Brush”.

The default brush color is blue, which would be relevant for a paint map, but not for a wet map. A paint map transfers color information. A wet map transfers greyscale data mapping how wet a surface is, with black being dry and white being wet.

In the Dynamic Paint section, set the format to “Image Sequence”.

Dynamic Paint Options

Specify the resolution of the output images. The default 256 is good for initial testing, but you will want your final one to be higher. Use your judgement depending on the size of your painted object in your scene. This value is for both the X and Y dimensions, because your UV area is always a square.

Set the start and end frames for your animation. An image will be output for each frame. Specify how many Sub-Steps you want to be calculated for smoothing the animation. If the brush collides with a face perpendicularly, Sub-Steps are not necessary because it will pierce through rather than trail across. See the step-count comparison below on a sphere that moved across a plane over the course of 6-frames:

Sub-Step count comparison on a 6-frame animation

Unwrap a UV map for your canvas object.

Specify the UV Map to be used (you probably only have one to choose from).

Specify the file path for your output images.

Dynamic Paint Output Settings

Press the button to “Bake Image Sequence”. The cursor will show the percentage done.

Once you've done a test bake to confirm that it's working, there are a couple more adjustments you can make to enhance the realism of your wet map.

Enabling the Dry option makes wetness gradually fade with time.

Enabling drying

Enabling the Shrink effect makes wet imprints get smaller as they dry up.

Enabling the Shrink effect

Experiment with these settings if you want to simulate your footprints drying over time.

Part III. Using Your Wet Map in Cycles

After creating a new material in Cycles, open the Node Editor.

Add an Image Texture node and load the image of the first frame of your wet map sequence.

Change the source from “Single Image” to “Image Sequence”.

Set the number of Frames to be the number of images (frames) in your sequence.

Set your Start Frame to the frame in your scene when you want your wet map to kick in. In other words “wetmap0001.png” (or whatever yours is called) will begin at this frame.

Leave the Offset value at 0.

Enable the “Auto-Refresh” option.

Add a UV Map node and plug its UV output into the Vector input of the Image Texture node. Specify the UV map to be the same one you used for your canvas settings. You might not need to do this if you only have one UV map on your object, since Blender will probably auto-detect it and know what to do - but it’s a good practice. It is necessary if you have multiple UV maps on your canvas object.

Example node setup:

Wet Map being used to factor between wet and dry mixes

Note that I didn't go so far as to factor in the wood cracks in this example since I wasn't rendering close-ups, but of course you can easily integrate that into your node setup if you want to. (See the example node setup for the Transmission Mask Method)

Example result:

Example result - animated footprints

Example result - animated footprints (3D rotation)

In the examples above the drying effects have been unrealistically sped up for the sake of demonstration...and because it looks kinda creepy.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.