Creating a "Ghost Light" - Daz Studio 4.21.1.26+

rbtwhizrbtwhiz Posts: 2,177
edited October 2023 in Daz Studio Discussion

With Iray 2022.1.0, NVIDIA added native support for the concept of "Ghost Lights"... which is to say that they added support for the ability to have emissive geometry (aka "area light") contribute light to a scene (an "emitter") while allowing the depiction of that emitter on another surface (a "receiver") to be attenuated - be it from primary rays (i.e., directly visible from the camera), secondary rays (i.e., visible in reflection/refraction/transmission), or both.

The attribute that NVIDIA exposed operates at the object level (see the official documentation), and so the ability to control it is exposed to Daz Studio users at the Node level (e.g., Scene pane). While this may not be as convenient as being at the Surface/Material level in certain situations, a Geometry Shell can be used to "extract" a given Surface (or set of Surfaces) from an object in order to limit which Surface(s) is/are emissive. A map can be used to shape/tint the emission.

For an object with geometry, an "Iray Visible to Primary Rays" property provides a discrete on/off toggle for controlling visibility of the emitter. For a point/spot light, when "Photometric Mode" is active, and "Light Geometry" is set to a value that generates geometry (i.e., anything other than "Point"), the "Render Emitter" property provides equivalent control.

For secondary rays, a "Iray Ghost Light Factor" (IGLF) property provides a "dimmer" of sorts. The range of this control is dependent on whether it is on the emitter or on the receiver.

When IGLF is added to the emitter and the receiver is fully specular (i.e., glossy, reflective), any value > 1.0 (e.g., 1.000001) will hide the emitter. As the receiver becomes less specular (i.e., more rough, diffuse), the value required to hide the emitter increases. Conceptually there is no upper bound to this value, but the heuristic NVIDIA is using will reach its limit at a value of 128 (higher values yield the same result as 128).

When IGLF is added to the receiver, its value acts as a multiplier for the IGLF value of the emitters in the context of that receiver. So, for instance, say the value on the emitter is set to 128 in order to hide it from all receivers, regardless of how glossy/diffuse they are. The effect can be counteracted/overridden for a given receiver by setting IGLF on that receiver to 1/128 (i.e., 0.0078125) to cause the emitter to be visible to secondary rays for that receiver.

Below are ways in which a "Ghost Light" natively supported by Iray can be introduced into a Daz Studio scene:


Method A: (assumes use of the Iray Uber material)

  1. In the Viewport pane, or the Scene pane:
    1. Select the object (node) that provides the geometry you want to emit light from, and also want to be invisible to primary/secondary rays
  2. In the Surfaces pane:
    1. Select the surface(s) of the object you want to emit light from, and also want to be invisible to primary/secondary rays
    2. Set "Refraction Index" to 1.0 (i.e., air)
    3. Set "Refraction Weight" to 1.0
  3. In the Product/Asset view of your choosing: (e.g., Smart Content pane, Content Library pane, etc.)
    1. Execute the "Create Advanced Iray Node Properties" script, in the "Default Resources" product
      1. Check the "Iray Visible to Primary Rays" option
        • This will cause a bool property named the same to be created on the selected node(s), in the "Display/Rendering/Iray" property group
      2. Check the "Iray Ghost Light Factor" option
        • This will create a float property named the same to be created on the selected node(s), in the "Display/Rendering/Iray" property group
      3. Click Accept
  4. In the Parameters pane:
    1. Set "Iray Visible to Primary Rays" to Off
    2. Set "Iray Ghost Light Factor" to any value > 1.0 (see description above)

Method B:

  1. In the Viewport pane, or the Scene pane:
    1. Select the object (node) that provides the geometry you want to emit light from, and also want to be invisible to primary/secondary rays
  2. In the Surfaces pane:
    1. Select the surface(s) of the object you want to emit light from, and also want to be invisible to primary/secondary rays
  3. In the Product/Asset view of your choosing: (e.g., Smart Content pane, Content Library pane, etc.)
    1. Apply the "Emissive" shader preset from the "Default Resources" product
    2. Execute the "Create Advanced Iray Node Properties" script, in the "Default Resources" product
      1. Check the "Iray Visible to Primary Rays" option
        • This will create a bool property named the same to be created on the selected node(s), in the "Display/Rendering/Iray" property group
      2. Check the "Iray Ghost Light Factor" option
        • This will create a float property named the same to be created on the selected node(s), in the "Display/Rendering/Iray" property group
      3. Click Accept
  4. In the Parameters pane:
    1. Set "Iray Visible to Primary Rays" to Off
    2. Set "Iray Ghost Light Factor" to any value > 1.0 (see description above)

Method C:

  1. In the Viewport pane, or the Scene pane:
    1. Select the light that you want to emit light from, and also want to be invisible to primary/secondary rays
  2. In the Product/Asset view of your choosing: (e.g., Smart Content pane, Content Library pane, etc.)
    1. Execute the "Create Advanced Iray Node Properties" script, in the "Default Resources" product
      1. Check the "Iray Ghost Light Factor" option
        • This will create a float property named the same to be created on the selected node(s), in the "Display/Rendering/Iray" property group
      2. Click Accept
  3. In the Parameters pane, or the Lights pane:
    1. Set "Photometric Mode" to On
    2. Set "Light Geometry" to any value other than "Point"
    3. Set "Render Emitter" (built-in equivalent to "Iray Visible to Primary Rays") to Off
    4. Set "Iray Ghost Light Factor" to any value > 1.0 (see description above)

Attached are 3 versions of the same scene, one with Method A applied, one with Method B applied, and one with Method C applied.

duf
duf
!GhostLight Method A - Iray 2022.1.0.duf
669K
duf
duf
!GhostLight Method B - Iray 2022.1.0.duf
669K
duf
duf
!GhostLight Method C - Iray 2022.1.0.duf
605K
Post edited by rbtwhiz on
This discussion has been closed.