How to find the bad node of a complex polygon or mesh?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-22
03:56 PM
- last edited on
‎2023-05-25
05:15 PM
by
Rubia Torres
The proverbial needle in a haystack!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-22 09:53 PM
What are the symptoms ?
Peter Devlin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-22 11:52 PM
"Invalid polygon, self-intersection, or hole intersects boundary. (M01)"
That's the dialog I see when opening a 3D view. "M01" is the user ID of my mesh.
I also get an error "Internal error occured in the OpenGL 3D engine." report in the little 3D window report window.
We try to do a lot with our meshes - and like to apply lots of user ridges to mark pathways, roads, and etc on the ground surface. However, sometimes it seems when a hole is cut in the mesh, something goes awry and it loses integrity.
Usually you can click right through the "invalid plygon" error message - but it is not an infrequent occurance that with continuing editing all of a sudden ALL the mesh data (ridges & points) will disappear so when possible we like to fix the problem early. However - with a large-ish landscape I have neither the time nor patience to manually check each of several thousand nodes!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-23 12:06 AM
If you haven't saved yet do "undos" until the problem stops occurring.
Luckily, it sounds like the problem is with the edges of the mesh
or edges of holes.
Peter Devlin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-23 02:02 AM
One reasonably quick way to find the problem is to make a copy of the mesh (check that the copy still has the problem - stranger things have happened). Split the copy in half and see which side breaks. Split the bad half again and so on until you have narrowed the search to a small area. The trick with this is splitting the mesh in ways that do not fix or exacerbate the problem - you need clean, simple axes to split it on.
You may also want to consider splitting up the terrain meshes anyway. In some urban planning work I've done I've found it much easier to work with a collection of smaller meshes than ones that span many blocks. (It was the road/street mesh that I had to split up the blocks were each modeled as separate meshes already.)
The other thing to look into if you are doing a lot of this is ArchiTerra which gives you more specific terrain modeling tools than the generic mesh does.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-23 02:06 AM
I would like to add some observations.
One, in the case of the mesh tool I would never "click through"
an error message like a self intersection error.
The mesh tool is much more complicated than the fill or slab tool.
Two, I never use the "create hole" command but always use
the "subtract" pet pallet method because the "create hole" is
unreliable and unpredictable.
Three, again in the case of the mesh tool, If you get an error message,
don't always believe that the error is of the type reported.
The self intersection message may appear when there is no self intersection
but some other problem.
To answer your question, there is no easy way to find a bad node in a mesh.
Peter Devlin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-23 02:16 AM
Good points. Especially the pet palette subtraction and the questionable accuracy of error messages.
What you say reinforces my opinion that meshes should be split into manageable chunks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-23 02:26 AM
I remember you recommending splitting the mesh into manageable chunks
several times in the past and it made sense in any number of situations.
One thing I always wondered about was how do you hide the joints
between the chunks ?
Thanks,
Peter Devlin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-23 03:06 AM
I split them wherever it is least intrusive or along lines that are natural to the context. It is really a case by case thing. Since the splits will not make a smooth edge in rendering they need to be placed where they will not be seen or where the edge is to be expressed anyway, such as along a contour line.
In the urban planning example I split up the streets at crosswalks and/or between areas of primary interest. The blocks were each a separate mesh (or collection of meshes - depending on the buildings) bounded by sidewalks and curbs.
Another trick I use is to retain the original overall terrain mesh and all the layout lines on a hidden layer so I can quickly reconstitute things from the source. This helps not just to replace broken meshes (of which I haven't had too many) but also to make design changes, since it is often easier to make a new mesh for the altered conditions than to edit a heavily edited one. Spacebar clicking on some slabs is usually a lot faster than stretching edges and nodes around, and the stretching is one of the things that tends to lead to troublesome meshes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2005-11-23 04:26 AM
Thank you for clearing that up for me.
I can see that it is particularly practical in the urban design context
Peter Devlin