|
| 1 | += GameDev Quadrangulate = |
| 2 | + |
| 3 | +#type: node |
| 4 | +#context: sop |
| 5 | +#internal: gamedev::sop_quadrangulate::2.0 |
| 6 | +#icon: quadrangulate |
| 7 | +#tags: tech, model, gamedev, cleanup |
| 8 | + |
| 9 | +""" Simple Node to take a triangulated mesh and attempt to collapse the diagonal edges to return the mesh to a quad dominant state """ |
| 10 | + |
| 11 | +The Quadrangulate Node is designed to remove obvious edges from a triangulated mesh in order to return to what the original quaded mesh would've looked like. |
| 12 | + |
| 13 | +It works as a 2 step process, the first step is identifying the diagonal edges in the quads, this can be done iteratively or by assuming a good vertex order. |
| 14 | + |
| 15 | +Those edges are then deleted, but in some cases this also deletes polygons that were tris on the original mesh. |
| 16 | + |
| 17 | +The second step works by fixing those edges that have more than 4 points, you can either use a polyFill aproach to fix those areas, or another iterative approach where it divides the mesh up until quads are left. |
| 18 | + |
| 19 | +[Image:/images/quadrangulate_2_squab.jpg] |
| 20 | + |
| 21 | +[Image:/images/quadrangulate_2_sphere.jpg] |
| 22 | + |
| 23 | +@parameters |
| 24 | + |
| 25 | + == Reduction Method == |
| 26 | + Method: |
| 27 | + Vertex Order: |
| 28 | + Delete every Nth edge of a model |
| 29 | + |
| 30 | + Longest Edge: |
| 31 | + Iteratively remove the longest edge in the mesh until there are only quads left |
| 32 | + |
| 33 | + Edge to Collapse: |
| 34 | + While in Vertex Order Mode this selects which edge of the triangle to collapse, 1st, 2nd or 3rd |
| 35 | + |
| 36 | + Protect Silhouette: |
| 37 | + Avoid deletion of edges that break the silhouette |
| 38 | + |
| 39 | + Normal Angle: |
| 40 | + When Protect Silhouette is on, this determines the angle between 2 faces to break in. |
| 41 | + |
| 42 | + == Refine Method == |
| 43 | + Refine Method: |
| 44 | + PolyFill: |
| 45 | + Resolve NGons by using the polyFill Quadrilaterals option. |
| 46 | + |
| 47 | + Iterative Divide: |
| 48 | + Iterative slice the NGons until they are all quads or tris. |
| 49 | + |
| 50 | + Fallback Fill Mode: |
| 51 | + When in PolyFill mode, how to resolve cases where the Quadrilaterals option fails |
| 52 | + |
| 53 | + Edge to Dissolve: |
| 54 | + When in Iterative Divide mode, how to determine which edge to be divided |
| 55 | + |
| 56 | + |
0 commit comments