Unify Curve, Text, Metaball, and Mesh Modifier Stacks by Splitting the Stack into sections by data type
Context: currently in blender it seems curve objects have an invisible "convert to mesh" function, and text objects have an invisible "convert to curve" AND "convert to mesh" function. This forces the user to destructively convert these objects to apply mesh modifiers to text or curves, and also prevents the modifier stack from being able to operate directly on text or curve data.
This proposal is essentially to extend the modifier stack to also be responsible for object type conversion.
The new modifier stack would have sections for different object types, including but not limited to Text, Curves and Meshes. (Hair, metaballs and volumes may also be included in future) These sections would be divided by non-destructive "type conversion modifiers", which would perform the same role as the conversion operators. These modifiers would include the relevant settings for conversion such as bevel profile, font and curve quality options that currently reside in the object's type-specific data tab. (curve data tab, text data tab etc).
The last section of the stack would be required to always be a mesh, so some conversion modifier would always have to be present in curves or text objects. The first section would of course be the same type as the object. So a text object for example would always have a text section, a text-to-mesh conversion modifier, and a mesh section, at the minimum. But it could also have a text section, a text-to-curve conversion modifier, a curve section, a curve-to-mesh conversion modifier, and finally a mesh section.
Not only would this allow for more flexible non-destructive workflows when working with non-mesh object types, this would also provide a clear and unified home for new modifiers specific to non-mesh data. For example, a 2D boolean modifier for 2D curves that operates directly on the curve data, or modifiers that displace individual letters of a text object.
Thumbnail image is a (very extremely rough) mockup of a text object with the proposed modifier stack. At the top is a place for text modifiers, such as captilization converters or letter displacement modifiers. Next is an "object type conversion modifier" that turns the text into a curve. The curve section contains a hypothetical 2D curve boolean modifier, which does booleans on 2D curves directly. Next a second "object type conversion modifier" that turns the curve data into mesh data, which is finally followed by a traditional mesh modifier stack which happens in this case to include subsurf and wireframe.
0 Comments