Iray luminosity calculation change breaks a lot of assets in DAZ Studio

I am posting this here because Iray and OptiX teams are in my understanding dependent and thus work closely together so I hope this will be read by NVIDIA developers and managers who decided to make those changes, rethink their decisions, and provide workarounds.

Iray versions after version 334300.9558 have two significant changes which were made in an effort to make the raytracing more physically correct.

One of them is thin film calculations and I won’t get into that, because DAZ team already has a partial workaround, though the previous color result cannot be restored completely in more complex scenarios.

The other change is about luminosity calculation change and how it now affects emissive surfaces – it is much bigger change and it breaks a lot of existing 3D assets in many stores not just DAZ3D store, not to mention all the scene files already saved using those affected assets.

To understand why it is a breaking change, you need to understand a bit of history. Iray was (and in my opinion still is despite the improvements that made use of light portals obsolete) not really great when it comes to interior lighting.

To work around that, people using DAZ Studio and Iray used a simple trick – they used something called a Ghost Light Kit. Those are essentially 2D planes with emissive surface and cutout opacity set to a really low value of 0.0000001.

Since cutout opacity up to and including the Iray version 334300.9558 wasn’t affecting luminosity, that esentially makes ghost lights invisible to primary rays AND reflections (they are not visible in mirrors and on glossy surfaces) while providing nice diffuse light source of arbitrary size which produces soft light casts no shadows, and which can be placed anywhere in your indoor scene – directly under ceiling, even over the floor or on a wall to get the desired light level and to speed up the render without having to fiddle too much with tonemapping or to waste an exorbitant amount of time setting up dozens of individual point and/or spot lights which don’t even work if sun/sky lighting mode is used while emissive surfaces always do regardless of the scene lighting mode.

Anyone who ever saw a gaffer on a movie set can understand the value of such a light source – gaffers go to great lengths to eliminate unwanted shadows and reflections when lighting a movie scene even if that is not how the scene would look naturally.

The Iray change causing the problem with ghost lights is that now luminosity is multiplied with cutout opacity and the result is that they no longer emit light until cutout opacity is restored. There is a new advanced Iray node property that allows making an emissive surface invisible to primary rays but they are still visible in reflections and on glossy surfaces so that doesn’t help at all because the main advantage of those ghost lights was that they were invisible and didn’t cast shadows.

There are a lot of 3D assets (mainly environments, but also Sci-Fi clothing and weapon props, candle props, fire props) that used emissive surfaces with lowered opacity. An example off the top of my head would be an apartment with lightbulbs in light fixture in every room. They are modelled with glass ball which is transparent and emissive (at a lower level than the filament) and now they don’t emit any light. Another example are windows which have loadable emissive presets for day and night which no longer work because of the luminosity = luminosity x opacity change. Clothing with glowing parts such as armors and spacesuits are also affected as are weapon props, displays, etc.

Now I understand the desire to get raytracing as physically correct as possible, however I don’t understand blatant disregard for the consequences of such a change on the 3D asset ecosystem centered around rendering applications using Iray.

If it is really impossible to keep the old behavior for backward compatibilty with all the affected 3D assets and existing scenes, I would urge Iray team to at least consider adding a new light source type – an invisible to primary rays and reflections emissive surface with 2D plane geometry which doesn’t cast shadows so we can at least have a built-in replacement for ghost lights going forward.

Hi @igor.levicki, I need to reiterate that the OptiX forum is just not the place for either DAZ or Iray support. Nobody on the Iray team is monitoring this forum on a regular basis, because this is not a channel for Iray-specific concerns.

The Iray team, in turn, is not the place for DAZ support. It really would be best to take up your concerns with the features you want to see in DAZ, as well as with how DAZ is supporting and managing changes to the software it relies on, directly with the DAZ team, so that DAZ is aware of what you need and can request whatever support they need from the Iray team.


David.

@dhart I am well aware that this is not the place, but as far as I am aware Iray has no dedicated forum for end-user feedback.

Of course I did raise my concerns with DAZ first and they did work with NVIDIA on a “workaround” for ghost lights (advanced property node I mentioned) but that is not good enough for the reasons I stated above.

DAZ moderators are deleting complaints from the forum. I even emailed Iray program manager Alexander Fuchs directly on November 29th. I still haven’t got any response.

DAZ is aware of what we need – we need stuff that worked to keep working so we don’t have to spend hours trying to figure out how to fix broken assets (if they can be fixed at all) and redo all our saved scenes using said assets.

