In this article, we will explore how we can add effects to an image to make it look as if it is raining. We will add raindrops as well as puddles.

To create a raining look, we will create a new layer in PhotoShop above our image layer, and we will fill it with 50% gray (select your new layer and goto Edit > Fill, and then choose 50% Gray. Next, we will goto Filter > Add Noise and choose 12.5%, Uniform and Monochromatic. Then goto Filter > Blur > Motion Blur, and choose your desired angle of rainfall and a distance that looks good for your image size. Now change the Layer Blending Mode to Screen.
These are samples of what we should get:

Next, we will goto Image > Adjustments > Levels. We can bring the right and left sliders in to achieve the right effect.

We should get something like this:

At the top and bottom of the image, you may see some predominant white lines (like below), we can get rid of these by going to Edit > Transform > Scale, with the rain layer selected. Now we can make the layer bigger, placing the edges outside of the image. NOTE: You can hold SHIFT whilst resizing to maintain the correct aspect ratio of the image/layer.

If the rain is too fine or too visible, we can alter it by going to Filter > Blur > Gaussian Blur and reducing the opacity of the layer. Experiment to get the right results.
We have the following so far (opacity of rain layer is 35%):

Now we will create the bigger raindrops. We can do this by opening a new document, 300px by 300px, with a black background. Add a new layer and draw a white 5px dot on the left-hand side, with the brush (not pencil). Next, goto Filter > Stylize > Wind. Choose From the Left and repeat four or five times to get the following:

Now we want to rotate it. Press Ctrl+T or goto Edit > Transform > Rotate. Rotate it so that it is a similar angle to your rain, like so:

Next, goto Image > Adjustments > Invert, and also change your background to white. Then make sure your raindrop layer is selected and Select All (Ctrl + A) and goto Edit > Define Brush Preset. Give it a name and OK. Now we can select our new brush – choose the Brush tool and select the new raindrop we just made (I made three):

Next, we want to choose the Shape Dynamics and Scattering from the Brush Presets. Angle Jitter 1%, Scatter 1000%, Count 1 – but you can play with the settings to match your needs.

Now we create a new layer and start painting the big raindrops. We only want a few so have a few goes – might need to undo a few times to get the right look, seeing as placement is random.
Once you’re happy with them, you can add a slight Filter > Blur > Motion Blur to the layer and reduce opacity of the layer to 75% or so. Again, play with the settings.

We have the following so far:

The next step is rain spatters. In our image, we may have surfaces which the rain will visibly bounce off, we need to replicate this. We can do this by choosing the Brush tool and a diameter of 1px, and then going back to the Brush Presets. We want the scattering to be 1000% and Count to be 1.
We will create a new layer and draw spatters around the surfaces that need it. Like on the back of the dog:

You can also reduce the opacity of this layer if needed.
Now we will move onto creating puddles. The first thing we want to do is create a duplicate of our main image and then make a selection of the floor using whichever selection tools are easiest to do so. It will look something like this:

Now we want to create a Layer Mask of this selection (Click on the Layer Mask button in Layer window – white circle inside a gray square). You should have something like the following in the Layer window (floor in white):

We want to unlink the layer mask, by clicking the link icon in the middle of the layer and the mask. Then click on the Layer thumbnail (not the mask), and choose Edit > Transform > Flip Vertical. This will flip the image but not the mask, so the sky will end up on the floor. We should now position the image so that the horizons match. Choose the move tool and resposition the image, like so:

Notice that the background features have their reflections in place, but the foreground features (the dogs, for example) do not. We fix this by repeating the above process, but instead of selecting the whole floor, we select the things we want reflecting. So I will select the dogs and the large trashcans. We do this by selecting the reflection layer (not the mask thumbnail, but the layer thumbnail) and then pressing Ctrl + J. This will copy the layer and mask. However, we do not want the mask, so select the mask of the copied layer and click on the trashcan. If it asks you if you want to apply the mask, select No or Delete.

You should now be left with just the copied layer, no mask. Now what we want to do is to create a clipping mask – right-click the layer we just copied and select Create Clipping Mask. This will use the mask of the layer below it. Now we can reposition the layer we just copied and make the selection of the items we want to be reflected. In our case, the dogs. Once they’re selected, we can add a layer mask to our copied layer. Then we can reposition that layer for the reflection to line up. Our layers will look something like this:

Next, we are going to group these layers so that we can draw our puddles. Click on the bg copy layer (or your equivalent) and then choose Layer > Group Layers. Then add a Layer Mask to this Group by choosing Layer > Layer Mask > Hide All. This will mask everything in the group.
Now choose the brush tool, and color white. You may also want to try reducing the opacity of the brush, try 50% or 25% – experiment to get desired effect. Paint your puddles onto the image ! The brush is painting onto the mask, so when you paint in white, it is letting the image show through. You can paint in black to hide parts of the image if you make a mistake.

As an added effect, you can add ripples to the puddles by going to Filter > Distort > Ripple on your reflection image(s) (not the masks).
Below is the final outcome.

Before

After

Download Source Files