Some reference up front:
http://stocktextures.com/archive/articl ... index.html
Before per pixel lighting and normal maps were popular; games would use a combination of gouraud shading and "smoothing groups" (3Ds Max terminology) to vary between sharp and smooth edges. In Max this is done by applying an edge threshold to groups of polygons, which as I understand effectively splits the mesh at certain locations. This in combination with gouraud will give the ability to do a mix of sharp and smooth shaded faces. Because afaik a vertex can only store a single normal, as such the mesh needs to be split and vertices need to be duplicated in order to get certain edges to break out of the gouraud interpolation.
I know that the first Unreal engine (up to 1.5) for instance did not support them, and modders for Deus Ex High Definition Texture Package had trouble with that and the lighting bleeding around edges, which is an inherent graphical 'weakness' of the original Unreal engine games -- it probably couldn't afford it at the time. I guess this is simply less pronounced in Quake because the lighting tends to be more diffuse in those games, as opposed to a 'noir' looking game like Deus Ex.
But this would mean that smoothing groups are some kind of meta-feature that needs to be supported by the engine, and the 3D package would not spit out 'pre-split' meshes that should work universally. So my question is: is this true, and what does that imply for content creation? Are smoothing groups a specification of a file format and need to be supported by the engine? This is bothering me because a lot of modelling apps do not have a smoothing groups implementation, most have some kind of way to mark edges as 'creased' though.
Also, what other side effects are there to the mesh-splitting process? I know advice for UV maps is to avoid segmentation where possible, because this causes the graphics API to split the triangle lists into parts, decreasing efficiency. Would that then also imply that it's best to have the UVs conform to the smoothing groups for best performance?
Anyway, regarding where I'm coming from. I've recently started learning to use Cinema4D after a bit of experimenting with 3D apps, eventually settling on it because the the workflow was very close to stuff I've been using on-off in the past. I really dabble in 3D modelling for the most part, starting with Maya, then some Wings and Silo3D -- C4D is fairly close to Maya and Silo in general usage. I know there's probably a bunch of you that are experts at using Blender and knowing how to get this stuff done. I did try Blender a couple of times over the last years, but frankly it's just so unorthodox compared to other 3D packages that it just makes me want to pull my hair out when trying to get stuff out of it. Great piece of work though, it's just that I don't have the patience to unlearn all my old habits which I put in so much effort to learn in the first place. I'm pretty good at 2D and as such that's my comfort zone, 3D is still a bit scary to me
Thanks for reading!