EXR issue

Discussion related to the LuxCore functionality, implementations and API.
User avatar
TAO
Developer
Developer
Posts: 850
Joined: Sun Mar 24, 2019 4:49 pm
Location: France
Contact:

EXR issue

Post by TAO »

when I used Exr as an environment map I get errors or crashes.
The error is about an unsupported number of channels in an imagemap.
Screenshot 2021-06-25 011744.jpeg
there is no error for crash just an unexpected error it may cause by the same issues, with Hdri the scene will be rendered perfectlly.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: EXR issue

Post by Dade »

TAO wrote: Thu Jun 24, 2021 11:21 pm when I used Exr as an environment map I get errors or crashes.
The error is about an unsupported number of channels in an imagemap.
Screenshot 2021-06-25 011744.jpeg
The HDR has 6 channels while one with 3 (RGB) is required.
TAO wrote: Thu Jun 24, 2021 11:21 pm there is no error for crash just an unexpected error it may cause by the same issues, with Hdri the scene will be rendered perfectlly.
I don't understand, in what case doesn't it crash ?

It is a C++ exception and it should be handled (with a try { } catch() {}) by the plugin code. I have the feeling the exception is instead handled by 3DsMax code.
Support LuxCoreRender project with salts and bounties
User avatar
TAO
Developer
Developer
Posts: 850
Joined: Sun Mar 24, 2019 4:49 pm
Location: France
Contact:

Re: EXR issue

Post by TAO »

Dade wrote: Fri Jun 25, 2021 10:30 am
The HDR has 6 channels while one with 3 (RGB) is required.
TAO wrote: Thu Jun 24, 2021 11:21 pm there is no error for crash just an unexpected error it may cause by the same issues, with Hdri the scene will be rendered perfectlly.
I don't understand, in what case doesn't it crash ?

It is a C++ exception and it should be handled (with a try { } catch() {}) by the plugin code. I have the feeling the exception is instead handled by 3DsMax code.
I'm pretty sure that is not about 3dsmax, luxcore stand-alone crashes too. almost with any Exr environment map and it happens only with GPU renderer. i used standard Hdri from greyscalegorilla.com as sharlybg suggested.
here is a simple scene to be tested. the luxcore UI 2.5beta1 has been used for render. the scene contains 2 simple objects and just one Exr as env map.
https://www.3dfine.com/down/TAOPHP/files/exr-Crash.zip
The problem can be reproduced with any other Exr map from the website that I mention.
Screenshot 2021-06-25 132330.jpeg
the luxcore UI crash at this point with no error report.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: EXR issue

Post by Dade »

TAO wrote: Fri Jun 25, 2021 11:30 am
Dade wrote: Fri Jun 25, 2021 10:30 am
The HDR has 6 channels while one with 3 (RGB) is required.
TAO wrote: Thu Jun 24, 2021 11:21 pm there is no error for crash just an unexpected error it may cause by the same issues, with Hdri the scene will be rendered perfectlly.
I don't understand, in what case doesn't it crash ?

It is a C++ exception and it should be handled (with a try { } catch() {}) by the plugin code. I have the feeling the exception is instead handled by 3DsMax code.
I'm pretty sure that is not about 3dsmax, luxcore stand-alone crashes too. almost with any Exr environment map and it happens only with GPU renderer. i used standard Hdri from greyscalegorilla.com as sharlybg suggested.
here is a simple scene to be tested. the luxcore UI 2.5beta1 has been used for render. the scene contains 2 simple objects and just one Exr as env map.
https://www.3dfine.com/down/TAOPHP/files/exr-Crash.zip
The problem can be reproduced with any other Exr map from the website that I mention.

Screenshot 2021-06-25 132330.jpeg
the luxcore UI crash at this point with no error report.
Your HDR has hundreds of "-nan" values:

Code: Select all

