The things I like about the LDraw format: it's very clean (in it's initial state) and the recursive nature of it makes it very efficient.
So I can't help having mixed feelings adding normals to the library files for a couple of reasons:
Given the above I feel it's unfair to burden the part authors (often working with little more then notepad etc) with the normal issue, while it's only a couple of days work to implement a decent smoothing algorithm in software (done once).
Maybe we could improve things for the view/edit software programmers by adding a reference smoothing algorithm to the LDraw documentation in pseudo code.
So I can't help having mixed feelings adding normals to the library files for a couple of reasons:
- Not all end user software needs it (e.g. POVRay)
- Normals are trivial to calculate when doing flat shading, so adding one normal per triangle/quad is very wasteful.
- Adding normals for smooth meshes will break the recursive / reusable nature of LDraw like you noted yourself.
- Smoothing isn't that hard when using modern bfc-ed parts (I agree with your notes on fixing the library itself). And if slow or something software is free to pre calculate/cache them.
Given the above I feel it's unfair to burden the part authors (often working with little more then notepad etc) with the normal issue, while it's only a couple of days work to implement a decent smoothing algorithm in software (done once).
Maybe we could improve things for the view/edit software programmers by adding a reference smoothing algorithm to the LDraw documentation in pseudo code.