What's the fastest way to turn a triangular face into three quads?enter image description here


Subdivide triangle. Select face of middle triangle. Repeat. Select inner vertices and use AltM to merge at centre.

My 5 cents. What's yours?

enter image description here

p.s. no need to go into vertex mode. Face select and AltM is enough.

  • $\begingroup$ It is also possible to: Select triangle in middle -> Poke Face -> Select All -> Tris to Quads $\endgroup$ – marcus Jul 10 '17 at 18:54

Subdivision Surface modifier with Simple mode

Just add to your object a subdivision surface modifier from the list and choose the Simple option.

enter image description here

This method is obviously not good if you would like to subdivide only a subset of faces of your object as the modifier is being applied to the whole object (in this case made of a single face).

  • 3
    $\begingroup$ Still a nice one... $\endgroup$ – marcus Jul 9 '17 at 19:07
  • $\begingroup$ This is actually the best solution I have seen so far, only requires like three button presses $\endgroup$ – Sam1370 Sep 16 '18 at 1:33

I guess you could always use the shortcut and not model it all. :)

The Add Mesh Extra Objects Add-On has been updated in version 2.79 and now includes a triangle object. It is found under Add Mesh>Math Function>Triangle. There are options for 3 and 6 quad faces, and 3 tri faces.

If you do not have it enabled already, just enable it in user preferences with Ctrl+Alt+U and search for 'extra'.

enter image description here

Here is an example gif:

enter image description here


@Carlo presented the perfect solution IMO- the fastest one indeed. Here are my 5 cents though:

Subdivide the triangle with W-->Subdivide, then inset faces with I and input the proper scale value to place all the vertices in the center of the object. Press W-->Remove Doubles. Finally select some edges and get rid of them with X-->Limited Dissolve.
enter image description here

  • 1
    $\begingroup$ That's also nice. Tris to Quads also works as last step, btw. $\endgroup$ – marcus Jul 10 '17 at 5:02

Bmesh script

enter image description here

  • Checks selected element is tri.
  • Removes tri face.
  • Bisects the edges.
  • Make edges from bisect verts to tri's median centre.
  • Fill new edges and bisect edges with contextual create (akin to F)

Select triangle face in edit mode run script.

import bpy
import bmesh

context = bpy.context
ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)

tri = bm.select_history.active
# poll .. do we have a tri
if isinstance(tri, bmesh.types.BMFace) and len(tri.verts) == 3:
    edges = tri.edges[:]

    c = tri.calc_center_median()
    ret = bmesh.ops.bisect_edges(bm, edges=edges, cuts=1)
    verts = ret['geom_split'][:3]
    c = bm.verts.new(c)
    geom = ret['geom_split'][3:] +  [bm.edges.new([c, v]) for v in verts]  
    bmesh.ops.contextual_create(bm, geom=geom)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.