DAZ replies are along the lines of “this is an NVIDIA Iray change and we can do nothing more about it than we already did” (which as I explained above isn’t a lot).

What I am getting out of all this is that they are washing their hands, and now NVIDIA is washing their hands as well. So we have two companies playing the blame game, while the paying customers of both companies are stuck in the middle as a collateral damage.

I hope you can now understand my frustration and the reason I posted this here.

Please don’t mistake my comment for lack of sympathy to your issues. I’m sorry to hear that DAZ support is not listening or taking responsibility for managing upstream changes in DAZ Studio. It’s just that this issue is 100% unrelated to OptiX. NVIDIA hasn’t responded, neither my reply nor Mr. Fuchs can be construed as washing our hands. It’s entirely possible your email will be answered in time. Emailing the PM directly during the holidays in Germany was not likely to get a fast response, many people there are still on their holiday break.

This seems like an ongoing issue you’ve been having with DAZ for several years now, and that you need them to establish a stronger support channel, that will listen to your requests without deleting them, and that they will forward your requests to the Iray team rather than leave you on your own to do so?


David.

@dhart I agree with you that issue is 100% unrelated to OptiX, I simply have no other venue to raise my concerns about what Iray team is doing and how it affects some applications that use it.

I myself am on a holiday break, but I wasn’t aware that holidays in Germany start at the end of November.

Yes this is an ongoing issue, and the reason seems to be simple.

As far as I am aware, DAZ is earning all their revenue through commissions from their 3D asset store, and DAZ Studio application itself can be downloaded and used for free just by signing up for a DAZ account.

That in theory means DAZ should care a lot whether something in DAZ Studio is broken or not, but in practice it means that DAZ can use the excuse “it’s free, there are no warranties” instead of actually solving complex issues – in other words, they can focus on working on, and supporting, what they think will maintain or increase their revenue stream from the 3D asset store and ignore everything else.

One proof of that is that their support flat out refuses to acknowledge any application issues with 3D assets not bought in their own 3D asset store.

It doesn’t help that a lot of people using DAZ Studio aren’t professionals and thus seem to have very low expectations when it comes to software support, despite indirectly paying for the application development through their 3D asset purchases.

In my opinion, DAZ’s behavior described above can only negatively affect NVIDIA’s brand through association.

Thanks for listening! If you are able to, please feel free to pass this feedback internally.

Apparently there is now a new solution in Daz for ghost lights (plus it also exposes the brandnew guided sampling of Iray to speed up indoor scenes!): Daz Studio 4.20 | Volumetric Clouds, Smoke, and Fire Effects - Daz 3D Blog

@CarstenWaechter Sadly, the “new solution” not only isn’t new, but it is not really solving the main problem which is the lack of a fully invisible emissive light source in Iray.

Since I already tested DAZ Studio 4.20 let me tell you what is the “new solution”.

One “new solution” which was available since 4.16 beta is a new advanced iray node property which basically says “this surface is invisible to primary rays”. But light emitted by that surface is still visible in reflections so it’s useless, and the reason I say it’s not new is because there was already a “Render Emitter” setting on built-in Iray light sources that did the same thing (hide geometry) with exact same limitations (light visible in reflections).

The other “new solution” is to adjust the luminosity on ghost lights to compensate for opacity multiplication change in Iray – since opacity required for a surface to be invisible is 0.0000001, to get the equivalent luminosity of 100 kcd/m^2 from previous Iray version you now need to use 1000000000 kcd/m^2. Because IEEE754 double precision math accumulates errors fast when you add/subtract/multiply/divide very large and very small values (think other light sources in the scene), doing that results in ghost light surface having quite a few fully white dots regardless of how well lit the scene is or what your exposure values are and neither firefly filter nor AI denoising can get rid of them.

So, both “solutions” fail to address the problem we all have with Iray – the lack of a truly invisible emissive light source.

Ghost Light Kit has solved that problem long time ago – those emissive surface based lights were invisible both to primary rays and in reflections and didn’t cast shadows so you could put them anywhere in a cramped indoors scene to get any visual effect you wanted without them being picked up by the camera. If you ever watched what gaffer does on a movie set, you would know that lighting a movie scene isn’t about accurate simulation of light physics – it’s exactly the opposite (i.e. you want to remove as much unwanted shadows and reflections as possible).

