Page 1 of 2

EXR issue

Posted: Thu Jun 24, 2021 11:21 pm
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.

Re: EXR issue

Posted: Fri Jun 25, 2021 10:30 am
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.

Re: EXR issue

Posted: Fri Jun 25, 2021 11:30 am
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.

Re: EXR issue

Posted: Fri Jun 25, 2021 1:56 pm
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

Re: EXR issue

Posted: Fri Jun 25, 2021 3:32 pm
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.

Re: EXR issue

Posted: Fri Jun 25, 2021 11:33 pm
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 143 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.

Re: EXR issue

Posted: Sat Jun 26, 2021 1:02 pm
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/ ?

Re: EXR issue

Posted: Sat Jun 26, 2021 1:46 pm
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.

Re: EXR issue

Posted: Sat Jun 26, 2021 1:58 pm
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:

Re: EXR issue

Posted: Sat Jun 26, 2021 3:03 pm
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.