Shader to RGB node is ignoring shading and just using color socket data directly #79794

Open
opened 2020-08-14 22:01:53 +02:00 by aVersionOfReality · 14 comments

System Information
Operating system: Windows-7-6.1.7601-SP1 64 Bits
Graphics card: GeForce GTX TITAN X/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 446.14

Blender Version
Broken: version: 2.83.4, branch: master, commit date: 2020-08-05 06:00, hash: c113af8288

Short description of error
If you have a Shader that is converted with the Shader to RGB node, and then the resulting Color is plugged into another shader node and rendered, the output of Eevee's Color pass for that shader shows color plugged to socket of shader that is converted to RGB. In example file it is pure white, when you would expect to see the converted shader to RGB.

Problem exists with Diffuse, Glossy, and Emission shaders and passes with the exception that an Emission converted to RGB going into another Emission will show up properly in the emission pass.

Exact steps for others to reproduce the error
See Node graph in attached image, or attached file.

image.png
shader_to_rgb_eevee_pass.blend

**System Information** Operating system: Windows-7-6.1.7601-SP1 64 Bits Graphics card: GeForce GTX TITAN X/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 446.14 **Blender Version** Broken: version: 2.83.4, branch: master, commit date: 2020-08-05 06:00, hash: `c113af8288` **Short description of error** If you have a Shader that is converted with the Shader to RGB node, and then the resulting Color is plugged into another shader node and rendered, the output of Eevee's Color pass for that shader shows color plugged to socket of shader that is converted to RGB. In example file it is pure white, when you would expect to see the converted shader to RGB. Problem exists with Diffuse, Glossy, and Emission shaders and passes with the exception that an Emission converted to RGB going into another Emission will show up properly in the emission pass. **Exact steps for others to reproduce the error** See Node graph in attached image, or attached file. ![image.png](https://archive.blender.org/developer/F8781022/image.png) [shader_to_rgb_eevee_pass.blend](https://archive.blender.org/developer/F8781039/shader_to_rgb_eevee_pass.blend)

Added subscriber: @ColinBarton

Added subscriber: @ColinBarton

Added subscriber: @WeeKwongBong

Added subscriber: @WeeKwongBong

Added subscriber: @iss

Added subscriber: @iss

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

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

I am not sure if there is any bug.
First thing I did was to plug shader directly into material output and checked if there is any difference - there wasn't.

I would guess that reason why you get pure white image is because you are using monochromatic shading. If I connect texture with glossy BSDF shader node, I get expected colors in Specular Color pass. I have looked at manual https://docs.blender.org/manual/en/latest/render/layers/passes.html#lighting-passes that seems to tell me that I should expect what I see as well.

I have modified the file to demonstrate the case a bit better, I hope. Do you see same image in compositor as in combined pass of render? Or does this even solve your problem?
#79794.blend

I am not sure if there is any bug. First thing I did was to plug shader directly into material output and checked if there is any difference - there wasn't. I would guess that reason why you get pure white image is because you are using monochromatic shading. If I connect texture with glossy BSDF shader node, I get expected colors in Specular Color pass. I have looked at manual https://docs.blender.org/manual/en/latest/render/layers/passes.html#lighting-passes that seems to tell me that I should expect what I see as well. I have modified the file to demonstrate the case a bit better, I hope. Do you see same image in compositor as in combined pass of render? Or does this even solve your problem? [#79794.blend](https://archive.blender.org/developer/F8789703/T79794.blend)

The first Glossy shader on its own looks like this:
image.png
Since that is then converted to RGB and plugged into the second Glossy shader, I'd expect to see that shading come out of the GlossCol pass. This is how it works in Cycles. Instead, whatever is plugged into the color of the first glossy shader is coming out of the GlossCol pass, with the combined shading of both Gloss's being in the GlossDir pass.

In other words, its not really converting it to RGB, as it continues to keep the Shading info from the first gloss in the GlossDir pass, when it should now be in the color pass.

