Page MenuHome

Triangulation Modifier breaks split normals
Closed, InvalidPublic


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

  1. Create cube, bevel all edges
  2. Create split normals -> edit normals somehow. I used weighted normals calculation ->
  3. Add triangulation modifier
  4. Normals gets distorted! :(



Event Timeline

Germano Cavalcante (mano-wii) lowered the priority of this task from Needs Triage by Developer to Confirmed, Low.Apr 5 2017, 4:00 PM

Hi @Simon (notallowed),

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 :\

Simon (notallowed) added a comment.EditedApr 6 2017, 10:12 AM

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:

  1. original -> is beveled cube with custom split normals
  2. broken -> is shallow duplicate (it uses same mesh as original) and has triangulation modifier which brakes normals

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 ;)

This is related to Custom Split Normal Data. So there must be a problem in CustomData interpolation.


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?


Bastien Montagne (mont29) claimed this task.

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.

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.

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. ; )

@Rohan Rathi (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.