Set normals from faces should respect sharp edges #52115

Open
opened 2017-07-18 20:23:36 +02:00 by Emil Assarsson · 20 comments

System Information
Mac OS Sierra
Radeon Pro 580

Blender Version
Broken: 2.78.5 66383ea206

Short description of error
Set normals from face effects faces across edges set to sharp. It would make more sense and be more useful if it would respect those edges IMHO.

Exact steps for others to reproduce the error
Create a cube
Bevel edges across one axis with one segment and mark the caps to sharp in the edge menu
Turn on auto smooth and set the angle to 180.
Select the smooth large faces and "Set normals to face" to move the smoothness to the bevel.

The caps should confinue to be flat since all there edges are marked as sharp.

normals1.png

I really like this functionallity and I only want it to improve :-D

**System Information** Mac OS Sierra Radeon Pro 580 **Blender Version** Broken: 2.78.5 66383ea206 **Short description of error** Set normals from face effects faces across edges set to sharp. It would make more sense and be more useful if it would respect those edges IMHO. **Exact steps for others to reproduce the error** Create a cube Bevel edges across one axis with one segment and mark the caps to sharp in the edge menu Turn on auto smooth and set the angle to 180. Select the smooth large faces and "Set normals to face" to move the smoothness to the bevel. The caps should confinue to be flat since all there edges are marked as sharp. ![normals1.png](https://archive.blender.org/developer/F671097/normals1.png) I really like this functionallity and I only want it to improve :-D
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @jackdaw

Added subscriber: @jackdaw

Added subscribers: @RohanRathi, @mont29

Added subscribers: @RohanRathi, @mont29

Thanks for the report, but don’t think this should be changed actually, this is supposed to affect normals as vertices ones, not really split ones…

@RohanRathi hey, think that you could think about adding either an option to this operator, or a new one, to actually consider sharp edges as 'separators' and not affect split normals on the 'unselected' side of those? Totally falls into your GSoC project. :)

Thanks for the report, but don’t think this should be changed actually, this is supposed to affect normals as vertices ones, not really split ones… @RohanRathi hey, think that you could think about adding either an option to this operator, or a new one, to actually consider sharp edges as 'separators' and not affect split normals on the 'unselected' side of those? Totally falls into your GSoC project. :)
Rohan Rathi was assigned by Bastien Montagne 2017-07-19 10:13:23 +02:00
Member

@mont29 Would love to take this on ;)

@mont29 Would love to take this on ;)
Author

Thank you! Let me know If there is anything I can help with :-)

Thank you! Let me know If there is anything I can help with :-)
Member

@jackdaw
I've added this functionality, albeit in my official soc branch for now.
You can test it out by building my branch: soc-2017-normal-tools.

@jackdaw I've added this functionality, albeit in my official soc branch for now. You can test it out by building my branch: soc-2017-normal-tools.
Author

normals.png I'm not sure how I could use these tools to achieve the desired result (figure to the right). I might be missing something?

