2

(Sorry for my ill English skills)

Hi, I'm working with an animation including the television seen in the picture. The TV's "cover-material" (don't know what it's called) is an aluminum texture that has the ability to reflect other objects (of cause). Anyway, The screen itself is green because I would like to use it as a greenscreen to edit later on (in another video editing software). The problem is that the green plate reflects in the aluminum, which makes it look very weird when replacing the greenscreen.

My final question... Is it possible to make that one object (the screen) "unnoticed" by other objects, so that it doesn't have a reflection?

If you have another way to solve the problem, that could work too...

enter image description here

Luke_Leon
  • 115
  • 1
  • 13
  • 2
    Basically you want to do the reverse of this: https://blender.stackexchange.com/questions/17910/how-to-make-a-cycles-light-emisson-object-invisible-to-the-camera Make the object only visible to the camera, and not any of the other rays. – Mike Pan Feb 28 '18 at 20:11
  • 1
    You don't need to put green to be able to take it away later. If you are rendering in blender you can render the mask directly and avoid encoding/compression/keying issues later. Just use a holdout material for the screen and render in a format that supports alpha channel (OpenEXR would be the best format). Or render the mask separately. –  Feb 28 '18 at 20:13
  • 1
    If you are looking for realism. The reflections on the shiny material should be accounted for. Even I would add the same image to be composited on the screeen, but flipped upside down and blurred a bit.... –  Feb 28 '18 at 20:16
  • If you really want isolation you can use render layers to render separately and the compositor to re-combine the two in a fairly automatic process From the Manual – Rick Riggs Feb 28 '18 at 20:20
  • 1

2 Answers2

2

In my opinion it makes no sense to generate CG elements to be color keyed out when you can generate the perfect matte directly as an Alpha Channel.

In real life chroma key is used because there is no way to generate transparency and occlusion information directly using a camera. No need to replicate such laborious and imprecise workflow when generating CGI.

You can use to use a Holdout shader.

The Holdout shader node is used to create a “hole” in the image with zero alpha transparency, which is useful for compositing

Enable Film>Transparent and Save the image in a format that supports an alpha channel (like OpenEXR) and composite in other software with no further processing other than distorting the image to match the perspective of the screen. If you save in a format that does not support alpha then you can save the black and white alpha information as a separate file and use that to key the image.

enter image description here

If you absolutely must use green, because you love doing things the hard way, or with extra work, then you can use a shader that is only visible to the camera but transparent for the rest of the scene. It will not create any reflection or unwanted green spill in any of the surrounding surfaces. Using a Light Path node and using the Is Camera Ray to control the mix of shaders will allow you to do what you want.

enter image description here

The downside of both of these approaches is that the image on the screen will not affect the rest of the scene in any way, making the integration less realistic. A monitor is an emissive surface that would both illuminate and be reflected on other objects. The most realistic way to do this would be to integrate the image as part of the material used on the screen directly.

enter image description here

0

An emissive shader could do this if you are using cycles to render

enter image description here

An emissive shader does not receive, but rather, generates light. The caveat here is that it could "cast a green glow" on other objects in a scene I guess, but this is what came to my mind first.

You can use render layers to get around this problem for the most part, however, you will have to keep in mind, that any object which can reflect the screen will look wierd because the images you are post processing onto the screen via other software will NOT appear in the reflection on the base of your TV

enter image description here

Make the screen object into its own object and move it to another layer, then use render layers to exlude it from the layer with the things you do not want to reflect light from it.

After that you can combine the layers as shown in the compositor.

I added a reflective metal cube to show that the metal cube is not receiving light from the screen.

VampyreSix
  • 348
  • 2
  • 8
  • 2
    It looks like this is what the OP is already doing. The "caveat" that you mention is exactly what the question is asking how to avoid. – Scott Milner Feb 28 '18 at 20:25
  • Emissive textures do not reflect light sources in Cycles, that is one subtle difference. The light of the emissive texture will be this bright even if it is in total shadow, for example. – VampyreSix Feb 28 '18 at 20:27
  • The OP is asking how to avoid the reflection seen on the TV stand in the bottom of the image. – Scott Milner Feb 28 '18 at 20:31
  • Updated for workaround to elminate the "light bleed" onto objects that are not intended to "see" the screen. As long as the base can see the TV however, it will always be noticeable in its lack of reflecting what is going on on the screen itself. – VampyreSix Feb 28 '18 at 20:46