The first Glossy shader on its own looks like this: ![image.png](https://archive.blender.org/developer/F8789740/image.png) Since that is then converted to RGB and plugged into the second Glossy shader, I'd expect to see that shading come out of the GlossCol pass. This is how it works in Cycles. Instead, whatever is plugged into the color of the first glossy shader is coming out of the GlossCol pass, with the combined shading of both Gloss's being in the GlossDir pass. In other words, its not really converting it to RGB, as it continues to keep the Shading info from the first gloss in the GlossDir pass, when it should now be in the color pass.

I think I see the problem now. In my words it would be: Shader to RGB node is ignoring shading and just using color socket data directly. I thought the report is rather about color passes.

I think I see the problem now. In my words it would be: Shader to RGB node is ignoring shading and just using color socket data directly. I thought the report is rather about color passes.
Richard Antalik changed title from Shader to RGB does not work with Eevee color passes to Shader to RGB node is ignoring shading and just using color socket data directly 2020-08-19 00:33:51 +02:00

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

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

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

This seems to be a limitation of EEVEE render passes.

For render passes EEVEE hides part of the BSDF equation based on the selected pass; it does this for all BSDF's of the material.
When setting the GlossCol the first GlossBSDF will only output the glosscol (outputs pure white).
This is converted to rgb (outputs pure white) and will be feed to the second GlossBSDF (outputs pure white).

There is no easy way to do this only to some of the shaders in the material. I will update the manual to add this limitation.

This seems to be a limitation of EEVEE render passes. For render passes EEVEE hides part of the BSDF equation based on the selected pass; it does this for all BSDF's of the material. When setting the GlossCol the first GlossBSDF will only output the glosscol (outputs pure white). This is converted to rgb (outputs pure white) and will be feed to the second GlossBSDF (outputs pure white). There is no easy way to do this only to some of the shaders in the material. I will update the manual to add this limitation.

In #79794#1005499, @Jeroen-Bakker wrote:
This seems to be a limitation of EEVEE render passes.

For render passes EEVEE hides part of the BSDF equation based on the selected pass; it does this for all BSDF's of the material.
When setting the GlossCol the first GlossBSDF will only output the glosscol (outputs pure white).
This is converted to rgb (outputs pure white) and will be feed to the second GlossBSDF (outputs pure white).

There is no easy way to do this only to some of the shaders in the material. I will update the manual to add this limitation.

Do we know if this limitation would also apply to the upcoming Eevee AOVs? Being able to Convert Shader to RGB and output it via AOV would be a potential work around of the issue.

> In #79794#1005499, @Jeroen-Bakker wrote: > This seems to be a limitation of EEVEE render passes. > > For render passes EEVEE hides part of the BSDF equation based on the selected pass; it does this for all BSDF's of the material. > When setting the GlossCol the first GlossBSDF will only output the glosscol (outputs pure white). > This is converted to rgb (outputs pure white) and will be feed to the second GlossBSDF (outputs pure white). > > There is no easy way to do this only to some of the shaders in the material. I will update the manual to add this limitation. Do we know if this limitation would also apply to the upcoming Eevee AOVs? Being able to Convert Shader to RGB and output it via AOV would be a potential work around of the issue.
Member

{rBM7008} Documents the limitation.

The current patch uses the full BSDF's so that should be supported.

{rBM7008} Documents the limitation. The current patch uses the full BSDF's so that should be supported.

Added subscriber: @JacobMerrill-1

Added subscriber: @JacobMerrill-1

so eevee aov are still on the way ?

I know you are very busy,
but whenever you can get that patch finished I would be very grateful !

so eevee aov are still on the way ? I know you are very busy, but whenever you can get that patch finished I would be very grateful !
Philipp Oeser removed the
Interest
EEVEE & Viewport
label 2023-02-09 15:14:34 +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
5 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#79794
No description provided.