![normals.png](https://archive.blender.org/developer/F679949/normals.png) I'm not sure how I could use these tools to achieve the desired result (figure to the right). I might be missing something?
Member

Hey,
using set normals to face with multiple selected faces sets the normals to their face normal average. This has been an inherent part of the tool. If you want the figure on the right, you have to select all the flat non beveled faces and then use this function, along with checking "Keep sharp edges"

Hey, using set normals to face with multiple selected faces sets the normals to their face normal average. This has been an inherent part of the tool. If you want the figure on the right, you have to select all the flat non beveled faces and then use this function, along with checking "Keep sharp edges"
Author

Ahh! Totaly missed the option. It works like that but I still have problem if I use the Set From Face on the other side of the sharp edge (cap face in this case) instead. otherside.png

Ahh! Totaly missed the option. It works like that but I still have problem if I use the Set From Face on the other side of the sharp edge (cap face in this case) instead. ![otherside.png](https://archive.blender.org/developer/F681028/otherside.png)
Member

Thanks for your feedback! I think I've considered all cases now, would appreciate if you could test it out and report again :)

Thanks for your feedback! I think I've considered all cases now, would appreciate if you could test it out and report again :)
Author

One thing I've noticed is that I can't select faces on the both sides of a sharp and do the operation in one go. I have got some crashes but I need to narrow the case before reporting them. Thank you!

One thing I've noticed is that I can't select faces on the both sides of a sharp and do the operation in one go. I have got some crashes but I need to narrow the case before reporting them. Thank you!
Member

I'll check into why its crashing. I'll check into the set_normal_from_faces code.
Is it crashing when you are using some other tool that I've not written? If so, then I can understand why its crashing.

I'll check into why its crashing. I'll check into the set_normal_from_faces code. Is it crashing when you are using some other tool that I've not written? If so, then I can understand why its crashing.
Author

It sometimes crashes when I have changed topology (triangulated ngons) and then doing a Set From Faces on the triangles but I have a really hard time getting a consistant case. I send you a screenshot of xcode trace so it might be I bit easier to narrow down? trace.png

Another thing: Set From Faces seems to produce a bit inconsistant results when doing it multiple times on a bit more complex mesh.

[EDIT]
Btw: I find this feature really usefull and I use it reguarly :-)
[/EDIT]

It sometimes crashes when I have changed topology (triangulated ngons) and then doing a Set From Faces on the triangles but I have a really hard time getting a consistant case. I send you a screenshot of xcode trace so it might be I bit easier to narrow down? ![trace.png](https://archive.blender.org/developer/F692890/trace.png) Another thing: Set From Faces seems to produce a bit inconsistant results when doing it multiple times on a bit more complex mesh. [EDIT] Btw: I find this feature really usefull and I use it reguarly :-) [/EDIT]
Member

It is crashing when the mesh is edited so the loop normal spaces are wrongly invalidated. Nothing related to this tool, will fix by tomorrow. Could you provide an example when its giving inconsistent results? I've added sharp edges to the weighted normal modifier as well. I'll work on adding similar methodology to the tool if the modifier works fine. Also will make it so you can select both sides and perform the operation in one go.
Thank you,

It is crashing when the mesh is edited so the loop normal spaces are wrongly invalidated. Nothing related to this tool, will fix by tomorrow. Could you provide an example when its giving inconsistent results? I've added sharp edges to the weighted normal modifier as well. I'll work on adding similar methodology to the tool if the modifier works fine. Also will make it so you can select both sides and perform the operation in one go. Thank you,
Author

The inconsistancy problem seems to be when using the tool on faces that have a ending of a sharp edge.
I guess that the normal direction is based of the closest triangle? My expectation is that it's based of the entire face so that the normals of both corners match. Also it shouldn't matter IMHO if I run it several times on the same face but it does.

inconsistant.blend
inconsistant.png

The inconsistancy problem seems to be when using the tool on faces that have a ending of a sharp edge. I guess that the normal direction is based of the closest triangle? My expectation is that it's based of the entire face so that the normals of both corners match. Also it shouldn't matter IMHO if I run it several times on the same face but it does. [inconsistant.blend](https://archive.blender.org/developer/F698233/inconsistant.blend) ![inconsistant.png](https://archive.blender.org/developer/F698234/inconsistant.png)
Member

Thank you! I've fixed both the problems. I would really appreciate if you could test out the other tools as well. Eg average with binary weights gives similar results to set normals from faces but also takes care of the cases of sharp edges.

Thank you! I've fixed both the problems. I would really appreciate if you could test out the other tools as well. Eg average with binary weights gives similar results to set normals from faces but also takes care of the cases of sharp edges.
Author

Ok, I will gladly test the other tools aswell :-)

Copy Loop? Copy Normal direction? I think it's confusing to use the name "Loop" for this.

Error message when trying to copy normals "Invalid selection" could be more helpful.
When copying from multiple vertices it could ether say "can only copy normal direction from one vertex"/"Selected vertex contains a split normal and can not be copied as one value" or do an avarage on the selected.

When Pasting "loop" to a face with sharp edges it should only influence the selected faces normals (not influence shading on the other side of the sharp edge).

Sorry, but I don't undestand Weight and Threshold parameters. Do you have something written about this?

Boolean? What does it do? Weight and Threshold values seems to have no influence [edit] when it's checked[/edit]

Triangulated meshes becomes shaded differently on both Face and Angle based Avarage.
I can understand why but can we add something to handle it? I think that it would be more usfull if triangulated quads where treated symetrical.

The Split and Merge Normals buttons seems to be a duplication of the Mark and Clear Sharp (Edge) with new names. IMHO we need to inform the user that they should use the existing tools for that instead.

Would it be possible to add some Icons on the buttons? All these text buttons blur together ;-)

The weighted normal modifier is a wonderful addition! Does most of the work needed but adding a triangulate modifier to the stack (before) messes thing up a bit.
triangulatedWithArea.png

Ok, I will gladly test the other tools aswell :-) Copy Loop? Copy Normal direction? I think it's confusing to use the name "Loop" for this. Error message when trying to copy normals "Invalid selection" could be more helpful. When copying from multiple vertices it could ether say "can only copy normal direction from one vertex"/"Selected vertex contains a split normal and can not be copied as one value" or do an avarage on the selected. When Pasting "loop" to a face with sharp edges it should only influence the selected faces normals (not influence shading on the other side of the sharp edge). Sorry, but I don't undestand Weight and Threshold parameters. Do you have something written about this? Boolean? What does it do? Weight and Threshold values seems to have no influence [edit] when it's checked[/edit] Triangulated meshes becomes shaded differently on both Face and Angle based Avarage. I can understand why but can we add something to handle it? I think that it would be more usfull if triangulated quads where treated symetrical. The Split and Merge Normals buttons seems to be a duplication of the Mark and Clear Sharp (Edge) with new names. IMHO we need to inform the user that they should use the existing tools for that instead. Would it be possible to add some Icons on the buttons? All these text buttons blur together ;-) The weighted normal modifier is a wonderful addition! Does most of the work needed but adding a triangulate modifier to the stack (before) messes thing up a bit. ![triangulatedWithArea.png](https://archive.blender.org/developer/F710380/triangulatedWithArea.png)
Author

When I try to run Set From Faces on faces with a sharp edge I don't get the same result as I would if I run them separatly.

FaceSelectedCrossSharpEdge.blend
setNormalsToFace.png

When I try to run Set From Faces on faces with a sharp edge I don't get the same result as I would if I run them separatly. [FaceSelectedCrossSharpEdge.blend](https://archive.blender.org/developer/F710964/FaceSelectedCrossSharpEdge.blend) ![setNormalsToFace.png](https://archive.blender.org/developer/F710963/setNormalsToFace.png)
Author

The problem with inconcistancy when the selected face have an ended sharp edge is solved from what I can see :-D Thank you!

The problem with inconcistancy when the selected face have an ended sharp edge is solved from what I can see :-D Thank you!
Philipp Oeser removed the
Interest
Modeling
label 2023-02-09 15:30:04 +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
3 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#52115
No description provided.