Page MenuHome

EEVEE Shading: string sockets node group interface value doesn't work
Confirmed, NormalPublicKNOWN ISSUE

Description

Blender Version
Broken: version: 3.0.0 Alpha, branch: master (modified), commit date: 2021-06-11 14:46, hash: rBf6c5af3d4753
Worked: n/a

Short description of error
in shading, String sockets exposed via node group interface don't use the value from the node group interface

Exact steps for others to reproduce the error
Steps to illustrate the problem

  • Use a quick smoke effect on a cube
  • Add a principled volume and connect it to material volume output
  • Change the Density Attribute to other text
  • Group the principled volume
  • Change the Density Attribute back to density

Event Timeline

Pratik Borhade (PratikPB2123) changed the task status from Needs Triage to Needs Information from User.Jun 22 2021, 3:17 PM

Can not reproduce with 3.0.0 (rBb2510b9e20a4b6ce6bee68e89a801c33b4c2bf9d).

Please confirm if you can reproduce the issue with fresh build (https://builder.blender.org/download/daily/)

Did you group only principled volume node or both nodes (material output node)?

Hello, still same issue here's a video to clear things up
tested on today's master branch

Pratik Borhade (PratikPB2123) changed the task status from Needs Information from User to Confirmed.Jun 29 2021, 11:11 AM

Thanks! Can confirm.

Dalai Felinto (dfelinto) renamed this task from EEVEE: String sockets node group interface value doesn't work to Shading: string sockets node group interface value doesn't work.May 30 2022, 5:23 PM
Dalai Felinto (dfelinto) updated the task description. (Show Details)

Bug confirmed. This seems to be the case since a long time (maybe forever). And it seems to be a problem only for shading. Geometry nodes can handle grouped named strings with no problems.

The bug is a big obvious when you look at the code in node_shader_gpu_volume_principled. Basically the code is using the default_value from the node directly, as oppose to the evaluated value that gets there.

Dalai Felinto (dfelinto) renamed this task from Shading: string sockets node group interface value doesn't work to EEVEE Shading: string sockets node group interface value doesn't work.May 30 2022, 5:50 PM
Dalai Felinto (dfelinto) updated the task description. (Show Details)
Dalai Felinto (dfelinto) changed the subtype of this task from "Report" to "Known Issue".May 30 2022, 6:07 PM

Moving it as a known issue. I wonder if this needs to be a socket.

But I will leave this decision to the Viewport/Cycles team - it may be a decision between a bigger refactor to guarantee feature parity, drop feature parity (as we have already) or remove the feature from Cycles.

We want to move towards exposing everything as sockets: strings, enums, images, ramps, etc. That way users can create more powerful group nodes. So I don't think this is a feature to be removed.

I think this comes down to the same issue as T93905. Shader nodes needs the same "Fields" concept as geometry nodes, where some sockets are computed as constants from the shader's perspective, but potentially differently for different uses of the node group.
You could imagine the "Join Strings" node supported in shader nodes, so you can compute the attribute name used for this node based on some other parameter.