Triangulation Modifier breaks split normals #51117
Labels
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
6 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#51117
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Linux Mint 17.3
Intel i7 4770
Nvidia GTX 760
Blender Version
Broken: 2.78c.e92f2352830
Short description of error
Normals become broken, when using mesh with edited split normals and then adding triangulation modifier on the top of it.
PS: I have tried even on daily build, same problem: blender-2.78-54a60eff24
PS2: I tried to search for this problem in developer system, but did find one, that's why I am opening new issue.
Exact steps for others to reproduce the error
Changed status to: 'Open'
Added subscriber: @simon_lusenc
Added subscriber: @mano-wii
Hi @simon_lusenc,
Could you simplify the code to reproduce the bug?
To understand the bug, it is necessary to analyze the attached code, and this is not practical for developers who already have to analyze a stack of 323 bugs at the moment :\
Well actually you don't even need to check the add-on, because it's not related to add-on. Add-on just calculates normals and assign them back to mesh. The real problem is that once you have that mesh and you apply triangulation on it, normals get distorted.
I have created simple blend file for you, with 2 objects: broken_normals.blend
To check it just go into the edit mode of each object and you will see the difference.
And sorry for not attaching blend file before ;)
Added subscribers: @ideasman42, @dfelinto
@ideasman42 This is the expected behaviour as far as I can see, no?
This is related to
Custom Split Normal Data
. So there must be a problem in CustomData interpolation.Hello,
well it's been quite some time now and I am wondering if this is being looked at or it's just not solvable at current state?
Thx!
Added subscriber: @mont29
Changed status from 'Open' to: 'Archived'
Thanks for the report, but this is not considered a bug currently - custom normals are to be used as latest step, they are designed to handle well deformations of the mesh, but absolutely not changes in topology.
Added subscriber: @BrentLiu
This may be working as intended(not a bug). But,
Baking a normal map requires the mesh to be triangulated to have the best possible result.
Having triangulate modifier is a way to keep the model workable(were still quads in edit-mode) while at the same time, previews/renders that mesh as triangulated.
3D modelling workflows for games uses custom normal very often, especially for low-poly models.
Now that this modifier wouldn't maintain the custom normals, to get the same level of result using such workflow become drastically slow due to manual processing of the triangulations. Or rather, the inability to go back to quads for back/forth editing & testing for the better result with different normal map iterations.
If I know CPython and was able to contribute, this will be my task. Badly I only started learning Python last year, and I haven't found a way to implement custom modifiers, I can only rely on Blender Foundation to help with this, for now.
If this can't be viewed as a bug, please, please, please, help us improve the triangulate modifier so it doesn't change the existing custom normals.
EDIT:
Actually, I just found a trick to keep custom normal using Data Transfer modifier, while moving the triangulate modifier above the Data Transfer... This introduces an extra object in the scene, but does the job pretty nicely. Kudos to BF this time!! But still, it would be nice to not having that extra object. ; )
Added subscriber: @RohanRathi
@RohanRathi might be interesting to implement support of custom normals in a few modifiers like triangluate, if you still have time in your GSoC?
Definitely could check it out.