Dithering Problem For 6-bit Displays #93627

Closed
opened 2021-12-04 04:56:22 +01:00 by Ethan-Hall · 21 comments

System Information
Operating system: Windows-10-10.0.19042-SP0 64 Bits
Internal Display: 6-bit 1920x1080
External Display: 8-bit 1920x1080
Integrated Graphics card: Intel(R) HD Graphics 630 Intel 4.5.0 - Build 27.20.100.9664
Discrete Graphics card: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 472.47 (Manages the HDMI output)

Blender Version
Broken: version: 3.0.0, branch: master, commit date: 2021-12-02 18:35, hash: f1cca30557
Worked: Unknown

Short description of error
In Blender 3.0.0, there is an obvious dither pattern resulting from the vignette in the viewport when using my laptop's internal display.
I suspect Blender's algorithm for dithering is not compatible or optimized to work with 6-bit displays.

  • Partial Fix-
    Changing the theme (as @deadpin suggested) makes this issue have far less of an impact.

Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color

When Blender is using the integrated GPU (with the vignette background type):

  • Dithering pattern is clearly visible.
  • Moving the entire application window causes the dithered region to flicker.
  • When Blender is displayed on the external monitor, the issue is not present.

When Blender is using the discrete GPU (with the vignette background type):

  • Dithering pattern is clearly visible.
  • Moving the entire application window causes the dithered region to flicker.
  • Moving the mouse across the editor windows causes the dithered region to flicker.
  • When Blender is displayed on the external monitor, the issue is not present.

Exact steps for others to reproduce the error
Use Blender with a 6-bit display (with the vignette background type enabled in the theme settings).

**System Information** Operating system: Windows-10-10.0.19042-SP0 64 Bits Internal Display: 6-bit 1920x1080 External Display: 8-bit 1920x1080 Integrated Graphics card: Intel(R) HD Graphics 630 Intel 4.5.0 - Build 27.20.100.9664 Discrete Graphics card: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 472.47 (Manages the HDMI output) **Blender Version** Broken: version: 3.0.0, branch: master, commit date: 2021-12-02 18:35, hash: `f1cca30557` Worked: Unknown **Short description of error** In Blender 3.0.0, there is an obvious dither pattern resulting from the vignette in the viewport when using my laptop's internal display. I suspect Blender's algorithm for dithering is not compatible or optimized to work with 6-bit displays. - Partial Fix- Changing the theme (as @deadpin suggested) makes this issue have far less of an impact. >Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color When Blender is using the integrated GPU (with the vignette background type): - Dithering pattern is clearly visible. - Moving the entire application window causes the dithered region to flicker. - When Blender is displayed on the external monitor, the issue is not present. When Blender is using the discrete GPU (with the vignette background type): - Dithering pattern is clearly visible. - Moving the entire application window causes the dithered region to flicker. - Moving the mouse across the editor windows causes the dithered region to flicker. - When Blender is displayed on the external monitor, the issue is not present. **Exact steps for others to reproduce the error** Use Blender with a 6-bit display (with the vignette background type enabled in the theme settings).
Author

Added subscriber: @Ethan-Hall

Added subscriber: @Ethan-Hall

Added subscriber: @deadpin

Added subscriber: @deadpin

This is probably the theme. Try the following:
Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color

This is probably the theme. Try the following: Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color
Ethan-Hall changed title from Dithering Error On 6-bit Laptop Display to Dithering Problem For 6-bit Displays 2021-12-04 05:57:35 +01:00
Author

In #93627#1264508, @deadpin wrote:
This is probably the theme. Try the following:
Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color

Indeed, simply changing the theme makes the issue far less of an annoyance. I suspect the issue has always been present, but the new default for the theme has brought it to my attention.

> In #93627#1264508, @deadpin wrote: > This is probably the theme. Try the following: > Preferences -> Themes -> 3D Viewport -> Theme Space (way at the bottom) -> Gradient Colors -> Background Type : set to Single Color Indeed, simply changing the theme makes the issue far less of an annoyance. I suspect the issue has always been present, but the new default for the theme has brought it to my attention.
Author

Should vignette be enabled for the default themes?

I suspect that many others will face this issue and potentially think their computer has an issue or that Blender is bugged.
The fact that the setting to disable vignette is buried in the preferences menu further confounds this problem.

