Skip to content

Commit 0545379

Browse files
committed
[UPDATE] Quadrangulate got a facelift and better algorithms with version 2.0
1 parent 3d6ce37 commit 0545379

19 files changed

+10855
-0
lines changed
42.6 KB
Loading

Help/images/quadrangulate_2_squab.jpg

56.5 KB
Loading
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Operator: gamedev::sop_quadrangulate::2.0
2+
Label: GameDev Quadrangulate
3+
Path: oplib:/gamedev::Sop/sop_quadrangulate::2.0?gamedev::Sop/sop_quadrangulate::2.0
4+
Icon: opdef:/gamedev::Sop/sop_quadrangulate::2.0?IconSVG
5+
Table: Sop
6+
License:
7+
Extra:
8+
User:
9+
Inputs: 1 to 1
10+
Subnet: true
11+
Python: false
12+
Empty: false
13+
Modified: Wed Nov 6 16:09:13 2019
14+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
""
2+
INDEX__SECTION INDEX_SECTION
3+
houdini.hdalibrary houdini.hdalibrary
4+
gamedev_8_8Sop_1sop__quadrangulate_8_82.0 gamedev::Sop/sop_quadrangulate::2.0

0 commit comments

Comments
 (0)