Don't you guys need/use 'smoothing groups'?

… that all said though it would be nice if on import/export you could get the hard/soft edges preserved (perhaps chcking for an edge split mod on export or auto assigning one to imported objects with edge data…)

Of course, blender would need extending/updating considerably to allow arbitrary setting of multiple vertex normal directions…

Much has been written about that subject here.
I personnaly don’t care if Blender uses smoothing groups or per-edge sharpness. BUT loosing these definitions while importing/exporting is a shame really…
Think that a basic format like .obj supports that information and Blender can’t export sharpness info properly !

If anuthing, I’ve always thought that a per-edge approach is better. The IO script should convert that info into the relevant mode.

@madminstrel, post 9: AFAIK it is possible. Let me think.
You’d have to use 3 goups: one for each sector, and they would overlap with the neighbouring group where the edge isn’t sharp anymore
I think that would do,wouldn’t it ?

EDIT: just tried in max: yes it works. The trick is to have some faces belong to both neighbouring groups.

Internally, Wings supports the edge-based method similar to Blender. However, Wings’ OBJ exporter converts “hard” edges to smoothing groups. The OBJ format spec shows support of face-based smoothing groups via the [s] directive.

Absolutely, .obj is able to handle that, so, seriously, an obj exporter SHOULD be able to generate the proper .obj.
I cant remember: is Wings open source ? Or at least its obj exporter ?
I am afraid i am not able to code that, but i’d be interested to see how they tackle that conversion…

Just try this:

  1. make a model with many faces than can slow down your render
  2. check the framerate in game engine
  3. sign all edges as hard and apply edge slpit modifier
  4. check the frame rate again

I was in developing in many realtime game engines. Yes, the videocard hw can optimize the geometry, and most of times the virtual and real vertices is same. But the problem is not so simple…

/me scratches head
The hard edges are just extra vertex buffer index entries, no? Their impact would be negligible.
How can video hardware optimize geometry?

If I say an edge is hard, but the normals of the vertices on that edge are smoothed by the renderer - it’s a problem. You HAVE to split the edge (rather than just mark it as hard) if you want the GLSL shading to show it as one would expect in a realtime engine. Some folks are claiming hard-edge is the answer to the missing smooth-groups, I’m simply pointing out that it isn’t even within Blender.

Yes, the hard edges are just extra verts-with-normals in the geometry buffers. The video hardware doesn’t magically optimize the geometry. Though some of the “indie” game engines might do so as a preprocess (stripfying the triangles), it’s not going to change the need for extra vertices.

semantics… you marked an edge as hard but you didn’t say you wanted it hard because you didn’t add the edgesplit modifier :wink:

You mark an edge as hard, an edge as a crease, an edge as a uv seam… nothing automatically happens in any of these cases… you have to use an edgesplit mod for the first, use a subdiv mod for the second or perform an UV unwrap for the third…

just sayin’ :wink:

Though some of the “indie” game engines might do so as a preprocess (stripfying the triangles), it’s not going to change the need for extra vertices.

… and stripifying the triangles can lead to extra faces as well rather than fewer depending on how it’s done… but these days is not as important as he ps2 era

Wings is open-source. All of it, including file i/o.
However, it is written in Erlang.