[SDL][0.001] Light definition: infinit
[SDL][0.001] Reading texture map: imagemap-00001.exr
[SDL][0.002] Mip map available: [6000x3000]
[SDL][0.002] Reading mip map level: 0
Pixel (4589, 349) in infinite light has an invalid: -nan
Pixel (4590, 349) in infinite light has an invalid: -nan
Pixel (4591, 349) in infinite light has an invalid: -nan
Pixel (4592, 349) in infinite light has an invalid: -nan
Pixel (4593, 349) in infinite light has an invalid: -nan
Pixel (4594, 349) in infinite light has an invalid: -nan
Pixel (4595, 349) in infinite light has an invalid: -nan
Pixel (4596, 349) in infinite light has an invalid: -nan
Pixel (4597, 349) in infinite light has an invalid: -nan
Pixel (4598, 349) in infinite light has an invalid: -nan
Pixel (4599, 349) in infinite light has an invalid: -nan
Pixel (4600, 349) in infinite light has an invalid: -nan
Pixel (4601, 349) in infinite light has an invalid: -nan
Pixel (4602, 349) in infinite light has an invalid: -nan
Pixel (4603, 349) in infinite light has an invalid: -nan
Pixel (4604, 349) in infinite light has an invalid: -nan
Pixel (4605, 349) in infinite light has an invalid: -nan
Pixel (4606, 349) in infinite light has an invalid: -nan
Pixel (4607, 349) in infinite light has an invalid: -nan
Pixel (4608, 349) in infinite light has an invalid: -nan
Pixel (4609, 349) in infinite light has an invalid: -nan
Pixel (4610, 349) in infinite light has an invalid: -nan
Pixel (4611, 349) in infinite light has an invalid: -nan
Pixel (4612, 349) in infinite light has an invalid: -nan
Pixel (4613, 349) in infinite light has an invalid: -nan
Pixel (4614, 349) in infinite light has an invalid: -nan
Pixel (4615, 349) in infinite light has an invalid: -nan
Pixel (4616, 349) in infinite light has an invalid: -nan
Pixel (4617, 349) in infinite light has an invalid: -nan
Pixel (4618, 349) in infinite light has an invalid: -nan
Pixel (4619, 349) in infinite light has an invalid: -nan
Pixel (4620, 349) in infinite light has an invalid: -nan
Pixel (4621, 349) in infinite light has an invalid: -nan
Pixel (4622, 349) in infinite light has an invalid: -nan
Pixel (4623, 349) in infinite light has an invalid: -nan
Pixel (4624, 349) in infinite light has an invalid: -nan
Pixel (4625, 349) in infinite light has an invalid: -nan
Pixel (4626, 349) in infinite light has an invalid: -nan
Pixel (4627, 349) in infinite light has an invalid: -nan
Pixel (4628, 349) in infinite light has an invalid: -nan
Pixel (4629, 349) in infinite light has an invalid: -nan
Pixel (4630, 349) in infinite light has an invalid: -nan
Pixel (4631, 349) in infinite light has an invalid: -nan
Pixel (4632, 349) in infinite light has an invalid: -nan
Pixel (4633, 349) in infinite light has an invalid: -nan
Pixel (4634, 349) in infinite light has an invalid: -nan
Pixel (4635, 349) in infinite light has an invalid: -nan
Pixel (4636, 349) in infinite light has an invalid: -nan
Pixel (4637, 349) in infinite light has an invalid: -nan
Pixel (4638, 349) in infinite light has an invalid: -nan
Pixel (4639, 349) in infinite light has an invalid: -nan
Pixel (4640, 349) in infinite light has an invalid: -nan
Pixel (4641, 349) in infinite light has an invalid: -nan
Pixel (4642, 349) in infinite light has an invalid: -nan
Pixel (4643, 349) in infinite light has an invalid: -nan
Pixel (4644, 349) in infinite light has an invalid: -nan
Pixel (4645, 349) in infinite light has an invalid: -nan
Pixel (4646, 349) in infinite light has an invalid: -nan
Pixel (4647, 349) in infinite light has an invalid: -nan
Pixel (4648, 349) in infinite light has an invalid: -nan
Pixel (4649, 349) in infinite light has an invalid: -nan
Pixel (4650, 349) in infinite light has an invalid: -nan
Pixel (4651, 349) in infinite light has an invalid: -nan
Pixel (4652, 349) in infinite light has an invalid: -nan
Pixel (4653, 349) in infinite light has an invalid: -nan
Pixel (4654, 349) in infinite light has an invalid: -nan
Pixel (4655, 349) in infinite light has an invalid: -nan
Pixel (4656, 349) in infinite light has an invalid: -nan
Pixel (4657, 349) in infinite light has an invalid: -nan
Pixel (4658, 349) in infinite light has an invalid: -nan
Pixel (4659, 349) in infinite light has an invalid: -nan
Pixel (4660, 349) in infinite light has an invalid: -nan
Pixel (4661, 349) in infinite light has an invalid: -nan
Pixel (4662, 349) in infinite light has an invalid: -nan
Pixel (4663, 349) in infinite light has an invalid: -nan
Pixel (4664, 349) in infinite light has an invalid: -nan
Pixel (4665, 349) in infinite light has an invalid: -nan
Pixel (4666, 349) in infinite light has an invalid: -nan
Pixel (4667, 349) in infinite light has an invalid: -nan
Pixel (4668, 349) in infinite light has an invalid: -nan
Pixel (4669, 349) in infinite light has an invalid: -nan
Pixel (4670, 349) in infinite light has an invalid: -nan
Pixel (4671, 349) in infinite light has an invalid: -nan
Pixel (4672, 349) in infinite light has an invalid: -nan
Pixel (4673, 349) in infinite light has an invalid: -nan
Pixel (4674, 349) in infinite light has an invalid: -nan
Pixel (4675, 349) in infinite light has an invalid: -nan
Pixel (4676, 349) in infinite light has an invalid: -nan
Pixel (4677, 349) in infinite light has an invalid: -nan
Pixel (4678, 349) in infinite light has an invalid: -nan
Pixel (4679, 349) in infinite light has an invalid: -nan
Pixel (4680, 349) in infinite light has an invalid: -nan
Pixel (4681, 349) in infinite light has an invalid: -nan
Pixel (4682, 349) in infinite light has an invalid: -nan
Pixel (4683, 349) in infinite light has an invalid: -nan
Pixel (4684, 349) in infinite light has an invalid: -nan
Pixel (4685, 349) in infinite light has an invalid: -nan
Pixel (4686, 349) in infinite light has an invalid: -nan
Pixel (4687, 349) in infinite light has an invalid: -nan
[...continue...]
You can not use it.