Also, those screen recording Blender will now have color banding present in their videos due to the video compression removing the dithering. (Compare Blender Guru's 3.0 donut tutorial to his 2.X donut tutorial)

**Should vignette be enabled for the default themes?** I suspect that many others will face this issue and potentially think their computer has an issue or that Blender is bugged. The fact that the setting to disable vignette is buried in the preferences menu further confounds this problem. Also, those screen recording Blender will now have color banding present in their videos due to the video compression removing the dithering. (Compare Blender Guru's [3.0 donut tutorial](https:*www.youtube.com/watch?v=nIoXOplUvAw&t=410s) to his [2.X donut tutorial](https:*www.youtube.com/watch?v=TPrnSACiTJ4))

Added subscriber: @Russell-Williams

Added subscriber: @Russell-Williams

Yep, I installed 3.0 and found this quickly after messing around for a bit. Although, I didn't notice the dithering/flickering issue until my laptop crashed shortly after installing; I had loaded up one of the scenes used for a previous version's splash screen, mostly just to admire it and try to glean a few tidbits from digging through it (I'm very new to Blender) and when I tried to render, I realized the default render settings on the .blend file/project were set to render basically the entire image at once (way outside of my laptop's capabilities) and when I went to cancel the render, realizing this would be way too taxing, my whole laptop hard locked. When I booted back up and reopened Blender, I that's when I noticed the flickering first, or at least most prominently. At first I thought it had something to do with the updated Cycles algorithm before I realized it was far more obvious in Solid and Material Preview shading. Changing the background fixes it, but seems like this is a pretty minor if obvious bug of some sort. Figured I would provide some extra details I noticed personally and just add an extra voice of notice.

Yep, I installed 3.0 and found this quickly after messing around for a bit. Although, I didn't notice the dithering/flickering issue until my laptop crashed shortly after installing; I had loaded up one of the scenes used for a previous version's splash screen, mostly just to admire it and try to glean a few tidbits from digging through it (I'm very new to Blender) and when I tried to render, I realized the default render settings on the .blend file/project were set to render basically the entire image at once (way outside of my laptop's capabilities) and when I went to cancel the render, realizing this would be way too taxing, my whole laptop hard locked. When I booted back up and reopened Blender, I that's when I noticed the flickering first, or at least most prominently. At first I thought it had something to do with the updated Cycles algorithm before I realized it was far more obvious in Solid and Material Preview shading. Changing the background fixes it, but seems like this is a pretty minor if obvious bug of some sort. Figured I would provide some extra details I noticed personally and just add an extra voice of notice.

Added subscriber: @Nikhil.Net

Added subscriber: @Nikhil.Net

Just to add my 2 cents here, while the gradient does make it look nice, there should be some very clearly visible guidance for disabling for people with low color-space displays or people recording video (as mentioned above).

The problem is, the current theming guidelines place that option 3 levels down in a place no one without specific knowledge would look (Themes Tab -> 3D View -> Theme Space ???? -> Gradient). The very naming of "theme space" is counterintuitive and doesn't make sense, and feels like a hack due to not having a better name.

Ideally, this would be surfaced as a top-level preference, but then it violates the design rules for theme settings. Not sure if there is a good solution here, but perhaps creating an "Enable Gradients" global option could be added that would affect any theme elements using gradients.

Just to add my 2 cents here, while the gradient does make it look nice, there should be some very clearly visible guidance for disabling for people with low color-space displays or people recording video (as mentioned above). The problem is, the current theming guidelines place that option 3 levels down in a place no one without specific knowledge would look (Themes Tab -> 3D View -> Theme Space ???? -> Gradient). The very naming of "theme space" is counterintuitive and doesn't make sense, and feels like a hack due to not having a better name. Ideally, this would be surfaced as a top-level preference, but then it violates the design rules for theme settings. Not sure if there is a good solution here, but perhaps creating an "Enable Gradients" global option could be added that would affect any theme elements using gradients.

Added subscriber: @brecht

Added subscriber: @brecht

If you save a screenshot of Blender as PNG and display that in an image viewing application, does it have the same problem? What I'm wondering is if it fundamentally is an issue where these monitors have problems displaying such gradients, and the only practical solution is to not have such gradients in the theme?

It's not clear to me how we would change the dithering algorithm to work better for 6 bit. My understanding is that 6 bit + FRC monitors take 8 bit input and use temporal dithering to emulate the missing 2 bits. If we would dither to 6 bits, that would seriously degrade image quality, as FRC works fine for most things. If there is some change to the dithering algorithm that we can do to avoid conflicting with the monitor temporal dithering, it's not clear to me what that would be.

If you save a screenshot of Blender as PNG and display that in an image viewing application, does it have the same problem? What I'm wondering is if it fundamentally is an issue where these monitors have problems displaying such gradients, and the only practical solution is to not have such gradients in the theme? It's not clear to me how we would change the dithering algorithm to work better for 6 bit. My understanding is that 6 bit + FRC monitors take 8 bit input and use temporal dithering to emulate the missing 2 bits. If we would dither to 6 bits, that would seriously degrade image quality, as FRC works fine for most things. If there is some change to the dithering algorithm that we can do to avoid conflicting with the monitor temporal dithering, it's not clear to me what that would be.
Member

Added subscriber: @LazyDodo

Added subscriber: @LazyDodo
Member

I saw similar issues being reported on twitter by the tutorial makers, apparently the gradient messes with the video encoding process as well, either way the problem seems to extend beyond 6 bit monitors. As for a solution, while improving dithering may fix the issue for 6 bit monitors, video encoding will likely still throw a fit, we could remove the gradient from the default theme, or add a theme that looks like the default theme but without gradients, i have no strong feelings in either direction, it's up to the UI team what they want to do here.

I saw [similar issues](https://twitter.com/polyfjord/status/1467087049325002754) being reported on twitter by the tutorial makers, apparently the gradient messes with the video encoding process as well, either way the problem seems to extend beyond 6 bit monitors. As for a solution, while improving dithering may fix the issue for 6 bit monitors, video encoding will likely still throw a fit, we could remove the gradient from the default theme, or add a theme that looks like the default theme but without gradients, i have no strong feelings in either direction, it's up to the UI team what they want to do here.

Added subscriber: @pablovazquez

Added subscriber: @pablovazquez

@pablovazquez, I think we should remove the gradient in the default theme. I don't think there's a good alternative solution and it's a serious enough issue.

@pablovazquez, I think we should remove the gradient in the default theme. I don't think there's a good alternative solution and it's a serious enough issue.

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'

Added subscriber: @MichaelHermann

Added subscriber: @MichaelHermann

Any chance we can still squeeze this into the 3.4 release?
It's been a year.

On my displays this is really bad. And I'm not on a 6 bit display. (This is the one I'm looking at https://www.eizo.eu/flexscan/ev2785-bk/technical-specifications/)

Please see the video below. It's actually a lot worse in real life because the video noise mixes with the flickering a bit.
Every time I want to check something with Factory Settings, this hits me in the face.

GradientFlicker.mov

Any chance we can still squeeze this into the 3.4 release? It's been a year. On my displays this is really bad. And I'm not on a 6 bit display. (This is the one I'm looking at https://www.eizo.eu/flexscan/ev2785-bk/technical-specifications/) Please see the video below. It's actually a lot worse in real life because the video noise mixes with the flickering a bit. Every time I want to check something with Factory Settings, this hits me in the face. [GradientFlicker.mov](https://archive.blender.org/developer/F13992975/GradientFlicker.mov)
Member

Added subscriber: @Harley

Added subscriber: @Harley
Member

I agree that we should remove the default vignetting @pablovazquez

I agree that we should remove the default vignetting @pablovazquez

Ok, this caused me to do some more digging. (Which, admittedly I should have done before posting here.) My -personal- issue with this is resolved now. Turns out that my display actually seems to have an issue. (It's a relatively new replacement.) It turns into a 6-bit display when connected via DisplayPort. Then nvidia's dithering kicks in and causes this. (Also why I wasn't seeing banding everywhere) (Different display, but seems to be the same problem: https://www.eizoglobal.com/support/information/radiforce_201507/index.html)

Once connected via HDMI, it's all fine now.

Until the vignette is removed other people have two options:

  • Remove the vignette manually from the theme (see above) - But it'll still be there for Factory Settings
  • In nvidia settings use Dithering Mode "Static 2x2" or "Temporal" (Dynamic 2x2 is causes the flickering. And it is also the default.)
Ok, this caused me to do some more digging. (Which, admittedly I should have done before posting here.) My -personal- issue with this is resolved now. Turns out that my display actually seems to have an issue. (It's a relatively new replacement.) It turns into a 6-bit display when connected via DisplayPort. Then nvidia's dithering kicks in and causes this. (Also why I wasn't seeing banding everywhere) (Different display, but seems to be the same problem: https://www.eizoglobal.com/support/information/radiforce_201507/index.html) Once connected via HDMI, it's all fine now. Until the vignette is removed other people have two options: - Remove the vignette manually from the theme (see above) - But it'll still be there for Factory Settings - In nvidia settings use Dithering Mode "Static 2x2" or "Temporal" (Dynamic 2x2 is causes the flickering. And it is also the default.)
Philipp Oeser removed the
Interest
User Interface
label 2023-02-10 09:22:39 +01:00
Blender Bot added
Status
Resolved
and removed
Status
Confirmed
labels 2023-08-16 18:45:36 +02: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
8 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#93627
No description provided.