[Iray] Bug workaround: Light emitters rendering when behind a transparent surface

Hi folks,

Thanks to the help of The Philosopher, I learned about a bug in DS and a workaround for it. If you have a light that's visible through your camera but behind a transparent surface (as was the case when I was trying to set up the Epic Lensflare and Starburst prop), it will render the light in the scene even if you have "Render Emitter" turned off.

It seems the current workaround for this is to change the Light Geometry to "Point". Hopefully it'll be fixed in a new update.

All credit to the artist for pointing out this issue and the fix. I'm just sharing it because I thought someone else might be having the same problem.

-A

Comments

  • barbultbarbult Posts: 24,240

    Thanks for posting. The problem shows up even in light sets sold in the store. I too hope it gets fixed.

  • ToborTobor Posts: 2,300
    edited February 2017

    This is endemic to Iray and I doubt nVidia considers it a bug. The emitter is rendered when another surface imposes itself between the light source and camera. You get the same thing in reflections. The idea is that you might want to hide the emitter from the camera, but still have the benefit of reflections in chrome or other surfaces. Similarly, the emitter is visible when passing through a geometry. You get it when using a volume like smoke or fog.

    The emitter only hides in point lights because with these the emitter dimension is near-zero, so it's too small to see. The disadvantage is that the smaller the emitter, the sharper the shadow, which may not always be what you want.

    You might try certain other lighting techniques to see if they'll work for you. One is to use mesh lighting, which can be made invisible in different ways than how it works in the light fixtures that are a part of D|S. You probably want specular lighting here, which means adding an appropriate IES profile when you create the emission surface on the mesh. Otherwise the light from a mesh is always diffuse. There are threads in the forum for lighting with meshes and making them invisible, and applying profiles, so you might start with these. There are numerous ways to hide emissive surfaces from camera view (opacity, refraction), so you should try them to see what works best.

    Post edited by Tobor on
  • ToborTobor Posts: 2,300

    I found my old post on ways to make meshes invisible to the camera. The discussion doesn't directly address seeing the emission source through another geometry, but you can readily set up some test scenes to check that.

    http://www.daz3d.com/forums/discussion/62526/quick-howto-making-mesh-lights-invisible-to-the-camera

     

  • Oso3DOso3D Posts: 15,009

    Trivial to do ghost light thing and it only renders infinitesimally slower than fixed lights:

    single poly plane, set emissive, opacity to .00001.

    bam, invisible light

  • PA_ThePhilosopherPA_ThePhilosopher Posts: 1,039
    edited February 2017

     

    It's unfortunate, and I'm hoping that this issue will be addressed at some point, since it tends to cause people some headache.

    As for the technique of setting an emissive plane to a low opacity, it is a good workaround at the moment.... but, it is still a workaround....and it has its limitations.... There are some situations where you need the added control of a spotlight---such as being able to focus the light, widen its angle, etc.

    -P

    Post edited by PA_ThePhilosopher on
  • ToborTobor Posts: 2,300

    It's unfortunate, and I'm hoping that this issue will be addressed at some point, since it tends to cause people some headache.

    As for the technique of setting an emissive plane to a low opacity, it is a good workaround at the moment.... but, it is still a workaround....and it has its limitations.... There are some situations where you need the added control of a spotlight---such as being able to focus the light, widen its angle, etc.

    As I mentioned, nVidia may not consider this a bug. 

    Apparently some 3ds users are upset that with the latest version they can't hide the emitter even in reflections. Older versions didn't show the emitter if the "hide emitter" option was unticked. D|S users have always had the emitter show in reflections (this would also affect the light passing through a geometry). So maybe this is something that can be controlled from within the host application, or it might be a change in Iray itself, and 3ds 2017 got the same update we did.

    Daz already ships an MDL definition for making a spotlight out of an emissive. It has all the usual spotlight controls. I played with it a while but couldn't really see any benefit over the standard spotlight, but this might be one of them. You might ask them to expose it as a materials shader. Their MDL architect is a helluva lot better at it than I am.

Sign In or Register to comment.