Text Mesh improving.

Maybe this is an idea for Text mesh improvement.
To reproduce, a text go to edit mode, Select one outer side edge of a text.
Next in Select menu select equal amount of faces around an edge (this selects the text borders only).
And then press Alt+F (aperantly this fills a text better) and after that do a tris to quads (optionally alter degrees). The final result seams better, still not everything is as good as 100% quads but its better then original. If you realywant quads border then you might even use inset with some minimal corrections.


PS i’m not english and forgot about what the fox jumps over.

Notice the e and o triangulations to quads

Nice trick kinda weird that ALT+f generates a better mesh,… but its not 100% perfect, still requires some collapsing of triangles.
I wonder if there ever will be better text generation for blender that would work better.
I dont think its actively developed, … would be nice if text would be handled different, as a data block wich we could convert to mesh But in such a way that we would be able to still change the text ea type different words. That would be great for after effects as well.

Topology is still bad, it’s because the text is generated from the font vector and the points/vertices from it don’t make sense for a nice quad-based surface. The text object is really meant to be used as is without any subsurf on it. The only way to fix this would be to have special mesh fonts, but then your choice of font becomes very limited. I’m sure you could do it as a python add-on, where it fetches objects from a .blend library and arranges them.

to have a clean triangulated text i use this pass using my own:

[INDENT=2]#convert text in mesh[/INDENT]
bpy.ops.object.convert(target='MESH')

[INDENT=2]#triangulate mesh[/INDENT]
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.face_make_planar()
bpy.ops.mesh.dissolve_degenerate(threshold=0.003)
bpy.ops.mesh.face_make_planar()
bpy.ops.mesh.dissolve_degenerate(threshold=0.003)
bpy.ops.mesh.quads_convert_to_tris(quad_method='BEAUTY', ngon_method='BEAUTY')
bpy.ops.mesh.remove_doubles(threshold=0.005, use_unselected=False)
bpy.ops.mesh.beautify_fill(angle_limit=0.00872665)
bpy.ops.mesh.select_all(action='DESELECT')
bpy.ops.object.mode_set(mode = 'OBJECT')

And here’s a version that also converts them to quads :stuck_out_tongue:

import bpy

#convert text in mesh
bpy.ops.object.convert(target='MESH')
#triangulate mesh
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.face_make_planar()
bpy.ops.mesh.dissolve_degenerate(threshold=0.003)
bpy.ops.mesh.face_make_planar()
bpy.ops.mesh.dissolve_degenerate(threshold=0.003)
bpy.ops.mesh.quads_convert_to_tris(quad_method='BEAUTY', ngon_method='BEAUTY')
bpy.ops.mesh.remove_doubles(threshold=0.005, use_unselected=False)
bpy.ops.mesh.beautify_fill(angle_limit=0.00872665)
bpy.ops.mesh.tris_convert_to_quads()
bpy.ops.mesh.select_all()
bpy.ops.mesh.tris_convert_to_quads()
bpy.ops.object.mode_set(mode = 'OBJECT')

nice to have it in script form, would be nicer if it could be solved better.

@pesho, hm your kinda right normal coding wouldn’t be able to solve all different possible font types.
Maybe a trained evolving network could do it, as in here https://www.youtube.com/watch?v=Yz9MuI-tkiw
Something that tries to fit quads, and arcs of quads.

Most of the time i use a remesh modifier :slight_smile: