Skip to content

Commit

Permalink
[UPDATE] Quadrangulate got a facelift and better algorithms with vers…
Browse files Browse the repository at this point in the history
…ion 2.0
  • Loading branch information
lkruel committed Nov 6, 2019
1 parent 3d6ce37 commit 0545379
Show file tree
Hide file tree
Showing 19 changed files with 10,855 additions and 0 deletions.
Binary file added Help/images/quadrangulate_2_sphere.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/quadrangulate_2_squab.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 56 additions & 0 deletions Help/nodes/sop/gamedev--sop_quadrangulate-2.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
= GameDev Quadrangulate =

#type: node
#context: sop
#internal: gamedev::sop_quadrangulate::2.0
#icon: quadrangulate
#tags: tech, model, gamedev, cleanup

""" Simple Node to take a triangulated mesh and attempt to collapse the diagonal edges to return the mesh to a quad dominant state """

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.

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.

Those edges are then deleted, but in some cases this also deletes polygons that were tris on the original mesh.

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.

[Image:/images/quadrangulate_2_squab.jpg]

[Image:/images/quadrangulate_2_sphere.jpg]

@parameters

== Reduction Method ==
Method:
Vertex Order:
Delete every Nth edge of a model

Longest Edge:
Iteratively remove the longest edge in the mesh until there are only quads left

Edge to Collapse:
While in Vertex Order Mode this selects which edge of the triangle to collapse, 1st, 2nd or 3rd

Protect Silhouette:
Avoid deletion of edges that break the silhouette

Normal Angle:
When Protect Silhouette is on, this determines the angle between 2 faces to break in.

== Refine Method ==
Refine Method:
PolyFill:
Resolve NGons by using the polyFill Quadrilaterals option.

Iterative Divide:
Iterative slice the NGons until they are all quads or tris.

Fallback Fill Mode:
When in PolyFill mode, how to resolve cases where the Quadrilaterals option fails

Edge to Dissolve:
When in Iterative Divide mode, how to determine which edge to be divided


14 changes: 14 additions & 0 deletions otls/sop_quadrangulate_2.hda/INDEX__SECTION
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Operator: gamedev::sop_quadrangulate::2.0
Label: GameDev Quadrangulate
Path: oplib:/gamedev::Sop/sop_quadrangulate::2.0?gamedev::Sop/sop_quadrangulate::2.0
Icon: opdef:/gamedev::Sop/sop_quadrangulate::2.0?IconSVG
Table: Sop
License:
Extra:
User:
Inputs: 1 to 1
Subnet: true
Python: false
Empty: false
Modified: Wed Nov 6 16:09:13 2019

4 changes: 4 additions & 0 deletions otls/sop_quadrangulate_2.hda/Sections.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
""
INDEX__SECTION INDEX_SECTION
houdini.hdalibrary houdini.hdalibrary
gamedev_8_8Sop_1sop__quadrangulate_8_82.0 gamedev::Sop/sop_quadrangulate::2.0
Binary file not shown.
Loading

0 comments on commit 0545379

Please sign in to comment.