10
$\begingroup$

Andrew Price released a nice tutorial on how to nicely put 3D objects on top of a real image: https://www.youtube.com/watch?v=wjWoglMYXBE

I have seen images, such as this: https://s3.amazonaws.com/blenderguru.com/uploads/2015/11/mercedes-benz_g-class-673x457.jpg which have 3D elements over images and have actual reflections from the object showing up on the wet asphalt. How can this effect be achieved using render passes (or any other way)?

Here is another example (from Nathan Craddock):enter image description here

$\endgroup$
12
$\begingroup$

Use emission shaders as a way to create a mask for the reflections. (for more information see this answer)

enter image description here

Use two layers for the 3D layout:

Layer 1, containing the scene with all your objects, lights and reflective surfaces

Layer 2, containing the reflective surfaces and a copy of the objects to be reflected, but this copies should have an emission shader only.

On the render layers section create two Layers:

One render layer (I'll call it color) that holds the scene's Layer 1, excludes layer 2 and uses the combined pass.

A second render layer (I'll call it emitter reflection mask) that holds the scene's layer 2, excludes layer 1 and has Glossy Direct enabled, as well as Emission.

enter image description here

On the compositor, Use a color mix node to add the Emit and Glossy direct form the Emitter reflections mask layer. Use the result as alpha channel to composite the color pass over the backgorund image.

enter image description here

enter image description here

To make the reflection less perfect (which I think is what @troy_s suggested) you can take the Glossy direct information, multiply it with some gray color in a color mix node, and add that to the composited image(You might even want to add some blur or other textures along the node tree too)...

enter image description here

Another example

(using the same scene as in this answer). Simple geometry.

On layer 1 just a plane to catch the reflections and the reflected object, lit by emitting planes with the background image.

On layer 2 the same scene, but with a copy of the object using an emission shader and no other lights.

enter image description here

Set the render layers as described above, that will allow us able to create mattes to separate the original object from the reflected one, and use those mattes to make the final combination of the CG element and the Image background.

enter image description here

The easy part is using the Emssions of the second layer to isolate the forground element.

enter image description here

If we were to compose that over the background using alpha over we'd get some refection... but it would be semi-transparent, making it unrealistic. In real life the reflection of the object would occlude the background...

enter image description here

To get rid of the reflections of the lights on the ground we need a piece that is clean of those reflections but has the reflection of our 3D object. (I used a portion of right side of the image that does not have the reflection of the lights, that's why the rotate and transform node are for, but in other cases you might need to use photoshop or other image editor to crate a "clean" plate).

Then, combine the background image with the reflection.

enter image description here

Now mix it all together using the glossy direct information as factor for the mix:

enter image description here

enter image description here

To make the reflection on the less present you can change the factor level on the mix with the background plate:

enter image description here

$\endgroup$
2
$\begingroup$

As the creator of that laser beam picture, I think I should contribute with my methods. :)

The way I do it doesn't require any compositor use, so it may or may not work depending on your scene. In my case it was much easier to do it my way then play around with render layers and compositing nodes.

Here is my finished .blend file for the scene

To start you need a scene. I used the BLAM addon to make the scene, but that is beyond the scope of this answer. Then all you have to do is separate the area that is reflective on the mesh.

Mesh view

Then assign it a different material.

Assignment

Then create a material that is very glossy mixed with either an Emission or Ambient Occlusion shader for the best color preservation.

Nodles

I didn't make it have any 'wow' factor, but the point is made clear.

Suzanne on the ground

$\endgroup$
  • $\begingroup$ The unrealistic part, in my opinion, is that the reflection of the background lights, where the head meets the ground, would be occluded by the reflection of the head itself... $\endgroup$ – cegaton Jan 28 '16 at 4:52
  • $\begingroup$ @cegaton yeah. I should have picked a better picture. But in most cases it works fine. $\endgroup$ – Nathan Craddock Jan 28 '16 at 5:19
1
$\begingroup$

If you look up photoshop tutorials on this subject, you will see that the fast and dirty way is to duplicate your image of the subject in another layer and flip it vertically, and to lower the opacity. You also can distort the shape to make it look more believable, but that is subjective, since many examples all take artistic liberty with the reflected image. You might even look at Andrew's soda can tutorial, the one with the flames and the water droplets - there was a use of a similar technique there I think.

$\endgroup$

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.