sprockets The Snowman is coming! Realistic head model by Dan Skelton Vintage character and mo-cap animation by Joe Williamsen Character animation exercise by Steve Shelton an Animated Puppet Parody by Mark R. Largent Sprite Explosion Effect with PRJ included from johnL3D New Radiosity render of 2004 animation with PRJ. Will Sutton's TAR knocks some heads!
sprockets
Recent Posts | Unread Content
Jump to content
Hash, Inc. - Animation:Master

Your recipes for fixing bad topology


nemyax

Recommended Posts

I suppose all of you have had to fix bad spline flows like the ones in the attached image to avoid those ugly creases. (I mean actual modelling, not porcelain.)

How would you correct each of these cases? How would you like to be able to do so with a single click? Is there a recipe that would suit everyone?

bad-topo.png

Link to comment
Share on other sites

  • Replies 13
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

#1 & #3 are fairly obvious...extrude to a suitably small hole.

#2 & #4 are candidates for hooks to four pointers.

 

My rules are maximize symmetry and four point patches that don't have an aspect ratio that's "too" stretched. Use three and five pointers only when necessary since they are not always crease free.

bad_splinage.jpg

Link to comment
Share on other sites

  • Hash Fellow

For most modeling situations, the simplest solution will also render the smoothest: join the splines at the apex of the hump in a tiny ring rather than in one CP...

 

RingSolution.JPG

 

 

Link to comment
Share on other sites

  • Admin

The scaling approach is the method I find optimal as well.

An algorithm that approaches this might sample spline continuity to flag those splines that are continuous and self enclosed (i.e. their start and end points are at the same location). The spline loop nearest the target identified for closure would then be used to scale from.

 

Backing off to the next closed loop also can suggest other approaches to closing gaps that utilize four point patches.

 

I note also that we only seem to have this problem when the number of terminating CPs/splines is odd. If even, then the area can be dealt with using four point patches. I note that in your attachment all of the cases are odd (3, 9, 5 and 15 respectively) . This also suggests another approach to solving the problem which is to add another spline to the mesh to make the number of terminal points even.

poles.png

Link to comment
Share on other sites

Thanks for the replies, folks. Very interesting.

I note that in your attachment all of the cases are odd (3, 9, 5 and 15 respectively) .

What really matters to me here is how many splines (except the case of 4) converge at the central point—what they call poles in subdiv modelling. I only showed five- and three-edge poles.
Such poles are common in subdiv models, and it's a best practice not to let your pole have more than five edges if anyone can see it. So that's what you get when you bring subdiv models (good ones, mind you) into A:M: poles with valency 3 and 5 all over the place. Because A:M treats these spots so differently, it would be nice to have a way to respline them that everyone's happy with.

Link to comment
Share on other sites

  • Admin
I only showed five- and three-edge poles.

Not quite, although I see why you would say that.

That's why I posted a copy of your attachment with green overlay to indicate where the true poles are actually defined.

You have extended those poles and connected various splines with the other sides of the pole but that doesn't change the value of the 'true' poles. The poles are indeed at the root of the problem.

 

Added: Perhaps a better way to look at poles is to think of them in terms of continuing inside the shape and connecting with another pole elsewhere on the surface of the mesh rather than being a terminal point.

 

For a far flung solution to the problem (although not one solved anytime soon) one might look to splines and patches that have thickness (two sided) because as they are placed they would always retain their continuity. Then when encountering an opening the topology is resolved by determining which surface will be inside and which outside when the hole at the pole is closed.

Link to comment
Share on other sites

Rodney

The solution can be derived from the examples that rodger_r posted:

  1. Run a closed loop around the patches that contain the "pole" CP.
  2. Delete everything inside that loop and build a grid-like pattern with a similar shape.
  3. There's an extra spline that doesn't have a match. Hook it.
Link to comment
Share on other sites

  • Admin

Rodney

The solution can be derived from the examples that rodger_r posted:

  1. Run a closed loop around the patches that contain the "pole" CP.
  2. Delete everything inside that loop and build a grid-like pattern with a similar shape.
  3. There's an extra spline that doesn't have a match. Hook it.

 

Sounds good.

I guess I was thinking that rather than running a closed loop around the CP we might just move back out to the nearest closed loop and use that as it is already there to be used. I can see that in some cases there might not be a optimal closed loop to move outward to so creating the closed loop will take care of that.

Link to comment
Share on other sites

  • Admin

Nemyax's conversion through use of Blender produces the best results I've seen to date.

It is surely a gross oversimplification to say this but success appears to be largely based on Blender's access to SubDiv routines.

At a guess I'd say this subdivision process is the critical middle step in converting polygons to splines** and one that needs to be accomplished no matter what conversion process is attempted. Martin's old saying of "You can't turn a sow's ear into a silk purse." remains just as true today but with proper processing a reasonable facsimile can be created.

 

**Perhaps Nemyax can provide an overview of the critical steps his conversion process takes.

Link to comment
Share on other sites

success appears to be largely based on Blender's access to SubDiv routines

It has nothing to do with subdivision.

All I'm doing is looking at the valency of vertices. If there are four edges at a vertex, it's an intersection of two splines (the adjacent faces tell us how exactly the splines cross). If there are 3, 5 or more, it's a terminal point for multiple splines. If there are two, it's just a CP in a spline. Patches are created from existing faces that are valid for that purpose. In a good subdiv model, they'll all be quads and therefore valid.

Link to comment
Share on other sites

Hi everybody,
good headache! :)
To avoid adding too many CPs, and not losing too much shape, here are the solutions that come to my mind.
Star = hook. Green square = new CP. Green line = new spline portion. yellow=bias

1. a new spline around the pole, to give possibility to hook.

2. use the bias ta keep the shape of the middle spline.

3 and 4 is similair,
hash.jpg

Hope that can help.

Link to comment
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...