Page MenuHome

Subdivision surface settings part of the Mesh
Open, NormalPublic


We want to make subdivision surfaces a property of the Mesh datablock. The modifier would be left as a less commonly used option

There are a few reasons for this:

  • OpenSubdiv GPU acceleration in the viewport and adaptive subdivision in Cycles need the modifier to be last in the stack. The available settings, behavior and implementation would be more clear if this was controlled outside of the modifier stack.
  • When we add modifier nodes support, the concept of a last modifier in the stack becomes fuzzy. Being able to pass along a subdivision surface Mesh to another node without actually subdividing is important for performance and to leave subdivision to the renderer.
  • For best performance with GPU acceleration, we don't want Blender to also subdivide the mesh on the CPU at all. But operations like hair positioning, particle emission and snapping still need to take into account the subdivision surface. If the Mesh datablock contains all the subdivision surface information, these could potentially work on the limit surface without subdividing the mesh on the CPU.
  • Simpler smooth normals handling, see T68893: Smooth shading usabilty.


To Do

Event Timeline

Dalai Felinto (dfelinto) triaged this task as Normal priority.


Can I ask about the rationale for this? Is there is any advantage moving subsurf out of the modifiers would bring (ie. performance)?

Brecht Van Lommel (brecht) renamed this task from Per-Mesh Subsurf with OpenSubdiv to Subdivision surface settings part of the Mesh.
Juan Gea (juang3d) rescinded a token.
Juan Gea (juang3d) awarded a token.