We understand that Iray team considered not multiplying the opacity a bug and fixed it, and we are not asking for that change to be fully reversed, but we are sure that a compromise is possible.

Simplest solution would be to add an advanced iray node property that can disable the opacity multiplication for a surface (basically disable the bugfix). That way, the new default would be an accurate light simulation like it was supposed to be, but it would allow us to set it on ghost light surfaces so they can continue to work as they did before.

Keep in mind that even that solution wouldn’t be completely painless for DAZ customers – we would still have to modify all existing scenes where we used ghost lights to add the new property.

Another solution would be to add a new fully invisible light source to Iray, but that would require much more work from NVIDIA to implement, then from DAZ to expose that functionality in their product, and finally from customers to replace all ghost lights with those new lights.

However, the worst thing NVIDIA can do is to claim that only real-life light behavior is acceptable in a raytracer. If photographers and gaffers of this world have so many tools at their disposal that allow them to “cheat” light physics in order to realize their artistic vision why should work in a 3D environment be any different?

@igor.levicki Are Light Path Expressions fully exposed in Daz?
Cause this way one could filter out certain interactions of lightsources, which would also result in kinda ghostlights in some cases.

@CarstenWaechter They are exposed under Render Settings → Advanced → Canvases.

Once you enable Canvases you can select from predefined types – Beauty, Diffuse, Specular, Glossy, Emission, Environment Lighting, Alpha, Normal, Depth, Distance, Material ID, Shadow (Interactive only), Ambient Occlusion (Interactive only), or select LPE as type and enter a formula, but I am not sure to what extent expressions are supported. There is also an alpha checkbox and an option to create node list from selection and assign it to canvas.

However, even if LPEs are fully supported, using them as a workaround for ghost lights would just add unnecessary complexity for something that should in my opinion be a built-in Iray feature (and it probably even wouldn’t be the first time a bug got turned into a feature).

This opacity trick wasn’t used just for ghost lights – many indoor environments used it with black cutout opacity map for light sources (lightbulbs, lamps, glowing parts of furniture, etc), and many Sci-Fi items also used it for glowing parts.

Finding and fixing all that in existing scenes is going to be a massive amount of work for customers even without having to deal with LPE complexity, multiple render passes, and compositing, not to mention that not many of them even know what LPEs are, much less how to use them.

On the other hand, adding an advanced iray node property that disables opacity multiplication bugfix (per surface) would allow for writing a simple script which would enumerate all scene nodes, find surfaces with emission color > 0 and cutout opacity < 1, and then add and enable this new property for those surfaces. It would still require some manual checking here and there, but it would be way easier for customers to deal with, and it also wouldn’t require 3D asset vendors to update the assets they are selling.

The only question that remains is whether such property could be added without negatively impacting Iray performance and whether Iray team would be willing to consider it.

If you have any better ideas on how to solve this problem going forward we’d like to hear them, currently many people are holding back on upgrading because of this and thus cannot benefit from your hard work on bug fixing and implementing cool new features such as VDB and guided sampling.

@CarstenWaechter

Just so you guys know what Daz 3D forum admininstrator (presumably a Daz 3D employee) is saying about this issue:

Are people really supposed to believe Daz 3D developers don’t read NVIDIA Iray changelog before integrating new Iray versions into Daz Studio?

Are you guys really OK with Daz 3D blaming NVIDIA for the workflow disruption to their customers, and claiming they are totally powerless to even attempt to work it out with you?

I sincerely hope not.

1 Like

@CarstenWaechter Time to revisit this topic.

When using Advanced Iray Node property IGLF (Iray Ghost Light Factor) to control visibility of ghost light reflection in surfaces such as glass (glass - solid - clear) or metal (silver - polished), setting IGLF to 2 is enough to hide the ghost light reflection from such surfaces.

However, any surface that has:

  • Glossy Layered Weight == 1.0 && Glossy Roughness != 0.0
  • Top Coat Weight == 1.0 && Top Coat Roughness != 0.0
  • Dual Lobe Specular Weight == 1.0
  • Metalic Flakes Weight == 1.0 && Metalic Flakes Roughness != 0.0

Still reflect the ghost light as if the Iray Ghost Light Factor does not attenuate them at the same rate as it attenuates reflections in surfaces with Metalicity == 1.0.

Can you please clarify whether that is an expected behavior? To me it looks like not all possible reflection paths were considered.