Viewport Render (and Render Animation) color looks completely off from the Viewport #73956

Open
opened 2020-02-18 01:59:28 +01:00 by Gabriel Moro · 29 comments

System Information
Operating system: Darwin-19.0.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 560X OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.2.24

Blender Version
Broken: version: 2.82 (sub 6), branch: master, commit date: 2020-02-11 14:45, hash: c939b4df18

Short description of error
Rendering the viewport animation gives a very different result from the actual viewport.
(Also: Viewport Anti-Aliasing isn't taken into consideration on the Viewport Render).

Screen Shot 2020-02-17 at 21.53.08.jpg untitled.jpg

The problem is more noticeable when the Viewport Shading is set to "Flat", even though it also shows in "Studio". It delivers very dull colors with less contrast and a blue-ish tone.
Changing between Cycles and Eevee doesn't affect the Viewport Render (from my tests).

Screen Shot 2020-02-18 at 13.50.15.jpg Screen Shot 2020-02-18 at 13.50.17.jpg
flat:
Screen Shot 2020-02-18 at 13.50.38.jpg Screen Shot 2020-02-18 at 13.50.41.jpg
-- --

Exact steps for others to reproduce the error

**System Information** Operating system: Darwin-19.0.0-x86_64-i386-64bit 64 Bits Graphics card: AMD Radeon Pro 560X OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.2.24 **Blender Version** Broken: version: 2.82 (sub 6), branch: master, commit date: 2020-02-11 14:45, hash: `c939b4df18` **Short description of error** Rendering the viewport animation gives a very different result from the actual viewport. (Also: Viewport Anti-Aliasing isn't taken into consideration on the Viewport Render). |![Screen Shot 2020-02-17 at 21.53.08.jpg](https://archive.blender.org/developer/F8346280/Screen_Shot_2020-02-17_at_21.53.08.jpg)|![untitled.jpg](https://archive.blender.org/developer/F8346309/untitled.jpg) | -- | -- | The problem is more noticeable when the Viewport Shading is set to "Flat", even though it also shows in "Studio". It delivers very dull colors with less contrast and a blue-ish tone. Changing between Cycles and Eevee doesn't affect the Viewport Render (from my tests). |![Screen Shot 2020-02-18 at 13.50.15.jpg](https://archive.blender.org/developer/F8348141/Screen_Shot_2020-02-18_at_13.50.15.jpg)|![Screen Shot 2020-02-18 at 13.50.17.jpg](https://archive.blender.org/developer/F8348145/Screen_Shot_2020-02-18_at_13.50.17.jpg) | -- | -- | flat: |![Screen Shot 2020-02-18 at 13.50.38.jpg](https://archive.blender.org/developer/F8348144/Screen_Shot_2020-02-18_at_13.50.38.jpg)|![Screen Shot 2020-02-18 at 13.50.41.jpg](https://archive.blender.org/developer/F8348142/Screen_Shot_2020-02-18_at_13.50.41.jpg) | -- | -- | **Exact steps for others to reproduce the error** - Open attached file. - Go to View -> Viewport Render Image [Viewport Colors.blend](https://archive.blender.org/developer/F8348132/Viewport_Colors.blend)
Author

Added subscriber: @GabrielMoro

Added subscriber: @GabrielMoro

#77291 was marked as duplicate of this issue

#77291 was marked as duplicate of this issue

#75544 was marked as duplicate of this issue

#75544 was marked as duplicate of this issue
Member

Added subscriber: @ankitm

Added subscriber: @ankitm
Member

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

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

if you're rendering by Eevee, it would be different from what cycles would render. I am not aware of what viewport uses, but try changing render engine. Also, is possible add a blender file to help debug the issue.

if you're rendering by Eevee, it would be different from what cycles would render. I am not aware of what viewport uses, but try changing render engine. Also, is possible add a blender file to help debug the issue.
Author

I see now that the problem is more noticeable when the Viewport Shading is set to "Flat", even though it also shows in "Studio". It delivers very dull colors with less contrast and a blue-ish tone.
Changing between Cycles and Eevee doesn't affect the Viewport Render (from my tests).

Screen Shot 2020-02-18 at 13.50.17.jpg

Screen Shot 2020-02-18 at 13.50.38.jpg

Screen Shot 2020-02-18 at 13.50.41.jpg

Screen Shot 2020-02-18 at 13.50.15.jpg

Viewport Colors.blend

I see now that the problem is more noticeable when the Viewport Shading is set to "Flat", even though it also shows in "Studio". It delivers very dull colors with less contrast and a blue-ish tone. Changing between Cycles and Eevee doesn't affect the Viewport Render (from my tests). ![Screen Shot 2020-02-18 at 13.50.17.jpg](https://archive.blender.org/developer/F8348145/Screen_Shot_2020-02-18_at_13.50.17.jpg) ![Screen Shot 2020-02-18 at 13.50.38.jpg](https://archive.blender.org/developer/F8348144/Screen_Shot_2020-02-18_at_13.50.38.jpg) ![Screen Shot 2020-02-18 at 13.50.41.jpg](https://archive.blender.org/developer/F8348142/Screen_Shot_2020-02-18_at_13.50.41.jpg) ![Screen Shot 2020-02-18 at 13.50.15.jpg](https://archive.blender.org/developer/F8348141/Screen_Shot_2020-02-18_at_13.50.15.jpg) [Viewport Colors.blend](https://archive.blender.org/developer/F8348132/Viewport_Colors.blend)

Added subscriber: @SpectreFirst

Added subscriber: @SpectreFirst

It looks like Viewport Render Image uses the same Color Management as Eevee and Cycles while viewport itself in Workbench mode seems to always work in Standard View Transform. Try setting Color Management – View Transform to Standard instead of Filmic in Render Properties, it should even work after you hit Viewport Render Image.

It looks like Viewport Render Image uses the same Color Management as Eevee and Cycles while viewport itself in Workbench mode seems to always work in Standard View Transform. Try setting Color Management – View Transform to Standard instead of Filmic in Render Properties, it should even work after you hit Viewport Render Image.
Member

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

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

Changing it to View Transform Standard fixes the color problem! Perhaps a small tweak to set it automatically when rendering the Viewport would fix it for everyone else?
Could the fact that the viewport anti-aliasing is ignored when rendering this way also be fixed? In this case, for example, I'm rendering my walk cycle by using the viewport, but the hair looks bad because anti-aliasing isn't been taken into consideration.

Thanks again for the info on the color!

Changing it to View Transform Standard fixes the color problem! Perhaps a small tweak to set it automatically when rendering the Viewport would fix it for everyone else? Could the fact that the viewport anti-aliasing is ignored when rendering this way also be fixed? In this case, for example, I'm rendering my walk cycle by using the viewport, but the hair looks bad because anti-aliasing isn't been taken into consideration. Thanks again for the info on the color!

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

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

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

In solid mode we don't use the view transform as that is setup for rendering. When rendering an image from the viewport the image editor uses the view transform. This works as designed.
The work around described in this ticket is not correct as it changes the scene setting, and that is not what you want when you are rendering.

Best option would be that the render result known if it needs to display the view transform or not. Currently it does not have this ability. I will file it as a known issue.

In solid mode we don't use the view transform as that is setup for rendering. When rendering an image from the viewport the image editor uses the view transform. This works as designed. The work around described in this ticket is not correct as it changes the scene setting, and that is not what you want when you are rendering. Best option would be that the render result known if it needs to display the view transform or not. Currently it does not have this ability. I will file it as a known issue.
Member

Added subscriber: @ThamQiLun

Added subscriber: @ThamQiLun

Added subscriber: @istoltoto

Added subscriber: @istoltoto

workaround solution

Hey, thank you for adding me here.

One of our team member did a script to workaround this problem.

Instead of using Viewport Render Animation, the script will use Viewport Render Image and move to render the next frame automaticly.
The script have no stop button and is not working with Esc either, so you either leave it to finish till the end of timeline, or you shoutdown the Blender.

Credit to: Jefferson Rausseo

new_viewport_render.jpg

render_viewport_alternative.py

**workaround solution** Hey, thank you for adding me here. One of our team member did a script to workaround this problem. Instead of using Viewport Render Animation, the script will use Viewport Render Image and move to render the next frame automaticly. The script have no stop button and is not working with Esc either, so you either leave it to finish till the end of timeline, or you shoutdown the Blender. Credit to: Jefferson Rausseo ![new_viewport_render.jpg](https://archive.blender.org/developer/F8576262/new_viewport_render.jpg) [render_viewport_alternative.py](https://archive.blender.org/developer/F8576264/render_viewport_alternative.py)

Added subscriber: @xdanic

Added subscriber: @xdanic

Added subscriber: @JustRed

Added subscriber: @JustRed

oh, almost reported same issue.
This is rather painful as people do be using filmic

oh, almost reported same issue. This is rather painful as people do be using filmic
Philipp Oeser removed the
Interest
EEVEE & Viewport
label 2023-02-09 15:15:09 +01:00

It's looks like alpha transparency layer on whole output from tool setting bar, where is this upp screen on viewport and transparent. Then on whole image it's look darker, but not soo similar..

It's looks like alpha transparency layer on whole output from *tool setting* bar, where is this upp screen on viewport and transparent. Then on whole image it's look darker, but not soo similar..

@istoltoto the render_viewport_alternative.py not changing for me the background, this same problem when white converted do gray.
The script working really hard btw.. why?

The problem can be related with Hue parameter. When white is, then any changes not saving this parameter for color pickup, but default is from gray viewport. Then when B taking to viewport can have this same issue.. soo maybe not alpha, but hue..

@istoltoto the render_viewport_alternative.py not changing for me the background, this same problem when white converted do gray. The script working really hard btw.. why? The problem can be related with Hue parameter. When white is, then any changes not saving this parameter for color pickup, but default is from gray viewport. Then when B taking to viewport can have this same issue.. soo maybe not alpha, but hue..

@iss @mano-wii Is possible to change priority for this issue? It's more like normal.. it's touching important area of work of this software to save result of work. I'm still combining some crazy way as print screen to paint, then cropping area, etc.. then of course broken resolution sizes, etc. around some interoperability with process, etc.

@iss @mano-wii Is possible to change priority for this issue? It's more like normal.. it's touching important area of work of this software to save result of work. I'm still combining some crazy way as print screen to paint, then cropping area, etc.. then of course broken resolution sizes, etc. around some interoperability with process, etc.

@ManBlender This is up to viewport developers. I can't tell whether it can be prioritized.

@ManBlender This is up to viewport developers. I can't tell whether it can be prioritized.

Can be related due class in blender around operating internal objects to save.
#120929 (comment)

Can be related due class in blender around operating internal objects to save. https://projects.blender.org/blender/blender/issues/120929#issuecomment-1173000

Ok, I think I found solution:

import bpy

bpy.context.scene.view_settings.view_transform = 'Standard'
bpy.context.scene.view_settings.look = 'None'
bpy.context.scene.display_settings.display_device = 'sRGB'

After this state in Blender is changed correctly.

Soo.. the problem is 'sRGB' and upper setting must be saved in default in required files.
Is this regression due changes in options?

Ok, I think I found solution: ``` import bpy bpy.context.scene.view_settings.view_transform = 'Standard' bpy.context.scene.view_settings.look = 'None' bpy.context.scene.display_settings.display_device = 'sRGB' ``` After this state in Blender is changed correctly. Soo.. the problem is 'sRGB' and upper setting must be saved in default in required files. Is this regression due changes in options?
@mano-wii Can You check RGBA ? https://projects.blender.org/blender/blender/src/branch/main/source/blender/nodes/composite/nodes/node_composite_rgb.cc
Member

When setting the color management to srgb/standard you match the color management profile of the overlay and therefore you don't see the issue, but in this case you're not able to use the color management you want to use.

Priority of this issue and classification is correct for this kind of issue.

It isn't a regression as this is part of the color management pipeline (https://developer.blender.org/docs/features/gpu/viewports/color_management/#known-issues). Viewport can have 2 color management profiles active. One for the render engine (which is controlled by the color management panel) and one for the overlays (overlay engine is fixed to sRGB/Standard).

There is no known solution how to solve this without introducing other issues. One trick I remember we added was to hide the overlays before exporting.

Not sure why you're referring to the source code of the compositor as that is done in a linear space and uses a fixed conversion matrix.

When setting the color management to srgb/standard you match the color management profile of the overlay and therefore you don't see the issue, but in this case you're not able to use the color management you want to use. Priority of this issue and classification is correct for this kind of issue. It isn't a regression as this is part of the color management pipeline (https://developer.blender.org/docs/features/gpu/viewports/color_management/#known-issues). Viewport can have 2 color management profiles active. One for the render engine (which is controlled by the color management panel) and one for the overlays (overlay engine is fixed to sRGB/Standard). There is no known solution how to solve this without introducing other issues. One trick I remember we added was to hide the overlays before exporting. Not sure why you're referring to the source code of the compositor as that is done in a linear space and uses a fixed conversion matrix.

It was time ago a option "display_device" ? Coz this is the case to have option which variant to set.
Also regarding pipeline..
https://blender.community/c/rightclickselect/JP8l/?sorting=hot

And know-issues:
Currently there isn't a python API to render to the color buffer. This results that add-ons that will use BGL rely on the display space. The consequence is that add-ons aren't able use the full potential of the drawing color pipeline.

  • but I changed type, soo it's not actual or limited?

Finally I can do this as proposed by script or impacting by this for other things as I not understanding well due code?

Compositor or other should operate a display_device variable not static I think. Time ago I meet other issue regarding conversion movie clip/gif then blender not work adequately around but I recognized the problem now as relation around color systems.

It was time ago a option "display_device" ? Coz this is the case to have option which variant to set. Also regarding pipeline.. https://blender.community/c/rightclickselect/JP8l/?sorting=hot And know-issues: `Currently there isn't a python API to render to the color buffer. This results that add-ons that will use BGL rely on the display space. The consequence is that add-ons aren't able use the full potential of the drawing color pipeline.` - but I changed type, soo it's not actual or limited? Finally I can do this as proposed by script or impacting by this for other things as I not understanding well due code? Compositor or other should operate a display_device variable not static I think. Time ago I meet other issue regarding conversion movie clip/gif then blender not work adequately around but I recognized the problem now as relation around color systems.
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
11 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#73956
No description provided.