sampling is buggy in 2.77 #48418

Closed
opened 2016-05-13 09:41:52 +02:00 by john hannovick · 20 comments

System Information
Win7 x64

Blender Version
Broken: 2.77a
Worked: 2.76

Short description of error
Low sample (16 and lower) images are noisy on edges

Exact steps for others to reproduce the error
bug sampling edges 2.77.blend
Open attached file in 2.76 and 2.77a, compare you get this in 2.76
no bug 2.76.png
and this in 2.77a
bug 2.77.png

**System Information** Win7 x64 **Blender Version** Broken: 2.77a Worked: 2.76 **Short description of error** Low sample (16 and lower) images are noisy on edges **Exact steps for others to reproduce the error** [bug sampling edges 2.77.blend](https://archive.blender.org/developer/F310501/bug_sampling_edges_2.77.blend) Open attached file in 2.76 and 2.77a, compare you get this in 2.76 ![no bug 2.76.png](https://archive.blender.org/developer/F310502/no_bug_2.76.png) and this in 2.77a ![bug 2.77.png](https://archive.blender.org/developer/F310504/bug_2.77.png)
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @john_hannovick

Added subscriber: @john_hannovick

Added subscriber: @NikoLeopold

Added subscriber: @NikoLeopold

Added subscriber: @Sergey

Added subscriber: @Sergey

Can't reproduce the issue. Some questions:

  • Does it happen with latest builds from builder.blender.org?
  • Does it happen with both Gaussian and Blackman-Harris filters?

Attaching system-info.txt generated with Help -> Save System Info would be handy too.

Can't reproduce the issue. Some questions: - Does it happen with latest builds from builder.blender.org? - Does it happen with both Gaussian and Blackman-Harris filters? Attaching system-info.txt generated with `Help -> Save System Info` would be handy too.

Added subscriber: @bliblubli

Added subscriber: @bliblubli

I can confirm the bug. But the attached file with 16 samples make it less clear, at 4 sample it is obvious that edges are very noisy compared to 2.76b. Note that you may have to zoom on highDPI screen to see the difference.
Changing from Blackman-Harris to Gaussian doesn't solve the problem.
2.77:
2.77.PNG
2.76:
2.76.PNG

I can confirm the bug. But the attached file with 16 samples make it less clear, at 4 sample it is obvious that edges are very noisy compared to 2.76b. Note that you may have to zoom on highDPI screen to see the difference. Changing from Blackman-Harris to Gaussian doesn't solve the problem. 2.77: ![2.77.PNG](https://archive.blender.org/developer/F313581/2.77.PNG) 2.76: ![2.76.PNG](https://archive.blender.org/developer/F313582/2.76.PNG)

@bliblubli, what's your OS, compute device and system-info.txt?

@bliblubli, what's your OS, compute device and system-info.txt?

Win 7 x64, CPU and the sys-info:
system-info.txt

Win 7 x64, CPU and the sys-info: [system-info.txt](https://archive.blender.org/developer/F313587/system-info.txt)
Author

Tested it on many PC with windows:

  • It happens with blackmanharris and gaussian
  • It happens with latest build
  • It happens on CPU and GPU

Bliblubli is true. It's easier to see the problem at 4 spp than at 16.
The noise is most visible on edges, but it also affect faces. It's a pretty big regression actually regarding noise.

Tested it on many PC with windows: - It happens with blackmanharris and gaussian - It happens with latest build - It happens on CPU and GPU Bliblubli is true. It's easier to see the problem at 4 spp than at 16. The noise is most visible on edges, but it also affect faces. It's a pretty big regression actually regarding noise.

After a lot of reverts and checkout of old revisions, I nailed the problem. https://developer.blender.org/D2021 fixes the regression.

After a lot of reverts and checkout of old revisions, I nailed the problem. https://developer.blender.org/D2021 fixes the regression.

Of course, it makes rendering with HDR noisier. A better fix would be to detect "generated sky" and "HDR" to activate MIS only for HDR.

Of course, it makes rendering with HDR noisier. A better fix would be to detect "generated sky" and "HDR" to activate MIS only for HDR.

Another point is: Why does MIS break edges antialiasing?

With 1 sample:
Without MIS (pre 2.76.10)
sky.png
With MIS (after 2.76.10)
sky with MIS.png

Another point is: Why does MIS break edges antialiasing? With 1 sample: Without MIS (pre 2.76.10) ![sky.png](https://archive.blender.org/developer/F314295/sky.png) With MIS (after 2.76.10) ![sky with MIS.png](https://archive.blender.org/developer/F314296/sky_with_MIS.png)

Added subscriber: @mont29

Added subscriber: @mont29
Member

Added subscriber: @LukasStockner

Added subscriber: @LukasStockner
Member

As far as I can see, this is no bug, but simply how path tracing and World MIS works:
If you have no world MIS enabled, each path samples the lamp in the direct light sampling step amd then bounces and hits the background. Both give pretty similar results each time, so you get a clean image.
With World MIS, Cycles now sees two lights to sample (the lamp and the World) and will choose randomly between the two, producing darker pixels when it sampled the World.
It's unfortunate, but that's just how the algorithms work, no bug happening there.
So, how to "fix" this? The easiest option would be to use branched path tracing and enabling sampling of all lamps.

As far as I can see, this is no bug, but simply how path tracing and World MIS works: If you have no world MIS enabled, each path samples the lamp in the direct light sampling step amd then bounces and hits the background. Both give pretty similar results each time, so you get a clean image. With World MIS, Cycles now sees two lights to sample (the lamp and the World) and will choose randomly between the two, producing darker pixels when it sampled the World. It's unfortunate, but that's just how the algorithms work, no bug happening there. So, how to "fix" this? The easiest option would be to use branched path tracing and enabling sampling of all lamps.

I agree it's how MIS works, but thing is it should be smartly activated. Just changing default like that make some old files look suddenly really noisy without the user knowing why.
There are already conditions added by Thomas to deactivate MIS in the code for uniform color background, adding the generated sky exception would do the job.

I agree it's how MIS works, but thing is it should be smartly activated. Just changing default like that make some old files look suddenly really noisy without the user knowing why. There are already conditions added by Thomas to deactivate MIS in the code for uniform color background, adding the generated sky exception would do the job.

This is a documented change in 2.77 - [x]. There's also a do-versions code which should keep files saved in previous releases to render exactly the same way. If there's file which was saved in previous release and renders differently in new one -- this is to be reported and fixed.

Excluding generated sky from MIS is not really correct, there might still be strong highlights on it.

This is a documented change in 2.77 - [x]. There's also a do-versions code which should keep files saved in previous releases to render exactly the same way. If there's file which was saved in previous release and renders differently in new one -- this is to be reported and fixed. Excluding generated sky from MIS is not really correct, there might still be strong highlights on it. - [x] https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.77/Cycles#Settings

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Sergey Sharybin self-assigned this 2016-07-27 10:25:50 +02:00

Wouldn't really consider this a bug. Just for a simple scenes you can disable MIS. And defaults we'd better be enabling based on heavy production shots.

Thanks for the report anyway.

Wouldn't really consider this a bug. Just for a simple scenes you can disable MIS. And defaults we'd better be enabling based on heavy production shots. Thanks for the report anyway.
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
6 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#48418
No description provided.