Home Technical Talk

Smoothing group amount

I_R_Hopo
polycounter lvl 14
Offline / Send Message
I_R_Hopo polycounter lvl 14
Hey guys. Quick question on smoothing groups.
I've read that you want to keep the group numbers to a minimum on your models when possible. I'm just a bit confused by the wording in this. I'm working in max, so I have a total of 32 smoothing groups. Now say I've made a cube. So six hard surfaces, right? Does the minimum smoothing groups mean I should put 2 faces in '1', 2 in '2', and 2 in '3'? Or for organization could I put a face in each smoothing group and have six separate smoothing groups in Max? I assume it's the latter, because smoothing groups just tell the engine where to split the verts, right?

Just wanted to make sure, because it's a pain trying to plan it out to pack every hard selection into the first 4 or 5 groups. If I don't have to go about it this way, that would be great!

Replies

  • I_R_Hopo
    Options
    Offline / Send Message
    I_R_Hopo polycounter lvl 14
    Shoot, I completely forgot to respond to this. Sorry :(

    I know that you're only supposed to use as many as needed. I'll use some pictures to better illustrate what I'm wondering about.

    Evbmi.png

    In the top row I'm packing faces into as little numbered groups as possible. In the bottom I'm placing each into its own for better organization. Will doing what I've done in the second row of images actually put more information into the model file and make it less optimized, or are the group numbers just in Max for ease of organization?

    For example, let's just say you had a model that had 30 faces, and you wanted each one to be hard-edged for some reason. Would you want to divide the faces up amongst as little numbered groups as possible (Let's say you fit it into 4 of the buttons), or would you be fine in putting each one into its own separate number (So 30 buttons would be 'clicked' for the model)? Are these buttons contained solely in Max, or are the numbered groups information that is passed along with the model once it is exported?
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    The cube might not be a good example. When split like that (3, 4, 5, or 6 smoothing groups), I think the vertices are going to be split the same way. And if a single smoothing groups has 2+ separate UV islands/shells, I think that would also negate the point of using only 1 SG when the vertices are going to be split for each island anyway.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    From what I recall, smoothing groups are a big no, no in the game engines since they are essentially breaking the vert count and doubling it (same story with Normals).

    However, if you're keeping it in packages of choice, then any number of normals should be fine.
  • Mark Dygert
    Options
    Offline / Send Message
    Ace-Angel wrote: »
    From what I recall, smoothing groups are a big no, no in the game engines since they are essentially breaking the vert count and doubling it (same story with Normals).

    However, if you're keeping it in packages of choice, then any number of normals should be fine.
    Place your UV seams along your smoothing breaks and you're getting the smoothing breaks at no additional cost.
  • Perfectblue
    Options
    Offline / Send Message
    Marked for later.
  • I_R_Hopo
    Options
    Offline / Send Message
    I_R_Hopo polycounter lvl 14
    I think you guys are totally missing what I'm asking. Maybe it is a really stupid and obvious question that only I have then, haha. I know about UV breaks at hard edges and all that stuff. I am asking a purely organizational question. I want to know if the smoothing group buttons in Max, the ones you assign the polys to, have any effect on anything outside of the program. We're given 32 of those buttons. Can we use all of them, or will it cost too many resources outside of Max?

    The context of the question might help more with what I'm asking. I want to know this because when assigning smoothing groups, I don't like trying to pack half the model onto number one, and the rest onto number two. I'd rather take all the split areas (Let's say I have 20 separate UV islands), and put each into its own numbered group for easy selection later. 20 separate groups that I can select by going to "Select by smoothing group." The way I've been doing it is I try to pack everything onto the smallest amount of buttons possible. So if I select smoothing group 1 I might have 7 different UV islands selected.

    I hope that makes sense now. I'm sorry if this is just a really silly question. I've just never seen this addressed anywhere and it really bugs me!
  • EarthQuake
    Options
    Offline / Send Message
    "Smoothing groups" is a made up max-specific thing, the number of smoothing groups has little relevance. How many hard edges you end up with is the important part. However, if your hard edges are the same as your uv seams, there is no additional cost, as Mark stated above. Generally, as long as your mesh is well constructed, the "amount" of hard edges/smoothing groups/whatever has little significance.

    [edit] no, the amount of smoothing groups you've used in the max UI has absolutely no relevance, and its only "too much" if you think it is, as you're the only one who will ever need to care about it.
  • EarthQuake
    Options
    Offline / Send Message
    Marked for later.

    Whats with these "marked" replies? Set up some bookmarks or something if you want to come back to a thread later.
  • I_R_Hopo
    Options
    Offline / Send Message
    I_R_Hopo polycounter lvl 14
    Thank you, EarthQuake! That's exactly what I wanted to know :) This will save me so much time! You're my hero for the day.
  • Synthesizer
    Options
    Offline / Send Message
    Synthesizer polycounter lvl 11
    I usually try to get most of it done with autosmooth, picking smoothing groups by hand feels like a waste of time... You could also check out this script: http://www.scriptspot.com/3ds-max/scripts/hard-soft-edge It adds soft/hard edge functionality like Maya has, it's a lot easier to work with I find.
  • PredatorGSR
    Options
    Offline / Send Message
    PredatorGSR polycounter lvl 14
    In our engine, there is a hard coded limit to the number of smoothing groups. We are only able to use 4. This is for performance reasons. Or so we were told.
  • EarthQuake
    Options
    Offline / Send Message
    In our engine, there is a hard coded limit to the number of smoothing groups. We are only able to use 4. This is for performance reasons. Or so we were told.

    I think you misunderstood what they said, or they're simply blowing smoke up your ass.

    A smoothing group has absolutely no direct corelation to performance. Its hard edges/split vertexes that are important(and as noted above, if these hard edges are on uv borders, which they should be for normal bakes anyway, there is no extra cost).

    For instance, you could use 4 smoothing groups, and have absolutely 0 hard edges(assign SG's to different mesh chunks), or use 4 SGs to add hundreds of hard edges on your mesh.

    You also could have a shoddy exporter, that poops its pants after 4 SG's, but this again wouldn't be a "performance" issue. SG's aren't ever stored in a game mesh in any sort of way, just mesh normals.
  • Mark Dygert
    Options
    Offline / Send Message
    All smoothing groups do is decide how the normals along edges will smooth, hard or soft.

    If these polys are in this group and its neighbors are in another then the edge between them is hard/broken. If they share groups then its soft/unbroken.

    You can have a bunch of broken edges with only two groups just by assigning every other poly to alternating groups. 1,2,1,2,1,2,1,2 ect... You don't need to go 1,2,3,4,5 ect however the performance is the same.

    UNLESS there is something else that is pulling info from the smoothing groups. Source uses smoothing groups when creating collision meshes. Each convex piece of a collision mesh is assigned a unique smoothing group. It limits the number of unique pieces to 18 unless you set a flag.

    It's set to 32 because some kind of array or bit array limits it to 32 groups. If you had 64 groups that would require two arrays and tracking between them which tracking inside one is already more difficult than it should be. It's an old programmer friendly method that really needs to be redesigned. The way Maya does it makes a lot more sense to a lot of artists and there is a script on script spot that enables max to work that way.

    Select edge, decide if it should be hard or soft. So simple, so perfect would save a TON of space in the UI.
Sign In or Register to comment.