[EEVEE] Discrepancy between multiple and single irradiance volumes #68331

Closed
opened 2019-08-06 19:16:11 +02:00 by Bryon Leung · 17 comments

System Information
Operating system: Linux-4.15.0-55-generic-x86_64-with-debian-buster-sid 64 Bits
Graphics card: GeForce GT 710/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.116

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: f6cb5f5449

Short description of error
Rendering a given scene using a single irradiance volume lightprobe versus multiple irradiance volume lightprobes (both sampling from the same locations) gives different results. This assumes that no other lightprobes are present (save for a single reflection cubemap), and that the influence area of all lightprobes involved covers the entire area of interest. In the case where there are multiple lightprobes, every single lightprobe covers the entire area of interest in its influence area.

The results of this discrepancy can be seen in the image below.
irradiance_volume_discrepancy.png

Exact steps for others to reproduce the error
Open up each of the attached .blend files found below. Press [Num0] to move viewport to the placed camera, then press [F12] to render. The resulting render in single_lightprobe_scene.blend should match the right image, and the render in multi_lightprobe_scene.blend should match the left image.

The lightprobe placement and configuration can be obtained from the two blend files. multi_lightprobe_scene.blend contains 9 lightprobes that, altogether, sample from the same positions as the single lightprobe in single_lightprobe_scene.blend, once each. All lightprobes in both scenes have an influence area encompassing the entire room; in multi_lightprobe_scene.blend every single lightprobe's influence area covers the entire room.

single_lightprobe_scene.blend

multi_lightprobe_scene.blend


Update

The below file contains a simple scene with 1 light probe, sampling from 9 points.
test_single_lightprobe3.blend

The below file contains the same scene with 9 lightprobes, each sampling from one point (which all correspond to one of the 9 points sampled from above).
test_multi_lightprobe.blend

The render result with the single lightprobe case is as follows using Blender 2.82:

single.png

The render result with the multiple lightprobe case is as follows using Blender 2.82:

multi.png

Note the brighter lighting pattern in the single lightprobe test case. I don't know if the two cases are supposed to be identical, though.

The system info of the version of Blender used to test this is in the below file.
system-info.txt

