4 ms·
Something that has been eating at my brain a lot lately is that we are still using triangles to represent 3D objects; even where we really shouldn't. Sure, we'
by thomastjeffery 3y ago
Something that has been eating at my brain a lot lately is that we are still using triangles to represent 3D objects; even where we really shouldn't.
Sure, we've gotten really good at it; but at this point it seems like we are starting with a complex smooth shape, approximating that shape with triangles, then trying to make that collection of triangles look like a smooth shape. Can we factor out the triangle step?
The most painful part of this experience is 3D printing: millions of people are using mathematical formulas to first construct a 3D object (CSG modeling), then to wrap the object in triangles (export to an STL file), so that a slicer can tell the printer how to fill in the domain of triangles. The triangles are literally inserting themselves into our reality!
This introduces a lot of finicky problems:
* Sharp edges and flat faces on what was supposed to be a smooth sphere or cylinder
* Broken manifolds that result in slicer errors
* Holes that get mistakenly filled in by the slicer.
* The topology of triangles defining what can and cannot be changed in the object, and where.
Back in the good old days™, I could tell POVRay that there is a 2-unit diameter sphere with a 1-unit diameter cylindrical hole in it; and it would go right ahead and raytrace that. If I wanted to do the same in Blender, I could only create a vain approximation of that, spoiled by triangles and entropy.
- qwery 3y agoIt's not just that we got good at dealing with triangles, it's that triangles are really easy to work with. I think the reason for using triangle meshes in 3D printing is for the benefit of the slicer (or its developers) -- the slicers consume triangle meshes because that made building the software feasible. Your printer quite likely implements some amount of non-linear (as in curved) moves. Having said that, I'm sure I heard relatively recently about some slicers starting to support STEP input files or some other solid modeling format, but my searches just turned up "how to convert your STL files to STEP files" SEO trash, which is a bit funny.