I added a safety check for infinite light source when HDR with invalid values (NaN, Inf, etc.) are used:

Code: Select all

[SDL][0.001] Light definition: infinit
[SDL][0.001] Reading texture map: imagemap-00001.exr
[SDL][0.002] Mip map available: [6000x3000]
[SDL][0.002] Reading mip map level: 0
RUNTIME ERROR: Pixel (4589, 349) in infinite light has an invalid value: -nan
Support LuxCoreRender project with salts and bounties
User avatar
TAO
Developer
Developer
Posts: 850
Joined: Sun Mar 24, 2019 4:49 pm
Location: France
Contact:

Re: EXR issue

Post by TAO »

That is a normal Exr has been used In all other renderers with no issue and it cames from one of the most famous company in creating Hdri lighting.
https://greyscalegorilla.com/
I tried the same exr with Arnold renderer, V-ray, corona, and octan.
Last edited by TAO on Sat Jun 26, 2021 12:18 am, edited 2 times in total.
User avatar
TAO
Developer
Developer
Posts: 850
Joined: Sun Mar 24, 2019 4:49 pm
Location: France
Contact:

Re: EXR issue

Post by TAO »

Dade wrote: Fri Jun 25, 2021 1:56 pm Your HDR has hundreds of "-nan" values:

Code: Select all

