Roughness below 0.01 treated as mirror by PATH engine
Posted: Sat Sep 21, 2019 1:58 pm
I have gathered some evidence... see the following render from Blender 2.80, LuxCore 2.2rc1:
I checked the output .scn file as well, the exported materials look correct.
Material for roughness 0.01:
Material for roughness 0.00999:
As you can see it's virtually identical. Exported roughness values are 0.00999999978 vs 0.00999000017, yet somehow the second one gets rendered as a perfect mirror (as though roughness were 0). Also you may note that Glossy material is also affected, and the roughness on the Disney material is not working at all.
It also renders the same way from within LuxCoreUI:
I have tested with Light Tracing on and off, makes no difference. CPU vs GPU makes no difference.
The only thing that does make a difference is BIDIRCPU. Roughness works just fine with BiDir engine!
It seems reasonable to me to conclude that the bug may lie within the PATH LuxCore engine.
I checked the output .scn file as well, the exported materials look correct.
Material for roughness 0.01:
Code: Select all
scene.textures.2441963438968Fresnel.type = "fresnelconst"
scene.textures.2441963438968Fresnel.n = 0.0981203318 0.373658836 1.57057941
scene.textures.2441963438968Fresnel.k = 3.35364223 2.52603722 1.76780081
scene.textures.Implicit-ConstFloatTexture-2e7883ad-e292-43a8-a2d3-a4b9df7771f3.type = "constfloat1"
scene.textures.Implicit-ConstFloatTexture-2e7883ad-e292-43a8-a2d3-a4b9df7771f3.value = 0.00999999978
scene.textures.Implicit-ConstFloatTexture-cf3860dd-d6b1-41e7-9c39-d391e48fc320.type = "constfloat1"
scene.textures.Implicit-ConstFloatTexture-cf3860dd-d6b1-41e7-9c39-d391e48fc320.value = 0.00999999978
scene.materials.MetallicPointOhOne2440874536696.type = "metal2"
scene.materials.MetallicPointOhOne2440874536696.fresnel = "2441963438968Fresnel"
scene.materials.MetallicPointOhOne2440874536696.uroughness = "Implicit-ConstFloatTexture-2e7883ad-e292-43a8-a2d3-a4b9df7771f3"
scene.materials.MetallicPointOhOne2440874536696.vroughness = "Implicit-ConstFloatTexture-cf3860dd-d6b1-41e7-9c39-d391e48fc320"
scene.materials.MetallicPointOhOne2440874536696.id = 13398304
scene.materials.MetallicPointOhOne2440874536696.emission.gain = 1 1 1
scene.materials.MetallicPointOhOne2440874536696.emission.power = 0
scene.materials.MetallicPointOhOne2440874536696.emission.efficency = 0
scene.materials.MetallicPointOhOne2440874536696.emission.theta = 90
scene.materials.MetallicPointOhOne2440874536696.emission.id = 0
scene.materials.MetallicPointOhOne2440874536696.emission.importance = 1
scene.materials.MetallicPointOhOne2440874536696.emission.directlightsampling.type = "AUTO"
scene.materials.MetallicPointOhOne2440874536696.visibility.indirect.diffuse.enable = 1
scene.materials.MetallicPointOhOne2440874536696.visibility.indirect.glossy.enable = 1
scene.materials.MetallicPointOhOne2440874536696.visibility.indirect.specular.enable = 1
scene.materials.MetallicPointOhOne2440874536696.shadowcatcher.enable = 0
scene.materials.MetallicPointOhOne2440874536696.shadowcatcher.onlyinfinitelights = 0
Code: Select all
scene.textures.2441963428056Fresnel.type = "fresnelconst"
scene.textures.2441963428056Fresnel.n = 0.0981203318 0.373658836 1.57057941
scene.textures.2441963428056Fresnel.k = 3.35364223 2.52603722 1.76780081
scene.textures.Implicit-ConstFloatTexture-cc8d6cb8-5537-4475-bdc2-5332e2e51548.type = "constfloat1"
scene.textures.Implicit-ConstFloatTexture-cc8d6cb8-5537-4475-bdc2-5332e2e51548.value = 0.00999000017
scene.textures.Implicit-ConstFloatTexture-61406085-9f72-4eaa-adc4-6d216b01460c.type = "constfloat1"
scene.textures.Implicit-ConstFloatTexture-61406085-9f72-4eaa-adc4-6d216b01460c.value = 0.00999000017
scene.materials.MetallicPointOhOhNines2440874528968.type = "metal2"
scene.materials.MetallicPointOhOhNines2440874528968.fresnel = "2441963428056Fresnel"
scene.materials.MetallicPointOhOhNines2440874528968.uroughness = "Implicit-ConstFloatTexture-cc8d6cb8-5537-4475-bdc2-5332e2e51548"
scene.materials.MetallicPointOhOhNines2440874528968.vroughness = "Implicit-ConstFloatTexture-61406085-9f72-4eaa-adc4-6d216b01460c"
scene.materials.MetallicPointOhOhNines2440874528968.id = 706207
scene.materials.MetallicPointOhOhNines2440874528968.emission.gain = 1 1 1
scene.materials.MetallicPointOhOhNines2440874528968.emission.power = 0
scene.materials.MetallicPointOhOhNines2440874528968.emission.efficency = 0
scene.materials.MetallicPointOhOhNines2440874528968.emission.theta = 90
scene.materials.MetallicPointOhOhNines2440874528968.emission.id = 0
scene.materials.MetallicPointOhOhNines2440874528968.emission.importance = 1
scene.materials.MetallicPointOhOhNines2440874528968.emission.directlightsampling.type = "AUTO"
scene.materials.MetallicPointOhOhNines2440874528968.visibility.indirect.diffuse.enable = 1
scene.materials.MetallicPointOhOhNines2440874528968.visibility.indirect.glossy.enable = 1
scene.materials.MetallicPointOhOhNines2440874528968.visibility.indirect.specular.enable = 1
scene.materials.MetallicPointOhOhNines2440874528968.shadowcatcher.enable = 0
scene.materials.MetallicPointOhOhNines2440874528968.shadowcatcher.onlyinfinitelights = 0
It also renders the same way from within LuxCoreUI:
I have tested with Light Tracing on and off, makes no difference. CPU vs GPU makes no difference.
The only thing that does make a difference is BIDIRCPU. Roughness works just fine with BiDir engine!
It seems reasonable to me to conclude that the bug may lie within the PATH LuxCore engine.