Hexagon crashing when selecting faces
Hold on a goddamned minute. This site SUCKS when it comes to posting images!!!
The damned page REFUSES to load images in order, and it REFUSES to post images inline with text!!
WORKAROUND: All my images are at the bottom of the page. I'm going to edit my post to point to the proper image which will be out-of-place in the list.
>rant off< My original attempted post continues below:
This would probably better serve as a "bug report", but I'll post it here for general information.
There is a fairly common problem here where Hexagon users have complained of crashing when they try to select faces on their meshes, and takes nothing more than a mouseover to do it.
A user here, Roygee, had that problem with one of his meshes, but was able to "fix" it by sending his model to DS and resaving the mesh from there. Luckily, he kept both the "bad" version of his model along with the "fixed" version, and he was kind enough to share them with me so I could examine them.
The first thing I noticed was that they both had 332 vertices, but the "bad" model only had 320 faces while the "fixed" version had 328.
After a line-by-line comparison I found the difference laid in 4 areas of his meshes, each of which was a 5-sided n-gon in the "bad" mesh, but the same areas had been converted to 3 triangles in the "fixed" version. Each area in the "bad" verison were 5 vertices filled by a single ngon, for a total of 20 vertices and 4 faces. Each area in the "fixed" version were the same 5 vertices filled by 3 triangles for a total of 20 vertices and 12 faces - which is where the difference of 8 faces came from.
Now Hexagon normally has no problems with ngons, so I figured that something else was going on and looked further to find out why Hexagon doesn't like THESE ngons. I believe I've found the answer, and it turns out that only 2 of the 4 ngons were responsible for crashing hex.
The problem isn't ngons; the problem is TWISTED ngons. To complicate matters, you can twist ngons all day long in your models without breaking Hexagon...UNTIL you SAVE them to a file and subsequently try reloading them!
Hexagon preserves the winding order of the "twisted" ngon vertices just fine and imports that data with no problem, but then it goes completely braindead when it tries to FACET the twisted vertices! It screws it up so badly that it crashes when you try to select these faces.
Allow me to demonstrate how to crash Hexagon with a twisted ngon:
Bring up Hexagon and imagine 5 points defining a 5-sided ngon in your workspace.
## See first image
Using the "facet" tool under the "3D Primitives" tab, create an ngon by connecting these points starting at "1", then "2", "3", "4", "5", then "validate", which closes the 5-sided ngon. BTW, to define a previous term I used, "1,2,3,4,5" is this polygon's "winding order".
## See 2nd image
Now let's "twist" it. Grab vertex #5 and drag it down below vertex #4:
## See FOURTH image
Note that we have no evident problems yet. You can still select its face and it acts like any other poly in the pack. If this were part of a larger model, you may not even be aware that some operation had twisted an ngon, and you might go off working on other areas before calling it for the night and saving your model.
So let's go ahead and do that now, and save our little single-faced model as "bozo.obj".
Come morning, and we're all set to do more work on bozo. So now go ahead and open "bozo.obj" back into Hexagon again:
## See THIRD image
With this single ngon, the difference in face configuration between what we saved and what we re-opened is glaring. But if it were part of a larger model, it may not be noticed at all among the crowd of polygons. In Roygee's model, these faces were even partially hidden behind other polys.
But the damage is done. One twisted ngon affects the entire mesh group, and when you select "face mode" and mouse over the affected goup, you're greeted with:
## See 5th image
So that appears to be the problem. Unfortunately, I have no better solution than Roygee's solution of sending a broken mesh to DS and resaving, which apparently automatically triangulates any polys larger than quads.
BTW, just to add insult to injury, Hexagon also crashes if you try to triangulate the above broken mesh. Go figure... :-)