[SDL][0.001] Light definition: infinit
[SDL][0.001] Reading texture map: imagemap-00001.exr
[SDL][0.002] Mip map available: [6000x3000]
[SDL][0.002] Reading mip map level: 0
Pixel (4589, 349) in infinite light has an invalid: -nan
Pixel (4590, 349) in infinite light has an invalid: -nan
Pixel (4591, 349) in infinite light has an invalid: -nan
Pixel (4592, 349) in infinite light has an invalid: -nan
Pixel (4593, 349) in infinite light has an invalid: -nan
Pixel (4594, 349) in infinite light has an invalid: -nan
Pixel (4595, 349) in infinite light has an invalid: -nan
Pixel (4596, 349) in infinite light has an invalid: -nan
Pixel (4597, 349) in infinite light has an invalid: -nan
Pixel (4598, 349) in infinite light has an invalid: -nan
Pixel (4599, 349) in infinite light has an invalid: -nan
Pixel (4600, 349) in infinite light has an invalid: -nan
Pixel (4601, 349) in infinite light has an invalid: -nan
Pixel (4602, 349) in infinite light has an invalid: -nan
Pixel (4603, 349) in infinite light has an invalid: -nan
Pixel (4604, 349) in infinite light has an invalid: -nan
Pixel (4605, 349) in infinite light has an invalid: -nan
Pixel (4606, 349) in infinite light has an invalid: -nan
Pixel (4607, 349) in infinite light has an invalid: -nan
Pixel (4608, 349) in infinite light has an invalid: -nan
Pixel (4609, 349) in infinite light has an invalid: -nan
Pixel (4610, 349) in infinite light has an invalid: -nan
Pixel (4611, 349) in infinite light has an invalid: -nan
Pixel (4612, 349) in infinite light has an invalid: -nan
Pixel (4613, 349) in infinite light has an invalid: -nan
Pixel (4614, 349) in infinite light has an invalid: -nan
Pixel (4615, 349) in infinite light has an invalid: -nan
Pixel (4616, 349) in infinite light has an invalid: -nan
Pixel (4617, 349) in infinite light has an invalid: -nan
Pixel (4618, 349) in infinite light has an invalid: -nan
Pixel (4619, 349) in infinite light has an invalid: -nan
Pixel (4620, 349) in infinite light has an invalid: -nan
Pixel (4621, 349) in infinite light has an invalid: -nan
Pixel (4622, 349) in infinite light has an invalid: -nan
Pixel (4623, 349) in infinite light has an invalid: -nan
Pixel (4624, 349) in infinite light has an invalid: -nan
Pixel (4625, 349) in infinite light has an invalid: -nan
Pixel (4626, 349) in infinite light has an invalid: -nan
Pixel (4627, 349) in infinite light has an invalid: -nan
Pixel (4628, 349) in infinite light has an invalid: -nan
Pixel (4629, 349) in infinite light has an invalid: -nan
Pixel (4630, 349) in infinite light has an invalid: -nan
Pixel (4631, 349) in infinite light has an invalid: -nan
Pixel (4632, 349) in infinite light has an invalid: -nan
Pixel (4633, 349) in infinite light has an invalid: -nan
Pixel (4634, 349) in infinite light has an invalid: -nan
Pixel (4635, 349) in infinite light has an invalid: -nan
Pixel (4636, 349) in infinite light has an invalid: -nan
Pixel (4637, 349) in infinite light has an invalid: -nan
Pixel (4638, 349) in infinite light has an invalid: -nan
Pixel (4639, 349) in infinite light has an invalid: -nan
Pixel (4640, 349) in infinite light has an invalid: -nan
Pixel (4641, 349) in infinite light has an invalid: -nan
Pixel (4642, 349) in infinite light has an invalid: -nan
Pixel (4643, 349) in infinite light has an invalid: -nan
Pixel (4644, 349) in infinite light has an invalid: -nan
Pixel (4645, 349) in infinite light has an invalid: -nan
Pixel (4646, 349) in infinite light has an invalid: -nan
Pixel (4647, 349) in infinite light has an invalid: -nan
Pixel (4648, 349) in infinite light has an invalid: -nan
Pixel (4649, 349) in infinite light has an invalid: -nan
Pixel (4650, 349) in infinite light has an invalid: -nan
Pixel (4651, 349) in infinite light has an invalid: -nan
Pixel (4652, 349) in infinite light has an invalid: -nan
Pixel (4653, 349) in infinite light has an invalid: -nan
Pixel (4654, 349) in infinite light has an invalid: -nan
Pixel (4655, 349) in infinite light has an invalid: -nan
Pixel (4656, 349) in infinite light has an invalid: -nan
Pixel (4657, 349) in infinite light has an invalid: -nan
Pixel (4658, 349) in infinite light has an invalid: -nan
Pixel (4659, 349) in infinite light has an invalid: -nan
Pixel (4660, 349) in infinite light has an invalid: -nan
Pixel (4661, 349) in infinite light has an invalid: -nan
Pixel (4662, 349) in infinite light has an invalid: -nan
Pixel (4663, 349) in infinite light has an invalid: -nan
Pixel (4664, 349) in infinite light has an invalid: -nan
Pixel (4665, 349) in infinite light has an invalid: -nan
Pixel (4666, 349) in infinite light has an invalid: -nan
Pixel (4667, 349) in infinite light has an invalid: -nan
Pixel (4668, 349) in infinite light has an invalid: -nan
Pixel (4669, 349) in infinite light has an invalid: -nan
Pixel (4670, 349) in infinite light has an invalid: -nan
Pixel (4671, 349) in infinite light has an invalid: -nan
Pixel (4672, 349) in infinite light has an invalid: -nan
Pixel (4673, 349) in infinite light has an invalid: -nan
Pixel (4674, 349) in infinite light has an invalid: -nan
Pixel (4675, 349) in infinite light has an invalid: -nan
Pixel (4676, 349) in infinite light has an invalid: -nan
Pixel (4677, 349) in infinite light has an invalid: -nan
Pixel (4678, 349) in infinite light has an invalid: -nan
Pixel (4679, 349) in infinite light has an invalid: -nan
Pixel (4680, 349) in infinite light has an invalid: -nan
Pixel (4681, 349) in infinite light has an invalid: -nan
Pixel (4682, 349) in infinite light has an invalid: -nan
Pixel (4683, 349) in infinite light has an invalid: -nan
Pixel (4684, 349) in infinite light has an invalid: -nan
Pixel (4685, 349) in infinite light has an invalid: -nan
Pixel (4686, 349) in infinite light has an invalid: -nan
Pixel (4687, 349) in infinite light has an invalid: -nan
[...continue...]
You can not use it.

