How do I make objects ignore certain Light sources?

Hi guys,

So im lighting a dark scene with a speaker. I created a striplight at the back of the speaker, to give the speaker a back/rimlight. I hid the actual striplight from the render…but I also dont want the emission of this striplight to show on the floor.

My question is… is it possible (in cycles), to make an object (the floor in this case) ignore a certain lightsource (striplight)?

I know I can stop the floor from reflecting all lightsources…but I just want it to stop reflecting the striplight… Is this possible?

thank you in advance… below is my scene. The bottom foto shows the actual striplight.

1 Like

One way would be to subtract out the direct reflection on the base material. Assign the base material an index (I used 2), then post process with nodes,

Anyway, something to play with.

Thank you for your reply.

I have got this to work, altough i didnt really know what I was doing… But if im not mistaking… this technique uses a rendered layer to remove the reflections that I dont want. So does this mean that everytime I change the final camera position, I have to re-render the image to use in the node? And i can only see the result of this technique, after the render right?

Is there a way that works ‘on the fly’ in real time? I thought that deselecting the ‘glossy’ option in ray tracing… it would stop my light emittor from casting reflections…but that didnt work in my scene… not sure why

So im still looking for an easy way to fix this… or… maybe I should make a custom light with flags to control the spill?

In BI, of course, it is easy: “layer-specific lights,” which only consider objects in a specified set of layer-numbers. (The “set of buttons.”) If the floor is on in a layer that the strip-light is to ignore, it will neither shine upon it nor be occluded by it.

Doesn’t Cycles have this also?

Notice that this feature (in BI) specifies the behavior of the light, not of the objects. We do not say that an object should ignore a particular light, but rather that a light should ignore particular objects.

Under Object/Cycles Settings with the light selected, you can turn on or off various visibilities for the light. I can’t remember how this works, but some work only for lamp lights (or not), whereas sometimes you have to control it using material nodes and light paths. Problem is, you’re making it visible or invisible to all objects, and we don’t have light lists/light exclusion system built in yet.

In some scenes I have bright spotlamps combined with a disc shaped emitter for the “glass”. Bright emitters cause really bad aliasing artifacts. I typically solve this problem by having one strength (1-2’ish) for camera and singular ray, and another strength for the rest (5-10, depending on light fixture and even more if accounting for reflectors). I’m using glow, but I don’t like the idea of having to fix problems with glow.

For other complex ceiling light fixtures, I’m using a real light tubes and reflectors visible to the camera and sharp reflections, whereas rougher glossy surfaces (and diffuse etc) will only see a much simpler area light.

In the end, I’m often rendering out different light groups/light types in passes for better coloring them in post when I just add the images together. The result tend to get cleaner faster too (say 30 ceiling spots, 10 tube fixtures, sun and daylight).

If you want blurry reflections on both speaker and floor, maybe you could fake it using an extremely dense noise bumpmap into a sharp glossy shader and still maintain some control over which is seen where using lightpath trick. Speaker = real rough glossiness (because it is more important object in the scene), floor = dense bump sharp glossiness (who cares :p).

Here is the light material I’m talking about. And, you can only do this trick to emission planes, not area lights afaik. The “blurry floor” is caused by 100000 scale in noise bump, reflection type is actually set to sharp: