KatsBits Community

Game Editing => 3D Modeling & Content Creation => Topic started by: kat on July 14, 2015, 12:27:59 AM

Title: Why model in Quads and not Triangles
Post by: kat on July 14, 2015, 12:27:59 AM
Mesh Structure and Quads
Generally speaking there are a number of reasons why preference is given to modelling using quadratic faces ("quads") instead of, or rather than, triangles ("tris"). From a production point of view, i.e. making the content used in games, quadratic faces greatly aid the editing process because they allow certain functions to freely flow around the object. The reason for this has to do with the way mesh structures are generated as a lattice, a collection of vertex points connected by edges that define a space, which is then filled with a face. This lattice is 'formal', it follows a set pattern to aid speedy analysis when traced whilst minimising the amount of backtracking that might be necessary to catch missed edges, slowing down the process. In other words edge orientation flows in a particular direction (usually bottom-left to top-right) to ensure a given structure is rendered as quickly as possible regardless of individual faces being 'quads' or 'tris'.

A 'Quad' and 'Tris' represented by the same underlying lattice

Quads and Striping
The effect this mesh lattice has and the way it's processed, a procedure called "Striping", also affects the way certain structures appear, and is one of the reasons why meshes are broken down into triangles before export for game use. Shown below for example is what this means. If a four sided cone is needed, because the triangle strips orientate by default from bottom-left to top-right, the bottom-left and top-right quads have a virtual edge that travels up the longest diagonal (corner-to-centre) making the face appear convex (it has a hump) when it should properly be concave - which requires the edge to travel along the shortest diagonal (edge-to-edge). Wanting a cone would necessitates the two quads in question being broken down into triangles and the longest diagonal edges being turned against the natural flow of the triangle strip (select the diagonal edge after splitting the face, "Ctrl+F ยป Rotate Edge CW") to create a concave surface from the two triangles. Exported for game use the default orientation of the triangle strip often means edges are flipped the wrong way relative to what the artist intended so manual turning is often necessary.

Quote
Design note: for editing purposes, a quad can be broken down into triangles, the diagonal edge turned, with the two faces joined back together (select, "Alt+J") to form a quad with a more appropriate edge orientation that doesn't affect the ability of the face to be cut and manipulated as normal.

How lattice structure affects the surfaces
Lattice structure makes some surface 'convex' others 'concave' by default

Quads and Mesh Editing
From an editing point of view the difference between 'quads' and 'tris' is important insomuch as they make the editing process easier or more difficult when performing certain basic functions like cutting, splitting or dividing surfaces. When cutting a face the application needs a way to determined whether that face can be cut, and if the cut can propagate across other faces. For quads cuts can be made from edge to edge around an object until the action forms a closed loop, a "loop cut", this can be done because each quadratic surface is an 'open' structure, cuts can be made from one side to the other and continue on to neighboring faces because the can cross shared border edges.

When quads are converted or split (select face, "Ctrl+T") into triangles however, the edge they share corner to corner, essentially blocks progress of the cut because it forces it to effectively terminate at a corner vertex instead of continuing across another edge - doing so would basically mean placing a mesh division at a tangent to an edge instead of essentially being perpendicular to it; for actions such as loop cutting the math involved in doing the former is more complex than for the latter. In other words where a triangle exists as part of a loop of faces, a loop-cut place around an object will always terminate at the corner vertex of a triangle.

Quote
Design note: this behavior is most noticeable when manually sub-dividing the diagonal line shared between two triangles (that would otherwise constitute a quad), although it divides, creating a new vertex and two new nGon quadratic faces (nGons are irregualar shaped quads in that they have four edges that don't mark a traditional 'quad' shape), the action does not propagate beyond those initial consequence. If the new faces are then broken into triangles, the new edges would fan out to the original corner vertices indicating the structures inability to allow automatic propagation of the cut.

How triangle edges affect mesh cuts