I added a safety check for infinite light source when HDR with invalid values (NaN, Inf, etc.) are used:

Code: Select all

[SDL][0.001] Light definition: infinit
[SDL][0.001] Reading texture map: imagemap-00001.exr
[SDL][0.002] Mip map available: [6000x3000]
[SDL][0.002] Reading mip map level: 0
RUNTIME ERROR: Pixel (4589, 349) in infinite light has an invalid value: -nan
The -nan value appears after saving the scene using filesaver, the original file has no issues. can it be because of the Default Gamma value of 3dsmax?
Low reselution version exr.
GSG_PRO_STUDIOS_METAL_001_sm.zip
(3.83 MiB) Downloaded 136 times
Note: 3dsmax code not converting the exr in any way and just pass the path of exr in luxcore directly, no change at all.
Martini
Posts: 125
Joined: Fri Nov 23, 2018 11:36 am
Location: Australia

Re: EXR issue

Post by Martini »

TAO wrote: Fri Jun 25, 2021 11:33 pm The -nan value appears after saving the scene using filesaver, the original file has no issues. can it be because of the Default Gamma value of 3dsmax?
That almost sounds like the old locale problem again with adding commas or periods into large integers?

Edit: that low-resolution HDRI EXR works fine for me in LuxCore in Blender. Sorry I don't have 3dsmax to test, or a subscription to access the other files on that site.

Do you get the same issue with EXRs from https://hdrihaven.com/ ?
AMD Ryzen Threadripper PRO 5995WX 64-Cores | 2x Gigabyte RTX 4090 Gaming OC
ASUS Pro WS WRX80E-SAGE SE WIFI | 256GB Kingston Server Premier ECC Unbuffered DDR4
User avatar
TAO
Developer
Developer
Posts: 850
Joined: Sun Mar 24, 2019 4:49 pm
Location: France
Contact:

Re: EXR issue

Post by TAO »

Martini wrote: Sat Jun 26, 2021 1:02 pm
TAO wrote: Fri Jun 25, 2021 11:33 pm The -nan value appears after saving the scene using filesaver, the original file has no issues. can it be because of the Default Gamma value of 3dsmax?
That almost sounds like the old locale problem again with adding commas or periods into large integers?

Edit: that low-resolution HDRI EXR works fine for me in LuxCore in Blender. Sorry I don't have 3dsmax to test, or a subscription to access the other files on that site.

Do you get the same issue with EXRs from https://hdrihaven.com/ ?
I think 3dsmax adding a gamma value as it is in Gamma pannel to all input maps and that should be the source of the problem then when i save the scene by filesaver it saves with new gamma parameters, i need to for all map and image to input with Gamma 1.
Hdrhaven file formats are HDR and no problem with this kind of image, the problem appear just with EXRs.
Martini
Posts: 125
Joined: Fri Nov 23, 2018 11:36 am
Location: Australia

Re: EXR issue

Post by Martini »

TAO wrote: Sat Jun 26, 2021 1:46 pm Hdrhaven file formats are HDR and no problem with this kind of image
Oh wow, you are right. I never noticed that! My apologies. :oops:
AMD Ryzen Threadripper PRO 5995WX 64-Cores | 2x Gigabyte RTX 4090 Gaming OC
ASUS Pro WS WRX80E-SAGE SE WIFI | 256GB Kingston Server Premier ECC Unbuffered DDR4
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: EXR issue

Post by Dade »

TAO wrote: Fri Jun 25, 2021 11:33 pm Note: 3dsmax code not converting the exr in any way and just pass the path of exr in luxcore directly, no change at all.
What gamma value are using to define the infinite light source in LuxCore API ?

LuxCore have to reverse gamma correct any image for the rendering.
Support LuxCoreRender project with salts and bounties
Post Reply