**System Information** Operating system: Linux-4.15.0-55-generic-x86_64-with-debian-buster-sid 64 Bits Graphics card: GeForce GT 710/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.116 **Blender Version** Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: `f6cb5f5449` **Short description of error** Rendering a given scene using a single irradiance volume lightprobe versus multiple irradiance volume lightprobes (both sampling from the same locations) gives different results. This assumes that no other lightprobes are present (save for a single reflection cubemap), and that the influence area of all lightprobes involved covers the entire area of interest. In the case where there are multiple lightprobes, every single lightprobe covers the entire area of interest in its influence area. The results of this discrepancy can be seen in the image below. ![irradiance_volume_discrepancy.png](https://archive.blender.org/developer/F7651843/irradiance_volume_discrepancy.png) **Exact steps for others to reproduce the error** Open up each of the attached .blend files found below. Press `[Num0]` to move viewport to the placed camera, then press `[F12]` to render. The resulting render in `single_lightprobe_scene.blend` should match the right image, and the render in `multi_lightprobe_scene.blend` should match the left image. The lightprobe placement and configuration can be obtained from the two blend files. `multi_lightprobe_scene.blend` contains 9 lightprobes that, altogether, sample from the same positions as the single lightprobe in `single_lightprobe_scene.blend`, once each. All lightprobes in both scenes have an influence area encompassing the entire room; in `multi_lightprobe_scene.blend` every single lightprobe's influence area covers the entire room. [single_lightprobe_scene.blend](https://archive.blender.org/developer/F7651847/single_lightprobe_scene.blend) [multi_lightprobe_scene.blend](https://archive.blender.org/developer/F7651846/multi_lightprobe_scene.blend) ---- **Update** The below file contains a simple scene with 1 light probe, sampling from 9 points. [test_single_lightprobe3.blend](https://archive.blender.org/developer/F8358103/test_single_lightprobe3.blend) The below file contains the same scene with 9 lightprobes, each sampling from one point (which all correspond to one of the 9 points sampled from above). [test_multi_lightprobe.blend](https://archive.blender.org/developer/F8358102/test_multi_lightprobe.blend) The render result with the single lightprobe case is as follows using Blender 2.82: ![single.png](https://archive.blender.org/developer/F8358110/single.png) The render result with the multiple lightprobe case is as follows using Blender 2.82: ![multi.png](https://archive.blender.org/developer/F8358115/multi.png) Note the brighter lighting pattern in the single lightprobe test case. I don't know if the two cases are supposed to be identical, though. The system info of the version of Blender used to test this is in the below file. [system-info.txt](https://archive.blender.org/developer/F8358137/system-info.txt)
Author

Added subscriber: @GalerkinBunny

Added subscriber: @GalerkinBunny

Added subscriber: @HirotakaImagawa

Added subscriber: @HirotakaImagawa

I've just opened your attached file. There are multiple faces are placed at a same place.

image.png

And found some faces with no area.

image.png

Could you check that and try after merging faces or vertices?

I've just opened your attached file. There are multiple faces are placed at a same place. ![image.png](https://archive.blender.org/developer/F7652367/image.png) And found some faces with no area. ![image.png](https://archive.blender.org/developer/F7652369/image.png) Could you check that and try after merging faces or vertices?
Author

Hi Hiroyuki,

I tried to fix the zero-area faces (on the 'antibleed barrier' object) by selecting all faces and using Fill Holes/Degenerate Dissolve. I haven't been able to figure out how to resolve the multiple faces placed at same location, though (it seems that they are on separate sides of the thin mesh). I've attached the files below.

multi_lightprobe_scene_fixed.blend

single_lightprobe_scene_fixed.blend

I'm still getting the loss of indirect lighting, though. If all else fails, I feel that I can replicate this issue in a scene with a simpler mesh (that would not have the issues observed above).

Hi Hiroyuki, I tried to fix the zero-area faces (on the 'antibleed barrier' object) by selecting all faces and using `Fill Holes`/`Degenerate Dissolve`. I haven't been able to figure out how to resolve the multiple faces placed at same location, though (it seems that they are on separate sides of the thin mesh). I've attached the files below. [multi_lightprobe_scene_fixed.blend](https://archive.blender.org/developer/F7653072/multi_lightprobe_scene_fixed.blend) [single_lightprobe_scene_fixed.blend](https://archive.blender.org/developer/F7653071/single_lightprobe_scene_fixed.blend) I'm still getting the loss of indirect lighting, though. If all else fails, I feel that I can replicate this issue in a scene with a simpler mesh (that would not have the issues observed above).
Author

I've been able to replicate this issue in a simple scene (an extruded cube, with the lightprobes, light sources, and cameras all inside the inner layer of the cube). The render can be seen below; note that the same issue with the loss of indirect lighting occurs on the render with multiple irradiance volumes.
simple_screenie.png

The blend files for this scene can be found below.

multi_lightprobe_scene_simple.blend

single_lightprobe_scene_simple.blend

I've been able to replicate this issue in a simple scene (an extruded cube, with the lightprobes, light sources, and cameras all inside the inner layer of the cube). The render can be seen below; note that the same issue with the loss of indirect lighting occurs on the render with multiple irradiance volumes. ![simple_screenie.png](https://archive.blender.org/developer/F7653334/simple_screenie.png) The blend files for this scene can be found below. [multi_lightprobe_scene_simple.blend](https://archive.blender.org/developer/F7653217/multi_lightprobe_scene_simple.blend) [single_lightprobe_scene_simple.blend](https://archive.blender.org/developer/F7653216/single_lightprobe_scene_simple.blend)

Hi GalerkinBunny,

I've just see your new simple one and "fixed" scene.

First of all, I understand the "fixed" one still have multiple polygons are in a same place too. I also tried "Merge Vertices by Distance"; I believe that is renamed function of "Remove Double" in previous version.
But these faces with more than 3 or 4 vertices cannot be merged. I think this is because of having convex polygon and they have different number of vertices for each "front" and "back" faces.
If you built this model in other tools and imported to Blender, the other tools may involves the result of CAD function such like solid modeling. Exporting solid model from CAD causes some problem for polygon modeler sometime.

Any way, I also tried to learn Light-Probe function with your new simple .blend. This is the first time to use Eevee's light baking for me. Thank you:)

I think that you want to put these probe at arbitrary place right?, but light-probe object cannot be edited their probe point with "Edit-mode" at this time;version.
So, I thought that you had to arrange these probes by using multiple light-probe object.

Your each probe has no volume and their probes are arranged in line. Actually, Eevee may be able to calculate light information for each position, but, room faces being lighted with simple projection mapping technique, I think Eevee cannot project these information during rendering. This means that I think we have to wait until Blender will have function to edit in "Edit-mode" for light-probe.

But this is just my thought as a user. It is probably a bug in fact;Please some one respond us.
And I also recommend that you would try to post this topic to other open board such BlenderArtist or somewhere. Not few designers may have some thought about this.

Thanks.

Hi GalerkinBunny, I've just see your new simple one and "fixed" scene. First of all, I understand the "fixed" one still have multiple polygons are in a same place too. I also tried "Merge Vertices by Distance"; I believe that is renamed function of "Remove Double" in previous version. But these faces with more than 3 or 4 vertices cannot be merged. I think this is because of having convex polygon and they have different number of vertices for each "front" and "back" faces. If you built this model in other tools and imported to Blender, the other tools may involves the result of CAD function such like solid modeling. Exporting solid model from CAD causes some problem for polygon modeler sometime. Any way, I also tried to learn Light-Probe function with your new simple .blend. This is the first time to use Eevee's light baking for me. Thank you:) I think that you want to put these probe at arbitrary place right?, but light-probe object cannot be edited their probe point with "Edit-mode" at this time;version. So, I thought that you had to arrange these probes by using multiple light-probe object. Your each probe has no volume and their probes are arranged in line. Actually, Eevee may be able to calculate light information for each position, but, room faces being lighted with simple projection mapping technique, I think Eevee cannot project these information during rendering. This means that I think we have to wait until Blender will have function to edit in "Edit-mode" for light-probe. But this is just my thought as a user. It is probably a bug in fact;Please some one respond us. And I also recommend that you would try to post this topic to other open board such BlenderArtist or somewhere. Not few designers may have some thought about this. Thanks.
Member

Added subscribers: @fclem, @JacquesLucke

Added subscribers: @fclem, @JacquesLucke
Member

These files are much larger than they would have to be, probably. Please, always try to create small files for bug reports if possible.

In any case, I'm not sure if this qualifies as a bug. Is there some documentation saying that the results for both files should be exactly the same?

@fclem, is this working as intended?

These files are much larger than they would have to be, probably. Please, always try to create small files for bug reports if possible. In any case, I'm not sure if this qualifies as a bug. Is there some documentation saying that the results for both files should be exactly the same? @fclem, is this working as intended?

Added subscriber: @ideasman42

Added subscriber: @ideasman42

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'

@GalerkinBunny please submit a simplified test file.

@GalerkinBunny please submit a simplified test file.

Changed status from 'Needs User Info' to: 'Archived'

Changed status from 'Needs User Info' to: 'Archived'
Campbell Barton self-assigned this 2020-02-21 14:23:52 +01:00

More than a week without reply or activity.
Due to the policy of the tracker closing for until required info/data are provided.

If the problem persists please open a new report with the required information.

More than a week without reply or activity. Due to the policy of the tracker closing for until required info/data are provided. If the problem persists please open a new report with the required information.
Author

@ideasman42 I've attached test files to this message.

The below file contains a simple scene with 1 light probe, sampling from 9 points.
test_single_lightprobe3.blend

The below file contains the same scene with 9 lightprobes, each sampling from one point (which all correspond to one of the 9 points sampled from above).
test_multi_lightprobe.blend

The render result with the single lightprobe case is as follows using Blender 2.82:

single.png

The render result with the multiple lightprobe case is as follows using Blender 2.82:

multi.png

Note the brighter lighting pattern in the single lightprobe test case. I don't know if the two cases are supposed to be identical, though.

The system info of the version of Blender used to test this is in the below file.
system-info.txt

@ideasman42 I've attached test files to this message. The below file contains a simple scene with 1 light probe, sampling from 9 points. [test_single_lightprobe3.blend](https://archive.blender.org/developer/F8358103/test_single_lightprobe3.blend) The below file contains the same scene with 9 lightprobes, each sampling from one point (which all correspond to one of the 9 points sampled from above). [test_multi_lightprobe.blend](https://archive.blender.org/developer/F8358102/test_multi_lightprobe.blend) The render result with the single lightprobe case is as follows using Blender 2.82: ![single.png](https://archive.blender.org/developer/F8358110/single.png) The render result with the multiple lightprobe case is as follows using Blender 2.82: ![multi.png](https://archive.blender.org/developer/F8358115/multi.png) Note the brighter lighting pattern in the single lightprobe test case. I don't know if the two cases are supposed to be identical, though. The system info of the version of Blender used to test this is in the below file. [system-info.txt](https://archive.blender.org/developer/F8358137/system-info.txt)
Campbell Barton was unassigned by Clément Foucault 2020-02-22 11:39:12 +01:00

Changed status from 'Archived' to: 'Confirmed'

Changed status from 'Archived' to: 'Confirmed'

Changed status from 'Confirmed' to: 'Archived'

Changed status from 'Confirmed' to: 'Archived'
Clément Foucault self-assigned this 2020-06-24 22:37:54 +02:00

In the last files the volume of influences are overlapping each others and have almost the same size each.

Their influence could be seen as alpha blended on top of each other. Much like alpha blending, the outcome depends on the order in which the volumes are evaluated. The ordering is well defined and sort volumes by size, using the the smaller ones in priority.
https://docs.blender.org/manual/en/latest/render/eevee/light_probes/irradiance_volumes.html#blending

So in the multi lightprobe test, the scene is only illuminated by 1 grid, leading to much less detailed lighting.

If you don't overlap the volumes too much you can get more or less the same result as with one dense volume but never exactly the same.

So this is working as intended.

In the last files the volume of influences are overlapping each others and have almost the same size each. Their influence could be seen as alpha blended on top of each other. Much like alpha blending, the outcome depends on the order in which the volumes are evaluated. The ordering is well defined and sort volumes by size, using the the smaller ones in priority. https://docs.blender.org/manual/en/latest/render/eevee/light_probes/irradiance_volumes.html#blending So in the multi lightprobe test, the scene is only illuminated by 1 grid, leading to much less detailed lighting. If you don't overlap the volumes too much you can get more or less the same result as with one dense volume but never exactly the same. So this is working as intended.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#68331
No description provided.