Render difference with big quad light and ray visibility #54486

Open
opened 5 years ago by bliblubli · 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.
Poster

Added subscriber: @bliblubli

Added subscriber: @bliblubli
bliblubli changed title from principled shader looks like wet in latest master to Regression: principled shader looks like wet in latest master 5 years ago
brecht commented 5 years ago
Owner

Added subscriber: @brecht

Added subscriber: @brecht
brecht commented 5 years ago
Owner

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.
Poster

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.
Poster

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

@brecht which bugfix commits touched the specular part of principled shader ?
brecht commented 5 years ago
Owner

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.
Poster

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)
Poster

@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.
brecht commented 5 years ago
Owner

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 changed title from Regression: principled shader looks like wet in latest master to Render difference with big quad light and ray visibility 5 years ago
Poster

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.
Poster

@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)
Poster

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).
brecht commented 5 years ago
Owner

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.
Poster

@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
Poster

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.
brecht commented 5 years ago
Owner

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.
Poster

@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.
brecht commented 5 years ago
Owner

No, they're different issues.

No, they're different issues.
OlightS1A commented 5 years ago (Migrated from localhost:3001)
Collaborator

Added subscriber: @OlightS1A

Added subscriber: @OlightS1A
OlightS1A commented 5 years ago (Migrated from localhost:3001)
Collaborator

This comment was removed by @OlightS1A

*This comment was removed by @OlightS1A*
lichtwerk removed the
legacy module/Rendering & Cycles
label 1 day ago
lichtwerk removed the
Interest/Render & Cycles
label 1 day ago
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/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
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/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
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
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
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 & Devices
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 Information 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

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#54486
Loading…
There is no content yet.