Render difference with big quad light and ray visibility #54486

Open
opened 2018-04-01 17:47:50 +02:00 by mathieu menuet · 20 comments

System Information
all vendors

Blender Version
Broken: 1ebc14064b
Worked: 2.79a

Short description of error
some parts of principled shader render very glossy in latest master

Exact steps for others to reproduce the error
Open attached file bug principled v2.blend, render.
In 2.79a you get this (correct):
2.79a.png
and in latest master this:
buggy master.png
Note that I replaced wood tex by voronoi in file, but differences are also obvious.

**System Information** all vendors **Blender Version** Broken: 1ebc14064b Worked: 2.79a **Short description of error** some parts of principled shader render very glossy in latest master **Exact steps for others to reproduce the error** Open attached file [bug principled v2.blend](https://archive.blender.org/developer/F2566549/bug_principled_v2.blend), render. In 2.79a you get this (correct): ![2.79a.png](https://archive.blender.org/developer/F2566554/2.79a.png) and in latest master this: ![buggy master.png](https://archive.blender.org/developer/F2566543/buggy_master.png) Note that I replaced wood tex by voronoi in file, but differences are also obvious.
Author

Added subscriber: @bliblubli

Added subscriber: @bliblubli
mathieu menuet changed title from principled shader looks like wet in latest master to Regression: principled shader looks like wet in latest master 2018-04-01 17:50:02 +02:00

Added subscriber: @brecht

Added subscriber: @brecht

I see some difference in the intensity of the specular in the attached .blend, but nothing that looks like the attached renders. The file has some extreme color management settings as well, after setting that to the default I don't see anything obviously wrong. There have been some bugfixes that are known to affect the look.

Can you attach a simple .blend that shows the problem more clearly? Please also state the operating system so we can rule that out.

I see some difference in the intensity of the specular in the attached .blend, but nothing that looks like the attached renders. The file has some extreme color management settings as well, after setting that to the default I don't see anything obviously wrong. There have been some bugfixes that are known to affect the look. Can you attach a simple .blend that shows the problem more clearly? Please also state the operating system so we can rule that out.
Author

OS is Linux. If the difference seen in the attached blend is not enough, I'll try to find a free wood texture alternative. The materials in the renders above are copyrighted by evermotion.

OS is Linux. If the difference seen in the attached blend is not enough, I'll try to find a free wood texture alternative. The materials in the renders above are copyrighted by evermotion.
Author

@brecht which bugfix commits touched the specular part of principled shader ?

@brecht which bugfix commits touched the specular part of principled shader ?

Do you need a texture at all? Just remove as much as possible from the scene and shader nodes and probably you can reproduce it with some fixed values?

There's lots of changes that could affect this scene, I can't easily make a list of them.

Do you need a texture at all? Just remove as much as possible from the scene and shader nodes and probably you can reproduce it with some fixed values? There's lots of changes that could affect this scene, I can't easily make a list of them.
Author

ok, I hope I nailed it.
stable:
stable.png
Master:
master.png

bug v2.blend

ok, I hope I nailed it. stable: ![stable.png](https://archive.blender.org/developer/F2567275/stable.png) Master: ![master.png](https://archive.blender.org/developer/F2567276/master.png) [bug v2.blend](https://archive.blender.org/developer/F2567281/bug_v2.blend)
Author

@brecht, it's much more subtle in this case, but should be the same thing happening. The master render has a much darker specularity than stable, like in the wood renders in first post.

@brecht, it's much more subtle in this case, but should be the same thing happening. The master render has a much darker specularity than stable, like in the wood renders in first post.

This seems to be an old (known) issue with ray visibility and multiple importance sampling, where only the BSDF sampled rays take ray visibility into account. Due to the new quad light sampling the light sampled rays have a higher weight which shows that old bug more clearly. It happens with diffuse as well, has nothing to do with specular specifically.

Not sure if we can solve this well or if it'll be considered a known limitation still, will look at it.

This seems to be an old (known) issue with ray visibility and multiple importance sampling, where only the BSDF sampled rays take ray visibility into account. Due to the new quad light sampling the light sampled rays have a higher weight which shows that old bug more clearly. It happens with diffuse as well, has nothing to do with specular specifically. Not sure if we can solve this well or if it'll be considered a known limitation still, will look at it.
Brecht Van Lommel changed title from Regression: principled shader looks like wet in latest master to Render difference with big quad light and ray visibility 2018-04-01 21:07:17 +02:00
Author

As this pack https://evermotion.org/shop/show_product/archinteriors-vol-43-for-blender/14563 has just been released this week, it would be great if user had an option so that it's not already broken in buildbot/next release. Blender just starts to appear on one of the most renown visualization website.

A real fix would be great, but if it's not possible, maybe it's possible to offer the old behavior as an option. The lamp material panel has a lot of room available.

As this pack https://evermotion.org/shop/show_product/archinteriors-vol-43-for-blender/14563 has just been released this week, it would be great if user had an option so that it's not already broken in buildbot/next release. Blender just starts to appear on one of the most renown visualization website. A real fix would be great, but if it's not possible, maybe it's possible to offer the old behavior as an option. The lamp material panel has a lot of room available.
Author

@brecht so if I understand you right, this also explains the much higher noise levels in these scene (see pictures). This scene is lighten by portals with windows set to be only visible by camera. But indeed, although those windows are only hit by not camera rays, removing the windows completely greatly improves lightning and noise in latest master. So it showcases what you said about ray visibility. Here is a comparison of scene 10 from archinteriors 43 for Blender in master and stable:
2.79a = low level noise:
2.79 windows.jpg
buildbot = very high noise level:
master windows.jpg

@brecht so if I understand you right, this also explains the much higher noise levels in these scene (see pictures). This scene is lighten by portals with windows set to be only visible by camera. But indeed, although those windows are only hit by not camera rays, removing the windows completely greatly improves lightning and noise in latest master. So it showcases what you said about ray visibility. Here is a comparison of scene 10 from archinteriors 43 for Blender in master and stable: 2.79a = low level noise: ![2.79 windows.jpg](https://archive.blender.org/developer/F2582915/2.79_windows.jpg) buildbot = very high noise level: ![master windows.jpg](https://archive.blender.org/developer/F2582918/master_windows.jpg)
Author

I tried to reproduce it in a simple scene (a box with principled on multiscatter GGX, one opening, 1 portal and one window with only camera visibility), but somehow, the bug doesn't show up in master with this file. Making it a bit more complexe with some textures and objects to occlude and have more bounces show a clear difference in noise pattern, but not really noise levels. Complex and real use case scene on the other hand show clearly that 2.79a has a much better noise level, but I couldn't find yet, what the reason is. Keeping only the walls, windows and lights in the living room/kitchen scene above rendered significantly darker in master compared to 2.79a.

Note that on the renders in first post, the bug also sometime disappeared when some objects where removed, which should normally not really have been contributing in any sens to the final lightning (small or far away from the wood floor).

I tried to reproduce it in a simple scene (a box with principled on multiscatter GGX, one opening, 1 portal and one window with only camera visibility), but somehow, the bug doesn't show up in master with this file. Making it a bit more complexe with some textures and objects to occlude and have more bounces show a clear difference in noise pattern, but not really noise levels. Complex and real use case scene on the other hand show clearly that 2.79a has a much better noise level, but I couldn't find yet, what the reason is. Keeping only the walls, windows and lights in the living room/kitchen scene above rendered significantly darker in master compared to 2.79a. Note that on the renders in first post, the bug also sometime disappeared when some objects where removed, which should normally not really have been contributing in any sens to the final lightning (small or far away from the wood floor).

Russian roulette changes can cause increased noise. We hope that these are offset by reduced render time, so for a proper comparison at least an equal time render must be done. Even then there will be some scenes that are noisier, since it's a trade-off.

Russian roulette changes can cause increased noise. We hope that these are offset by reduced render time, so for a proper comparison at least an equal time render must be done. Even then there will be some scenes that are noisier, since it's a trade-off.
Author

@brecht I changed line 235 of kernel_path_state.h from

min(sqrtf(max3(fabs(throughput)) * state->branch_factor), 1.0f);

to

average(throughput);

and it actually made the noise worse in latest master, so in fact, the RR changes mitigate the noise level. Or did you speak of another change? I took cd023b6cec

@brecht I changed line 235 of kernel_path_state.h from ``` min(sqrtf(max3(fabs(throughput)) * state->branch_factor), 1.0f); ``` to ``` average(throughput); ``` and it actually made the noise worse in latest master, so in fact, the RR changes mitigate the noise level. Or did you speak of another change? I took https://git.blender.org/gitweb/gitweb.cgi/blender.git/commitdiff/cd023b6cecb7b8c74de1d16510ad09668b86001f
Author

the difference in noise level in https://developer.blender.org/T54486#491645 are really due to the windows which should be completely ignored due to their visibility set to only camera rays. 2.79a ignores them, latest master not. When I render without the windows, both stable and master render the same image.

the difference in noise level in https://developer.blender.org/T54486#491645 are really due to the windows which should be completely ignored due to their visibility set to only camera rays. 2.79a ignores them, latest master not. When I render without the windows, both stable and master render the same image.

That's probably the main change, but note that commit changes both the RR continuation probability and removed RR min bounces.

And the windows being ignored or not is the quad light + ray visibility problem I referred to above.

That's probably the main change, but note that commit changes both the RR continuation probability and removed RR min bounces. And the windows being ignored or not is the quad light + ray visibility problem I referred to above.
Author

@brecht yep, so we agree, it's this same bug that makes the wood floor look strange and adds the noise in the other scene.

@brecht yep, so we agree, it's this same bug that makes the wood floor look strange and adds the noise in the other scene.

No, they're different issues.

No, they're different issues.
OlightS1A commented 2018-05-09 11:55:27 +02:00 (Migrated from localhost:3001)

Added subscriber: @OlightS1A

Added subscriber: @OlightS1A
OlightS1A commented 2018-05-09 11:55:27 +02:00 (Migrated from localhost:3001)

This comment was removed by @OlightS1A

*This comment was removed by @OlightS1A*
Philipp Oeser removed the
Interest
Render & Cycles
label 2023-02-09 13:58:32 +01:00
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
3 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#54486
No description provided.