Maniphest T94705

Geometry nodes. Shade smooth node works weird with selection
Closed, Archived

Assigned To
None
Authored By
Vyacheslav (hitrpr)
Jan 7 2022, 3:23 AM
Tags
  • BF Blender
  • Geometry Nodes
Subscribers
Charlie Jolly (charlie)
Hans Goudey (HooglyBoogly)
Richard Antalik (ISS)
Vyacheslav (hitrpr)

Description

System Information
Operating system: Windows-8.1-6.3.9600-SP0 64 Bits
Graphics card: NVIDIA GeForce GTX 660 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 472.12

Blender Version
Broken: version: 3.1.0 Alpha, branch: master, commit date: 2022-01-05 22:15, hash: rB1d9bac7d921f

Check files and try to input selection to shade smooth node. Works weird comparing edge split, that works as expected.

Short description of error
Blender 3.0 file:

Blender 3.1:

Event Timeline

Vyacheslav (hitrpr) created this task.Jan 7 2022, 3:23 AM
Richard Antalik (ISS) added subscribers: Hans Goudey (HooglyBoogly), Richard Antalik (ISS).Jan 7 2022, 3:50 AM

Looks weird, but I don't quite understand intentions here. @Hans Goudey (HooglyBoogly) Can you check?

Vyacheslav (hitrpr) added a comment.Jan 7 2022, 4:34 AM
In T94705#1284187, @Richard Antalik (ISS) wrote:

Looks weird, but I don't quite understand intentions here. @Hans Goudey (HooglyBoogly) Can you check?

  1. the intension is to mark smooth all angles that in desirable range (sharper than X, in this particular case).
  2. next one is to get rid of one-point trick and have autosmooth with generated geometry, but do not split geometry

Pratik Borhade (PratikPB2123) added a project: Geometry Nodes.Jan 7 2022, 7:51 AM
Charlie Jolly (charlie) added a subscriber: Charlie Jolly (charlie).Jan 7 2022, 10:26 AM
Hans Goudey (HooglyBoogly) closed this task as Archived.Jan 7 2022, 6:03 PM

I think it's behaving differently than you expect because edge split evaluates the input on the edge domain, but set shade smooth evaluates the input for every face, since it adjusts the shade_smooth attribute on faces.
So here we're relying on the implicit domain conversion and type conversions. That uses a specific set of rules, but they might not be what you want in all situations.

The situation becomes a bit clearer if you capture the value as a boolean anonymous attribute first, then the domain conversion uses these rules: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/attributes_reference.html#boolean-domain-interpolation

At some point we will expose the edge smooth flag to geometry nodes, but that will probably be associated with T93551.

Besides the behavior not being useful for this use case, I don't think there's anything wrong here, so I'll close this report. Thanks.

Vyacheslav (hitrpr) added a comment.Jan 7 2022, 7:37 PM
In T94705#1284546, @Hans Goudey (HooglyBoogly) wrote:

I think it's behaving differently than you expect because edge split evaluates the input on the edge domain, but set shade smooth evaluates the input for every face, since it adjusts the shade_smooth attribute on faces.
So here we're relying on the implicit domain conversion and type conversions. That uses a specific set of rules, but they might not be what you want in all situations.

The situation becomes a bit clearer if you capture the value as a boolean anonymous attribute first, then the domain conversion uses these rules: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/attributes_reference.html#boolean-domain-interpolation

At some point we will expose the edge smooth flag to geometry nodes, but that will probably be associated with T93551.

Besides the behavior not being useful for this use case, I don't think there's anything wrong here, so I'll close this report. Thanks.

Okay, thanks for wide explanation. Will wait ability to set sharp edges with GN. ATM it is tricky.