Page 1 of 3

request: multiple smoothgroups or hard/soft edges

Posted: Thu Dec 02, 2004 11:28 pm
by Rahu
I use BLender for low-poly modeling and think the only main feature it is missing to do this is multiple smoothgroups or hard/soft edges. The only way to do this now is to change everything you want to be in a smoothgroup to a different object, which creates problems by having that many object when imported to a game. A smoothgroup select like in Max with 64 different groups wold be useful. Another way of doing this would be to select which edges are hard of soft as seen in the picture.

The select edge in the first picture wold be set to hard and all the others would be set to soft, or the top and bottom halfs would be in seperate smoothing groups.

Posted: Fri Dec 03, 2004 6:55 am
by z3r0_d
this has been asked many times

I personally hate the idea of smoothing groups, and would rather like an edge specific hard/soft flag [as in wings3d]

my favorite thread on this topic [easy to find others] is: ... pic&t=4141

it seems like it would be much more possible now than in 2.33, but as far as I know it hasn't been implemented [more than subsurf creases]

Posted: Fri Dec 03, 2004 5:17 pm
by fobsta
Please no smoothing groups.

If we are going to copy ideas from other programs - lets copy good ideas.

Max's smoothing groups involve horrible workflow.

Multigen and Maya handle this so much better. As I guess most other 3d programs do.

Posted: Wed Dec 08, 2004 11:10 pm
by Rahu
The point of this thread was having the one that most people wanted :D
Anything would really be better than the current system :P

Posted: Thu Dec 09, 2004 10:05 am
by joeri
I'd go for smooth/hard edges.
That's where the smoothing has to take place, from one face to the other, over an edge.
How does it work: select an edge or multiple edges, press "smooth" to make smooth or "hard" button to make the edge hard.
An "Autosmooth" button can take a variable and make all edges between connected faces smooth or hard if the angle between the face nornals is bigger or smaller then the given value.

Posted: Thu Dec 09, 2004 2:03 pm
by Cyberdigitus
isn't this rather a vertex property?

Posted: Thu Dec 09, 2004 2:55 pm
by joeri
I think it's the edge you want to be smooth. How can a vertex be smooth?

Posted: Fri Dec 10, 2004 12:46 am
by Eternl_Knight
Agreed with joeri here - it is an "edge property". Now I'll have to look in the code to see if there is actually a place to store this information (after all, if they're only storing vertex & face info - it's not going to be possible).

Posted: Fri Dec 10, 2004 1:18 am
by theeth
Edge data is stored only when needed (currently, only for UV Seams and Subsurf weight IIRC). So it would be very possible to store a hard/smooth flag too.


Posted: Fri Dec 10, 2004 1:44 am
by Eternl_Knight
Thanks Martin (theeth), that's saved me a little effort. Now is the request only for rendering or also in regards to the local viewport? I don't see this being a biggy to implement, and it would be good to cut my teeth on something simple that OTHERS want...

Posted: Fri Dec 10, 2004 10:04 am
by joeri
As I understand it there are different area's where people want this:

-In the model, so they can export the model to other game engines.
game engines mostly work with 1 single object for 1 character and thus it's very usefull to have hard and soft edges in 1 object.

-In sub surf you can't have multiple objects for separating hard and soft edges because it will make holes. The hard/soft info needs to be past on to the subdiv edges.

I'd say you need it in the viewport to see what the user is doing.

Posted: Fri Dec 10, 2004 11:33 am
by oin
Absolutely agree with Joeri.

Wings3d has hard edges and autosmooth (automatically puts the hard edges depending on the threshold angle you set, angle between every two faces, I think. In real cases, is really useful. )

In OBJ, it is exported as "smooth groups" .While I agree max smooth groups has a bad workflow, being hard edges in Wings3d much more clever, the fact is the name the engine coders (the many game engines out there) know is "smooth groups".Obj files (I can't remember if ideasman finally exported smooth groups, now that I think of it, how it could if there's not yet the feature in blender...) do support this feature. Is an ideal format (for other reasons too) fo rthis: it uses to just add a tag , "s" in the ascii file, and all contained in that part is an "smooth group" .but for us woul dbe the same: the hard edges thing would make, I suppose, "groups" internally of faces, limited by hard edges. If i am not wrong.

Obj is very standard too.Good also. Poser exports and understands also smooth groups.

In games, this stuff is really important.

But it can come handy also if you do animations and make not-so hi models...

I specially agree on the Joeri's point of making it visible in the viewport.

No matter the package, it's all the time a tweak-fight with poly count and smoothing: with this weapons(and good texturing) is with what you can achieve quite a good looking game model.

I have used successfully Maya hard edges, Max smooth groups, and Wings hard edges (the workflow I prefer, again, is wings's) .And how ever, it gives a very important step in game art workflow. Specially good modelling static, metal objects, helmets, etc. Is great to set very smooth organic parts while having creasing edges in needed parts. You get this with just autosmooth, if u just set the angles cleverly, but that makes you force the geometry too much. is better the freedom of adding a needed hard edge. And helps you also keep the count really low.

Posted: Sun Dec 12, 2004 12:30 am
by Rahu
Yes, the whole idea of this request was for exporting to games and such to make low poly models look better. Preferably to work in the viewport and renders.

Posted: Mon Dec 13, 2004 3:09 am
by ideasman
Soft hard edges is good for a few resions.

It gives the user manual controle and it takes less computing then autosmooth does.
Its also wysiwyg-
I export to a realtime engine right now, and I use my own basic autosmoothing math, this is in python therefor its fairly slow, There isnt any good way to get this data directly from blender right now. will always give you a flat shaded face and the vertex no will always give you an interpolated vertex normal.
Its possible to use the faces smooth flag to decieded which to use but I think It would be better to keep face smooth flag and just use edge hardness as a smoothing delimiter.

So you would have all faces smoothed by default, then youd harden eny edges you didnt want to smooth.

Posted: Mon Dec 13, 2004 3:54 am
by theeth
ideasman wrote:There isnt any good way to get this data directly from blender right now. will always give you a flat shaded face and the vertex no will always give you an interpolated vertex normal.
How are you calculating it?

Couldn't you just compute the smoothed edge normal from both smoothed vertice normals and then compare to the face normal and apply the angle threshold to check if it's smooth or not?

I don't see why that would be slow.